Bookmarks

ブックマーク バー

Watch-1

論理と計算

基本

Amazon.co.jp:カスタマーレビュー: 論理学をつくる
命題論理 - Wikipedia
一階述語論理 - Wikipedia
直観主義論理 - Wikipedia
【入門】述語論理とは。命題論理との違いも解説【日本一わかりやすい】 | Golden-Database
命題論理と述語論理の違い - mrsekut-p
述語論理と命題論理の違いを教えてください - 文(=命題)の内... - Yahoo!知恵袋
「命題論理」と「述語論理」の違いとは?分かりやすく解釈 | 言葉の違いが分かる読み物
記号論理 -記号論理(述語論理、命題論理など)は何に役に立つのでしょうか?- | OKWAVE
論理学についてざっと説明してください。 - 命題論理、述語論理... - Yahoo!知恵袋
必然性の論理は歴史的必然か - 論理学FAQのブログ

操作的意味論

プログラム意味論 - Wikipedia
プログラミング言語の基礎
sc1.pdf
操作的意味論 - mrsekut-p
スモールステップ意味論 - mrsekut-p
ビッグステップ意味論 - mrsekut-p
プログラム言語論 意味論 - 2.pdf
アンダースタンディング・コンピュテーション 第 2章 プログラム意味論 - lect2.pdf
yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想

PLT Redex

Semantics Engineering with PLT Redex - Matthias Felleisen, Robert Bruce Findler, Matthew Flatt - Google ブックス
redex.pdf

ハイティング代数

第52回MLG数理研究集会 プログラム – 53rd MLG数理論理学研究集会
直観主義論理とHeyting代数 - ちょーさんメモ出張版 気まぐれブログ
NJ-Lindenbaum.pdf - Google ドライブ
続くといいな日記 – ハイティング代数の性質
Heyting_algebra.pdf
msj07.dvi - msj07.pdf
summer2013.dvi - summer2013.pdf
blog/heyting-algebra-properties.rst at master · mizunashi-mana/blog

PDF

PDF

fujii21.pdf
kitagawa21.pdf
akiyama22.pdf
fujii22.pdf
ishio22.pdf
ishio20.pdf
furukawa20.pdf
sou19.pdf
ishio19.pdf
sou18.pdf
ishio18.pdf
wakikawa18.pdf
sou17.pdf
uehara17.pdf
kadowaki16.pdf
kadowaki15.pdf
sou15.pdf
ueda15.pdf
sou14.pdf
ishii14.pdf
asai14.pdf
kaneko13.pdf
tsushima13.pdf
masuko13.pdf
hirota13.pdf
tsushima12.pdf
ueda10.pdf
tsushima10.pdf
ppl10.dvi - masuko10.pdf
sakurai10.pdf
kitani10.pdf
kitani09.pdf
masuko09.pdf
sakaue09.pdf
suzuki06.pdf
sasaki04.pdf
nakagawa04.pdf

cs2012ch1.dvi - cs2012ch1.pdf
第13回「不完全性定理」 - 14.pdf
PSSJ-JSRNPS1(2018)_Hiromi_Tanaka.pdf
[PDF] PPTX - Free Download PDF
「計算と論理」 Software Foundations その8 - handout8.pdf
riron.pdf
情報科学系セミナー(第5回) - is20171023.pdf
第13回「不完全性定理」 - 14.pdf
整数の不思議(その1) - predicate_logic.pdf
論理と計算 講義ノート - logic2018spring-draft.pdf
[PDF] 一般化された体系における cut除去定理の 成立条件 - Free Download PDF
IPSJ-MGN300605.pdf
logic-ss13.dvi - logic-ss13.pdf
nyumon_logic.pdf
riron.pdf
PowerPoint Presentation - quiz.pdf
20200601_14.pdf
wakatenokai_FY2020_program.pdf
tabata3.pdf
50yearsPT.pdf
program.pages - program.pdf
birth.dvi - birth.pdf
9.pdf
62_0621115.pdf

多相か否かで、二階か一階を使い分け

記号・ギリシャ文字など、英単語と相互変換

Goolge 検索

ICOT 論理 ハードウェア - Google 検索
tex 証明図 - Google 検索
型推論図 - Google 検索
多相 二階命題論理 - Google 検索
依存型 二階命題論理 - Google 検索
CPS 二階命題論理 - Google 検索
継続 二階命題論理 - Google 検索
call/cc 二階命題論理 - Google 検索
call/cc CPS 二階命題論理 - Google 検索
二階命題論理 完全性 代数 - Google 検索
二階命題論理 完全性 ハイティング代数 - Google 検索
論理学 完全性 - Google 検索
論理学 健全性 - Google 検索
A-normal form 中間 - Google 検索
直観主義 完全性 - Google 検索
直観主義 健全性 - Google 検索
証明図 推論規則 S式 - Google 検索

blog

ベインのブログ

「動的型付け」ではなく動的言語と呼びたい - ベインのブログ
値とストレージの区別 - ベインのブログ
リンクのための型エイリアス - ベインのブログ
可視性を使ってnever型もどきを作る - ベインのブログ
相互再帰関数の型推論で問題になったケース - ベインのブログ
GUIアプリのルーティング・ページ遷移 - ベインのブログ
判別共用体が共通フィールドを持てたら嬉しい - ベインのブログ
コンパイラでのエラーの扱い - ベインのブログ
プログラミング言語の構文とセミコロン - ベインのブログ
式指向構文が言語処理系にもたらす複雑性 - ベインのブログ
nullはポインタだがリファレンスではない - ベインのブログ
関数型プログラミング言語の構文は「すべてが式」ではない - ベインのブログ
☁ SPAをやめたい (やめられない) - ベインのブログ

Arantium Maestum

非S式なRacket後継言語?のRhombusとShrubbery記法について - Arantium Maestum
Impredicative Typesについてのメモ - Arantium Maestum
型システムのカインドという概念についてのメモ - Arantium Maestum
高カインド型・高階多相についてのメモ - Arantium Maestum
パラメトリック多相と型コンストラクタ - Arantium Maestum
なぜプログラミングでは掛け算をアステリスクで表すのか、などの文字コードの話 - Arantium Maestum
OCamlでmliいつ書くの問題 - Arantium Maestum
ミニマルなA正規化コードサンプル解説 - Arantium Maestum
条件分岐のある言語のA正規化 - Arantium Maestum
関数のある言語のA正規化 - Arantium Maestum
A正規化されたIRをCEK抽象機械で実行 - Arantium Maestum
CEK抽象機械をCESK抽象機械に拡張する - Arantium Maestum
A正規化されたIRをCPSに変換する - Arantium Maestum

はてなブログ

コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
spliceを使って高速・省メモリでGzipからZIPを作る - knqyf263's blog
Node.js や deno に Web Standard な API をなんでも取り入れるのが良いことなのかについて - from scratch

Publickey

CircleCI、テストコードをAIで自動生成してくれるPonicodeを買収、CircleCIに統合へ - Publickey
AWS Lambda、ローカルの/tmpが最大10GBまで拡張。大規模データ処理も可能に - Publickey

fp-ts ユーザが Scala with Cats を読み終えたので、fp-ts と Cats の違いをまとめてみた - DEV Community
Swift Regret: Sequence // -dealloc
Swift Regrets: Wrap-up // -dealloc
開発者が知っておきたい「XSSの発生原理以外」の話 - Flatt Security Blog
マネージド ヒープの破損により発生する GC 中の .NET ランタイムの内部エラーについて | Japan Developer Support Core Team Blog
【Python】requestsを使うときは必ずtimeoutを設定するべき | Cosnomi Blog
axios を使わず Node.js 標準モジュールの http・https だけでリクエストを投げる - Neo's World
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「すごい “エッジから状態を管理するオブジェクトにアクセスできる。各オブジェクトは JavaScript クラスのインスタンスで、それぞれ裏側にストレージを持てる。Workers KV と違って強い一貫性がある。” / “Cloudflare Workers + Durable Objects でホワイトボードを作って…” https://t.co/zBz703oIWk」 / Twitter
Cloudflare Workers + Durable Objects でホワイトボードを作ってみた - ジンジャー研究室
CRISP-DMに沿ってデータ分析する | Money Forward Engineers' Blog
WebAssembly/WASI Support in Ruby. Overview | by kateinoigakukun | Mar, 2022 | Medium
[Tech Blog] Scala, Akkaで動くAnyChatプロダクトのバックエンドについて
Scalaのfor式による関数合成を「線路」で理解する - Visional Engineering Blog

スライド

Tuples and Mirrors in Scala3 and Higher-Kinded Data - Speaker Deck
『マイクロにしすぎた結果がこれだよ!』──Gunosyにその舞台裏を聞いてみた | リクナビNEXTジャーナル
マイクロにしすぎた結果がこれだよ!

Wikipedia

カリー=ハワード同型対応 - Wikipedia
継続 - Wikipedia
継続渡しスタイル - Wikipedia
Metamath - Wikipedia
ISWIM - Wikipedia
ISWIM - Wikipedia
The next 700 programming languages - Landin66.pdf
タンデムコンピューターズ - Wikipedia
まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap ロックステップでしょうか。 https://t.co/coCZwt2QUX 2システムの場合は問題の検出を、3システムの場合は問題の自動回復をするとありますね。」 / Twitter
Lockstep (computing) - Wikipedia
操車場アルゴリズム - Wikipedia

Zenn

Coqに入門してみる
passコマンドが最近上手く動かなくなった時の対処法[tree v2.0.0関連]

Qiita

Java HTTP Client API のタイムアウト設定 - Qiita
キャンセル可能でPromiseなsetTimeout()を作る - Qiita

Twitter

その他

単一化の高速化

LunarML進捗・2022年2月 | 雑記帳
画力・博士号さんはTwitterを使っています 「LunarMLの実装チラッと覗いたんですが多分 - 型変数を直接mutable referenceで扱わずに「管理用のテーブル」を使っていること - generalizeをlevel-basedでやっていないこと が型推論に時間がかかることの要因な気がします」 / Twitter
画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
Efficient and Insightful Generalization

関数引数の括弧

関数型プログラミング言語における関数適用構文の歴史的経緯についてのメモ - Arantium Maestum
sounisi5011/プログラムさんはTwitterを使っています 「Haskellとかの関数型言語を使用しているプログラマの皆様にお聞きしたいんですけど、「関数名 引数 引数 ...」みたいな関数呼び出し構文って見にくくは無いですか?「関数名(引数, 引数, ...)」に慣れたこちらからすると、丸括弧が無いからコード中のどこが関数呼び出しなのかパット見で把握しにくい。」 / Twitter
mod_poppoさんはTwitterを使っています 「ラムダ計算は関数適用に括弧いらないよな」 / Twitter
mod_poppoさんはTwitterを使っています 「関数の引数が常に一個な言語(複数の引数を受け取るにはカリー化かタプルが必要)では関数適用にカッコを要求すると煩雑になるんだと思う」 / Twitter
mod_poppoさんはTwitterを使っています 「や、タプルを記述するのに括弧が必要ない文法を採用すれば関数適用に括弧が必須でも括弧が一重で済むな」 / Twitter
zehnpaardさんはTwitterを使っています 「History of Standard MLを流し読みしたところ、LCF/MLはカッコつきだったようだ: let gcd(x,y) = ...;; https://t.co/6ulOvsfsxz」 / Twitter
The History of Standard ML - SML-history.pdf
zehnpaardさんはTwitterを使っています 「OCamlやHaskellでPartial Applicationがあるからf(x)(y)のようになって煩雑、というのは微妙な気がするな。そもそも言語処理系は実際には関数を1引数なものとしては扱ってないはず(とても非効率になるため)」 / Twitter
zehnpaardさんはTwitterを使っています 「Hopeあたりから関数呼び出しにカッコが使われなくなるのか。やはりラムダ計算やSKIコンビネータを意識してのことだろうか」 / Twitter
mod_poppoさんはTwitterを使っています 「イマドキのML系言語でも let gcd(x,y) = ... は普通に書ける(タプルを受け取る関数とみなされる)のでそのコード片だけを見て括弧が要求される文法かどうかはわからないと思う」 / Twitter
zehnpaardさんはTwitterを使っています 「@mod_poppo 確かに・・・ ただMilnerのこちらの資料だとやはりf(x)という形式のようです(null(e1)などの式が出てくる) https://t.co/elef2MABv5」 / Twitter
A Metalanguage for Interactive Proof in LCF - GordonMMNW78.pdf
mod_poppoさんはTwitterを使っています 「@zehnpaard その資料の124ページ左側には where F y = ... という宣言が、右下には mkconsttype`integer` という式が、125ページ左側には GEN x th や repthm th という宣言や式があるので、関数宣言や関数適用は括弧なしでも書けたように見えます。誤植じゃなければの話ですが」 / Twitter
zehnpaardさんはTwitterを使っています 「@mod_poppo うーん、なるほど。120ページのlet f(x,y,…) = eの解説や単一の引数に対するカッコつきの関数適用の例がけっこうありますが、確かにいくつか無しでもいけそうな例もありますね」 / Twitter
zehnpaardさんはTwitterを使っています 「@mod_poppo LCFのマニュアルがありました。 https://t.co/TjFTZvzfrB」 / Twitter
AD0785072.pdf
zehnpaardさんはTwitterを使っています 「@mod_poppo 3ページ目に”this strict syntax is relaxed in the machine implementation… to allow a saving of parentheses and brackets”、29ページの最初に“AP(AP X Y, Z) is a <simpleterm> abbreviating AP(AP(X,Y),Z) …”とあるのでカッコは省略できたようです」 / Twitter
mod_poppoさんはTwitterを使っています 「「関数と引数をスペースで区切る文法は読みにくくないか?」という問いに対する俺の答えは「読みにくくない」。慣れというのもあるし、呼び出される関数は関数っぽい名前がついていることが多い(慣習)というのもありそう。」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellのレコードアップデート式 record { field = newValue } は関数適用じゃないし関数適用よりも優先順位が高いから要注意かもしれない」 / Twitter
重城良国さんはTwitterを使っています 「「構文拡張の余地」という話には納得感があった。 Haskell だと、構文の拡張に記号を使うか、予約語を使い回すかみたいなところがある。」 / Twitter
Masaki HaraさんはTwitterを使っています 「関数呼び出し構文の議論、いい機会なので自分の「やや f(x, y) 派」としての論点を書きました。 https://t.co/FCjiTVDEBM」 / Twitter
並置による関数適用に関する所感
重城良国さんはTwitterを使っています 「まあ、これは「いい席」を何のために使うかみたいな話。 「並置」みたいな単純な構文は一桁のユーザIDみたいなもので、Haskell ではそれを関数適用にあてたという話。」 / Twitter
mod_poppoさんはTwitterを使っています 「並置を乗算に使う言語があったな」 / Twitter
mod_poppoさんはTwitterを使っています 「関数適用にバッククオートを前置する関数型言語とかあったな」 / Twitter
mod_poppoさんはTwitterを使っています 「自作言語の関数適用にカッコを要求するかどうかの俺の考え(暫定)は、「関数は常に引数が一つ」にするならカッコ省略可、「複数の引数を取る関数をプリミティブに表せるようにしたい」のであればカッコを要求するのが良いと思います」 / Twitter

ポインタで共用したデータ構造

Miura HidekiさんはTwitterを使っています 「ポインタで共用したデータ構造は非常に効率的だけど扱いが大変で嫌われているわけだけど、こういうのを安全に可視化するようなコンセプトのプログラミング言語や環境があるとごく一部の人だけど幸せになるのではないかと思った」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rustとは全く正反対の思想ですな」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcでは徹底的にポインタで共用された領域を書き換える技法でmrubyで書いてもそこそこ実行効率を得たけど、デバッグがとても大変だった」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 rurubyではオブジェクトを型タグ+unionで表現しています。もちろん一番下のコードはunsafeですけど、上のレイヤでは「安全」に扱えますよ。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 あ、それとは違う話ですかね?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 型は関係なく、所有権とか考えず出来る限り共有してオブジェクトは積極的にmutableにするいう考え方です。たぶん効率は上がりますが、デバッグは非常に困難になるので言語仕様やツールでサポートするのですけど、与太話なので具体的なアイデアはないです」 / Twitter

ドキュメント

Dai MIKURUBEさんはTwitterを使っています 「ほんこれ…。設計ドキュメント書くなら、その設計の背景、要求事項や制約事項こそが盛り盛りに記述されるのが筋で、極論だけど実際の「設計」のセクションは三行になるレベルでもいい」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「というか、実際の「設計」の段を緻密に書くと、だいたい実装の過程で少しずつ乖離していって、使い物にならない長いドキュメントが後に残るだけになる。逆に背景さえちゃんと書いてあったら、「設計」には大枠の方針だけあれば意図は残るし、解釈もできる」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「実際の「設計」をゴリゴリ書くよりは、「なんでこうはしないのか」が盛り盛りに書いてあるほうがまだ何倍も役立つ」 / Twitter
seabat.devさんはTwitterを使っています 「@dmikurube 廃案の議論や思考経緯が記録されてないと、後年引継ぎ者が改修で廃案を採用してしまい、テスト段階で間違いに気づくケースが多い気がします。」 / Twitter

自動テスト

mima_itaさんはTwitterを使っています 「Jenkinsおじさんの解説を聞きたいという要望を1年以上前に受けてようやく、継続的インテグレーションの下書きを書いたが、これの話をする前に自動テストの話をする必要があり、これが面倒。」 / Twitter
mima_itaさんはTwitterを使っています 「自動テストの話の何が面倒かというと、まずテストについて話をする必要がある。」 / Twitter
mima_itaさんはTwitterを使っています 「テストと一言で言っても認定試験ができるくらい厄介な話なんで、軽々に作れない。」 / Twitter
mima_itaさんはTwitterを使っています 「仮にテスト実行について絞ったところで、そもそもテスト実行にはアドホックテスト、探索的テスト、記述的テストとかあって、アドホックテストしかしらん場合は、記述的テストの話をしないといけない。」 / Twitter
mima_itaさんはTwitterを使っています 「じゃあ、記述的テストの話をした場合、当然、そのテストケースを管理するテストケースの管理方法について触れる必要がある。」 / Twitter
mima_itaさんはTwitterを使っています 「この前提が終わった後に、ようやくユニットテスト、APIテスト、E2Eテストとかの話が始まってうんぬんぬん。」 / Twitter

Mutation testing

Mutation testing - Wikipedia
コラム - グーグルのクラウドを支えるテクノロジー | 第86回 GoogleにおけるMutation Testの実践(パート1)|CTC教育サービス 研修/トレーニング
はじめてのMutation Testing - daisuzz.log
Strykerを使ってTypeScriptでMutation Testingする
phenanさんはTwitterを使っています 「Mutation testing みたいな話かな」 / Twitter
がくぞさんはTwitterを使っています 「良い自動テストが書けているかどうかを測る定量的な指標って何があるんでしょうか? カバレッジはassertionが不適切でも数値を上げられてしまうのでカバレッジそのものを目標としたくは無いんですよね……」 / Twitter
がくぞさんはTwitterを使っています 「@phenan おお!それっぽいですね。Mutation testing という単語を知りませんでした、ありがとうございます!!」 / Twitter
がくぞさんはTwitterを使っています 「ほんそれなんですよ……そして「テスト自体の品質」を表すそこそこ手軽に測定できる指標が欲しい……というのが話の発端でした」 / Twitter
星の海のビビ(Vivi)さんはTwitterを使っています 「「テスト自体の品質」を計測してない品質管理が如何に無力かという・・・(;´∀`)」 / Twitter
星の海のビビ(Vivi)さんはTwitterを使っています 「@gakuzzzz まあやはり基本はカバレッジでしょうねえ。挙げられた例だと状態遷移のNスイッチカバレッジ意識してれば避けられた悲劇だとは思いますが・・・あれ「手軽に測定」と言われると面倒かもしれないですね(;´∀`)」 / Twitter
がくぞさんはTwitterを使っています 「@strategic_vivi たしかにこの例だとカバレッジを意識してれば発見はやかったかもですねー」 / Twitter
がくぞさんはTwitterを使っています 「仕様に対する網羅率的なものが測定できれば良い気もするのだけど、そのためには仕様を何らかでインプットできる形で表現する必要がありそう」 / Twitter
がくぞさんはTwitterを使っています 「この方向性で突き詰めていったのがBDDな気もするのだけど、漏れなく仕様が表現できてるよねって測るの相当難易度高い気がする……」 / Twitter
がくぞさんはTwitterを使っています 「ユースケースが適切に記述されているのであれば、各ユースケースの主成功シナリオ、拡張シナリオのそれぞれに置いて、事後条件が満たされているか、みたいな側面からいけるかな? (しかし大抵はユースケースが網羅的に記述されていない気がする」 / Twitter
がくぞさんはTwitterを使っています 「動的言語界隈ではこの辺の知見が溜まってたりしないでしょうか……?」 / Twitter
がくぞさんはTwitterを使っています 「Test Driven だとそもそもテストに対して実装を書いていく訳だからテストが仕様を網羅していないって事が起きえないのかな?」 / Twitter
がくぞさんはTwitterを使っています 「テストほんと難しい……型で解決できる問題は型で解決したい……」 / Twitter
がくぞさんはTwitterを使っています 「テスト仕様に「ユーザIDと正しいパスワードでログインできること」があっても「ユーザIDと間違ったパスワードでログインできないこと」が無かった所為で、どんなパスワード入れてもログインできてしまう欠陥が存在するまま運用し続けていたみたいな悲しい事件もあるだでな……」 / Twitter

文字数カウント

Kazuho OkuさんはTwitterを使っています 「Swiftって実際こうじゃなかったっけ?」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「コードユニットを数える .length に不満のある人ってどういうことなんですか、 .length が文字列の †文字数† (書記素クラスタ数)を数えるべきであって O(N) でいいと主張してる?」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「「書記素クラスタを数える方法がない/クソ面倒」までならよくわかるんだけど、だったらどうあるべきなのかという望ましい形の想定が全然見えない。そこが見えるdisり方をしている人をほとんど見たことがない」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「「コードユニットでなくコードポイントを数えるべき」派もいるかもしれんな。まあどちらにせよ O(N) だけど……」 / Twitter
Kazuho OkuさんはTwitterを使っています 「文字コードの歴史、プログラミング言語側ではgrapheme単位で数えようとしてきた歴史だし、これからの高級言語はそうあるべきだと思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「雑に言うと、もともと計算機が認識する1文字(=1バイト)と人間が認識する1文字に差はなかったのが、東アジア圏でマルチバイト文字が使われるようになって、それはややこしいだろってUnicodeで1文字16ビットにしようとして失敗して、コードポイントとコードユニットとgraphemeが別々のものを指す」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ようになったわけで、じゃあ文字カウントするのにどれ使うのかというと、MBCSやってきた勢はコードユニットでいいのかもしれないし、そもそもUnicodeとか作った勢はgrapheme数えるよね、みたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「grapheme clusterをgraphemeと略す奴はry」 / Twitter
Kazuho OkuさんはTwitterを使っています 「昔の話をすると、日本語とかあってMBCS取り扱う難しさよりも、英語の正しいワードラップとハイフネーションのレイアウトのほうが100倍くらい難しいし、半角全角とか言ってられるのは幸せだった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これ同意なんだけど、格納領域の大きさはエンコーディング依存になるから、文字列の長さ=grapheme clusterの数としつつ、別途(エンコーディングを指定する)バイト列への変換APIがあれば、それで十分な気がするのよね」 / Twitter
ユウさんはTwitterを使っています 「@kazuho 内部表現を特定しない抽象的なAPIであればこれが正解かなと思います。 何らかのエンコーディング(UTF-8かUTF-16LEのどちらかが妥当?)に決め打ちして速度を重視したい設計も多々あると思っていて、その観点だとlengthがメモリを占める大きさと一致している方が嬉しいかなと。」 / Twitter
ユウさんはTwitterを使っています 「@kazuho その場合でもgrapheme clusterの数 を返すAPIと他エンコーディングに変換する(この想定だと多分バイト列を返す)APIはそれぞれ欲しいですね。」 / Twitter
ユウさんはTwitterを使っています 「目的が異なるのでどれも簡便に数えられるようになっていて貰いたい。UI上の制限をかけるとかなら直感的な「文字数」と一致する書記素の数が欲しいだろうし、処理上の格納領域の大きさを考えるならコードユニットの数が欲しいはず。コードポイントが欲しい場面はエンコーディングを強く意識する時だけ?」 / Twitter

GraphQL と疎結合

天重誠二さんはTwitterを使っています 「GraphQLの問題点ってデータがデータでしかないっていうことだとおもうけど、そう考える人自体が少なそう。というかデータ返却装置として考えられたRESTful APIというものがあり、それだったらGraphQLのほうがましじゃんというのは、それはそうとしかいえない。」 / Twitter
天重誠二さんはTwitterを使っています 「RESTはクライアントが操作したいデータを取り出す手段ではなくて、むしろ情報隠蔽とかのほうが文脈として近いとおもう。だから resource じゃなくて representation なんだとおもうけど。」 / Twitter
天重誠二さんはTwitterを使っています 「こちらの意見は getter がよくないという見解とだいたい同じだとおもっていて、GraphQLがデータプロバイダーである以上は計算処理はクライアント側で行なうことになる。そのままやると依存がいろんなところに散在する。そういう点をハンドリングできるなら使っていい。 https://t.co/HSWHDmJYAx」 / Twitter
増田 亨.さんはTwitterを使っています 「GraphQLを実際に使ってみてわかったことは、GraphQLを使えば使うほど結合度が上がっていく、ということ。 アプリケーション間の結合度を下げたかったらGraphQLは使わない方が良い。 GraphQLを使って疎結合に設計し疎結合を維持改善するのはふつうの人には無理。」 / Twitter
増田 亨.さんはTwitterを使っています 「安全な型とは、取り得る値の範囲が適切に制限され、可能な操作が適切に制限されている型である。 扱いたい値の範囲よりも広い範囲を扱え、やりたい操作以外の操作ができてしまう型は、危険な型である。 言語や標準ライブラリに用意された汎用的な型は、特定のアプリケーションでは全て危険な型である。」 / Twitter

一見簡単そうにみえること

Miura HidekiさんはTwitterを使っています 「比較 コピー」 / Twitter
伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「#一見簡単そうにみえるが実は数多のエンジニア達を絶望させてきたやつ ・文字 ・日付 ・小数 ・乱数 あとなんかある?」 / Twitter
Miura HidekiさんはTwitterを使っています 「xor使う賢いやつがあったな。たしか」 / Twitter
Jun HaradaさんはTwitterを使っています 「平均 ※ ナイーブに足して割ると、足した時点でオーバーフローしてることがあって結果が間違う」 / Twitter
Jun HaradaさんはTwitterを使っています 「言うたら四則演算は全般的にちゃんと考えてやんないと死ぬ気はする。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 xor使ってないけどこれは? 先に半分にして下1bit見て補正 https://t.co/Om6LfnlQD4」 / Twitter
On finding the average of two unsigned integers without overflow - The Old New Thing
Miura HidekiさんはTwitterを使っています 「@anohana ありがとうございます。まさにこれです。これxor使っているのでは?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 あ、SIMDバージョンの方は使ってますね」 / Twitter

多段階計算

INA LintaroさんはTwitterを使っています 「Scala 3の多段階計算がよくできていて、多段階計算の説明をするときにもう「MetaOCamlのアレ」と言わずに「Scalaのアレ」と言えばいいことがわかってきた。書き心地もまぁまぁよい。 https://t.co/1VIzeCjvjN」 / Twitter
Runtime Multi-Stage Programming | Scala 3 Language Reference | Scala Documentation
Kenji YoshidaさんはTwitterを使っています 「@oarat https://t.co/yda7e3TyiB https://t.co/YmAONFT1yJ MetaOCamlといえばこんなのが(まだ直ってないっぽい?😢)」 / Twitter
Unsound use of metaprogramming quotes: future-stage type evidence shouldn't be usable in the current stage · Issue #9353 · lampepfl/dotty
Kenji YoshidaさんはTwitterを使っています 「調べだすと 「Olegさんに、自分の論文をレビューしてもらってる際に指摘してもらったのだけれど、MetaOCamlで同等のコード書くと正しくrejectされるのに、Dottyだと通ってしまってClassCastExceptionとか発生させられるのunsoundでまずいよね」 みたいなissue出てきて面白い(現時点でまだopenなまま)」 / Twitter
INA LintaroさんはTwitterを使っています 「@xuwei_k ああ、そういうのめっちゃありそう。多段階計算、雑に言うと、むずかしい。」 / Twitter

AST 言語

Takuo WatanabeさんはTwitterを使っています 「@miura1729 プログラミング言語がチューリング完全である必要はないと思います。汎用言語から機能が非常に限定されたDSLまでのスペクトルの中で、どこまでが「プログラミング言語」かと決めるのは難しそうです。HTMLだって用途の限定されたプログラミング言語と言って良いのでは。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 言語Lがプログラミング言語であるということは、Lの語P(=プログラム)について何らかの「計算」が定義できると考えてもいいかも知れません。HTMLもwebページの構成を計算だと考えればいけるかも知れません :-)」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 JSONがプログラミング言語かという議論もあるみたいですが、これはS式がプログラミング言語かというのと同じですね。情報の構造を記述していますが、計算を記述するにはもう1段階必要だと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo 確かに、SyntaxのみでSemanticsを定義されていないものをプログラミング言語と呼ぶかという話のような気がします。JSONもS式も適切にSemanticsを定めればプログラミング言語になると思いますが、その時は別の呼び名になりますからね。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 はい。JSONやXMLで適当にASTを表現して、それに意味を与えることはできますし、処理系を作ることもできますね。おそらくそうやっているプログラミング言語もあると思います(自分でパーザ書かなくてよいので楽ですよね)。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@wtakuo @miura1729 JSONやS式はわかりやすいですが、yamlやmarkdownになるとレンダリングに参照解決も含むことになるので、かなり計算の領域に近い気がします。けっこう微妙ですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda @wtakuo HTML/CSSだとレンダリングのボックスの大きさとかで四則演算は定義出来そうな気がします。ループや再帰が実現できるかは分かりませんが。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「以前の勤務先の所属講座(ボスは代数仕様記述言語の専門家)ではプログラミング言語、仕様記述言語、マークアップ言語等をまとめて「計算機言語」(computer language)と呼んでいました。」 / Twitter
星にゃーんさんはTwitterを使っています 「HTMLやJSONなどとプログラミング言語をまとめて表す、「コンピュータが解釈することを想定した形式言語」ぐらいの気持ちのキャッチーな専門用語が欲しい」 / Twitter

Intersection Types と Union Types

がくぞさんはTwitterを使っています 「これは実際そう。 なのでフィールド数が多くなりすぎるようなら関係性の深いフィールドのいくつかをまとめて別概念として別のrecord作って構造をネストさせた方が良さそうな感じですねー。 (なのでopticsがますます欲しくなる)」 / Twitter
がくぞさんはTwitterを使っています 「Builderは後の改修でrecoedにフィールドが追加されても、Builderの利用側がコンパイルエラーにならず実行時エラーになってしまうので、静的検査を活かしていこうというこのご時世では非常に辛いんですよね……」 / Twitter
部屋は水浸しにしないほうがいいさんはTwitterを使っています 「またtype-safe builderの話してる…と思ったらそんなことなかった」 / Twitter
がくぞさんはTwitterを使っています 「Javaでtype-safe builderをエミュレートした話する? https://t.co/pdXpGv7apE」 / Twitter
Java で Scala の Type Safe Builder パターンをエミュレートする
がくぞさんはTwitterを使っています 「Intersection Typesでtype-safe builderが定義しやすくなった話する? https://t.co/7bY0LnzvCB」 / Twitter
Intersection Types を利用した Type Safe Builder の改善
がくぞさんはTwitterを使っています 「JavaもはよIntersection TypesとUnion Types導入してくだされ~」 / Twitter
部屋は水浸しにしないほうがいいさんはTwitterを使っています 「またtype-safe builderの話してる…と思ったらそんなことなかった」 / Twitter
がくぞさんはTwitterを使っています 「Builderは後の改修でrecoedにフィールドが追加されても、Builderの利用側がコンパイルエラーにならず実行時エラーになってしまうので、静的検査を活かしていこうというこのご時世では非常に辛いんですよね……」 / Twitter
kakkun61さんはTwitterを使っています 「@hishidama Haskeller 的にはそういうやり方してて困ってないから不便じゃないんじゃないかな(パラダイムの相性はあるかも」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@YujiSoftware @hishidama まあ、文法提案段階だとラムダのときとかraw stringのときとか、アリモノそのまま使うこと多いですね。」 / Twitter
with 式 - C# リファレンス | Microsoft Docs
YujiSoftware.javaさんはTwitterを使っています 「@hishidama @kis C#の構文を進行にしたのかもしれません。まんま同じです… https://t.co/7O6sibSe5h」 / Twitter
ひしだまさんはTwitterを使っています 「@kis なるほど」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@hishidama 今までのJavaっぽい構文だと今までのJavaが持ってる機能としてパースされてしまうので、新しい機能は今までのJavaっぽくない構文として入ることになるのかも。」 / Twitter
ひしだまさんはTwitterを使っています 「@kis そのwith、なんか(今までの)Javaっぽくない構文ですね^^;」 / Twitter

実数の濃度

Rui UeyamaさんはTwitterを使っています 「大学院で出た課題で一番記憶に残ってるのは、[0,1]と(0,1)の実数の濃度が等しいと授業でやったけど、実際に1対1で対応するマッピングを考えよというやつかな。0から1までの間に実数は無限個にあるけど、境界を含むと2個多い(多くないけど)。それをどうやって押し込むか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「一つの答えとしては、まず0⇔½、1⇔⅓と対応させた上で、残りは½⇔¼、⅓⇔⅕、¼⇔⅙、⅕⇔⅐、⅙⇔⅛……と対応させることで、2つの余分な要素を(0,1)に押し込めることができるのでした。」 / Twitter

自動型注釈

市川 真一さんはTwitterを使っています 「@miura1729 動的に型付けされる言語で、プログラムを走らせてみた結果、得られた型情報をソースコード上に自動的に型注釈として挿入するみたいな試みは、どんな処理系があるでしょうか」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 Rubyはそういうことを検討していたと聞きます。結局TypeProfのようなアプローチになりましたけど。高性能なJITコンパイラだと型情報を持っているのでコンパイラ開発チームが内部でそう言うツールを使っていることは考えられますね。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 了解です。ソースコードのテキスト表現を直接修正するよりも、バイナリ表現で保持しておいて修正するなら、実現可能性はあるかもと思っています。バイナリ表現を、テキスト表現と相互に変換できれば Git で管理したり、人がコード修正したりするのに支障はないかなと」 / Twitter

数値計算のテスト

kenjikunさんはTwitterを使っています 「数値計算のテストコード難しい 解析解がわからないから数値積分してるのに何と合ってればいいんだ」 / Twitter
バドみんみんさんはTwitterを使っています 「@kenjikun__ 数値積分をする時は、vegas https://t.co/rgJ9TOFZQV を使ってみては? 自動的に精度の見積りをしてくれる優れものです。」 / Twitter
gplepage/vegas: Adaptive multidimensional Monte Carlo integration.

Web ブラウザのサブセット仕様

mizchiさんはTwitterを使っています 「何度も言ってるけどブラウザ仕様の肥大化が開発力のある一部のベンダの寡占につながってるので、個人でもちょっと頑張ったら実装可能なレベルのサブセットを定義したほうがいいと思う。div と flex と ES Modules しかないぐらいの」 / Twitter
mizchiさんはTwitterを使っています 「今のブラウザの課題はアクセシビリティなので、規定要素として div を定義するんじゃなくて、アクセシビリティだけ定義してそれの表象として必要最低限の要素だけあるといいのかもしれない」 / Twitter

Web ブラウザの独占

なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「あと、Googleって最初はGeckoの開発に積極的だったけど思い通りに行かないので引き揚げて、次にAppleのWebKitに注力したけどそれも思い通りにならないのでforkしてBlinkが生まれたという歴史ももっと知られるべき。」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「で、新仕様案を大量に出してくるけど、実験実装してたものすら削除せざるをえなくなった展開を何度も見てるんよね。これが完全な独占状態になると……あとは想像つくよね。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「TC39関連はAppleとMozillaは同じくらいの対応速度だし、そんなにApple社内事情が発生しないエリアみたいだが、Web APIとかと一緒に考えてAppleは対応遅いとか言っているのはどういう事例なのかホント聞きたい (リリースサイクルの話は置いておいて)」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「IE6の頃は、 - Standard trackが機能してなかった(MSとNetscape共々) - NetscapeはGeckoへの移行でちゃんとした製品出せなかった - MSはインターネットよりもイントラネット製品に注力 - 対Javaの関係上IEチームがAvalonへリソースを振り分けることになった でしかないよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MSとかGのサイト(Office 365とか)で自分たちが欲しいから (他社が反対したとしても) Chromiumに入れてたWICGにしかない機能を、他のブラウザベンダに入れるように要求した時、対応しなければTier-1サポート外すとか言われたらどうするかみたいなことが起きうるということが今は問題になるかもでは?」 / Twitter

型付け談義-1

Miura HidekiさんはTwitterを使っています 「Railsのようなメタプログラミングのキラーアプリケーションが開発されれば、世間は手のひら返すと思うけどな。いまならそのメタプログラミングを静的に検査するということも可能になりつつある気がする。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Ruby, Python, JSが流行るずっとずっと前には動的型付け言語なんて計算機無駄づかいのおもちゃだという風潮があったことは忘れないようにしたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そして、コンピュータサイエンスのほぼすべての価値観は繰り返すと言うことも」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 ちょ、言い方 :) 「計算機資源のコストバランスを考えるとそうしたことに回す余裕がない」くらい?」 / Twitter
_ko1さんはTwitterを使っています 「@miura1729 emacs なんて富豪すぎ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@_ko1 ブラウザがずっと重いアプリケーションで居続けることは想像できませんでした。」 / Twitter
_ko1さんはTwitterを使っています 「@miura1729 気にするほど重いかな」 / Twitter
Miura HidekiさんはTwitterを使っています 「@_ko1 メモリ4Gだと苦しいっす」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @_ko1 熱で減速されてるCPUの元でブラウザ使ったまんまだと、裏で計算機リソース使うようなもの(ex. ブラウザのbuild等)走らせるの無謀ですね...」 / Twitter
_ko1さんはTwitterを使っています 「@miura1729 なるほど、そこは実は現代ではないとか。。。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@_ko1 @miura1729 消費者向けのコンピュータの主な用途がWeb系になってしまっている今、ブラウザが消費者向けコンピュータの計算機資源をあるだけ使うべく肥大化するのは必然かと。」 / Twitter
ひさてるさんさんはTwitterを使っています 「ポール・グレアムの LISP と Ruby 推しな 00 年代のセンスに反して、Google は Java を使いながら Go を作り、MS は TypeScript を作り、Apple は Swift を作って、Facebook は PHP の型あり言語を作ったんですよね」 / Twitter
ひさてるさんさんはTwitterを使っています 「メタプログラミングと地続きかはどうでもよくて、みんなけっきょく型チェックが欲しかったんだなあ」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru そりゃそうよ」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr Rails が信じられた時代もあり、JavaScript を Scheme だと歓迎した時代もあって、その歴史があって今があるのもまた...」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru でもまあ、型チェックがないASMやCOBOLを経て、今があるのに。型チェックが要らないって信じたのがまず間違いなんだよなあ・・・。型推論は楽でいいね」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr Scala がなかったら認知されてなかったし、Haskell がなかったら Scala がそう作られなかったし、みんなつながってる」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru まあ、断絶したものは少ないわな。プログラミングにおける断絶した言語仕様や、工学概念って何かあんのかな」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr Prolog はまだ孤高かも」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru Prolog独自の概念ってなんかあったっけ?個人的に途絶えたって思ってるのはメッセージパッシングかなあ?」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr 論理学の方程式を解くことで問題の答えを得る言語 https://t.co/pMueZvBqhc」 / Twitter
Prolog始めました - 'きぃの独話'
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru 論理プログラミング・・・これは孤高だ」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr ユーザーレベルで型推論を作るようになるとつながるかも」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru ある意味B-Treeをデータ構造定義と探索アルゴリズムだけでなく、言語仕様として組み込んだってことよね。すごいけど、これどういう問題解決に役立つんだ(困惑」 / Twitter
ひさてるさんさんはTwitterを使っています 「@kkmsr 私の右隣の人は嘘つきです、私は犯人ではありません、みたいな問題の解決」 / Twitter
new Kkmsr();さんはTwitterを使っています 「@tanakahisateru 論理学よね。一昔前にイメージされてたAIって感じ」 / Twitter

型付け談義-2(意味論と型システム)

mod_poppoさんはTwitterを使っています 「リッチな静的型も、実行時型情報もあるHaskellが最強ってことで丸く収まりませんか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「ここから始まる議論が面白すぎる」 / Twitter
Dan KogaiさんはTwitterを使っています 「欲しかったのは 🙅‍♂️型チェック 🙆‍♀️静的解析」 / Twitter
Miura HidekiさんはTwitterを使っています 「なるほど、分かりやすい。構文的対象ってのはなるほど、なぜかそう言う認識が無かった」 / Twitter
画力・博士号さんはTwitterを使っています 「ところでまたもや「動的型つきの言語を『型なしの言語』と呼ぶのはおかしい」論が述べられているのを目にしてしまったのでアンガーマネジメントが必要になってきました.」 / Twitter
画力・博士号さんはTwitterを使っています 「* 俗に「動的型つき」と呼ばれる際の「型」と「静的型」の「型」は異なる対象を指す語である * 後者のみを「型」と呼び,前者をそう呼ばない流儀も普通にある ということを把握していれば(プロパガンダでない限り)出てこない言明だと思うけれども,どういう理解からこの言明が出てくるんだろう」 / Twitter
Godskin HenninさんはTwitterを使っています 「@bd_gfngfn リフレクションなどの機能で「実行時にも型がある」などといった説明がなされるのは原因の一つとしてありそうですね」 / Twitter
ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@bd_gfngfn 単にその人が「後者のみを「型」と呼び,前者をそう呼ばない流儀」を認めてないというだけの話のような気もします」 / Twitter
画力・博士号さんはTwitterを使っています 「@syobon_hinata なので「(プロパガンダでない限り)」という限定をしました」 / Twitter
ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@bd_gfngfn なるほど、その限定はそういう意味だったんですね」 / Twitter
画力・博士号さんはTwitterを使っています 「(俗に「動的型つき」と呼ばれる際の「型」は “実行時のデータの形式の識別に使うタグ” であって意味論の範疇に属するもので,一方で「(静的)型」は “何らかの不変条件を表現する構文的対象” であって型システムに属するもの)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@bd_gfngfn それは、静的型付きの「型」は普通実行時に使用される必要がない、という意味ですかね?」 / Twitter
画力・博士号さんはTwitterを使っています 「@igrep 疑問の意図が解っていませんが,少なくとも両者の「型」は概念からして異なるという主張です.また補足しましたが「意味論が(静的)型に依存しない」という意味ならCurryスタイルはそうですし,Churchスタイルでも “タグ” の方の「型」を(静的)型が兼ねていると看なせます https://t.co/GJso79Vgjn」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@bd_gfngfn ありがとうございます。純粋に元の発言の「一方で「(静的)型」は~」の意味がよくわからなかったので伺いました。」 / Twitter
ぐらふぃさんはTwitterを使っています 「@bd_gfngfn 後者は当然全く把握しておらず、前者についても実行時に持つ情報と静的な型がなんとなく一対一対応するようなイメージを持ってるんじゃないですかね。あと、実行時検査のための情報を表す語として「型(タグ)」くらいしかないのもありそうです」 / Twitter
ぐらふぃさんはTwitterを使っています 「@bd_gfngfn あくまで個人的には、アセンブリなんかの実行時の情報すらない言語を使うことが多いことがあるせいか、動的型付けと呼ぶ流儀ではいます」 / Twitter
画力・博士号さんはTwitterを使っています 「(いや厳密なことを言えばChurchスタイルなら意味論が(静的)型にも依存しますが,それは(静的)型が “タグ” を兼ねていると看なせる)」 / Twitter
画力・博士号さんはTwitterを使っています 「誤読されている気配があったので補足すると「動的型つきの言語を『型なしの言語』と呼ぶのはおかしい」論に対して異を唱えているのであって,当然「型なしの言語を『動的型つきの言語』と呼ぶのはおかしい」という主張は含意していません(うーんこの差異を文面から知覚しない人がいるというのは困る)」 / Twitter
:: M.LexeeさんはTwitterを使っています 「動的型を「型」とは呼ばない定義においては、その静的解析こそが型チェックを意味しているんですよね 構文解析なども静的解析だが、ロジックの検証の場面では「どこで間違えたか」のトレーサビリティを考えて設計すると結局は(静的な)型システムになるはず」 / Twitter
Miura HidekiさんはTwitterを使っています 「@MOT4949 Ruby向けの静的解析のプログラムを作ったことがありますが、これは型チェックなのでしょうか?TypeProfみたいなものです。」 / Twitter
:: M.LexeeさんはTwitterを使っています 「@miura1729 TypeProfを知らないのでなんとも…なんかunification(式にボトムアップで部分から全体にかけて「ここは型が一致していなければいけない」という制約から型を解いていって、どうあがいても制約が満たせないことがわかったらエラー吐く)みたいなことやってればたぶん…」 / Twitter
:: M.LexeeさんはTwitterを使っています 「@miura1729 これは高度な型システムな場合で、もっと単純な型システムであればそんな複雑なことしなくてもいいかもしれないです」 / Twitter

ダックタイピング

👻 道化師 🃏さんはTwitterを使っています 「重要なのは静的解析ができるかどうかであって、ダックタイピング自体は別に嫌われてなくない? 言語に依存はするけど、ダックタイピングであっても静的解析は全然普通に行われるし。」 / Twitter
(Ǝ)ɐsıɥıɥso⅄ ouɐɓnSさんはTwitterを使っています 「なんでダックタイピングがそこまで嫌われるようになったかって、よい企業に雇用されて大規模なアプリ開発なんかやるようになったからだろ、とは思ってる」 / Twitter
noriさんはTwitterを使っています 「@koshian 人の脳みその性能はそれぞれ違うしコーディング能力もそれぞれ違う事が明らかになってきて、人数やコードベースの規模が増えると辛い事がわかってきたからってのが大きいっすね多分」 / Twitter

真部分集合と部分集合

Yusuke TeradaさんはTwitterを使っています 「確か10年くらい前に高校教科書の ⊂ が部分集合に変わったはず。 真部分集合については,今の教科書では記号の定義はなされず,教科書によっては「真部分集合」という単語自体が登場しないものもあった。https://t.co/QwdBizkGrP」 / Twitter
mod_poppoさんはTwitterを使っています 「俺の頃は高校数学では真部分集合が⊂だったけど、今の高校数学は違うのか」 / Twitter
嘉田 勝さんはTwitterを使っています 「A⊂B 真部分集合(← A=B のときはない) は 【廃れた流儀】です。そして廃れるべき理由があります。「真部分集合」を表す記号は一般的な数学における存在価値がものすごく低いのです。 過去には高校数学教科書がその流儀でしたが、こんにち使う人はほとんどいませんし、使うべきではありません。」 / Twitter
mod_poppoさんはTwitterを使っています 「真部分集合よりも部分集合の方がよく使うし、真部分集合よりも部分集合の方が基本的な概念だから、部分集合の記号には真部分集合とかいうのに遠慮しないでなるべく書きやすいものを使いたい」 / Twitter
Xirdim【ひるでぃむ】さんはTwitterを使っています 「〈一般的〉 A⊆B 部分集合(← A=B のときもある) A⊂B 真部分集合(← A=B のときはない) 〈日本の高校数学〉 A⊂B 部分集合 …え?じゃあ真部分集合どうすんの?! ↓ A⊊B 真部分集合 こういうのマジでやめた方がいいと思う()」 / Twitter
Xirdim【ひるでぃむ】さんはTwitterを使っています 「A⊂B が多義的になってしまう時点でかなり酷いのに、 それに伴って ⊊ という書きづらく読みづらい記号を作る羽目になるとか最悪がすぎる」 / Twitter
こぶなつ(新)さんはTwitterを使っています 「@xirdim いえ、「〈日本の高校数学〉」として挙げられた流儀は、日本限定でも高校数学限定でもありません。 この二つの流儀の共存/混乱は国際的に起きているものです。 https://t.co/lZPxrnvwDQ」 / Twitter
Glossary of mathematical symbols - Wikipedia
こぶなつ(新)さんはTwitterを使っています 「「共存/混乱」と書いたのは、よく"mind/brain"とか書くのと同じで、これを共存と呼ぶか混乱と呼ぶかが示唆する立場の違いを棚上げする意図でした。(私はここでは流儀が二つあることが良いとも悪いとも主張しない、ということです)」 / Twitter
落ち武者さんはTwitterを使っています 「@xirdim それ、日本の高校数学ゆうても改定後やで。おっちゃんらは前者で習った。高校で真部分集合か否かが問題になることってあんまりないし、しょうもない引っ掛け問題作りよるから、改定して良かったと思うで。」 / Twitter
ジョリーアンドサラーさんはTwitterを使っています 「@xirdim 記号の意味が曖昧な事や他の記号とのバランスが取れてなかったりとかの件ですね。数学書を読むと、単語の係り結びがかなりいい加減な事が分かります。自明であるとか言っちゃうし。本質は間違いが無い厳密な数学ですが、その表現道具の記号、文字、言語が曖昧で間違いが多い人間的なモノなんです。」 / Twitter

histric

histric-1

h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
画力・博士号さんはTwitterを使っています 「シーケンス図は(実装直接弄ればいいものをなぜ説明のためにこんな面倒な図を描かねばならんのか)と内心思いつつ描き起こしたらより設計の水準での議論が洗練されてシーケンス図を描き起こさなかった場合よりも設計上ずっと自然な実装の変更ができたことがあるので全然馬鹿にできないと思っている」 / Twitter
画力・博士号さんはTwitterを使っています 「趣味開発ではなくギョームをやるようになって以来,(シーケンス図に限らず)設計の水準の何らかの記述にはそれを描き起こす作業によって洗練の思案が駆動されるという効果があり, “実装を明快に保ちかつそれを集団で共有しながら開発を進めるのに缺くことのできないコスト” だと思うようになった」 / Twitter
h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
かわいしんさんはTwitterを使っています 「『自然演繹100題ノック』は最小命題論理、直観主義命題論理、古典命題論理、古典述語論理の四つのパートからなりますが、四つ目の述語論理は趣が異なるかもしれません。そんな述語論理パートから難問の一つです。 この式は、講師の方からご提案いただいたもので、完全性定理の証明に使うこともあります https://t.co/wqG1J2uVov」 / Twitter
かわいしんさんはTwitterを使っています 「証明図に挑戦する様子 https://t.co/CHuRzZ1H6c」 / Twitter
ぼいつぉふさんはTwitterを使っています 「@squawai シーケント計算でやってみました!自然演繹とシーケント計算で証明を見比べるのも面白いですね。ぜひ@sequent_botでも遊んでみてください! https://t.co/GVR8aelY2h」 / Twitter
ぼいつぉふさんはTwitterを使っています 「@sequent_bot ex x (ex y P(y) implies P(x))」 / Twitter
Sequent botさんはTwitterを使っています 「.@boitsov14 Provable. (rnglg) https://t.co/pno18VHuDk」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「C言語や C++ の assert と同じで、テスト周りを頑張るのって基本的に筋が悪いんよねぇ。( 証明だとか、静的型検査とかそう言う方面が発達していくべき )」 / Twitter
春姫(上)さんはTwitterを使っています 「@wraith13 その方面ではSPARKが既に長年使われているのに特殊な業界以外では全然盛り上がっていないので、メジャーな言語が無料の処理系で対応しないと普及は厳しそう。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「@wakaba_faure_1 Coq とか実績があるにはあっても、どうにも取っ付きにくく怠そうな感じだしねぇ。」 / Twitter
春姫(上)さんはTwitterを使っています 「@wraith13 それ。Coqは人間による介入が多く必要な点と、ソースを自動生成できるとはいえ証明に使う言語とターゲット言語が別って点で普及には問題があると思う。」 / Twitter
Tomoki OdaさんはTwitterを使っています 「スキーム論とか人気ですけど、実際代数幾何でやってるコホモロジー論って埋め込まれてないスキームをどう射影代数多様体と見るか?って話なんで結局の所射影代数多様体の話に落ち着くわけなんですよね」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「ちなみに、データとメソッドをまとめて扱うのは抽象データ型であって、それをオブジェクト指向ではクラスで実現しているというだけで、データとメソッドをまとめただけではオブジェクト指向ではない、というスタンス。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「要素のfocus, JavaScriptで強制的にfocusイベントを発火させるとかして制御しないといけないので宣言的にDOMの構造を記述する現代のアーキテクチャーと相性が悪い」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こう、グローバルな状態だけじゃなくてコンポーネントにローカルな状態もほしくなる気持ちがようやく分かってきたなぁ。他の状態管理フレームワークだとどうするんだろう。」 / Twitter
mod_poppoさんはTwitterを使っています 「ASCIIコードに関数合成演算子がなかったばっかりにStandard MLはアルファベット小文字のoを関数合成に使い、Haskellはドットを使う羽目になった」 / Twitter
とみながたけひろさんはTwitterを使っています 「そういえば最近入った「怪しげな文字を使って人を騙してコードレビューをすり抜ける」というのの対策によりコンパイルが通らなくなったコードがあったんだが double x²=x*x; という感じで使われていた。いや使いたくなるのはわかるが…」 / Twitter
とみながたけひろさんはTwitterを使っています 「あ、私の書いたコードではないです むしろ日本人などのマルチバイト文字圏のプログラマの方がこういうの書かなさそう(偏見)」 / Twitter
Miura HidekiさんはTwitterを使っています 「並列処理でスタックの動きを見きって実装する手法と言うことで、abcl/fを連想した https://t.co/vhNxewuP61」 / Twitter
ABCL/f report
κeenさんはTwitterを使っています 「shift/reset以外で興味深かったのはポスターの Fork-Join Parallelism に対する Boehm GC の拡張 だった。for-joinのスタックする点や子が動いてる間は親は動かないという性質を上手く使ってたし子が終わるときにヒープを親にマージするのが目から鱗だった。」 / Twitter
がくぞさんはTwitterを使っています 「Flix の Pure と Impure をマークしてコンパイラが検証してくれる仕組みいいよね。Scalaにも輸入されないかな? https://t.co/In3tJZfKT4」 / Twitter
プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー
がくぞさんはTwitterを使っています 「JSONPath と optics の比較とかって誰かまとめてたりしないかな?」 / Twitter
かとじゅんさんはTwitterを使っています 「OOPの継承の類いはRustではenum+structでカバーできた。トレイトオブジェクトでもカバーできるんだけど、既知の型だけでカバーする場合、つまりScalaでいうsealedされた型で扱う場合はenumで十分だという知見が得られた。完全にスタティックディスパッチ万歳状態。ゼロコスト抽象ってこういうことかー」 / Twitter

mod_poppoさんはTwitterを使っています 「Haskellでの型レベルプログラミングの記事を書き始めたけど、構成どうしようかなあ。型とカインド→幽霊型→DataKinds→TypeFamiliesみたいな流れか?GADTsの説明もどこかに要ると思うんだけどどこに入れるのが良いか」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「try blockがあれば、let chainもmonadicにかける気がするし、いろいろ便利だと思うんだが、何がアカンのでしょうかね・・・(´・_・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「ndarrayは一般に data[i*inc_i + j*inc_j + k*inc_k + ...]でアクセスするようにして任意階数に対応するはず(というかこのアクセス方式を指してndarrayと呼ぶんだと思っている(´・ω・`)」 / Twitter
shisama / Masashi HiranoさんはTwitterを使っています 「出てこなかったけど `--allow-write` とか `--allow-net` とかのオプトイン形式のセキュリティモデルもDenoの良いところだと思う #tng38」 / Twitter
_ko1さんはTwitterを使っています 「ある処理(例えばウェブのリクエスト)に時間制限を付ける方法を探しています。言語・フレームワークにサポートがあったら教えてください。その時、タイムアウト時に何が起こるか(必要な後始末は安全に行えるか)に興味があります。」 / Twitter
Yohei TSUJIさんはTwitterを使っています 「本来は利用側に意識させたくない型パラメタなので、ちゃんとJavaDocの型パラメタAの説明にも 「通常は実装詳細として隠蔽される」 って書いてあるんだな。 https://t.co/QYQ7gELbgh こういうのを隠蔽しつつ型をパラメタ化できるのが抽象型メンバ #ScalaMatsuri」 / Twitter
Collector (Java Platform SE 8 )
かすていらふぃさんはTwitterを使っています 「HKD、TSのMapped Typeを汎用的にできてうれしいねみたいな話と思ってたら後半一気に可能性が広がって面白かった #ScalaMatsuri」 / Twitter
がくぞさんはTwitterを使っています 「Monadとか知らなくてもみんなListを普通に使ってるように、最初からMonadうんぬん言わずにListなりEitherなり具象の便利なデータ構造を使う所から始めればいいと思ういす。そのへんに慣れたあとで、実は抽象化できるんだよ的な流れ(FP in Scalaとかがまさにそういう章立て) #ScalaMatsuri」 / Twitter
がくぞさんはTwitterを使っています 「ZIOでこの辺の認可のためのリソース取得とかとドメインロジックとの整合性つけるのに悩んでたりしたけど、認可もエフェクトとして扱うというアプローチは参考にできるかもしれないなー #ScalaMatsuri」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「useStateなどがどうやって動くか。やっぱりfunctional componentって都度呼ばれるのかと思いきや初期化時に一回だけなのね。だとするとhyperappみたいなのじゃ同じことをするのは難しいなぁ / “Deep dive: How do React hooks really work?” https://t.co/1pi33noP1u」 / Twitter
Deep dive: How do React hooks really work?
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「PostCSS, pluginがCSSの構文木を直接触れるのがミソなのかな? #RD勉強会」 / Twitter
jeeemaさんはTwitterを使っています 「一見グラフが関係なさそうなとこでもグラフにして考えると楽なのは、二項関係と辺が実質同じものだから。特に、同値関係を無向辺とみなせば同値類が連結成分に対応する」 / Twitter
jeeemaさんはTwitterを使っています 「集合が有限とみなせる場合にはだいたいの二項関係の問題はグラフの問題に帰着できるということであり、グラフを制すものは世界を制すのだ」 / Twitter
よしこさんはTwitterを使っています 「おー!!Iteratorにmapとかfilterとか生えたらそのまま使いやすそう!! 提案これですね! https://t.co/c4gLxBAS00 #uit_meetup」 / Twitter
tc39/proposal-iterator-helpers: Methods for working with iterators in ECMAScript
JavaScriptの進化で変わる身近なコーディング習慣 - Speaker Deck
よしこさんはTwitterを使っています 「うひょさんが話してるやつこれか! using const hoge = ... #uit_meetup https://t.co/kW3QyttqFC」 / Twitter
tc39/proposal-explicit-resource-management: ECMAScript Explicit Resource Management

関数型プログラミング デザインパターン - Google 検索
関数型言語の実装のチュートリアル - prog-lang-sys-ja
MetaCoq/metacoq: Metaprogramming in Coq
Multi-Paradigm Language TAO
Pleeease · Process CSS with ease
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型検査の一部のみを行う軽量な型検査もこれから有効な場面はあるかもしれないし、逆に、より重い静的型検査もいろいろな場面で求められると思う。例えば、自動的に実行できない型検査とかね。形式手法でいう証明責務ってやつ。自動証明の範囲を出てしまっている型検査。きっと必要。」 / Twitter

受信トレイ - suigun1000@gmail.com - Gmail
メール - Ichikawa Shin'ichi - Outlook
ウォッチリスト - Wikipedia
NHK NEWS WEB|NHKのニュースサイト
Yahoo! JAPAN
Slack | 進捗報告するところ | プログラミング言語処理系が好きな人の集まり
Slack | random | search-tech-jp
@tenpoku1000/WatchさんはTwitterを利用しています / Twitter
Twitter / 通知
tenpoku1000に関するツイートアクティビティアナリティクス
GIGAZINE(ソフトウェア)
GIGAZINE(セキュリティ)
GIGAZINE(ハードウェア)
GIGAZINE(メモ)

Watch-2

Coelacanth's Dream
自作PCニュース|自作.com
自作PCユーザーがゲーム用PCの解説をします - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版
ハードウェア - INTERNET Watch
動向 技術・デバイス - AV Watch
半導体/周辺機器 - PC Watch
ソフトウェア/アプリ - PC Watch
ASCII.jp:ロードマップでわかる!当世プロセッサー事情
iOS | CoRRiENTE.top
HanpenBlog
ADMINISTRATOR STAGE|gihyo.jp … 技術評論社
Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog
InfoQ: ソフトウェア開発の最新情報、トレンドと事例紹介

Watch-3

プログラミング プログラミング - 窓の杜
システム・ファイル デスクトップ - 窓の杜
システム・ファイル システム - 窓の杜
システム・ファイル ファイル - 窓の杜
オフィス・ドキュメント フォント - 窓の杜
山市良のえぬなんとかわーるど
WindowsUpdate | ニッチなPCゲーマーの環境構築Z
Windows Weekly Reportのニュースまとめ 1ページ | マイナビニュース
ASCII.jp:Windows Info
Japan WDK Support Blog
Japan Developer Support Core Team Blog
Home - Windows Developer Blog
Category : Visual Studio
C++ Team Blog

Watch-4

記事一覧 - ASnoKaze blog
C カテゴリーの記事一覧 - yohhoyの日記
C++ カテゴリーの記事一覧 - yohhoyの日記
記事一覧 - in neuro
記事一覧 - 借り初めのひみつきち
記事一覧 - kateinoigakukunのブログ
記事一覧 - Arantium Maestum
記事一覧 - knqyf263's blog
VA Linux エンジニアブログ
Project Zero
won't fix
blog.jxck.io
Lispエイリアンの狂想曲 | κeenのHappy Hacκing Blog
ベインのブログ

Watch-5

鈴木淳也のPay Attention 2022年 記事一覧 - Impress Watch
OSDN Magazine -- オープンソースの話題満載
POSTD | ニジボックスが運営するエンジニアに向けたキュレーションメディア
Ruby / Rails関連の記事一覧|TechRacho by BPS株式会社
クックパッド開発者ブログ
Engineers' Blog | マネーフォワード エンジニアブログ
記事一覧 - ブログのおんがえし
記事一覧 - 未完成な論を綴るブログ
記事一覧 - 水底の血
Cygames Engineers' Blog
Fixstars Tech Blog /proc/cpuinfo - このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
Blog - Preferred Networks Research & Development
usb 3.2 gen 2x2 hub - Google 検索
usb audio 3.0 dac - Google 検索

規格

The Unicode Blog
Hardware Specification - PRMs | 01.org
NVMe Specification – NVM Express
INCITS: INCITS 574-202x - Information Technology - ATA Command Set - 6 (ACS-6)
Specifications | Unified Extensible Firmware Interface Forum
WG 14 Document log
PE Format - Windows applications | Microsoft Docs
WebAssembly Specification — WebAssembly 1.1
Download DWARF Standards
Wayland
Desktop Entry Specification
Blog - Open Container Initiative
Specifications - OpenMP
Khronos SPIR-V Registry - The Khronos Group Inc

鉄道

天気 - Google 検索
東京アメッシュ

気象

停電情報|東京電力パワーグリッド株式会社
でんき予報|東京電力パワーグリッド株式会社|東京電力ホールディングス株式会社
環境省熱中症予防情報サイト 暑さ指数(WBGT)ランキング
気象庁 | 台風情報
気象庁 | 天気図
気象庁|地震情報
iHighway :: ハイウェイ交通情報

運行状況等

鉄道運行情報(長期間運転見合わせ)|NHK NEWS WEB
現在の輸送状況 | JR貨物 日本貨物鉄道株式会社
JR北海道- Hokkaido Railway Company
運行案内|ほくほく線|北越急行株式会社
トピックス | えちごトキめき鉄道株式会社
しなの鉄道株式会社
ニュースリリース|JR東海
東海道・山陽新幹線運行状況
在来線運行状況
ニュースリリース:JR西日本
北陸エリア 運行情報:JR西日本列車運行情報
列車運行情報 - JR四国
運行情報 | JR九州

Wikipedia

北海道

北斗 (列車) - Wikipedia
宗谷 (列車) - Wikipedia
オホーツク (列車) - Wikipedia
おおぞら (列車) - Wikipedia

東日本

しおさい (列車) - Wikipedia
わかしお (列車) - Wikipedia
さざなみ (列車) - Wikipedia
成田エクスプレス - Wikipedia
ひたち (列車) - Wikipedia
いなほ (列車) - Wikipedia
しらゆき (列車) - Wikipedia
つがる (列車) - Wikipedia
あずさ (列車) - Wikipedia
かいじ (列車) - Wikipedia
富士回遊 - Wikipedia
はちおうじ・おうめ - Wikipedia
湘南 (列車) - Wikipedia
踊り子 (列車) - Wikipedia
あかぎ (列車) - Wikipedia
草津 (列車) - Wikipedia
日光 (列車) - Wikipedia

東海

ひだ (列車) - Wikipedia
南紀 (列車) - Wikipedia

西日本

可部線 - Wikipedia
サンライズ出雲 - Wikipedia
サンライズ瀬戸 - Wikipedia
はしだて (列車) - Wikipedia
まいづる (列車) - Wikipedia
たんごリレー - Wikipedia
はまかぜ (列車) - Wikipedia
スーパーはくと - Wikipedia
いなば (列車) - Wikipedia
スーパーまつかぜ - Wikipedia
おき (列車) - Wikipedia

四国

JR四国の車両形式 - Wikipedia
松山高知急行線 - Wikipedia
久万高原町営バス - Wikipedia
久万高原町 - Wikipedia
仁淀川町 - Wikipedia
越知町 - Wikipedia
佐川駅 - Wikipedia
佐川文庫庫舎(旧青山文庫) | さかわのしおり[オフィシャル]さかわ観光協会
「うえまち駅」がオープンしました! | さかわのしおり[オフィシャル]さかわ観光協会
予土線 - Wikipedia
近永駅 - Wikipedia
補充券 - Wikipedia
どーらくさんはTwitterを使っています 「大歩危駅周辺。険しい山の頂上付近に人家が多いのは、まだ鉄道や道路がなかった頃、人々は山の尾根伝いに移動していた時の名残り。 現代ではそれが逆に不便になってしまった。 https://t.co/V5iEH5ljkY」 / Twitter
うずしお (列車) - Wikipedia
むろと (列車) - Wikipedia
剣山 (列車) - Wikipedia
しまんと (列車) - Wikipedia
南風 (列車) - Wikipedia
あしずり (列車) - Wikipedia
宇和海 (列車) - Wikipedia

九州

ゆふ (列車) - Wikipedia
九州横断特急 - Wikipedia
A列車で行こう (列車) - Wikipedia
海幸山幸 (列車) - Wikipedia

案件

ひばりヶ丘駅 - Wikipedia
ときわ台駅 (東京都) - Wikipedia
大宮駅 (埼玉県) - Wikipedia
神宮丸太町駅 - Wikipedia
玉造町駅 - Wikipedia
自治医大駅 - Wikipedia
秦野駅 - Wikipedia
尾張一宮駅 - Wikipedia
柏駅 - Wikipedia
今船停留場 - Wikipedia
花園町駅 - Wikipedia
三島駅 - Wikipedia
徳重駅 (名古屋市) - Wikipedia
桜ノ宮駅 - Wikipedia
横河原駅 - Wikipedia

Wikipedia

Help:早見表 - Wikipedia
Wikipedia:拡張半保護の方針 - Wikipedia
Skin:Vector-DarkCSS - MediaWiki
Category:井戸端の話題 - Wikipedia
Wikipedia:井戸端 - Wikipedia
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「RMSに傾倒して自由(で伽藍)な百科事典を作ろうとしたのがNupediaで、あまりに記事が完成しないのでWikiで記事を集めて補足しようとしたのがWikipedia。なのでWikipedia誕生には特に高尚な意味はないのだけど、Nupediaが消滅していることで歴史の改変が起きているのかもなぁとふと思った。」 / Twitter

列車集中制御装置 - Wikipedia
2020年代のJRダイヤ改正 - Wikipedia
JR東日本の車両形式 - Wikipedia
ループ線 - Wikipedia
関越交通 - Wikipedia
木下駅 - Wikipedia
駒込駅 - Wikipedia
王子駅 - Wikipedia
白金台駅 - Wikipedia
目黒駅 - Wikipedia
自由が丘駅 - Wikipedia
大岡山駅 - Wikipedia
旗の台駅 - Wikipedia
中延駅 - Wikipedia
戸越銀座駅 - Wikipedia
多摩川駅 - Wikipedia
永田町駅 - Wikipedia
中山駅 (神奈川県) - Wikipedia
日比谷駅 - Wikipedia

鉄道

News

JR-E

入場券:JR東日本
入場券にもある定期券、誰がどんな目的で使っている? 背景にある駅の「構造」 | 乗りものニュース
0709beverage_and_foods.pdf
エキナカ商業空間「エキュートエディション新橋」の開業について~3店舗がエキナカ初出店!!~ - 20220215_to02.pdf
「えきねっと」でお申込みされたきっぷのお受取り箇所の拡大について - receive202202.pdf
東京圏におけるホームドアの整備促進について - 20180305.pdf
2021年度のホームドア整備について - 20210406_ho01.pdf
【なし版 本文】2022年3月ダイヤ改正について - 20211217_mt01.pdf
20220324_s01.pdf
鉄道設備におけるスマートメンテナンスの取組みについて - 20191106_ho01.pdf
東北・上越新幹線における新型電車線設備の導入について - 20200121_ho02.pdf
新幹線の速度向上に向けた取り組みについて - 20201006_ho01.pdf
JR EAST Technical Review No.29-AUTUMN.2009 - Tech-29-27-30.pdf
東北新幹線の脱線車両の概要と復旧作業について - 20220325_ho02.pdf

ロマンスカー時刻表(下り土・休日)|ロマンスカー|小田急電鉄
グランクラスが岐路に立つ。北陸新幹線「はくたか」でも飲料・軽食サービス廃止 | タビリス
八高線でキハ110形単行の列車が登場|鉄道ニュース|2022年3月14日掲載|鉄道ファン・railf.jp
特急“いなほ”で編成変更と区間短縮|鉄道ニュース|2022年3月13日掲載|鉄道ファン・railf.jp
JR東日本,東京駅南部東西自由通路の本体工事に着手|鉄道ニュース|2022年3月11日掲載|鉄道ファン・railf.jp
お店を探す | To Go JR我孫子駅店 (テイクアウト専門店) | 回転寿司 スシロー
お店を探す | 八重洲地下街店 ※都市型店舗120円(税込132円)から ※To Go店舗併設 | 回転寿司 スシロー
お店を探す | To Go 大森店(テイクアウト専門店) | 回転寿司 スシロー
大糸線沿線の活性化および持続可能な路線としての方策検討の開始について:JR西日本
2022年2月社長会見 1.営業・輸送概況 2.特急「やくも」への新型車両の投入 3.「DISCOVER WEST mall」開設 :JR西日本
JR西日本「輸送密度2000以下」30線区全リスト。40年ぶり路線大整理も | タビリス
ローカル線、輸送密度2000人以下で法定協議か。国交省「地域モビリティ検討会」資料を読み解く | タビリス
鉄道ローカル線、地方自治体のスタンスを読み解く。論点はどこにあるのか | タビリス
2022年以降に開業する鉄道新線まとめ。あの大型新線にもうすぐ乗れる! | タビリス

利用可能エリア|Suica:JR東日本
お値段 | タッチでGo!新幹線:JR東日本
IC入場サービス「タッチでエキナカ」の利用|利用方法|Suica:JR東日本
Suicaが駅の入場券になるサービス、今までなかった理由は? JR東に聞く - ITmedia NEWS
新幹線・特急列車のグリーン料金等の改定について - 20211026_ho01.pdf
シーズン別の指定席特急料金の改定について - 20211005_ho04.pdf
山形新幹線の全車指定席化と山形・秋田新幹線の特急料金の改定について - 20211116_s01.pdf
2019年10月1日消費税率引上げに伴う運賃・料金改定のご案内 - consumptiontax2019.pdf
JR東日本の共通ポイントサイト - JRE POINT
えきねっと(JR東日本)|トップ:新幹線・JR特急列車の予約 東日本のツアー 駅レンタカー申込
スマートEX
JR西日本 Club J-WEST 会員サポート
お受け取り方法│e5489ご利用ガイド:JRおでかけネット
【検証】e5489で予約したサンライズのきっぷを東京駅で受け取る方法 - toremorの旅手帳

旅行総合研究所タビリス
カテゴリー「鉄道」の記事一覧ページ | 乗りものニュース
鉄道ダイヤ改正ニュース
『鉄道ファン』情報|鉄道ファン・railf.jp
現状のまとめ - JR東日本車両更新予想スレッド 倉庫Wiki
JR東日本(1)|会社別の鉄道ニュース・イベントなど|鉄道ファン・railf.jp
関東エリアの運行情報・運休情報:JR東日本
ニュースリリース:JR東日本
ニュースリリース | JR北海道 - Hokkaido Railway Company
ニュースリリース:JR西日本
えきねっと(JR東日本)|トップ:新幹線・JR特急列車の予約 東日本のツアー 駅レンタカー申込
「スマートEX」気軽にネット予約で新幹線を利用するなら!

食品

食品

Amazon | ネスカフェ ゴールドブレンド 120g | ネスカフェ RSC | 食品・飲料・お酒 通販
Amazon | ネスカフェ ゴールドブレンド エコ&システムパック(詰め替え用) 105g | ネスカフェ RSC | 食品・飲料・お酒 通販
Amazon | [Amazonブランド]Happy Belly パックご飯 新潟県産こしひかり 200g×20個(白米) 特別栽培米 [Amazonブランド] | Happy Belly (ハッピーベリー) | 食品・飲料・お酒 通販

豊洲の雲丹 うに|通販・お取り寄せ‐豊洲市場ドットコム
豊洲のたらこ・明太子|通販・お取り寄せ‐豊洲市場ドットコム
豊洲のいくら|通販・お取り寄せ‐豊洲市場ドットコム
豊洲の鮪 まぐろ|通販・お取り寄せ‐豊洲市場ドットコム
豊洲の鰻 うなぎ|通販・お取り寄せ‐豊洲市場ドットコム
豊洲の果物|通販・お取り寄せ‐豊洲市場ドットコム
豊洲のスイーツ・お菓子|通販・お取り寄せ‐豊洲市場ドットコム
スイーツ | 通販・販売 | 築地お取り寄せ市場
ニュースリリース | acure<アキュア>
投稿 | 淡路屋
神尾弁当 神尾弁当 新潟県新津駅の駅弁
源 オンラインショップ|西の横綱 源のますのすし
お知らせ | 株式会社アベ鳥取堂
商品検索 - お弁当・駅弁・おせちの株式会社ウェルネス伯養軒-通販ショップ

PC

Dell 公式サイト (Dell Japan) | Dell 日本
モニターおよびモニター周辺機器 | Dell 日本
ヨドバシ.com - ヨドバシカメラの公式通販サイト【全品無料配達】
Joshin webショップ - ジョーシンの公式通販サイト
ノジマオンライン - 日本最大級のデジタル家電通販「Nojima Online」
e-TREND | #より良い商品 #より良いサービス #お求めやすい価格

PC

急増!ノートパソコン、モバイルバッテリー、スマホの事故~リコール製品や誤った使い方に注意しましょう~ | 製品安全 | 製品評価技術基盤機構
誤った使い方が火災の導火線に!~配線器具や充電ケーブルで火災、やけどが発生~ | 製品安全 | 製品評価技術基盤機構
【特集】不要になったモバイルバッテリやポータブル電源、どうやって処分する? - PC Watch
Amazon.co.jp: マイクロソフト ベーシック オプティカル マウス for Business ブラック 4YH-00003 有線 USB接続 光学式 両手デザイン 人間工学デザイン Windows対応 : パソコン・周辺機器
Amazon.co.jp: マイクロソフト キーボード 有線/USB接続/防滴 Wired Keyboard 600 ANB-00040 : パソコン・周辺機器
Amazon | ペリックス PERIBOARD-409U JP 有線 ミニ キーボード 光沢仕上げ テンキーレス サイズ 315*147*21 mm 1.8Mケーブル付 日本語配列【正規保証品】 | Perixx | パソコン用キーボード 通販
Amazon.co.jp: StarTech.com 40cm マザーボード接続用シリアルケーブル スロットカバー付 DB9/D-Sub9ピン オス - 10ピン マザーボードシリアルヘッダー メス PLATE9M16 : パソコン・周辺機器
Amazon.co.jp: Plugable USB 3.0 ギガビット イーサネット アダプター 有線 LAN Windows 11、10、8.1、Linux、Chrome OS 互換(ASIX AX88179 チップ使用) : パソコン・周辺機器
Amazon | [20Gbps]Yottamaster NVMe M.2 SSDケース USB3.2 Gen2x2高速インターフェイス 20Gbps超高速 Type-C接続 M-Key/B&M Key対応 2230/2242/2260/2280対応 外付けSSDケース アルミ エンクロージャ グレー[HC2-C3] | Yottamaster | PCパーツ 通販
Amazon.co.jp: 【64GB】 SanDisk サンディスク USBメモリー USB3.1対応 Type-C & Type-Aデュアルコネクタ搭載 R:150MB/s 海外リテール SDDDC2-064G-G46 : パソコン・周辺機器
Amazon | キオクシア(KIOXIA) 旧東芝メモリ SDHCカード 16GB UHS-I対応 Class10 (最大転送速度50MB/s) 日本製 国内正規品 3年保証 Amazon.co.jpモデル KTHN-NW016G | キオクシア(KIOXIA) | SDカード 通販

配線

Amazon | エレコム USB コンセント 充電器 合計24W USB-A×2 【 iPhone (iPhone13シリーズ対応) / Android/タブレット 対応 】 EC-AC03WH | エレコム | 家電&カメラ
Amazon.co.jp: オーム電機 2口タップ袋LEDスイッチ HS-TMP2B2-W : パソコン・周辺機器
Amazon | VGA to HDMI 変換 アダプター ポータブル オス-メス FULL HD (1920 x 1080) @60Hz | AUX 24bit Stereo | STRAZAR | 変換アダプタ 通販
Amazon | UGREEN HDMI切替器 HDMIセレクター 2入力1出力HDMI2.0 HDCP 2.2 4K@60Hz安定版 HDR CEC 3D対応 PS5 PS4 Xbox TV Stick ブルーレイプレーヤー テレビ プロジェクター等に適用 | UGREEN | AVセレクター
Amazon.co.jp: UGREEN 切替器 3.0 高速転送 USB 切り替え PC2台用 プリンタ マウス キーボード ハブなどを切替 手動切替器 プリンタ 切り替え機 USBケーブル×2 1.5m (附属品) (パソコン2:USB機器4) : パソコン・周辺機器
Amazon.co.jp: Amazonベーシック USB2.0延長ケーブル 3.0m (タイプAオス - タイプAメス) : パソコン・周辺機器

消耗品

Amazon | 【第3類医薬品】アイリス 14mL | アイリス | 目薬
Amazon | 【まとめ買い】メガネクリーナ ふきふき メガネ拭きシート 50包×3個 (個包装タイプ) 小林製薬 | メガネクリーナ | ドラッグストア
Amazon | 【まとめ買い】スパイラル黒綿棒 200本入【×4個】 | 平和メディク | ドラッグストア
Amazon | 【Amazon.co.jp限定】 GATSBY(ギャツビー) フェイシャルペーパー 爽快 洗顔シート メンズ フレッシュアクアの香り セット 42枚 (x 3) | GATSBY(ギャツビー) | ビューティー 通販
Amazon.co.jp: 貝印 プリティー フェイスT 3本入×3個 : ビューティー
Amazon | クリニカ アドバンテージ ハブラシ 4列 超コンパク ト ふつう セット 6本 | クリニカ | 大人用ハブラシ 通販
Amazon | ライオン デントチェックアップスタンダード (DENT.Check-Upstandard) フッ素1450ppm 135g×2個セット | ライオン | 大人用ハミガキ粉 通販
Amazon | 【まとめ買い】 スコッティ カシミヤ ポケットティシュー 20枚 (10組) 6個パック ×6パック入り | スコッティ | ティッシュペーパー
Amazon.co.jp: ★ メンソレータム 薬用リップスティック XD2個組 (4個) : ビューティー
Amazon | 【医薬部外品】ミューズ 固形 石鹸 バスサイズ (135g×3個パック) お徳用 殺菌 消毒 手洗い 全身洗浄用 お風呂サイズ | ミューズ | ビューティー 通販
Amazon|AYO 枕カバー 高級棉100% 全サイズピローケース ホテル品質 サテン織 300本高密度 (ネイビー, 43*63cm)|枕カバー・ピローケース オンライン通販
Amazon|AYO 枕 まくら 高級ホテル仕様 高反発枕 横向き対応 丸洗い可能 立体構造43x63cm ホワイト(63*43*20cm)|枕 オンライン通販
Amazon.co.jp : 【Amazon.co.jp限定】 3M お風呂掃除 スポンジ 抗菌 特殊研磨粒子 2個 スコッチブライト バスシャイン BM-12K 2P : ホーム&キッチン
Amazon.co.jp : 【Amazon.co.jp限定】 3M スポンジ キッチン キズつけない 抗菌 スクラブドット清潔 オレンジ 3個 スコッチブライト SDS-02KE-3P : ホーム&キッチン

通信

楽天

Cookieポリシー | 楽天グループ株式会社
楽天モバイル メンバーズステーション
通信・エリア | 楽天モバイル
Rakuten Casa(楽天カーサ) | 通信・エリア | 楽天モバイル
iOS14.4以降を搭載するiPhoneの楽天回線対応について | 製品のお知らせ | 楽天モバイル
迷惑メールを申告する方法 | お客様サポート | 楽天モバイル
【公式】楽天ひかり | IPv6対応の高速インターネット
楽天ひかりのIPv6(クロスパス)対応ルーター | 次世代規格IPv6とは | 高速インターネット | 楽天ひかり
楽天モバイルの5G/4G対応周波数帯(バンド)まとめ・解説

Twitter

Kazuho OkuさんはTwitterを使っています 「あーなるほど。Slack の DNS 障害は、再帰リゾルバのキャッシュから問題のエントリが消えるまで待つ必要があるけど、既に消えてる再帰リゾルバを使うという解決策もあるという話。そりゃそうだ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「逆に考えると、今slack使えている人もリゾルバを変えることで 「つらいわーslackつながらないから仕事できないわー」 って言うことができるかもしれない。ちょっと試してみるか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「運用の問題とか DNSSEC の問題というより、DNS プロトコルに cache invalidation がないってのが今時設計古いんじゃないの? だからこそ「浸透待ち」とか言うんでしょ? という視点は必要だと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「CDNといっても、顧客のドメインを預かって運用しているようなケース(つまりホスティング)から、一般的なjavascriptやCSSを別ドメインから誰でも使えるように流しているケースまで、いろいろあるので、主語デカく語るの無理なんじゃない?」 / Twitter

ログイン | VALUE-DOMAIN(バリュードメイン)
Yahoo! JAPANが配信する広告などへのパーソナルデータの利用
個人向けSIM・インターネットサービスのIIJmio
IIJmio:DS-Liteについて
サービス情報サイト
EditNet
フレッツのIPv6パケットフィルタが筒抜けだった件(ひかり電話あり/なしで異なる結果に) – アキバではたらくプログラマのBlog
フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題 - tsutsuiの作業記録置き場
フレッツ光回線でscpが遅かった話 - Qiita
本の虫: CloudflareのDNSからArchive.isが解決できない問題について
1.1.1.1 — the Internet’s Fastest, Privacy-First DNS Resolver
What Is My IP Address - See Your Public Address - IPv4 & IPv6
スピードテスト - Google 検索
郵便局 | 日本郵便株式会社
94円普通切手・スミレ: 切手・はがきストア|郵便局のネットショップ
レターパックライト(370円)(20部セット): 切手・はがきストア|郵便局のネットショップ
【国認定】パソコンの無料回収(処分・廃棄)サービス「リネットジャパン」
主な取扱不可製品
au「povo2.0」で深刻なトラブル続く。強制解約、番号消失、絶対繋がらないサポート・・・ - Skyblue
報道発表資料 : 「IPv6シングルスタック方式」の提供を開始 | お知らせ | NTTドコモ
インターネットプロトコル IPv6対応について | spモード | サービス・機能 | NTTドコモ
【山田祥平のRe:config.sys】データ通信専用サービスはなくなるの? - PC Watch
総務省|テレコム競争政策ポータルサイト|端末販売の適正化等の取組に係る情報提供窓口

Amazon.co.jpショッピングカート
【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
お気に⼊り一覧|PC専門店【TSUKUMO】公式通販サイト
どてやの戯れ言
thunderbolt gigabyte - Google 検索
プリンター | ブラザー
価格.com - ビデオチップ:Intel 系のノートパソコン 価格の安い順 (解像度:フルHD (1920x1080),開発コード:Ice Lake,表面処理:ノングレア(非光沢),SSD容量:256GB~512GB未満,メモリ容量:8GB~16GB未満)
価格.com - ビデオチップ:Intel 系のノートパソコン 価格の安い順 (解像度:フルHD (1920x1080),開発コード:Tiger Lake,表面処理:ノングレア(非光沢),SSD容量:256GB~512GB未満,メモリ容量:8GB~16GB未満)
価格.com - ビデオチップ:Intel 系のノートパソコン 価格の安い順 (開発コード:Alder Lake)

その他

バス

一般路線バス運行情報 | ジェイアールバス関東
一般路線バス時刻表・路線図 | ジェイアールバス関東
バス情報|関東鉄道|地域のふれあいパートナー
千葉交通|Chibakotsu|銚子~東京駅・浜松町線
ジェイアールバス関東 - Wikipedia
ジェイアールバス関東土浦支店 - Wikipedia
関東鉄道江戸崎車庫 - Wikipedia
稲敷市 - Wikipedia
桜東バス - Wikipedia
ブルーバス (茨城県) - Wikipedia
高速バスネット:全国の高速バス・夜行・深夜バス予約
高速バス・夜行/深夜バスの予約なら、【発車オーライネット】 - 発車オ~ライネット
東急バス最長路線「東京駅~等々力」、運行区間短縮へ。乗継割引を新設 | タビリス
西大井駅~大森駅むすぶ 品川区初のコミバス「しなバス」 28日運行開始 | 乗りものニュース

航空

日本のLCCを一覧にしてみた。国内線76路線の全リスト | タビリス
報道発表資料:「地域航空サービスアライアンス有限責任事業組合」の設立について<br>~九州地域における系列を超えた航空会社間の協業を促進~ - 国土交通省
211025.pdf
知られざる「日本人初エースパイロット」の足跡 義勇兵バロン滋野フランスの空を守る | 乗りものニュース
宇佐市平和ミュージアム(仮称)

スイングトレード ★ 日記. - livedoor Blog(ブログ)
デビット 銀行 - Google 検索
jr北海道 - Google 検索
jr 減便 - Google 検索
jr 廃止 - Google 検索
BDIY 銘柄 - バルチック海運指数 名称 - Bloomberg Markets
原油先物 WTI 価格 - Investing.com
不景気.com - 不況を乗り切る不景気ニュースブログ | 倒産・リストラ
田中宇の国際ニュース解説
世界のニュース トトメス5世
規制改革 - 内閣府
カテゴリー「バス」の記事一覧ページ | 乗りものニュース
公共交通(路線バス) | 稲敷市公式ホームページ
バス待合所mini

Money

Google カレンダー
西暦和暦年齢一覧表
総合 - NHKプラス

政府統計

政府統計の総合窓口
今週の指標 - 内閣府
月例経済報告 - 内閣府
国際収支統計(IMF国際収支マニュアル第6版ベース<2014年1月取引分~>) : 日本銀行 Bank of Japan
需給ギャップと潜在成長率 : 日本銀行 Bank of Japan
資料8-2 - siryo8-2-2.pdf
実効為替レート : 日本銀行 Bank of Japan
本邦対外資産負債残高 : 財務省
統計表一覧(本邦対外資産負債残高) : 財務省
国際収支の推移 : 財務省
対外・対内直接投資の推移(国際収支マニュアル第6版準拠) : 財務省
対外・対内証券投資の推移 : 財務省
2138.財務省がひた隠しに隠す特別会計の闇 : 日本国財政破綻Safety Net
r02y_e.pdf

決算短信

その他

2021年度決算短信・説明会資料|楽天グループ株式会社
財務状況 | ディスクロージャー | 楽天銀行について | 楽天銀行
決算情報 | 開示情報 | 楽天証券
決算短信:JR東日本
決算短信 | IRライブラリ | 三菱HCキャピタル株式会社
決算情報|IR情報|上新電機株式会社
IR情報 決算短信 -YAMADA HOLDINGS-
IR情報 | ステラケミファ株式会社

決算短信 | クリヤマホールディングス株式会社
IRライブラリ : 決算短信 | 株式会社フェローテックホールディングス
決算短信 | 平河ヒューテック
決算短信 | IRライブラリー | 明電舎
決算短信 | 住友大阪セメント
決算短信 | 国際石油開発帝石[INPEX]
決算短信 | 株主・投資家情報 | レンゴー株式会社
決算情報|株主・投資家情報|営業紹介|株式会社関電工 | 株式会社関電工
決算短信|イノテック株式会社
決算短信 | 株主・投資家情報 | 日本精線株式会社
物流の山九株式会社|IR資料 | 山九株式会社
IR情報 | 日本パレットプール株式会社
決算短信 | IR情報 | 化学メーカー、石原産業
決算関連情報|株主・投資家情報|株式会社ナカノフドー建設
決算短信・補足説明資料 | 東和薬品
決算短信|IR情報|小野建株式会社
決算短信|カルビー
決算短信 | プリント基板設計・製造・実装|5G基板ならキョウデン
決算短信 | ケミカルポンプと流体制御機器のイワキ

決算概況 | IR(投資家向け情報) | カワチ薬品
決算短信:株主・投資家情報:FREUND フロイント産業
投資家の皆様へ - IRライブラリー - 決算短信 | 暮らし、いきいき ジュンテンドー
決算短信・説明会資料 | IRライブラリ | 株主・投資家情報 | タツタ電線株式会社
JMS | IR情報
決算短信|IR資料|IR情報|ハビックス株式会社
決算短信 | 財務情報 | 投資家情報 | アルチザネットワークス
決算短信 - 株式会社エフオン EF-ON|私たちEF-ONグループは、人々の生活を支える技術・社会の省エネルギーを支援します。株式会社エフオン EF-ON
決算短信|トーカロ株式会社
決算短信 | IR情報 | 株式会社ダイセル
決算短信・決算説明資料|IR資料室|投資家情報 | ライオン株式会社
決算短信|Nakamoto Packs
財務情報 | IR情報 | トーモクグループ
決算情報 | 三桜工業株式会社 - Sanoh Industrial Co., Ltd.
決算短信関連|IR資料室・動画|株主・投資家の皆さま|参天製薬

Money

公的機関等

金融・不動産

生命保険契約照会制度の創設(2021年7月1日開始)~確実な保険金請求のためのセーフティネット~ | 2021 | ニュースリリース | 生命保険協会
「支払又は支払の受領に関する報告書」の報告概要 : 日本銀行 Bank of Japan
証券・金融商品あっせん相談センター
アルトア | スモールビジネスの新しい選択肢となるオンライン融資
事故物件の売却なら【お困り不動産解決本舗】へ|事故物件はお任せください
「地震保険は損だ」という考えが危ない理由 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
解約できない!マンション「サブリース」の罠 | 不動産 | 東洋経済オンライン | 経済ニュースの新基準

社会保障

医療

お金が無くても保険証が無くても病院受診する方法!(藤田孝典) - 個人 - Yahoo!ニュース
ネット含め医薬品など誇大広告に課徴金。改正薬機法が8月1日施行 - PC Watch
人間ドックが仕掛けた「コレステロール戦争」 あなたの基準値は緩和されたのか WEDGE Infinity(ウェッジ)
健康診断の「基準値ありき」にモノ申す | 最新の週刊東洋経済 | 東洋経済オンライン | 社会をよくする経済ニュース
1annai2.pdf - guideline-abstractPDF.pdf
オンライン資格確認等システムの導入に関する医療機関・薬局システムベンダ向け説明会_投影資料一式 - 000597524.pdf
保険料の6割増も それでも進む国保改革 その狙いは:朝日新聞デジタル
000685273.pdf
がん相談支援センターにご相談ください|がんになったら手にとるガイド [国立がん研究センター がん情報サービス]
生活費等の助成や給付など:[国立がん研究センター がん情報サービス 一般の方へ]
がん相談ホットライン | 日本対がん協会
がんの「余命宣告」の正しい意味を知っていますか?(大須賀 覚) | ブルーバックス | 講談社(1/4)
新型コロナワクチンについて | 首相官邸ホームページ
日本内科学会雑誌:新型コロナウイルス感染症特集の公開について | 日本内科学会の取り組みについて | 日本内科学会
新システム、懸念払拭に躍起 旗振り役の河野・平井氏―ワクチン情報を一元管理:時事ドットコム
中小企業庁:セーフティネット保証制度 概要

労働

NPO法人POSSE
労働者健康安全機構 トップページ
過去10年の派遣労働者増加率、先進諸国のなかで最高水準(ドイツ:2009年3月)|労働政策研究・研修機構(JILPT)
ITフリーランスが労災保険の特別加入制度対象に。プログラマ/SE/Webデザイナーなど - PC Watch
ITフリーランスの仕事や移動中のケガ、病気、障害、死亡などを補償する国の労災保険「特別加入制度」、申し込みが可能に - Publickey
ITフリーランスを対象とした国の労災保険「特別加入制度」が今日からスタート。フリーランスでも通勤や仕事によるケガ、病気、障害、死亡など補償 - Publickey
フリーのITエンジニアやWebデザイナーも国の労災保険へ加入が可能に。業務や通勤での疾病、負傷、死亡など補償。国の労働政策審議会が了承。9月から - Publickey

CAPIC ~ e-shop ~
法務省:「更生保護」とは
老齢基礎年金の繰上げ受給|日本年金機構
支援情報検索サイト
あなたはひとりじゃない|内閣官房孤独・孤立対策担当室
「水害にあったら、どうすればいい?」 このチラシが、とてもわかりやすい
生活保護を申請したい方へ
住まいに困っている 東京都福祉保健局
国や自治体からお金を借りられる、公的融資制度&給付金まとめ。キャッシングでお金を借りる前に、これらの貸付制度が使えないかの確認を! - クレジットカードの読みもの
一般社団法人 個人版私的整理ガイドライン運営委員会
トップページ|全国社会福祉協議会

消費者庁

買わないで!危険な転売業者「ゲームガジェット」がTwitter広告に跋扈。 – すまほん!!
危険な自称輸入代行業者「ゲームガジェット」と、幾つかの変名のこと - eps_r
LuciniaさんはTwitterを使っています 「@tenpoku1000 捜査の前にまず誰かから詐欺として被害届が出されている必要があります。が、相手先が特定できない上に騙す意図があったか立証するのは難しい以上、被害届を受理させるのは難しいんじゃないですかね。」 / Twitter
LuciniaさんはTwitterを使っています 「@tenpoku1000 1つ考えられるとするなら、責任者名が偽名であったり重要な情報が記載されていないなら特定商取引法違反になるかもしれません。消費者庁への通報は以下からどうぞ。 https://t.co/23qMpq1nni」 / Twitter
特定商取引法違反被疑情報提供フォーム | 消費者庁

縦割り110番

受け付けた提案及び所管省庁からの回答:「規制改革ホットライン」 : 規制改革 - 内閣府
内閣府共通意見等登録システム - 内閣府
縦割り110番、内閣府HPでも一時停止 河野規制改革相: 日本経済新聞
「縦割り110番」、受け付けの一時停止を検討 要望6000件超え 河野氏「霞が関の処理に限界」 - ITmedia NEWS
「縦割り110番」の裏側初潜入!どんなメンバーがどんな部屋で?明かされる“チーム河野太郎” のリアル
EBPMの推進 - 統計等データの提供等に関する要望・提案募集
統計等データの提供等に関するユーザーからの要望・提案募集 応募フォーム|首相官邸ホームページ
分析AI「YOSHINA」で縦割り110番のデータ分析をしてみました - Retrieva OFFICIAL BLOG
デジタル改革アイデアボックス
211222.pdf

政府の情報処理システム

何故お役所ってオワコンIEが大好きなの?|楠 正憲(国際大学GLOCOM 客員研究員)
Shiro KawaiさんはTwitterを使っています 「楠さんによるCOCOAの経緯の総括。後知恵で批判するのは簡単だけど、予算確保から契約まで関係各所を継ぎながら変化する状況にも対応するとなると、結局そういう開発プロセスがわかってる人が至るところにいる、という社会になってないと難しそう https://t.co/b6njHTfjmw」 / Twitter
接触確認アプリCOCOAからの教訓|情報処理学会・学会誌「情報処理」|note
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「最初はバーコードを読むつもりだったのですが、仕様がカッチリ決められておらず、自治体によってバーコードがあったりなかったり、埋め込まれている値もバラバラなので、仕方なく全団体共通のOCRラインを読むようにしたのです。接種券仕様をちゃんと決められていたら」 / Twitter
木曽崇@国際カジノ研究所:「飯テロ」注意報発令中さんはTwitterを使っています 「すげえなあ。隣りにバーコードがあるのに、わざわざOCRでその脇の数字を読み取らせるというミラクル仕様。」 / Twitter
神庭亮介さんはTwitterを使っています 「ワクチン接種記録システム(VRS)をめぐり「接種券のバーコードが読みとれない」「ピントが合わない」など自治体から苦情。 実は読み込むのはバーコードではなく数字。平井デジタル相は「誤解があった」と説明。 IT総合戦略室は段ボールや専用スタンドの活用を提案している。https://t.co/cjj0JAbN5r https://t.co/G1c5gBonDd」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「これはねー、時期によってコロコロ変わってるんですよ。APIリファレンスの改版履歴を追うとかなりトリッキーで、途中からAPIリファレンスがPDFからWebに変わって保全が面倒になり、更に秋から別の大きな仕様変更があり / “Android版COCOAがバグった理由 - DEVGRU” https://t.co/Ac18AUi34J」 / Twitter
Android版COCOAがバグった理由 - DEVGRU
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「Cocoaに限らずクラウドもスマホもころころAPIが変わる時代、入札やって契約を結んだのだからちゃんとやってくれではなく、前提が変わったら予算を取り直して契約変更するから、くれぐれも品質第一に運用してくれとお願いできる制度・運用体制を組めるようにならないと厳しい。デジタル庁へ向けた課題」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ベンダーロックイン排除、技術中立性のためには構成技術は指定せず要件で縛るのが美しい調達仕様書とされてきたけど、民間企業と同様に、十分な技術者を確保できるか、組み合わせの掛け算で母数が小さくなってないか、スタック構成をもっと丁寧に見て落とし穴を避ける努力も必要」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ここ数年で「とりあえずやってみる」「数週間でシステムを立ち上げる」ところまではできるようになった。これからは「適切なKPIを設定してモニタリング」「継続的な改善」「Whyを問い直し止めるべき時に止める」を組織的に回せる体制が必要に。今はQAもSREもおらず全てを事務官がベンダーにやらせてる」 / Twitter
zipperpullさんはTwitterを使っています 「@masanork 継続的な改善の一部かもしれませんが、とくに一般ユーザ向けのものなんかでは、不具合や改善点を見つけてくることをベンダーにまかせても最適解は黙って何もしないことに着地してしまうので、QAやサポート・運用データ調査などを開発保守のベンダーから分離して組織化するようなことが必要かと思います」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「@zipperpull 確かにその分割発注はアリですね。今は原課が気付くまでダンマリが最適解なので。参考になります」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「デジタル庁の関連議員、https://t.co/EUTbbS0ecK の人だらけという話本当だった。なんだそれ」 / Twitter
デジタル・ニッポン2020~コロナ時代のデジタル田園都市国家構想~
Noriatsu KudoさんはTwitterを使っています 「@makoto_kato 行き当たりばったりではなく、それなりに時間を使って準備してきたってことかと。庁ができてさあがんばるぞーって話じゃなくてよかったと思いたい。」 / Twitter
Takuji HashizumeさんはTwitterを使っています 「当事者署名型/事業者署名型(立会人型)の違い、署名パネルの確認方法、タイムスタンプの重要性なども詳細解説。 IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会 https://t.co/jPLd9BvIlN」 / Twitter
IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会
Verifiable CredentialとBBS+署名(IIR vol.52 2章) | IIJ Engineers Blog
2. フォーカス・リサーチ(1)Verifiable CredentialとBBS+署名 | Internet Infrastructure Review(IIR)Vol.52 | IIJの技術 | インターネットイニシアティブ(IIJ)

放送・通信

法令・ガイドライン等 |個人情報保護委員会
地デジ高度化実験受信対策センター トップページ
チャンネル一覧 | 一般社団法人放送サービス高度化推進協会(A-PAB)
一般財団法人 日本電話リレーサービス
総務省|東海総合通信局|電波の人体に対する影響
急増する世界の「データ」流通量 | 地域・分析レポート - 海外ビジネス情報 - ジェトロ
000783401.pdf
090869_hanrei.pdf
「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」を取りまとめました (METI/経済産業省)

環境・電力

海外から注文していない植物が郵送された場合は、植物防疫所にご相談ください:植物防疫所
202108161400_331.pdf
ウイルスの感染力を高め、日本人に高頻度な細胞性免疫応答から免れるSARS-CoV-2変異の発見 | 国立研究開発法人日本医療研究開発機構
東京都感染症情報センター » 食品微生物分野における新たな同定法
細菌とウイルス | 感染症の基本 | 一般の方へ | かしこく治して、明日につなぐ~抗菌薬を上手に使ってAMR対策~
原子力発電所の現在の運転状況|原子力規制委員会
000365851.pdf
JAEA-Technology-2019-005.pdf
PowerPoint プレゼンテーション - 009_04_02.pdf
エンジン車でも脱炭素?グリーンな液体燃料「合成燃料」とは|スペシャルコンテンツ|資源エネルギー庁
2025年までに電球形蛍光灯や写真フィルムなどの水銀製品が段階廃止されることが決定 - GIGAZINE

政治

会派名及び会派別所属議員数
会派別所属議員数:参議院
政府 復興庁を2031年まで10年間延長 新たな骨子案 | NHKニュース
2181.自民党は積極財政に流れているらしい : 日本国財政破綻Safety Net
2185.施政方針演説と矛盾する、閣内不一致の財務相鈴木俊一 : 日本国財政破綻Safety Net

軍事

三笠 (戦艦) - Wikipedia
たかなみさんはTwitterを使っています 「おっと… https://t.co/xKzgxoOVSf」 / Twitter
ウナム日月さんはTwitterを使っています 「三笠の展示でこんなこと書いていいんですかね、自衛隊の管轄? RT @DD110 https://t.co/OVvAUf8dqp」 / Twitter
ウナム日月さんはTwitterを使っています 「三笠の展示に「張作霖爆殺はコミンテルンの仕業」 って書いてるけど、主宰団体は防衛省管轄だったし、理事や会長は海上自衛隊OB(それも幕僚)だらけだしでヤバい。 アカンでしょ https://t.co/6KfyOYbAWc」 / Twitter
三笠保存会 - Wikipedia

政府の事業が検索できるサイトJUDGIT!(ジャジット)
活動・施策を知る|デジタル庁
官報決算データベース
e-Gov法令検索
登記情報提供サービス
登記・供託オンライン申請システム 登記ねっと 供託ねっと
全国道路構造物情報マップ ~ 損傷マップ ~
新規就農者調査:農林水産省
警視庁の業務に対する苦情・ご要望・ご意見

税金

住民税

千葉市:市税過誤納金等の還付・充当
還付(住民税)について|東京都北区
市税の領収証書は何年保存したらよいのか。 | 市税の納付(口座振替) | 市税 | くらしの手続き | 西宮市ホームページ
上場株式等の譲渡損失の繰越控除や損益通算をしたら住民税の申告も検討しよう
株式等の譲渡益や配当に対する税金:練馬区公式ホームページ
現役税理士が所得税と住民税の控除額の計算方法の違いをわかりやすく解説 - 経営ハッカー | 「経営 × テクノロジー」の最先端を切り拓くメディア
<税金の種類><個人住民税> | 東京都主税局
所得税と住民税の計算方法
住民税 税額シミュレーション
名古屋市:税額の計算方法(暮らしの情報)
名古屋市:市民税・県民税の計算例(暮らしの情報)
住民税はどうやって決まる? その計算方法とは  - INTERNET Watch
サラリーマンと個人事業主の税金の話まとめ:源泉徴収票の見方・年末調整の書き方から住民税の計算方法まで - INTERNET Watch
地方税申告の合理化 | 衆議院議員 河野太郎公式サイト
ふるさと納税で紺綬褒章 所得2億5千万なら負担なし【川島会計事務所タックスニュース】
株式や配当などの確定申告と国民健康保険税/小牧市

所得税

国税庁

No.1130 社会保険料控除|国税庁
No.1300 所得の区分のあらまし|国税庁
No.1199 基礎控除|国税庁
No.1937 居住者が海外で株式等を売却した場合の課税関係等|国税庁
No.1240 外国税額控除|国税庁
No.2240 申告分離課税制度|所得税|国税庁
No.2260 所得税の税率|所得税|国税庁
No.1250 配当所得があるとき(配当控除)|国税庁
No.1330 配当金を受け取ったとき(配当所得)|国税庁
No.1331 上場株式等の配当所得等に係る申告分離課税制度|国税庁
No.1474 上場株式等に係る譲渡損失の損益通算及び繰越控除|国税庁
No.1521 外国為替証拠金取引(FX)の課税関係|国税庁
No.1522 先物取引に係る雑所得等の課税の特例|国税庁
No.1523 先物取引の差金等決済に係る損失の繰越控除|国税庁
No.1524 ビットコインを使用することにより利益が生じた場合の課税関係|国税庁
01.pdf
[手続名]所得税及び復興特別所得税の更正の請求手続|国税庁
No.2026 確定申告を間違えたとき|国税庁
新型コロナウイルス感染症に関連する税務上の取扱い関係
No.1150 一定の寄附金を支払ったとき(寄附金控除)|国税庁
手順3 所得から差し引かれる金額(所得控除)を計算する|国税庁
e-Taxソフトのインストール時に「e-Taxソフトが新しいソフトウェアのインストールを構成中です。」というメッセージが出たまま止まってしまいました。どうすればいいですか。| 【e-Tax】国税電子申告・納税システム(イータックス)

2177.富裕層に厳しい岸田内閣と財務省の陰謀 : 日本国財政破綻Safety Net
ビットコインの譲渡における消費税との税務関係について税理士が解説 - エキサイトニュース(1/2)
ビットコイン・仮想通貨の「雑所得課税」に有利な材料? 副業の所得や年金などと通算 | ZUU online
Kazuho OkuさんはTwitterを使っています 「あーそうか、外国株の損益通算の繰越、譲渡益のみなら可能で、配当益との通算繰越ができないんだった。ややこしい https://t.co/xG8wA1sSop」 / Twitter
外国株式を譲渡して損失が生じた場合 | アルテスタ税理士法人
遺産としての仮想通貨、鍵が不明で引き出せなくても相続税がかかる | 日経 xTECH(クロステック)
青色申告、電子なら控除10万円増 20年1月から  :日本経済新聞
配当所得は所得税では総合課税で、住民税では申告不要にすれば有利になるケースとは? - やまばた税理士事務所
みずほ証券:証券税制早わかり 株式の税金
松浦晋也さんのツイート: "これ、もっと前があるのだ(財務省ページからは消されているが、以前は載っていた)。1970年代初頭はもっと厳しい累進課税だったのである。その税制で、日本は高度経済成長を達成している。「意地悪ばあさん」で「昭和元禄浪花節」と歌った時代である。… https://t.co/3UDrmnNSGY"
貧富格差を拡大する方向に進んできた日本の税制 - WirelessWire News(ワイヤレスワイヤーニュース)
松浦晋也さんのツイート: "財務省は消しても国会図書館ウェブアーカイブには残っている、というわけで、このページである。 https://t.co/6xFPj5r5yY"
所得税の税率構造の推移 : 財務省
外貨預金の損失で「節税」できる? | ビジネスジャーナル
還付申告は1月から可能。還付でない確定申告も2月15日以前にできる? | 川越市【関田和弘税理士事務所】相続税申告・クラウド会計
含み益の課税検討で「積立NISA逝く」SNSで拡散 金融庁「関係ないので解約しないで」 - 税理士ドットコム
紙で保存しなくてもOK 電子帳簿保存法対応の無料書類保管サービス続々(1/2 ページ) - ITmedia ビジネスオンライン
e-Taxソフトのインストールが途中で止まってしまう場合の対処法 | プレライズ会計事務所
ぬるぽへさんはTwitterを使っています 「必要だった事柄一覧 1. OSの言語設定は日本語必須(多分e-tax webの事前準備インストーラやJPKIインストーラが進まないはず 2. 1をクリアしてもまだJPKIインストーラが固まると思うので、手動でインストーラファイルを削除した後 https://t.co/Gcj3ihcmT8 に愚直に従う(新規ユーザ作成が効いた (続く」 / Twitter
ぬるぽへさんはTwitterを使っています 「3. ICカードリーダー、挿したら動くと思うけどメーカーのページからドライバを手動インストールしないと実はマイナンバーカードが読み取れないので入れる(少なくともIO data NFC3はそう 続)」 / Twitter
ぬるぽへさんはTwitterを使っています 「4. 初使用だとe-tax(ローカルソフト)は使用登録がされていないとエラーが出る 以前ID/PW方式で確定申告していた人は、まずweb版で「マイナンバーカードを使ってログイン」を試すとそのまま登録できる。他のパターンはちょっと知らない」 / Twitter

年金

日本年金機構
国民年金保険料|日本年金機構
国民年金前納割引制度(現金払い 前納)|日本年金機構
国民年金保険料の現金(納付書)による2年前納のお申込みを受け付けています|日本年金機構
国民年金保険料の「2年前納」制度|日本年金機構
02.pdf
土浦 (つちうら) 年金事務所|日本年金機構
企業年金連合会(Pension Fund Association)
年金13万円、生活苦に悩む高齢者たちの実情 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
悠々自適な老後は夢のまた夢。「70歳まで就業」案に失意の声 - まぐまぐニュース!
「年金積立金の減少」を騒ぎ立てる人が陥っているひどい勘違いとは | 自分だけは損したくない人のための投資心理学 | ダイヤモンド・オンライン
2022年、日本で「個人間送金」が拡大する【鈴木淳也のPay Attention】-Impress Watch

信用情報

信用情報 - Wikipedia
日本信用情報機構 - Wikipedia
JICC 日本信用情報機構(指定信用情報機関)| HOME
全国銀行個人信用情報センター - 全国銀行協会
指定信用情報機関のCIC

マイナンバー

国税庁法人番号公表サイト
総務省
社会保障・税番号制度 - 内閣府
マイナンバー社会保障・税番号制度
地方公共団体情報システム機構 地方公共団体情報システム機構
マイキープラットフォーム
サービストップ | マイナポータル
確定申告、PCからカードリーダなしでe-Tax対応。マイナポータル連携も強化 - Impress Watch
マイナポータル連携特設ページ(マイナポータルを活用した控除証明書等のデータ取得と自動入力)|国税庁
マイナポータル連携可能な控除証明書等発行主体一覧|国税庁
e-私書箱
マイナンバーカード総合サイト/トップページ
事前の準備 : 公的個人認証サービス ポータルサイト
証券会社へのマイナンバー登録・通知の義務化。通知しないとどうなる? | Money Lifehack
銀行の口座開設や既存口座でのマイナンバー(個人番号)の登録・通知の義務化のタイミングはいつ? | Money Lifehack
CSS2017キャンドルスターセッション
マイナンバー制度について-ゆうちょ銀行
スイングトレード ★ 日記.:【悲報】マイナンバー提出期限3年延長が決定!提出するだけ無駄だった - livedoor Blog(ブログ)

日本の金融所得税、実は庶民にとっては世界屈指の重税:古田拓也「今更聞けないお金とビジネス」(1/3 ページ) - ITmedia ビジネスオンライン
【確定申告書等作成コーナー】-作成コーナートップ
確定申告期に多いお問合せ事項Q&A|国税庁
【税金の還付】|国税庁
振替納税の領収証書送付取りやめのお知らせ|国税庁
クレジット販売の場合の領収書|国税庁
No.7105 金銭又は有価証券の受取書、領収書|国税庁
国税クレジットお支払サイト
税収に関する資料 : 財務省
負担率に関する資料 : 財務省
財政に関する資料 : 財務省
予算 : 財務省
平成31年度財務省所管予算概算が決まりました : 財務省
日本銀行が国債の引受けを行わないのはなぜですか? : 日本銀行 Bank of Japan
GDPとGNI(GNP)の違いについて - 内閣府
フリーランス危うし? 「インボイス」制度に向け、適格請求書発行事業者の登録を - Impress Watch
久慈桃子@想いを翻訳する編集ライター🖋さんはTwitterを使っています 「Amazonやpaypalなど、オンライン決済の領収書を印刷保存していた人🙌 なんと2022年からそれがNGになります🤣 「うちはPDFで保存してる!」という人🙌 タイムスタンプ必須になりますよ!🤗 改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? https://t.co/lglCmZ3Yow」 / Twitter
改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? | おうちフリーランス手帳

証券

営業時間・休業日一覧 | 日本取引所グループ
先物・オプション関連 | 日本取引所グループ
インディカティブNAV・PCF情報 | 日本取引所グループ
取引最終日 | 日本取引所グループ
その他統計資料 | 日本取引所グループ
新規上場申請者の上場適格性に関する情報受付窓口 | 日本取引所グループ
ログイン/マネックス証券 取引サイト
SBI証券|株・FX・投資信託・確定拠出年金・NISA
SBI証券|株・FX・投資信託・確定拠出年金・NISA
SBI証券|株・FX・投資信託・確定拠出年金・NISA
年間取引報告書について | 楽天証券
手数料0円ETF | 国内ETF/ETN/REIT | 国内株式 | 楽天証券
JIS&TのiDeCo<イデコ>(個人型確定拠出年金)ポータル
日本インベスター・ソリューション・アンド・テクノロジー株式会社

暗号資産

SBI VC Trade

SBI VC Trade - ログイン
FAQ・お問い合わせ
暗号資産入出庫 – FAQ・お問い合わせ
日本円の入金方法を教えてください。 – FAQ・お問い合わせ
ログイン・パスワード・2段階認証 – FAQ・お問い合わせ
covenants.pdf
manual.pdf
VCTRADE

楽天ウォレット会員ログイン|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
Blockchain Wallet - Exchange Cryptocurrency
NFTは技術に精通したエリートによる「マルチ商法」に過ぎないとの指摘 - GIGAZINE
NFTとは何ではないか - Speaker Deck
NFT入門 - 電通国際情報サービス TechBlog
スマートコントラクト入門 - 電通国際情報サービス TechBlog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「NFTの使い方: - 違法な取引 (薬物とか) で1000万円を手にする。 - このカネを普通に使ったら足がつくので、暗号資産を買う。 - 適当なNFTを安値で買い「匿名の人物」がそれを1000万円で買ったことにして値段をつり上げる。 - あとはさらなる値上がりを待つだけ。 https://t.co/U7zyYac052」 / Twitter
Survey Says Developers Are Definitely Not Interested In Crypto Or NFTs | 'How this hasn’t been identified as a pyramid scheme is beyond me' : programming
ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive
コントラクト指向言語Solidity詳解 - Ethereum入門
ウェブブラウザのOperaで「絵文字のみのURL」が利用可能に - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「NFTに対するデジタルなのに複製制限して…みたいな批判はもっともだと思うし、僕は近寄りたくない界隈だなと思うけど、版画の枚数制限して高値で売るのと変わらないと考えれば、特にデジタルだからおかしいという話でもないんじゃとも思う」 / Twitter

銀行

ゆうちょダイレクト ログイン(お客さま番号入力)
楽天銀行(旧イーバンク銀行)|ネットバンク
ログイン|住信SBIネット銀行
デビットカード - Wikipedia
デビットカードを刷新し、ナンバーレス化!~2022年3月下旬より発行開始~|住信SBIネット銀行株式会社のプレスリリース

第1回 実感と合わない「平均値」のナゾ - wko-201901_06.pdf
日経平均採用銘柄の株価一覧 :株式 :マーケット :日経電子版
信用評価損益率 信用残 日経平均比較チャート
投資家が注目する「信用評価損益率」とは? | 東証マネ部!
株価移動平均線の見方・使い方(1)~移動平均線の基礎 | テクニカル分析指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人
移動平均線を使いこなす | みんなの株式
指数平滑法 - Google 検索
株探 | 株価注意報 - 本日のゴールデンクロス銘柄(5日と25日移動平均線)
株探 | 株価注意報 - 本日のデッドデンクロス銘柄(5日と25日移動平均線)
インバースはなぜ減価するのか - room5110
コンタンゴはなぜ減価するのか VXX(1552)が下がる理由 - room5110
NAKAMURA Minoru's Diary (2012年7月)

SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
楽天証券 | ネット証券(株・FX・投資信託・確定拠出年金・NISA)
取引時間/注文受付時間 | 取引ルール | 米国株式 | 外国株式・海外ETF | 楽天証券
ログイン画面/auカブコム証券
日経平均株価 インデックス(N225) - Investing.com
NYダウ インデックス(DJI) - Investing.com
USD JPY | アメリカドル 日本円 相場情報 - Investing.com
アメリカ 10年 債券利回り - Investing.com
Secured Overnight Financing Rate - Federal Reserve Bank of New York
金先物 価格 - Investing.com
Bitcoin - ビットコイン 価格チャート、時価総額、インデックスとニュース - Investing.com

書籍

購入候補

68000とMacintosh Toolboxの秘密 | 柴田文彦 |本 | 通販 | Amazon
Executable UML実践入門 : クラス・モデルをいかに作成するか (CQ出版): 2004|書誌詳細|国立国会図書館サーチ
SOA大全 : サービス指向アーキテクチャ導入・設計・構築の指針 (日経BP社): 2005|書誌詳細|国立国会図書館サーチ
トポロジーと幾何学入門 | I.M.シンガー, J.A.ソープ |本 | 通販 | Amazon
現代数学レクチャーズ (培風館): 1982|書誌詳細|国立国会図書館サーチ
数万件の汚いエクセルデータに困っている人のための Excel多量データクレンジング - 秀和システム あなたの学びをサポート!
新訂版 数理解析学概論 | 株式会社 現代数学社
ファイバー束とホモトピー|森北出版株式会社
実習で学ぶ モデルベース開発 - 『モデル』を共通言語とするV字開発プロセス - | コロナ社
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法:書籍案内|技術評論社
プログラミング言語大全:書籍案内|技術評論社
代数系入門 - 岩波書店
数学の基礎 - 東京大学出版会
線型代数対話 第2巻モノイドの線型代数―モノイダル構造から行列計算へ― | 株式会社 現代数学社
データ分析の力 因果関係に迫る思考法 伊藤公一朗 | 光文社新書 | 光文社
Excelパワークエリ データ収集・整形を自由自在にする本 (鷹尾 祥)|翔泳社の本
Excelパワーピボット 7つのステップでデータ集計・分析を「自動化」する本(鷹尾 祥)|翔泳社の本
機械学習のための 「前処理」入門|リックテレコム
Kaggleで勝つデータ分析の技術:書籍案内|技術評論社
O'Reilly Japan - 機械学習のための特徴量エンジニアリング
強化学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
ガウス過程と機械学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
Rと事例で学ぶベイジアンネットワーク / Marco Scutari  Jean-Baptiste Denis  著 金 明哲 監訳 財津 亘 訳 | 共立出版

その他

論計舎

論計舎:論理と計算の科学のオンライン私塾
川井新(論計舎代表)さんはTwitterを使っています 「私たちのグループは中間述語論理をはじめとする非古典述語論理の良い振る舞いをする証明体系を構成しcut消去や補完定理などが成り立つかを調べ、Curry-Howardの観点からそれらの計算機的内実を調べることを目標としています https://t.co/SwjamXD7or」 / Twitter
PROOF THEORY FOR NON-CLASSICAL PREDICATE LOGICS | Takuma Imamura | 17 publications | Research Project

古書店

日本の古本屋
寄付の方法 | つなぐ書店
就労継続支援B型 かみふくおか作業所さん (@2017kamisaku) / Twitter
かみふくおか作業所 | 運営施設 | 社会福祉法人 入間東部福祉会|入間東部福祉会 ふじみ野市、富士見市、三芳町にて障害者支援施設・障害福祉サービス事業所の運営を行う社会福祉法人
かみふくおか作業所の出張トトロ

BOOTH

pixiv
BOOTH - 創作物の総合マーケット
登録禁止商品の追加に関するお知らせ - BOOTH

yabaitech.tokyo

yabaitech.tokyo | yabaitech.tokyoはコンピュータサイエンスに関する話題を広くゆるく扱うサークルです。
yabaitech.tokyo - BOOTH
ヤバイテック トーキョー vol.1 - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.2 - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.3(電子版) - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.4(電子版) - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.5 - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.6 - yabaitech.tokyo - BOOTH
yabaitech.tokyo vol.7 (電子版) - yabaitech.tokyo - BOOTH

DDD

伊津野 英克さんはTwitterを使っています 「読了。実装面での補足が多くとてもわかりやすい。ただ、結果としてマイクロサービスが必要な規模じゃなければDDDいらないんじゃね、という思いが強化されてしまった感もあり…… https://t.co/ZkIBwMvDuF」 / Twitter
ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH
伊津野 英克さんはTwitterを使っています 「大規模業務Webアプリを多数作ってきた経験からは、画面なりバッチなり独立した単位で独立したロジック層を作り、共通化することに(労力的ではない)意味がある部分だけ切り出して共通部品化する、というのが一番単純で有用な考えだという結論に至ってる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「何を当たり前のことをと言われるかもしれないけど、現実の開発では工数を下げるために共通部品の設計がされることが多く、後々悲劇を産んでいるケースをよく見る。似ているからと言って共通化してはならないロジックというのは意外に多い。」 / Twitter
伊津野 英克さんはTwitterを使っています 「業務アプリでは変更が波及しないことが重要な場合があり、一箇所の修正で全体に影響を与えるような共通化は必ずしも好ましくなかったりする、という事情もあるのよね。」 / Twitter

Magia Librejo de Amaneko - BOOTH
命題論理の魔導書 - Magia Librejo de Amaneko - BOOTH
超準解析の魔導書 - Magia Librejo de Amaneko - BOOTH
計算理論の魔導書 - Magia Librejo de Amaneko - BOOTH
だめぽラボ
だめぽラボ - BOOTH
galaxy-sixth-sensey - BOOTH
マークアップ言語愛好会 - BOOTH
takanorip - BOOTH
イヌでもわかるCSS Houdini - 犬テトラ+ 出版社 - BOOTH
seiya - BOOTH
マイクロカーネルの設計と実装 - seiya - BOOTH
windhole booth - BOOTH
Hello uchan world - BOOTH
海洋軟件 - BOOTH
OtakuAssembly - BOOTH
fadis_press - BOOTH
すらりんラボ - BOOTH
GPSと仲良くなってNTPサーバを作ろう - 調布技研 - BOOTH
低レイヤを知りたい人のためのCコンパイラ作成入門 - - BOOTH(同人誌通販・ダウンロード)
低レイヤを知りたい人のための Cコンパイラ作成入門
「低レイヤを知りたい人のためのCコンパイラ作成入門」フィードバックフォーム

サークル等

作って学ぶルーティングプロトコル〜RustでBGPを実装〜:mr-csce
技術書典7: バイナリイーター 詳細
大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
BareMetalで遊ぶ Raspberry Pi - 達人出版会
水晶雫
株式会社ロングゲート

数学・工学

論理と計算の科学シリーズ全編購入権 | 論計舎 web shop
既刊(数学) | ニュートンプレス
既刊(工学) | ニュートンプレス
既刊(その他) | ニュートンプレス

Wikipedia

出版取次 - Wikipedia
日本出版取次協会|取協概況|沿革と現状
フレデリック・ブルックス - Wikipedia
人月の神話 - Wikipedia
銀の弾などない - Wikipedia

Qiita

ラムダノートの技術 Advent Calendar 2019 - Qiita
自作OSとかLinuxカーネルについて役立った本 - Qiita
低レイヤーを学ぶための技術書をまとめてみる - Qiita

Twitter

ドッグさんのツイート: "おもちゃ実装の Git を自分でつくってみてオブジェクトなどの内部データ構造や merge, diff などのアルゴリズムの仕組みを理解できる書籍 Building Git が出るのか.使用言語は Ruby | 'Building Git' https://t.co/Ka8sIaDrno"
Building Git – shop.jcoglan.com
Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「我々は紙の本を安価に全国共通の値段で手に入れることができた最後の世代になるだろう。次の世代に本はない。」 / Twitter
mumumuさんはTwitterを使っています 「プログラミングHaskellを読んだ(というか斜め読みしつつ演習問題をつまんで最後のページにたどりついた) めっちゃ薄いわりに必要なことがまとまっていて良かったけど,モナドの周りだけはよくわからんかったな.ファンクタ-&gt;アプリカティブファンクタ経由で説明されたほうがわかりやすい希ガス」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「プログラミングHaskell、改訂版ではファンクタ→アプリカティブ→モナドで解説されるように改良されていて、実際わかりやすくなっています!」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SICP (計算機プログラムの構造と解釈) JavaScript版。ECMAScript2020に対応している。4章と5章はSchemeのかわりにJavaScriptを対象としているため大幅に書き直されており、構文解析の説明が新しく入った。 https://t.co/QXJ7ZyBPCC」 / Twitter
Structure and Interpretation of Computer Programs | The MIT Press
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的には、新山はSICPは好きではなく、これをやたらと持ち上げる人々もあまり信用していない。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにJS版はフリーで閲覧可能: https://t.co/6t1sbmdTr1 オリジナル版もフリーで閲覧可能: https://t.co/McSWZ1X46y」 / Twitter
Structure and Interpretation of Computer Programs, Comparison Edition
Welcome to the SICP Web Site

ACCESS | gururi
おしえて良書 - goodbooks
「国立国会図書館のデジタル化資料の個人送信に関する合意文書」の公表について|国立国会図書館―National Diet Library
BOOK TECH | トップ
Kindle Cloud Reader
販売中の書籍一覧 – 技術書出版と販売のラムダノート
Shop Pay: 自分らしく買い、自分らしく払う
1月と7月
アップル薄氷の500日 | ギル・アメリオ, ウィリアム L.サイモン, 中山 宥 |本 | 通販 | Amazon
Amazon | Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables (Dover Books on Mathematics) | Abramowitz, Milton, Stegun, Irene A. | Pure Mathematics
Amazon | Writing Compilers and Interpreters: A Software Engineering Approach (English Edition) [Kindle edition] by Mak, Ronald | Languages & Tools | Kindleストア
なぜ研究者は学術書を翻訳すべきなのか?|Daichi G. Suzuki|note
Webpage: BEKKI Daisuke
嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
機関誌2019|公益社団法人 日本オペレーションズ・リサーチ学会
クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方) - プログラマのはしくれダイアリー
自作OSとかLinuxカーネルについて役立った本 | Zenn
本を書ける人がなかなかいない:生涯現役のITエンジニアを目指して:エンジニアライフ
自分のような専門外の人間が「数学書」を読む時のメモ|きぬいと|note
Hennessy & Patterson Computer Architecture 第6版 原著の問題点 | Amano Lab
p20190528a - K-kiwi

規格

JIS

DSSSL

JIS X 4153:1998 文書スタイル意味指定言語(DSSSL) | 日本規格協会 JSA Group Webdesk
JIS X 4153:1998/AMENDMENT 1:2002 文書スタイル意味指定言語(DSSSL)(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 4153:1998/AMENDMENT 2:2005 文書スタイル意味指定言語(DSSSL)(追補2) | 日本規格協会 JSA Group Webdesk
CSSになり損ねた言語たち | POSTD
Document Style Semantics and Specification Language - Wikipedia
Document Style Semantics and Specification Language - Wikipedia
DSSSL
SGML/XML + DSSSL/CSS/XSL を活用する
スタイルシート=CSSではない - パソコンQ&A
ネクストソリューション株式会社SGML、XML、DSSSLに関するご質問|よくある質問 | ネクストソリューション株式会社
令掛ベインさんはTwitterを使っています 「CSSが定着する前のスタイルシートの話をみてる / [The Languages Which Almost Became CSS - Eager Blog](https://t.co/EIzEwXGNDY)」 / Twitter
The Languages Which Almost Became CSS - Eager Blog
令掛ベインさんはTwitterを使っています 「いちからGUIツールキットのスタイルシートを設計するとしたらどういうものにすべきか、というのは興味ある」 / Twitter

長音符号

jicchoさんはTwitterを使っています 「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い technical termすら知らないようなきちんと学んだことない人が書いてるから」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 最後を長音にするからですか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 もしそうなら,最近規格が変わったので,最後を長音にしても間違いではないです。 https://t.co/loq6Pdnvb6」 / Twitter
外来語やカタカナ用語末尾に長音(ハイフン)をつけて伸ばした方が良い?29歳、離婚しました。
jicchoさんはTwitterを使っています 「@zacky1972 間違いではないことは知っています。 長音は略しても略さなくても良いことになりましたが、依然として、「専門分野の標準」を用いることが推奨されています。 なので、コンパイラと表記する方がより正しいと思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 この場合の「専門分野の標準」とは具体的に何を指しますか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 これですか? https://t.co/Ah4sDEllsH」 / Twitter
カタカナ語末尾の長音符号に対する情報処理学会の対応について-情報処理学会
jicchoさんはTwitterを使っています 「@zacky1972 はい、情報処理学会もそういう流れですし、世界的名著であるドラゴンブックやタイガーブックは標準といっても差し支えないと考えています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 ドラゴンブックやタイガーブックはもともと洋書なので,日本語表記をどう定めるというのは翻訳者の意向に依るものだと思います。翻訳の年を確認していませんが,おそらく規格が変わる前なのでは?とも思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 また情報処理学会の表記は「当面」「見直す」という言葉が使われていて,暫定的なものであることを臭わせています。したがって末尾の長音の使用を強く禁ずる立場ではないと推察できます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 以上のような意図を汲んで「コンパイラー」というような表記をあえて使用するケースも想定されます。私自身あえて使用する場合もあります。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 「見直す」ではなくて「再検討する」でしたね。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 もちろん僕も情報処理学会も長音の使用を禁止してはいませんよ。 ドラゴンブックなどを翻訳したのは僕のボスとボスのボスなので、そこまでおっしゃるならもはや流派の問題なのでしょうか? コンパイラーと意図的に表記する場合は具体的にどのような場合なのでしょうか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 基本どちらでも良いのですが,あえて使い分けるのでしたら,末尾長音を取るのは経産省の流儀で,つけるのは文化庁やその上部組織である文科省の流儀です。また役所の都合かと言われそうですけど。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私が言いたかったのは「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い」という判別法は,今は使えないということです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 同じことがNVIDIAとかARMにも言えて,本家自身が表記揺れを出している状況です。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 表記で判別するのではなく,中身を見ましょうということです。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 慣例でも学会でも主要な本や論文でも長音がなく、かつ、長音なしが推奨されているのにも関わらず敢えて使う理由が僕には見つかりませんね。 まぁ信じない方がいいというのは極論&amp;ネタですが、慣例や推奨されているのを知った上で敢えて使い続けるのもどうかと思います。 読みづらいですしね。」 / Twitter
jicchoさんはTwitterを使っています 「みなさん色々な意見をお持ちのようですが、「コンパイラー」という表記は間違いではないです。 ただ、慣例では「コンパイラ」の表記であり、学会や主要な文献でも長音がなく、どっちでもいいとはいえ慣例に従うのが推奨されているので、「コンパイラ」の方がより適切だと言うのが僕の考えです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 威勢が良くていいですね。 自分で書く分には好きな記法で書けば良いと思います。」 / Twitter
「サーバー」「サーバ」どっち? ~外来語の長音”ー”表記 | The Material World

JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 3017:2013 プログラム言語Ruby | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML)
JIS X 4168:2004 段階スタイルシート 水準1(CSS1)
JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
JIS X 8341-3:2016 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第3部:ウェブコンテンツ | 日本規格協会 JSA Group Webdesk
JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様/Open Systems Interconnection -- Specification of Abstract Syntax Notation One (ASN.1) 日本規格協会 JSA Webdesk
JIS X 3061:2021 JSONデータ交換フォーマット | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 0836:2005 ダブリンコアメタデータ基本記述要素集合 | 日本規格協会 JSA Group Webdesk
JIS X 4158:2005 XML名前空間 | 日本規格協会 JSA Group Webdesk
JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4169:2007 XSL変換(XSLT)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4176:2005 XMLリンク付け言語(XLink)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4177-2:2005 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG | 日本規格協会 JSA Group Webdesk
JIS X 4177-2:2005/AMENDMENT 1:2007 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 4178:2007 XMLフォーム言語(XForms)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 5810-1:2008 多目的インターネットメール拡張(MIME)―第1部:インターネットメッセージ本体のフォーマット | 日本規格協会 JSA Group Webdesk

ICN

IoT向けの新技術を既存のTCP/IPと共存、国内発の技術が国際規格に承認:IoTの大量導入で起こるネットの混雑を防止 - @IT
IPアドレスに縛られない新しい通信識別技術と既存のインターネットが共存するための国際規格が発行されました (METI/経済産業省)
電気電子工学科の横谷哲也教授が主導してきたIoTプラットフォームが国際標準として出版。IoTの普及促進に向けIoTプラットフォームを規定。大学院生も調査分析及び原理検証に貢献 | ニュース | KIT 金沢工業大学
ISO - ISO/IEC 30161:2020 - Internet of Things (IoT) — Requirements of IoT data exchange platform for various IoT services
研究会 - IoT関連技術の国際標準化動向とIoT DEPの提案

Publicly Available Standards
日本規格協会 - JSA Webdesk
JIS公示 | IPSJ/ITSCJ
JIS(日本工業標準)関係
MCPC-モバイルコンピューティング推進コンソーシアム
CIPA 一般社団法人カメラ映像機器工業会: ホーム
JEITA 電子情報技術産業協会
標準規格(放送分野)一覧表|一般社団法人 電波産業会
JIS法改正(産業標準化法)(METI/経済産業省)
工業標準化法 - Wikipedia
日本工業規格 - Wikipedia
総務省|標準化の推進|デジュール及びフォーラム標準に関する標準化活動の強化に資する調査
ISO - ISO/IEC 646:1991 - Information technology — ISO 7-bit coded character set for information interchange
ISO 80000-2 - Wikipedia
ISO 80000-2:2019 量及び単位-第2部:数学 | 日本規格協会 JSA Group Webdesk
性別がバイナリー (boolean) ではないと言われたら、プログラミング言語で性別をどう定義しますか?に対するOhkubo Koheiさんの回答 - Quora
ytakanoさんはTwitterを使っています 「身体的性別は、ISO 5218だと、不明、男性、女性、適用不能なのか。 https://t.co/wkLype3FKm」 / Twitter
ISO 5218 - Wikipedia
Keigo ImaiさんはTwitterを使っています 「プログラミングの例題でササっと住所とか名前とか年齢を扱うことはままあるだけど、このようにすれば性別も気兼ねなく扱ってよいのかもしれない https://t.co/48YYSEmWWN」 / Twitter
ISO/IEC 5218 - Wikipedia
崎村夏彦『デジタルアイデンティティ』日経BPより発売中さんはTwitterを使っています 「ISO/IEC 29184 『オンライン・プライバシー通知(告知)と同意』ではこういうのは禁止しているので、企業の皆様におかれましては参考にされますように。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「どうして、「キャンペーン情報」と「重要なお知らせ、クレカの利用通知」がまとめられて管理されてるのか。こういう事するとマジで通知全部OFFしか選択肢がなくなるだろ。馬鹿なの? https://t.co/SAaatfMgVt」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「米国議会図書館 (LoC) による、各ファイル形式の持続可能性評価。PDF/AやMP3などのフォーマットについて、オープン性, 普及度, 透明性, 自己完結性, 外部依存性, 特許による影響, 保護機構 の7つの項目を評価している。 https://t.co/8g50Nmw8sq」 / Twitter
Sustainability of Digital Formats: Planning for Library of Congress Collections

Unicode

サポートページ:プログラマのための文字コード技術入門:|技術評論社
[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
文字符号の歴史:アジア編 正誤表
文字符号の歴史 アジア編 三上喜貴 著/2002.3
三省堂-世界の言語ガイドブック
世界のことば小事典 柴田 武(著/文)(大修館書店)| 版元ドットコム
国際化と日本語処理 : Javaプログラミング・ノート : Cafe Babe (アスキー): 2000|書誌詳細|国立国会図書館サーチ

アルゴリズム

その他

CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
省メモリプログラミング―メモリ制限のあるシステムのためのソフトウェアパターン集 (Software patterns series) | ジェイムズ ノーブル, チャールズ ウィアー, James Noble, Charles Weir, 安藤 慶一 |本 | 通販 | Amazon
情報科学セミナー 遺伝的プログラミング - 東京電機大学出版局 科学技術と教育を出版からサポートする
計算の理論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
おすすめ書籍/プレアデス出版 Pleiades PUBLISHING
The Art of Computer Programming Volume 4A... - アスキードワンゴ
グラフ同型性判定問題 | あなたとともに100万人の仲間とともに
CiNii 図書 - 情報学のための離散数学
情報科学のための 離散数学 | コロナ社
電子機器設計に活かすディジタル代数学|科学情報出版
マグロウヒル大学演習 離散数学 コンピュータサイエンスの基礎数学 | 理工学専門書,理学,数学 | Ohmsha
近代科学社
公開鍵暗号の数理 / 日本応用数理学会  監修 森山 大輔 西巻 陵 岡本 龍明 著 | 共立出版

エスアイビーアクセス

書店・アマゾン販売書一覧 | sibaccess公式ページ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon

シュプリンガー・フェアラーク

グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ

O'Reilly Japan

O'Reilly Japan - 並行コンピューティング技法
O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
O'Reilly Japan - Hadoop MapReduce デザインパターン
O'Reilly Japan - プログラミング・ビットコイン

技術評論社

サポートページ:正規表現技術入門 ――最新エンジン実装と理論的背景:|技術評論社
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
『暗認本読書会』資料集
[改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社
図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書:書籍案内|技術評論社

共立出版

アルゴリズムと計算量 / 野崎 昭弘 著 | 共立出版
グラフ理論とフレームワークの幾何 / 前原 濶 桑田 孝泰 著 | 共立出版
簡潔データ構造 / 杉原 厚吉 室田 一雄 山下 雅史 渡辺 治 編 定兼 邦彦 著 | 共立出版
近似アルゴリズムデザイン / David P.Williamson  David B.Shmoys  著 浅野 孝夫 訳 | 共立出版
群・環・体入門 / 新妻 弘 木村 哲三 著 | 共立出版

講談社

新装版 集合とはなにか | ブルーバックス | 講談社
逆問題の考え方 | ブルーバックス | 講談社
『「複雑ネットワーク」とは何か』(増田 直紀,今野 紀雄):ブルーバックス|講談社BOOK倶楽部
離散数学「数え上げ理論」 : 「おみやげの配り方」から「Nクイーン問題」まで (講談社): 2008|書誌詳細|国立国会図書館サーチ

森北出版

超高速グラフ列挙アルゴリズム|森北出版株式会社
アルゴリズム理論の基礎 | 森北出版株式会社

岩波書店

「高速文字列解析の世界」サポートページ - daisuke.okanohara
高速文字列解析の世界 - 岩波書店
高速文字列解析の世界[読書メモ].rb
朱鷺の杜(IBIS)ブログ 高速文字列解析の世界
数値処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ

コンパイラ

その他

その他

lint (UNIXユーティリティライブラリ) | イアン・F. ダーウィン, 菊池 彰 |本 | 通販 | Amazon
i386TMDXマイクロプロセッサプログラマーズ・リファレンス・マニュアル | |本 | 通販 | Amazon
Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
書店・アマゾン販売書一覧 | sibaccess公式ページ
S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | 3世, サムエル・P. ハービソン, ジュニア, ガイ・L. スティール, 3, Samuel P. Harbison, Jr., Guy L. Steele, 玉井 浩 |本 | 通販 | Amazon
SQLパフォーマンス詳解 | Markus Winand, Markus Winand |本 | 通販 | Amazon
オブジェクト指向データベース入門―ポスト・リレーショナル・データベース (SRCハンドブック―STシリーズ) | 宇田川 佳久 |本 | 通販 | Amazon
Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
ファジィ・リレーショナル・データベース―エキスパート・システムへの鍵 | ツェマンコバ・リーチ,マリア, カンデル,エイブラハム, 政男, 向殿 |本 | 通販 | Amazon
数理論理学 (現代数学レクチャーズ B- 6) | 福山 克 |本 | 通販 | Amazon
Adaコンパイラ実現のための中間言語DIANA入門 言語仕様 応用 | 僚一, 細谷 |本 | 通販 | Amazon
Java仮想マシン仕様 (The Java series) | リンドホルム,ティム, イェリン,フランク, Lindholm,Tim, Yellin,Frank, 雅章, 村上 |本 | 通販 | Amazon
Java分散オブジェクト入門―Java RMI、CORBA、IDL、Jini、JavaSpaces対応 | 中山 茂 |本 | 通販 | Amazon

書籍情報―Linux技術者のためのC言語入門
CiNii 図書 - 論理プログラミングの基礎
1+2=3
Miura HidekiさんはTwitterを使っています 「1+1=2じゃないのは、全加算器を導入したいからだな。たぶん」 / Twitter
論理学をつくる « 名古屋大学出版会
ゲーデルの世界 - 海鳴社
数理論理学の基礎・基本 (牧野書店): 2012|書誌詳細|国立国会図書館サーチ
内田老鶴圃/書籍詳細/数理論理学 使い方と考え方:超準解析の入口まで
形式論理探求 第1巻 古典論理のタブロー | やまなみ書房 Yamanami Books
CiNii 図書 - 時間の論理
NHK出版新書 394 数学的推論が世界を変える 金融・ゲーム・コンピューター | NHK出版
連続体仮説 (東京図書): 1990|書誌詳細|国立国会図書館サーチ
ゲーデルの定理 | みすず書房
ゲーデルは何を証明したか|白揚社 -Hakuyosha-
論理学への数学的手引き | Herbert B. Enderton, 笹井一個, 嘉田 勝 |本 | 通販 | Amazon
嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
東京図書株式会社 math stories 計算とは何か
線型代数対話 第1巻圏論的集合論 集合圏とトポス | 株式会社 現代数学社
モナドロジー 形而上学叙説|全集・その他|中央公論新社
サクサクSmalltalk - 東京電機大学出版局 科学技術と教育を出版からサポートする
論理学 - 株式会社昭和堂
論理と言葉の練習ノート――日々の思考とAIをつなぐ現代の必須科目
USP研究所: 書籍 - Cプログラム高速化研究班
「実践バイナリ解析 バイナリ計装、解析、逆アセンブリのためのLinuxツールの作り方」 Dennis Andriesse[PC・理工科学書] - KADOKAWA
ロボットプログラミングROS2の実装・実践 -実用ロボットの開発-|科学情報出版
プログラミング原論 - 東京電機大学出版局 科学技術と教育を出版からサポートする
プログラミングの科学 (培風館): 1991|書誌詳細|国立国会図書館サーチ

カタカナ社名の出版社

サイエンス社

コンパイラの理論と作成技法 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
コンパイラ入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
人工知能の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
計算モデル論入門 : チューリング機械からラムダ計算へ (サイエンス社): 2006|書誌詳細|国立国会図書館サーチ
プログラミング言語の意味論入門 (サイエンス社): 1993|書誌詳細|国立国会図書館サーチ
プログラミング言語の基礎概念 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
モデルの記述と検証のためのプログラミング入門 – CafeOBJ
プログラム意味論の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
離散数学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社

コロナ社

コンピュータ数学シリーズ 超並列処理コンパイラ|コロナ社
コンピュータ数学シリーズ 3 数理論理学 | コロナ社
並列処理シリーズ 命令レベル並列処理 プロセッサアーキテクチャとコンパイラ|コロナ社
計算論理に基づく 推論ソフトウェア論 | コロナ社
数理論理学 - 合理的エージェントへの応用に向けて - | コロナ社
計測・制御テクノロジーシリーズ 16 知識基盤社会のための人工知能入門 | コロナ社
1から始める Juliaプログラミング | コロナ社
コンピュータサイエンス教科書シリーズ 18 数理論理学 | コロナ社
数理パズルで楽しく学べる論理学 | コロナ社

オーム社

GNU Autoconf/Automake/Libtool | コンピュータ・一般書,UNIX,UNIX | Ohmsha
新世代工学シリーズ システムソフトウェア | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販 | Amazon
IT Text コンパイラとバーチャルマシン | Ohmsha
IT Text プログラム仕様記述論 | Ohmsha
型システム入門 プログラミング言語と型の理論 | Ohmsha
Scheme手習い | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
コンパイラ 作りながら学ぶ | 理工学専門書,情報科学,ソフトウェア・情報システム | Ohmsha
関数プログラミングの楽しみ | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
計算できるもの、計算できないもの 実践的アプローチによる計算理論入門 | Ohmsha
すごいErlangゆかいに学ぼう! | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
並列コンピュータ 非定量的アプローチ | Ohmsha
関数プログラミング 珠玉のアルゴリズムデザイン | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
dRubyによる分散・Webプログラミング | 関 将俊 |本 | 通販 | Amazon
Coders at Work プログラミングの技をめぐる探求 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
7つの言語 7つの世界 | Ohmsha
7つのデータベース 7つの世界 | Ohmsha

アスキー

Amazon | エキスパートCプログラミング―知られざるCの深層 (Ascii books) | ピーター ヴァン・デ・リンデン, Peter van der Linden, 梅原 系 通販
デバッガの理論と実装 (ASCII SOFTWARE SCIENCE Language) | ジョナサン・B. ローゼンバーグ, Jonathan B. Rosenberg, 吉川 邦夫 |本 | 通販 | Amazon
Amazon | Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown 通販
C/C++ セキュアコーディング 第2版
純粋関数型データ構造 - アスキードワンゴ
『純粋関数型データ構造』のためだけの超いい加減な Standard ML 入門 - cafelier@SRM - TopCoder部
じょんどろさんのツイート: "What's new in purely functional data structures since Okasaki? https://t.co/9xo0yqn1W0 純粋関数データ構造の原著が発売されて以降に生まれた純粋なデータ構造等のリスト"
reference request - What's new in purely functional data structures since Okasaki? - Theoretical Computer Science Stack Exchange
CiNii 図書 - Cプログラムブック
Lisp処理系の作成 (アスキー出版局): 1986|書誌詳細|国立国会図書館サーチ
アラン・ケイ (アスキー): 1992|書誌詳細|国立国会図書館サーチ
アラン・ケイ (Ascii books) | アラン・C. ケイ, Kay, Alan Curtis, 雄二, 鶴岡 |本 | 通販 | Amazon
Lisp処理系の作成 (Cプログラムブック) | 弘一, 小西, 剛, 清水 |本 | 通販 | Amazon
Haskellによる関数プログラミングの思考法 - アスキードワンゴ
NFSバイブル (ASCII Addion Wesley Programming Series) | ブレント カラハン, Callaghan,Brent, クイープ |本 | 通販 | Amazon

マイナビ出版

Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
入門Common Lisp : 関数型4つの特徴とλ計算 (毎日コミュニケーションズ): 2006|書誌詳細|国立国会図書館サーチ
基礎からわかる Elm|Tech Book Zone Manatee
自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
セキュア・バイ・デザイン | マイナビブックス
リバースエンジニアリングツールGhidra実践ガイド | マイナビブックス

ナノオプト・メディア

モデル検査 (ナノオプト・メディア): 2010|書誌詳細|国立国会図書館サーチ
モデル検査 : 基礎から実践まで4日で学べる (ナノオプト・メディア): 2009|書誌詳細|国立国会図書館サーチ

幻冬舎ルネッサンス新社

論理がはじめてわかる 新・論理考究 - 自費出版の幻冬舎ルネッサンス新社
「ならば」騒乱 - 自費出版の幻冬舎ルネッサンス新社

デザインエッグ社

数理論理の手法 - 証明の発見と背理法の除去 (MyISBN - デザインエッグ社) | 安部 直人, 中西 泰雄 |本 | 通販 | Amazon
タブロー法による直接証明の発見 (MyISBN - デザインエッグ社) | 中西 泰雄 |本 | 通販 | Amazon

トッパン

注解C++リファレンス・マニュアル (トッパン): 1992|書誌詳細|国立国会図書館サーチ
A=B : 等式証明とコンピュータ (トッパン): 1997|書誌詳細|国立国会図書館サーチ
Concurrent Cプログラミング言語―並行プログラミング入門 | ゲハーニ, ナイレン, ルーム, ウィリアム・D., Gehani, Narain, Roome, William D., 正郎, 中村 |本 | 通販 | Amazon

ラムダノート

プログラミングHaskell 第2版(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
定理証明手習い(紙書籍+電子書籍) – 技術書出版と販売のラムダノート

秀和システム

デバッガによるx86プログラム解析入門【x64対応版】|書籍情報|秀和システム
Haskell 教養としての関数型プログラミング - 秀和システム あなたの学びをサポート!
実践Rustプログラミング入門 - 秀和システム あなたの学びをサポート!

リックテレコム

リックテレコム 書籍情報
リックテレコム 書籍情報

インプレスブックス

リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド - インプレスブックス

ピアソン

新装版 マルチパラダイムデザイン | ジェームス・O・コプリン, James O. Coplien, 平鍋 健児, 金沢 典子, 羽生田 栄一 |本 | 通販 | Amazon
デザインのためのデザイン | フレデリック・P・ブルックス Jr., 松田 晃一, 小沼千絵 |本 | 通販 | Amazon

真理・証明・計算 - ミネルヴァ書房 ―人文・法経・教育・心理・福祉などを刊行する出版社
コンピュータ・サイエンス研究書シリーズ 17 : 関数型プログラミング (日本コンピュータ協会): 1985|書誌詳細|国立国会図書館サーチ
サンライズ出版 » 論理と集合
C++言語のカラクリ|SBクリエイティブ
コネクションマシン : 65,536台のプロセッサから構成される超並列コンピュータ | 国立情報学研究所図書室 蔵書検索(OPAC)
Squeak入門 : 過去から来た未来のプログラミング環境 (エスアイビー・アクセス): 2003|書誌詳細|国立国会図書館サーチ
自由自在 Squeakプログラミング PDF版
プログラミング言語図鑑(増井 敏克) | 書籍 本 | ソシム

O'Reilly Japan

並行プログラミング入門

ラズパイ

RustでRaspberry Pi 4を操作してみた - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「Rust + Tokio + rppalで非同期プログラミングが出来た。 https://t.co/ZLokfkRv5M」 / Twitter
ytakanoさんはTwitterを使っています 「ちょっと書いたらGPIOの操作を非同期で扱えてすごいな。型安全だし。」 / Twitter
ytakanoさんはTwitterを使っています 「Raspi4のGPIOを、Rust + async_std + rppalで非同期に操作するのができた。signal_hookを使ってgraceful shutdownもしてみた。かなり適当だけど、これだけ出来れば十分な気もする。 https://t.co/4eAsRlnOZn」 / Twitter
rpi_async_test/main.rs at master · ytakano/rpi_async_test
ytakanoさんはTwitterを使っています 「async_stdはタスクのブロッキングを検知したら新たにスレッドを生成するらしいので、堂々とブロッキングしてる。」 / Twitter
ytakanoさんはTwitterを使っています 「graceful shutdownは、グラフの依存関係をみて、もっと綺麗に設計しないといけないけれど、まぁ良いだろう。」 / Twitter
ytakanoさんはTwitterを使っています 「次はSPIとI2Cをやってみよ」 / Twitter
ytakanoさんはTwitterを使っています 「DBにデータ挿入できた。Dieselはasync/awaitで使いにくいので、スレッドにした。」 / Twitter
ytakanoさんはTwitterを使っています 「DBにツッコんどけば、可視化は良い感じのソフトでできるでしょ」 / Twitter
(2) ytakanoさんはTwitterを使っています 「グラフ化も出来た https://t.co/Vr4anWbXsz」 / Twitter
ytakanoさんはTwitterを使っています 「ハードウェアとおしゃべりするプロトコル難しすぎる。セッション型で決めといてほしい。」 / Twitter
ytakanoさんはTwitterを使っています 「CO2センサを初期化するのに手こずったけれど、データ取れるところまでいけてそう。」 / Twitter
ytakanoさんはTwitterを使っています 「できた!自分で実装したところは全部Rustで書いた。 CO2・有機化合物センサは24時間連続稼働させないと数値が安定しないらしい。 https://t.co/JQ0bMRZRTE」 / Twitter

TLA+

ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の3.7.1にあるRWロックのアルゴズムをTLA+で検証できた https://t.co/Byr3J2n99l」 / Twitter
ytakanoさんはTwitterを使っています 「しかし、メモリオーダリングの検証はやってないな。」 / Twitter
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』7.1.1の公平なロックアルゴリズムをTLA+で検証できた。 https://t.co/pvHPCHZQXb」 / Twitter
ytakanoさんはTwitterを使っています 「Dropの挙動をモデル検査で書くのキツイな。Dropを全て人間が把握するのは現実的じゃないし。ベストプラクティスがよくわからん。」 / Twitter

O'Reilly Japan - 並行プログラミング入門
『並行プログラミング入門』を執筆しました - 未完成な論を綴るブログ
分散処理に詳しいオタクさんはTwitterを使っています 「読み終わったので書評書いた! 書評:並行プログラミング入門 - Software Transactional Memo https://t.co/mQv1ngoN1D」 / Twitter
書評:並行プログラミング入門 - Software Transactional Memo
分散処理に詳しいオタクさんはTwitterを使っています 「発売日が8/24なのになんで手元に本があるかっていうとオライリーで注文したら普通に割と前に届きました。Amazonで買って発売日前に手に入るかは知りません。」 / Twitter
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』は、パフォーマンス評価やSTMのマニアックな話をしだすと、400ページを超えてしまって、初学者が一冊読み通す難易度が格段に上がってしまうので、思い切って削りました。」 / Twitter
ytakanoさんはTwitterを使っています 「スケジューラの細かい話、パフォーマンス評価、形式手法を使った検証、RCUなど、他にも色々ありますが、そこら辺はこの本を読めば他の論文や専門書を読んでいけるようになるかなと。」 / Twitter
書評: 並行プログラミング入門 – さくらんぼの技術備忘録
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』正誤表 https://t.co/7dNwWlgbQj」 / Twitter
conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の正誤表を更新しました。重大な更新は次の2つです。 - 4.7 メモリバリアの dmb st の図と説明を修正 - 8章の「適用」の誤用を修正 https://t.co/7dNwWlgbQj」 / Twitter
2021-09-08 並行プログラミング入門』読書会 README - Google スライド
ْさんはTwitterを使っています 「並行プログラミング入門,λ抽象の構文がキモ過ぎる.普通 λx. x x って書いたら λx. (x x) って解釈すべきだと思うんだけど,この本の内容を読むと (λx. x) x って解釈されるのを想定しているように見える」 / Twitter
ْさんはTwitterを使っています 「λx の後の . は述語論理が元ネタで,. があったら入れ子の式はできるだけ広く解釈しましょうって意味なので,せめて λx x x と書いてほしい」 / Twitter
ْさんはTwitterを使っています 「あと演算子の結合の強さがキモい.β簡約基つって (λx.M a) とかいう式が出てきた時は誤植かと思ったわ」 / Twitter
ytakanoさんはTwitterを使っています 「P.269の構文定義通りに解釈すると、λ.x xや(λx.x) xはそもそも構文エラーで、カッコをつけた(e e)と言う形の(λx.x x)のみが関数適用の呼び出し構文になり定義にそえば間違いはないかと。よくある書き方と違うと言うのはご指摘通りですね。」 / Twitter
ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、教えている時に結合で混乱する人がとても多かったからです。」 / Twitter
ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、結合で混乱する人がとても多かったからです。」 / Twitter
ytakanoさんはTwitterを使っています 「2個書いてしまった。」 / Twitter
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の4.3 銀行家のアルゴリズムで、take関数のリソース数を指定可能にした修正を、読者の方に頂いたので、修正版のコードを掲載しました。 https://t.co/2EICrUfqGH」 / Twitter
conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
2021年まとめ - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「Rustはあとはエフェクトを記述出来ればなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「ハードウェア設計してセッション型でプロトコル設計してドライバをRustで書くまでやりたい」 / Twitter
ytakanoさんはTwitterを使っています 「ドライバのコードを読んでいるけれど、CだとポインタがNullになる可能性があるのかとか、設定が排他的なのかとかが、ソース読んでもすぐには分からない。」 / Twitter

O'Reilly Japan - make 改訂版
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Binary Hacks
O'Reilly Japan - アンダースタンディング コンピュテーション
O'Reilly Japan - Cクイックリファレンス 第2版
O'Reilly Japan - プログラミングGauche
O'Reilly Japan - Haskellによる並列・並行プログラミング
だめぽラボ@技術書典9さんはTwitterを使っています 「「Haskellによる並列・並行プログラミング」は原著が2013年、邦訳が2014年の本だけど、古くなってる部分とかあるのかな(配列ライブラリーとしてrepaが紹介されてるけど、最近はmassivというのも出てきているらしいので)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GPUプログラミングに関しては6章でaccelerateを扱っていて、その辺は2021年現在もそんなに変わらないと思う(accelerate自体のアップデートとかはあるだろうけど)」 / Twitter
O'Reilly Japan - グラフデータベース
O'Reilly Japan - インテル スレッディング・ビルディング・ブロック
O'Reilly Japan - ビューティフルアーキテクチャ
O'Reilly Japan - Go言語による並行処理
O'Reilly Japan - 詳解 システム・パフォーマンス
O'Reilly Japan - データ指向アプリケーションデザイン
O'Reilly Japan - 詳説 データベース
O'Reilly Japan - SQLアンチパターン
O'Reilly Japan - プログラミングTypeScript
O'Reilly Japan - デバッグの理論と実践
O'Reilly Japan - Debug Hacks
O'Reilly Japan - 初めてのマルウェア解析
O'Reilly Japan - 実践 bashによるサイバーセキュリティ対策
O'Reilly Japan - Optimized C++
O'Reilly Japan - ソフトウェアアーキテクチャの基礎

CUTT System

CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
CUTT System: books
CUTT System:64ビットアセンブラ入門
CUTT System:AVX命令入門
CUTT System:512ビット・ベクトルプログラミング入門
CUTT System:構造化並列プログラミング
CUTT System:jqハンドブック
CUTT System:高速化プログラミング入門

CQ出版

データベース技術教科書
数値演算入門―8086による浮動小数点演算の実際と8087の使い方 (パラダイム・ブックス) | 大貫 広幸 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
[絶版1999.4] 8086ファミリ・ハンドブック
[絶版2003.5.26] PostScript詳細解説
組み込みソフトへの数理的アプローチ
ソフトウェア考現学 : 基礎概念への最新おもしろガイド (CQ出版): 1985|Bibliography details|NDL Search
「ソフトウェア考現学」という 23 年前の本を読んだ - 星一の日記
超並列演算器 NVIDIA GPU入門

翔泳社

実践TLA+

実践TLA+ | SEshop.com | 翔泳社の通販
ytakanoさんはTwitterを使っています 「♢Fは無いのか?」 / Twitter
ytakanoさんはTwitterを使っています 「&lt;&gt;Fか。」 / Twitter
ytakanoさんはTwitterを使っています 「≠が#、∀が\A、∃が\Eの記号なのがイマイチ慣れないなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「論理積と論理和の書き方が独特すぎる」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+は主にPlusCalを使うのか」 / Twitter
ytakanoさんはTwitterを使っています 「言語はわかるがGUIがわからなかった。GUI難しい。」 / Twitter
ytakanoさんはTwitterを使っています 「たしかに、生のLTL書くよりもPlusCalの方がわかりやすいな。」 / Twitter
ytakanoさんはTwitterを使っています 「◇□PというLTLの式も出てくるので、知っておいた方がよさそうではある。」 / Twitter
ytakanoさんはTwitterを使っています 「TLA+の演算子は一般的な関数で、関数が一般的なマップって感じかな。マップも関数も演算子もだいたい同じものだから、どう呼称しても良いからかな。」 / Twitter
Danna@電網妄想さんはTwitterを使っています 「@ytakanoster その辺のTLA+の代数的構造がイマイチ分かりづらくて、その上、古いサンプルがテキストファイルだったりすると、もう読めない…修行が足らない…」 / Twitter
ytakanoさんはTwitterを使っています 「@danna_2010 基本的に集合演算と述語論理なので、難しくはないんですが、構文がちょっと微妙な気がします。PlusCalは実践TLA+で初めて使ったのですが、時相論理を生で使うよりだいぶわかりやすい気もしました。」 / Twitter
Danna@電網妄想さんはTwitterを使っています 「@ytakanoster PlusCalじゃないと分からんというのが私の感覚ですね…やっぱり修行が足らない…」 / Twitter
ytakanoさんはTwitterを使っています 「『実践TLA+』を読み終わったら、『並行プログラミング入門』にあるアルゴリズムを検証してみるかな。」 / Twitter
ytakanoさんはTwitterを使っています 「実践RLA+の3.3.2、 Flags = {“f1”, “f2”} で flags \in [Flags -&gt; BOOLEAN] としたら、状態が15個になるってよくわからんな。」 / Twitter
ytakanoさんはTwitterを使っています 「f1 |-&gt; TRUE f1 |-&gt; FALSE f2 |-&gt; TRUE f2 |-&gt; FALSE な気がするけれど。」 / Twitter
ytakanoさんはTwitterを使っています 「わかった。検査を実行した後の状態か。」 / Twitter
ytakanoさんはTwitterを使っています 「こうか。 [f1 |-&gt; TRUE, f2 |-&gt; TRUE] [f1 |-&gt; TRUE, f2 |-&gt; FALSE] [f1 |-&gt; FALSE, f2 |-&gt; TRUE] [f1 |-&gt; FALSE , f2 |-&gt; FALSE]」 / Twitter
ytakanoさんはTwitterを使っています 「TLA+でナップザック問題をやってみて、PDFに出力してみたら綺麗になる。綺麗になるけれど使うかな? https://t.co/9j5oNIzk9R」 / Twitter
ytakanoさんはTwitterを使っています 「記号が数式になってるのが利点か?」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+の6.1.1 「すべてのものはクラッシュする可能性がある」 の逆は 「すべてのものはクラッシュしない」 と言いたいのだろうけど、 P(x)を「xはクラッシュする可能性がある」とすると、元の文は ∀xP(x) となり、その否定は ¬∀xP(x)=∃x¬P(x) なので 「クラッシュしないものも存在する」となる。」 / Twitter
ytakanoさんはTwitterを使っています 「まぁ、こんなのは、実際のところどうでも良いツッコミだけれどw」 / Twitter
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の6.1.1と、『実践TLA+』の6.1で、弱い公平性と強い公平性について説明がある。 『並行プログラミング入門』の3.9でパン屋のアルゴリズムが、『実践TLA+』の6.4でデッカーのアルゴリズムがある。これらアルゴリズムはアトミック命令を使わない同期処理方法。」 / Twitter
ytakanoさんはTwitterを使っています 「2冊読むと、実装とモデル検査が学べてお得感がある。」 / Twitter
ytakanoさんはTwitterを使っています 「アトミック命令は必要なくても、メモリバリアは必要なので、アウトオブオーダーなRead/Writeとバリアもモデリングしないと。」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+、まさに実践でいいな。モデル検査の本て、やたら数学よりだったり、よくわからんパズル解いたり、自明な問題を解いたりという不満点があったがだいぶ解消されている気がする。」 / Twitter
ytakanoさんはTwitterを使っています 「高専生が理解して使えるぐらいじゃないといけないが、述語論理のところわかるかな。どうだろう。」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+の7.4より。 二分探索のアルゴリズムの示されたのが1986年(https://t.co/Mj4OvWI9uM)で、それにオバーフローのバグがあると示されたのが2000年代(https://t.co/Uy8DQET5qi)。本では、そのバグを検証するコードもあって面白い。」 / Twitter
Programming Pearls | ACM Other Books
Google AI Blog: Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken
ytakanoさんはTwitterを使っています 「オーバフローは最近のコード検査機なら、入ってる気がするな。」 / Twitter
ytakanoさんはTwitterを使っています 「リンクリストごときのモデリングが複雑すぎるな。」 / Twitter
ytakanoさんはTwitterを使っています 「Haskellとかだとリンクリストのデータ型で循環構造が作れるのか。親を持たないノードも複数作れそう?Rustのリンクリストは非循環で親の持たないノードは必ず一つのみ。」 / Twitter
ytakanoさんはTwitterを使っています 「集合演算と論理式で使用を記述する方法が、一般ITエンジニアまで浸透する未来はあるのかなあ。AIが自意識に目覚めるまで無さそう。」 / Twitter
ytakanoさんはTwitterを使っています 「実コードとうまく融合できりゃあなあ」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+の9章読んだ。ゴースト変数の説明がちょっとわかりにくいかな?自分の認識だと、証明や検証に使うための変数で、ビジネスロジックには影響の与えない変数だが。」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+の10と11章は、手を動かしながらじゃ無いと理解が難しいな。」 / Twitter
ytakanoさんはTwitterを使っています 「TLA+:PlusCalが直感的に書きやすい。デッドロックを自動で検査してくれる。時相論理でLiveness等も検査出来る。型エラーがわかりにくい。 Alloy:結果を図で表示してくれてとてもわかりやすい。型エラーがわかりやすい。通常のコードをモデリングするのに自分で状態遷移を書く必要があり面倒。」 / Twitter
ytakanoさんはTwitterを使っています 「モデリングしても、モデリング自体が間違っている可能性が捨てきれない。その点、図で例を表示してくれるAlloyはいい。」 / Twitter
ytakanoさんはTwitterを使っています 「並列処理はPlusCalが書きやすい。」 / Twitter
ytakanoさんはTwitterを使っています 「実践TLA+一通り読んだ。11章はさすがに難しいので、今度実際にやってみるか。」 / Twitter
『実践TLA+』を読んだ - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「形式手法、有用なんだがそれらを生業にしている人々が、リアルアプリケーションよりも、数学的な厳密さや証明ばかりに気を取られている印象。RFCなどのドラフトをバリバリ実装&amp;検査していき、オープンソースで公開とかすればいくとかしないと、なかなか難しそう。」 / Twitter
ytakanoさんはTwitterを使っています 「システム屋がやるべきか、理論屋がやるべきかは難しいところだ。両方やれば良いんだが。」 / Twitter
ytakanoさんはTwitterを使っています 「システム屋的にはランニングコードで示してもらわないと、お話にならないしなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「両方をうまく融合できれば良いのだけれど、両方の会話をできる人が全然いない。Twitterには数名いそうだけど、ここは特殊空間すぎる。」 / Twitter
ytakanoさんはTwitterを使っています 「一応補足しておくと、大学の研究室レベルでアプリケーションに対しても利用しているのは知っています。そうじゃなくて、高専の専門科目で普通に教えて、真面目に勉強した高専生なら普通に使えるぐらいにならないといけないよねという気持ちですね。」 / Twitter
チェシャ猫さんはTwitterを使っています 「私はこの意見には懐疑的で、実際に研究室どころか BigTech での採用が表に出てきています。「形式手法の実用は難しそう」というのは "実用" の範囲をそう決めているだけで、「三角関数なんて社会では使わない」と同タイプの言明に見えます。「高専生が使えるレベル」まで普及させる必然性がないです。」 / Twitter
ytakanoさんはTwitterを使っています 「え、自分たちの力を入れている技術をもっと一般に広めようという気がない?せっかく良いものなのに、もったいないなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「線形型システムを真面目に実装してみているが、クロージャの変数キャプチャが難しい。他は多分できた。」 / Twitter
ytakanoさんはTwitterを使っています 「概念はわかるんだが、実装がなあ。」 / Twitter
u6k_yu1さんはTwitterを使っています 「形式手法は使いたいと思ってるけど、まず自分が習得するのが難しくて、次にそれを周囲に教育するのがもっと難しい…」 / Twitter
ytakanoさんはTwitterを使っています 「そうなんだよなあ。使いたいのだけれど、AWSとかBigTech以外は使う必要なしって言われちゃうとなあ。」 / Twitter
Kazuyoshi KatoさんはTwitterを使っています 「@ytakanoster AWS だと型式手法は結構使われていて、オープンソースになっているものだと、s2n-tls という TLS 実装の、HMAC がらみが https://t.co/WaX1j8NmK1 に、タイミングアタックに関するものが https://t.co/ApSaqZNelv にあります。」 / Twitter
s2n-tls/tests/saw at main · aws/s2n-tls
s2n-tls/tests/ctverif at main · aws/s2n-tls
ytakanoさんはTwitterを使っています 「@kzys ありがとうございます!大学で簡単なモデル検査の講義をしていて、もっと大衆化するにはどうすればいいか悩んでいるところです。AWSなどの例は毎回説明はするのですが、それでもピンとこない人も多いので。」 / Twitter
画力・博士号さんはTwitterを使っています 「修士でプログラム検証を専攻したけれども「形式手法の理論の発達に比して実際的なソフトウェアへ適用しやすくする方法はまだまだ貧弱でもうひと山ある」という感覚はとてもわかります(だから可能なら自分などが推し進めないといけないんだろうとは思っていますが……)」 / Twitter
画力・博士号さんはTwitterを使っています 「窮極的には,*実際的な* ソフトウェアとそれが満たしてほしい性質の何らかの述語的記述(可能な限り簡単に書けるとよい)とを入力しただけで OK・ダメ(+反例)・わからん のいずれかを出力するような検査器を実現すべきというヴィジョンはある」 / Twitter

ガベージコレクション(RichardJones AntonyHosking EliotMoss 前田敦司 鵜川始陽 小宮常康) | 翔泳社の本
ヘネシー&パターソン コンピュータアーキテクチャ 第5版 翻訳版ホームページ | Amano Lab
関数型リアクティブプログラミング 電子書籍(株式会社クイープ 株式会社クイープ AnthonyJones StephenBlackheath)|翔泳社の本
実用Common Lisp(Peter Norvig 杉本宣男)|翔泳社の本
Scala逆引きレシピ(竹添直樹 島本多可子)|翔泳社の本
独習コンピュータ科学基礎II 論理構造(神林靖 James L. Hein)|翔泳社の本
最新コンパイラ構成技法(神林 靖 神林 靖 Andrew W. Appel 滝本 宗宏 滝本 宗宏)|翔泳社の本
入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
コンピュータプログラミングの概念・技法・モデル(Peter Van Roy Seif Haridi 羽永 洋 羽永 洋)|翔泳社の本
ジェネレーティブ プログラミング(Krzysztof Czarnecki Ulrich W. Eisenecker 津田 義史 津田 義史 今関 剛 今関 剛 朝比奈 勲 朝比奈 勲)|翔泳社の本
C言語によるオブジェクト指向プログラミング入門(坂井 弘亮)|翔泳社の本
計算機プログラムの構造と解釈 第2版(Gerald Jay Sussman Harold Abelson Julie Sussman 和田 英一 和田 英一 和田 英一)|翔泳社の本

日経BP

LINQテクノロジ入門 | 日経クロステック(xTECH)
日経BP SHOP|XQuery+XMLデータベース入門
日経BP SHOP|プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
日経BP SHOP|チューリングを読む
コンピュータの構成と設計 第5版 上|日経の本 日経BP
コンピュータの構成と設計 第5版 下|日経の本 日経BP
.NET&Windowsプログラマのためのデバッグテクニック徹底解説|日経の本 日経BP
SOFTWARE FACTORIESソフトウェアファクトリー | グリーンフィールド,ジャック, クック,スティーブ, ショート,キース, ケント,スチュアート, マイクロソフト, Greenfield,Jack, Cook,Steve, Short,Keith, Kent,Stuart, 一行, 野村 |本 | 通販 | Amazon
Adaptive Code ~ C#実践開発手法 第2版|日経の本 日経BP
基礎からわかるMDA|日経の本 日経BP

放送大学教育振興会

「コンピューティング-原理とその展開-」 - 理学の本棚 - 東京大学 大学院理学系研究科・理学部
コンピューティング-原理とその展開- - 放送大学教育振興会オンラインショップ

東京大学出版会

並列プログラミング入門 - 東京大学出版会
数理論理学 - 東京大学出版会
数学基礎論 増補版 - 東京大学出版会
圏論による論理学 - 東京大学出版会

岩波書店

システムプログラム入門 - 岩波書店
論理と意味 - 岩波書店
アルゴリズムとプログラミング言語 - 岩波書店
論理とプログラム意味論 - 岩波書店
Introduction to Computer Science
プログラミング言語 (岩波書店): 1994-06|書誌詳細|国立国会図書館サーチ
プログラミング言語処理系 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
記号処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
計算モデルの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
プログラムの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
モデルと表現 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
ゲーデル 不完全性定理 - 岩波書店
論理学超入門 - 岩波書店
論理と計算のしくみ - 岩波書店
新版 バナッハ-タルスキーのパラドックス - 岩波書店
抽象数学の手ざわり - 岩波書店
Prologのソフトウェア作法 - 岩波書店
集合・位相入門 - 岩波書店

近代科学社

近代科学社
近代科学社
近代科学社
近代科学社
演習プログラムの証明 (近代科学社): 1980|書誌詳細|国立国会図書館サーチ
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社

技術評論社

80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
たのしいバイナリの歩き方:書籍案内|技術評論社
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
証明と論理に強くなる ~論理式の読み方から,ゲーデルの門前まで~:書籍案内|技術評論社
WEB+DB PRESS Vol.60|技術評論社
「言語設計の基礎知識」本日発売! - 西尾泰和のはてなダイアリー
プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜:書籍案内|技術評論社
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで
WEB+DB PRESS総集編 [Vol.1~102]:書籍案内|技術評論社
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる:書籍案内|技術評論社
コーディングを支える技術――成り立ちから学ぶプログラミング作法(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
「コーディングを支える技術」著者公式ページ
[増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社
エキスパートのための MySQL[運用+管理]トラブルシューティングガイド:書籍案内|技術評論社
MySQL Cluster構築・運用バイブル ~仕組みからわかる基礎と実践のノウハウ:書籍案内|技術評論社
[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則:書籍案内|技術評論社
「集合と位相」をなぜ学ぶのか ―数学の基礎として根づくまでの歴史:書籍案内|技術評論社

共立出版

コンパイラ ―原理と構造―

コンパイラ ―原理と構造― / 大堀 淳 著 | 共立出版
コンパイラ ー 原理と構造
コンパイラ ー 原理と構造
大堀 淳さんはTwitterを使っています 「ご指摘ありがとうございます.おっしゃる通り,p131の「トップレベルの導出:」の導出図の3つの(top)ラベルは誤りです.上からそれぞれ(nil),(val), (val)です.正誤表に反映させます.」 / Twitter
大堀 淳さんはTwitterを使っています 「これらの導出木などを含む誤りの修正の表示は、従来形式の正誤表では分かりにくいと思われるので、LaTeXML で正誤表を作成する予定です。GitHub PageにLaTeXMLの出力を埋め込むための環境を準備中です。」 / Twitter
大堀 淳さんはTwitterを使っています 「ちなみに、「コンパイラ  原理と構造」に関してでした。最初の引用ツイートに書き忘れので、追加のツイート。(twitterにあまり慣れていない...」 / Twitter
zickさんはTwitterを使っています 「ところどころ大事な式などに誤字などがあったのが気になった。例えば規則 (top) を含む導出が現れるけど、どこにも (top) の定義がない気がする。」 / Twitter
大堀 淳さんはTwitterを使っています 「@zick_minoh ご指摘ありがとうございます.おっしゃる通り,p131の「トップレベルの導出:」の導出図の3つの(top)ラベルは誤りです.上からそれぞれ(nil),(val), (val)です.正誤表に反映させます.それ以外のお気づきの誤りがあれば、ご指摘ください。」 / Twitter
zickさんはTwitterを使っています 「@AtsushiOhori p147の {f:Rec(E0,f0,x0,e0), x:v2} のf:とx:はf0:とx0:でしょうか。 https://t.co/M9SHvZT5r9」 / Twitter
大堀 淳さんはTwitterを使っています 「@zick_minoh その通りです.ありがとうございます.」 / Twitter
zickさんはTwitterを使っています 「@AtsushiOhori 細かいですがp104の1つめの規則に出てくるΓ2とτ2はΓとτでしょうか。 https://t.co/elB0E8zvUN」 / Twitter
大堀 淳さんはTwitterを使っています 「@zick_minoh ご質問ありがとうございます.これはママでもOKですね.例えば「前提1つなら,上式1下式2.前提がn個なら上式1〜n下式添字なし」との方針も有りえます.統一感等を考え,改訂版でご指摘のように変更するかもしれませんが,正誤表の対象とはしない方針とします.」 / Twitter
zickさんはTwitterを使っています 「@AtsushiOhori 自信はないのですがp132のifにおける S2(τ2) は S3(τ2) でしょうか。 https://t.co/UaheJnZCor」 / Twitter
大堀 淳さんはTwitterを使っています 「@zick_minoh その通りです。ご指摘ありがとうございます。丁寧に読んでいただき、ありがとうございます。正誤表(作成が滞ておりますが)に反映させていただきます。」 / Twitter
zickさんはTwitterを使っています 「「コンパイラ: 原理と構造」の型推論をClojureで書いた | zick pages https://t.co/XoD5NrkWtw」 / Twitter
「コンパイラ: 原理と構造」の型推論をClojureで書いた | zick pages

プログラミング言語Standard ML入門 改訂版

プログラミング言語Standard ML入門 改訂版 / 大堀 淳 著 | 共立出版
大堀 淳さんはTwitterを使っています 「プログラミング言語Standard ML入門 改訂版 の発売日も近いので,この本のサポートページ https://t.co/aB3bk4KwbT にコード例(GitHubレポジトリへのリンク),練習問題の解答例,正誤表(初版)をアップロードしました.」 / Twitter
プログラミング言語Standard ML入門(改訂版)

情報理論のための数理論理学 / 板井 昌典 著 | 共立出版
スタックコンピュータ ―CISC/RISCとスタックアーキテクチャ― / Philip J.Koopman,Jr.  著 田中 清臣 監訳 藤井 敬雄 訳 | 共立出版
新しいプログラミング・パラダイム / 井田 哲雄 編 | 共立出版
続新しいプログラミング・パラダイム / 井田 哲雄 田中 二郎 編 | 共立出版
属性文法入門 | 今泉 貴史, 片山 卓也, 佐々 政孝, 篠田 陽一, 中田 育男, 西野 哲朗, 松田 裕幸, 情報処理学会 |本 | 通販 | Amazon
プログラムスライシング技術と応用 / 下村 隆夫 著 | 共立出版
並列論理型言語GHCとその応用 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
プログラム変換 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
制約論理プログラミング / 淵 一博 監修 溝口 文雄 古川 康一 J-L.Lassez  編 | 共立出版
応用論理 / 桔梗 宏孝 著 | 共立出版
プログラム検証論 / 林 晋 著 | 共立出版
プログラミング言語Standard ML入門 / 大堀 淳 著 | 共立出版
復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
プログラミング言語の新潮流 / 井田 哲雄 著 | 共立出版
情報代数 / 小野 寛晰 著 | 共立出版
情報検索の基礎 / Christopher D.Manning  Prabhakar Raghavan  Hinrich Schutze  著 岩野 和生 黒川 利明 濱田 誠司 村上 明子 訳 | 共立出版
新装版 プログラミング言語の基礎理論 / 大堀 淳 著 | 共立出版
計算機代数の基礎理論 / 長坂 耕作 岩根 秀直 編著 北本 卓也 讃岐 勝 照井 章 鍋島 克輔 著 | 共立出版
新世代プログラミング / 淵 一博 黒川 利明 編著 | 共立出版
数学における証明と真理 ―様相論理と数学基礎論― / 菊池 誠 編 佐野 勝彦 倉橋 太志 薄葉 季路 黒川 英徳 菊池 誠 著 | 共立出版
ヒルベルト数学の問題 ―ヒルベルトの問題― 増補版 / D.HILBERT  著 一松 信 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
ペアノ数の概念について / G.PEANO  著 小野 勝次 梅沢 敏郎 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
プログラム意味論 / 横内 寛文 著 | 共立出版
不完全性定理 / 菊池 誠 著 | 共立出版
計算科学のための並列計算 ―大規模計算への第一歩― / 金田 行雄 笹井 理生 監修 石井 克哉 編 | 共立出版
計算科学のための基本数理アルゴリズム / 金田 行雄 笹井 理生 監修 張 紹良 編 | 共立出版
数とは何か ―そしてまた何であったか― / 足立 恒雄 著 | 共立出版
計算で身につくトポロジー / 阿原 一志 著 | 共立出版
多変数関数論 / 若林 功 著 | 共立出版
Transputer/occamによる並列プログラミング入門 / Ronald S.Cok  著 梅尾 博司 監訳 松田 稔 丸山 公雄 山本 正樹 訳 | 共立出版
ソフトウェア千夜一夜物語 / Themsky  著 | 共立出版
続ソフトウェア千夜一夜物語 / Themsky  著 | 共立出版
応用事例とイラストでわかる離散数学 ―カンタンな数学でAIも理解できる!?― 第2版 / 延原 肇 著 | 共立出版

日本評論社

古森 雄一 のホームページ
圏論の歩き方|日本評論社
関数プログラミング|日本評論社
情報科学における論理|日本評論社
集合論|日本評論社
キューネン数学基礎論講義|日本評論社
層・圏・トポス|日本評論社
代数学入門|日本評論社
現代集合論入門(日評数学選書)[増補版]|日本評論社

朝倉書店

朝倉書店| コンパイラの構成と最適化 (第2版)
朝倉書店| 数理論理学
数理情報学入門 : スコット・プログラム理論 (朝倉書店): 1982|書誌詳細|国立国会図書館サーチ
朝倉書店| パターンの発見 ―離散数学―
朝倉書店| パラドックスの不思議 ―論理と集合―
朝倉書店| コンピュータの思考法 ―計算モデル―
朝倉書店| コンピュータと数学
理論計算機科学事典  |朝倉書店
現代基礎数学 多項式と計算機代数  |朝倉書店
現代基礎数学 数学の言葉と論理  |朝倉書店
講座 数学の考え方 集合と位相空間  |朝倉書店

森北出版

形式的モデル化 離散事象/実時間/ハイブリッドシステムのモデル化と解析 | 森北出版株式会社
定理証明支援系とは何か、何ができるのか|森北出版|note
Coq/SSReflect/MathCompによる定理証明 フリーソフトではじめる数学の形式化 | 森北出版株式会社
計算モデルとプログラミング | 森北出版株式会社
数学パズル ものまね鳥をまねる 愉快なパズルと結合子論理の夢の鳥物語 | 森北出版株式会社
定理のつくりかた | 森北出版株式会社
よくわかるトポロジー | 森北出版株式会社
コンピュータサイエンスにおける様相論理|森北出版株式会社
ソフトウェア自動チューニング|森北出版株式会社
Pythonで学ぶ解析表現文法と構文解析|森北出版株式会社
数学書の読みかた|森北出版株式会社

新潮社

ジョージ・G・スピーロ、青木薫/訳 『ケプラー予想―四百年の難問が解けるまで―』 | 新潮社
ロビン・ウィルソン、茂木健一郎/訳 『四色問題』 | 新潮社

遊星社

数学と新しい論理
述語論理・入門
構成的プログラミングの基礎
選択公理と数学
集合論・入門 : 無限への誘い (遊星社): 2013|書誌詳細|国立国会図書館サーチ

青土社

青土社 ||科学/数学/生物:コンピュータは数学者になれるのか?
青土社 ||科学/数学/生物:バナッハ=タルスキの逆説

裳華房

<書籍紹介> 証明論と計算量(竹内外史 著)【数学】
<書籍紹介> 本質から理解する 数学的手法(荒木 修・齋藤智彦 共著)【数学】
<書籍紹介> 数学基礎論序説(田中一之 著)【数学】
<書籍紹介> 手を動かしてまなぶ 集合と位相(藤岡 敦 著)【数学】
<書籍紹介> 集合と位相(増補新装版)(内田伏一 著)【数学】

講談社

『数学にとって証明とはなにか ピタゴラスの定理からイプシロン・デルタ論法まで』(瀬山 士郎):ブルーバックス|講談社BOOK倶楽部
問題解決力を鍛える!アルゴリズムとデータ構造 | 書籍情報 | 株式会社 講談社サイエンティフィク
知の教科書 論理の哲学 (講談社選書メチエ) | 飯田 隆 |本 | 通販 | Amazon
イラストで学ぶ 人工知能概論 | 書籍情報 | 株式会社 講談社サイエンティフィク
『新装版 集合とはなにか』(竹内 外史):ブルーバックス|講談社BOOK倶楽部
『なっとくする数学記号 π、e、iから偏微分まで』(黒木 哲徳):ブルーバックス|講談社BOOK倶楽部

現代数学社

広がりゆくトポロジーの世界 —言語としてのホモトピー論— | 株式会社 現代数学社
数学の研究をはじめよう(Ⅳ)完全数の新しい世界 | 株式会社 現代数学社
数学の本質をさぐる3関数の代数的処理・古典整数論 | 株式会社 現代数学社
集合・位相に親しむ | 株式会社 現代数学社
線型代数学周遊 〜応用をめざして〜 | 株式会社 現代数学社

丸善出版

数理論理学とタイプ理論 : 証明による真理へ (丸善): 1987|書誌詳細|国立国会図書館サーチ
統合化プログラミング環境―Smalltalk‐80とInterlisp‐D (ワークステーションシリーズ) | 上谷 晃弘 |本 | 通販 | Amazon
ベーシック圏論 - 丸善出版 理工・医学・人文社会科学の専門書出版社
プログラミング言語Go - 丸善出版 理工・医学・人文社会科学の専門書出版社

筑摩書房

筑摩書房 公理と証明 ─証明論への招待 / 彌永 昌吉 著, 赤 攝也 著
筑摩書房 数とは何かそして何であるべきか / リヒャルト・デデキント 著, 渕野 昌 著, 渕野 昌 著
筑摩書房 数学基礎論 / 前原 昭二 著, 竹内 外史 著
筑摩書房 大学数学の教則 / 矢崎 成俊 著

C&R研究所

書籍詳細|株式会社 C&R研究所
書籍詳細|株式会社 C&R研究所

GUI

その他

Kindle

Google Chrome ユーザーデータ自動軽量化Book | 柳井 政和 | 工学 | Kindleストア | Amazon
速習ECMAScript2018: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ | 山田祥寛 | 工学 | Kindleストア | Amazon

curses―UNIXユーティリティライブラリ | ジョン ストラング, 菊池 彰 |本 | 通販 | Amazon
The Craft of Text Editing―手作りのテキストエディタ | クレイグ・A. フィンゼス, Craig A. Finseth, 岩谷 宏 |本 | 通販 | Amazon
HTML+スタイルシート徹底活用ガイド (SOFTBANK BOOKS) | 宮坂 雅輝 |本 | 通販 | Amazon
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
IBM PCビデオシステムプログラミング (ソフトバンク出版事業部): 1994|書誌詳細|国立国会図書館サーチ
秀和システム:フルスクラッチによるグラフィックスプログラミング入門
並列処理シリーズ 並列図形処理|コロナ社
書籍詳細|株式会社 C&R研究所
数式組版 – 技術書出版と販売のラムダノート
マンガとイラストでわかる!GPU最適化入門 | ボーンデジタル
Designing Math. – 数学とデザインをむすぶプログラミング入門 | 株式会社ビー・エヌ・エヌ

CQ出版

[絶版2008.9.4] JPEG2000詳細解説
[絶版2008.8.19] よくわかる動画・静止画の処理技術
No.6(2010・SUMMER) 目次|ディジタル・デザイン・テクノロジ

技術評論社

検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
ブラウザのしくみ:書籍案内|技術評論社
Webフロントエンド ハイパフォーマンス チューニング:書籍案内|技術評論社
オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏:書籍案内|技術評論社
クラウドゲームをつくる技術 ―マルチプレイゲーム開発の新戦力:書籍案内|技術評論社
CSS設計完全ガイド ~詳細解説+実践的モジュール集:書籍案内|技術評論社

アスキー

プログラミングWideStudio―オープンソース、マルチプラットフォーム対応統合開発環境 (ASCII SOFTWARE SCIENCE Language) | 平林 俊一, 末竹 弘之, 白沢 克年, 玉木 徹, 重 俊博, 山崎 亮, 金 泰斗, 山本 清, おぐら ともふみ |本 | 通販 | Amazon
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon

O'Reilly Japan

O'Reilly Japan - 初めてのJavaScript 第3版
O'Reilly Japan - SVGエッセンシャルズ 第2版
O'Reilly Japan - CSSシークレット
O'Reilly Japan - CSSクックブック
O'Reilly Japan - 実用Git
O'Reilly Japan - PDF構造解説
O'Reilly Japan - マイクロインタラクション
O'Reilly Japan - Reactハンズオンラーニング 第2版

アンテナハウス

『PDFインフラストラクチャ解説 電子の紙PDFとその周辺技術を語り尽す』 | アンテナハウス PDF資料室
『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。 | 電子書籍、電子出版のCAS-UBブログ
目次:MathML 数式組版入門

マイナビ出版

マイナビ ブックス - 目次
未来をつくった人々 : ゼロックス・パロアルト研究所とコンピュータエイジの黎明 (毎日コミュニケーションズ): 2001|書誌詳細|国立国会図書館サーチ
未来をつくった人々 - Wikipedia
HTML&CSS―HTML4.01&CSS2対応 (速効!ポケットマニュアル) | 森 理浩 |本 | 通販 | Amazon
CSSグリッドレイアウト デザインブック | マイナビブックス

インプレス

Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 - インプレスブックス
Jetpack ComposeによるAndroid MVVMアーキテクチャ入門 | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)
Tailwind CSS まとめ | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)

OS

その他

Kindle

Windows Installer技術 | 福間通人 | 工学 | Kindleストア | Amazon
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア

Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう|書籍情報|秀和システム
オペレーティングシステム入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
[改訂版]コンピュータと素因子分解
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
ソフトウェア実行/開発環境 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
ゼロからのOS自作入門 | マイナビブックス
『ゼロからのOS自作入門』に込めた思い - uchan note
スーパーユーザーなら知っておくべきLinuxシステムの仕組み - インプレスブックス
平成ネット史 永遠のベータ版 | 株式会社 幻冬舎
「角川インターネット講座1 インターネットの基礎 情報革命を支えるインフラストラクチャー」 村井 純[全集](電子版) - KADOKAWA

ピアソンエデュケーション

Solarisインターナル―カーネル構造のすべて | ジム モーロ, リチャード マクドゥーガル, Jim Maure, Richard McDougall, 福本 秀, 細川 一茂, 佐藤 敬, 兵頭 武文, 大嶺 朋之 |本 | 通販 | Amazon
Amazon | Win32システムサービスプログラミング―Windows NT/95システムAPIリファレンス (Windows programming technique) | マーシャル・ブレイン, 郡司 芳昭, 三田 典玄 | Web構築・管理

トムソン

プログラマーのためのDCE入門 | ワード ローゼンベリー, ゲリー フィッシャー, デビッド ケニー, Ward Rosenberry, Gerry Fisher, David Kenney, 中田 温朗 |本 | 通販 | Amazon
DCEプログラミングガイド | ジョン シャーリー, デビット マギッド, ウェイ フー, John Shirley, David Magid, Wei Hu, 中田 温朗 |本 | 通販 | Amazon
DCEとWindows NT―対応アプリケーションのプログラミング | ワード ローゼンベリー, ジム ティーグ, Ward Rosenberry, Jim Teague, 望月 康司 |本 | 通販 | Amazon

オーム社

USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
sonic1.biz/front_page.htm
マスタリングTCP/IP SNMP編 | コンピュータ・一般書,ネットワーク構築,プロトコル | Ohmsha
IT Text オペレーティングシステム(改訂2版) | Ohmsha

ラムダノート

プロフェッショナルSSL/TLS(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
書評:プロフェッショナルSSL/TLS - ぼちぼち日記
プロフェッショナルSSL/TLS 1.2章
OpenSSLクックブック(電子書籍のみ) – 技術書出版と販売のラムダノート
プロフェッショナルIPv6 第2版 – 技術書出版と販売のラムダノート
徹底解説 v6プラス – 技術書出版と販売のラムダノート

SBクリエイティブ

WinSock関連リンク集
WinSock2 プログラミング 改訂第2版
SBクリエイティブ:最新 Windows Vistaプログラミング徹底理解
『暗号技術入門 第3版 秘密の国のアリス』
SBクリエイティブ:動かして学ぶセキュリティ入門講座
UNIXカーネル内部解析―キャッシュとマルチプロセッサの管理 (プロフェッショナルコンピューティングシリーズ) | カート シメル, Curt Schimmel, 岩本 信一 |本 | 通販 | Amazon
DNSがよくわかる教科書 | SBクリエイティブ

アスキー

SOUND BLASTERオフィシャルブック (マルチメディアプログラミング―Disk book) | Richard Heimlich, Peter M. Ridge, David M. Golden, Ivan Luk |本 | 通販 | Amazon
Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown |本 | 通販 | Amazon
Amazon | プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール | Web構築・管理
プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール |本 | 通販 | Amazon
Amazon | Inside OLE (マイクロソフトプレスシリーズ) | Kraig Brockschmidt, エー・ピー・ラボ, 長尾 高弘 | ソフトウェア開発・言語
Amazon | Inside COM―Microsoft’s Component Object Model (Microsoft programming series) | Dale Rogerson, バウングローバル株式会社 | ソフトウェア開発・言語
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
UNIX Cプログラミング (NUTSSHELL HANDBOOKS) | デビッド・A. クリ, アスキー書籍編集部 |本 | 通販 | Amazon
Xinuオペレーティングシステムデザイン 改訂2版 - アスキードワンゴ

コロナ社

実践サイバーセキュリティモニタリング|コロナ社
暗号ハードウェアのセキュリティ | コロナ社

O'Reilly Japan

O'Reilly Japan - Bluetooth Low Energyをはじめよう
O'Reilly Japan - 詳解 Linuxカーネル 第3版
O'Reilly Japan - Real World HTTP
O'Reilly Japan - Real World HTTP 第2版
O'Reilly Japan - 入門 監視
O'Reilly Japan - インターネットヒストリー

CQ出版

改訂新版 パソコン・インターフェース規格入門(SP No.94)
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
定番!超軽量マイコン用ファイル・システムFatFs
組み込み機器へのUSBホスト実装技法
USB 3.0設計のすべて
シリアルATAの基礎とFPGAへの実装
[品切れ重版未定2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
[絶版2011.9.8] リアルタイム/マルチタスクシステムの徹底研究
全部ネット接続!Ethernetマイコン・プログラミング
USB Type-Cのすべて
USB 3.2のすべて

工学社

書籍情報―OpenCV3ではじめる Windowsアプリ開発
OpenCV3ではじめる Windowsアプリ開発
次世代OSアーキテクチャ―QNXオペレーティング・システムの世界 「マイクロカーネルOS」と「ネットワーク分散処理」 | 鈴木 治 |本 | 通販 | Amazon
書籍情報―「USB TypeC」の基礎知識
書籍情報―実践「USB TypeC」

翔泳社

Amazon | Windows 98 APIバイブル シェル・シェルユーティリティ・印刷・IME・追加関数編 (Programmer’s Selection) | ガリバー, 長谷川 勝規 | Windows
COM IDL&インターフェイスデザイン (Programmer’s SELECTION) | アル メジャー, 萩原 正義, Al Major, 夏目 大 |本 | 通販 | Amazon
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(鈴木貢 中條拓伯 John L. Hennessy David A. Patterson 天野英晴 吉瀬謙二 佐藤寿倫)|翔泳社の本
詳解HTTP/2(Barry Pollard 北原 憲 一ノ瀬 太樹 洲崎 俊 新井 悠 国分 裕 長谷川 陽介)|翔泳社の本
徹底解剖 TLS 1.3(古城 隆 松尾 卓幸 宮崎 秀樹 須賀 葉子)|翔泳社の本

日経BP社

プログラミングWindows Runtime|日経BPブックナビ【公式サイト】
日経BP書店|目次 -
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
APIで学ぶWindows徹底理解 (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア編 |本 | 通販 | Amazon
APIで学ぶWindowsプログラミング (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア |本 | 通販 | Amazon
日経ソフトウエア 2010年 04月号 [雑誌] | 日経ソフトウエア |本 | 通販 | Amazon
COM+テクノロジガイド (マイクロソフト公式解説書―最新テクノロジシリーズ) | デイビット プラット, David S. Platt, 豊田 孝 |本 | 通販 | Amazon
インサイドWindows 第7版 上 システムアーキテクチャ、プロセス、スレッド、メモリ管理、他|日経の本 日経BP

技術評論社

3分間HTTP &メールプロトコル基礎講座 : 世界一わかりやすいネットワークの授業 (技術評論社): 2010|書誌詳細|国立国会図書館サーチ
Firefox OS 【決定版】 開発ガイドブック:書籍案内|技術評論社
Androidを支える技術〈Ⅱ〉──真のマルチタスクに挑んだモバイルOSの心臓部:書籍案内|技術評論社
[Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
TCP技術入門 ――進化を続ける基本プロトコル:書籍案内|技術評論社
作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社

森北出版

情報セキュリティの理論と技術 暗号理論からICカードの耐タンパー技術まで | 森北出版株式会社
Javaで作って学ぶ暗号技術 RSA,AES,SHAの基礎からSSLまで | 森北出版株式会社

丸善出版

はじめての数論 原著第3版[丸善出版]
はじめての数論 原著第4版 - 丸善出版 理工・医学・人文社会科学の専門書出版社

共立出版

分散オペレーティングシステム ―UNIXの次にくるもの― / 前川 守 所 真理雄 清水 謙多郎 編 | 共立出版
新しいOS / 石田 晴久 土居 範久 編集委員 石田 晴久 土居 範久 共編 | 共立出版
Macintosh HyperCard付 増補版 / 石田 晴久 土居 範久 編集委員 西林 瑞夫 著 | 共立出版

機械学習

その他

作品紹介:パターン認識と機械学習の学習普及版 :暗黒通信団
図解でわかる多変量解析 : データの山から本質を見抜く科学的分析ツール 涌井 良幸(著/文)…他1名(日本実業出版社)| 版元ドットコム
概念記憶システムの研究―概念記憶の意味ネットワークモデルと連想プロセッサによる実現法 (1982年) | 嶋津 好生 |本 | 通販 | Amazon
発語内行為の意味ネットワーク―言語行為論からの辞書的対話事例分析 (松山大学言語・情報研究センター叢書) | 久保 進, 越智 希美子, 向井 留実子, 阿部 桂子, 鈴木 光代 |本 | 通販 | Amazon
CiNii 図書 - C言語によるエキスパートシステム : シェルの実例と知識表現
CiNii 図書 - エキスパートシステムの設計と開発
近代科学社
知識と推論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
確率的言語モデル - 東京大学出版会
考えることの科学|新書|中央公論新社
ニューロ・ファジィ・遺伝的アルゴリズム (産業図書): 1994|書誌詳細|国立国会図書館サーチ
1次近似で視る多変数の微分積分 (学術図書出版社): 2013|書誌詳細|国立国会図書館サーチ
統計分布を知れば世界が分かる|新書|中央公論新社
ヒトの言葉 機械の言葉 「人工知能と話す」以前の言語学 川添 愛:一般書 | KADOKAWA
形式意味論入門 株式会社開拓社
書籍情報―ファジーで データを読む
アブダクション - 株式会社 勁草書房
<書籍紹介> 数理モデル入門(齋藤誠慈 著)【数学】
AIソフトウェアのテスト|リックテレコム
現代数理統計学 | 学術図書出版社 - 大学・短大・高専・専門学校向けの教科書出版
書籍詳細|株式会社 C&R研究所
筑摩書房 情報理論 / 甘利 俊一 著

技術評論社

Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
サポートページ:日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:|技術評論社
機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック:書籍案内|技術評論社

岩波書店

知識と推論 (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
自然言語処理 (岩波書店): 1996|書誌詳細|国立国会図書館サーチ
認識と学習 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
言語の獲得と喪失 (岩波書店): 1999|書誌詳細|国立国会図書館サーチ
キーポイント 多変数の微分積分 - 岩波書店
サンプリングって何だろう - 岩波書店
現代哲学のキーコンセプト 確率 - 岩波書店
現代哲学のキーコンセプト 因果性 - 岩波書店

共立出版

確率的グラフィカルモデル / 鈴木 譲 植野 真臣 編著 黒木 学 清水 昌平 湊 真一 石畠 正和 樺島 祥介 田中 和之 本村 陽一 玉田 嘉紀 著 | 共立出版
微分積分学講義 / 野村 隆昭 著 | 共立出版
数値計算の常識 / 伊理 正夫 藤野 和建 著 | 共立出版
線形代数入門 : 理論と計算法徹底ガイド 松本 和一郎(著/文)(共立)| 版元ドットコム
言語を獲得するコンピュータ / 日本認知科学会  編 錦見 美貴子 著 | 共立出版
最小二乗法・交互最小二乗法 / 森 裕一 黒田 正博 足立 浩平 著 | 共立出版
知識の帰納的推論 / E.Y.Shapiro  著 淵 一博 監修 有川 節夫 訳 | 共立出版
定性推論 / 淵 一博 監修 溝口 文雄 古川 康一 安西 祐一郎 共編 | 共立出版
イプシロン‐デルタ / 田島 一郎 著 | 共立出版
線形代数セミナー ―射影,特異値分解,一般逆行列― / 金谷 健一 著 | 共立出版
欠測データ処理 ―Rによる単一代入法と多重代入法― / 高橋 将宜 渡辺 美智子 著 | 共立出版
点過程の時系列解析 / 近江 崇宏 野村 俊一 著 | 共立出版
ファジィ時系列解析 / 渡辺 則生 著 | 共立出版
計算代数統計 ―グレブナー基底と実験計画法― / 青木 敏 著 | 共立出版
データマイニングによる異常検知 / 山西 健司 著 | 共立出版
EMアルゴリズム / 黒田 正博 著 | 共立出版
仮説のつくりかた ―多様なデータから新たな発想をつかめ― / 石川 博 著 | 共立出版
データ科学の基礎 / 笠原 健一 宮野 尚哉 長 憲一郎 著 | 共立出版
統計的因果推論の理論と実装 ―潜在的結果変数と欠測データ― / 高橋 将宜 著 石田 基広 監修 市川 太祐 高橋 康介 高柳 慎一 福島 真太朗 松浦 健太郎 編 | 共立出版

内田老鶴圃

内田老鶴圃/書籍詳細/統計学への確率論,その先へ
Papers and Preprints
sonosakie.pdf

オーム社

続・わかりやすい パターン認識 -教師なし学習入門- | 理工学専門書,情報科学,知識科学・人工知能 | Ohmsha
【書評】続・わかりやすいパターン認識 -教師なし学習入門- - old school magic
知的連想メモリマシン (オーム社): 1989|書誌詳細|国立国会図書館サーチ
グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
IT Text データマイニングの基礎 | Ohmsha
進化計算アルゴリズム入門 生物の行動科学から導く最適解 | Ohmsha
スモールデータ解析と機械学習 | Ohmsha

森北出版

フリーソフトでつくる音声認識システム(第2版) パターン認識・機械学習の初歩から対話システムまで | 森北出版株式会社
はじめてのパターン認識 | 森北出版株式会社
はじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社
待ち行列と確率分布 情報システム解析への応用 | 森北出版株式会社
情報可視化入門|森北出版株式会社
Pythonではじめる 情報検索プログラミング|森北出版株式会社
時系列データ解析|森北出版株式会社

丸善出版

keiichiro shikano λ♪さんのツイート: "PRML、無償ダウンロードだと。。 https://t.co/vXEwlTZLnr"
パターン認識と機械学習 上[丸善出版]
PRML演習問題 全問解答 | 機械学習の教科書の決定版【パターン認識と機械学習】の演習問題の全てを詳しく解答・解説
New Book: Knowledge Representation and Fast Inferences
情報学シリーズ2
機械学習の品質問題 - 丸善出版 理工・医学・人文社会科学の専門書出版社

CQ出版

RFワールドNo.30 - 目次
RFワールドNo.32 - 目次
改訂新版 データの符号化技術と誤り訂正の基礎

朝倉書店

朝倉書店| しくみがわかる深層学習
朝倉書店| サンプルサイズの決め方
朝倉書店| 機械学習 ─データを読み解くアルゴリズムの技法─
朝倉書店| しくみがわかるベイズ統計と機械学習
数学の流れ30講  (上)|朝倉書店
数学の流れ30講  (中)|朝倉書店
数学の流れ30講  (下)|朝倉書店

牧野書店

複雑系のための基礎数理 : べき乗則とツァリスエントロピーの数理 (牧野書店): 2010|書誌詳細|国立国会図書館サーチ
情報幾何学の基礎 = FOUNDATIONS OF INFORMATION GEOMETRY (牧野書店): 2015|書誌詳細|国立国会図書館サーチ
積分幾何学入門 (牧野書店): 2016|書誌詳細|国立国会図書館サーチ

講談社

『高次元空間を見る方法 次元が増えるとどんな不思議が起こるのか』(小笠 英志):ブルーバックス|講談社BOOK倶楽部
新しい微積分<上> | 書籍情報 | 株式会社 講談社サイエンティフィク
データ分析のためのデータ可視化入門 | 書籍情報 | 株式会社 講談社サイエンティフィク
関係データ学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
サポートベクトルマシン | 書籍情報 | 株式会社 講談社サイエンティフィク
スタンフォード ベクトル・行列からはじめる最適化数学 | 書籍情報 | 株式会社 講談社サイエンティフィク

海文堂出版

ソフトコンピューティング (海文堂出版): 1998|書誌詳細|国立国会図書館サーチ
海文堂出版株式会社

コロナ社

自然言語処理シリーズ 構文解析|コロナ社
自然言語処理シリーズ 10 文脈解析 - 述語項構造・照応・談話構造の解析 - | コロナ社
自然言語処理シリーズ 8 トピックモデルによる統計的潜在意味解析 | コロナ社
知能システム工学入門 | コロナ社
マルチエージェントシステムの基礎と応用 - 複雑系工学の計算パラダイム - | コロナ社
精度保証付き数値計算の基礎 | コロナ社
リスク工学シリーズ 5 あいまいさの数理 | コロナ社

くろしお出版

基礎日本語文法・改訂版|くろしお出版WEB
日本語文法の形式理論|くろしお出版WEB

ひつじ書房

ひつじ書房 統計で転ばぬ先の杖 島田めぐみ・野口裕之著
ひつじ書房 「中納言」を活用したコーパス日本語研究入門 中俣尚己著

ソシム

データ分析のための数理モデル入門本質をとらえた分析のために(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
分析者のためのデータ解釈学入門データの本質をとらえる技術(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム

O'Reilly Japan

O'Reilly Japan - 仕事ではじめる機械学習 第2版
O'Reilly Japan - word2vecによる自然言語処理
O'Reilly Japan - セキュリティエンジニアのための機械学習
O'Reilly Japan - 実践 自然言語処理

だめぽラボ@技術書典9さんはTwitterを使っています 「確率を数学的に扱った本は「全測度が1の空間がどーのこーの」みたいな記述(定義)から始まり、確率をお気持ちで扱う本はそうではない」 / Twitter
lotzさんはTwitterを使っています 「そんなあなたにゲーム論的確率論👀」 / Twitter

Amazon.co.jp: 過去30日 または 90日以内 - コンピュータ・IT: 本
検索結果 - 分類:情報・コンピュータ | 共立出版
検索結果 - 分類:数学 | 共立出版
これから出る本|朝倉書店
森北出版株式会社
書籍TOP|株式会社 C&R研究所
カットシステム出版書籍のご案内
工学書・技術書なら『設計技術シリーズ』|科学情報出版
新刊案内|コロナ社
トップ | 近代科学社
近日発売案内(これから発売予定の本)
丸善出版 理工・医学・人文社会科学の専門書出版社
新刊 | 株式会社 現代数学社
【裳華房】 新刊・近刊のご案内

雑誌

その他

Amazon.co.jp: JR時刻表
Amazon.co.jp: JTB時刻表
コンピュータソフトウェア | 岩波書店. | 雑誌/定期購読の予約はFujisan
情報処理 38%OFF | 情報処理学会 | 雑誌/電子書籍/定期購読の予約はFujisan
情報学広場利用方法(個人用)-情報処理学会
コンピュータサイエンス誌「bit」、1969年の創刊号から全386巻が電子復刻版としてAmazon Kindleで販売開始。1冊わずか198円 - Publickey
共立出版 コンピュータサイエンス誌『bit』
bit | TechMag
#:g1: 祝bit電子復刻 & bitのLisp記事まとめ

ラジコン

電波社 / ラジコン技術
つくばラジコンパーク | 世界最大級!ラジコンのテーマパーク
TOPICS - ラジコンカー・RCカーのヨコモ/YOKOMO 公式サイト
ラジオコントロールカー京商公式サイト | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
IMPORTANT INFORMATION 重要なお知らせ | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
WHAT'S NEW | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
NEWS&TOPICS一覧 | タミヤ
新着情報 | 双葉電子工業株式会社 ラジオコントロール
SANWA
ニュースリリース|マブチモーター株式会社

Interface – CQ出版
Software Design バックナンバー|gihyo.jp … 技術評論社
WEB+DB PRESS バックナンバー|gihyo.jp … 技術評論社
検索結果|日本評論社
書誌検索 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
数理科学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
SGCライブラリ - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
学会誌 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
コンピュータ ソフトウェア
「情報処理」オンライン 総目次一覧-情報処理学会
『TRONWARE』TRON & IoT 技術情報マガジン - パーソナルメディア書籍サイト
Japan Military Review「軍事研究」
イカロス出版オンライン書店 | 商品リスト
ラジコンマガジン | バックナンバー | 八重洲出版 公式サイト

Doc

DeepL Pro:テキストの他、Wordなどの文書をセキュアに翻訳
Bing
Google Scholar
Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
Mathpedia

その他

(0)市川 真一にマシュマロを投げる | マシュマロ
docin.com豆丁网-分享文档 发现价值
Unified fj NetNews archive
ancientfj Japanese USENET archive : Free Download, Borrow, and Streaming : Internet Archive
全国道路構造物マップシリーズについて(概要、利用上の注意点) | 全国Q地図(旧・九州Q地図)

その他

その他

「飲食店の制限だけでは1ヶ月で感染者は減らない」 8割おじさんが厚労省“非公開”のシミュレーションを公開
緊急事態宣言が効果を上げるか鍵を握る2つの変化 8割おじさんを悩ませる変数
小池都知事のアラビア語力をどう評価したらいいのかわからない方へ|jaber|note
「スペースコブラ」1話~10話
ダム Advent Calendar 2020 - Adventar
足尾砂防堰堤 | ponkotuy-blog
AIやロボットを導入した企業はむしろ雇用が増えるという研究結果 - GIGAZINE
学会の役割:難しい評価をすること
科研費の話
伊津野 英克さんはTwitterを使っています 「普通に面白い。ビッグバンが点じゃないとか、ビッグバンと宇宙の始まりは違うとか、結構知らないことが出てくる https://t.co/D1oB15LzHt」 / Twitter
宇宙は物理法則に従っている Our universe is dictated by the laws of physics | UTokyo OpenCourseWare
技術的負債とステークホルダと説明責任と / The Debt - Speaker Deck
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「伊達や酔狂に即時的利益を求めたらそりゃ無粋ってもんだよ。伊達も酔狂も一生かけて味わうもんだ。」 / Twitter
ドリヤス工場さんはTwitterを使っています 「映画版に対してテレビ版を「アニメ」と呼ぶ人が増えたのと似たようで似てない話ではあるが、最近は「世界線」という言葉の使われ方が気になる。昔の作品の家電話や公衆電話が出てくるシーンに対し「携帯電話のない世界線」という言い方を見かけて、いやそれは単に過去なだけやんと思うのだが。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「期待値」みたいだよね。「期待」に「値」を付けただけ、みたいに「世界」に「線」を付けただけ、みたいな。本当はそれぞれ意味が違うのに &gt;RT」 / Twitter
no100
過去20年間のテクノロジーの進歩を分析して得られた8つの教訓とは? - GIGAZINE
何人いれば適切なの?:学術知と政策とテクノクラート - Take a Risk:林岳彦の研究メモ
人と同じものを作る - necobut 1週間遅れ日誌
酒居敬一さんはTwitterを使っています 「広島焼で盛り上がってるのか。 偏執狂がちらほらいるけど、よその地域の創作料理をとうやかく言うてもしょうがないと思うが。アメリカンコーヒーとか台湾ラーメンとかナポリタンとか、由来のよくわからん定義もよくわからんものは世の中にいっぱいあると思うよ。」 / Twitter
酒居敬一さんはTwitterを使っています 「それよりも、御座候でも回転焼きでも今川焼でもない、特定の地域の物を指すことがない一般的な名詞をだれか発明してほしい。御座候とそれ以外を区別したいときに、それ以外を表す名詞が欲しい。」 / Twitter
نۇرمۇقەددەسさん (@muqeddes100) / Twitter
在日ウクライナ大使館さんはTwitterを使っています 「今朝未明(ウクライナ時間)、プーチンがウクライナに対して大規模の戦争を始めました。ウクライナの複数の都市に空爆が続いています。これは侵略戦争です。ウクライナは戦って、勝ちます。世界はプーチンを止めなければなりません。行動するタイミングは今です。」 / Twitter

文化盗用

Shiro KawaiさんはTwitterを使っています 「本来の「文化盗用」は、例えば「企業や公共団体が『日本文化に触れ合いましょう』という人寄せイベントで着付け教室やってるけど誰も詳しいこと知らないし知る熱意もなく、出鱈目な着付けや、下手すると韓国や中国の文化まで混ぜて教えてる」みたいな状況を肯定する社会への抗議のためにあります」 / Twitter
小森健太朗@相撲ミステリの人さんはTwitterを使っています 「アメリカには「白人は着物を着るな」「白人は書道するな」という文化盗用警察みたいなのが結構いるらしいが、それって彼らが劣位とみなす有色人種の文化を白人に嗜ませないことであって、差別反対を掲げつつの実態が差別的行為にあたるのでは。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「日本にゆかりのない人がやってても造詣が深い人だったりちゃんとリスペクトして色々調べてやってるなら問題ないですし、個人が楽しみのためにやるのを責めるものでもない。あくまで「リスペクトなしで利用だけしてやろう」という態度の問題。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「話がややこしくなった要因のひとつはSNSじゃないかと思ってて、個人の「インフルエンサー」がアクセス稼ぎのために物珍しい文化の表層だけを利用する、ってことがあると個人の楽しみを越えた影響があるんじゃないの、って考える人が増えてきたんじゃないかと。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ただ、そのせいで「文化盗用警察」が増えても不自由になるばかり。社会の無関心という無自覚な暴力に対抗するという本来の役割の重要性は無くなってないはずなんですが。」 / Twitter

過剰な変更労力

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「便利な rc.local をパージとか、潔癖 or 原理主義による大きなお世話な変更のたぐい、ロートルな私は閉口すること多いなぁ。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「めんどくさくて、なんでも rc.local に書いちゃうクラスタです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この件に限らず、潔癖/原理主義者は変更労力を惜しまないが、使えれば良い多数派は「消極的反対だけど、抵抗するのもダルい」という立場。 その非対称性によって、前者が現状を侵食する構造は多くの社会事象に見られる気がする。」 / Twitter

間違った情報の拡散

LillianさんはTwitterを使っています 「分かっている人間が悪意で嘘をつくより、間違った理解をした不勉強な人間が情報を拡散しようとするのが、結果としては最も広範囲に害を及ぼすと思ってます。 本人は誠実な態度で、有益な情報を広めたいと思っているので、聞いた人が間違っていることを見抜けずに信じてしまう可能性が高いんですよね。」 / Twitter
mumumuさんはTwitterを使っています 「うぅ…すみません…」 / Twitter
mumumuさんはTwitterを使っています 「自分のことを棚上げすると、若者向けイベントとかで「アウトプットが大事」って主張するときに、同時にこれも説明すべきだと思う」 / Twitter
mumumuさんはTwitterを使っています 「お前は間違った情報をアウトプットしとらんのか?→すみません…」 / Twitter
mumumuさんはTwitterを使っています 「Qiitaのクソ記事を許さない会」 / Twitter

老害

7594591200220899443さんはTwitterを使っています 「たとえばgitを捨てられない人はgitにしがみつくしかなくなるし、そうなったらもはや老害に片足突っ込んだも同じである。今、我々が当たり前のように使っているgithub、newrelic、heroku、それらより良いものに明日、乗り換えられるか?常に新しいものを取り込んでいるか?」 / Twitter
7594591200220899443さんはTwitterを使っています 「若者の足を引っ張る老害がいるのは事実だし対策も必要だが、過去の経験から言うと別にそれは老害自身が手遅れだからかどうかとはあまり関係ないと感じる。立派に成功した人や教育者にも老害はいた。手遅れだけ分断すれば万事解決という立場には与しがたい。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「@shyouhei 「Xした方が良い」は、それですべての問題が解決するという主張ではありません。「Xすれば万事解決」とは主張していないので、与しがたいという意見には同意します。」 / Twitter
7594591200220899443さんはTwitterを使っています 「@nishio はい。まあ若者に近付こうとする大人がそもそも全員ダメという可能性も自分としては感じるので、そういう方向性の主張の一部としてであれば割と納得できます。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「そういう人は若者が成功しそうになると嫉妬して足を引っ張って「俺が助けなければこいつはダメなんだ」という構図を作ろうとするから、若者のことを最優先で考えるならそういう人を近づけてはいけない」 / Twitter
7594591200220899443さんはTwitterを使っています 「環境が違えば俺だってもっといい人生を送れたはずみたいに思ってる人はどうせお前らの人生なんかもう手遅れなんだからそれよりまだ今救えば間に合う若者の人生をどう救っていくかの方を真剣に考えなよ。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ我々だよ。若者が真に警戒すべきなのはさ。過去に他人に足を引っ張られてきた自覚がある我々。そういう経験が目を曇らせるんだ。「自分の経験が他人にも通用すると勘違いする」ってのが老害の構造なわけじゃん。そこ自分でも最近怖いよ。やっちまってないかな?っていうの。」 / Twitter

時代遅れ

7594591200220899443さんはTwitterを使っています 「「まったく同じシステムをPerlやらRubyやらで作るとJavaで作った時の10分の1とかの工数でも余裕で作れる」はさすがに十年前にはすでに鼻で笑われてたような主張で、今更言う人がいる事にそもそも衝撃を受けましたね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「Bruce TateのFrom Java to Rubyが原著2006年とかだもんねえ。まあ十年前にはもう賞味期限切れてたよね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「プログラマーは業務の他にずっと勉強していないと時代に取り残される、のだとしても、別に時代遅れだったからといって即死するわけではないのだなあ。なるほどなあ。」 / Twitter

テレビ

岡田龍太郎/クーロンさんはTwitterを使っています 「チコちゃんに叱られる、で出てくる知識が不正確かどうかは正直あんまり気にならなくて、「知識がないと叱られる」という精神性がものすごく嫌い。」 / Twitter
岡田龍太郎/クーロンさんはTwitterを使っています 「番組のためににわか仕込みで大して重要でもない知識を一つ身につけては、それを知らない人にマウントを取る、という構図、醜すぎるだろと思いますね。」 / Twitter
岡田龍太郎/クーロンさんはTwitterを使っています 「まあでも個人的には「モニタリング」に比べると全然見られる。」 / Twitter

世界中で利用される「D3.js」の開発者が10年間で学んだこととは? - GIGAZINE
情報ではなく経験をアウトプットすること - lacolaco
The Rise of "Worse is Better"
表現者のために、抽象的なことを|山口尚|note
松田未来 12/31冬コミ東マー05a TEAM FirebirdさんはTwitterを使っています 「「本当の多様性社会はそれなりに不愉快」 これを認めるところから、ポリティカル・コレクトネスの理解は始まるのではなかろうか。ありもしないグレー単色のユートピアではなく。 ここでも「寛容」が問われている。」 / Twitter
ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256 今読んだこの記事良いです。この記事で言う「ブラックボックス化」というのを意識すると,オリジナルのコンセプトにフォーカスできます。 https://t.co/8ZCiSB9QGW」 / Twitter
才能ない人を観察してどうやったらできるようになるか考えてみた|牛尾 剛|note
Shiro KawaiさんはTwitterを使っています 「初期の恐れを乗り越える、Paulが挙げてない手法のひとつがあって、それは「ノルマを自分で決めてしまう」、例えば1日ひとつづつ何か作る、というのをしばらく続けるのは一定の効果があると思う。うまくできなくてもとにかく今日の分を上げないとならない、と言い訳できる。 https://t.co/AB5mfvCc4N」 / Twitter
Early Work
Shiro KawaiさんはTwitterを使っています 「注意点は、ある程度慣れると惰性で量産できる段階に達して、そうなってくると効果が薄れるから、ゴールを設定しなおさないとならない。」 / Twitter
Vさんのツイート: "そういえばこの間「インターネットで作り上げた自分」と「実際の自分」の技術力の差がすごいあって色々辛い人が存在するという話を聞いた。"
Shinya KatoさんはTwitterを使っています: 「最近思うんだけど「目標を達成するためのロードマップを描くために必要な情報を集める」ってだけで十分な成果だよなぁって」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「手順は言語化しやすく検索もしやすい。インターネットで公開されていう記事にコンピューターの分野が多いのは、コンピューターを扱っている人が書き手として多いからだけでなく、コンピューターに関する課題には「手順が分かればなんとかなる」ようなものが多いからかもしれない。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「検索エンジンからの流入という「読み手が能動的に情報を取りに行く世界における記事」の話なので、SNSのような世界における書き手には適用できないか。SNSで多いのは何と言っても時事を含むネタだしな…。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「前々職時代、「このコードなんでこうなってるんだろう意味わからん」と思ってgit blameしたら「なんとかを追加」みたいなコメントしかない超でかビッグバンコミットだったんでよく前任者を恨んだけど、ここ数年、新しいものを作るのが主になった今は気持ちがとてもわかる😰」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幸いその「ここ数年」に私が書いたコードの大半は私しか触っていないので大きな問題はない😅」 / Twitter
首相官邸さんはTwitterを使っています 「2050年カーボンニュートラルへの挑戦は、日本の新たな成長戦略です。この挑戦を産業構造や経済社会の発展につなげ、経済と環境の好循環を生み出していきたいと思います。 温暖化対策推進本部を開催し、全閣僚に対し、「地球温暖化対策計画」などの見直しを加速するよう指示しました。 https://t.co/YdH3a31Vwt」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ソフトウェアエンジニアリングといっても分野が広いので、僕は検索チームとかではあんまり活躍できなかったわ。小気味よく動くものをチョロっと作るみたいなのは得意だけど、データサイエンスっぽいのはいまいちだし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「世の中実際、銀の弾丸で勝つんじゃなくて、ほとんどは、やるべきことを全部着実にこなして失敗しなかった人が勝つイメージ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たまたまだけど CPU にせよ何らかのシステム設計に関してもそうなんじゃないの、というか、コンピュータエンジニアってだいたいアムダールの法則なんてだいっきらいだーーーーー わーーーーーんん」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「機械(データ処理)による判断は画一的で結果に偏りが生じて外れ値となった人間の尊厳が阻害されるというのが1970年代の懸念で、データ保護法につながった。 奥平康弘・戸松秀典「国連事務総長報告書(抄)人権と科学技術の開発」ジュリスト 589号(有斐閣, 1975.6.15)105頁 https://t.co/oTXNOfJ7eM」 / Twitter
Atsushi Oshio / 小塩真司さんはTwitterを使っています 「推薦試験の面接も同じで,受け答えを人間が判断しているだけですよね。その回答と退学に本当に関連があって,そのデータを人間が学習するか機械が学習すれば予測に使えます。人間の場合「こういう受け答えをする受験生は退学するんだよね」みたいな曖昧な直感になり,機械に学習させると確率を出す。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラマの間でよく語られる「法則」の一覧。後の方になると法則というより (SOLID、DRY、KISSなど) 原則っぽくなるけど、あなたはいくつ知ってる? 個人的に Cunningham's Law (「ネット上で正解を得るには、間違った答えを投稿すべし」) は初めて知った。いつか試そう。 https://t.co/kDAkmSh31Q」 / Twitter
dwmkerr/hacker-laws: 💻📖 Laws, Theories, Principles and Patterns that developers will find useful. #hackerlaws

blog サービス

Crieit - プログラマー、クリエイターが何でも気軽に書けるコミュニティ
Zenn|プログラマーのための情報共有コミュニティ
note ――つくる、つながる、とどける。
DEV Community 👩‍💻👨‍💻
Hashnode: A one-stop platform to start blogging as a developer.
Medium – Get smarter about what matters to you.

企業

JR

やわたじさんはTwitterを使っています 「流石に見に来たわ https://t.co/16Y9asS3gO」 / Twitter
やわたじさんはTwitterを使っています 「WEST EXPRESS銀河一番列車 京都31番入線 https://t.co/nUhJoCxGZG」 / Twitter

人事

Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「伝統的日本企業で、なぜ博士より、無知で無垢な若者の方が好まれるのか。それは年功序列の社内身分制度を前提にしているから。新入り<先輩、という不等式が成り立たないと秩序が乱れる。この不等式は、ビジネス上の市場価値とは無関係で、会社の村社会の秩序だけから来ている。それが問題。」 / Twitter
Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「なぜ問題なのか。市場価値より村社会の秩序が優先されるような会社は(国は)、長期的に見て、必ず市場競争に負け、淘汰されるから。それこそ現に日本で起こりつつあること。死にたくなければ、既得権益死守勢力には退場願うしかない。企業はもちろん大学でもそうだよ。」 / Twitter
「給与で会社を選ぶ人とは働きたくない」 人事担当の投稿が物議 “実名アカウント”の炎上リスク浮き彫りに(1/3 ページ) - ITmedia ビジネスオンライン

外資

とっとと噛む太郎さんはTwitterを使っています 「あー、あと外資と日本企業の決定的な違いは、現場で出来る人を「管理職」にしない、ってことかな。 エンジニアとして優秀だからって、人のマネジメントが上手いとは限らないじゃん。 日本企業って、管理職にしたがるっていうか、そうしないと給与を上げられない仕組みだったりするでしょ。」 / Twitter
とっとと噛む太郎さんはTwitterを使っています 「外資だと、IC、Individual Contributor、つまり「ヒラ」でも、1,000万、2,000万って珍しくないんじゃない?」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「外資は優秀なICがマネージャにさせられないと思うじゃないですか?外資だって今のマネージャ候補よりもチームにいる優秀なICをマネージャにした方がマシと思ったら、その人がマネージャにならざるをえない状況になるんですよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「自分がいたチーム、マネージャは全員チーム内の元ICだし、自分もマネージャになりたいなんて一言も言ったことなかったのに、外堀埋められてらマネージャにならざるをえない状況になったけどな。いたチームはUSのチームとの連携をふくめ特殊事情が多かったからというのもある」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「外資の一番の違いはマネージャからICへ戻るパスがあるということと、給料がマネージャよりもICの方が高いかもしれないだけ。自分がマネージャの時にICでももっと給料を上げられる施策をHRと組んで実行してたけど」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ただ実際マネージャからICに戻るか言えば、元のチームに戻るという事例は半分ないくらいかな?大概別へチーム移籍」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「もし自分会社に残る選択してたら、HQへ転籍しかありえなかったなぁ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「マネージャはICとは別の問題解決能力を問われるので、やったらやったで面白いロールではあった。ただ忍耐力は相当問われるから覚悟を決めてやるべき仕事」 / Twitter

企業文化

Shinji KonoさんはTwitterを使っています 「この「これも自動化できるのではないか」ってのはTeal的な自律組織の特徴なんだよな。昔の日本な中小企業には普通にあった。破壊した人たちがいるんだよな。 https://t.co/wvJCNarQXe」 / Twitter
業務ハックしてクビにならないために|ふらふら|note
エンジニアに独学を期待するのはもう時代遅れだと思う。 - ヨーロッパで働くIT土方社長のブログ
Shinji KonoさんはTwitterを使っています 「経済止めてまでっていうけど、特に生活必需品には困ってないじゃん。 今までの消費競争とか無意味な仕事や通勤 がおかしかったってことでしょ。」 / Twitter
ところてんさんはTwitterを使っています 「結局のところ、DXがわけわからん概念になっているのは、 経産省が2025年の崖レポートで、日本固有の問題をDXの一部だとしてしまったがために、グローバルにおけるDXの定義と、日本のDXの定義がズレてしまっていることにある なので、これを紐解いてあげると簡単な概念になる https://t.co/LyrKVA70bN https://t.co/MJfEGFN8J3」 / Twitter
きしもとさんはTwitterを使っています 「ここから導き出される結論は、「IT業界」とはソフトウェア科学的な判断とは遊離した謎の予言だけをしてその予言の後始末さえしていないらしい、どこかにあるらしい謎の業界のことを指すらしい、ってことですよね」 / Twitter
備玉(36.7℃)さんはTwitterを使っています 「15年前にIT業界で言われてたこと ・開発はGUIベースになりコードは無くなりプログラマは不要になる 10年前にIT業界で言われてたこと ・ITはアジアにオフショアされ国内のプログラマは不要になる 5年前にIT業界で言われてたこと ・AIがコードを書くのでプログラマは不要になる」 / Twitter
成瀬さんはTwitterを使っています 「「プログラマ不要!」ってのをひっくり返すと「プログラマは不足してない!」になるわけですが、そう捉えるとΣプロジェクトの「1990年代にはプログラマが60万人不足する!」を思い出しますね」 / Twitter

CTO

Keiji ARIYAMAさんはTwitterを使っています 「日本CTO協会の件、業界として政治に関わろうとする姿勢はとても良いと思うので、ぼくは今回の取り組みを応援しています。 また、この業界は、誰かの初手がイマイチだった時に厳しく当たりすぎるきらいがあるのは本当に改善した方がいい(Remember COCOA)と思っている。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「話題の提言をなんとなく読み始めたんだけど、「ITサービスで最初から完璧は不可能だからまずは最低限のベータ版を素早く利用者に届ける」という前提と、「技術的負債を生み出さぬようにしなければならない」とう話は、最近になった再発見された「技術的負債」という語の本来の含意にあっていないのでは」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「最初から全部はできないけどまずはリリースするために後で返せるところは負債にしておいて後でちゃんと返せばいい、というのが技術的負債だったはず。それを可能にするのは失敗を許容できる態度であり、透明性が必要なのもそれを可能にするため。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「次の「ソフトウェアファーストな法整備」の項目にある「要求仕様のリファクタリング」という表現も地味に引っかかりがある。法令を要求仕様としたら、これにはテストが書けないので、リファクタリングではなく単なる見直しであるはず。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「このへんのふわっとした用語は、かっちりした文書ではかっちりと使ったほうがいいです。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「少なくとも技術的負債とリファクタリングという専門用語の使い方が間違っているのでは、という指摘は置いておいて、おそらくCTO協会からの提言としてユニークな点は「デジタル庁長官にCTO人材を」にあると読みました。でもこれむしろ「CTO的な役割を置け」なんじゃないかなあ。https://t.co/aEPf70ubNw」 / Twitter
デジタル庁の創設に向けた提言 | 一般社団法人 日本CTO協会

独禁法訴訟

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる https://t.co/9BgKVa3TG7」 / Twitter
Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる - GIGAZINE
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「"Googleは検索エンジンとしてデフォルトの位置を守り、取引先が競業他社と契約することを防ぐために、毎年、Apple、LG、Motorola、Samsungなどの人気のあるデバイスメーカーを含むディストリビューターや、(略)そしてMozilla、Opera、UCWebなどのブラウザ開発者に数十億ドル(数千億円)を支払います"」 / Twitter
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「この訴訟、意図に反してMozillaを潰しそう…という気がしてきた」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@syuu1228 未だに大きな収入源ですしねぇ。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「米司法省によるGoogleへの訴状。まだ訴状の段階であり、事実と認定されたわけではないが、かなりエグイことが書いてある。ようするに彼らは (Facebookとの) 出来レースと (Chrome, AMPを使った) ウェブの乗っ取りを広告事業の切り札として画策していたらしい。MSの「ハロウィーン文書」を彷彿とさせる」 / Twitter
fasterthanlime 🌌さんはTwitterを使っています 「RT 🔒 (with permission): "Ok so, I just read through all 173 pages of the unredacted Google antitrust filing and I have to say that either Google is screwed or society is screwed, we'll find out which. Unordered list of fun things I learned:"」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「まあ個人的にはこれを聞いても全然驚かないんだけど...。むしろ驚くべきは、こうした企業に平然と勤めている人々の「見て見ぬフリをする能力」である。昔ホリエモンか誰かが言っていたように「人の心も金で買える」のは間違いなく本当だ。」 / Twitter

買収その後

デジタルライブラリーのScribd、SlideShareをLinkedInから買収 - ZDNet Japan
Welcome SlideShare to the Scribd community — Scribd Blog
Microsoftが延命したYammerの今後は(上) - Microsoftが延命したYammerの今後は:CIO Magazine
Microsoftが延命したYammerの今後は(下) - Microsoftが延命したYammerの今後は:CIO Magazine
【2018年6月版】プレゼンテーション共有サービス『Speaker Deck』の使い方 - 八雲文庫ブログ
Fewer and Faster - Measure, Improve and Repeat

伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア宣言にはすごく同意するんだけど、結局、要件や仕様を決めるというソフトウェア開発の外部性が無視されている、あるいはそこに情熱がある人がいるという前提が抜けてんだろうね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「大規模業務システムのPMだとプロジェクト終わるまで実際の画面を触ってみたことない人もいるし、それは客側も同様。」 / Twitter
アジャイル開発の外部委託が「偽装請負」だと疑われないためにすべきこと、厚労省が公表した疑義応答集を読み解く(前編)。Agile Japan 2021 - Publickey
アジャイル開発の外部委託が「偽装請負」だと疑われないためにすべきこと、厚労省が公表した疑義応答集を読み解く(後編)。Agile Japan 2021 - Publickey
Makoto Kato ︎︎さんはTwitterを使っています 「USと日本の違いは、断われるということくらいかと。どこの国に行ってもNetworking重要」 / Twitter
Hiroshi WatanabeさんはTwitterを使っています 「最近の日本では会社の飲み会は忌み嫌われどんどん無くなる一方、渡米したら「週末は会社BBQ!皆で盛り上がろう!」「終業後はハッピーアワー!職場の交友を深めよう!」とか周りで滅茶苦茶やるし、何ならスタンフォードの経営の授業でも奨励されていて、私が見た米国はウェット、日本はドライだった。」 / Twitter
杉本啓さんはTwitterを使っています 「わかるんだけど、昔、そんなにコードを書いてなかった頃、技術者に、こんなソフトを作れないかって相談したら、そこまでする必要があるかって訊かれちゃったんだよね。で、自分で勉強して作った。ドメインがわからないひとは、作る情熱も湧かないんだよね。 結局、誰かが両方やるしかない。」 / Twitter
やきにくさんはTwitterを使っています 「よく「エンジニアがビジネスを理解するべきだ」って言われるけど、僕は最近は逆に「すでにそのビジネスに精通してる人にエンジニアリングの都合をわかってもらう」ことのほうが簡単なんじゃないかと思っていて、そういう試みのほうに興味の対象がシフトしてきていると思う。」 / Twitter
「技術力は今でも世界一です。ただ…」USBメモリーの生みの親・濱口秀司に聞く、日本が“世界”で勝つには|新R25 - シゴトも人生も、もっと楽しもう。
登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(前編)。JaSST'22 Tokyo - Publickey
登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(中編)。JaSST'22 Tokyo - Publickey
登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(後編)。JaSST'22 Tokyo - Publickey

教育・学習・スキル

基礎

RyuseiさんはTwitterを使っています 「「基礎は大事だよね」的な当たり前の主張だと、やっぱり当たり前すぎてつまらないんですよね… 自分としては、そこで、じゃあ基礎ってなんだ? って方で掘り下げてほしい」 / Twitter
RyuseiさんはTwitterを使っています 「「レトリックを覚える前にふつうの日本語を話せるようになれ」 なのか 「現代日本語を覚える前に古文を学べ」 なのか」 / Twitter
RyuseiさんはTwitterを使っています 「「現代日本語は古文から発展して成立しているのだから、まず古文を学んでこそ、日本語を理解することに繋がるのだ」という主張はそれなりに筋が通っているようにも、非常識なようにも、どちらにも聞こえる」 / Twitter
fujiwaraさんはTwitterを使っています 「基礎をやれ、言いたくなる気持ちは大変分かるんだけども、言われたほうはなんだかんだあって結局基礎が大事だと実感するまではモチベーションが湧かないというのがなあ。もっとできるようになるには結局基礎だな、って自分で思う前に人にやらされてるとそのこと自体嫌になるんだよね」 / Twitter
fujiwaraさんはTwitterを使っています 「自分がいまランニングそこそこ頑張ってるのも、ある程度走れるようになって楽しくなってから本とか読んで、実際参考にしてやってみたらタイムが上がって楽しくなって、の繰り返しだし、自発的な動機がないなら真冬の夜明け前に起きて練習とかするわけないもんな」 / Twitter

経験で獲得した方法論を、共通の土台で言語化するための枠組み

Shiro KawaiさんはTwitterを使っています 「「体系的な知識」でTLが盛り上がっている。 体系的な知識の効用のひとつは、共通する参照の枠組みとして機能すること。例えば何かを「良い/悪い」と評するとき、何となくの主観ではなく、それはこういう要素が違っているためにこういう効果が生じている、ということを他人と議論できる。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「自分がこれを感じたのは近代演技術で。米国で演技の訓練を受けるとリアリズム演技術の体系を学ぶことになるんだけど、例えば米国の俳優の演技についてのインタビューを読んでると、体系に基づいた共通用語で語られるので話がとてもわかりやすく、また応用しやすい。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「一方、日本で語られる演技の話を読んでいると、個人個人のエピソードのばらばらな集積で、それぞれは「なるほど」となるいい話ではあるんだけど、なぜそれが良いか、別の状況でどう応用できるのか、というのがなんか見えないなと感じられていた。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「これは優れた演技をする名優でもそうなので、つまりその人が経験で獲得した方法論を、共通の土台で言語化するための枠組みが薄いせいだと思う。 言語化できないと、徒弟制で「見て盗む」形でしか継承ができない。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「もちろんそんな枠組みが無くても凄い人は自分で突き抜けていっちゃうんだけど、体系の有無は後に続く層の厚みに関わってくると思うんだよな。 体系を突き抜けて行った人が、どこをどう破ったかを知るにも、体系を知ってないとならないわけだし。でないと「あの人はとにかく凄かった」で終わっちゃう」 / Twitter

体系化するスキル

nishio hirokazuさんはTwitterを使っています 「これ重要なポイントで「体系的に学びたい」って言う人「誰かが体系化したものを鵜呑みにしたい」って言ってるも同然で、それで学んだ気になっても新しいものを体系化するスキルはまったく身についてない」 / Twitter
徳丸 浩さんはTwitterを使っています 「…一方、かつて上野宣(@sen_u)から、「なぜ徳丸は徳丸本が書けたのか」と質問されたことがあったのだけど、その時は答えられなかったけど、たぶん「徳丸が効率の悪い勉強法をし続けたので、自力で体系化する力が備わったから」ではないかと思う。当時ウェブセキュリティは体系化されていなかった…」 / Twitter
徳丸 浩さんはTwitterを使っています 「…なので、「効率の良い学習法」を聞かれたら、「それは大学のしかるべき学科に行って勉強してください。それ以上の方法はない」と答えます。いろいろな事情でそれができない場合は、たぶんの一つの答えはなくて、目標やら使える資源ならで変わりますね。漠然と質問されても答えられない。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「短期的に見ると効率が良く見えるが、それは「体系化するスキル」を習得するためのコストを支払ってないから支払いコストが安く見えるだけである」 / Twitter

メタ学習スキル

Shiro KawaiさんはTwitterを使っています 「これをするには、1.知らないことを調べて学ぶ、2.まとめて形にして晒す、3.ツッコミを受けて知らなかった世界が先に広がってることを知る、そして1に戻る、というサイクルをたくさん経験するのが良いと思ってる。→」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@golden_lucky 初中等教育で身に付けるべきは、人生のどの時点でも自分にない知識が必要になった時にそのことが分かり、学べる。というメタ学習スキルなんだろう。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「やってるとだんだん、ここらへんまでは自信を持って言えるけどこのへんから先は知らない分岐がありそう、みたいな勘ができてきて、新しい領域に踏みこむことになったら自分でサイクルを回せるんじゃなかろうか。→」 / Twitter
Shiro KawaiさんはTwitterを使っています 「このサイクル、自分が受けた初中等教育のカリキュラムで経験することはほぼ無かった。自由研究とかも大抵は2止まりで、3を経て練り直す機会がない。大学も大抵は出したら成績がついて終わり。出したものを添削されて練り直すってのは卒論くらいでようやくだった気がする。→」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@anohana なにしろ日本は他人に意見すると鉄拳制裁が飛んでくる国であり社会ですからね。CJK共通項目のような気もしますが。建設的なフィードバックループを回してもらった経験のある人は国内にはすごく少ないのではないかなあと思います。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ある程度基礎知識が無いと調べても大したことはわからない(から基礎知識を入れる方が先)、という理屈はあるんだけど、それにしても初中等教育の間ずっと、指定範囲の知識を獲得して使い方を覚えたら合格、という刷り込みをされてくると、そこ終わったらもう勉強いいやって気分になっても無理はない。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「うちの子の場合は逆に基礎知識がこんなに少なくて大丈夫なんだろうかと思うくらいなんだけど、調べて議論して練って書く、という訓練はしつこく受けていて、そのやり方で成功体験があると身につくんだろうなと思うけどどうなるだろうか。」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@anohana 米国の知の育て方ですね。 &gt; 調べて議論して練って書く」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@jj1bdx 欠点として、基礎知識がごそっと抜けたままでも義務教育が終わっちゃって、その後に進めた人とそうでない人の差がめちゃ開いてしまうというのが。 時間が有限である場合、どこかでトレードオフのバランスを取らないとならないんですが。」 / Twitter

プログラミング教育

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング教育は数学に含めたほうが良い,は少なくとも数十年前からよくある意見で,実際に日本の高校数学教科書や,確かセンター試験数学にも含まれていた時期がありますが,日本の教育現場では残念ながらほぼ絶滅(?)したような.」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「絶滅」(?)した原因はいろいろあるかもしれませんが,やっぱり「数学とCS・プログラミングは共通部分も空ではないけど包含関係にはない」で,その包含されない部分の中核が「手続き」という理解.「計算」量とか,「計算手続き」の記述たる「プログラミング言語」とか.」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/JTdGG3lCfy」 / Twitter
高等学校共通教科情報科の大学入学共通テストでの実施に関する意見-情報処理学会
大学入学共通テストへの「情報」の出題について-情報処理学会
大学入学共通テストにおける教科「情報」の出題について | JSET NEWS | 日本教育工学会(JSET)
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@awellbottom https://t.co/bPYg7qbZmz とか https://t.co/IgLtwhathh とか https://t.co/i3p7Vr6kun とか声明が出ていますよね.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 僕はプログラミングの数学以外の部分こそがコンピュータの大衆化のキモだと思ってます.たとえば,HTMLを守らないで解像度固定でWebを作ったり,神EXCELだったり.こっちをCS側はもっと真面目にとりくむべきで,それがviscuitの立場です.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii なので「プログラミング的思考」だとその側面が欠けているので,僕は「表現としてのプログラミング」も大事だと言ってます.それがいま小学校でビスケットがいろんな授業で使われている理由です.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 表現の立場から見たときに,うちの渡辺さんは,いま執筆中の学位論文で,先生方の「手になじむ」という言い方をしています. https://t.co/N5vczA1Fyq」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@viscuit ありがとうございます.そういう部分も「プログラミング的思考」(≠「数学」)から排除されているものではないと思いますが,芸術表現等としての側面も確かに重要ですね!」 / Twitter
Genichi KataokaさんはTwitterを使っています 「ITリテラシーって、「今知っている」ことより、見たこともないものも忌避せず使ってみるとか、知らないこともとりあえず調べてわかった範囲でやってみるとか、そういう姿勢のほうがずっと大切なんだな、ということを最近実感している。」 / Twitter

背景、原理、哲学的な意味を理解

ytakanoさんはTwitterを使っています 「いい話。プログラミングも、手順だけじゃ無くて、背景、原理、哲学的な意味を理解してほしい。そうじゃないとエンジニアではなく、チェンジニアになってしまう。」 / Twitter
MERさんはTwitterを使っています 「先日の講習会で根上先生が提示されていた「高校数学の負の影響」。非常勤先の工学部で教職課程とる学生さんたちに長く教えて見えてきたとのこと。数学を入試に使った学生さんでもこうなることにとても危機感を覚えているようでした。一つの大学の事例とはいえ、中高教員としては常に自戒したい実態。 https://t.co/uxzLApZTw2」 / Twitter
MERさんはTwitterを使っています 「なお、先生は高校の数学授業を やり方を習う→そのやり方を練習する→そのやり方でできる問題を解く と見ていて、こうなるのはわかるが、意味の理解不足や学ぶ必要感不足を問題視されてました。要するに「上のやり方だと数学的に考える学生は(滅多に)育たない」と仰りたいのだと理解してます。」 / Twitter
クロ・コーシさんはTwitterを使っています 「@MathEdr ものすごく同感します 個人的には小学生に◯✖️がすぐつく問題をさせるの禁止にすればと思ってます わかったかどうかより、あってるかどうかを気にする子が多すぎる…」 / Twitter
thick_doomieさんはTwitterを使っています 「@MathEdr 大学受験を突破するにはそれが良いんですけどね」 / Twitter
yamazaksさんはTwitterを使っています 「@MathEdr 中高でこれをしているところには猛省を促したいところですが、高校どころか初等教育の問題です。 小学校で6年かけて「理論的な正しさより、先生の言う通りに書かないと不正解」を叩き込まれてくる生徒がいるので、その呪縛を取るのには大変時間と労力がかかります。」 / Twitter
さやか|オーガニック八百屋@東麻布さんはTwitterを使っています 「@MathEdr @manabist171 都合の良い構造を仮定する。。。に爆笑🤣問題として出されてる以上、それなりのスッキリした答えになるのでは?って言う小賢しさ!!(わたしもテストで考えたことあるなぁ。。。)」 / Twitter
thick_doomieさんはTwitterを使っています 「@sayaka_merry @MathEdr @manabist171 逆に4択問題が全部Bとかだと不安になる」 / Twitter

教育

ジロウさんはTwitterを使っています 「性にしても姓にしても、「自分の信じる価値観以外の価値観もOKになる」こと自体が耐えがたいストレスになる人がわりと多くて、自由や多様性そのものが人間にとってストレスをかける(不安にする)ということをスルーしていると、なかなかこれ以上前には進まないんじゃないかという気もしている。」 / Twitter
勝川 俊雄さんはTwitterを使っています 「リスクはゼロでも無限大でもないということや、様々なリスクが存在し、それらは往々にしてトレードオフの関係にあるということを理解できない人が多いですね。これは教育の失敗なので、リスク管理の考え方を学ぶ機会を作るべきと思います。」 / Twitter
ytbさんはTwitterを使っています 「よく「学校で論理学を教えないから学生は論理的思考ができない」と言う人がいますが、論理学は人に論理的思考法を教える学問ではありません。論理的思考法そのものは論理学以外でも身につきます。 何をすれば「論理的思考」と言われるものをしたことになるのか、その条件を問うところです。」 / Twitter
koji_nijikoさんはTwitterを使っています 「@ytb_at_twt @TigerSophia61 クリティカルシンキングってひと頃流行りましたが、何のことか説明できるひとは?と。」 / Twitter
HBさんはTwitterを使っています 「@ytb_at_twt 教えるんやったらコンサルが使ってるような「思考のフレームワーク」使った方がいいやろな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「スタンフォードの授業で「え、ここまでそれわかってなくて聞いてたの?」という質問をしてる生徒はかなりいたし、教える方は驚くこともなく普通にそういう基本的な質問に答えていたので、ああいうのは見習いたい(どちら側も)。」 / Twitter

IPA

hsjoihsさんはTwitterを使っています 「あー、そういう経緯で問題発生時に解決を図るための仕組みが2020年度は増えていたのですね。納得です」 / Twitter
hsjoihsさんはTwitterを使っています 「2020年度に参加したとき「2018年度には影も形も存在しなかったやたら気合い入ったハラスメント通報システムが構築されてるな。問題発生時に解決を図る仕組みが整備されているのはとても素晴らしいことだけど、わざわざここまでしっかりやるということは何らかの前例あったのでは」とは実際少々思ってた」 / Twitter
hikaliumさんはTwitterを使っています 「この件、正確に書いておくと、昨年の話ではなく、2019年の話です。(従って、昨年からシステムソフトウエア自作トラックのプロデューサーを担当されている @uchan_nos 氏は本件とは関係ありませんし、現在はこのような問題が発生した際にスムーズに対応できるよう仕組みが整備されています。念の為。)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「某キャンでCコンパイラゼミがなくなったのは、講師の上下関係(というほどのものは本来ないはずだが)でひどいイジメというか精神的追い込みがあったからですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「子供(大学生含む)にはニコニコしてるとか、自分を師と仰ぐひとたちには慕われているみたいなのと、自分の下の人間(みたいな階層はないはずだけど)が少しでも気に食わないことをすると、ブラック企業の理不尽上司かというレベルで執拗に追い込むみたいな二面性って両立するんですねぇ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「全員にとってあまりにも意外だったので対処がグダグダで、結局運営の方々には真剣に対処してもらえたとは思うけど、成り行き上さすがに続けるのが無理なのは仕方がないと思うのでご理解ください。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この時期の某キャンの自分の周辺では「自分は応募倍率しか評価しません。中身は関係ありません。とにかく応募者を集めてください」と、営業マンの成績表みたいなものが掲示板に貼られて、繰り返し発破をかけられた講師がダービーさせられてたんだよな。ここらへんでやばさに気づくべきであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「応募してくれるひとのこともバカにしている話である(が、そういうことをいった人がめちゃくちゃ反撃されているのとかを見ると、まあ何か言うのは難しい)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そもそも応募者集めは講師の仕事ではないし、広報にはそりゃ協力するけど、「倍率が低いですよ! 来年から首にするかもしれませんよ! 真剣にやってください!!」みたいに詰められたりするのはほんと何って感じだし・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「他にもひたすら個人攻撃をして、私はあなたのためを思って、私が言っていることをあなたがやるまでまで私は叩き続けます、みたいなことをやったり・・って、なんというか今から思うとほんと意味不明で、これを読んでる人もこのスレの意味よくわからんな・・となっているんでしょうけど・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「念の為に言っておくと、そういうハラスメントをする人はごく一部で、管理体制の穴になっていたみたいですが、その後体制も改善されたようですので、今は理不尽な扱いを受けたときにはちゃんと対処してもらえると思います。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ちゃんと対処してもらえない場合は、理不尽さには勝てないので、正そうとせずにさっさと逃げたほうがいいですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「某キャンではないな、セキュリティ・キャンプですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「「授業の内容も応募の内容も私は一切評価しません、応募倍率のみを評価します」と言われて、さすがにそれは本末転倒ではと言うと面罵される、みたいな意味不明なことをされていた。やっぱり改めて考えてみても完全におかしいよな・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「セキュキャンの話は2019年の話で、現役で教えている方(特に内田さん)は無関係(単に問題の人のツリーに属していない)か、むしろ被害を被ったほうですので、誤解なきよう・・(普通に内田さんは人格者です)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なぜ2年前のことを書いているかと言うと、また募集の時期がきて、何回も人格否定されていたのがフラッシュバックしたのと、なぜ悪意を持って人を攻撃する人が放置されてみんなが叩かれ続けなければならなかったのかという気持ちがこみ上げてきたからですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうことはあんまり書かないようにしていたのだけど、まあついに書いてしまったな。しかしその後運営も改善されたようですし、あんまり生産的でもないと思いますので、これくらいにします。」 / Twitter
セキュリティ・キャンプ全国大会2018 プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2019 プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2020オンライン プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2021 オンライン プログラム:IPA 独立行政法人 情報処理推進機構
Miura HidekiさんはTwitterを使っています 「いわゆる外面がいいって奴ですよね。凄くいっぱいいますよ(うちの親父もそうだった)」 / Twitter
Miura HidekiさんはTwitterを使っています 「身近に外面がいい人物がいたため、いくら社会的に評価が高くても、それだけでは完全な善人だとは思えなくなった。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そもそもの「善人」「悪人」って基準は主観ですからね。「万人に対して善人」という行為自体も客観的には定義できない可能性すらあったり。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 私の親父は大体誰に言わせてもいい人だったという評価を聞きます。相当ストレスがたまっていたんでしょうね。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 DV方面で話に聞くようなパターンですね...。うちの父はたぶん敵は作っているので外面が良いタイプではないです。商業的サービスの客として横柄だったりしますので :)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki DVとかは無かったですけどね。店とかでもよい客でした」 / Twitter
hikaliumさんはTwitterを使っています 「セキュキャンのハラスメント防止宣言とCode of Conductが協議会のページで公開されたみたい。きちんと仕組みが整備されて、さらに外部に向けてもその内容が公開されたのは素直に良いことだと思う。(もちろん、これを実際にちゃんと回していく必要はあるけれどね。) #seccamp https://t.co/jBiQh7u9ko」 / Twitter
セキュリティ・キャンプ協議会

評価基準

Miura HidekiさんはTwitterを使っています 「学校って多様性とか個性とか言いつつ、きっちり全順序の評価基準を設定しているよね。社会もそうだけど」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 シリアライズしないと処理しきれないだけかと。ベストチームを編成する、みたいな場合にはシリアライズでうまくいかないってのは予想はつくけど組み合わせは爆発するから...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki シリアライズして順位を付けてその順位で態度を変えるのは 処理しきれないに入りますか?」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 態度を変えるってのはまた別の問題で、そういう人は明確な順位つけなくとも理由をつけて態度変えるんじゃないでしょうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki たしかにそんな気がする」 / Twitter

裾野の涵養

おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ドローンにしても半導体にしても、その他の技術的な諸々ほとんど全ての「日本製」にロクなものがないんだよ。 それは、「裾野の涵養」を怠った結果だ。「○○については××研究所がやってる」じゃねーんだよ。それでは足りないんだよ。全てのことに「裾野の涵養」が足りてないんだよ。」 / Twitter
おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「技術なんてのは、「世界的先端的研究所が1つある」ことより「その辺のガキが遊戯として遊んでる」ことの方が「未来」があるんだよ。「毎年××の大会があってママ達の目の色が変わってる」とかさ。 そーゆーのが「裾野の涵養」だよ。」 / Twitter
おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ガキの興味を育み、そのための環境を整える。 これがおっさんどもの責務だと思う。 そして、女の子にも「女だてらに」とか否定しないこと。やりたい子にはやらせる。 日本の未来を心配するなら、こういったことを意識すべし。」 / Twitter
Chuck TimberさんはTwitterを使っています 「半導体は,このあいだ経産省のなんとか課の課長が来て話してたけど,いまやってる研究所のアイテムを拾ってカタログにしてるだけだった.お金も2000億円つけるとかいってたけど,桁違いで足りない. まず先に,初ラ や ラ製 や EL が普通にある世の中に戻さないと.」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「目に浮かぶ…orz」 / Twitter
もなかさんはTwitterを使っています 「「死に体の半導体業界ニッポン2021」とくに「ハンパにスジが悪い施策しか投入できず業界を凋落に導いた経産省」に 「裾野が大事!」 とかいうとなぁ…。 \国産 Raspberry Pi を GIGA スクールの目玉に/ とか言い出しかねないのでなぁ…。」 / Twitter
もなかさんはTwitterを使っています 「そしてそれに乗ってくる国産半導体業界の姿も見えるのでなぁ…。圧倒的に出遅れた Arduino 互換ボードとかな…。(実名は挙げない)」 / Twitter

批判的フィードバック

Shiro KawaiさんはTwitterを使っています 「「自分で考える」は、成果を晒して批判的フィードバックを受けてさらに練る(その過程で足りない知識や経験を実感する)までが1セットのはずなんだけど、そういうコーチングが普及してない?」 / Twitter
田口和行🦊さんはTwitterを使っています 「「自分で考える」ことが流行りすぎたんじゃないかな。勉強も経験も何もなくても、自分で考えることが励行される。もちろん匙加減ひとつなんだろうけど。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「「知的訓練」ってこういうイテレーションプロセスだったはずで、知識を蓄えてそれをテストで確認するのは準備運動のはずなんだけど、後者だけが勉強だとする刷り込みが強烈すぎるんだろうな」 / Twitter
artonさんはTwitterを使っています 「@anohana 「批判」は悪口ということになってしまった時代を生きている人たちにはハードルが高そう。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@arton ほんと、どうしてこうなった感が>「批判は悪口」」 / Twitter
Shiro KawaiさんはTwitterを使っています 「「勉強だけできてもダメ」というのもその刷り込みの系で、知的訓練を受けた人は知的生産ができる人であるはずなんだよな。最初は未熟であっても。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「(ここで言ってる「知的」は単に「頭を使ってやること」って意味ね)」 / Twitter

手回し計算機

ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「掛け算の順序が入れ替え可能でないと手回し計算機のハンドルをものすごい回数まわさないといけなくなる」 / Twitter
ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「補足:最大 桁数×9回」 / Twitter
ElectrelicさんはTwitterを使っています 「@houmei 8とか9だと逆回ししたりしません?」 / Twitter
ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@electrelic あれ、そうでしたっけ」 / Twitter
ElectrelicさんはTwitterを使っています 「@houmei もちろん上の桁に1足しておいて、 23×99 → 23×(100-1) みたいな「工夫」です。 # 一番最初にやると乗除の自動切換えが誤動作しますけど。」 / Twitter
ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@electrelic 手回しの計算機、けっこう暗算での工夫みたいなことやりますよね。これがモーターを使った機械式計算機だとバカみたいに回すので大好きです(FRIDENとか) https://t.co/ohSfyMABfb」 / Twitter
ElectrelicさんはTwitterを使っています 「@houmei 「工夫」って適用できたらラッキーみたいな例外処理だから人間の脳のような柔軟性がないと難しいですよね。」 / Twitter

越川慎司 17冊出版『トップ5%リーダーの習慣』は重版4刷さんはTwitterを使っています 「「知ってる」と「できる」は違う 「私はできる」と「あなたもできる」は違う 条件付きで良いので再現性のあるルールを持ってる人の話しを聞きたい」 / Twitter
Island Life - Don't take it personally
7594591200220899443さんはTwitterを使っています 「心理的安全性というのはとびきり雑に言うとどれだけカジュアルに失敗できるかという話なので、コンテストとかそういうのとは若干食べ合わせがよくないんだよな。コンテストとかは構造的に失敗が許容されづらいから。」 / Twitter
基礎と低レイヤーは混同しがち。基礎とは何で、どう勉強するか。 - きしだのHatena
競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
songmuさんはTwitterを使っています 「基本情報、MTTRとMTBF、RDBの正規化、OSI参照モデル、計算量、2進法とビット演算、などが網羅されてるので、何気にお得なのでは?」 / Twitter
monaqaさんはTwitterを使っています 「これはいつも思ってるんですけど、科学的なリテラシーってのは「与えられた記事の真偽をすぐ見抜ける」ことじゃないんですよね。「与えられた記事が科学的に価値ある情報を含んでいるか判断できる」ことなんです。前者を目指そうとしてる人がいたらそれは筋が悪くて、本当に目指すべきは後者なんですよ」 / Twitter
出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?に対するYuki Sonodaさんの回答 - Quora
Shiro KawaiさんはTwitterを使っています 「「登場人物の気持ち」については考えるに値する問題で(役者は常に考えてる)、回答に良し悪しは確実に存在する。「その解釈は無理ありすぎるだろ」から「作品に新たな光を当てる素晴らしい解釈」まで。まずいのはひとつの正解を当てるゲームにしてしまうことじゃないかと。」 / Twitter
河野真太郎/Shintaro Kono『暗い世界』発売中!さんはTwitterを使っています 「@mineotakamura @Cristoforou とりあえずこちらでしょうか。遠藤周作が自分の作品を使った入試問題(作者ではなく登場人物の気持ちを4択、みたいな)について全部正解だと言った話とか。https://t.co/85E7HE6t1r」 / Twitter
Shiro KawaiさんはTwitterを使っています 「解釈というか、演技では"choice"というんだけど。」 / Twitter
shinshinoharaさんはTwitterを使っています 「「勉強できる子」は一度説明しただけで理解し、覚えてしまう。「勉強の苦手な子」は一度説明しただけでは理解できず、覚えることもできない。なんなら同じ説明を何度もしても理解できない。この現象をもって「頭が悪い」と決めつけてしまう「勉強のできる人」は多い。しかし私は見解が異なる。」 / Twitter
shinshinoharaさんはTwitterを使っています 「観察してると「勉強のできる子」は、その言葉を聞く前にすでに知識のネットワークが準備されている。電流の話を聞く前に、モーターや電球の仕組みだとかに興味を持ち、すでにある体験ネットワーク、知識ネットワークの結節点の一つにその名称をあてはめるだけ。だからすんなり覚えてしまう。」 / Twitter
ふろむださんはTwitterを使っています 「大人になってから勉強するとすごく楽しいのは、 勉強がジグソーパズルだから。 序盤はピース間のつながりがよくわからないから、あまり面白くない。だから、子供の頃の学校の勉強はあまり面白くない。 でも、後半は全体像が見えてきて、ピースをはめ込むたびに快感が走るようになる。」 / Twitter
白猫 PHPerさんはTwitterを使っています 「@fromdusktildawn 逆にいうと、先に全体像を把握すると、今何のために何を勉強してるかがわかり、面白くないとも思わないし、学習効率が飛躍的に向上する。しかしなぜか、ほとんど全ての授業や本のに全体像を示す説明はない(謎)自分がプログラミングを教える時は、まず全体像を把握してもらうことに最大限注力している」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「学校というところは、努力が線型的に評価される (つまり努力すればするほど成績が上がる) システムである。しかし現実社会では、ほとんどの努力は無駄に終わり、ごく一部だけが実を結ぶ (8:2の法則)。人生にとって重要なこの事実を学校はほとんど教えていない。 https://t.co/ou9gYYETFD」 / Twitter
Life, School, and the 80:20 Rule - xsrus.com

研究・論文

科学の発展

Shinji KonoさんはTwitterを使っています 「間違いを正していくのが科学なのに間違ってる論文を撤回してしまったらダングリングポインタになると思うんだが。解法よりも問題提議の方が発展性があり重要なので、間違ってるというより問題提議した論文というのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学ってのは正しいものの積み重ねて単調増加していくようなものとは違う。互いに相容れない理論が同時に進んでいく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「矛盾からはなんでも出るのだが、矛盾を含む理論でも、矛盾のない部分を切り出すことができる。それを見つけるのは難しい。集合論でも矛盾を突きつけたカントルに対する風当たりはかなり強かった。ラッセルはうまく立ち回ったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学は疑うからこそ科学なのであって、信じてる科学者は科学者じゃない。否定を信じるのもあり得ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学技術系では再発見ってのがあるので、昔あるってだけで研究をやめるのは良くない。今と昔ではパラメーターが違う。そういう風に昔の論文から今のが研究のアイデアを探すのも可。」 / Twitter
jicchoさんはTwitterを使っています 「「でもテストとは違って、研究には正解がない。 失敗を積み重ねて、少しでも良い答えを見つけていくしかない。 だからうまくいかなかったとしても、そのぶん研究は進むから良いのだ。」 試行錯誤の結果、うまくいかなくても、そのぶん研究は進んでいるんだよね。 最近やっと分かってきたような気がする」 / Twitter
森野キートスさんはTwitterを使っています 「研究で失敗するのが怖い - いつか博士になる人へ https://t.co/bdhQlW7oQu」 / Twitter
研究で失敗するのが怖い - いつか博士になる人へ
Tsuyoshi MiyakawaさんはTwitterを使っています 「知らなかったのですが、電気が発見(?)される前まで、ロウソクの改良のための改善に多額の投資がなされていたそうです。日本の科学への投資の現状というのは、まさに「ロウソクの改良」を目指している感じではないかと。 「ロウソクの改良」 使えるフレーズですね。」 / Twitter
Tsuyoshi MiyakawaさんはTwitterを使っています 「「科学の歴史をいろいろと詳しく調べてみると、実は、私たちの生活を本当に変えた大発見の大部分は、その問題を解決しようとしている人たちによって成し遂げられたものではない、ということがわかります。」」 / Twitter

誰もやっていないところをやる

須山敦志 Suyama AtsushiさんはTwitterを使っています 「大隅先生「みんながやっていると怖くない,というのが科学にも入ってきている」 #役に立たない科学が役に立つ」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「誰もやっていないところをやる」ではなく「価値が認められるとわかっている部分を誰よりも先にやる」の傾向が強かったのは何となく学生時代にも感じていた... 僕は科学者じゃないですが,「自分がやらなくてもどうせ成熟するだろう」と思う仕事には手を出さないようにしよう.」 / Twitter

バンディットの理論

加藤さんはTwitterを使っています 「そこに指導教官らしき人物の「正直であるならば,我々の手法よりももっと簡単に実装できて,性能も良いアルゴリズムがあることを言うべきだが」的なコメントもあって,さらに闇を感じた. https://t.co/xeqR6piSbL」 / Twitter
加藤さんはTwitterを使っています 「バンディットの理論でもっとも重視されている論文のとある一本(2016年から300引用されている),arXivからそのlatexコードを落としてみたら,コメントアウトされた実験結果があって,その結果を見ると提案手法がむちゃくちゃ悪くて,闇を感じた.」 / Twitter
加藤さんはTwitterを使っています 「その論文の手法を拡張した研究も,ICMLやNeurIPSに何本も通っているのだけれど,全て実験が怪しいことになるかもしれない.」 / Twitter

histric-1

Shinji KonoさんはTwitterを使っています 「少しでも新しい問題が出ると手も足も出ない。そうならないような授業をしてるつもりだが、そこを突破できるのは1/10くらいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「授業中でも、わざと自分の知らない部分に突っ込んでいくのが好きなのはそういう狙いもあるけど、自分が面白がってやってるだけでもある。そこで行き詰まったりしてるのを心良く思わない学生もいるだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基礎からやるってのが間違ってる。それでは目標がない。最初にボスに当たって、それから必要な基礎をやるんだよ。基礎は無限にあるから優先順位がないと死ぬ。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新規性は,闇雲に追求しても着想できるものではありません。先行研究を踏まえて,それで出来ていないことをあげていきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新しく作るのはコンセプトやテーマが決まってからですね。」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
なんで論文なんか書くのか - いつか博士になる人へ
森野キートスさんはTwitterを使っています 「研究の進捗報告で意識するといいこと ・やったことを説明する前に、何が知りたくてやったのか言う ・方法の説明は、有名な方法との違いを言うとわかりやすいし勉強になる ・結果を説明する前に、どんな結果になると予想してたか言う ・データを見せたら、その解釈を言う」 / Twitter
森野キートスさんはTwitterを使っています 「研究をどこまででまとめるか、最後は自分で決めるしかない。10年後また読んだときに、自分で恥ずかしくない論文が書けたらそれでいいと思う。学生のうちにいろんな人の論文を読むといい。ここが好きとか嫌いとか思うのがいい。自分の判断基準を作るのが大事だと思う」 / Twitter
jicchoさんはTwitterを使っています 「論文投稿した直後に論文整理するの結構いいかもしれないな」 / Twitter
森野キートスさんはTwitterを使っています 「卒業研究は不安になるのが普通だと思う。初めてやるわけだし。うまくいかないのも普通。簡単にうまくいくなら研究する意味があまりない。自分は何もわかってないとか、もっと勉強しないと、とか思ったら、卒研はほぼ成功してると思う。自分が知らないことや知るべきことがわかるほど学んだということ」 / Twitter
文化勲章を受章した私が、83歳になっても研究を楽しめる理由(甘利 俊一) | ブルーバックス | 講談社(1/2)
岩田健太郎 Kentaro IwataさんはTwitterを使っています 「独学には独学の価値があります。が、独学には陥穽が多いのもまた事実。それは知識の多寡の問題ではありません。例外はありますが、独学者は意欲に優れ、自信家で(自信がなければ独学なんてしません)、勤勉で勉強熱心だったりします。問題は「知っていること」ではなく「知らないことを知らないこと」」 / Twitter
競争的研究費における各種事務手続き等に係る統一ルールについて - toitsu_rule_r30305.pdf
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そしてその製薬メーカーさんの技術力の凄さは、そんな有象無象の論文から重要な知見を取り出して実際に製薬に応用することができるところ。研究のビジネス応用は、論文を書く研究者だけの問題ではないということ。 https://t.co/d9JN80tFz1」 / Twitter
理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora
るくすさんはTwitterを使っています 「大学院時代、イノベーションの研究って何(笑)つってクソ馬鹿にしてたけど今になって割とまともな講義してたんだなって思い始めました ごめんな()」 / Twitter
CLINAMEN @cosmologyさんはTwitterを使っています 「研究,脊髄反射的な思いつき程度でこうなりそうって思ったことって,とっくの昔に誰かがやり終えてるか,そもそも思い違いのどっちかだな.ここをどう乗り越えていくかが第一のハードルっぽい.あまり焦らずじっくりいくか.ここさえ越えられれば自力で成果出せるようになるのだしな.」 / Twitter
ここ最近の計算社会科学の動向 - Sansan Builders Blog
おしぼりさんはTwitterを使っています 「論文を読んでいるとググるだけじゃ見つけにくい情報がかなり見つかるのだけど、なぜこれをまとめたりする人がいないのだろう。著作権とかの問題があるのかな。」 / Twitter
mumumuさんはTwitterを使っています 「@oshiborii モチベーションの問題ではないですかね?論文は出版物として評価されるし,ある程度信頼できる著作物として扱われますが,個人ブログは仮に有益であっても,業績にはカウントされにくいので... 個人のメモはともかく,時間をかけて調べたなら,せっかくなら業績にしたいという気持ちも理解できます.」 / Twitter
Hideshi KagawaさんはTwitterを使っています 「「基礎研究は役に立たない」というのがよくわかんないのですが、我々応用研究開発しかしてないので、なにかあると基礎研究者のところへ教えを請いに行くわけで、聞きに行くところがあって良かった。日本って凄いな。と毎回思います。基礎研究は宇宙に役に立っていると積極的な発言が重要です。」 / Twitter
norioさんはTwitterを使っています 「そもそも、論文書いてなくても、大学とか出て無くても 立派な研究をしてる人は一杯いる。 それを分かってない人が、あまりにも多過ぎなんですよ 肩書しか信用してない。 本当は言いたくないけど、 つまり肩書でしか判断出来ないアホしかいない」 / Twitter
【悲報】尾身会長をディスった茂木健一郎、「Google scholar」で論文を検索され実績がバレる | まとめまとめ
Akinori ItoさんはTwitterを使っています 「その昔は夜中まで教授が激詰めゼミをやったりすることがままあったが、どうしてそんなに暇だったのか いまは半日もゼミやってる暇ないよ」 / Twitter
Miura HidekiさんはTwitterを使っています 「深夜12時から始まるゼミは激詰めゼミなんだろうか?JAISTで結構あった記憶がある」 / Twitter
ytakanoさんはTwitterを使っています 「オリンピックは役に立たない事にジャブジャブ金・人・時間を使って良い事を示してくれて活力を与えてくれた。」 / Twitter
ytakanoさんはTwitterを使っています 「役立たない研究にもジャブジャブ金・人・時間を使っていくぞ!」 / Twitter

jicchoさんはTwitterを使っています 「良い資料だ。 自分も向上心を絶えず燃やし続けたい。 https://t.co/9vPizTn197」 / Twitter
hara75.pdf
研究で詰まっている時におススメな本 - Seitaro Shinagawaの雑記帳
一流論文誌に採択される 研究戦略と論文執筆 - 2-3-1_washio.pdf
ザキ研の研究室運営の今 2021年版 〜ZACKY's Laboratory 強み x 教育 研究室
くとのさんはTwitterを使っています 「いろいろ作業していてふと思ったのですが、「余技の多い」人が本当に減ったなぁと感じます。約20年、抱えたままで引き継ぎできない雑用が多い一因が、人数削減とともに多分これ。(人文系に限ったことならよいのですけど)」 / Twitter
くとのさんはTwitterを使っています 「評価が専門の研究に全振りされたから当然ではあるのですが、その結果、人数削減も相まってタコツボ化が進行し新しい研究も出てこない、教育も劣化するという悪循環になっていないか、という話です。(人数削減&業務増大で仕事が回らなくなったというだけでは説明が付かない何かがありそう)」 / Twitter
田口善弘さんはTwitterを使っています 「昔から思っていましたが、アメリカの研究者がやっているサイエンスはテクノロジーで、ヨーロッパの研究者がやっているサイエンスは哲学で、日本人がやっているサイエンスは趣味、という印象があります(悪い意味でいっているわけじゃないです)。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「科学論文は発明だった。16世紀まで、科学の成果は私信か講義でのみで伝えられていた。初期の論文はどれも単純で門外漢にもわかりやすかったが、現在はどれも極端に専門化しており理解に時間がかかる。将来、科学論文はアルゴリズムを記述したコードとして発表されようになる。 https://t.co/vy4JE3Yen5」 / Twitter
The Scientific Paper Is Obsolete. Here's What's Next. - The Atlantic
アラクーさんはTwitterを使っています 「挑戦的だが荒削りな仕事を頭ごなしにはねのけるみたいな態度って学問に携わる者が一番嫌うべきもののはずだし, アマチュアの数学活動を理解し支えることを目指して活動してる人々が多くいる中で, 露骨なアカデミズムを振りかざしてアマチュアの活動を嘲笑するみたいなポーズの人が多いのは残念に思う」 / Twitter
アラクーさんはTwitterを使っています 「それこそ, 既存の数学は間違ってる!!!!!みたいな粗雑な言説で擬似数学的内容の書籍を出版したり, 高校数学もままならない理解で数学をダシに使うというような, そういうタイプの「トンデモ」では絶対にないのは成果物をちょっと読めばわかると思うし」 / Twitter
松原隆彦さんはTwitterを使っています 「国立大学の事務員は、以前は大学教員が研究教育に専念できるようサポートするスタッフだったのだが、運営費交付金の削減に伴って教員よりも事務員の定員削減が優先された結果、教員が事務業務をしないと回らなくなり、大学教員が事務員の業務をサポートするスタッフになってきた。」 / Twitter
理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora

OSS

Open-source intelligence

Masayuki HattaさんはTwitterを使っています 「つうか、厳密にはインテリジェンスの文脈でのOpen SourceのほうがソフトウェアのOpen Sourceより初出は早いよ」 / Twitter
yosuke tanakaさんはTwitterを使っています 「https://t.co/epxAvDvH7t オープンソースインテリジェンスの記事を読んでいると、ソースをソースコードと決めつけるのも狭量だなという気がしてきた。「源」が公開されてるだけなんだからニュースソースやリソースの源とかでもいい。」 / Twitter
Open-source intelligence - Wikipedia
Masayuki HattaさんはTwitterを使っています 「ソフトウェアの文脈でのOpen Sourceという言葉が出来たのは1998年くらいだけど、例えば1995年の時点でOpen Source Intelligenceの論文ある https://t.co/91DKxhdT2z」 / Twitter
STRATINT OSINT MIL.pdf

Code of Conduct

Kazuho OkuさんはTwitterを使っています 「えっそうなのかな。今のやつはだいたい 2014 年頃からのカンファレンスでの問題に由来する系のものだと思ってた cf. https://t.co/5PG6H3a4iQ」 / Twitter
The New Normal: Codes of Conduct in 2015 and Beyond by Coraline Ada Ehmke | Model View Culture
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「今では割とみかけるCode of Conductってのは、オープンソースの世界ではUbuntuが元祖なのだろうと思う。まあ、他にもあったのかもしれないが、2006年あたりの当時、Debianという世界でのフレームがあまりにひどい状態になって、そこへ救世主のようにやってきたので一気に受け入れられたのだろう。」 / Twitter

Supply Chain Attack

1週間で数百万回もダウンロードされる人気JavaScriptライブラリが乗っ取られる、Windowsデバイスはパスワード盗難の恐れも - GIGAZINE
ぬるぽへさんはTwitterを使っています 「OSSに対するsupply chain attack, 実現可能性が机上のものではなく現実的であり(というかもう何回も起きた)、防御も検知も困難(問題が発覚してからエンド開発者が対策するまで現状1,2日かかるという意味で)本当に最悪の攻撃ですよね OSSエコシステムがかなり発展して、依存が爆発的に増えた結果..」 / Twitter
ぬるぽへさんはTwitterを使っています 「そしてこれって昔いわゆる非web系のビジネスサイドが非常に気にしていた「OSSなんて無料の製品に依存してセキュリティは大丈夫なのか」というアンサーになっている節が少しあり気になている 昔あまりこの手の問題が話題にならなかったのってやっぱり依存先が両手で数えられる程度だったからか」 / Twitter
ぬるぽへさんはTwitterを使っています 「いやなんか「依存が爆発的に増えた結果」じゃない気がするな 昔は「OSSに依存する」って言ってもaptやせいぜい大手ライブラリみたいな、管理されたパッケージ(検査済み)に依存することが多くて、npmやなんならGitHubみたいな、中央管理者のいないパッケージに依存するようになったのが最近な気がする」 / Twitter
Daisuke IizukaさんはTwitterを使っています 「@nullpo_head OSSなライブラリの特定バージョンを社内検証して維持管理できる大企業や、Googleのように全部自社製非公開だけど優秀な開発者が大勢居るので素早く改良できる会社有利になるのかな。あとはiptablesやSELinux的機能を使ってコンテナ内でアプリの変な挙動を許さない事、が普通になるのかな」 / Twitter
retrageさんはTwitterを使っています 「Supply Chain Attack、少し昔は特にハードウェアでの攻撃が話題の中心だったけど、ここ2年ぐらいから特にソフトウェアの依存関係の文脈で話題に上がることが多くなった気がする」 / Twitter
goyoさんはTwitterを使っています 「OSSもよく他のOSSとのサプライチェーン形成してるし、難しい問題。高度なQAが求められるようになってる」 / Twitter

定義

Shuji SadoさんはTwitterを使っています 「俺オープンソースの話題が出ると思うことだが、単に定義があるので正しく使おう、ということではなく、当時の有力開発者、著名人(RMS除く)が揃って今後はオープンソースという新語を使っていくと宣言したプロセスを踏まえてほしいなと思う。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「オープンソースという概念が最初にあってOSIが出来たのではなくて、ソースコードの共有文化が最初にあり、それを開発者ごとロックインしたプロプライエタリソフトウェアが発生し、これに対抗するためのフリーソフトウェア活動が生まれ、」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「プロプラへの対抗などの意味をなしに、中立的にソースコードを共有することを指す言葉としてオープンソース(という言葉)が人為的に生みだされた。 https://t.co/IrOe0WzSnK ので、自然発生語ではないんですよね。」 / Twitter
History of the OSI | Open Source Initiative
まさみさん⋈語りたいさんはTwitterを使っています 「寧ろメタ自然発生語としてはFOSSとかFLOSSの方が良いんじゃないだろうか。日本語にはなってないけど。 https://t.co/WfL578DtOL 日本語的にはフリーとオープンが区別しにくかったのかな。あとフリーソフトがその前にあったし。」 / Twitter
Free and open-source software - Wikipedia
ママレモンサワーさんはTwitterを使っています 「オープンソースの定義がどうこうの話時々聞くけどあれでどうにかなるのは著作権の話で、それとは別にパテントの問題が出てくるよね?」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「あの商標登録は「誰かがオープンソースという名称で登録して、この言葉を独占的に使おうとするアクションを起こされないように」という予防的な目的のみで行われているはずで、「オープンソース」という言葉の定義に権威を与える目的ではないはずだし、そもそもそんな機能は商標にはない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「テクニカルタームだからちゃんと使え、には賛成だけど、一般名詞だよなー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「僕はOSGJからライセンスをうけてオープンソースという言葉を使っているという認識はないなー。というか、そんなこと言われたら怒るでしょ普通」 / Twitter
Kazuho OkuさんはTwitterを使っています 「OSDJの商品もしくはサービスに言及する表現として使っているという認識はない、がより正確かな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そして、そのどちらでもないものに対する言及としての「オープンソース」が大多数の用例である以上、商標権行使できないのでは?という。商標を抑えておくこと自体は意味があるし、敬意を示すところではあるけれど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「OSI自身が「オープンソース」を商標登録して、認定外のライセンスを用いるソフトウェアに対して抗議してきた歴史ってあるの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「実務上は、審査官に拒絶理由を可視化するのが目的で、それで十分なんだと思う」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho OSIは1999年に商標登録を試みたんですが、既にOpen Sourceという言葉が広まってしまっていたために、登録に失敗したようです: https://t.co/lFgKFz06kI」 / Twitter
Open Source Certification:Press Releases | Open Source Initiative
私とOSSの25年
Kazuho OkuさんはTwitterを使っています 「そうそう。改変の自由であって、改変をレビューしてもらう権利でもマージしてもらう権利でもないという」 / Twitter
徳永広夢さんはTwitterを使っています 「OSS は fork どんどんできるのが醍醐味なのに~」 / Twitter

Red Hat

Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Red Hatのサイトにオープンソース誕生の経緯について書かれている文章をたまたま見かけたのだけど、うまい具合にVA LinuxとDebianの存在を消していて、これが勝者による歴史という奴かと感心してしまった。「ソースウェア」と呼んでた会社を吸収していることはどこにもないな https://t.co/YmUoXtc3JP」 / Twitter
オープンソース (open source) とは - 特徴とメリット | Red Hat
SODA NoriyukiさんはTwitterを使っています 「GNU toolchain のサポートで主に食っていて、いまでも cygwin に名を残している Cygnus Solutions ですな>Red Hat が吸収したオープンソースの著名企業。 当時OSS的には Red Hat よりも Cygnus の方が信頼されてたブランドだったのよねえ」 / Twitter

GNU

SODA NoriyukiさんはTwitterを使っています 「ソースを見たいってのはプログラマーにとっては根源的な欲望だし、 若い頃にそれが可能な理想環境にいて、それが LMI vs Symbolics の揉め事で崩壊していく過程を経験したら、ああなるのも自然な気がするけどな… まあ僕も https://t.co/JFEBuqtIY8 を読んだ程度なのでそんなに詳しくないけど」 / Twitter
ハッカーズ | スティーブン・レビー, 信子, 松田, 古橋 芳恵 |本 | 通販 | Amazon
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「週末に日米でソフトウェアに著作権が認められる経緯を調べてたのは、RMSがGNUにまで到達する時代背景をおさらいしたかっただけなのだけど、何と言うかベル研によるUNIXもLinusによるLinuxもその発展は理解できるが、RMSだけはやっぱり分からん。解脱しないと境地に達することはなさそうなので放置。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@shujisado わかりたくないだけなんじゃないですか」 / Twitter
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「@shinji_kono 私は流されるままの凡人でいいです」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「発想自体は自然だけど、実際に実行してやり遂げちゃうのは普通じゃないです。」 / Twitter
artonさんはTwitterを使っています 「@n_soda あれは後やっぱり70年代という時代背景(要はヒッピーのシェア文化――とにかくいろいろシェアする)も大きいんじゃないかなぁ。見てくれがヒッピー引きずっているし。」 / Twitter
Norihiro KumagaiさんはTwitterを使っています 「@n_soda @a_saitoh あの通信線(接続)を切断するくだり、涙なしでは読めない(1回しか読んでませんが)。」 / Twitter

histric

histric-1

伊津野 英克さんはTwitterを使っています 「最近、OS作ったとか言語作ったとかそういう人多すぎて界隈怖いのよね。」 / Twitter
画力・博士号さんはTwitterを使っています 「「OSS活動」という表現がしばしば「既存の大きいライブラリや処理系などのソフトウェアにcontributeすること」*のみ* を指していて「ゼロから(多くの人が使える)大きいソフトウェアを実装していくこと」を含んでいないであろう使われ方をしているの若干片手落ちな感じがしないでもない」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「OSS言ってても、価値を生む場所はクローズドなんだから、これで素敵という認識をするのがマーケティング戦略に騙されやすい人だと思う。世の中を進化させたいのであれば、東大の加藤先生みたいに自動運転のソースを公開すればいいのにと https://t.co/NK0hM8sWfE」 / Twitter
イーロン・マスクが特許をオープンソース化した理由がブっ飛んでてステキだった – ベルリンで働くソフトウェアエンジニアのブログ
Makoto Kato ︎︎さんはTwitterを使っています 「個人的には保険会社対策として、自動運転関連はOSSでかつApacheライセンスじゃなくてMPLに近いライセンスにせざるとえなくなるのでは?って思ってはいる。それか保険会社向けに常にコードを公開することになるとか (MicrosoftのShared Sourceみたいな感じ)」 / Twitter
伊津野 英克さんはTwitterを使っています 「これはまったくそう。昔あるOSSのプロダクトに再現手順付きでバグを報告したら、「テストケースが付属してないから対応するつもりはない。テストケース付けろ」と言われて、そこまでする義理ないから無視してたら催促までされて本当にムカついた。」 / Twitter
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「こういう態度がOSS萎縮させる要因の一つだと思います。「言い出しっぺの法則」を言い出したら誰も物言わなくなる。 ニーズ・要望を気軽に出していきましょう。 ただしそれが他との整合性や実現可能性、優先順位などの理由で採択されなくても文句言わない、そこで文句言うなら自力でなんとかしましょう」 / Twitter
めるぽん.acさんはTwitterを使っています 「OSS にある要望系の issue、とりあえず「なぜあなたが実装しないんですか?」って聞くのが最初のステップ」 / Twitter
めるぽん.acさんはTwitterを使っています 「次のステップは「この機能を継続的にメンテナンスして貰えますか?」」 / Twitter
伊津野 英克さんはTwitterを使っています 「対応するかは別としても、要望もバグ報告もありがたいけどなぁ。気に入らないなら放置すればいいのに。」 / Twitter
Yu WatanabeさんはTwitterを使っています 「えー。。。いや、そんなぁ。要領を得なかったりルールを守ってないissueはさっくりcloseするから全然構わんのに。 そんなことより萎縮されちゃうほうが問題。 OSSなんだからIssueたてるのもPRたてるのも自由。開発者側も、無視するのもコメントするのもアクセプトするのも自由。それでいいじゃない。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「旬を逃さないうちに書き殴りました。 「issueを立てるな!」 - Qiita https://t.co/0AYTkhzvmy」 / Twitter
「issueを立てるな!」 - Qiita
Yu WatanabeさんはTwitterを使っています 「元々大学にいたからかなぁ。素っ頓狂だったり的外れな質問や指摘にはものすごい耐性がある。「聞くは一時の恥、聞かぬは一生の恥」これはどんな分野にも当てはまると思う。もちろん、聞かれる方にもキャパシティはあるから、無視する権利もあるけどね。 いーじゃん、ワイワイとやれば。」 / Twitter
Yukiharu YABUKI botさんはTwitterを使っています 「@yuwtnbe やり方が気に入らないなら、成功するかどうかはべつにしてforkする自由もある。大変だけど。」 / Twitter
Yu WatanabeさんはTwitterを使っています 「@YukiharuYABUKI ですよねー。 それに、GitHubだと IssueやPRを受け付けるかどうかの設定もできるみたいですね。いじったことないけど。 煩いと感じるならその辺を設定しとけばいいですよね。」 / Twitter
songmuさんはTwitterを使っています 「OSSも人間の活動だからプロジェクト毎に個性がある。 なのでOSSのお作法、みたいなものに捉われないで、それぞれのプロジェクトとどの様に関わればうまくいくのかを、個別に向き合っていく必要がある。 世知辛いかも知れませんが、僕達の苦手な人付き合いと同じなんですよね。」 / Twitter
songmuさんはTwitterを使っています 「まずは、README等以外にも、issueやpull requestで雰囲気を掴んだり、メンテナの他のプロジェクトを見たり、類似プロジェクトをみたりして、どういう風にコンタクトすれば良いかを探る。」 / Twitter
songmuさんはTwitterを使っています 「OSSだからこうすべきだ、みたいなのは、個に向き合わずに、楽さを求めようとしている。マナー講師と同じ。」 / Twitter
songmuさんはTwitterを使っています 「コンテキストが(程度の差はあれ)オープンになっているからこそ、新たに関わりやすいのがOSSの面白いところなのだから、個々の違いを楽しまないと。」 / Twitter
ソースコードを公開したソフトウェアで収益を得ている会社
won't fix: Web Speech APIのSpeechSynthesisEvent.elapsedTimeは秒を返すのだけど
OSSへの要望をカジュアルに提案することについて | うなすけとあれこれ
オープンソースソフトウェアの保守を職業として成立させるために必要なアイデアとは? - GIGAZINE
Rui UeyamaさんはTwitterを使っています 「オープンソースの古い機能がドロップできない意外な理由の一つは、少数でもめちゃくちゃ怒る人がいるっていうのがありそう。Unicodeも怖い界隈というイメージあるし・・。lld作ってるときも、Linuxカーネル開発者になぜこの機能必要なの?と聞いたら激しくキレられて理不尽ながらも圧はかなり感じた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Linuxカーネルの話は相手もGoogle社員だったので、仮にLinuxカーネル開発者界隈では許されている言動だとしても社内同士では完全にアウトだったと思うが・・。」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「@rui314 みんななかよく…」 / Twitter

IT

セキュリティ

ドコモ口座問題 - OAuth.jp
MiyahanさんはTwitterを使っています 「大企業でありがちな「面倒になるだけで効果がほぼ無い(どころかむしろ悪化する」セキュリティ施策を海外では "security theater" (劇場型セキュリティ)と呼ぶと知りセンスあるなぁと関心している。 日本語の "セキュリティごっこ" も極めて的を射ているが毒が強すぎて当事者への説得に使えないのが難」 / Twitter

システム障害

「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る - Publickey
東証、障害の原因を特定 設定値に不備、切り替え失敗 - ITmedia ビジネスオンライン
品川 高廣さんはTwitterを使っています 「東証のシステム障害の原因が設定ミスと聞いて、ああよくあることだねとしか言えない。https://t.co/sKKKoWe2ro」 / Twitter
An empirical study on configuration errors in commercial and open source systems | Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
hrk先生さんはTwitterを使っています 「@utshina2 問題は、各パーツは品質が良いので多様な故障発生状況をあらかじめテストすることができないことと思います。故障解析で、通ってないパスが沢山あるのじゃないかな? 故障率が10000倍高いメモリとかストレージとかプロセッサチップが出来れば貢献するのかな?」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk 最近は software fault injection でソフトウェア的に擬似的な故障を発生させてエラー処理を検証する研究も幾つかなされていますね。手前味噌ながら、我々も BitVisor で実ハードウェア環境で疑似故障を挿入する研究をやっていました。https://t.co/yEaP5w4OXW https://t.co/u2AycsJCkf」 / Twitter
Testing device drivers against hardware failures in real environments | Proceedings of the 31st Annual ACM Symposium on Applied Computing
FaultVisor2: Testing Hypervisor Device Drivers Against Real Hardware Failures - IEEE Conference Publication
hrk先生さんはTwitterを使っています 「@utshina2 それは知っているのですが、ソフトウェアは知っている壊れ方しか再現・擬似実現しないというところに限界があると思っています。 プロセッサ設計でも、ここが危ないと思ったところには普通バグが入らないです。」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk メモリの壊れ方を調べた empirical study はあるようですが(https://t.co/fwGYHNBfW8 等)、プロセッサの壊れ方を調べた論文はざっと見た限りはあまり見つからないですね。普通はあまり壊れなさそうな気がしますが、どんな壊れ方をするんでしょうか?」 / Twitter
dsn07.dvi - hotdep2007.pdf
(1) hrk先生さんはTwitterを使っています 「@utshina2 一番あるのは浮動小数点が温度や電圧の都合で値化けすること。次はPCIE等のI/Fかな?マザーボードによっては同じく温度・電圧でご機嫌がでそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い。 同じCPU内で、整数演算系に比べて、浮動小数点が選択的に弱いとしたら、理由は何だろう?? (答えまでのパスが長くて、エラー検査間隔が長いとか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、科学技術計算(スパコンとAI?)とそれ以外(Web、金融、DB、業務系)では、前者が浮動小数点演算メイン、後者は整数演算メインという違いあると予想。 それが割当トランジスタ数と、実行時の処理割合にも反映して、確率的に前者なら浮動小数点エラー増え気味、とかはありそう?」 / Twitter
東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
Shinji KonoさんはTwitterを使っています 「切り替えというけど、切り替わる条件は無数にあるので全部をテストするには、モデル検査するしかない。本番環境でのモデル検査は普通は不可能。この規模だと二系統は用意しないだろうし。」 / Twitter
10月1日に株式売買システムで発生した障害について | 日本取引所グループ

システムは自然と壊れる

ところてんさんはTwitterを使っています 「企業の幹部向け研修用に、「ITシステムはなぜ『自然と壊れる』のか」というのを書かねばならん気がしてきたが、なんかいい資料ないかな…… - 外部環境の変化 - 脆弱性対応 - DBの肥大化、ディスク・メモリ容量不足 - 新規のコードの追加 - ハードウェア本体の故障 - ネットワークの故障 etc...」 / Twitter
ところてんさんはTwitterを使っています 「2000年問題、2038年問題は分かりやすいので入れるとして、あとどーすっかなぁ OSのサポート切れ、開発言語のサポート切れ、あたりは入れるとして」 / Twitter
靴屋のスミスさんはTwitterを使っています 「@tokoroten 「サポートが切れるから」使えない、使ってはいけない、というのは、システムが自然崩壊する現象への対策が行えなくなるという、謂わば二次的な理由なので、システムが自然崩壊するのはなぜか、の理由の一覧に並列で記載しないよう、お願い申し上げたくござります。」 / Twitter

進捗・インクリメンタルな開発

Yasunori GotoさんはTwitterを使っています 「あー… なんか似てるかも…。 テレワークになってから特に…。」 / Twitter
ymmtさんはTwitterを使っています 「@satoru_takeuchi 1. こまめにアウトプットする。 2. 集中しないのがデフォルトだと割り切って焦らない。 なにがしかやってればそのうち興がのるタイミングがあって、そのとき大きく進捗します。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「私も,小さく試す,本格的に作る前にプロトタイピングするということをしょっちゅうしています。幼少の頃,レゴブロックで色々試行錯誤していたのと,小学校・中学校でプログラミングにて散々ハマりまくったので,自然とその習慣が身についたんだと思います。 https://t.co/O0okFVJ2gy」 / Twitter
ついに達人がハマらない原因を見つけたかもしれない話|牛尾 剛|note
7594591200220899443さんはTwitterを使っています 「これだけは言っておかねばと思うのだけれど、右と左は別に品質面で差が出るような違いではない。ウォーターフォールが失敗した時には低品質の物が期限通りに出てくると思うべからず。そうなった時には期限日には何も出てこないのが実情である。」 / Twitter
jMatsuzaki🔥さんはTwitterを使っています 「←期限ギリギリで低品質な物を作り上げる人のスケジュール  →期限内に高品質な物を余裕を持って仕上げる人のスケジュール https://t.co/PUucITCacM」 / Twitter
7594591200220899443さんはTwitterを使っています 「最後にジャーンと出来上がった物を比べた時にウォーターフォールが特段に低品質ということはないはずと理解している。ただ納期は破綻する。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ逆に低品質だろうが何だろうがともかく納期に何かが動いているというのが反復プロセスの特徴とも言える。」 / Twitter

クラウド == メインフレーム

Shinji KonoさんはTwitterを使っています 「Cloudとか言ってるが、結局は課金制大型計算機センタなんだよな。JCLの代わりにLmbdaで戦ってるだけでさ。そこから抜け出したくて、マイコンミニコン、Unixだったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「インターネット上のスケールする分散アプリの代わりにCDNってのは退化だと感じる。メインフレームの第n次オンライン的な。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Cloudのダウンは、httpsとCDNで囲い込んだ報い。本来は蜘蛛の巣的なキャッシュあるいは自律サーバネットワークで止まらないはず。ただし、updateはリアルタイムではないがな。リアルタイムを求めるなら、そこに行かなくては。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Playstationの予約でサーバダウンとかやってた頃を繰り返してる」 / Twitter

意味のある技術

Hiromitsu TakagiさんはTwitterを使っています 「思い出すのは、大学で研究室に配属になった1988年頃の話。当時の一つのブームは「データフローコンピュータ」だった。指導教授がその道で名を上げかけた方(米国で見てきたものを国内で再現的な)で、当時の第五世代コンピュータのテーマの一つでもあった(教授は枠外)ので研究室のテーマはそれ。で…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…で、データフロー型の謳い文句は「ノイマン型コンピュータには限界がある。データのフローを直接処理することで問題が持つ並列性をそのまま並列実行できるのだ、と言うのだけども、コスト度外視なのね。連想メモリ(content addressable memory、データを入力するとアドレスが出る)の回路を使って…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…使って作るというのだけど、規模はどうするよとか、条件分岐は?とかいろいろ問題あり。M1の頃にはすでにおかしいと気づいており、fjに書くなどしていたら、学会の懇親会で偉い先輩(今の大ボス)に「君さあ」的なことを言われたwのであった。自分の研究は教授から与えられたネタで、それ自体は…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…それ自体は、なんというか、思いつきの一つの設計例にすぎず、その有用性を語るなんてできないわなと思って、学部の卒論の時点で、どうにか意味のある内容に変更(データフローコンピュータはトークン(データ)をキューに流すのだけども、データはメモリにおいてキューのカウンタだけ使う)して…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…して凌いだ。その後、Mではその方式を一般化して概念を確立させ研究会デビュー、ちょうど国際的にも似てるけどちょっと違う方式が出てきていたので、それらと比較して一つの小分野を構築することができ、どうにかD論に持って行けたのは、幸いだった。ちょっとした違いで人生大幅に違っていただろう。」 / Twitter
富岳てるみさんはTwitterを使っています 「「スパコンでなければならないのか?グリッドでいいのではないのか?」というのは、ある意味真だし、ある意味偽でもある。まぁ原理的にはグリッドですべて賄えるといえば賄えるけど。明日の天気予報に一か月とかかけていいなら」 / Twitter
宇賀智之さんはTwitterを使っています 「日本のスパコンにかける情熱は素晴らしい。 しかし、どれほど有効活用されているのだろう。 そして僕は常々思うことに、家庭のPCをつなぎ合わせて、一つのコンピューターとして見なすことで凄まじい情報処理ができるのではないだろうか。」 / Twitter
Masakazu SekijimaさんはTwitterを使っています 「@telmin_orca @sacred_fox SETI@homeやFolding@homeとスパコンが計算している“ならでは”のものの区別がついていないというか後者を知らないだけかもしれません。」 / Twitter
富岳てるみさんはTwitterを使っています 「xxはどれほど有効に使われているのか?(xxには結構な高値のあれこれを入れよう) というのは、結局ポジショントークでしかないのでやめたほうがいいですよ。世の中には、自分は知らないけど活用されているものって山ほどあるわけで」 / Twitter
富岳てるみさんはTwitterを使っています 「まぁどこかの世界には、1Exaの計算を実現するのに1PFlopsの計算機を1000倍長く稼働させればいいとかいうことを言っていたヤツもいるので、みなさんはそういうアホにならないように気をつけてください。今必要な計算を1000倍の時間かけてやっても意味はないです」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「テクノロジーとは物を作る能力ではなく価値を具現化することだという結論に至った」 / Twitter

単純から複雑にではなく、複雑から単純に進む

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「なるほど、と思った。オブジェクト指向に限らず、技術というのはそういうものだと思う。難しいことをしようとするから技術が必要になる。だから技術から遠い人ほど、新しい技術を入門者にわかりやすく説明しろ、普及の努力をしろと言う。でも技術は、学ぶ人が難しい実施をして初めて価値が理解される。」 / Twitter
杉本啓さんはTwitterを使っています 「複雑なコードが必要でない場面で、オブジェクト指向の価値はわかりづらい。 僕は、会計分野で、持分計算や配賦計算といった複雑な処理をオブジェクト指向的に書いて、あ、これはいいなと思った。そうすると、単純な処理にも使いたくなる。 単純から複雑にではなく、複雑から単純に進むんだな。」 / Twitter
杉本啓さんはTwitterを使っています 「だけど、オブジェクト指向の解説は、単純な例ばかり挙げる。それでオブジェクト指向のありがたみをわかれというのは、かなり無理スジだ。オブジェクト信奉者も、本当は分かっていないで、カッコよさげだから信奉している場合が多いのだろうと思う。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「形式仕様もそう。普及の努力はもちろん必要だけど、その努力が生きるのは、従来手法で本当に難しい開発をしていて、これは作る対象をガッチリ定義しないとどうにも手に負えないと観念して、その時に学ぶ方法を提供されていることが大事。必要としていない人に売り込んでも、誰も幸せになれない。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「この、一度手に追えなくて観念することが大事なんだと思う。そこから適切な技術に出会って、同じ対象を見る目が変わる。これが技術を理解するということなのだと思う。」 / Twitter
Miura HidekiさんはTwitterを使っています 「まさにまさに (何か意見を言いたいのだがこれの話に足すことも引くことも出来なかった >RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「でも、この場合はコンピュータサイエンスの面でのソリューションなわけだけどおそらく世の中の問題の解決方法が全てCSなわけじゃないから慢心はよくなと思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「IT系の人が思うほどにはITで解決できる問題は少ないと思うし、非IT系の人が思うほどにはITで解決できる問題は少なくないと思う」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 多いか少ないかはともかく、利用現場の調査もなくITで解決できると思うことは裏切られるし、ITの理解なく従来のやり方に拘っているのを少し譲歩してIT的合理化を取り入れれば効率があがるというものもそこかしこにありそうな気はします。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そう、そしてIT系の中でもソフトウェアだけで解決できる問題は思ったより少ない。でも、そのギャップがあるからこそ、ソフトウェア系の研究は面白い。ソフトウェア系でない人が思うよりソフトウェアでできることが多いから、ソフトウェア研究者にとって学際的な研究は面白い。」 / Twitter

やみとも(数学、プログラミング、畑)さんはTwitterを使っています 「ある統計本の回帰分析の説明で「パラメータをギリシャ文字、変数をアルファベットにして区別します」という説明にかなり価値を感じたんだが、こういう本質には関係ないけどこれからいろいろな数式を読む上で便利になる知識大切だと思う。」 / Twitter
令掛ベインさんはTwitterを使っています 「略語に複数形のsをつけると違和感がある問題の対策として略語+コレクションの名前(posList)を使うことがしばしばある」 / Twitter
「早くリリースして、早く改善しよう」の落とし穴―― 開発畑のプロダクトマネージャーの失敗から学べ (1/4):ProductZine(プロダクトジン)
Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています 「古き良きLSI屋の会社はフルスタックで配置配線ツールやアナログのシミュレーターやら論理設計の言語と合成の処理系やらを内製してたんで、今どきの「低レイヤー」なんてのを「お高いんですね!」って鼻で笑えるレベルの低レイヤー。 あの部隊を何かに転用できなかったってのは割と国家的損失?」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「プログラミングというのはコンピュータに指示を出すこととよく言われるけど、実際には人間側の行動手順の規定しないといけないので、利用者も含めた処理手順を整理記述することなんだよな。」 / Twitter
今年新卒で大手のSIerに入社したものです。将来はPMの道に進みたいと思っているのですが、現在業務ではプログラミングをほとんどしません。業務時間外にプログラミングを勉強した方がよいでしょうか?に対するKuranami Koichiさんの回答 - Quora
Shinji KonoさんはTwitterを使っています 「デジタル化とかDXとか仕事量を減らす楽にするとか考えてるのがいるのがなぁ。引き算としか考えてない。 もちろん、デジタル化DX化は高度化と生産性向上であって、ついていけないのは放り出されるんだよ。仕事が易しくなったりしない。 学ばない人の居場所はない。」 / Twitter
take-cheezeさんはTwitterを使っています 「ものづくり、ものを作ってない時の方がずっと大事で、ものづくりだけ見ると全てを見失ってる」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「政治を「科学的事実」によって裏付けすることの危険性。もともと科学には完全な客観性などというものは存在しないにもかかわらず、人々はそれを期待している。そのため複数の相反する「科学的事実」が出てくると、人はどちらを信じるかをめぐってますます分断を深めてしまう。 https://t.co/gM5GfOEnox」 / Twitter
Why Science Can't Settle Political Disputes | The MIT Press Reader
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「ある機能が欲しいか?」と聞かれるとユーザはほぼ例外なく "YES!" と答えるが、ユーザがすべての情報を与えてくれるわけではない。機能の仕様設計にはユーザのワークフローを理解することが不可欠で、それがないとたとえ実装しても全然使われないことがある。 https://t.co/ESq5f68UVc」 / Twitter
When users never use the features they asked for - Austin Z. Henley
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「自分は「ベストプラクティス」という言葉が嫌いだ。多くの場合それは科学的根拠のないただの押しつけである。ほとんどのベストプラクティスは「伝統」「パターン」「標準」と呼ばれるべきで、つねに論理的な理由が必要だ。それを説明しないのは怠惰である。 https://t.co/dMgDRj0U5B」 / Twitter
Best Practices (why I Hate Them)
Makoto Kato ︎︎さんはTwitterを使っています 「自身の経験から思うのは、いかにバグ報告システムの入口をゆるくしても、報告せずに騒ぐ人は多いし、ゆるくすればするほどDon't workみたいな自分の環境で何かが動かないみたいな曖昧な話を報告するのが増えるし、どのくらいの塩梅がいいのか未だわからないということ」 / Twitter
Tetsuya MorimotoさんはTwitterを使っています 「@makoto_kato 私は慣れてしまってわからない感覚なのですが、バグ報告システム (課題管理システム) の学習コストは使ったことがない人たちにとって高くて、一時的に使う目的で強いるのはやや敷居が高いのではないかと考えるようになりました。もし開発者にとってもそうであれば、非開発者にとっては無理だろうなとも」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「そういうシステムに対してDeep Learningで解決ある程度できるのかどうかと思ってたけど、ChromiumのMontrailとかMicrosoftのFeedback Hubとか見てると人力でしか未だになくて (Feedback Hubは裏でいろいろ解析してるかもしれないけど)、人間には未だにそれを解決する頭脳は伴ってないのかも」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「なので、Safari/iOSのバグってたぶん騒ぐだけ騒いでWebKitのBugzillaなりに報告する人ってそうとう少ないんだろうな感。Apple側も対応がまずいのはあるけど (radarに登録してあったとしても実際作業されているのかがわからないからね)。それはMozillaも同じではある部分もあるけど」 / Twitter
プログラマー・岩田聡の“伝説的エピソード” 「MOTHER2」復活対談で裏側明かす - ねとらぼ
『MOTHER2』ふっかつ記念対談 はじめてのひとも、もういちどのひとも。 - ほぼ日刊イトイ新聞
アマチュアアカウントさんはTwitterを使っています 「20年前と今で意味が変わった言葉 API 20年前:一連のクラス/関数のインターフェイス/シグネチャ 今:httpでJSON投げるとJSONが返ってくるやつ SDK 20年前:高水準のクラスライブラリ 今:httpで投げるJSONを作って投げるやつ →RT」 / Twitter
syuntaさんはTwitterを使っています 「任意のSDK、実体はただのHTTPクライアントなのありがち。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債とか銀の弾丸という言葉を使うと、ポエムになりがち」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータってもともと計算する人って言う意味だと考えると、5000年はさかのぼりそう。それは無いとしてもPascalの計算機か階差機関だろうか」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「講演者「一番じゃなきゃ意味がないんです。世界で最初のコンピュータがENIACだというのは皆さんご存知ですね」 聴講者1「違います、ABCです」聴講者2「Colossusです」聴講者3「EDVACです」聴講者4「EDSACです」を一度見てみたい。@rironriron」 / Twitter

チェックデジット

上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「これがチェックデジットあると1人1分が10秒以下になるんですよ…目視点検と読み合わせしなくても良くなるから。チェックデジットは正しく設計すると、入力誤りを極めて高率に捉えるのです。誤り混入率が1/10になるだけと思ってる人がいるようですが違います。人の入力誤りって奥深いんです(研究中)。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「単一桁誤りと、隣り合う数字の入れ替わりを確実に検出できるチェックデジットあるの知らなかった https://t.co/lKAhjNAxjZ」 / Twitter
Verhoeff algorithm - Wikipedia

広く使ってもらうための戦略

uint256_tさんはTwitterを使っています 「誰かに使ってもらえるものを作るにはどうすればいいんだろうね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t ポイントは「巨人の肩」と「応用事例も作ること」そして「世界に向けて発信すること」だと思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「巨人の肩」というのは,既存のインフラとの親和性を良くすること,差別化点をはっきりすることが重要になってきます。既存のものに対する調査と,階層構造を踏まえることが大事になってきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「応用事例を作ること」は,自分が発信したいプログラムを活用した事例を作り,それも含めて発信することが大事なポイントです。そうすると,もともとのプログラムをどう改良していけばいいかの指針も得られます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「世界に向けて発信すること」は,単にGitHubに公開し,Twitterでつぶやいているだけでは,誰かの目に止まることは難しいということです。もっと広く情報を発信しないと,注目を集めません。」 / Twitter

情報発信の利益・不利益

Rui UeyamaさんはTwitterを使っています 「自分が何年も苦労して獲得した技術的ノウハウを誰でも簡単に学べる親切なオンラインブック(無料)を書くみたいなの、何も得してないみたいだけど、ここだけの話すごく得なんですよ。今は得になってないけど。どう得になるのかもわからないけど、損得でいうと相当プラスになる気がする(根拠なし)。」 / Twitter
ogiwaraさんはTwitterを使っています 「例えば「OSの基礎がわからない」って言われてOS自作入門をすすめるの、正直なところにわかだと思う OSのコンセプトとか、もっと適した教材が他にもたくさんある」 / Twitter
いわんこ(小学生)さんはTwitterを使っています 「@designpatterngf これは本当にそう。 OS自作入門とかそのへんは、OSを作ってCPUとかメモリを理解しましょう、って感じですよね。 OSの勉強するならタスクの管理とか権限とか、仕組み的な感じのものを期待してる人が多そう。」 / Twitter
ogiwaraさんはTwitterを使っています 「適切な教科書って作るのめっちゃくちゃ大変なんですね…」 / Twitter
ogiwaraさんはTwitterを使っています 「楽しく読め、かつとてつもなく効率的にキャッチアップできるので、本当に感謝しかないです… いつか自分も書く側になりたい…」 / Twitter
ロボ太さんはTwitterを使っています 「任意の分野Xで僕よりずっと詳しい人がたくさんいるんで、「僕がXについて解説書いたりしていいんだろうか」といつも思うんだけど、その「僕より詳しい人」がみんな解説書いてくれるわけではないので……」 / Twitter
ロボ太さんはTwitterを使っています 「まぁ、情報発信なんていいことないよね……」 / Twitter
杉本啓さんはTwitterを使っています 「自転車の乗り方を本に書いたら、それは単に情報だ。実際にどうやれば自転車に乗れるのかは、それぞれがやってみて習得するしかないし、得た tacit knowing はその人だけのもの。我々が何かを出来るかは全面的に tacit knowing に依拠している。形式知=情報は、むしろそれを生成するためのよすがだ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング技術も同様で、習得する本人が自分の意思と試行から再発明するしかない。いくら教科書的なものを用意しても、それは練習メニューに過ぎない。練習する気がない人に練習メニューを見せても、うまくはならないんだよ。でも、世の中には、それで終っちゃってる「教育」が多い気がする。」 / Twitter
ネオ高等遊民@哲学youtuberさんはTwitterを使っています 「YouTuberはいいですよ。 解説や研究を読んで知った面白い解釈を紹介すると 「受け売りしてすごいと言われて楽しいの?」などと言ってもらえますし、 自分で考えて面白いと思った解釈を話すと 「根拠のない思い付きより、最新研究分かりやすくかみ砕けよ」などと言ってもらえます。」 / Twitter
チェシャ猫さんはTwitterを使っています 「私自身は、アウトプットするとき何らかの意味で新規性が主張できることが重要だと思っているし、Getting Started をなぞっただけのブログ記事とかは無意味だと思ってるけど、実はそんなの受け手側は気にしてなくて、割り切って選挙カーのごとく同じ内容を連呼し続けるほうが歓迎されるのかもしれん。」 / Twitter
κeenさんはTwitterを使っています 「趣旨とずれるかもしれないけど、自分の回りの人が自分の過去のブログ記事を全部読んで全て記憶してると思うのは完全な驕りで、伝えたいことがあるなら何度も繰り返し言わないと伝わらないってのは学んだ。」 / Twitter
チェシャ猫さんはTwitterを使っています 「@blackenedgold せやなとは思いつつ、多少驕っても許されるぐらいの特典が付いてないと誰からも認められない活動を続けるモチベーションが保たんのですよ。少なくとも、自分の場合は。」 / Twitter
チェシャ猫さんはTwitterを使っています 「だから結局のところ、コミュニティイベントで所属を伏せたまま登壇するという形式そのものが自分の目的に合ってないんだと思う。それはずっと思ってる。」 / Twitter
チェシャ猫さんはTwitterを使っています 「2 年前から似たような言ってた。 https://t.co/aUT9HJgxFi」 / Twitter
チェシャ猫さんはTwitterを使っています 「他の人のプレゼンとかブログ記事とか見て「えーそれ README なぞっただけじゃん」みたいに思うことがたまにあるけど、よく考えたら世間ではわざわざマイナな OSS のドキュメント読んでるような人間は少数派なので、それぐらいのレベル感でちょうどいいのかもしれん。」 / Twitter
Motonori ShindoさんはTwitterを使っています 「@y_taka_23 ですね。ただ自分の書く記事では「これで何を価値として提供できるか」を意識するようにしてます。なので、そんなに本数書けないのが辛いところ。」 / Twitter
尻P(野尻抱介)さんはTwitterを使っています 「あと、引用は本来無断でやるものなのに、許諾が必要だと思っている人が多い。許諾を求めると、許諾する側の責任になるので「なんだかしらんが責任負うのは嫌だからノーだ」となりがち。これは世の中の活性を落とすので安易に許諾を求めてはいけない。勇気をもって無断でやるべき。」 / Twitter
尻P(野尻抱介)さんはTwitterを使っています 「TV番組でもネット配信でも小説でもエッセイでもツイートでも、表現活動は人を喜ばせもするし不快にもする。意図どおりに伝わることもあれば誤解されることもある。それが表現の本分なので、作品そのものでコントロールすべき。安易な予防線や責任回避の許諾ですむことではない。」 / Twitter

伝達・理解・認識

histric

histric-1

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「事実は人の考えを変えることはできない。なぜなら「異なる事実を信じる」ということは、結局「異なる集団に属する」ということだからだ。ある人の考えを決めるのは、その人が所属する集団である。これはまさに、アッシュの実験を思い出させる。 https://t.co/vHp38tL66z」 / Twitter
Why Facts Don’t Change Our Minds
Ryo Chikazawa | Autify CEOさんはTwitterを使っています 「NetflixのNo rules rulesはすごい良い本だと思うけど、最終章のCulture gapの話がずっとしっくりきてなかった。自分もいろんな国の人と働いてきたけど、そうかな?でもそうじゃないことも多いよね?と言う気持ちが強く、モヤッとした違和感があったけど、その正体がようやく分かった。」 / Twitter
Ryo Chikazawa | Autify CEOさんはTwitterを使っています 「これまで色々な国の人と仕事してきて、当たり前だけどコミュニケーションは十人十色。もちろん育った国の文化的な影響もあるけど、性格も大いにあるわけで、その違いを単純に国の違いと結論付けるのは、短絡的でしっくりこないということだった。国で見るんじゃなくて個人で見ようよと。」 / Twitter
MasaTamさんはTwitterを使っています 「英語圏の人達が主張が強いという印象は、主張が強いと言うより、情報が100%伝わるわけじゃないという前提で話してるということな気がする。伝わってないと思ったらI meanで噛み砕くし、paraphraseで違う表現したり。例も挙げるし、一つかそうでないかも明確にする。」 / Twitter
チェシャ猫さんはTwitterを使っています 「ちなみに実装コスト以前の問題として、「ロジックに誤りがないとはどういうことか」を人間が認識するところがボトルネックになりがち。訓練されていない人間は本人が思っている以上に、頭の中にある仕様を検証可能な形で表現することができない。」 / Twitter
satさんはTwitterを使っています 「丁寧に書くと「冗長」、簡潔に書くと「説明不足」、詳細に書くと「難しすぎる」、わかりやすく書くと「わかった気になるだけ」と誰かしらは言うので個々の評で一喜一憂してたら身が持たない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「東証会見について、記者の質が低いって怒ってるエンジニアの人たちの気持ちが正直わからない。だって非専門家だよ? わからないことを確認するのは、記事を書く上で記者の義務だよ。社内でも、営業とか新米の人が理解しようと質問してきたら、そうやって怒ってるの?って思う」 / Twitter
古川英光(やわらか3Dプリンターサイエンティスト)(Hidemitsu Furukawa)さんはTwitterを使っています 「「なぜかが分からないと先に進めない人」と「役立つことが分からないと先に進めない人」。 私は理学部と工学部の両方の経験がありますが、前者が理学部型、後者が工学部型、みたいに思います。 良し悪しではなく「思考回路」の違いですね。 https://t.co/6SQiW7INl1」 / Twitter
若者の「それ、何の役に立つんですか?」に隠された驚きの事実(幻冬舎ゴールドオンライン) - Yahoo!ニュース
nishio hirokazuさんはTwitterを使っています 「「正解が書かれたものがどこかにある」という思い込みを持ってる人はそれを得ようとするが、経験者は「しばしば世の中のどこにも正解が書かれたものが存在しない」と思ってるため自分で正解を導く方法を教えようとする。魚を得たい人に釣りの仕方を教えるので、魚を得たい人が不満に思うのは当然。」 / Twitter
Sho YokoiさんはTwitterを使っています 「知的誠実さは居直り根性でもないし自主的な勉強の放棄の免罪符でもないよね。 離乳食のようなイントロが尊ばれ、本文に数式が一行でも入ると「わからないからもっと簡単に説明してほしい」とか「わからないけど難しいことしていて凄そう」とか宣うパーソンが散見される領域に居るからなおそう思う。」 / Twitter
Sho YokoiさんはTwitterを使っています 「伝える側がその説明を分かりやすくするために工夫をこらすことが大切なのと同様、伝えられる側も新しいアイデアなり概念なりを理解するために脳を絞る必要があるに決まってるだろ。「私にも分かるように説明して」は分かるための努力をし続ける者だけに許される発話。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ノートは書き写すんじゃなくて、自分の再発明を書き下す。再発明しない限り理解に達してない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングもそういうところがあって、ライブラリを使ってるだけで再発明しないようだと次の段階に進めない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「言語の(最新の)機能をちゃんと活用した書き方とか、何とか指向とか何とか原則にきちんと従った書き方とか、そういうのを意識しているせいで、コードが不必要に難しくなってしまっているのをよく見る気がする。いいコードというのは別にそういうものではないと思うんだけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「難しいことをわかりやすく説明している文章みたいに、いいコードというのは、普通に読んで「なるほどわかりやすい」となるものだと思う。何とか原則に従っているかどうかみたいなのはどうでもいいし、あんまり最新の馴染みのない書き方をしても読者を置いてけぼりにするのでよくない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「他の人が自分のコードを読んでわかりやすいと思うのかどうかが唯一の重要なポイントで、それ以外のことはそれを達成するためのヒントにすぎないと思うんだけど、なんか手段と目的が逆転しているのをよく見る気がする。」 / Twitter
質の高い技術文書を書く方法 - As a Futurist...
7594591200220899443さんはTwitterを使っています 「「これまでに体験した最も難しかったバグ」とは即ち「当人がバグと認識できる程度には簡単だったバグ」のことである。世の中には人類の精神ではどうにも理解できないことというものは数知れず存在する。問題が起こるというのと問題が認識できるというのには思っているよりも密接な関係がある。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「そもそもQiitaとかに書いてある話のいくつかは (参照が多くても) 間違った情報だったりするし、そもそも自分が困っているissueはそもそも英語でもWebで見つからない話なので、「初心者が技術記事書くな!」って話、誰が言ってるの?」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「人間の脳の記憶力から考えれば、文書でどこかに残すというのは正しいと思うし、それが間違った話でもいいと思うんだよね。問題は、それを見つけてきて検索結果の上位に置いてしまう検索エンジンではと。Google以前のAltaVistaとかの時代と変わらなくなってる」 / Twitter
++C++; // 管理人: 岩永さんはTwitterを使っています 「情報発信してみたいと思ってる人へのアドバイスとして言っておきたいの、「人に見られてる意識持ってやると自分の知識の延びもいいよ」、「何言われても『うるせー、だったらお前が書け』と思っとけ」、「何を見ようと『検索出るのこれだけかよ、だったら俺が書く』と思っとけ」の3点。」 / Twitter
++C++; // 管理人: 岩永さんはTwitterを使っています 「「だったらお前が書け/俺が書く」の行きつく先としてやっぱ技術文書もGitHubとかでpublicリポジトリ管理して静的サイト生成とかする方がいいんだろうなぁと思うんだけど、そうすると必要なのはレビューとかコミュニティマネジメントとか、より大変でできる人少なくて報われにくい仕事になるのよね。」 / Twitter
技術記事を書く人を大事にしよう
技術記事アウトプットの一事例
「仕事のコード」を残す際のチェックリスト|Uchio Kondo|note
basic-operatability-checklist/ja at master · udzura/basic-operatability-checklist

江崎貴裕 | infonerv inc.さんはTwitterを使っています 「「理論・ロジックに頼って分かりやすい文章で(抽象的に)説明する」という方針と 「興味深い具体事例を多めに入れて面白く読ませて帰納的にも理解させる」という方針 があるとすると、後者はあまりやったことなかったけどこれはうまく使えればかなり強力な武器になりそう。」 / Twitter
池田紀行@トライバルさんはTwitterを使っています 「『本当に耳を傾けるべきは「プロのアドバイス」と「素人の感想」であって、最も耳を傾けてはいけないのは「プロの感想」と「素人のアドバイス」である』は本当に真理。さらに言うと『耳を傾けるべきは「ジャーニーのゴールに到着した人」と「途中で離脱した人」であり「無関心の人」ではない』とも。」 / Twitter
池田紀行@トライバルさんはTwitterを使っています 「マーケティングが仕事の人は自分の思考や発言が「個人の感想」なのか「プロとしての考察」なのか相当意識して使い分けないと大半が個人の感想になりキャリアが詰む。回避するには目や耳に入る具体を抽象化して本質を抽出する癖をつけなきゃならない。逆に言えば歳を取ったマーケターの仕事は抽象化のみ」 / Twitter
jicchoさんはTwitterを使っています 「「頭がいい人はバカにも分かりやすく話せる」は偽で,「頭がいい人はバカにもなんとなく分かったような気にさせることができる」が真じゃないかな」 / Twitter
高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「わかりづらさから逃げたほうがいい場合とマジメに立ち向かわないとならない場合は両方あり、どっちも大事」 / Twitter
羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「エンジニアの人、言葉の厳密さにこだわるけど、事象を正確に記述しているかだけ気にして、ユーザーに正しく伝わるかに頭が回ってないこと多い。複雑な文章(0.5秒以下で判断できないもの)は、ユーザーは読み飛ばすので、100%正しい記述も、伝わるのは 0%になる。書いてないのと同じ。伝わってなんぼ。」 / Twitter
高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「エンジニアが用語の厳密さに敏感なのは、「細かいことより伝わることが大事」とおっしゃる人に仕事をひっかき回された(かつそういう人は難しい話になるとサッサといなくなる)トラウマがあるからじゃないかな。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「以前は人格攻撃をしていないのに、なんでこの人が非難されているんだろうと思ったこともありましたが、しかし、相当な訓練を積んでも、なお表現に乗っかる「きつさ」は受け手としての私も感じてしまうことがある。 なら、表現を工夫することを放棄していいわけじゃないよなあと今は思っています。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ただひたすら好きなものについて雑談するだけの場にするのなら「皆仲良く」はそこまで難しくないかもしれませんが、そこまで行くと趣味についてすら語れない気がするんですよね。趣味についてこだわりがある人だっているわけで、そこで対立が発生することだってありますし。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近ようやくはっきりと悟れたのは、たとえ人格攻撃をしなくても端的過ぎる言い方やある種の断定系な言い方は「きつく」感じられてしまうので(これはおそらく相手が音声的に言葉を再生するため)、特に相手の顔が見えないインターネッツランドでは柔らかい言い回しの重要性は高いということ。 ↓」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「“おまけ2:試行錯誤の様子は、わかりにくいからブログにも出てこない” とあるけど、むしろ逆で、だからみんなウェブ検索するときに "-qiita" するようになってしまったような https://t.co/jrX8C46sZA」 / Twitter
わかりやすい説明をすると「結論を理解する労力」が「その結論を導き出した労力」と誤解されるときがある|柴田史郎|note
keiichiro shikano λ♪さんはTwitterを使っています 「お仕事では、話の本筋はきれいに見せつつ、試行錯誤の仕方も伝えられるようになることを目指して工夫しております」 / Twitter
mod_poppoさんはTwitterを使っています 「俺のブログは鬱陶しくならない程度に試行錯誤の部分も書いてるつもりだけど、どうかな(純粋に知識を伝える記事のつもりで書く場合は枝葉末節は省くけど)」 / Twitter

入門書

ぱそほし(kzm)さんはTwitterを使っています 「いやそういうことじゃなくて、シェルだったり、アプリのインストールの方法だったり、インストールしたアプリのコードの読み方だったり、あるいはOSの機能(TCP/IP、ドライバ、DLL、メモリ、プロセス管理)だったり、GUIアプリケーションだったり、サウンドだったり、そういうのなんですよね https://t.co/xuUTaw9MZ1」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「プログラミング入門書を読んでも、一般的に知られているソフトウェアの作り方みたいな事が書いてない」とありますが、プログラミング言語の処理系もまた「一般的に知られているソフトウェア」の一つなので、プログラミングの入門でプログラミング言語を作ればいいんですよ。 https://t.co/ompL0KjN6l」 / Twitter
プログラミングというかITが理解できない。
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「初心者向けプログラミングの教科書は間違っている。ほとんどは「型」「変数」「演算子」などを順に教えていくが、なぜそれが必要なのか、どのように役に立つのかを教えていない。 https://t.co/5mF48BM3NG」 / Twitter
Teaching how to code is broken
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、プログラミング入門本で「なぜ変数なんてものが必要なのか」を真面目に説明している本を見たことがない。どれもいきなり「変数というものは容れ物で...」的な説明から始まる。おそらくほとんどの教員は、そんな疑問を考えたことがないのだろう。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@mootastic 関数型言語を入門に使う場合なら、「値/式を参照しやすようにつけておく名前/ラベル」と説明されることが多いと思います。元の式に置き換えても意味は変わらないけれど、長くなるからラベルで済ませると。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「@anohana ぼくも手続き型言語なら、おそらく最初に簡単なフローチャートというか、計算グラフ的なものから始めると思います。それを言語化したものがプログラムであると。」 / Twitter

用語・訳

てらモス♋️さんはTwitterを使っています 「個人的には専門がちょっと違うだけで専門用語の使い方結構大きく変わりがちなので、正確な議論をするときは一つ一つ毎回定義して使え派だよ(´・ω・`)」 / Twitter
みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)さんはTwitterを使っています 「IT界隈の人たちは楽屋ノリで「不正」って言葉をカジュアルに使いすぎ 世の中的にはほとんど「違法」と同義だから「不正な入力です」とか画面に表示しちゃダメだよ」 / Twitter
chikoskiさんはTwitterを使っています 「recursiveを帰納と訳すこともあるのか」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「サーバーレスの-lessっていうやつ、個人的には、countlessの-lessと同じ意味合いだと思うと、むしろ、クラウド感があってよい。ないっていう意味じゃない。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「そうそう、あと WikipediaをWikiと略すのとか、 無限スコープ、動的エクステント を 動的スコープと略すのとかも取り締まるべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債って言葉がなんか好きではなくて、実際にはコードの老化が正しいと思うんだけど。X年でやりかたとして正しかったこと (ビジネスも含めて) がY年で正しくない(もっといい方法がある)ってことでしかないと感じるんだよね、みんな言ってること」 / Twitter
Ignacio Enriquez GさんはTwitterを使っています 「@makoto_kato @piro_or 老化は技術的負債の原因の一つだと思います。 最初から技術的負債はあると思います。メンターや経験者が近くにいなくて生まれる。または技術的な理由以外で(政治的なビジネス的な狭いビジョン的な理由)Y年数立たなくても直ぐに生まれると思います。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「それはさておき、プログラマかエンジニアか、というのは割と国内だけの話で、英語圏だとエンジニアという大カテゴリの中に開発者(デベロッパ)やSRE(サービスリライアビリティエンジニア)やCSE(カスタマーサポートエンジニア)といった様々なエンジニアが存在する、と理解するのが普通だと思う」 / Twitter
Watching_Big_BroさんはTwitterを使っています 「これは記事化する際の用語選択のためのすり合わせなんだよな。非専門家である読者に、記事では専門用語を使わず事象を説明するにあたり、不適切な言い換えになるリスクを避けるために当事者の言葉を求めている。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「日本語で」の質問について。実際専門用語に頼った説明は問題を生みがちで、今回も「フェイルオーバ」をactive-standby構成の説明を参考にしたのか「予備機に切替」という表現を使っている報道がある。自分の言葉で再説明する、というのはそういう問題を潰す効果がある cf. https://t.co/0m1aWv3ja8」 / Twitter
Kazuho OkuさんはTwitterを使っています 「障害が発生した記憶装置を切り離したあと、なぜ再起動が必要になったかについて明確な回答(うまく動作しなかったタスクが既に発生し、それらを確認修正するより再起動のほうが早い)を引き出した質問が「横文字を使わないで説明して」だったのは面白い」 / Twitter
伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
ロボ太さんはTwitterを使っています 「「言語仕様警察」のことを英語で「language lawyer」と呼ぶのか……SOにもタグがある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「language lawyer、Jargonにも載っている由緒正しい単語ですからね」 / Twitter
Miura HidekiさんはTwitterを使っています 「世間一般で使われる期待値って平均と言う意味ではなく文字通り、期待される値(取らぬ狸のってニュアンスの)という意味で使われることが多くてそう言う使い方だとちょっとイライラする」 / Twitter
(ISC)² Japan Chapter - 資料
Miura HidekiさんはTwitterを使っています 「そういればLinuxとUNIXを厳密に区別するくらい言葉に厳密な人たちが、JITコンパイラという意味でJITと表記しても何も文句を言わないのだろう?」 / Twitter
Tadachika OkiさんはTwitterを使っています 「@miura1729 関心について、 OS の方がコンパイラより強く、概念に対する解像度が異なるということではないでしょうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@salmoncrawler 多分そう言う話だと思います。正確にはOSの方がコンパイラより概念に対する解像度の高い人が多いと言うことですね」 / Twitter
Shinya KatoさんはTwitterを使っています 「めんどくさいオタクなので「この言葉はこの規格でこう定められている」とか「このライブラリのドキュメントではこういう機能だと書かれている」とか「特に明確な定義はないけれど、こういう文脈では一般にこういう意味で使われることが多い(と思う)」は区別したいんだよね」 / Twitter

編集者が必要

keiichiro shikano λ♪さんはTwitterを使っています 「これはポジショントークですが、散文をGitHubなどで管理するうえで重要なのはPull Requestやtextlintといった仕組みの有無ではないということがまた明らかになってしまったな…」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「つまり編集者がいないと難しいのですよ(執筆者が編集者でもいいけれど)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「もうちょっと具体的な話はこのへんで。 https://t.co/YSkxsbWcBB」 / Twitter
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
keiichiro shikano λ♪さんはTwitterを使っています 「「俯瞰的な修正の作業は、かなり大きな範囲全体でコミットとして意味を持つので、他でコミットされたりPull Requestされた局所的な文章の修正をこのコミットの内容と調整するのはけっこう厄介です。」」 / Twitter

校正

keiichiro shikano λ♪さんはTwitterを使っています 「これらの指摘をみた人がどう直すかが気になる。たとえばこの文の「思います」を断定にすればいいわけでないし、「サーバサイド」は文中で見えてる限りでは揺れてないし、「無い」が指摘されずに「例えば」が指摘されているのが気になるし(個人的には後者は許容できるが前者は許容しない)」 / Twitter
suin❄️ TypeScriptが好きさんはTwitterを使っています 「textlintという、日本語のMarkdownを校正できるツールがあるのですが、これをVS Codeと組み合わせると、めっちゃ便利でした✨ あまり意識してなかった深いところまで、いろいろ教えてくれます。 ブログや社内文書を書くときなどに、一回textlint通すとよさげ。 https://t.co/BKnoBYi4yR」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「別のルールを使えばいいという話ではないと理解している。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「ルールベースの文章校正ツールに対する考え方をそのうちまとめたいと思っているのだけど、うまく言えないんだよなあ」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「文意はシンタックスでだいたい決まる」としても、「書き手が意図している内容」と「シンタックスで決まってしまう文意」との溝を、当のシンタックスから取り出せるかどうかといったら、たぶん無理ではないか。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「一方、プログラミング言語のコードだと、「シンタックスで決まってしまう文意」はコンピューターで計算できる解釈であり、書き手の意図もまたコンピューターにおける動作として形式化されうるので、シンタックス自体を検査する意味が多分にある。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「たぶんこんな感じの断絶があると思っている」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「そんなわけで、プログラミング言語におけるlintのように使うこと(≃質の悪い文章のパターン発見に使うこと)にもやもやが残る、という感じなんだと思う。単なるシンタックスエラーの発見として使うぶんには、文章校正ツールは間違いなく武器になるんだけど。」 / Twitter

Knuth reward checks

Sophie AlpertさんはTwitterを使っています 「Knuth check https://t.co/am9fQjV57d」 / Twitter
クヌース賞金小切手 - Wikipedia
Knuth reward check - Wikipedia

何をやってきたか、これでいいのか

Kazuho OkuさんはTwitterを使っています: 「うらやましいなんて話じゃなくて、自分たちは何をやってきたんだ、これでいいのか、ってこと」 / Twitter
市川 真一さんはTwitterを使っています: 「. @kazuho さんが出張で使ってる航空機の運航を支えるシステムや、病院の運営に必要なシステムをやってきました。国のためになっているという自負はあります。私個人には、これで良いとしか言えないのです https://t.co/v3lGCi3CMX」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@tenpoku1000 社会を支える仕事をして「これで良い」と思えるのはすばらしいことだと思います。いろんな関わり方があると思うので」 / Twitter
航空:航空交通管制情報処理システム - 国土交通省
cab20181001-2.pdf
スライド 1
Wayback Machine

トレードオフ・動機

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそもトレードオフ(とモチベーション)を考えた結果ならどちらもアリだよなぁ。 単に「今時古い」的な思考停止で判定する人見るとオイオイと思うことも。」 / Twitter
Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年前、本業そっちのけでやったのが今になって役に立ってるから、むしろお勧めしたい。」 / Twitter
MiyahanさんはTwitterを使っています 「技術力がない人ほどDNSサーバーやメールサーバーを自前で立てたがる現象に誰か名前をつけてほしい。」 / Twitter

美意識

渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「B1から配属可能な研究室の制度でやってきて感じることは、研究室で研究問わずまずは好きな活動やってもらって、教員側がそれを観察して、その学生がこだわる部分や強そうな部分を発見し、テーマからこういうのやってみたら?っていうマッチング測るのが良さそう。というのが見えつつ。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「まずはディープな自己紹介みたいなことも大事だなと。どういう環境で生きてきたか、どういう遊びをしているのかとか。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「ちょっと何かつくると、人によってこだわる部分が違う、つまりそういうことが美意識なんだと思うん。で、それって自分だと気づきにくかったりするんだけど、教員側は多くの学生を見ているから、すぐわかったりする。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「教員のエゴが強いと、その美意識は潰されてしまうけどね。だってそれってどうでもいいことって思うわけでしょう。だから逆に積極的に潰していくタイプの人もいるんでしょうけど。」 / Twitter

競争ではない・正解のない世界

yhara (Yutaka HARA)さんはTwitterを使っています 「一方で狂人たちがどう考えているかというと、彼らは別に競ってはないのですよね。プログラミングの世界には無限に「やること」があるので、みんなそれぞれ違うことをしている。競争ではない」 / Twitter
古都ことさんはTwitterを使っています 「プログラマ、無策に愚直に上目指そうとすると「仕事でプログラミングやってるし休憩時間は気分転換のプログラミングやってるし退勤後は息抜きのプログラミングやってるし休日は趣味のプログラミングに全ぶっぱ」みたいな狂人との電流金網デスマッチが始まるので、自分なりの目標と適度な割り切りが必要」 / Twitter
Miura HidekiさんはTwitterを使っています 「もうちょっと遅く生まれて未踏だセクキャンだ外資系IT企業だと選択肢のある世界が良かったなと思っていたが、「正解」のある世界は私には不利なのでまだ正解の定まっていない私の世代に生まれたのはよかったのだなと気づいた」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、正解がある世界は安定するが革新的な進歩は無くなる。今後のITの世界の明日はどっちだ」 / Twitter

簡単に使えるようにする

7594591200220899443さんはTwitterを使っています 「プログラムを書くのに計算機科学の素養が必要かどうかで言うと現状必要なのは事実だが必要でなくしていくべきです。おばちゃんの作ったキッチュなアップリケとかが人類史に決定的なインパクトを与える事ができるようになるべく専門家以外をエンパワーしていくのが我々の仕事である。」 / Twitter
7594591200220899443さんはTwitterを使っています 「これ」 / Twitter
7594591200220899443さんはTwitterを使っています 「結局金突っ込んだやつが順当に勝つみたいなつまらない世界をやりたくてwebやってるんじゃなかったはずだろ。今よりももっと間口を広くすべきです。素人が適当に作ったもので相応に戦えるべき。」 / Twitter

圏論入門

七誌さんはTwitterを使っています 「話題の『圏論入門』を入手しました! https://t.co/fWei06kAEM」 / Twitter
https://twitter.com/7shi/status/1297189240531382272
https://twitter.com/7shi/status/1297474094892376065

統計学:認識論・主義

Ohkubo YusakuさんはTwitterを使っています 「前半は基本的に同意で、数学と論理に基づく理解を目指すのが健全な統計学かと考えます。 ところが、残念ながら「“科学的”に“常識”であるとはどのようなことか」という点が科学者の間でも合意されていないという深刻な事実が見過ごされている。これこそ科学哲学という領域で研究されていることです。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 私は * 数学的道具への理解 * 通常の論理的推論 * 科学的な常識 * 自分自身の専門分野固有の知識 を組み合わせて統計学を使える人が増えれば素晴らしいことだと思っています。要求が必要最小限で穏健な立場だと思う。 「主義」の重要性を語る人達は危険な過激派に見えて仕方がない。」 / Twitter
Dr. Dr. Ken McAlinnさんはTwitterを使っています 「統計学はそれ(数学)を通して世界を認識することだ、ということを忘れてしまうと「主義」の意味もわからなくなってしまう。大事なのは世界を認識することであって数学ではない。」 / Twitter
Jun OtsukaさんはTwitterを使っています 「これらの「主義」は数理統計学的学説ではなく、数学的理論が経験的事象の探求になり得るのかのはなぜなのか、というメタ的な関心についての学説だという理解です。だからベイズ/頻度「主義」の外延とベイズ/古典「統計」の外延は必ずしも一致しません(し、実際にしないと明記してる)。」 / Twitter
伊津野 英克さんはTwitterを使っています 「例の論争を見てると、学者 or 研究者と言えども内なる信念からは逃れられないんだなぁ、と。ボルツマンは原子の実在性を巡って論争の果て自殺に追い込まれたし、相対論、量子論、確率概念と専門家は自身の科学観が揺るがされる度、強く反発してきた。」 / Twitter
伊津野 英克さんはTwitterを使っています 「どっちが正しいと言うつもりはないけど、争点が数学や理論、実用性とかそういうところにないことを冷静になって認識した方がいいんじゃないかなぁ、と。主観ベイズの争点は単に主観や主義の存在を受け入れるか否かだけに思えるのよね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「最近読んだ「外来種は本当に悪者か?」なんてまさにそうで「外来種は悪である」という信念によっていかに学術的議論が歪められてるのか、って話だもんね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「現状を踏まえれば、すでに統計学は主義も主観性も受け入れているけど、「でも、あなたは受け入れないんですか」という状況だったりするわけだよね。」 / Twitter

なるべく手作業を避けて動画資料を作る - YouTube
国立国会図書館サーチ(NDL Search)
【無料】PDFをWordに変換 - Adobe 公式 | Adobe Acrobat
LibreOffice Writer のショートカットキー - LibreOffice Help
Libreoffice Writer ページ移動:ubuntu & LibreOffice:So-netブログ
Text to Speech | Microsoft Azure
ビジネスインテリジェンスおよび分析ソフトウェア
Overleaf, オンラインLaTeXエディター
ドット絵エディター
Mozillaが有料サービス「MDN Plus」を正式発表、月額5ドルから | OSDN Magazine

翻訳

DeepL翻訳
Linguee | Dictionary for German, French, Spanish, and more
Google 翻訳
Google翻訳コミュニティの間違った使い方 - アラフォー女子大生キャリアカウンセラー日記
GoogleのDocument Translationが一般提供へ
PDFもウェブページもサクッと翻訳可能な「みらい翻訳」公式拡張機能を使ってみた - GIGAZINE
英語翻訳 - エキサイト翻訳
Grammarly: Free Writing Assistant
OmegaTのHTMLファイルフィルターを移行した話 - 水底の血
Firefoxにローカルで動作する自動翻訳機能が追加される - GIGAZINE
Software – Bergamot
chikoskiさんのツイート: "GitLocalize使ってみてるんですが、結構MLによる自動翻訳の精度が高くて驚いてる。https://t.co/GNzX93qosX ローカライズ前のファイル名とローカライズ後のファイル名の対応ルールを、もう少し柔軟にかけたら、もっといいのになー、って思いながら、1つずつファイルを追加してる。"
GitLocalize – Continuous Localization for GitHub Projects
chikoskiさんのツイート: "新規の翻訳は本当に楽でいい。更新された時の差分表示がわかりやすいといいなあ。MDNは差分の把握が本当に大変で、そのせいで原文の更新の反映作業をやろうって気になかなかなれずにいるし…"
chikoskiさんのツイート: "GitLocalizeでローカライズ→GitLocalize場でレビュー→GitHubへpull request送信→GitHubでマージ、とういう流れ。自分でやった翻訳と、MLによる翻訳は別のコミットとして扱われている点が興味深かった。よくできてるな。"
腾讯翻译君 - 在线翻译
オープンソースのコミュニティにNICT「みんなの自動翻訳」を提供 | NICT-情報通信研究機構
英語論文読みを爆速にする、超便利ツール集 - Qiita
PDFやWord、Excelファイルを読み込み、レイアウトなどはそのまま内容だけを翻訳。Google Translation APIに新機能 - Publickey
小原圭司さんはTwitterを使っています 「PDFの英語論文をDeepLを使って日本語に訳して読んでいる方へ。Shaperという便利なサイトが改良され、PDFをコピペした際に自動で邪魔な改行記号を削除してくれるだけでなく、ワンクリックでDeepLのサイトに貼り付けることが可能になりました。素晴らしいサービスに感謝です!https://t.co/9WhVG7zqiu」 / Twitter
Shaper
Microsoft Translatorが100を超える言語と方言をサポート
Hiroshi MatsuiさんはTwitterを使っています 「OCR化されてない論文をDeepLにかけたいとき、Sensible Pasterっていうapp storeから無料でいれられるツールがめちゃくちゃ便利な件。自炊した本読むときにも使えるな…。 https://t.co/EopC7jzukj」 / Twitter
JIROさんはTwitterを使っています 「これやると英訳がずっとやりやすくなります! 英訳するときは、何を伝えたいのか、どう伝えたいのか、が最優先なので元の日本文には基本こだわりません。」 / Twitter

Wayback Machine

Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
Internet Archive: Search Engine
インターネット上のあらゆる情報を記録・保存する「インターネット・アーカイブ」はどのように運営されているのか? - GIGAZINE
ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? - GIGAZINE
「インターネット・アーカイブのウェイバックマシンが記録した過去のウェブサイトの情報」に証拠能力があると裁判所が認める - GIGAZINE
Cloudflareとインターネットアーカイブがウェブの信頼性をさらに高めるため提携 - GIGAZINE
新型コロナウイルスの影響で「インターネット・アーカイブ」の通信量が秒間60ギガビットに到達、月間通信量は20ペタバイト以上 - GIGAZINE
フェイクニュースと戦うインターネットアーカイブの取り組みと問題 - GIGAZINE
The University of Tokyo - General Library : Free Texts : Free Download, Borrow and Streaming : Internet Archive
General Library | University of Tokyo Library System
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8gek9rrKSO Internet Archiveにstackexchangeの情報をmachine redableなXMLでダウンロードできるとは知らなかった。日本語サイトの情報もあるけど全体から見ると本当に小さいな」 / Twitter
stackexchange directory listing

検索

その他

AndroidのEUにおけるデフォルト検索エンジン指定に批判多数 | TechCrunch Japan
Lumen
DuckDuckGo — Privacy, simplified.
HotBot - The Private Search Engine
ウェブを検索
Qwant - The search engine that respects your privacy
Yandex
GMX International - Search Engine
Seznam – najdu tam, co neznám
Givero - Search the web to raise money for good causes.
PrivacyWall
Ecosia - the search engine that plants trees
元Google幹部による広告ゼロの検索エンジン「Neeva」がスタート、検索エンジンとして異例のサブスク方式を採用 - GIGAZINE
Brave Search

Searchfox

Searchfox
bgrins/searchfox: Mozilla code search web site
Searchfox | Bill McCloskey's Blog

日本

国立国会図書館デジタルコレクション
国立国会図書館インターネット資料収集保存事業
サクラチェッカー | やらせ・サクラレビューを見抜けるレビューチェックシステム
特許情報プラットフォーム|J-PlatPat
全国法人リスト - 全国約500万件の法人企業を一覧で検索

GIGAZINE

Microsoftが過去14年間・2億5000万件分のカスタマーサービスの記録をネット上に流出させてしまったことが判明 - GIGAZINE
Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開 - GIGAZINE
Dataset Search

Twitter

Twitterの高度な検索
Takashi OkumuraさんはTwitterを使っています 「有益な情報。弊アカウントの過去ツイセレクションはこちら。面白い。歴史も感じる。 RT 過去にどんな発言をしてきたアカウントなのかチェックしたい時は、"from:user min_retweets:100"とすると、過去に100以上RTされた発言がざっと読めて、だいたい把握できる https://t.co/cGFZer4K0G」 / Twitter
Twitter検索コマンド全まとめ。日付指定やアカウント内検索など23個 -Appliv TOPICS
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「死につつあるGoogle検索。人々は通常の検索ではもはや満足いく回答が得られないので、Redditなどのサイトを指定して検索している。あるキーワードでは検索結果の一覧がすべて広告で埋め尽くされる。またGoogleは"賢く"キーワードを推測するため、もはや正確な答えが得られない https://t.co/3m5HzduHL9」 / Twitter
Google Search Is Dying | DKB

GitHub · Where software is built
Stack Overflow - Where Developers Learn, Share, & Build Careers
everyRFC
【本日のできるネット】【これは便利!!】Googleで「ライセンスフリー画像」を検索できるの知ってる? - PC Watch
Google Scholar
Google 検索オプション
Masaki HaraさんはTwitterを使っています 「Google検索、日本語の内容を優先して表示してほしいときと英語の内容を優先して表示してほしいときがあるんだけど、ユーザー設定とかじゃなくて一時的に変えられないのかな」 / Twitter
くりんぺっとさんはTwitterを使っています 「@qnighy URLに&amp;hl=enを付けるとかでできませんか」 / Twitter
Search Console - ホーム
Dataset Search
Bing
researchmap
Welcome | Computer History Museum
メインページ - ウィクショナリー日本語版
Mapbox
5star opendatamap
TIMEMAP
BinaryEdge
AWS S3の膨大な公開データを検索できるQuilt Dataが脱ステルス、無料利用も可 | TechCrunch Japan
Quilt is a versioned data portal for AWS
ルーターのIPアドレスや初期パスワードなどを検索できるウェブサイト「Modemly」を使ってみた - GIGAZINE
ググり力、それはエンジニアには必須の能力である - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「URLと勘違いされちゃう問題は頭に ? を付ければいいんですよね確か。あと、普通に「Visual https://t.co/fyVQ1qvWoo」と正式名称で検索すればいいのでは... / 1件のコメント https://t.co/kMvyu2B7jy “「https://t.co/f7A93uzHZm」とかいう言語 - Qiita” https://t.co/dpDsw7PEDQ」 / Twitter
「VB.NET」とかいう言語 - Qiita

図形・数式

draw.io
VSCodeでDraw.ioが使えるようになったらしい! - Qiita
Free AWS, Azure, GCP, Kubernetes Architecture Diagram Tool | CloudSkew
クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 - Publickey
AWS Perspective | Implementations | AWS Solutions
AWSがアーキテクチャ図を自動作成できるソリューション実装「AWS Perspective」を公開 - GIGAZINE
AWSがダイアグラムエディタの開発に便利なライブラリ「Diagram Maker」を公開 - GIGAZINE
最近のアイコンが似通ってきている問題 | デザイン会社 ビートラックス: ブログ freshtrax
最近のロゴが似通ってきている問題 - 第2弾 | デザイン会社 ビートラックス: ブログ freshtrax
無料&YAMLで豊富なアイコンからネットワーク構成図が書ける「drawthe.net」レビュー - GIGAZINE
Excalidraw | Hand-drawn look & feel • Collaborative • Secure
Diagram Software and Flowchart Maker
えるエルさんはTwitterを使っています 「ひたすらMatplotlibでいろんな図を作る奥義集みたいな書籍が海外で出版され、実装と本の内容がWebで公開されているようです https://t.co/bf9UYD0uK1 https://t.co/GoX4Ph2zE8」 / Twitter
rougier/scientific-visualization-book: An open access book on scientific visualization using python and matplotlib
数式用字体
MathWills - 数式に特化した情報共有サービス
数学特化の情報共有サービス | Mathlog
Google Cloud純正のシステム構成図作成ツールが登場 作図通りのデプロイも可 無料 - ITmedia NEWS

PDF 等

O'Reilly Japan

jr4qpv/GNU_Make_3rd_jp: The GNU Make 3rd edition PDF of Japanese.
O'Reilly Japan - GNU Make 第3版
O'Reilly Japan - Real World HTTP ミニ版
Real World HTTPミニ版 - Google スライド

情報Ⅱ

データ分析のはじめの一歩を無料で学べる 総務省監修の高校教材『データサイエンス・データ解析入門』がpdfで公開
Rejouiが制作した「高等学校における「情報II」のためのデータサイエンス・データ解析入門」の補助教材が公開されました | 株式会社Rejoui
高等学校学習指導要領の改訂のポイント - 1421692_2.pdf
【情報編】高等学校学習指導要領(平成30年告示)解説 - 1407073_11_1_2.pdf
https://www.stat.go.jp/teacher/index.html
https://www.stat.go.jp/teacher/model.html
https://www.stat.go.jp/teacher/learning.html
https://www.stat.go.jp/teacher/comp-learn-04.html

CS50x

米ハーバード大学のプログラミング授業 日本語訳が無償公開 誰でも聴講可 | ツギノジダイ
CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
LABOT Inc. | 株式会社LABOT
CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

機械学習

000607858.pdf
KOBA789さんはTwitterを使っています 「この言葉がかなり好き。もちろんこれは、まずはちゃんと勉強するということが前提なんだけれども。 「多くの場合ですね、理論が教えてくれるのはですね、よく考えればわかる程度のことなので、あんまり期待すると裏切られるんで注意してください」 https://t.co/bFJcXc9pGY」 / Twitter
裏口からのカルマンフィルタ入門 - YouTube
日本統計学会75周年記念出版
2021-3-3Open(S).pdf
国友直人のホームページ
えるエルさんはTwitterを使っています 「東大の講義で使われている量子コンピューティングの入門教材が公開されています https://t.co/y2s46VJ8En 基礎となる数理的な部分の丁寧な解説に加え,「4兆通りの足し算を同時に行う」等の量子コンピューティングの課題をPythonで実装する部分など,無料で参照できる資料としては最も充実しているのでは https://t.co/B0ZTISDkVP」 / Twitter
量子コンピューティング・ワークブックへようこそ! — 量子コンピューティング・ワークブック
技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
「数理科学」記事

セキュリティ

無料で読めるセキュリティ定期発行物のまとめ - 午前7時のしなもんぶろぐ
セキュリティ情報の集め方 ~しなもんの場合~ - 午前7時のしなもんぶろぐ
役に立つセキュリティ情報の宝庫! 「JPCERT/CC」発信の情報まとめ! - 午前7時のしなもんぶろぐ
脆弱性の情報収集! 「JVN」の見方を教えます! - 午前7時のしなもんぶろぐ
クラウドを支えるこれからの暗号技術
『OpenSSLクックブック』提供開始のお知らせ – 技術書出版と販売のラムダノート
セキュリティに関する情報源を整理してみた 2020年版 - トリコロールな猫/セキュリティ
2020年上半期に公開されたセキュリティ関連文書まとめ - トリコロールな猫/セキュリティ

Net

HTTP/3 explained - The book
「プロフェッショナルIPv6」- 窓の杜
LambdaNote/errata-professional-ipv6-1-1: 『プロフェッショナルIPv6』正誤情報
徹底解説 v6プラス | 日本ネットワークイネイブラー株式会社

GUI・組版

Ray Tracing in One Weekend Series
ロボ太さんはTwitterを使っています 「NVIDIAの研究者、Peter Shirleyが書いた「週末でレイトレーシングを(Ray Tracing in One Weekend)」という本がソース(C++)込みで完全無料公開されてる。すごい。続編「次の週(THE NEXT WEEK)」と、「残りの人生(THE REST OF YOUR LIFE)」もある。 https://t.co/eX2YJ1JHfl」 / Twitter
XML関連出版物トップ - AH Formatter V6
多言語組版について | 多言語フォント | モリサワのフォント | 株式会社モリサワ
コンピュータグラフィックス特論Ⅱ 講義情報ページ

Git・ファイルシステム

Git - Book
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア

論理・ソフトウェア

計算機プログラムの構造と解釈 第二版
SICP Web Site for the Japanese Edition
OpenDataStructures.jp
ソフトウェアの基礎
オンラインで入手できる数理論理学・数学基礎論のテキスト
導入 -
サークル詳細 | 海洋軟件 | 技術書典
free-programming-books/free-programming-books-ja.md at master · EbookFoundation/free-programming-books

Microsoft Japan Code Labs
ホーム
JOSYORI|IPSJ情報処理カタログ|情報処理の用語をわかりやすく解説
IDPro Body of Knowledge 日本語化プロジェクト | bok
Kazuho OkuさんはTwitterを使っています 「宣伝しとくと、ロングマン英英辞典は、約2000語の基礎語彙を使って全ての単語を説明していて、英語を英語のニュアンスで学ぶ際の決定版とも言われる英英辞典です。英和だと、どうしても単語の一対一対応になりがちで、文脈による言い回しに対応しづらいから、学習用として英英辞典が勧められる認識」 / Twitter
Longman Dictionary of Contemporary English | LDOCE
Online OXFORD Collocation Dictionary of English
Aho/Ullman Foundations of Computer Science
The Architecture of Open Source Applications
クォータニオンとは何ぞや?:基礎線形代数講座 - SEGA TECH Blog
基礎線形代数講座
2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
ミクシィの21新卒技術研修の資料と動画を公開します! - mixi developers
【全編無料】GoogleやAdobeなど実力ある講師が多数登場、マーケ・デザイン・プログラミング・ゲーム作成などが学べるオンライン学習プラットフォーム「Udemy」のおすすめ無料講座7選 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブ線型代数。内容は普通の線型代数の教科書だが、各所にある例は実際に値を入れて3Dで視覚化できるようになっている。 https://t.co/W2FyonfL9M」 / Twitter
Front Matter
ABAB↑↓BAさんはTwitterを使っています 「ワイが真の初学者の為の学習サイトを立ち上げたる! ってことで、まだGatsbyの初期設定の残り香があるけどテスト投稿。 モットーは、初学者に環境を用意させない。その場で試せる。練習問題で必ずコードを触らせる。ツイートでコード共有しやすく。 感想とか指摘をください https://t.co/zreGEngtGz https://t.co/Ut3cobMtf1」 / Twitter
Home | Gatsby Default Starter

論文

その他

【プレスリリース】アンモニアをクリーンで画期的な燃料に変える新しい触媒を開発 | 日本の研究.com
プラスチックを「食べる」酵素、研究室で偶然作成 | ナショナルジオグラフィック日本版サイト
遠山 祐典さんのツイート: "Nature公式、論文要旨の書き方。 授業でこれを扱うと国籍問わず大半の大学院生が知らなかったと言うので簡易和訳版を作成。 もちろん、Nature以外の論文にも流用する事が可能。 注目は、[結果]に使える文の少なさ(2~3文。全体の20~25%)。 和訳の修正案、大歓迎です。 英語版:https://t.co/RQEbeOWoNX… https://t.co/zdu9I9J24b"
2c_Summary_para.pdf
F1000とビル&メリンダ・ゲイツ財団、オープンアクセス出版のためのプラットフォーム“Gates Open Research”を2017年の第3四半期に開始 | カレントアウェアネス・ポータル
Gates Open Research
松田 栄治 Eiji Matsudaさんのツイート: "Nature Researchの松田と申します。このアブストラクトの書き方について、Nature日本法人の方で作っているPDFもありますので、よろしければご自由にお使いください。下記URLのp11となります。 https://t.co/7ze0gbfpCW… "
Yasunori GotoさんはTwitterを使っています 「作り方でもあるけど、論文のサマリの読み取り方でもあるよね。」 / Twitter
遠山 祐典さんのツイート: "ありがとうございます。 既にNature日本法人公式の日本語版があるとは存じあげませんでした。 公式版の方が、はるかに分かりやすいですね。 皆さま、こちらの公式版をお使い下さい。 Nature投稿案内: https://t.co/Nr1VZzaLjG… https://t.co/8u0eAdgbnV"
gta-2017.pdf
SIGのスポンサーになって、プログラミングの英語論文を読みまくろう! - Fight the Future
OS & システムソフトウェアの一流国際会議 - 品川高廣(東京大学)のブログ
工学系大学4年生のための論文の読み方
小川雄太郎さんはTwitterを使っています 「PyTorch Hubで各種メジャー論文のモデルをPyTorchで実行するためのデモコードが掲載されました 例えばYOLO v5は以下のページ https://t.co/6IrgskhHpK 有名モデルを使用したい場合は、このPyTorch Hubで検索して、使用方法などを確認するのが早そうです。 (リンク) https://t.co/EeNhpgj41j」 / Twitter
For Researchers | PyTorch
小川雄太郎さんはTwitterを使っています 「Papers with Codeに「Reproducibility Reports」機能(再現性レポート機能)が追加されました その論文内容を別の人が実装してみて、きちんと結果が再現できるかなどが今後報告される(できる)ようになります 論文内容をうまく再実装できないときの調べ先として、重宝しそうな機能です」 / Twitter
Papers with CodeさんはTwitterを使っています 「🎉 Reproducibility Reports are LIVE! Papers now link to reproducibility reports. Alongside code, this is a new signal for how reproducible a paper's findings are. Thanks to RC2020 participants, reviewers and ACs for their hard work! Example: https://t.co/wdm89qswKc https://t.co/EE6CkYNd8C」 / Twitter
Training Binary Neural Networks using the Bayesian Learning Rule | Papers With Code
Papers with CodeさんはTwitterを使っています 「You can find all the reproducibility reports for RC2020 on Papers with Code: https://t.co/NlLpIrL5At and on ReScience: https://t.co/LQihKp3y7p」 / Twitter
RC 2020 | Papers With Code
ReScience C
CiNii 論文 -  出版における言説構成過程の一事例分析:―「江戸時代の識字率は高かった」という"常識"を例として
論文に何を書くべきか→これだけは埋めろ→論文作成穴埋めシート 読書猿Classic: between / beyond readers
「Microsoft Edge 97」が安定版に ~学生・研究者に便利なコレクションの引用機能を導入 - 窓の杜
無料で論文をシンプルに管理できて引用文献リスト作成もワンクリックな高性能文献管理ソフト「Zotero」レビュー - GIGAZINE
文献管理をMendeleyからZoteroに移行した | κeenのHappy Hacκing Blog

欧文

arXiv.org e-Print archive
ACL Member Portal | The Association for Computational Linguistics Member Portal
AAAI Publications
Open Access to ACM Digital Library During Coronavirus Pandemic
ACM Digital Library
Home - Springer
Home | Microsoft Academic
jicchoさんはTwitterを使っています 「>RT これは知っておかないと最低限読んでもらえる英語論文は書けないと思う」 / Twitter
高橋 史 Fumito TakahashiさんはTwitterを使っています 「共著者が「英文校正を受けたのに査読者から英語の質を指摘された」と不満そうだったので、サバティカルのときに作った自分用メモを渡した。 年末年始に論文を書こうという方、ご笑覧ください。年始に執筆会やりたい。 https://t.co/koSG76i4Vs」 / Twitter

ResearchGate

ResearchGate | Find and share research
ResearchGate News
ResearchGate - Wikipedia
ResearchGate - Wikipedia
ResearchGate (リサーチゲート) | お役立ち情報ページ | レタープレス株式会社
研究者向けSNS「ResearchGate」で研究者間のつながりや議論はどう変わるのか | 英文校正と論文翻訳の医学英語総合サービス
ResearchGate 170万本の閲覧制限から見える著作権問題ー学術英語アカデミー
第303号 ResearchGateをめぐる動き(2) |ユサコニュース詳細 | 学術情報・論文作成支援【ユサコ株式会社】
ResearchGateによる無許可掲載 | エディテージ・インサイト

Abel Prize - Wikipedia
アーベル賞 - Wikipedia
数学ブレイクスルー賞 - Wikipedia
Breakthrough Prize - Wikipedia
ゲーデル賞 - Wikipedia
Gödel Prize - Wikipedia
ゴードン・ベル賞 - Wikipedia
Gordon Bell Prize - Wikipedia
チューリング賞 - Wikipedia
Turing Award - Wikipedia
フォン・ノイマンメダル - Wikipedia
IEEE John von Neumann Medal - Wikipedia

システム系論文の情報収集方法 - 睡分不足
CiNii Research
日本の研究.com
CiNii Articles - 日本の論文をさがす - 国立情報学研究所
J-GLOBAL 科学技術総合リンクセンター - 科学技術振興機構
J-STAGE トップ
JAC複製利用許諾システム |
Kenichi Asai
FrontPage - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
IEICE ソフトウェアサイエンス研究会 (SIGSS)
情報処理学会 プログラミング研究会
情報学広場:情報処理学会電子図書館
コンピュータ ソフトウェア
人工知能学会論文誌
情報通信学会誌
電子情報通信学会 基礎・境界ソサイエティ Fundamentals Review
電子情報通信学会 通信ソサイエティマガジン
情報学広場:情報処理学会電子図書館
無料で読める記事-情報処理学会
解説・論文等-コンピュータ博物館
トップページ|日本漢字学会(Jsccc)
JAIRO : Japanese Institutional Repositories Online
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「https://t.co/itM6vniDu5に掲載されている論文数が200万本を突破。成功の一方で、問題も抱えている。ArXivには分野ごとに提出論文の書式・分類を検査するモデレータがいるが、彼らの出身地は圧倒的に欧米で、論文数の多い中国・日本からのモデレータはほとんどいない。 https://t.co/6OtkSXjsS7」 / Twitter
ArXiv.org Reaches a Milestone and a Reckoning - Scientific American
なぞのくささんはTwitterを使っています 「数学書的表記(定義と定理でひたすら押す。)で教育しておいて、学位論文になったら、論文は体系的に、定義定理の羅列では論文になりませんとか急にいってくる数学科大学院。」 / Twitter

素材

アイコン素材

IcoMoonの使い方・ライセンス一覧など!Webフォントで扱えるアイコン素材サイト | ホームページ大学
FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト | ホームページ大学
オリジナルのアイコンをWEBフォント化して使う【fontello.com】
Network Topology Icons - Doing Business With Cisco - Cisco
図面とともにあらんことを!:第二面 - ネットワークのゲンバ(2014) | Interop Tokyo 2014
Dia Shape Repository
Bootstrapにとって初めての独自アイコン集「Bootstrap Icons」バージョン1.0が初公開 - Publickey

Lorem ipsum - Wikipedia
NHKクリエイティブ・ライブラリー 素材をさがす
ニューヨーク・メトロポリタン美術館、パブリックドメインになった芸術作品のデジタル画像をオープンアクセス化 | スラド オープンソース
The Metropolitan Museum of Art makes 375,000 images of public domain art freely available under Creative Commons Zero – Wikimedia Blog
ポーズビューワ | デッサンポーズ
無料ダウンロード&商用利用もOKなクラシカルな装飾を集めた「Handbook of Ornament」作品集 - GIGAZINE
無料でゲーム・アプリの開発に使えるアイコンが2800種類以上ある「Game-icons.net」 - GIGAZINE
Googleが機械学習用データとして利用できる手書きイラスト5000万点をオープンに利用できる形で公開 | スラド オープンソース
Quick, Draw! The Data
googlecreativelab/quickdraw-dataset: Documentation on how to access and use the Quick, Draw! Dataset.
英BBC、個人および研究目的なら無料で使える約1万6000種類のサウンドライブラリーを公開中【やじうまWatch】 - INTERNET Watch
ご利用について | いらすとや
クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
WEB会議などで使える背景画像 - 古典に親しむ | 国文学研究資料館
「いらすとや」が1月で定期更新を停止 「今のペースで全てをやり続けるのは難しい」(1/2 ページ) - ねとらぼ
今後のサイトの更新について | かわいいフリー素材集 いらすとや
ELYZA, Inc.さんはTwitterを使っています 「深層学習で使われる関数や手法,アーキテクチャの画像フリー素材が200種類以上あるリポジトリ。ブログやプレゼンなどで活躍しそう。 https://t.co/2kNs7FdiIG https://t.co/hL0I6foznV」 / Twitter
dvgodoy/dl-visuals: Over 200 figures and diagrams of the most popular deep learning architectures and layers FREE TO USE in your blog posts, slides, presentations, or papers.
Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「海外で流行っているフリー素材のサイトが、storyset(👉https://t.co/1EiYU5SlBU)。日本ではまだメジャーではないけど検索に加え、ブラウザ上で色を変えれるのが最高です👏。 https://t.co/slNCZbNGSN」 / Twitter
Storyset | Customize, animate and download illustration for free
Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「フリー素材のツールとして他にもよく使っているのが、 @unDraw_co (👉https://t.co/JO5vk9nVhu)。自分の好みとしては storyset より unDraw の方が好き😇。 https://t.co/rer16AqTRD」 / Twitter
Illustrations | unDraw
今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
新しく、スタジオジブリ5作品の場面写真を追加提供致します - スタジオジブリ|STUDIO GHIBLI
無償。明治時代の郡地図。Googleマップのマイマップ版も - PC Watch
郡地図 Ver 1.0 - 郡地図研究会 - BOOTH

予約済みドメイン等

Example Domain
Example Domain
Example Domain
Example Domain
予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io
RFC 7042 - IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
RFC 3849 - IPv6 Address Prefix Reserved for Documentation
RFC 5737 - IPv4 Address Blocks Reserved for Documentation

チェックリスト等

技術書、それも売れるやつを書きたい人へ、編集者からのアドバイス | ツチノコブログ
技術系ブログを書いてくれてる人に申し上げたいこと6つ
論文等、書き物を他人に見せる前のチェックリスト – 上田ブログ
ブログを書くときのアンチパターン集【Agent Grow Advent Calendar 2016:25日目】 | 自主的20%るぅる
第3回プロから学ぶ「わかりやすい文章の書き方」
PDCAと5W1Hと4S
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
ドキュメントの構造化による,良いドキュメントの作成方法:新春特別企画|gihyo.jp … 技術評論社
読まれるテキストは読者へのおもてなしの構造を持っている - mizchi's blog
失敗を学びに変える「障害報告書」の書き方 ─ RettyのCTOがGoogleで学んだ「問題を隠さない文化」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
本の虫: Bjarne Stroustrupのプログラミング入門書の査読の感想
わかりやすい文章の10大原則(第2回) | Web文章入門(全7回) | Web担当者Forum
sogitani / baigie inc.さんのツイート: "話が分かりにくい人の条件 ・前提の説明がない ・結論を先に言ってない ・質問に答えてない ・全体→部分という構造になってない ・抽象的な言葉が多い ・相手に合わせて使う言葉を選んでない ・言葉を省略しすぎてる ・事実と解釈がごちゃまぜ ・話が拡散したり脱線したりする"
sogitani / baigie inc.さんのツイート: "分かりやすい文章の条件 ・前提の説明を丁寧にする ・結論をなるべく先に書く ・読み手の疑問を想定しそれに答える ・全体→部分という構造にする ・抽象的な言葉を避けて具体的に書く ・読み手に合わせて使う言葉を選ぶ ・言葉を省略しすぎない ・事実と解釈を区別して書く ・話の拡散、脱線を避ける"
これだけ守れば見やすくなるデザインの基礎 - Speaker Deck
Kazuho Okuさんのツイート: "どんな仕事でもそうだと思うけど、ソフトウェア開発でも実装の「how」でなく設計の背後にある「why」を共有しちゃえば、PRを細かく見る必要がなくなって楽になるんだよなーと思ってる"
事業計画書の作り方、新規ビジネスの考え方

日本語

読み

【みんなの知識 ちょっと便利帳】記号/符号の種類・名称・読み方 =キーボードの記号=
等幅フォントは「とうふく」「とうはば」どっち? - しろもじメモランダム
括弧 - Wikipedia
混乱する括弧の呼び方(パーレン?ブラケット?ブレース?) - ポンコツWebエンジニアのかっこ悪く生きる日記
ハイアラーキー(はいあらーきー)とは - コトバンク
日本人が間違った覚え方をする「得意ではない」言葉について - GIGAZINE
ハッシュタグ記号は「シャープ」じゃない? | 毎日ことば
既存(キソン)とは - コトバンク
アキバで恥をかく禁句ワード Vol.5:アムド【あむど】 - ITmedia PC USER
不思議な読み方をするあの漢字 : KODOMO : 読売新聞(YOMIURI ONLINE) 1/2
なかのん&マジックさんのツイート: "Wikipediaはwikiという聞き慣れない単語を固有名詞内に含めた時点で、マーケティング的には「wikiと略すな」は、逆に何言ってんのという感じある(言ってるのは外野なんだと思うけど)。"
なかのん&マジックさんのツイート: "むしろ、wikiと言われてWikipediaが連想される状況って、Wikipediaにとっては誇らしい状況だと思うんだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔からダイヤル、ワイヤレス、のように本来Yが発音にないのに「ヤ」と表記する由来は何かと思ったが、母音連続を避ける「介入子音」という概念があり、英語でも冠詞aがanとなったり、idea ofと発音する際、aとoの間にr音が発生するという話…面白い。 https://t.co/fZBTMBj0cF"
contentscinii_20180414235118.pdf
なかのん&マジックさんのツイート: "交野市私市って、大阪の人間でも読めない人多そうで、なんて地名だ。"
なかのん&マジックさんのツイート: "かたのし、きさいち"
大西科学さんのツイート: "同じ難読市名でも、「まいかたかな……?」と間違って読んでしまうものも難読と言えますが、そもそも読めない、どう読んでよいかわからない市が千葉にあります。そこを訪れて初めて出会ったので、まったく読めない字というのがまだあるのだな、私はまだまだだなと思いました。匝瑳市というのですが。"
suzakiさんのツイート: "「ちょうふく」と「じゅうふく」の読み方はMemory Deduplication (LinuxではKSM:kernel shared memory)を日本語で説明するのに苦労しました。 どちらを使っても大抵もう一方を指摘されました。… "
まさみさんは語りたいさんのツイート: "代替と代替の議論も(笑)… "
Shiro Kawaiさんのツイート: "「定数」はどっちがどっちだろう https://t.co/tYqmgeXybX"
「稟議=りんぎ」「消耗=しょうもう」ではない? 現代人には分からない“漢字の本来の読み方”(ねとらぼ) - Yahoo!ニュース
羊頭狗肉(ようとうくにく)の意味・使い方 - 四字熟語一覧 - goo辞書
三省堂 WORD-WISE WEB -Dictionaries & Beyond-
「まち」と読む町、「ちょう」と読む町(市区町村雑学)

毎日ことば

辞書にはない「大宗」の意味 | 毎日ことば
「訳」と「わけ」 | 毎日ことば
「多いに」 | 毎日ことば
「ありがたい」と「有り難い」 | 毎日ことば
「よい」と「良い」 | 毎日ことば
「多数」と「大多数」 | 毎日ことば
「任期を迎える」 | 毎日ことば
「臨む」と「望む」 | 毎日ことば
「なぜ新聞は閉じカッコの前に句点を付けないのか。」 | 毎日ことば
「濃(こま)やか」と「細やか」 | 毎日ことば
「無実」と「罪のない」の違い | 毎日ことば
「司令」と「指令」 | 毎日ことば
「シャッターを押す」 | 毎日ことば
「ため」とよむ「為」 | 毎日ことば
「目線に立って」 | 毎日ことば
「固定概念」 | 毎日ことば
「排外」と「拝外」 | 毎日ことば
各上位2位までが | 毎日ことば
辞書を、言葉をなんだと思っているのか | 毎日ことば
なぜ新聞は「想う」を使わないか | 毎日ことば
約1万3249基 | 毎日ことば
「鋭い目線」を「鋭い視線」に直す理由 | 毎日ことば
「薄皮をはぐように」忘れる? | 毎日ことば
ネットの類語辞典は辞書といえるか | 毎日ことば
コトバ解説:「終息」と「収束」の違い - 毎日新聞
「メーン」か「メイン」か | 毎日ことば

blog

医療法人申請における当用漢字 | yasuokaの日記 | スラド
恣意的の誤用
”たてつけ”??その使い方はあり?? : 生活・身近な話題 : 発言小町 : 大手小町 : YOMIURI ONLINE(読売新聞)
日本語は何故、どこが難しいのかー外国人から見る日本語のムズカシイ - 昭和考古学とブログエッセイの旅へ
シャベルとスコップの呼び方が東日本と西日本で逆だと話題に 「小さい方がシャベル」「え、スコップだろ?」 - ねとらぼ
ひとりふたりという数え方はなぜ三人めから「……り」とならないのか?→実は三人以上にも “り” はあるらしい「へぇ! 知らなかった」 - Togetter
k16's note: 日本語の編集をしていてよく直すパターン15選(増えるかも)
漢字研究ブログ: 「函数」が音訳というデマと、本当の語源
「させていただけないでしょうか」禁止令 | ウェブ電通報
「なう」は接尾辞だけなのか?|まつーらとしお|note
「なう」小考 - 誰がログ
日本語の乱れの話|astral|note

Wikipedia

誤謬 - Wikipedia
以上・以下 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「() {} [] について。 ---- 世界的には {[()]} の順で用いられる方式が多数派。 JIS Z 8201-1981 においても「小括弧」「中括弧」「大括弧」という名称は廃止され、現在は「丸括弧」「角括弧」「波括弧」と表記。 https://t.co/vkCHgAkObS」 / Twitter
括弧 - Wikipedia

Twitter

ピンハネ

chokudai(高橋 直大)🍆さんはTwitterを使っています 「COCOAの件で多重請負を問題視する人が結構居るけど、「中抜きが問題だ!」って言ってる人は業界を全く知らないので無視して良いとおもう。 中抜きは中間業者をすっ飛ばすことを指すのであって、ピンハネのことではない。意味的には真逆なのよね。」 / Twitter
chokudai(高橋 直大)🍆さんはTwitterを使っています 「ピンハネがどれくらい発生してるかは論点として成立するとは思うけど、そこはお金の流れを見ないとなんとも。大きいプロジェクトを分割する時に多重請負構造は必要になるはずだし、構造自体が絶要らないと言えるものでは絶対に無い。」 / Twitter
kokiさんはTwitterを使っています 「@chokudai 中抜きててそういう意味だったんですね。。ピンハネの方の意味なんだと思ってました。」 / Twitter
野生の男 WILDMANさんはTwitterを使っています 「@chokudai 日本語的には「中身を抜くこと」としての中抜きが先に存在していてその後に「中間業者を抜くこと」を中抜きと呼ぶ用法が生まれた感じですね https://t.co/V0jljdZ009」 / Twitter
中抜き/中貫き(なかぬき)の意味 - goo国語辞書

Fumiaki Nishihara(西原史暁)さんのツイート: "これ、本当にそうで、なぜか「標本」のことを「母集団」と呼んでいる人、ネット上でも実社会でもよく見ます。たぶん、分母と混同しているんだと思うんですよね。 - 「母集団」の意味間違えてる奴多すぎ問題 https://t.co/0efNkMvOon"
「母集団」の意味間違えてる奴多すぎ問題
統計学における「母数」は"parameter"の訳語だってみんな知ってた?―訳語選択の失敗例
なかのん&マジックさんのツイート: "「無学」だと知らないレベルのものが「共通の」言語プロトコルなのかというところには同意しかねますなぁ。… "
棚旗 織さんのツイート: "正しい敬称での呼び方は、敬意だけでなくそれ以上に、共通の言語プロトコルで会話できる旨を示します。わざわざ変な呼び方をして、己を育ちの悪い無学だと他者に思わせて何がしたいのでしょう。聞いてもらえる話も聞いてもらえなくなります。… "
なかのん&マジックさんのツイート: "人それぞれ掘り下げたところ、掘り下げずに行ったところはあるわけで、「無学」という言葉自体、得意分野でマウントとりたい場合に使われるものと私は認識しています。"
なかのん&マジックさんのツイート: "極端に言えば、昨今Twitterで叩かれてる「マナー講師の作り出すマナー」と何の違いがあるんだろうかと。言葉は誰かが作り出して広まるものなので。"
Yusuke Teradaさんのツイート: "有名な「横書き句読点の謎」という文書https://t.co/8YjP40ma83 があるけれど,最新の調査結果として文化庁の「国語に関する世論調査」の資料 https://t.co/dOLJQfC4Wj が興味深い。うちの業界では「カンマ・マル」方式が主流だけれど,世間では「テン・マル」方式が主流になりつつある流れを感じる。… https://t.co/2wL2IsIPsG"
ten.dvi
r1393038_01.pdf
Yusuke Teradaさんのツイート: "理数系の専門書では「カンマ・ピリオド」方式が圧倒的に感じるけれど,この調査では2.3%しかない。むしろ2.7%もあることになっている「テン・ピリオド」方式は一度も見たことがない気がする……(「横書き句読点の謎」では「まずないでしょう」と切り捨てられている)。"
ショーンKY(ネット論客)さんはTwitterを使っています 「なまじ一般語と同じ言葉を使っているために勘違いされやすそうな言葉の例 医学「清潔・不潔」 数学「高々」 化学「雰囲気」 あと他に専門の方頼む」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「情報工学だと、低レベルとか。」 / Twitter
松野美穂💮さんはTwitterを使っています 「「そうゆう」を使う方は私は警戒してしまいます。お仕事の依頼のメールに使われていたらお引き受けしない可能性がグンと上がります…。言葉を扱う仕事の方には使ってほしくありません😢 この他に「延々と」を「永遠と」とされるのも嫌です… https://t.co/RkXhBeSPeT」 / Twitter
マカオさんはTwitterを使っています 「@matsunom @kotoyoshi_y 一応をいちようと言われるのが個人的には苦手ですね。 言葉でいちようと言われて文字でどう書くんだろうって思ったら「いちよう」で苦笑いしました。」 / Twitter
まこ🐁きめつ沼さんはTwitterを使っています 「@matsunom 『言わざるおえない』と書く人も結構多くて……どんなにいい文章を書かれるかただったとしても『ウッッ』ってなってしまいます。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ら抜き言葉みたいに、「間違い」(名詞)を「間違え」って言う/書くのもどっかの方言なんかな?」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「日本語の書き下しという問題をめぐっては、これまでに思考を何周も回してしまった結果、読み手に対して誤解がなさそうなら何でも正解でいいという心境にあり、あらゆる意味で「正解」の存在が怖い。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「いまのところの好みは、文部省がなんか昭和に出したやつを原則としつつ、副詞とか接尾辞はひらがなに倒して、ただし漢字による強い語感がほしい場合には漢字を使うことをいとわない、かなあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「これもどっかで文書化しておかないとなんだよな」 / Twitter
公文書の読点「,」から「、」に 半世紀以上前の通知変更へ | 共同通信
Sho YokoiさんはTwitterを使っています 「句読点に「,.」を使うのは欧米かぶれだとか “理系” の論文ではそれが普通だとかいう声が飛び交っているので、みなさん是非まずこちらを: 渡部 善隆「横書き句読点の謎」(PDF) https://t.co/N9DvYZA5gs」 / Twitter
ten.dvi - ten.pdf
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「英語だとboundになるのだがこの表現や律速の語源、どこからきたんだろう。 https://t.co/fatIw7nzhN」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「嫁(統計屋さん?)に「律速」が通じなかった。(電車の乗り換えを何回もするけど)「結局◯◯線律速だからここを急いでも着く時間変わらん」と言ったら「リッソク??」だった。 「律速」って理科系の方言なんか。普通に日常会話で使ってたわ。てか「りっそく」漢字変換で出ない。。。」 / Twitter
あきぽち@とくになしさんはTwitterを使っています 「@dr_vegepamyu 理系だけど律速はじめて聞きました! ニュアンスが分からない😅 よく使う理系方言は、さちる。です笑」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@pochicoh 元は複数の化学反応が同時に起こる際の反応速度などに使う用語で、パンピー用語に直すと「ボトルネック」らしい。 個人的な印象だけの話ですが、例えば書類のスタンプラリーで部長があんまり席におらず判子がもらえない時「部長がボトルネック」というと「判子押しが一番遅いのは部長」という名詞?」 / Twitter
飯間浩明さんはTwitterを使っています 「「ことばの正誤を判定しないで、辞書が作れるのか」とよく聞かれます。私は、不確かな基準で正誤を認定するより、「この言い方は俗語的」「何年頃からの言い方」「文章では使わない」「すでに古い」などの情報を示したいと考えます。このほうが、ユーザーが主体的に使うかどうか判断できるからです。」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「「現地語」としての日本語は残るでしょう。危ういのは(1/3が事実なら)「国語」としての日本語。 「現地語」だけでも生活は送れるけど学問、知の蓄積がしにくい。かつてそれを「普遍語」が担ってた。近代になって「普遍語」で記述される高度な知を「現地語」で書けるようにすることで「国語」が生まれた」 / Twitter
林 譲治さんはTwitterを使っています 「日本人の3分の1は日本語の文章が読みとれない というのが事実とすると、日本語はほぼ存在しないことになる。社会の構成員の三分の一が理解できないのでは言語の役割を果たしていないも同然。 二人の人間が日本語がわかる確率は4/9つまり半分以下。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「「日本語」という単一の言語が最初から存在してたわけじゃないってこと。知の蓄積ができなくなっても、日常生活やメディアにはずっと現地語としての日本語が使われ続けるでしょう。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみに日本では「メンタリティ」という言葉はよく用いられるが、英語でmentalityというと微妙に相手を見下してる感があるので (たぶんスラングの"mental"が悪い意味なため)、新山は "mindset" を使うようにしている。 https://t.co/L7MC7GcUQY」 / Twitter
Urban Dictionary: mentality

News Up コロナ カタカナ 多いかな?ワクチン予約がディフィカルト! | 新型コロナウイルス | NHKニュース
員数 - 国語 解決済 | 教えて!goo
若者ことばの「やばみ」や「うれしみ」の「み」はどこから来ているものですか | ことばの疑問 | ことば研究館
15.変換機能のイタズラ――間違われやすい「同音異義語」 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
25.間違えるのには理由がある「にもかかわらず」の漢字表記 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
「5人のなかでCの“次に”背が高い人は?」 解釈の分かれる質問にあなたならどう選ぶ? - ねとらぼ
敷衍 - ウィクショナリー日本語版
文章作成の基本を学ぶための記事・学習コンテンツのまとめ - Qiita
「てふ」と書いてなぜ「ちょう」と読むのか知りたい。 | レファレンス協同データベース
「了解しました」より「承知しました」が適切とされる理由と、その普及過程について | 株式会社LIG
文化庁 | 文化庁月報 | 連載 「言葉のQ&A」
エクスペリエンス(experience)とは - IT用語辞典 e-Words
日本語教育用アクセント辞典

英語

Qiita

IT業界で横行する恥ずかしい英語発音 - Qiita
コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
要注意な技術英語 - Qiita
英語の技術文書を早く読むには - Qiita
英語(1) プログラマが知っているとよい英単語の語源 - Qiita

Wikipedia

コンピュータ略語一覧 - Wikipedia
List of computing and IT abbreviations - Wikipedia
ISV - Wikipedia
OSV型 - Wikipedia
Numeronym - Wikipedia
ヌメロニム - Wikipedia
和製英語 - Wikipedia
大母音推移 - Wikipedia

フォニックス

ヒーホーくんさんのツイート: "英語でこれを教えないせいでどんだけ今まで無駄な時間を費やしてたのか… "
梓弓さんのツイート: "米国駐在中、娘がキンダーでフォニックスを叩きこまれてたのを見て目から鱗。 表音文字のくせにスペルと音が一致しない凶悪な英語でフォニックスを教えないのはアイウエオ表の読み方知らずに日本語(しかも旧仮名使い)習う様なモノ。てふてふでせうの読み方知らないんだから会話上手くなるはずない。… https://t.co/A7iF1p5teM"
梓弓さんのツイート: "小学生から英語を、で週一でハローとかやる全く時間の無駄。 文科省のアホ。 意味のない事を暗記出来るうちに九九の様に、フォニックスとサイトワードを関連付けて徹底的に暗記させるなら意味がある。 例えばcook, book, lookの塊、oil, off, openの塊でスペルの並び方と発音の法則を覚える。"
まさみさんは語りたいさんのツイート: "フォニックスっぽい言い方はなんとなく身に着いちゃったなあ。多分文科省の人とかもそういう非自覚的な学び方しかしてないから、自覚的な学び方を教えられないのだろう。"

blog

英語ミーティングを乗り切るために身につけたバッドノウハウ - knqyf263's blog
オープンなKindle用英和辞書 - 豪鬼メモ
中華なイパネマ vs 中華のイパネマ - 豪鬼メモ
”delete”と”remove”の使い分けについて | SDNA ローカライズチームブログ
どうしても英語の綴りが覚えられない! 難しい「スペル」を覚えるための7つのヒント | DMM英会話ブログ
TBAとTBD、TBCの違いがどうしても覚えられないのでメモ - インターネットの備忘録
日本人が陥りがちな英文メールの罠 - 人生の難易度が高すぎるのですが

mappedの意味 - 英和辞典 Weblio辞書
圧倒的腹落ち感!英語の発音と綴りが一致しない理由を専門家に聞きに行ったら、犯人は中世から近代にかけての「見栄」と「惰性」だった。 | DMM英会話ブログ
【英語論文の書き方】第24回 because, since, as など 理由を表す表現 論文翻訳・英文校正 研究者専門の翻訳会社 ワールド翻訳サービス
ゲタ子🇺🇸国際結婚ネバダ州🏜️ベガスじゃないよさんのツイート: "中高の英語、こういう英語教えてほしかったわ… "
英語では「0個の」もの(名詞)は複数形で表現する | Weblio英会話コラム(英語での言い方・英語表現)
Manabu Uenoさんのツイート: "18の時にアメリカに留学してまずESLのクラスに入った。そこで驚いたのは、日本の中高で習った発音は完全に間違いだったということ。そもそも母音の違いが分かってなかった。そこでアメリカ英語の母音16個を徹底的に練習した。そしたらどんな単語もだいたい通じるようになった。今も発音は褒められる。… https://t.co/icY1ZBPV5s"
Manabu Uenoさんのツイート: "外国語の発音についてはどうしても子音の違いに注目しがちだけど、日本人が英語についてまず注目すべきは、母音の数が3倍もあるという点だと思っている。この「音の多さ」に自覚的でなければ、第二言語としてうまく習得できないだろう。発音にしても、聞き取りにしても。"
Manabu Uenoさんのツイート: "英語の発音を練習する際は、自分が知っている全ての単語について、日本語の母音ベース=カタカナで覚えている音を一度全部「捨てる」こと。そして英語の母音を練習して、その母音ベースで全ての単語の音を一から知り直す。例えば bat とbut をはじめから違う音として覚える。"
gr4vit0nさんはTwitterを使っています: 「今回の海外遠征でヨーロッパの人達が発音していた専門用語で驚いた発音は 「Ghidra」-&gt;「ジーハイドラ」 「ioctl」-&gt;「アイオクタル」 がダントツでした。 全員微妙に発音違うのにちゃんと会話がすぐに通じてるのすごい」 / Twitter
pseudo とは 意味・読み方・表現 | Weblio英和辞書
mappedの意味・使い方 - 英和辞典 WEBLIO辞書
hikaliumさんはTwitterを使っています 「まじか、OOBEはうーびーなのか、文字は見たことがあったけど、発音したりそれを聞いたことがなかった…。(えいごむずかしい。)」 / Twitter
今更聞けない会社の英語表記「Co., Ltd.」「Inc.」「LLC」「Co.」を解説!【保存版】 | English Lab(イングリッシュラボ)┃レアジョブ英会話が発信する英語サイト
青子守歌さんはTwitterを使っています 「「キリル文字の」という意味の英単語Cyrillicはセリリックと発音することを覚えた(ずっとキリリックって読んでた)」 / Twitter
英語の発音について概説する - Amosapientiam
Anki - powerful, intelligent flashcards
ELSA - Speak English fluently, easily, confidently
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「すでにかなり有名ですが、YouTubeを使って英単語の発音を確認できるサイト。米国、英国、豪州の発音でフィルタできる。"covfefe"のような新語も検索可能。 https://t.co/2DuhqbbBsU」 / Twitter
Improve your English pronunciation using YouTube
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日知ったこと: アメリカ英語、イギリス英語などと同様に「ヨーロッパ英語」なる方言があるらしい。おもにフランス語やドイツ語話者の癖が入ったもので、たとえば "information"を "informations"と言う、三人称単数の"s"を落とす、進行形"~ing"の使用が多い、などがある。 https://t.co/FvMo3x8Jmu」 / Twitter
Euro English - Wikipedia

Install

セキュリティ更新プログラム リリース スケジュール (2022 年) – Microsoft Security Response Center
Windows client documentation for IT Pros - Windows for IT Pros | Microsoft Docs
Windows 10 / Windows 11 基本のセキュリティ対策

MS

RiskIQ Community Edition
あなたの Microsoft アカウントにパスワードレスの未来を - News Center Japan
Microsoft アカウントへのサインイン
プライバシー
サービスの状態
Microsoft 365 Service health status
Skype Status | Skype Support
Microsoft Docs
Windows 開発者向けドキュメント | Microsoft Docs
Windows 開発者向けドキュメント - Windows drivers | Microsoft Docs
Microsoft Edge issue tracker - Microsoft Edge Development
Windows Insider Program の結果 - マイクロソフト コミュニティ
tenpoku1000
Discussions - Microsoft Tech Community
Microsoft Learn | Microsoft Docs
Microsoft サービス規約
よく寄せられる質問
Microsoft アカウント | ホーム
アカウントの一時停止
Flight Hub | Microsoft Docs
Windows のリリースの正常性 | Microsoft Docs
Windows release health | Microsoft Docs
マイクロソフト脆弱性報告窓口 ガイド (日本語) – Microsoft Security Response Center
YurikaさんはTwitterを使っています 「英語の窓口は不安、という場合はMSの場合は英語の窓口に投げる時に「日本語対応希望」と一言書いていただだければコミュニケーション自体は日本語で対応します! 困ったこととか相談とかあればお気軽に https://t.co/y6tGB9UMf4」 / Twitter
日本語でマイクロソフトに脆弱性を報告する方法 – Microsoft Security Response Center
Yosuke HASEGAWAさんはTwitterを使っています 「経験的には、マイクロソフト製品の脆弱性は直接英語窓口に届けるのが楽。細かな記載事項の形式的な不備とか気にしなくても最低限の手順などが書かれていれば受け入れてくれる。直接的な脆弱性とまで言えない挙動でも(修正されるか否かは別として)「報告ありがとう」という姿勢なのでこちらも気持ちいい」 / Twitter
Windows security baselines guide - Windows security | Microsoft Docs
Windows security - Windows security | Microsoft Docs
Submit a file for malware analysis - Microsoft Security Intelligence
Microsoft Digital Defense Report – Microsoft Security

Tools

その他

EaseUS OS2GO - Windows 11、10、8、7向けの最高の起動可能なポータブルUSBドライブを作成するツール
Latest topics > Windows 10で「デスクトップの解像度」と「アクティブな信号解像度」が一致しない現象が発生したときの解決方法 - outsider reflex
秀丸エディタが11年8カ月ぶりにメジャーバージョンアップ、標準エンコードにUTF-8を選択可能に - ITmedia PC USER
Windowsエクスプローラー特殊Tips【5選】 ― 開発者/クリエイターにおすすめ - Build Insider
文字の消滅から11年、Windowsの「スタートボタン」が最近のユーザーには通じないという指摘【やじうまWatch】 - INTERNET Watch
Windows 8 で ISO の「マウント」が出来くなってしまったら | The Simplest Essence
Windowsのコマンドライン引数でのクォートの話 | Qrunch(クランチ)
Otter Voice Meeting Notes - Otter.ai
pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
とほほのSELinux入門 - とほほのWWW入門
Install Docker Desktop on Windows | Docker Documentation
Docker for Windows release notes | Docker Documentation
Bridge - Uniant
Tablacus Explorer - アドオンで拡張できるタブ型ファイラー
Windows 10 ログインできないパソコンを初期化する - PCまなぶ

Chocolatey

Packages

主要なソフトウェア

Chocolatey Gallery | 7-Zip 16.4.0.20170506
Chocolatey Software | Atom 1.50.0
Chocolatey Gallery | Beyond Compare 4.2.3.22587
Chocolatey Gallery | Everything 1.4.1877.20170915
Chocolatey Gallery | Git 2.15.1.2
Chocolatey Software | GitHub Desktop 2.5.3
Chocolatey Gallery | MSYS2 20161025.0.0
Chocolatey Gallery | NetWide Assembler 2.13.02
Chocolatey Gallery | Node.js LTS (Install) 8.9.4
Chocolatey Software | Python 3.8.5.20200721
Chocolatey Gallery | Tera Term 4.97
Chocolatey Software | VirtualBox 6.1.12

メディア関連

Chocolatey Software | Adobe Acrobat Reader DC 2020.012.20043
Chocolatey Gallery | Avidemux 2.7.0
Chocolatey Gallery | MediaInfo 17.12
Chocolatey Gallery | PowerISO 7.0
Chocolatey Gallery | Screen To Gif 2.10
Chocolatey Gallery | VLC media player 2.2.8
無料でオープンソースのメディアプレイヤー「VLC」で簡単にPCの画面を録画する方法 - GIGAZINE

Chocolatey Gallery | Packages

配布元

主要なソフトウェア

圧縮・解凍ソフト 7-Zip

Atom

Atom
フリーのコードエディター「Atom」が半年ぶりのアップデート - 窓の杜

Beyond Compare

Scooter Software: Home of Beyond Compare
Beyond Compare Technical Support
WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool) - いろいろ備忘録日記
Beyond CompareでCSVのデータを比較する - プログラマーな日々
もうひとつのGUI diffツール「Beyond Compare 4」|TechRacho by BPS株式会社
xdocdiff WinMerge Plugin -Word、Excel、PowerPoint、pdfの比較・差分を見る-

Everything

人気の高速ファイル検索ソフト「Everything」v1.4が正式版に ~“ReFS”をサポート - 窓の杜
Downloads - voidtools
OSの検索機能を完全に置き換え ~「EverythingToolbar」に待望の機能が実験搭載 - 窓の杜
stnkl/EverythingToolbar: Everything integration for the Windows taskbar.

Git - Downloads
GitHub Desktop | Simple collaboration from your desktop

MSYS2

MSYS2 homepage
Package: mingw-w64-x86_64-lld - MSYS2 Packages
MSYS2
MSYS2でclang(64bit版)
WindowsでClangを使うならmsys2が便利 - Qiita
Download LLVM releases
msys2とC++で特定のDLLに依存しないwindowsバイナリを作る - siunのメモ
zig/Findllvm.cmake at master · ziglang/zig

NASM

Node.js

RobotJS

RobotJS - Node.js Desktop Automation
octalmage/robotjs: Node.js Desktop Automation.

ダウンロード | Node.js
ドキュメント | Node.js
Node.js 日本ユーザーグループ
node.js npm - Google 検索
ドッグさんはTwitterを使っています 「LTS でないバージョンの node 使ってても npm install は気にせず LTS 向けの npm を入れてるっぽい.そういうもんか…」 / Twitter

Oracle VM VirtualBox

Downloads – Oracle VM VirtualBox
ストレージ設定 | VirtualBox Mania
共有フォルダ設定 | VirtualBox Mania
共有フォルダのマウント | VirtualBox Mania
Virtual Box 共有フォルダの権限 | Ubuntu初心者の集いブログ
Chapter 3. Configuring virtual machines
DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ page cache編 ~
Ubuntu 16.04のVagrantでpublic Vagrant boxにアクセスできなくなった問題 - 覚書
2018年3月1日 Oracle,Linux 4.15をサポートした「VirtualBox 5.2.8」をリリース:Linux Daily Topics|gihyo.jp … 技術評論社
Chapter 12. Troubleshooting
VirtualBox VM debugger TIPS
保護種さんはTwitterを使っています 「VirtualBox の File-&gt;Export Appliance... から生成される *.ova (Open Virtualization) ファイルは tar 形式になっていたのか。しかも、iso イメージも含めることが出来るってのは面白い。ただ iso イメージ md5sum ファイル、それぞれの tar ヘッダを含めるので、その分サイズも増える」 / Twitter
ノートPCに入れたLinuxデスクトップで、元々入ってたOEM版のWindows10のライセンスを使って仮想マシンを作成する | 俺的備忘録 〜なんかいろいろ〜
Windows 11とRHEL 8.5をゲストOSにできる「Oracle VM VirtualBox 6.1.28」が公開 - 窓の杜
Windows版VirtualBoxで64bit版Windowsが使えないときの確認事項 - Qiita
Oracle VirtualBoxでWindows 11を利用できず、現在対応中 | TECH+
「Windows 11」と「Oracle VM VirtualBox」の互換性問題は解決 - 窓の杜
éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「Virtual Boxは名前付きパイプを使うことでゲストの仮想RS232とホストの別プロセス間で通信させることができるらしい」 / Twitter

Python

Download Python | Python.org
Python製のマルウェアが台頭してきているという指摘 - GIGAZINE
pipでパッケージの更新をしたらアンインストールエラーが出た話|ジャンク松本|note
ドッグさんはTwitterを使っています 「pip の,1つのパッケージは依存関係内に1つのバージョンしか存在できない制限がなかなかキツい」 / Twitter
小川雄太郎さんはTwitterを使っています 「Pythonで実装した処理ファイルを他人に渡したり、活用してもらう際に、Python環境を用意してもらうや、Google Colabなどは面倒なので、exe化したいです。 いくつか方法はあるのですが、その一つが紹介された記事になります。 https://t.co/TwydGZD8Fu」 / Twitter
How to Easily Convert a Python Script to an Executable File (.exe) | by Frank Andrade | May, 2021 | Towards Data Science
ぽんたさんはTwitterを使っています 「Pyinstaller で exe化したもの (onefile オプション付) って起動に数秒かかる印象があるんだけど、実際どうなんだろう」 / Twitter
〒みやらん🐶❄ゆきんこさんはTwitterを使っています 「色々と方法あるんやなぁ。 Windows であれば、 WinPython が全部固めて渡せる最強だと思っている(´・ω・`)」 / Twitter
fkubota 🦉さんはTwitterを使っています 「まじでマジックコマンドの"%debug"便利なのでjupyter使ってる人で知らない人いたら一度使ってみてほしい。。。 「知らんかった!!」っていう人があまりにも多い。。。 わざわざgif作ったよ! 「エラー出た!!」で後出しでデバッグできるんだから使わない手はないよね。 https://t.co/t2yjMqn1vV」 / Twitter
fkubota 🦉さんはTwitterを使っています 「デバッガの使い方は、pdbやipdbと同じなのでこの当たりが参考になります。 https://t.co/C3iiywUdAG」 / Twitter
Pythonにおけるデバッガ: pdb, ipdb - Qiita
kimiyuki@うさぎ🐇さんはTwitterを使っています 「IPython とか Jupyter やるなら SageMath もいいですよ」 / Twitter
てらモス♋️さんはTwitterを使っています 「Windows でプログラミングを始めようとして Python を入れようとすると - python org &gt; 公式だよ! - Windows Store &gt; Windows の公式だよ! - Visual Studio &gt; Microsoft 公式の開発環境だよ! - anaconda &gt; 必要な環境全部そろってるよ! - ... とかでしょ」 / Twitter
「JupyterLab」のデスクトップアプリ「JupyterLab App」がリリース。Pythonなどに対応した統合開発環境 - Publickey
プログラミング言語のコードを逐次実行できるノートブック環境「JupyterLab」がスタンドアロンアプリに - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「メモ) Windows環境Pythonで、親proc無関係に生き残る新規proc生成には、subprocess の Popen(...creationflags=CREATE_BREAKAWAY_FROM_JOB) と。 (CREATE_NEW_PROCESS_GROUP は効果なし)」 / Twitter

Tera Term Open Source Project

メディア関連

PDFリーダー、PDFビューア | Adobe Acrobat Reader DC
ストア版「Acrobat Reader」も64bitに ~Windows 11のシンプルな右クリックメニューにも対応 - 窓の杜
64bit版「Acrobat Reader DC」が日本でも提供開始 ~32bit版からの更新も順次開始 - 窓の杜
Avidemux - Downloads
MediaInfo
PowerISO - Create, Burn, Mount, Edit, Compress, Encrypt, Split, Extract ISO file, ISO/BIN converter, Virtual Drive
Releases · NickeManarin/ScreenToGif
Official download of VLC media player, the best Open Source player - VideoLAN

Chocolatey
Installation
Pricing
ChocolateyFAQs
chocolatey/choco: Chocolatey CLI
Home · chocolatey/choco Wiki
久しぶりにWindowsの環境構築をした · 電子雪原ちほー
Chocolateyの自作パッケージ入門(1) · 電子雪原ちほー
Chocolatey にパッケージを公開する #1 全体手順 - Qiita
spp5: Chocolateyでカスタムパッケージを作成する
ChocolateyとSetting Syncで開発環境をサクっと整える | フロントエンドBlog | ミツエーリンクス

MS

廃止・非推奨

Windows 10 - Features that have been removed - Windows Deployment | Microsoft Docs
Windows 10 features we’re no longer developing - Windows Deployment | Microsoft Docs
Microsoft、OEM向けWindows 10は今後32bit版を提供せず - PC Watch
「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! - やじうまの杜 - 窓の杜
次期Windows 10で非推奨となる「ペイント」アプリ、“ストア”で無償提供されることに - 窓の杜
「ディスク クリーンアップ」は非推奨に ~“ストレージ センサー”への移行を - 窓の杜
「Windows To Go」は終了へ ~「May 2019 Update」で削除・置き換え予定の機能が発表 - 窓の杜
「Windows 10 Fall Creators Update」で廃止・非推奨となる機能が明らかに - 窓の杜
Microsoft、「Windows 10 October 2018 Update」で削除・開発終了となる機能を案内 - 窓の杜
「Windows 10 November 2019 Update」で開発が終了する機能、削除される機能が発表 - 窓の杜
Silverlightは時間切れ
Microsoft、「October 2020 Update」で削除・開発終了となる機能を案内 - 窓の杜
旧「Edge」、「IE11」、wmicコマンド……「Windows 10 バージョン 21H1」で削除・非推奨となる機能たち - 窓の杜

Windows 11

その他

Configuration Manager を用いた Windows 11 の OS 展開
Windows 10はなぜ最後じゃなかった?次世代の「Windows 11」がリリースされた理由 - CNET Japan
Windows 11で可能になったパブリックDNS利用時のDoHによる暗号化を試す【イニシャルB】 - INTERNET Watch
Windows 11のインストールをブロックする方法 - ソフトアンテナブログ
【Tips】Windows 11でMicrosoftアカウントをローカルアカウントに切り替える方法(逆も) - ソフトアンテナブログ
[速報]マイクロソフト「Windows 365 Cloud PC」正式発表。Windowsをクラウドサービスとして月額定額料金で提供、デスクトップ仮想化をベースに - Publickey
Windows 365 Cloud PCとAzure Virtual DesktopでWindows 11が利用可能に - Publickey
Windows 11でゴッドモードをアンロックする方法 - GIGAZINE
Windows 11の新しいタスクマネージャーのデザインが明らかに - GIGAZINE
Windows 11でAndroidアプリが実行可能になる機能の公開プレビュー版が2022年2月登場、他にもタスクバーの改善・メモ帳とメディアプレーヤーアプリの再設計などがめじろ押し - GIGAZINE
MicrosoftがAmazon Appstore Preview経由でWindows 11向けに1000以上のAndroidアプリを提供開始 - GIGAZINE
Windows 11に追加される新機能まとめ「スタートメニューのフォルダ分け」「エクスプローラーの改善」「新設計のタスクマネージャー」など盛りだくさん - GIGAZINE
Windows 11 ProもHomeと同じくMicrosoftアカウントが必須になる見込み - GIGAZINE
なぜWindows 11のタスクバーはデスクトップ下部に固定? - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 11のコンテキストメニューはシンプルに - 阿久津良和のWindows Weekly Report | マイナビニュース
MicrosoftがWindows 11のCPU&TPMチェックをスキップする情報を公開 - 阿久津良和のWindows Weekly Report | マイナビニュース
次々更新されるWindows 11アクセサリーは歓迎すべき? 阿久津良和のWindows Weekly Report | マイナビニュース
2022年のWindows 11には何が待つか - 阿久津良和のWindows Weekly Report | マイナビニュース
エクスプローラーの不具合が改善? 2021年最後のWindows 11ビルド22523 - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 11で「空フォルダが沢山作られる奇妙な動き」を確認する方法 | TECH+
Microsoftの個人向けチャット環境はどこへ行く - 阿久津良和のWindows Weekly Report | マイナビニュース
各マザーボードメーカーがWindows 11対応状況を報告 - PC Watch
GIGABYTE マザーボード製品 Windows 11 対応設定 | ニュース - GIGABYTE Japan
【笠原一輝のユビキタス情報局】Armにとって劇的転換点となるWindows 11 - PC Watch
Windows 11プレビュー版、Devチャネルは今後不安定に。Betaチャネルへの移行を推奨 - PC Watch
Windows 11インサイダーにMicrosoftアカウントをまとめて管理できる機能 - PC Watch
Windows 11でSSDが遅くなる不具合。ランダムライトが半分以下の場合も - PC Watch
Windows 11の開発ビルド22509では、スタートメニューに関する不満に対応|自作.com
Windows 11のアップデートでBSODが再び青くなり、ファイルエクスプローラーの主要なバグが修正される|自作.com
Windows 11 SEについて知っていること|自作.com
ASCII.jp:Androidアプリの提供だけではないWindows 11のMicrosoftストアの進化点 MSIやEXEインストーラーにも対応 (1/2)
ASCII.jp:Windows上から今動いているのがWindows 11なのか10なのかを確認したが、答えはバラバラ (1/2)
ASCII.jp:Windows 11でもアップデートの方法は改良が進み、最終的には短い中断で済むようになる? (1/2)
ASCII.jp:Windows 11の右クリックメニューが変わった問題など、細かなWin11対策を紹介 (1/2)
ASCII.jp:Windows 11は最大化ボタンから、簡単にウィンドウのスナップ機能を利用できる (1/2)
OneDriveバックアップ機能が起こす4つの問題│ITサポート SORA|埼玉県ふじみ野市
「Windows 11 Pro」でも「Microsoft アカウント」が必須に? プレビュー版に気になる変更 - やじうまの杜 - 窓の杜

PC Watch

【山田祥平のRe:config.sys】Windowsはどう使われたがっているのか - PC Watch
Microsoft、HDR調整アプリを提供へ - PC Watch
【Windows 11便利テク】Windows 11ではジェスチャーを使いたい。ショートカットよりも素早い操作を可能にする方法 - PC Watch
【Windows 11便利テク】Windows 11のウィジェットに好みの情報を表示する方法 - PC Watch
【Windows 11便利テク】ウィンドウを縦横きれいに並べるWindows 11のスナップレイアウトを使いこなす - PC Watch
【Windows 11便利テク】何かと便利なWindows 11の「クイック設定」をカスタマイズしてみる - PC Watch
【Windows 11便利テク】Windows 11のエクスプローラーの違和感を軽減する - PC Watch
【Windows 11便利テク】Windows 11のスタートメニューをカスタマイズして使いやすくする - PC Watch
【Windows 11便利テク】やっぱり左下にしたいWindows 11のスタートボタン。タスクバーの不要なアイコンも削除 - PC Watch
【Windows 11便利テク】Windows 11でファイルの関連付けができない!そんな時に役立つアプリのリセット - PC Watch
【Windows 11便利テク】なんか勝手に起動してる?Windows 11で自動起動アプリをオン/オフする方法まとめ - PC Watch
【Windows 11便利テク】ライトとダークの組み合わせが柔軟に!Windows 11でアプリのデザインをカスタマイズする - PC Watch
【Windows 11便利テク】Windows 11でより使いやすくなったHyper-V。サクッと無料で仮想環境を作ってみる - PC Watch
【Windows 11便利テク】PC不調の最終手段!Windows 11を初期化する2つの方法 - PC Watch
【Windows 11便利テク】Windows 11の画面をちょっと見やすくするコツ - PC Watch
【Windows 11便利テク】使ってる? 分かりにくいWindows 11の「チャット」。ビジネス向けTeamsと何が違うのか - PC Watch
【Windows 11便利テク】「メモ帳」と「メディアプレーヤー」どこが新しくなった?Windows 11で最新版登場 - PC Watch
【Windows 11便利テク】いざという時に役立つWindows 11のスクリーンショットを取得する4つの方法 - PC Watch
【Windows 11便利テク】PINコードはなぜ安全?Windowsでさらに防御力が高める方法とは? - PC Watch
【Windows 11便利テク】Windows 11のネットワーク設定。知っておくと便利な項目は? - PC Watch
【Windows 11便利テク】「ニンジャキャット」OUT、代わりにヤツがIN - PC Watch
【やじうまPC Watch】Windows 11の新しいメモ帳、歯車をクルクル回せます - PC Watch

ニッチなPCゲーマーの環境構築Z

Windows11はTPM 1.2でもいける?どちらが正しい? | ニッチなPCゲーマーの環境構築Z
Windows11のタスクバー位置はレジストリから変更可能。ただし左右への移動はバグる | ニッチなPCゲーマーの環境構築Z
Windows11のスタートメニュー変更レジストリが無効化される | ニッチなPCゲーマーの環境構築Z
Windows11で時計の秒数表示が無効化される | ニッチなPCゲーマーの環境構築Z
Windows11は7のプロダクトキーでも認証できるのか | ニッチなPCゲーマーの環境構築Z
Windows11のインストール中に『0x8007007f』エラー。対処方法あり | ニッチなPCゲーマーの環境構築Z
非サポートPCにWindows11をインストールする方法 | ニッチなPCゲーマーの環境構築Z
TPM 2.0 / CPUチェックを回避してWindows10からWindows11へとアップグレードする方法 | ニッチなPCゲーマーの環境構築Z
Windows11にアプグレ後もWindows10のタスクバーが表示されてスタートメニューが動作しなくなる不具合 | ニッチなPCゲーマーの環境構築Z
Windows11に空のフォルダが大量に作成される不具合。Windows10から継続 | ニッチなPCゲーマーの環境構築Z
Windows11のシェア率はわずか1%未満 | ニッチなPCゲーマーの環境構築Z
Microsoft、Windows11における既定のブラウザの面倒な変更方法を撤回 | ニッチなPCゲーマーの環境構築Z

Windows 11 の仕様 - Microsoft
What's new in Windows 11 | Microsoft Docs
Ways to install Windows 11
新しい Windows 11 OS へのアップグレード | Microsoft
Windows lifecycle and servicing update - Microsoft Tech Community
Planning for Windows 11: best practices for organizations - Microsoft Tech Community
Windows Processor Requirements Windows 11 Supported Intel Processors | Microsoft Docs
Windows Processor Requirements Windows 11 Supported AMD Processors | Microsoft Docs
Windows Processor Requirements Windows 11 Supported Qualcomm Processors | Microsoft Docs
On Windows 11, Win32 apps can not be updated via the Microsoft Store - MSPoweruser
Windows 11で絶対使いたいアプリ 2021年 記事一覧
Windows 11で絶対使いたいアプリ 2022年 記事一覧
Windows 11のタスクバーを上・右・左へ配置できる「Winaero Tweaker」v1.30 - 窓の杜
Windows 11のタスクバーをチャーミングな角丸にできる「RoundedTB」 - Windows 11で絶対使いたいアプリ - 窓の杜
Stardock、Windows 10/11のスタート画面をクラシックスタイルにする「Start11」をベータ公開 - 窓の杜
スタート画面のカスタマイズツール「Start11」がピン止めアプリのフォルダー分けに対応 - 窓の杜
Windows 11の右クリックメニューをWindows 10以前に戻す「Windows 11 Classic Context Menu」 - Windows 11で絶対使いたいアプリ - 窓の杜
シンプル過ぎて少し不便なWindows 11の右クリックメニューに好みのコマンドを追加する方法 - Windows 11で絶対使いたいアプリ - 窓の杜
「Windows 11よ、まだまだ詰めが甘いな」 新しい[Windows]+[X]メニューに隙あり! - やじうまの杜 - 窓の杜
Windows 11の音量コントロールが気に入らない? クラシックなスタイルに戻す方法 - Windows 11で絶対使いたいアプリ - 窓の杜
なんでWindows 11はセカンダリモニターに時計がないんや……っていう人に「ElevenClock」 - Windows 11で絶対使いたいアプリ - 窓の杜
Windows 11でセカンダリモニターの時計を復活させる「ElevenClock」がv3.0.0に - 窓の杜
「ElevenClock」でマルウェア検出の報告 ~Windows 11のサブモニターにも時計を表示するツール - 窓の杜
Windows 11環境でInternet Explorer 11を起動するショートカットを錬成してみる - やじうまの杜 - 窓の杜
モダンルックな「タスク マネージャー」の開発が進行中? - やじうまの杜 - 窓の杜
Windows 11の設定画面に「Microsoft アカウント」の項目、Bing技術でヘルプも強化 - 窓の杜
なんでドラッグ&ドロップできないの! Windows 11に欠けたタスクバー機能を補うツール - Windows 11で絶対使いたいアプリ - 窓の杜

Visual Studio

vswhere.exe

Visual Studio インスタンスの検出および管理用のツール | Microsoft Docs
Locating MSBuild on a machine - Meziantou's blog
シンクリッジ - : 技術系備忘録/C++/VisualStudio/MSBuild.exeのパスを解決して実行
Visual Studio 201x の devenv.com はどこにある? - Qiita

窓の杜

「Visual Studio 2019」はパフォーマンスが大きく向上 ~Microsoftが詳細を解説 - 窓の杜
Microsoft、「MSVC」のSTL実装をオープンソースとしてリリース - 窓の杜
「Visual Studio 2019」にタブを縦並びにする機能 ~プレビュー版でテスト中 - 窓の杜
Microsoft、「Visual Studio 2019」v16.4を正式公開 ~「.NET Core 3.1」を同梱 - 窓の杜
Microsoft、「Visual Studio 2019」v16.5を正式リリース - 窓の杜
「Git」連携を刷新、メインメニューにも追加 ~「Visual Studio 2019」v16.6.0が正式公開 - 窓の杜
「Visual Studio 2019」v16.7が正式公開 ~「Git」関連の機能を引き続き強化 - 窓の杜
Microsoft、「Visual Studio」の「Unity」解析ツールをオープンソースに - 窓の杜
「.NET 5.0」に対応した「Visual Studio 2019」v16.8.0が正式公開 ~新しいGit機能もプレビュー卒業 - 窓の杜
「Visual Studio 2019」v16.9が正式公開 ~4番目の長期サポートリリース - 窓の杜
待望の64bit化 ~Microsoft、「Visual Studio 2022」を発表 - 窓の杜
「Visual Studio 2019」の最新プレビュー版がC++20機能の実装を完了 - 窓の杜
「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応 - 窓の杜
64bit化された「Visual Studio 2022」、初のプレビュー版がリリース - 窓の杜
「Visual Studio 2019」の最終版、v16.11が正式リリース - 窓の杜
「Visual Studio 2022」は11月8日に一般公開 ~Go-Liveライセンス付きのRC版が公開 - 窓の杜
「Visual Studio 2022」が一般公開 ~64bit化された初めての「Visual Studio」 - 窓の杜
「Visual Studio 2012」の製品寿命はあと1年 ~その他のバージョンもサポート切れに注意 - 窓の杜
「Visual Studio 2022」に初めてのマイナーアップデート ~v17.1を公開 - 窓の杜

infoQ

Microsoft、Bridge to Kubernetesをリリース
MicrosoftがVisual StudioでGit Experienceをリリース
Diablo IV:Visual StudioでLinuxのデバッグ
MicrosoftがVisual Studio 2019 v16.9をリリース
Microsoftが64ビットのVisual Studio 2022を発表
MicrosoftがVisual Studio 2022の最初のプレビューをリリース
Visual Studio 2022プレビュー2は即時フィードバックにフォーカスしたものに
MicrosoftがVisual Studio 2022の最初のプレビューをリリース
Visual Studio 2022: Leslie Richardson氏とそのチームに聞く

News

Microsoftが提供する統合開発環境「Visual Studio 2022」の詳細が発表 - GIGAZINE
Microsoft、「Visual Studio 2022」と「.NET 6」を正式リリース | TECH+

Visual Studio Feedback

VS2022 Missing compatible WDK - Visual Studio Feedback
Visual Studio Feedback
Prevent automatically inserting of /IMPLIB - Visual Studio Feedback

blog

同一ソースコードから生成されるビルド成果物のバイナリ同一性について | Japan Developer Support Core Team Blog
[メモリリーク #1] [HOWTO] UMDH を用いたメモリリーク調査技法 | Japan Developer Support Core Team Blog
Visual Studio 2019 version 16.3.x でビルドした C/C++ アプリが例外 0xC000001d で異常終了する | Japan Developer Support Core Team Blog
Visual Studioで64bitコンパイラツールセットを使う方法。C1060への対処。 - 賢朽脳瘏
[C++]コンソール出力にchar8_t文字列を出力したい! - 地面を見下ろす少年の足蹴にされる私
山市良のえぬなんとかわーるど: Visual Studio 2022(の Preview 予定)
Visual Studio で UTF-8 でC++を書いたら心が折れそうになった件 - Hikware.Tech
Improving developer security with Visual Studio 2022 | Visual Studio Blog
次期Visual Studio 2022はマルチリポジトリ対応になるとマイクロソフトが明らかに - Publickey
Visual Studio 2022 Preview 4が公開。CSSの変更がすぐプレビューに反映されるホットリロードなど新機能 - Publickey
Visual Studio 2022正式リリース。初の64ビット化による高速化、実行中のアプリにコード変更が反映される「ホットリロード」、.NET 6対応など新機能 - Publickey
Visual Studio 17.1 Preview 2が登場、Gitのブランチを他のブランチと比較する機能、セーブ時にコードを自動的にクリーンナップする機能など追加 - Publickey
Visual Studio 2022が公開 - 64bit対応 - ソフトアンテナブログ
C++ build throughput investigation and tune up - C++ Team Blog
ドッグさんはTwitterを使っています 「Visual Studio 2019 v16.9 で address sanitizer (asan) がフルサポートされた (/fsanitize=address).試験実装として元々入っていたのが安定版になった https://t.co/RbdxBIufev」 / Twitter
Address Sanitizer for MSVC Now Generally Available | C++ Team Blog
AddressSanitizer | Microsoft Docs
Suffer from Ctrl+S fatigue? We have a feature for you - Visual Studio Blog

Twitter

眼力 玉壱號さんはTwitterを使っています 「@uint256_t 作者の思い込みを炙り出す Property Based Testing は Example Based Testing を書くよりも少し作成 cost が高い。Fuzzing は『あらゆる入力に対して適切な対応が出来る・落ちない』という property を探る PBT だけど、問題空間が大きくなるとつらくなって行く…」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@uint256_t fuzzing の方が導入が簡単ってのはあるんだろうなあ(そういえば MSVC も fuzzer 入れてきたな https://t.co/RgKU1yOgIZ )」 / Twitter
Visual Studio 2022 Preview 4 is now available! - Visual Studio Blog
入谷 優さんはTwitterを使っています 「特定箇所を通った時だけブレークしてほしい、という場合は頻繁に有るので、Visual Studio 2022 Preview 4 の Dependent breakpoints は期待大です。」 / Twitter

Microsoft Visual Studio - Wikipedia
入谷 優さんはTwitterを使っています 「ソリューションのルートに .vsconfig を置くと、不足している Visual Studio のコンポーネントを自動的にインストールできることを知りました。あれこれをインストールせよ、と手順書に書く必要が無くなりますね。 https://t.co/XooypAT0dI」 / Twitter
インストール構成をインポートまたはエクスポートする | Microsoft Docs
dotnet/cli-lab: A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
Releases · Microsoft/VisualStudioUninstaller
Execution and Static Analysis Support for MSVC on Compiler Explorer - C++ Team Blog
Visual Studio のロードマップ | Microsoft Docs
Visual Studio 2017 15.9 リリース ノート | Microsoft Docs
Visual Studio 2019 リリース ノート | Microsoft Docs
Visual Studio 2022 Preview リリース ノート | Microsoft Docs
Visual Studio Preview
Microsoft C++ Build Tools - Visual Studio
Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
VsVim - Visual Studio Marketplace
EditorConfig - Visual Studio Marketplace
EditorConfig Language Service - Visual Studio Marketplace
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
インストールに使用するコマンド ライン パラメーターの例 - Visual Studio | Microsoft Docs
コマンド ライン パラメーターを使用して Visual Studio をインストールする | Microsoft Docs
/STACK (スタック割り当て) | Microsoft Docs
Visual Studioでも最新のClangが使いたい! - Qiita
Support Statement for Visual Basic 6.0 | Microsoft Docs

Visual Studio Code

その他

戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE
ColabCodeを使って、Google Colabの上でVS Codeを使ってみよう:Visual Studio Codeで快適Pythonライフ(1/2 ページ) - @IT
Takashi KawasakiさんはTwitterを使っています 「昨日、まさにどこかで話してた話で、今時、クラウドでAPI提供するならVSCodeの拡張は必要だよなぁとか言ってたらやっぱりこういう感じだよな。Stripeは別件でもないが見てただけなんだが。 https://t.co/Gk5QVMwvo9」 / Twitter
Visual Studio Code をご利用の場合
「Visual Studio Code」がインストール不要に。Webブラウザで動作 - PC Watch
vscode settings - Clear file content cache in Visual Studio Code - Stack Overflow
「Visual Studio Code 1.63」が公開 | OSDN Magazine

VS_Code-Extensions

Publickey

Visual Studio Code 1.35安定版リリース。リモート開発を可能にする「Remote Development」拡張機能が利用可能に - Publickey
「Docker for Visual Studio Code」が正式版に、Visual Studio Codeの拡張機能。WSL 2環境のDockerコンテナに対応 - Publickey
VS Code内でブラウザ画面プレビューとDevTools表示、そのままコード編集もできるVS Code拡張「Microsoft Edge Tools for VS Code」正式版に - Publickey

blog

たったの3ステップでライブリロードが可能になるVisual Studio Codeの拡張機能「Live Server」がすごい! | フロントエンドBlog | ミツエーリンクス
Visual Studio Code拡張機能「Polacode」でソースコードを手軽にキャプチャ | フロントエンドBlog | ミツエーリンクス
Visual Studio Code 入門~オススメ設定と拡張機能編~ - 雀巽の日記帳
Eclipse Open VSX: A Free Marketplace for VS Code Extensions | The Eclipse Foundation
Visual Studio Codeの設定をバックアップして同期する Settings Sync - -ろぐれこーど-
Rust IDE に化ける VSCode - OPTiM TECH BLOG
波形を書くときにJSONベースで書けるWaveDromがとても便利だった - FPGA開発日記
TLA+ on VSCodeで再帰ロックアルゴリズムを検証してみた - 未完成な論を綴るブログ
「Visual Studio Code」で執筆するSF作家 藤井太洋氏が作る物書きのための拡張機能 - ログミーTech

窓の杜

「Visual Studio Code」で“Markdown”テーブルを扱う際は必携「Text Tables」【レビュー】 - 窓の杜
Visual Studio Code向け「PowerShell」拡張機能がメジャー更新、「ISE」互換モードを搭載 - 窓の杜
Microsoft、「Visual Studio Code」向け「Docker」拡張機能を正式リリース - 窓の杜
C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース - 窓の杜
型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 - 窓の杜
Microsoft、「Visual Studio Code」の新しい拡張機能「Jupyter」を発表 - 窓の杜
Pythonの新しい言語サーバー「Pylance」がプレビューを卒業 ~「Visual Studio Code」でリッチな開発支援を実現 - 窓の杜
「Visual Studio Code」に「TensorBoard」を統合 ~Python拡張機能の2021年2月リリース - 窓の杜
「Visual Studio Code」の拡張機能「PowerShell」がセマンティックハイライトに対応 - 窓の杜
GitHubリポジトリをVisual Studio Codeで「読む」のに便利な拡張機能が登場 - 窓の杜
「Visual Studio Code」上で直接“GitHub”のプルリクエストを作成可能に - 窓の杜
「Docker」Visual Studio Code拡張機能がComposeファイルの補完・ヘルプ・検証に対応 - 窓の杜
Oracle、「MySQL Shell for VS Code」をプレビュー公開 - 窓の杜

infoQ

Microsoft、Bridge to Kubernetesをリリース
Red HatがVSCodeプラグインのJava言語サポート 1.0をリリース

Qiita

VSCodeの拡張機能「GIST」が便利すぎてHackMDを使うのをやめた - Qiita
VSCodeで俺々言語モードを作る - Qiita
usm-takl/vscode-oreore-mode: a tiny sample of a programming language mode of VSCode
VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。 - Qiita
Python 3.7とVisual Studio Codeで型チェックが捗る内作Pythonアプリケーション開発環境の構築 - Qiita
なぜ我々はいまだに文字列でコメントを書いているのか - Qiita

Twitter

ymmtさんはTwitterを使っています: 「VSCode の GitHub Pull Requests 拡張というのがあるんですが、大きな pull request のレビューに大変便利です。ブラウザと異なり、ファイルをひとつずつ差分確認できます。ファイルも全体が表示されるので差分周辺のコードも手間なく確認できます。控えめに言って神。 https://t.co/SY83r2XBK3」 / Twitter
microsoft/vscode-pull-request-github: GitHub Pull Requests for Visual Studio Code
Kohei SuenagaさんはTwitterを使っています 「Grammarly を VSCode から使うための extension が market place から消えていたのだが,どうも公式からのリクエストがあって unpublished 状態になっていたらしい. https://t.co/EbR3SD4v3V https://t.co/xsXLSrERiW から VSIX ファイルを使って入れられるそうな.」 / Twitter
Release Version 0.12.2 · znck/grammarly
七誌さんはTwitterを使っています 「ionide-fsharp(VS Codeの拡張機能)でパイプラインの途中の型が表示されるようになったのに気付いた。これは便利! (コメントの形で挿入されているが、自動表示されたもので入力したコードではない) https://t.co/VSK6YZe5c1」 / Twitter
入谷 優さんはTwitterを使っています 「#vscode 拡張機能のどれかが悪さをしているときに、二分探索で原因を簡単に探すことができることを知りました。拡張機能が多いと助かります。 https://t.co/LdConjDU6D」 / Twitter
Visual Studio Code extension bisect utility
ぬるぽへさんはTwitterを使っています 「デバッガの起動をめちゃめちゃ簡単にするツールを公開しました!デバッグ対象をCLIから起動すると、Tmuxでガッとgdbが起動したり、VSCodeからlaunch.jsonなしでアタッチできたりします あと、debuggeeが起動したときに自動でデバッガが立ち上がるようにする機能もあって便利 https://t.co/m2U7VjVDVT https://t.co/k3uf3ZDR8L」 / Twitter
nullpo-head/dbgee: The zero-configuration debuggee for debuggers. Handy utility that allows you to launch CLI debuggers and VSCode debuggers from the debuggee side.
ぬるぽへさんはTwitterを使っています 「あ、これなんか公開までに何度か言及してたこれのやつですね https://t.co/RfgnNQeTbY」 / Twitter
ぬるぽへさんはTwitterを使っています 「これめっちゃ便利じゃない?ゼロコンフィグでターミナルから普通に起動したプログラムをデバッガでデバッグできる 普通の開発フローと親和性が高くて、プログラム引数を頻繁に変えたり入出力をリダイレクトしても設定をいじったりする必要がない https://t.co/yNlP0vHbeQ」 / Twitter
ぬるぽへさんはTwitterを使っています 「どっちかっていうとこっちだった https://t.co/k2XYLQuIr9」 / Twitter
ぬるぽへさんはTwitterを使っています 「デバッガがいまいち誰もが使う選択肢になり切れてないのって、使うのが気軽じゃないからだと思うんですよね 例えば1. 引数渡しづらい 2. 何ならラッパースクリプトからバイナリが起動されるのでデバッガから起動できない 3. ビルドシステムが大きくてデバッグビルドがやりづらい とかはよくある」 / Twitter
こりん@VRさんはTwitterを使っています 「Visual Studio CodeでUML書くのにPlantUML拡張使ってたんだけど、Markdown Preview Enhancedに替えたら図が自動で更新されるの便利すぎる」 / Twitter
Markdown Preview Enhanced - Google 検索
kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「VS Code では VSCoq っていう拡張機能入れたら Coq IDE みたいな機能が使えるようになるんだね より快適に証明が書けるようになった Alt+↑/↓で先の行に進んだり巻き戻したりできる https://t.co/bOndAg5dXJ」 / Twitter
mizchiさんはTwitterを使っています 「.vscode/extensions.json の reccomendations にそのプロジェクトで入れてほしい extension 書いてコミットしてる」 / Twitter

Extensions for Visual Studio family of products | Visual Studio Marketplace
Code Outline - Visual Studio Marketplace
EditorConfig for VS Code - Visual Studio Marketplace
PrintCode - Visual Studio Marketplace
Settings Sync - Visual Studio Marketplace
Sort lines - Visual Studio Marketplace
Vim - Visual Studio Marketplace
vscode-clangd - Visual Studio Marketplace
Bracket Pair Colorizer - Visual Studio Marketplace
hexdump for VSCode - Visual Studio Marketplace
Windows Terminal Utility - Visual Studio Marketplace
Announcing Support for Native Editing of Jupyter Notebooks in VS Code | Python
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
VSCode rdbg Ruby Debugger - Visual Studio Marketplace
C/C++ - Visual Studio Marketplace
microsoft/pyright: Static type checker for Python
Markdownでスクショ画像をペーストする(VS Code)
Smart Selection搭載のVisual Studio Code用拡張機能「Python」 | TECH+
Hex Editor - Visual Studio Marketplace

Terminal tabs

Takashi KawasakiさんはTwitterを使っています 「どこにあるのかわからん。今日の段階ではまだ出てこない?? No "terminal tabs" on the command palette... How to enable it?」 / Twitter
Daniel ImmsさんはTwitterを使っています 「Terminal tabs are available for testing in @code Insiders, we'd love to hear your feedback! Check out the screenshot put together by @sagebind which shows off the new feature 😍 https://t.co/Ipnn0mLRvY」 / Twitter
Daniel ImmsさんはTwitterを使っています 「@espresso3389 If you're on insiders you can drag your tabs into the editor or right click them and select "Move to Editor Group" https://t.co/bamqqSJ9n5」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「ここまでなってくると、割とWindows Terminalも要らなくなってくる感じではある。まぁ、まだ細かな制限はあるだろうけど。 https://t.co/aMvoA0m67X」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Windows TerminalにはSetting Syncがないのが問題なんだよなぁ。VSCodeは設定はSyncされるから、こっちでカスタマイズをするといろんなところで使えてうれしい。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「VSCodeの良いところはVSCodeの開発者はVSCodeを間違いなく使ってるというところだよな。かゆいところがよくわかる。」 / Twitter

窓の杜

「Visual Studio Code」が設定の同期に対応、Insider版でテスト中 - 窓の杜
「Visual Studio Code」の2020年1月更新が公開 ~リファクタリングリネームにプレビュー機能 - 窓の杜
グローバル検索を追加、列モード選択でさらに使いやすく~「Visual Studio Code」の2020年2月更新 - 窓の杜
「Visual Studio Code」の2020年3月更新、ファイルの変更履歴を表示する“タイムライン”を追加 - 窓の杜
シンタックスハイライトを最大で3倍高速化 ~「Visual Studio Code」の2020年4月更新 - 窓の杜
待望の設定同期機能が安定版に ~「Visual Studio Code」2020年7月更新 - 窓の杜
「Visual Studio Code」2020年8月更新、「Git」でのトラブルを防止する新オプションを追加 - 窓の杜
「Edge」の開発ツールを統合し「Visual Studio Code」でWebアプリの開発を完結 - 窓の杜
「Visual Studio Code」2020年10月更新、Python開発に必要な一式をセットアップする「Coding Pack for Python」も提供 - 窓の杜
トラブルの原因となる拡張機能を素早く特定 ~「Visual Studio Code」の2020年11月更新 - 窓の杜
無償コードエディター「Visual Studio Code」の2021年1月更新、v1.53が正式リリース - 窓の杜
GitHubのURLをちょろっと書き換えるだけでコードを「Visual Studio Code」で閲覧できる素敵なサービスが話題に - やじうまの杜 - 窓の杜
Microsoft、「Visual Studio Code」v1.54を公開 ~Apple Silicon(M1)に対応 - 窓の杜
Microsoft、「Visual Studio Code Installer for Java」をリリース - 窓の杜
無償コードエディター「Visual Studio Code」v1.55が公開 ~「Raspberry Pi OS」に正式対応 - 窓の杜
「Visual Studio Code」の4月更新 ~タブ切り替えのターミナルをプレビュー提供 - 窓の杜
「Visual Studio Code」に不審なリポジトリを安全に扱える「制限モード」 - 窓の杜
ターミナルをエディター領域へ作成・移動 ~「Visual Studio Code」2021年6月更新 - 窓の杜
「Visual Studio Code」に内蔵サーバーでWebアプリをプレビューできる拡張機能が登場 - 窓の杜
貼り付けたコードの言語をAIが自動で推測 ~「Visual Studio Code」の2021年8月更新 - 窓の杜
「Visual Studio Code」2021年9月更新、エディターの細かい使い勝手向上に注力 - 窓の杜
Webブラウザーで「Visual Studio Code」が完全動作 ~「vscode.dev」にアクセスするだけ - 窓の杜
「Visual Studio Code」に「Trojan Source」攻撃への対策が導入 ~2021年10月更新 - 窓の杜
「Visual Studio Code」2021年11月更新でテーマカラーをインストールせずに体験可能に - 窓の杜
「Visual Studio 2019」「Visual Studio Code」がWindows 11のストアアプリから入手可能に - 窓の杜
「Visual Studio Code」に新しいサイドパネル、レイアウトの柔軟性が飛躍的に向上 - 窓の杜
Web版「Visual Studio Code」がオフライン動作に対応 ~PWAとしてインストール可能に - 窓の杜
戻る・進む処理を一から作り直した「Visual Studio Code」2022年2月更新(v1.65) - 窓の杜

マイナビニュース

Webブラウザで開発できる、インストール不要のWeb版VSCode登場 | TECH+
Microsoft、Visual Studio Code October 2021(バージョン1.62)リリース | TECH+
Visual Studio Code November 2021(バージョン1.63)リリース、Microsoft | TECH+
Microsoft、Visual Studio Code January 2022(バージョン1.64)リリース | TECH+

blog

vscodeで重複行の削除 - 誰にも見えないブログ
パイプを使って標準出力をvscodeのウインドウに表示する - 誰にも見えないブログ
ほにゃさんはTwitterを使っています 「vscode, gnuplotが見れるのか https://t.co/jT52ja9c60」 / Twitter
ドッグさんはTwitterを使っています 「VS Code 内でデータを可視化してデバッグできる VSCode Debug Visualizer 便利そう | 'Visualize Data Structures in VSCode' https://t.co/ji7DCFPJyD」 / Twitter
AddyOsmani.com - Visualize Data Structures in VSCode
「Visual Studio Code」2020年3月版の新機能、時系列でファイルへの操作履歴「タイムラインビュー」、PC間で設定の同期、Undo/Redoがファイル再開後も有効など - Publickey
Visual Studio Codeが正式にRaspberry Piに対応。Notebook内のMarkdownレンダリングを強化、絵文字やKaTexによる複雑な数式など拡張可能に - Publickey
VS Code Remote - Containers を Docker Compose で使うのだー! - Mitsuyuki.Shiiba
VSCode Remote Containerで複数コンテナに接続する │ wonwon eater
Visual Studio Codeの設定ファイルを共有してチーム開発をより快適にする | フロントエンドBlog | ミツエーリンクス
EmacsユーザがVSCode だけで開発するようになって1ヶ月が経った - type t (* void *)
UMLの爆速プレビュー環境をVisual Studio Code + PlantUML Server on Dockerで簡単に構築する | DevelopersIO
Visual Studio Code C++ December 2021 Update: clang-tidy - C++ Team Blog

infoQ

Visual Studio CodeがJava IDEの能力を強化
GitpodがOpenVSCodeサーバプロジェクトを発表し、開発者がアップストリームVSコードを実行可能に
Microsoftがブラウザで動作するVisual Studio CodeのVSCode.Devをローンチ

Zenn

超融合!時空を越えた絆 Neo Vim(VSCode)を試してみた
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「docker desktop for win+vscode + devcontainerをどうにかしようとしたがどうにもならない(bind mountで失敗)するのでx11経由でnative vscode + devcontainerにしたらあっさり動いた。初めからそうすればよかったのか…」 / Twitter
VSCode devcontainerでローカルを汚さずに、快適なGo言語の開発環境を整える

Qiita

Visual Studio Code チートシート - Qiita
VS Code の便利なショートカットキー - Qiita
【Visual Studio Code】 日本語のメニュー画面で使う方法 - Qiita
VSCode devcontainerを使って面倒な開発環境を作る - Qiita
VSCode Remote Containerが良い - Qiita

Anaconda Python/R Distribution - Anaconda
Visual Studio Code – コード エディター | Microsoft Azure
Embedded Software Development in Visual Studio Code - C++ Team Blog
Devcontainerを利用した自動環境構築 | Japan Developer Support Core Team Blog
Microsoft/vscode: Visual Studio Code
Visual Studio Code - Code Editing. Redefined
License - Visual Studio Code
Visual Studio Code Frequently Asked Questions
Documentation for Visual Studio Code
Visual Studio Live Share
Integrating Debuggers into Visual Studio Code
Webview UI Toolkit for Visual Studio Code

Edge

拡張

GIGAZINE

Chromeの操作を記録してPuppeteerやPlaywrightのコードに置き換えてくれる「Headless Recorder」レビュー - GIGAZINE
URLについてくる不要なパラメーターを消してくれる拡張機能「ClearURLs」レビュー - GIGAZINE
2000件以上のGoogle Chrome向け拡張機能がセキュリティを低下させているという指摘 - GIGAZINE
無料で文章やコードを校正できる「textlint」にブラウザ拡張機能「textlint editor」が登場したので使ってみた - GIGAZINE
大量に開いたタブをURLに応じて自動的にグループ化してくれるChrome向け拡張機能「Acid Tabs」レビュー - GIGAZINE
無料でJavaScriptによるトラッキングを防げるマルウェア対策拡張機能「JShelter」をフリーソフトウェア財団が発表 - GIGAZINE
Chrome拡張機能の新仕様「Manifest V3」は非常に有害だと電子フロンティア財団が非難 - GIGAZINE
ブラウザで動作&TwitterやYouTubeも購読可能なRSSリーダー「Feedbro」を使って情報収集を爆速化してみた - GIGAZINE
無料でページを保存&完全オフラインで動作&ユーザー登録不要のChrome・Firefox・Edge拡張「TagSpaces Web Clipper」 - GIGAZINE

窓の杜

「Google Chrome」の「保護強化機能」を有効化して鉄壁のセキュリティに - 窓の杜
Google、「Manifest V2」準拠のChrome拡張を段階的に廃止 ~2023年には利用不能に - 窓の杜

blog

GhostText: 好きなブラウザでの入力を好きなエディタで行う
Webブラウザの拡張機能を標準化へ、Apple、Google、Mozilla、マイクロソフトらがW3C WebExtensions Community発足 - Publickey
PDF Translator 使い方 - pipbcmsi’s diary

ドキュネオさんはTwitterを使っています 「tenntennさんに収録のテクニック教えてもらいました 🙏 * 録画中に喋りをミスった場合、そのまま喋り直して、編集でカット * QuickTimeで録画して.movで保存 * Picture-in-Picture Extensionを使えばセルフィ埋め込みが可能 * カメラ横に人形を置いてそれに話かける * カメラ横にカンペを表示」 / Twitter
Chromeブラウザ拡張機能の調査により、人気のある拡張機能のパフォーマンス影響が明らかに
Create Link - Chrome ウェブストア
Google 翻訳 - Chrome ウェブストア
PDF Viewer - Chrome ウェブストア
Tracking Token Stripper - Chrome ウェブストア
Wayback Machine - Chrome ウェブストア
Google アナリティクス オプトアウト アドオンのダウンロード ページ
テキストエンコーディング - Chrome ウェブストア
Picture-in-Picture Extension (by Google) - Chrome ウェブストア
Vimium - Chrome ウェブストア
ふりがな付与機能・サテライトオフィス - Chrome ウェブストア
Twitterで消せない「おすすめ」を消すChrome拡張
iCloudパスワード - Chrome ウェブストア
Microsoft Power Automate - Microsoft Edge Addons
PDF Translator - Chrome ウェブストア
yoshinobc/PDF-Translator: PDF Translator Chrome-extension
Microsoft エディター、スペルと文法のチェック
Microsoft Edge アドオンストアの開発者ポリシー - Microsoft Edge Development | Microsoft Docs
DeepL翻訳(ベータ版) - Chrome ウェブストア
DeepLでPDFファイルのレイアウトを崩さず丸ごと翻訳できるサードパーティChrome拡張機能「DeepL Opener」を使ってみた - GIGAZINE
DeepL opener - Chrome ウェブストア
Cookieなどを削除してペイウォールを解除するブラウザ拡張機能「Bypass Paywalls Clean」 - GIGAZINE

早過ぎる新「Microsoft Edge」のリリースサイクルを緩和する「延長安定版チャネル」とは:企業ユーザーに贈るWindows 10への乗り換え案内(98) - @IT
IE11 サポート終了の歴史 | blog.jxck.io
Microsoft、「Internet Explorer 11」のサポート終了を発表、~猶予期間は約1年、2022年6月15日まで - 窓の杜
Internet Explorer 11のサポートが2022年6月で終了 - PC Watch
マイクロソフトは、2022年までにInternet Explorer 11を廃止します。|自作.com
文書作成など、Chromeのアドレスバーからコマンド呼び出し可能に - PC Watch
Edgeのタブ共有機能を1カ所に集約した「Desktop Sharing Hub」- 阿久津良和のWindows Weekly Report | マイナビニュース
「Edge縛り」に見るMicrosoftの姿勢はいただけない - 阿久津良和のWindows Weekly Report | マイナビニュース
拡張が進むEdgeは高機能化なのか肥大化なのか - 阿久津良和のWindows Weekly Report | マイナビニュース
「Microsoft Edge 91」からダウンロードファイルへの警告が強化 - 窓の杜
「Microsoft Edge」でダウンロードしたアプリに警告が……実行して大丈夫? - やじうまの杜 - 窓の杜
Webページのリンクになっている文字列をコピーするスマートな方法 - やじうまの杜 - 窓の杜
山市良のえぬなんとかわーるど: メモ:Edge で support.microsoft.com の表示がおかしくなったら...
ASCII.jp:現在表示中のウェブページを他のブラウザで開くのをコピペより簡単にする方法 (1/2)
Internet Explorer 11 デスクトップ アプリケーションのサポート終了 – 発表に関連する FAQ のアップデート - Windows Blog for Japan
Windows 11に「規定のブラウザ」選択機能が追加、Microsoft Edge囲い込み戦略に改善の兆し - GIGAZINE

Microsoft Store

Windows File Recovery を入手 - Microsoft Store ja-JP
HEIF 画像拡張機能 を入手 - Microsoft Store ja-JP
HEIC Image Converter を購入 - Microsoft Store ja-JP
HEVC ビデオ拡張機能 を購入 - Microsoft Store ja-JP
Raw Image Extension を入手 - Microsoft Store ja-JP
AV1 Video Extension を入手 - Microsoft Store ja-JP
MPEG-2 ビデオ拡張機能 を入手 - Microsoft Store ja-JP
ProcDump - Windows Sysinternals | Microsoft Docs
DebugView - Windows Sysinternals | Microsoft Docs
RAMMap - Windows Sysinternals | Microsoft Docs
A5:SQL Mk-2 (x64) を入手 - Microsoft Store ja-JP
Microsoftがアプリストア「Microsoft Store」の一新を図っている - GIGAZINE
Microsoft Store のポリシーの変更履歴 - UWP applications | Microsoft Docs
Microsoft Store ポリシー - UWP applications | Microsoft Docs
Microsoft Store ポリシー改訂、Chrome や Firefox の公開が可能に | スラド デベロッパー
Windows ストアにアプリやゲームを公開する – Develop for Microsoft
新デザインのMicrosoft StoreアプリがWindows 10に展開 - PC Watch
新Microsoft StoreがWindows 10でも利用可能に - 阿久津良和のWindows Weekly Report | マイナビニュース
AndroidスマホのゲームがまもなくWindows 10/11でプレイ可能に - PC Watch
Epic GamesやDiscord、ZoomなどがWindowsのストアから利用可能に - PC Watch
Windows 11ストアでWin32アプリのアップデートができない|自作.com
マイクロソフト、「Windows Subsystem for Android」をWindows 11のWindows Insider Program向けに配布開始、KindleなどのAndroidアプリが実行可能に - Publickey

WSL

その他

Microsoft、システム監視ツール「Sysmon」のLinux版オープンソースで公開 | TECH+
lsofの使い方まとめてみた - CubicLouve
ifconfigコマンドとipコマンドの違いと比較 – エラーの向こうへ
linux debugfs - Google 検索
Darling | macOS translation layer for Linux
1Password for Linux beta is now open 🎊 🐧 🎊 | 1Password
X.Org Serverは見捨てられたソフトウェアなのか | スラド オープンソース
Linuxで発表動画を撮る | κeenのHappy Hacκing Blog
AppArmor - Ubuntu Wiki
Security - AppArmor | Server documentation | Ubuntu
Yubikey覚書 | teqblog
超入門USDT - ローファイ日記
Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
Linux カーネルでの Sphinx 利用法を見てみよう - Hack like a rolling stone
The Linux Kernel documentation — The Linux Kernel documentation
Enterキーが押されるのを待たずに、標準入力から文字をキャプチャします
if0604_60.pdf
Windowsマシンを使う - in neuro
Ubuntu 20.04 LTS : NVIDIA ドライバーインストール : Server World
remmina - Google 検索
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ansible Collections を使ってみよう! - 赤帽エンジニアブログ
screen serial - Google 検索
Ubuntuのインストール時に設定すること | OsaruSystem
fbiとfbvのインストール・設定 | ペンギンの道しるべ
【systemd】Type=notifyについて調べたメモ - 地方エンジニアの学習日記
WindowsにWSL2とDockerをインストールする手順 | カフーブログ
Verilatorのリグレッションテスト用にWSL2上にDocker環境を構築する試行 - FPGA開発日記
WSL2でMySQLを起動するときは mysqld --daemonize を使う - そーだいなるらくがき帳
WSL2のUbuntuにpdftkをインストールするためのsnapのためにsystemdを起動する(必要はない)
リモートマシンのルートファイルシステムをぶっ飛ばした話 - 覚書
2021年10月13日 Snapにもっと自由を ―Ubuntu開発者によるSnapサーバのオープンソースオルタナティブ:Linux Daily Topics|gihyo.jp … 技術評論社
Windows 11ビルド22518は、音声アクセス、ウィジェット、WSLに大きな変更をもたらします|自作.com

ssh

NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「vs code remoteでhostがWindowsの時にssh + agent forwardってどうするのがいいんだろうな。そもそもwindowsでのssh-agentが魔境っぽい https://t.co/qpQrmejS2h」 / Twitter
混沌を極めるWindowsのssh-agent事情 - Qiita
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8iPT8zgYvf そして今ならなんと標準サービスでssh-agentが動くことを知る」 / Twitter
わたなべごうさんはTwitterを使っています 「@knok こちらの stream-connector を使うと、Win標準の ssh-agent から、msys or cygwin/wsl1 or wsl2 いずれにも一発でソケットトンネルつくってくれるので集約できますね。https://t.co/g03ftElHB9 鍵管理系アプリだと KeePassXC とかが Win標準の ssh-agent への鍵登録に対応してたりします」 / Twitter
stream-connector - Programming Field
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@wtnbgo KeePassXC使えるのはいいですね。情報ありがとうございます」 / Twitter
Kaz Nishimura, C++Unit​X (cppunitx) 作者さんはTwitterを使っています 「@knok WSL 上では ssh.exe を使うことにするといろいろ楽」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@kazssym ssh_configのwildcardの扱いがちょっと面倒なんですよね… 当初git for winのssh.exeを使ってたのですが、利用可能なセッション数に上限があるようで、今はwin10標準にしています。wildcardはgit bash経由で処理させています」 / Twitter
[Windows] VSCode で使うssh-agentについて VSCode Remote Development - Boards - Crieit

tmux

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更ながらの tmux、PuTTYが切れて再接続しても、tmux a で、バックログを含めたセッション再開できるのがとても良いね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二つのターミナルから、tmux a とやると、相互ミラーリング的な表示になるのね…何の役に立つか判らないけど面白い。」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu レッスンに使えそうですね」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「TeraTerm愛用してるから普通に腹立つんだけど💢 以前、タブ式のターミナルを使った事あるんだけど、ありゃダメだった。 cscopeでソース見ながら、emacsで自前コードを書いて、シェルでゴニョゴニョする感じなので、いちいちタブを切り替えるワンステップ入るのがね。 https://t.co/N2AFuiX4zc」 / Twitter
時代遅れなソフトウェア達
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「タブ式だの画面分割だので頑張るくらいなら、横長のウルトラワイド液晶ディスプレイ買えばいいじゃん(煽」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@kkaigai タブ式のターミナル、面倒なのよくわかります。参照しながら仕事するから、常に3つのターミナル画面立ち上げてますが、ブラウザと被ってしまって…。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「tmux の Ctrl+B は「他のショートカットに被らない」を優先と思うのだけど、多用する場合は使いづらい。 先人の定番とかあるのかな?」 / Twitter
鯉江さんはTwitterを使っています 「@shirouzu わたしはC-l(える)にしてます。tmux外の環境でおしてしまっても被害が少ないのが理由です。 一般的にはC-]が多いんじゃないかと(個人的想像です)。ほかとキーバインドがかぶりにくいので。わたしはviのタグジャンプでつかうので避けました。 https://t.co/u9LZFsR4Hd」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど、良いかもですね。 ありがとうございます。」 / Twitter
QGBCSさんはTwitterを使っています 「@shirouzu Ctrl+`」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とほほ氏は Ctrl-j かな? https://t.co/SsAqQuE8fL https://t.co/Ird5pasp0h」 / Twitter
tmux入門 - とほほのWWW入門
Using tmux for automating interactive reverse shells | by Ulisses Alves | Jul, 2021 | InfoSec Write-ups
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「メモ 設定リロード: tmux source-file ~/.tmux.conf tmux.conf で カレントディレクトリ付で新規ペイン: bind - split-window -v -c '#{pane_current_path}' bind \\ split-window -h -c '#{pane_current_path}' (私は -,\ を水平,垂直セパレータにしてる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY内の tmux で scroll buffer の clipboardコピーができないの、よく考えたら当たり前だった。 (X経由の何かを使わないとダメと) https://t.co/A7Z3g9w8fk」 / Twitter
vim - How to copy from tmux running in putty to windows clipboard - Stack Overflow
yutkatさんはTwitterを使っています 「ターミナル使うとき、Neovimのターミナル使ってるか、tmux使ってるか、その他(たぶん端末アプリ自体の分割とか)のどれを使ってるかのアンケート 個人的にはNeovimのターミナルじゃないとファイル名からジャンプとかできなくてつらい印象ある https://t.co/FjEJmzfnS5」 / Twitter
How do you guys work with terminals? : neovim
yutkatさんはTwitterを使っています 「neovim’s built-in terminalが最下位とか正気か・・・!?」 / Twitter
hikaliumさんはTwitterを使っています 「Tmuxのセッションを再起動後に復元できるプラグイン、めっちゃ便利じゃん!ってなっている(ユーザーが本当にほしかったものだ) Restore Tmux Sessions https://t.co/qJZLfm9buk」 / Twitter
Restore Tmux Sessions — tech.serhatteker.com

シェル

zsh

.zshrcに書いておくべきこと - sanoto_nittc’s diary
SODA NoriyukiさんはTwitterを使っています 「@kazuho これは zsh の echo が、デフォルトだと System-V /bin/echo と同様な動作をするせいですね。 setopt bsdecho しておけば、echo が \ を解釈するのを止められると思います。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho zshのデフォルトって、他のBourne shell系シェルとの違いが結構大きいので、~/.zshenv に setopt bsdecho globsubst ksharrays nonomatch shwordsplit あたりを設定しておいた方がいいかもしれません。 (詳しいことは @satoh_fumiyasu さんの https://t.co/hGCN2f3Dmd 参照)」 / Twitter
zsh でシェルスクリプトを書くときの留意点 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「@n_soda @kazuho zsh を Bourne shell 互換設定にすると動かない zsh 拡張機能もあるので、それらを有効にして利用していると困ることあるかも。昔、いろいろカスタマイズしている自分の .zshrc で試したとき何かが動きませんでした。デフォルトなら影響ないと思うけど、たぶん。」 / Twitter
hkobaさんはTwitterを使っています 「.oO(…少数派の zsh 主義者からの意見ですが、せっかく zsh 使うのに setopt shwordsplit してしまうのは、 zsh の設計思想に逆行してる感があって残念と思ってますん…もちろん進歩より posix sh 互換性という優先順位もあるとは思いますが…)」 / Twitter
hkobaさんはTwitterを使っています 「せっかく配列をまともに使えるモードが用意されたのに、それを殺すなんて勿体ない、という考えです。 (正確に言えば、スカラー変数を配列代わりに使う機能をオフにするモード)」 / Twitter
hkobaさんはTwitterを使っています 「@n_soda やはりそこは使いますよね~ で、 "$file" を単に $file と書いても完全に安全なのが、 zsh の良いところかなと。 ファイル配列への追加も argv+=($newfile) 辺りで。」 / Twitter
Zshで環境変数とその値を補完する

zx

Teppei SatoさんはTwitterを使っています 「UNIX的なシェルコマンド、パイプの強さを活かしつつ、プログラミング部分はJSで書けるっていういいとこ取りのバランスが良い。コンソールのアウトプットもきれいい / “GitHub - google/zx: A tool for writing better scripts” https://t.co/DFhZf07nr1」 / Twitter
google/zx: A tool for writing better scripts
Teppei SatoさんはTwitterを使っています 「チームで使うかっていうとあれだけど、JS系のプロジェクトでちょっとしたビルド系のスクリプト書くときは良さそう。特殊な知識なくても読めるし。npx zx script.mjs ワンコマンドでいけるし」 / Twitter

oilshell/oil: Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
nuta/nsh: A command-line shell like fish, but POSIX compatible.
ShellCheck – shell script analysis tool
高梨陣平さんはTwitterを使っています 「はてなのブコメにもあったけれども、bashスクリプトの先頭には #!/usr/env bash set -euo pipefail これを入れましょう。変数の未設定での実行が阻止されます。」 / Twitter
カナやん@みかん本停滞中さんはTwitterを使っています 「@jingbay /usr/bin/envだと思う。」 / Twitter
stさんはTwitterを使っています 「@jingbay これは変数展開の:?を付けるよりも便利に使えそうですね!(用途に応じて使い分け)」 / Twitter
bash スクリプトの実行中上書き動作について
自己追記によるFizzBuzz
c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
Kazuo MoriwakaさんはTwitterを使っています 「きっとこうなる人がいるけどrpmは大丈夫だから安心してアップデートしてね。 シェルスクリプトを(方法はしらないけど)置き換えて事故ったー → よくわからんけど動かしてるシェルスクリプト書き換えるのまずい → シェルスクリプトを含むrpmパッケージ更新したくない ↑↑rpmは大丈夫↑↑」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「スクリプトだろうとバイナリだろうとファイルを上書きする方法でプログラムを更新するのがダメなのであって、インストールコマンドの類はその辺をケアしてる(mvで更新してるか、あるいはrm&&cpで更新してる)から大丈夫だし、シェルスクリプトかどうかは関係ないっス。」 / Twitter
市川 真一さんはTwitterを使っています 「@n_soda Windows だと実行中の exe ファイルを上書きできない仕様で救われてる案件もあるのかもと思いました。あれって面倒でもあるのですが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tenpoku1000 あるでしょうね。UNIXでも実行ファイル自身でありかつlocal filesystemなら Text busy エラーが出て上書き不能ですがLinuxだとこのチェックは廃止方向だとか: https://t.co/ykPatqFt7q」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ファイルをインストールする時は、一時ファイルに書き込んでからmvすべし、という古からの教えはこのためにあったのじゃ。」 / Twitter
junさんはTwitterを使っています 「>途中から修正したシェルスクリプトの再読み込みが発生し、結果的に未定義の変数を含むfindコマンドが実行されてしまいました。 https://t.co/25rxjWiXOR おそろしや…」 / Twitter
file_loss_insident_20211228.pdf
Kazuho OkuさんはTwitterを使っています 「プログラマとしては、ファイルをいつ読み終わるかの保証なんて普通しないし、実行中の書き換えはスクリプトであれ設定ファイルであれ禁止だとしか言いようがない(SIGHUP受信したら読み直すとかはあるけど)。まあ、守れなくて失敗するのは分かる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「bashの実行しながら読み込みを踏む前に、実行ファイルをftruncateしてsegv踏むのが普通じゃないの?」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「gdb で親に入って親の環境をいじる手法で外部 cd コマンドを実現するての、たぶん @tanaka_akr さんの記事で見たから丸パクリなんだけど、見つからないなあ、と、思ってたんだけど、がんばって探したら binary hacks にあった https://t.co/nlZAY1PATc」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@miura1729 @mattn_jp exportコマンドをインストールしていないのでは? https://t.co/fgOLbEs5ex」 / Twitter
export command
shinichiro hamajiさんはTwitterを使っています 「僕のやつは親が https://t.co/qB21I8LTDy なので、 system(x) は要するに sh -c x なので親の親を見ないといけない、という差分があった (だから gdb 二回使ってる)」 / Twitter
Miura HidekiさんはTwitterを使っています 「シェル書いてみます while (1) system(gets()); (冗談です。念のため」 / Twitter
シェルスクリプトの set -e は罠いっぱい - Togetter
シェルスクリプトのset -eを正しく使ってエラー処理を楽にしよう! - Qiita
シェルスクリプトの罠「whileの中の変数が見えない」の推奨の解決方法5選 〜 パイプ・サブシェル問題 - Qiita
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Idempotent (複数回実行しても安全) な Bashスクリプトを書くコツ。mkdirには-pをつける。rmやln -sには-fをつける。ファイルに行を追記するときは (すでに追加されてないか) 前もってgrepで確認。mkfsするときはblkidで確認。mountするときはmountpointで確認。 https://t.co/ey5hsfPQyQ」 / Twitter
How to write idempotent Bash scripts · Fatih Arslan
ドッグさんはTwitterを使っています 「シェルのコマンド履歴をディレクトリごとに持つのは良いアイデアかも https://t.co/gElBKTCgcW」 / Twitter
natethinks/jog: Simple script to print the last 10 commands you ran in the current directory
シェルスクリプトを書くときにいつもやるやつを調べた - Please Sleep
あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」:Linux Daily Topics|gihyo.jp … 技術評論社
satさんはTwitterを使っています 「shell(bashなどの特定のshellだけかも)で"$_"が「直前に実行したコマンドの最終引数」と言うことを知っていたかどうか。たとえば以下のようにすると一行目で作ったディレクトリに移動できる ``` $ mkdir -p path/to/dir $ cd $_ ```」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi meta-.で直前の行の最後の引数が入力できるというのは。」 / Twitter
グロブ - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「bash でワイルドカード引数でコマンド実行すると、マッチしない場合は bash がエラーメッセージを出してコマンドは実行されないという挙動という認識だった。 最近気づいたのは、展開できないとワイルドカードをそのままコマンドに渡す、みたいな挙動になっているのね…危ない例とか無いのかしらん?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「すごいわかる。実行したコマンドの history は覚えてるんだし、結果も覚えておいてくれたらいいやん。どうせテキストだし、メモリ富豪な現代においては、常に覚えておいてほしい」 / Twitter
_ko1さんはTwitterを使っています 「shell よく知らないんですが、nantoka shell で、スクリーンに出てきた stderr/out の出力を、コマンド実行後に得る、みたいな方法ってありますかね。裏で勝手に stdout/err をいい感じにファイルとかメモリにのっけておく、でもいいんだけど。数千行、毎回 terminal からコピペしてるのがつらい。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「こういう用途には Emacs のシェルモードがおススメ! (CTRL-c CTRL-s で直前に実行したコマンドの出力だけをファイルへ書き出せます)」 / Twitter
ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@shinji_kono axiom は古代ギリシャ語 at-幹名詞 ἀξίωμα axioma が、フランス語の axiome を経由して語尾が取れてしまった形なので、ラテン語やギリシャ語の o-幹名詞(例 datum, criterion)とは違いますね。 もし axioma のまま入ってきていたら、 lemma のように axioma, axiomata みたいになっていたはずです」 / Twitter
わたなべごうさんはTwitterを使っています 「tee とかで自前で記録とるのではなく、shell 側の機能としてほしいやつですね。Jupyter Notebook で bash カーネルがたぶんやりたいことに近いと思われる。参考記事 https://t.co/RFBvh5JwZ9  今だとnushell カーネルとかをためしてもいいかも」 / Twitter
シェル芸人のためのJupyter環境 - A painter and a black cat
SODA NoriyukiさんはTwitterを使っています 「Emacsのシェルモードでコマンドの出力を切り出す場合だと TAB や 制御文字の多くがそのまま保存されてるってのも地味に嬉しい。 xtermからのコピペだとダメ(TABはスペースに展開、制御文字は消える)だし、tmux show-buffer でもダメっぽい。 ただシェルモードでもESCシーケンスはダメ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@BsdHacker 直前のコマンドの出力だけを手軽に切り出したいってことなので、scriptだと切り出すのが不便じゃないかと。 ・macOS iTerm2 + shell integration: https://t.co/QfGzCbR4eB ・zsh preexec: https://t.co/pKjj3GWbiu ・Jupiter Notebook: https://t.co/5upu4eTh2o ・emacsシェルモード あたりですかね」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「これ、知人と話してたら https://t.co/8h0hxJIYhw を作ってくれたけど自分でやりたくなって https://t.co/Ytm1P64Ixw を作って使ってる。 screen が動いてる前提の作りで、 less /tmp/tanlog/make/P とかで前に使った make の出力が残ってる https://t.co/5tEBimWAJI」 / Twitter
omakoto/zenlog
test/tanlog.rb at master · shinh/test
shinichiro hamajiさんはTwitterを使っています 「端末レベルで記録すると ssh とかも残るから便利なんだよなあ。このへんは UNIX 哲学とか忘れて、端末+shell+screen は単一のアプリにした方が便利だしやれること増えるんじゃないかな、と思ってる。 ref: https://t.co/uTVKnmy9xj」 / Twitter
はじめてのにき(2020-06-30)
Miura HidekiさんはTwitterを使っています 「teeでリダイレクトするとかそのままリダイレクトするとかあるけど、逆にこういうことしたい時はファイルが巨大になり過ぎるきらいがあるから、何らかのリミッタが欲しい所」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「bash乃バージョン間の差異で悩まされた経験があるのであまり同意できない…」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最近、bashが最強のプログラミング環境であると思い始めている。圧倒的なポータビリティとスケーリングを実現できる。」 / Twitter
fish の始め方 – GitHub 出張所 – プログラム関係のブログはここに
Kazuho OkuさんはTwitterを使っています 「シェルってだいたい dynamic scope なんじゃないの? (というかperlのlocalはシェル由来だったりしないのかしら)」 / Twitter
matsuu (ウー馬場ーイー2)さんはTwitterを使っています 「せやな。自分もmanで-exec {} +を見つけてから積極的に使ってる。めちゃ高速だし。削除については-exec rmではなく-deleteを使ってます。わいわい。 / “POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita” https://t.co/LLaKsOIh9M」 / Twitter
POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
Kazuyoshi KatoさんはTwitterを使っています 「ブログを書きました。我々中年プログラマ諸氏はPerl書けるけど封印しているじゃないですか。シェルスクリプトもそろそろ封印したら良いのではという話です。インターンの人に「この比較のところ、空白が入ると壊れるからクオートして...」とかコードレビューでやりたくない。 https://t.co/K9igYPQiqy」 / Twitter
シェルスクリプトを書くのをやめる - blog.8-p.info
伊津野 英克さんはTwitterを使っています 「シェルスクリプトが色々あれなのは事実だけど、ランタイムが最初から入っててライブラリの依存性がローカルに閉じてて、ファイル操作が容易で grep 相当の機能が必要となるとあんまり選択肢がないんだよなぁ。」 / Twitter
ぬるぽへさんはTwitterを使っています 「一時期Bashスクリプトにコンパイルするまともな文法のalt bash scriptみたいなのを作ってたことがあるんですが、結果として何が起きたかというとめちゃくちゃシェルスクリプトに詳しくなってシェルスクリプトが書けるようになった」 / Twitter
7594591200220899443さんはTwitterを使っています 「とりあえずシェルスクリプトは文法がクソすぎてダメってのはあのBill Joyですら二十代のころに同じ発想でcsh書いて失敗したやつだからな。はしかみたいなもんです。みんな一度はやる。」 / Twitter
環境変数 PATH に空文字があるとカレントディレクトリが指定されているのと同じ意味になる
Rui UeyamaさんはTwitterを使っています 「tacコマンド(catの反対だからtac)の新たな使い方を知った。コマンドfooの出力を全部バッファリングしたいときは foo | tac | tac とすればいい。」 / Twitter
ドッグさんはTwitterを使っています 「このページに載ってるシェル起動時のスクリプト読み込みフローが便利🙄 | 'Shell startup scripts' https://t.co/k16JJX3Y8v https://t.co/7PkE0kjYuY」 / Twitter
Shell startup scripts — flowblok’s blog
ダウンローダーGNU Wgetの後継となる「GNU Wget2 2.0」が公開 | OSDN Magazine
ファイル/シェル/テキスト操作のユーティリティ集「coreutils-9.0」が公開 | OSDN Magazine
mod_poppoさんはTwitterを使っています 「シェルスクリプトでisatty相当のことはtest -t fdでできる #だめぽメモ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GTFOBins - Unixで、たとえシェルを直接実行できなくても、これらのコマンドさえ実行できれば間接的にシェルを起動したり、任意のファイルが読めたりするコマンド一覧。バイナリをsetuidしている場合は特に注意。 texからシェルが起動できるとは初めて知った。 https://t.co/eZU3I8kmGg」 / Twitter
GTFOBins
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「あと $PAGER を勝手に呼ぶコマンド (dmesgとか) も要注意。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「Linuxのdmesgって、-Hオプションつけると内部的に$PAGERを呼び出すのか… ちょっとびっくり」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Bash関数は func() { ... } という構文のほかに func() ( ... ) という構文も許されている。こうすると関数本体はサブシェルの中で実行され、状態は完全に分離される。効率を除けば、こちらのほうがおすすめ。 https://t.co/vBY8Q1SubN」 / Twitter
Cuddly, Octo-Palm Tree: Bash functions are better than I thought
Kazuho OkuさんはTwitterを使っています 「for と while はどちらもALGOL68で … do … od だったけど、Bourne shell では od コマンドが先に存在したために done になったと。なるほどー https://t.co/vny7WVtyWu」 / Twitter
history - Is it true that "do ... done" blocks in Bash do not end with "od" because od existed before Bash/Bourne shell? - Retrocomputing Stack Exchange
えびちゃんさんはTwitterを使っています 「if を fi で閉じるなら for と while も rof と elihw で閉じろよとなる」 / Twitter
bashで手軽に非同期処理しつつ実行結果を簡単に受け取る方法 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

apt

第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
aptコマンドチートシート - Qiita
Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape
「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 | Linux Fan
WSLのUbuntu環境で「apt」コマンドを使ってパッケージを更新/管理する:Tech TIPS - @IT
KeN's GNU/Linux Diary(2018-07-28)
第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第676回 aptコマンドの最新機能あれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第677回 aptで使うsources.listのオプションいろいろ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

ASCII.jp

ASCII.jp:20H1の完成とともにWindows Subsystem for Linux 2が来る (1/2)
ASCII.jp:Windows 10のWSL2からGPUが使えるようになった (1/2)
ASCII.jp:WSL2にCUDA on WSLをインストールする (1/2)
ASCII.jp:WSL2で外部ストレージをマウントできるようになった (1/2)
ASCII.jp:Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う (1/2)
ASCII.jp:LinuxのGUIアプリケーションに対応するWSL2 (1/2)
ASCII.jp:WSL2ではRDPでLinux GUIアプリのウィンドウを表示する (1/2)
ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)
ASCII.jp:WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた (1/2)
ASCII.jp:WSL2でのGUIアプリケーションを動かす「WSLg」の仕組み (1/2)
ASCII.jp:WSL2で用いるルートファイルシステムの容量を拡大する方法は?
ASCII.jp:増えたWindows Subsystem for Linuxのバージョン、またUSBデバイスの接続が可能に (1/2)
ASCII.jp:WindowsでLinux GUIアプリを動かす「WSLg」のWindows 11での状況を見る
ASCII.jp:WSL(Windows Subsystem for Linux)のカーネルは差し替えられる (1/2)

窓の杜

Canonical、「Ubuntu 20.10」の提供を開始 - 窓の杜
“wsl --install”で「WSL」を一発セットアップ ~Dev版「Windows 10」Build 20246 - 窓の杜
プレビュー版「Windows 10」のタスクバーにニュース機能 ~WSL起動時のコマンド実行にも対応 - 窓の杜
「Docker Desktop 3.0.0」が正式リリース ~差分更新によりアップデートが手軽に - 窓の杜
WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー - 窓の杜
「Docker Desktop 3.3」が公開 ~アップデート通知を行い、勝手に更新しないように - 窓の杜
「Docker Desktop 3.4」が公開 ~有償版でないと更新スキップできないと誤解を招くリマインダーを改善 - 窓の杜
WSLがコマンド一発でインストール可能に - 窓の杜
「Windows 10 バージョン 21H2」の新機能が実装、Release Previewチャネルで提供開始 - 窓の杜
「Ubuntu 14.04」と「Ubuntu 16.04」のライフサイクルが計10年へ延長 - 窓の杜
完全な互換性と改善されたI/Oパフォーマンス ~Canonical、「Ubuntu」の「WSL 2」対応を発表 - 窓の杜
ストアにある3つの「Ubuntu」の違いは? ~WLSの「Ubuntu」をアップグレードする方法 - やじうまの杜 - 窓の杜
Microsoft、Linux版「Sysmon」をオープンソースプロジェクトに - 窓の杜
プレビュー版「WSL」のアイコンが「これでええんか?」とちょっと話題に - やじうまの杜 - 窓の杜
「wsl.exe --install」コマンドでインストールされる「WSL」がストア版に - 窓の杜
パスワードなどが診断データに紛れて流出、「Docker Desktop」に情報漏洩の脆弱性 - 窓の杜

PC Watch

Windows 10プレビュー版、WSLでのGPUコンピューティング対応やWi-Fiセキュリティ強化を実施 - PC Watch
Microsoft Store版WSLがWindows 11向けに提供開始 - PC Watch

GIGAZINE

MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 - GIGAZINE
Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か? - GIGAZINE

Publickey

Windows 10のファイルエクスプローラがWSL機能を統合。Linuxを示すペンギンアイコンが登場 - Publickey
個人開発者はRed Hat Enterprise Linuxを無料で最大16システムまで利用可能に、本番環境もOK。Red Hatが開発者向けプログラムの拡大を発表 - Publickey
Ubuntu 21.04正式リリース。Active Directoryとネイティブ統合、最適化されたSQL Server対応、Flutter用SDK搭載、Waylandがデフォルトに、など - Publickey
Kubernetes環境をWindows 10/macOSへ簡単にインストール。「Rancher Desktop」がオープンソースで公開 - Publickey
第671回 パッケージのアップデートとアップグレードを制御する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

技術評論社

第633回 字幕ファイルを作成し,動画に焼き込む:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第663回 Ubuntu 21.04の主な変更点:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第667回 Warpinatorでお手軽LAN内ファイル転送:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第669回 Ubuntuとデスクトップフォルダー機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第680回 LXDコンテナ上のWindowsでWSL環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第696回 UbuntuでもWi-Fi 6を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第697回 AMD Ryzen 5 5800Xで学ぶ,Ubuntuにおけるシステムの動作確認:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第698回 デスクトップ環境の2021-2022年:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

マイナビニュース

WSL 2に特化した「Ubuntu on Windows Community Preview」とは - 阿久津良和のWindows Weekly Report | マイナビニュース
WindowsとLinuxの融合をさらに進めたマウントオプション - 阿久津良和のWindows Weekly Report | マイナビニュース
Linux GUIアプリが動作する最新Windows 10 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
Linuxとの統合を目指すWindows 10 - 阿久津良和のWindows Weekly Report | マイナビニュース
WSLgをサポートしたプレビュー版WSLがMicrosoft Storeに登場 - 阿久津良和のWindows Weekly Report | マイナビニュース

infoQ

zx - より良いスクリプトを書くためのツール
Microsoftが保有する社内用のLinuxディストリビューションビルダーCBL-Marinerとは

Qiita

WSL2によるホストのメモリ枯渇を防ぐための暫定対処 - Qiita
WSLでWindows側とLinux側のパイプの使い分けについて - Qiita
待ってました CUDA on WSL 2 - Qiita
WSL上でDocker Engineが動くようになっていたっぽいという話 - Qiita
WSLのディストリビューションの切り替えに関するメモ - Qiita

Twitter

すずかさんはTwitterを使っています 「\\wsl$ でWSLのfsに入れることを知っているだけで効率が100倍くらい変わる https://t.co/4Ar76maM3R」 / Twitter
高梨陣平さんはTwitterを使っています 「あまり話題になっていないですが、WSL1と異なりWSL2はNW通信がWindows Firewallを経由しません。 WSL2はHyper-V上でWindowsと同格のゲストOSです。WSL2上でfirewallの設定が必要なので注意しましょう。」 / Twitter
FadisさんはTwitterを使っています 「WSL2でGUIなアプリケーションを動かす為に、Microsoftが独自のWaylandコンポジタを実装している、という話。このコンポジタはWestonをベースに、ルートレスでリモートのウィンドウを表示するRDP-RAILを喋れるように拡張したものらしい https://t.co/MWNdc2GCWF」 / Twitter
Microsoft Is Writing Its Own Wayland Compositor As Part Of WSL2 GUI Efforts - Phoronix
FadisさんはTwitterを使っています 「マイクロソフトがWSLの新機能WSLgの解説を行なっている話。WSLgはWSL2で動くLinux環境にWaylandとXとPulseAudioを生やし、映像、音双方でWindowsネイティブなアプリケーションと同じ感覚でLinux向けGUIアプリケーションを動かせる。GPUによるアクセラレーションにも対応。 https://t.co/FjCoG2Puwo」 / Twitter
Microsoft Posts WSLg Preview - GUI App Support With Windows Subsystem For Linux - Phoronix
knj08aさんはTwitterを使っています 「CPU依存ぽいね https://t.co/4wko9X80ZE」 / Twitter
After most recent WSL update, WSL won't start · Issue #33 · microsoft/wslg
knj08aさんはTwitterを使っています 「問題が発生している環境は i7-3770K ivy bridgeか・・・古いな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「未だにSandy Bridge搭載マシンを使っているのがいけなかったか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
Akihiko OtaさんはTwitterを使っています 「「Windowsからならファイルエクスプローラーを開いた上で,「⁠Ctrl-l」を押し,アドレスバーに「\\wsl$」と入力します。これでディストリビューションごとのファイルシステムがネットワークファイルシステムとしてアクセスできます。」 しらんかった…毎回WSL2側からcpでもってきてた…」 / Twitter
hitoさんはTwitterを使っています 「@skywalker_37th WSL2側でexplorer.exe起動してもいいんやで……」 / Twitter
Akihiko OtaさんはTwitterを使っています 「@_hito_ まじか…めっちゃキモい…」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「有用な ls* コマンド群。lsblk, lscpu, lshw, lsmod, lsof, lspci, lsusb, lslocks など。lslogins とか初めて知った。しかも util-linuxに含まれている。」 / Twitter
hackerbot.ethさんはTwitterを使っています 「ls* Commands Are Even More Useful Than You May Have Thought: https://t.co/G6ragdRv60」 / Twitter
ls* Commands Are Even More Useful Than You May Have Thought - nixCraft
ぬるぽへさんはTwitterを使っています 「WSLでsystemdが動く状態のArchやgentooなど多くのディストロをインストールできる、Distrodをリリースしました!今使ってるディストロをsystemd化することもできます。windows起動時の自動起動とポート開放もできるからぶっちゃけ最高のWSL環境ができます https://t.co/ifHqa2vOTR upvoteもできれば... https://t.co/RgT4Fic75J」 / Twitter
Show HN: Distrod – WSL2 Distros with Systemd; Arch, Gentoo and More with Systemd | Hacker News
ぬるぽへさんはTwitterを使っています 「MSからこれは脆弱性ではない(UACバイパスは脆弱性ではないという意味と、これはWSLの仕様でバグではないという二つの意味で)ことの確認が取れました、数日早ければkernel/vmでもうちょっと歯切れよく話せたね UACバイパスの中でもalways confirmにしててもconfirm出ないやつだからそこだけは注意」 / Twitter
ぬるぽへさんはTwitterを使っています 「WSL2, Windowsの管理者権限で動かしたプロセスを一匹でも動かしてると、Windowsの通常権限プロセスが権限昇格できる道を作っちゃってるの罠だよなー https://t.co/a9bPuo6ObC」 / Twitter

WSL 2使用時の注意点(BIOS(UEFI)でCPUの仮想化機能の有効化について)
WSL CUDA - Google 検索
DirectX ❤ Linux | DirectX Developer Blog
日記 (2020 年 7 月)
Linux との Windows の相互運用性 | Microsoft Docs
WSL で Linux GUI アプリを実行する | Microsoft Docs
USB デバイスを接続する | Microsoft Docs
WSLg Architecture | Windows Command Line
WSL | CLion
Little-known facts about WSL2
WSLでデータサイエンティストの作業環境を4ステップで構築する方法 | TECH+
Ubuntuでamdgpuのドライバインストールに失敗したあとGPUが使えなくなったときの対処法 | κeenのHappy Hacκing Blog
JeroenDelcour/tplot: A library for creating text-based graphs in the terminal
WSL 1 と WSL 2 の比較 | Microsoft Docs

PowerToys

PC Watch

キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」 - PC Watch
【山田祥平のRe:config.sys】あらゆるアプリを同じ操作で - PC Watch
PowerToys、PCを起動しっぱなしにできる機能でCPU高負荷となる問題を修正 - PC Watch
PowerToysがWindows 11っぽい見た目に。Fluentデザイン採用の最新版公開 - PC Watch
PowerToysがWindows 11向けにストアで配信 - PC Watch
PowerToys、安定版初のビデオ会議ミュート機能などを実装した「0.49.0」 - PC Watch
高解像度や複数ディスプレイ環境に便利!PowerToys v0.51.0公開 - PC Watch

窓の杜

「PowerToys」にMarkdown/SVGプレビューと画像リサイズ、検索ベースのタスク切り替えが追加 - 窓の杜
「PowerToys」を使いこなして効率UP! プレビュー版を一足先に体験 2020年 記事一覧
OSの使い勝手を改善する「PowerToys」がWindows 11にピッタリのモダンスタイルに - 窓の杜
「PowerToys」に新機能? マウスカーソル付近を丸くハイライトするデモがお披露目 - 窓の杜
「PowerToys」のオンライン会議支援機能がようやく安定版に、見失ったマウスカーソルを見つける機能も - 窓の杜
見失ったマウスカーソルを探す「PowerToys」機能が強化、プレゼン支援機能も追加される - 窓の杜
「Microsoft PowerToys」にホットキーでウィンドウを最前面に固定する機能 - 窓の杜
誰でも使えマウス! 「PowerToys」に新しいアクセシビリティ機能が実装へ - やじうまの杜 - 窓の杜
マウスカーソルを見逃さない! 「Microsoft PowerToys 0.55」に新しいアクセシビリティ機能 - 窓の杜
ちょっとだけPCをつけっぱなしにしておきたい……そんな時に役立つ「Awake」 - 生産性を上げる!PowerToys活用術 - 窓の杜
Macのようにシェイクしてマウスカーソルを発見できるようになった「PowerToys 0.56」 - 窓の杜
ウィンドウが他のアプリに隠れちゃうのが不便……そんなときは「常に手前に表示」 - 生産性を上げる!PowerToys活用術 - 窓の杜

ASCII.jp

ASCII.jp:Windows 10用ユーティリティ「PowerToys」がv0.16.1に 新機能をチェック (1/2)
ASCII.jp:キーやショートカットキーの変更にも対応したWindows 10用ユーティリティ「PowerToys」の新バージョン (1/2)
ASCII.jp:正式版は年内と延びるも、完成度は高まっているWindows 10向けPowerToys (1/2)
ASCII.jp:キーカスタマイズやスナップ機能が便利なWindows用ツール、PowerToys最新版の11の機能を整理 (1/2)

マイナビニュース

PowerToysに「Find My Mouse」などのマウスユーティリティ導入へ、Microsoft | TECH+
PowerRenameUIを刷新、Mouse utilities搭載の「PowerToys バージョン0.49.0」 | TECH+
Microsoft PowerToys、十字線でマウスカーソルを強調表示する機能追加へ | TECH+
PowerToys新バージョン、新機能はないが適用しておきたい更新あり | TECH+

Twitter

なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「むー。たぶんこれ、対応しないと今のGeckoではリマッピングに対応できないだろうな。Windows標準のショートカットキーハンドリングはVKに従うっぽいけど、Geckoは入力文字の方を見てるんだよね……」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PowerToysのショートカットガイド、割と便利だと思っていたのに出てこなくなってて??ってなってたのだが、呼び出すためのキーが変わってた。このキーを思い出すためのガイドが必要だな。 https://t.co/RL2mUdg2yv」 / Twitter
入谷 優さんはTwitterを使っています 「PowerToys の Keyboard Manager で Space and Shift (SandS) を実現したいので、単押しと同時押しで割り当てを変える機能はとても欲しいです。 https://t.co/kNieE3edjy」 / Twitter
[KBM] Separate function for key press vs key hold (a la dual-key-remap) · Issue #5679 · microsoft/PowerToys

Releases · microsoft/PowerToys
PowerToys/KeyboardManager.md at feature/keyboardmanager · microsoft/PowerToys
MS、Windows 10向け「キー割り当て変更ソフト」開発中。軽量なUIを約束 - Engadget 日本版
無料で使用可能なクイックランチャー機能「PowerToys Run」がMicrosoft公式のWindows 10拡張ソフト「PowerToys」に登場 - GIGAZINE
「PowerToys Run」は評判の悪いWindows 11スタートメニューの解決策だ - ソフトアンテナブログ

Power Apps

Publickey

[速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey
Excelの数式をベースにしたプログラミング言語が登場、「Microsoft Power Fx」。オープンソースで公開予定。Microsoft Ignite 2021 - Publickey
Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に - Publickey
[速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey (1)
Microsoft Power AppsでiOS/Androidのネイティブアプリ開発が可能に。Iginte 2021 - Publickey
マイクロソフト、Excel関数ベースのローコード言語「Power Fx」をオープンソースで公開。さまざまなソフトウェアでの採用が可能に - Publickey
Windows 11にRPA機能の「Power Automate」標準搭載、インストール不要で利用可能に。マイクロソフトが発表 - Publickey

窓の杜

「Power Automate Desktop」の6月更新 ~フローから別のフローを呼び出せるように - 窓の杜
デスクトップ版「Power Automate」の10月更新 ~変数を機密情報扱いにする機能を追加 - 窓の杜
「Excel」のようなローコード向けプログラミング言語「Power Fx」、初期版が一般公開 - 窓の杜
独自の入力フォームを作成可能に ~デスクトップ版「Power Automate」の2月更新 - 窓の杜

マイナビニュース

自動化ツール「Power Automate Desktop」の無償化はMicrosoftの英断 - 阿久津良和のWindows Weekly Report | マイナビニュース
世界のプログラミング言語(38) 無料になったPower Automateはマウス操作で作業自動化できる言語 | TECH+

GIGAZINE

Microsoftが文章生成AI「GPT-3」をビジネスアプリ作成ツールに統合すると発表、文章形式でアプリ作成が可能に - GIGAZINE
3800万件分の個人情報がMicrosoftのツールから流出 - GIGAZINE

デバイスで Power Automate Desktop を設定する - Power Automate | Microsoft Docs
Set up Power Automate Desktop on your device - Power Automate | Microsoft Docs
Dataverse のドキュメント - Power Apps | Microsoft Docs
Analyze and resolve Portal Checker diagnostics results - Power Apps | Microsoft Docs
Important changes coming in Power Apps portals - Power Apps | Microsoft Docs
ASCII.jp:Windows 10で無料で使える、デスクトップ操作の自動化ツール「Power Automate Desktop」を試す (1/2)
話し言葉でプログラミング Microsoft、ノーコード進化: 日本経済新聞
【特集】Windows 11の業務自動化ツールでラクがしたい!純正アプリ「Power Automate Desktop」の使い方 - PC Watch
自動化ツールのPower AutomateがWindows 11標準搭載に - PC Watch
【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita
Power Automate を使ってはんこプロセスを自動化する | IIJ Engineers Blog

Terminal

ASCII.jp

ASCII.jp:正式版が登場したWindows Terminalをカスタマイズする (1/2)
ASCII.jp:Windows Terminalのカスタマイズを研究【キーボード編】 (1/2)
ASCII.jp:プレビュー版で開発が進められているWindows Terminal (1/2)
ASCII.jp:Windows 10で標準で用意されるようになったcurlを使ってみる (1/2)
ASCII.jp:Windows 10の新コンソール、Windows Terminalが完成直前のv0.11に (1/2)
ASCII.jp:機能的にはほぼ完成されたWindows 10の新コンソール、Windows Terminal v0.9 (1/2)
ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
ASCII.jp:Preview版でv1.5まで進化したWindows Terminalの新機能を確認 (1/2)
ASCII.jp:v1.6まで進化し、GUIでの設定ページも用意されたWindows Terminal (1/2)
ASCII.jp:コマンドラインからウィンドウの制御が可能になったWindows Terminal v1.7 (1/2)
ASCII.jp:あらためて「PowerShell」の現状と登場後の経緯を整理する (1/2)
ASCII.jp:Windows Terminalは安定版v1.8、Preview版v1.9が登場 v2.0に向け進化が続く (1/2)
ASCII.jp:Windows PowerShellからスクリプトの完了をトースト通知で知らせる (1/2)
ASCII.jp:Windows Terminalのコマンドラインを極める (1/2)
ASCII.jp:v2.0が近づいてきたWindows Terminal プレビュー版1.11の新機能を解説する (1/2)
ASCII.jp:Windowsでちょっと文字コードを調べたいときの方法 (1/2)
ASCII.jp:Windows 11では標準コンソールの変更が可能になったのでWindows Terminalを設定する (1/2)
ASCII.jp:PowerShellでWindowsが起動してからの時間を計算する (1/2)
ASCII.jp:ちょっとしたスクリプトにWindowsに含まれているアイコンを流用して、自分で作らずに済ませる方法 (1/2)
ASCII.jp:dotnetコマンドを使って、Visual Studioを起動せずに簡単にプログラムを作成する (1/2)
ASCII.jp:Windowsのcmd.exeからLinuxコマンドを使う際はエスケープ文字の使い方を覚える (1/2)

窓の杜

「Visual Studio」に「Windows Terminal」を合体 ~Microsoft、「VS Terminal」を発表 - 窓の杜
ジャンプリスト対応の「Windows Terminal 1.4」が正式版に ~次期版は改良されたハイパーリンク機能を搭載 - 窓の杜
「Windows Terminal」に待望の設定GUI ~v1.6プレビュー版で先行導入 - 窓の杜
「Windows Terminal 1.7」プレビュー、GUI設定画面が既定に。JSONスニペットの共有でカスタマイズも簡単 - 窓の杜
「Windows Terminal 1.7」が正式リリース、設定GUIを安定版に - 窓の杜
「Quake」モードを追加した「Windows Terminal Preview 1.9」 ~既定のターミナルも「conhost」から「Windows Terminal」に切り替え可能 - 窓の杜
既定のターミナルを「Windows Terminal」に変更 ~プレビュー版Windows 10でテスト - 窓の杜
「PowerShell 7.2」は「Microsoft Update」経由でアップデート可能に - 窓の杜
「Quake」モードを追加した「Windows Terminal 1.9」が正式版に ~既定ターミナルの置き換えは搭載見送り - 窓の杜
プレビュー版「Windows Terminal」のタブバーにアクリル効果、スタイリッシュな見栄えに - 窓の杜
Microsoft、「PowerShell 7.2」を一般公開 ~Microsoft Update経由の自動更新に対応 - 窓の杜
Windows 11の既定ターミナルは「Windows Terminal」に ~2022年中にも - 窓の杜
「Windows Terminal」プレビュー版に新しい描画エンジン、管理者権限でプロファイルを起動するオプションも - 窓の杜
「Windows Terminal」にWindows 11専用版、ファイルサイズは半分に - 窓の杜
入力したシェルコマンドとそのオプションを丁寧に教えてくれるWebサービス「shell.how」が面白いかも - やじうまの杜 - 窓の杜

マイナビニュース

Windows Terminalプレビュー バージョン1.12リリース | TECH+
PowerShell バージョン7.2がリリース | TECH+
Windows 11、「Windows Terminal」をデフォルトに、2022年に置き換え | TECH+
2年ぶりのバージョンアップとなる「GNU Screen v.4.9.0」 | TECH+

Qiita

PowerShell 使い方メモ - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY から RLogin に移行…サーバ群の一括ログイン(復元)が出来て、ログイン時tmux起動と組み合わせでコンテキスト復元まで出来るのが良い。 (コンテキスト維持は大事。その意味で WindowsUpdateの邪悪さ…) https://t.co/UtVgljvR4V」 / Twitter
ログイン時にtmuxを自動起動したい! - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RLoginって、設定変更中とか結構な頻度で落ちるのね。 (tmux上で作業する分には影響少ないけど)」 / Twitter
SETX コマンドで環境変数を永続的に設定する - Qiita
Windowsのコマンドライン引数でのクォートの話 - Qiita
Powershell でファイルの先頭から少々のバイナリーを眺めたい時に使うコマンドのメモ - Qiita

Twitter

ドッグさんはTwitterを使っています 「pip はもう古い.これからは python -m pip」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Windows Terminal Previewがconemu OSCというものでタイトルバーとタスクバー上のプログレスバーに対応しているということなので、うちの会社で作ってる変換君もそれに対応してみた。 https://t.co/KKrDDbK4oj https://t.co/6YDxsmaZSG」 / Twitter
ConEmu | ANSI X3.64 and Xterm-256 Support
入谷 優さんはTwitterを使っています 「PowerShell で関数の引数をそのまま別の関数に渡すにはどうしたら良いのかなと思って調べたら、$PSBoundParameters なる変数が使えることを学びました。 https://t.co/Y5me0pqH6l」 / Twitter
about_Splatting - PowerShell | Microsoft Docs
入谷 優さんはTwitterを使っています 「#PowerShell 7.2.0-preview.5 にしてから、cmd を呼ぶスクリプトがエラーを吐くようになってしまいました。どうやら二重引用符の扱いが変わっているようです。 https://t.co/63eduvIkL1」 / Twitter
Experimental feature PSNativeCommandArgumentPassing breaks cmd /c calls with embedded double quotes · Issue #15239 · PowerShell/PowerShell
mattnさんはTwitterを使っています 「豆知識: C: は C ドライブのカレントディレクトリという意味です。 C:. と同じ。」 / Twitter
yuyabu🍥さんはTwitterを使っています 「よくコマンドでないものコンソールにコピペしてしまうことがあるけど有効なコマンドとして解釈されたら怖いなぁと思ってる」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PowerShell で UTF-8でリダイレクト等するには、この呪文と。 (それにしても PowerShellって苦手だなぁ) ---- https://t.co/u0OJwraD13 $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding」 / Twitter
Using UTF-8 Encoding (CHCP 65001) in Command Prompt / Windows Powershell (Windows 10) - Stack Overflow
入谷 優さんはTwitterを使っています 「先日職場の人から、他の PowerShell セッションからコマンドを引っ張ってくる Import-PSSession なるコマンドレットを教わりました。謎に便利な機能です。 https://t.co/sF1hkhSWYR」 / Twitter
Import-PSSession (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowアプリとコンソールアプリは、OS的にEXE種類(PEヘッダのSubsystem番号)が違いまして。 前者は、終了を待たずにプロンプトに戻る、コンソール入出力を前提にしてない(^Cで停止できない)などの違いがあるのですね。 (start "" /wait を使うと、ほぼコンソールアプリっぽくはできるのですが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「cmd.exe で pushd UNC名 とすると、UNCを空きドライブレターに割り付けた上で、カレントをそのドライブに移動するという豪快な動作と。 (popd で割り付け解除して戻る) https://t.co/HnsjE7SZ8L」 / Twitter
pushd/popdでフォルダーを移動する:Tech TIPS - @IT

Windows Terminal を入手 - Microsoft Store ja-JP
Searching, Downloading, and Installing Updates - Win32 apps | Microsoft Docs
Windows のコマンド | Microsoft Docs
Windows ターミナル ペイン | Microsoft Docs
microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!
PowerShell/PowerShell: PowerShell for every system!
Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
Microsoft、Windows Terminalプレビュー版。設定UIの標準化や読み取り専用モードを追加 - PC Watch
プロファイル、複数のペイン、Unicode文字をサポートするWindows Terminal 1.0がリリース
山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)
Windows Terminalの使い方
パス名にスペースのある実行ファイルの指定方法
ファイル共有とシンボリックリンクの利用について – Ask the Network & AD Support Team
Windows で sudo なことをする。 | みむらの手記手帳
PowerShellでいろいろな文字コードを扱う - じゅんじゅんのきまぐれ
Windows Terminal のインストールとおすすめカスタマイズ方法 | Snow System
Windows11でコマンドプロンプトを置き換えるWindowsターミナル|自作.com
Windows Terminal、コマンドプロンプトを含むWindowsにおけるターミナル画面のデフォルトに。Windows 11で - Publickey
Windows・macOS・Linuxを標的にするバックドアマルウェア「SysJoker」が報告される - GIGAZINE
Takashi KawasakiさんはTwitterを使っています 「$Profile編集するぐらいなら、$env:PATHを設定するようにすればいいと思うんだよなぁ。Windowsの設定画面から環境変数設定するのは筋悪。」 / Twitter
ごまふあざらしさんはTwitterを使っています 「https://t.co/iedoHCR86S pathを追加するは人類には高度すぎる手順だと思ってる。 普通にパスが通ってるところにおいて欲しい(・ω・`)。。。」 / Twitter
WindowsのPowerShell環境でVim入れてPython開発環境をつくるメモ | 7me
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「WSL2からWindows側のプログラムを管理者権限で起動する方法って無いだろうか。sudo cmd.exe /C args的なことが出来たら嬉しいな、というイメージ」 / Twitter
Kenta IDAさんはTwitterを使っています 「@uchan_nos runasでだめだっけ?と思ったけど、どうもUAC以降ダメなので、powershellのStart-Processに -Verbでrunasを指定するのがはやいっぽいですね。 WSLからでも powershell.exe Start-Process notepad.exe -Verb runas でメモ帳が管理者権限で開きます。」 / Twitter
演算子について - PowerShell | Microsoft Docs

winget

ASCII.jp

ASCII.jp:Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す (1/2)
ASCII.jp:Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった? (1/2)
ASCII.jp:Windowsで開発中のパッケージマネージャー「winget」がv0.3に (1/2)
ASCII.jp:一般向けの配布も開始されているWindows用のパッケージ管理ツール「winget」がv1.1に (1/2)

窓の杜

“Microsoft Store”のアプリもコマンドラインで導入 ~Microsoft、「winget」を更新 - 窓の杜
「winget」の最新プレビュー版v0.3が公開 ~importコマンドとグループポリシーに対応 - 窓の杜
コマンド一発でアプリをセットアップ ~CUIのアプリ管理ツール「winget」がv1.0に - 窓の杜
「winget」がv1.1に ~Windows 10/11で利用できるCUIのアプリ管理ツール - 窓の杜

microsoft/winget-cli: Windows Package Manager CLI (aka winget)
まちカドおるみんさんはTwitterを使っています 「パッケージの依存解決したり追跡・アンインストールするための機能がないしこいつは何も管理してないじゃんかという批判。ごもっとも。 &gt;&gt; Not a package manager · Issue #223 · microsoft/winget-cli https://t.co/Z4fyQ0jG1n」 / Twitter
Not a package manager · Issue #223 · microsoft/winget-cli
Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール「winget」とは:Windows 10 The Latest(1/2 ページ) - @IT
アプリ インストーラー を入手 - Microsoft Store ja-JP
リポジトリにマニフェストを送信する | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MSさんによってFastCopyの winget用manifestが作られていて、wingetでインストールできるようになっていた…へぇ。 https://t.co/tXLsSZyl9r」 / Twitter
winget-pkgs/manifests/f/FastCopy/FastCopy/3.92 at master · microsoft/winget-pkgs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちゃんと /SILENT という、(私が用意した)インストーラ・オプションが指定してある)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IP Messenger も winget できるよう、MS に pull request を送ってみた…何がしか進んでいるっぽい。 https://t.co/8II9HlIFCV」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無事、マージされた様子。 インストールには winget install ipmsg で OK。 https://t.co/JvaoPvROYs https://t.co/nleokvHdC2」 / Twitter
Create FastCopy.IPMsg.yaml by shirouzu · Pull Request #19575 · microsoft/winget-pkgs

Office

ExcelやWordなどのOfficeファイルのマクロをデフォルトで無効にするとMicrosoftが発表 - GIGAZINE
【笠原一輝のユビキタス情報局】なぜ日本のMicrosoft 365 Personalは高いのか? 個人/法人で買うべきOfficeをアドバイス - PC Watch
Web版Excel、業務自動化スクリプトに対応 - PC Watch
Office 2021がWindows 11と同じ10月5日より提供開始。Excelに「XLOOKUP」実装など - PC Watch
ダウンロードファイルのVBAマクロをデフォルト無効化。Officeに仕様変更 - PC Watch
Microsoft、インターネットから取得したOfficeファイルのVBAマクロをブロック | TECH+
Microsoft Excel、新しいJavaScript API導入で独自のカスタムデータ型 | TECH+
Macros from the internet are blocked by default in Office - Deploy Office | Microsoft Docs
ダウンロードしたVBAマクロは既定でブロックへ ~「Microsoft Office」攻撃への対策を強化 - 窓の杜
Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に - 窓の杜
「Excel」でMapやReduce~ラムダを引数にとる7つの関数がテスト導入 - 窓の杜
「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に - 窓の杜
Web版「Excel」の新しいマクロ機能「Office スクリプト」が一般リリース - 窓の杜

ライフサイクル

Search Product and Services Lifecycle Information - Microsoft Lifecycle | Microsoft Docs
Windows 10 Home and Pro | Microsoft Docs
Windows ライフサイクルのファクト シート - Windows ヘルプ
サービスとしての Windows のクイック ガイド (Windows 10) - Windows Deployment | Microsoft Docs
Windows 10 UWP アプリのライフサイクル - UWP app developer | Microsoft Docs
ライフサイクルに関する FAQ - Windows 製品 | Microsoft Docs
ライフサイクルに関する FAQ - Internet Explorer および Microsoft Edge | Microsoft Docs
ライフサイクルに関する FAQ - モダン ポリシー | Microsoft Docs
モダン ライフサイクル ポリシー | Microsoft Docs
Office と Windows のサービスとサポートの変更 - Windows Blog for JapanWindows Blog for Japan
Tech TIPS:一目で分かる、Visual Studioの各バージョンのサポート期限 - @IT
マイクロソフト、2025年までにWindows 10のサポートを終了する|自作.com
ASCII.jp:今秋にはWindows 10もアップデートするが今回も小規模? 21H2のプレビュー開始
Windows 11 Home and Pro (Version 21H2) - Microsoft Lifecycle | Microsoft Docs
Overview of Windows as a service - Windows Deployment | Microsoft Docs
Lifecycle FAQ - Windows | Microsoft Docs
2022年でサポート終了のMicrosoft製品は? 今のうちにチェック! - やじうまの杜 - 窓の杜
Support ends for older versions of Visual Studio - Visual Studio Blog

マルチブート

Tech TIPS:Windowsのbcdeditでブートメニューの項目を追加する - @IT
[Windows10]マルチブート(デュアルブート)起動時のオペレーティングシステム(OS)名称を変更する:初心者のためのHTMLとWindows(ウィンドウズ)、エクセル講座。HTML・CSSを使ったホームページ作成やWindows(ウィンドウズ)、エクセル(EXCEL)・メール(outlook)・フォトショップ(Photoshop)入門
(UEFI環境 編)Microsoft Windows10 と Ubuntu 14.04 LTS とのデュアルブート環境の構築 | えび天サーバ ( abten server )
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
デュアル ブート PC でブート メニューを修復する - Windows 10 hardware dev
grub にWindows10起動メニューを追加する(Boot-Repairを利用する) - Qiita

Process Monitor

Process Monitor
Process Monitor – Japan WDK Support Blog
Process Monitor ログの採取手順 | Japan Developer Support Core Team Blog
「ProcMon」がダークモードに対応 ~Microsoft製のプロセスモニタリングツール - 窓の杜

Process Explorer

Process Explorer - Windows Sysinternals | Microsoft Docs
Process Explorer が Paging List 統計情報の表示に対応していた件 - NyaRuRuが地球にいたころ
Process Explorer で探る Windows Vista メモリ管理戦略 - NyaRuRuが地球にいたころ
3 分ぐらいでわかる,Process Explorer による Windows Vista メモリ使用状況の調べ方 - NyaRuRuが地球にいたころ
メモリ周りを見るときの Process Explorer の準備 - NyaRuRuが地球にいたころ
「Process Explorer」v16.4はプロセスのフィルタリングが可能に ~セキュリティ機能「CET」にも対応 - 窓の杜
Handle - Windows Sysinternals | Microsoft Docs

パフォーマンス診断

パフォーマンス診断コンソール - NyaRuRuが地球にいたころ
pfmon.exe - NyaRuRuが地球にいたころ
Perforator とは - NyaRuRuが地球にいたころ
Xperf : Event Tracing for Windows frontend - NyaRuRuが地球にいたころ
Download DTrace On Windows from Official Microsoft Download Center

Twitter

Makoto Kato ︎︎さんはTwitterを使っています 「いや、フィードバックhubがまともに機能してるのを見たことないんだが。あれだとまともなものが埋もれる。 バグ報告系でちゃんと直るのはVisual Studioのコンパイラ関連のバグ報告受付サイトくらい。オープンソースなものを除く https://t.co/qrLhXLAeiw」 / Twitter
知ってるか? Windowsの問題はマイクロソフトに直接報告する方法がある
Makoto Kato ︎︎さんはTwitterを使っています 「昔、IEのDoSみたいなコードが2chに貼られてて、それをOEMサポート契約でレポートしてきたのがあったりした。SNSでビューが多ければなんだかんだで社内に届くとは思うけどね、直るかどうかは別にして」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「でもアップルとかグーグルだとより直らない気がするんだよな、オープンソースな部分でパッチを受け入れてくれるもの以外は。マイクロソフトは金を積んだら直すというパス (プレミアサポート) があるし。必ずしもhotfix作る訳ではないが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@objectxplosive @methane Windows の方は https://t.co/KmYqquedPZ によるとメールアドレスの最初の5文字(全ての文字ではない)だそうで、なんでこれが万人を満足させると考えたのか問い詰めたいです」 / Twitter
わたなべごうさんはTwitterを使っています 「MSアカウントだとアカウント名が日本語にされてしまう問題はだいぶ前に解消済(Windows10は最初から大丈夫)なんだけど根にもってる人多いんやね。現在は「メールアドレスの名前部の最初5文字まで」なので切られるのが嫌な人はやっぱりローカルアカウントからつくるしかないです」 / Twitter
わたなべごうさんはTwitterを使っています 「ローカルアカウントのほうは「名前:」欄に入力したものがそのまま使われるので、リアルタイムで事故ってる例はそこで日本語いれちゃった人のが多いと思うのね。ネットワークつながってない環境での初期セットアップ時に事故るはず」 / Twitter
わたなべごうさんはTwitterを使っています 「アカウントの件AzureADで試してみたら、 ・ADで作成して同期:ADそのまま(英字) ・サイトで新規作成:表示名と同じ(日本語) ・長い名前でもカットされたりはしない わーい。挙動の謎が増えたぞw 推定ですがディレクトリに最初にアカウント名として登録されたものが使われてるのかな?」 / Twitter
YurikaさんはTwitterを使っています 「📝 Office ファイルの信頼済みドキュメントの挙動が変更に マクロ等を含むコンテンツは管理者の設定があってもユーザーで信頼済みとして実行可能でしたが実行不可に。 Insider build 2110に導入、CCは2022年2月から導入予定(古いバージョン導入予定はなし)のところなし) https://t.co/OhOQT26UuI」 / Twitter
New security hardening policies for Trusted Documents - Microsoft Tech Community

Skype | 友達や家族への無料通話
Microsoftアカウントを「パスワードレス」化! 困ることはない?【イニシャルB】 - INTERNET Watch
KB4589212: Intel microcode updates for Windows 10, version 2004 and 20H2, and Windows Server, version 2004 and 20H2
Windows Insiders gain new DNS over HTTPS controls - Microsoft Tech Community
エクスプローラーで色付きソースコードを表示する方法 (1) | TECH+
ブログ: Microsoftを忘れてはいけない
UWP アプリから nul ポートが指定されているプリンターに印刷できない | Japan WDK Support Blog
Windows PE で IOCTL サンプルを動作させる方法について | Japan WDK Support Blog

LibreOffice

Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
Details for crash report: dad46271-da1e-4651-9069-8fa026a75616
Reports for signature: ScDocument::HasTable(short)
Crash reporting for the LibreOffice project
LibreOfficeのバグ報告方法 - The Document Foundation Wiki
How to get a backtrace with WinDbg - The Document Foundation Wiki
How to debug - The Document Foundation Wiki
Users - Calc でコピー・アンド・ペーストを繰り返すとハングアップする問題
Users - Windows 版 LibreOffice の更新インストール時に権限の問題で処理が完了しない事象
LibreOffice 日本語チームさんはTwitterを使っています: 「最近、不具合の話が目に付くので皆様にお願いです。 LibreOfficeの不具合はBugzilla(バグ管理システム)に登録されて問題として認識されます。逆に言うと登録されない限りは誰も気がつかないので、もし不具合を見つけたらBugzillaで検索もしくはバグ報告をお願いします https://t.co/dqFnj2kBsZ」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「Twitterを見ていますが中の人も拾うには限界があって、先日のMacの不具合のような大きな問題でなければ動くことはできないので、Twitterでつぶやいた後は検索と報告もよろしくお願いします🙇‍♂️」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「メーリングリストなので基本的にメールでやりとりですが、Webから掲示板のように書き込めるNabbleというシステムもあります。こちらもアカウントを作る必要はありますがメーラーを使わなくていいので楽に使えると思います https://t.co/w3RzbkOUxw」 / Twitter
Document Foundation Mail Archive - Users | Mailing List Archive
Bugzilla Main Page
メーリングリスト | LibreOffice - オフィススイートのルネサンス
Mail Index - The Document Foundation Mailing List Archives
Mail Index - The Document Foundation Mailing List Archives

GitHub Desktop

Qiita

GitHub Desktopの使い方 - Qiita
Github Desktopを使った開発の流れ(入門) - Qiita

desktop/desktop: Simple collaboration from your desktop
Sample reports | GitHub Desktop
Set Up Git - User Documentation
GitHub Desktop 1.5でマージコンフリクトの解決が容易に
よくあるうっかりミスを防止する機能が2つ導入された「GitHub Desktop 2.3」 - 窓の杜
プロキシを自動検出・設定、イシューの作成にも対応した「GitHub Desktop 2.4」がリリース - 窓の杜
待望の差分の分割表示をサポートした「GitHub Desktop 2.6」 - 窓の杜
「GitHub Desktop 2.7」でD&Dによるチェリーピッキング(git cherry-pick)が可能に - 窓の杜
差分表示にちょっとうれしいオプションを追加した「GitHub Desktop 2.8」 - 窓の杜

Atom

Atom-Packages

Atom
Packages
auto-encoding
clipboard-plus
document-outline
editorconfig
ex-mode
highlight-line
japanese-menu
japan-util

linter

linter
AtomLinter
linter-textlint
linter-ui-default
intentions
busy-signal

print-atom
project-manager
show-ideographic-space
simple-drag-drop-text
sort-lines
sublime-style-column-selection
vim-mode-clipboard-plus
vim-mode-plus

窓の杜

テキストエディター「Atom」v1.10.0、パッケージマネージャーやシェル統合を強化 - 窓の杜
ベンチマーク機能を搭載、オープンソースのテキストエディター「Atom」v1.13.0 - 窓の杜
64bit版インストーラーだけじゃない! 次期「Atom」にはWindows向けの改善が多数 - 窓の杜
“ドック”をサポートした「Atom」v1.17.0、次期バージョンでは「GitHub」を統合 - 窓の杜
「Git」と“GitHub”を統合した「Atom」v1.18が正式版に ~GitHub製の無償エディター - 窓の杜
GitHub、無償コードエディター「Atom」v1.19を正式公開 - 窓の杜
GitHub、「Atom」v1.21を正式リリース。“Language Server”プロトコルをサポート - 窓の杜
フリーのコードエディター「Atom 1.22」、パフォーマンスと使い勝手をさせる - 窓の杜
GitHub、「Atom 1.28」を正式公開 ~プロジェクト内検索の結果ビューを刷新 - 窓の杜
無償コードエディター「Atom 1.29」が正式公開 ~新しい構文解析の導入が最終段階に - 窓の杜
GitHub、フリーのコードエディター「Atom 1.44」をリリース - 窓の杜
GitHub、フリーのコードエディター「Atom 1.47」を公開 - 窓の杜

OSDN

GitHubがChromiumベースのテキストエディタ「ATOM」を発表 | OSDN Magazine
米GitHub、テキストエディタ「Atom」をオープンソース化 | OSDN Magazine
米Facebook、「Atom」エディタにリモート開発機能などを追加するパッケージ「Nuclide」を発表 | OSDN Magazine
米GitHub発のテキストエディタ「Atom 1.0」リリース | OSDN Magazine
操作性にフォーカスしたテキストエディタ「Atom 1.7」が公開 | OSDN Magazine
性能と安定性を強化した「Atom 1.11」がリリース | OSDN Magazine
「Atom 1.12」が公開 | OSDN Magazine
テキストエディタ「Atom 1.13」が公開、ベンチマーク機能を導入 | OSDN Magazine
「Atom 1.15」が公開、操作性を改善 | OSDN Magazine
オープンソースのテキストエディタ「Atom 1.16」リリース | OSDN Magazine
性能を強化した「Atom 1.19」リリース | OSDN Magazine

Qiita

ATOM Editor をそろそろ始めようか - Qiita
ATOM(windows版)と拡張子の関連付け - Qiita
Atomエディタで行末の空行を自動削除する設定を無効化する - Qiita
Atom Editorでインストールしているおすすめパッケージ一覧 - Qiita
【Atom Editor】マウス操作不要!キーボードだけで矩形選択をする方法 - Qiita
GitHub for Atom の機能とできること、できないこと - Qiita
Atomの設定・パッケージを複数端末で共有したいメモ - Qiita
ATOMエディタにインストールしているパッケージ 2017 - Qiita

Account
atom/atom: The hackable text editor
atom/atom-languageclient: Language Server Protocol support for Atom
Atom (テキストエディタ) - Wikipedia
Atom のススメ
Atom をちゃんと始める。 - Corredor
Atom(GitHub製エディタ)に乗り換えて最初にやっておきたいこと | maesblog
Atomの便利なパッケージ管理方法 – GitHubやスターを利用して他の開発環境でも使えるようにしておく | maesblog
職業別!ATOMエディタの作業が超捗る便利パッケージ24選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
確実に参考になる!Atomひと通りの使い方(Windows・Mac編) | コムテブログ
Atom で Git を利用するのに便利なプラグイン | Lonely Mobiler
atomをつかってみる - ynishimura blog
ベターVimとしてAtomを使う - Kesin's diary
ATOM vim-mode-plusのESCで、autocomplete-plusのポップアップのみ閉じる方法 | mzgkworks.com
Atomでインデント設定に困ったらEditorConfigを使用する | webic
Atomのおすすめパッケージ61個 - はてな村定点観測所

メディア関連

その他

gnuplot - Google 検索
gnuplot FAQ
matpyplot - Google 検索
matplotlib - Google 検索
ASCII.jp:テキストの入った画像を「ImageMagick」を用いてコマンドライン上で作る (1/2)
オンラインイベントのバーチャルスタジオ作りに使えるTeamsのNDI対応 (OBSレイヤーの組み方サンプルあり) | IIJ Engineers Blog
Yutori/ゆとりんさんはTwitterを使っています 「OBSのやべープラグイン出てた! Windowsのアプリケーションの音声をデスクトップキャプチャを使わずにそのままOBSに入力出来るプラグイン まさにこれを求めてた https://t.co/tYAfu16pzO」 / Twitter
win-capture-audio | OBS Forums
エヌユルさんはTwitterを使っています 「これ何度か読んでも理解できなかったけどやっと理解できた、SDRモード時のモニタの明るさがそもそもおかしいけどWindows HDRはSDRに忠実にするから暗く見えるのでモニタの明るさを変えろという話か / “Windows HDR (とキャプチャ問題について) の解説” https://t.co/bSsW5onrf1」 / Twitter
Windows HDR (とキャプチャ問題について) の解説
VOICEVOX | 無料で使える中品質なテキスト読み上げソフトウェア

技術評論社

第662回 Docker+Selenium ServerでWebブラウザ自動操作環境を作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第664回 スマートフォンをWebカメラとして使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

GIGAZINE

Audio

無料の音声編集ソフト「Audacity」のバージョン3.0.0がリリース - GIGAZINE
無料の音声編集ソフト「Audacity」が「法執行に必要なデータを収集する」と発表、開発者は「データ収集なしのAudacityのフォーク」に着手 - GIGAZINE
無料で文章から自動で読み上げ音声を合成してくれるソフト「VOICEVOX」を使ってみた - GIGAZINE
無料でPC上でシンセサイザーを構築できるオープンソースのソフトウェアモジュラー「BESPOKE」が登場 - GIGAZINE
無料でさまざまな音声合成エンジンや音声ライブラリを扱える汎用合成音声エディタ「ユニコエ」が登場 - GIGAZINE

OBS

ライブ配信ソフト「OBS Studio」でNVIDIAのノイズ除去フィルタが利用可能に、実際に使ってみるとこんな感じ - GIGAZINE
無料でオープンソースのライブ配信ソフト「OBS」で画面を録画&ビデオ会議で画面を簡単にキャプチャーする方法 - GIGAZINE
ライブ配信ソフト「Streamlabs OBS」からOBSの名前が削除される、一体なぜ? - GIGAZINE
配信ソフト「OBS」上でアプリごとに音声のオン・オフや音量調整が可能になるプラグイン「win-capture-audio」を導入してみた - GIGAZINE

プレーヤ

画像・ムービー・PDFを1つの画面で連続表示できるオンライン配信向けメディアプレイヤー「Sanscadre」を使ってみた - GIGAZINE
老舗メディアプレイヤー「Winamp」がプロジェクト一新でベータテスター募集中 - GIGAZINE

動画編集

基本無料&ブラウザ上でサクッと動画編集や録画が可能なMicrosoftの「Clipchamp」を使ってみた - GIGAZINE
完全無料の動画編集ソフト「VideoProc Vlogger」は多種多様な便利機能の使いやすさが圧倒的で初心者にもオススメ - GIGAZINE

YouTube

YouTubeやニコニコ動画などのムービーを最高画質・高音質でダウンロード可能な「yt-dlp」の使い方まとめ、年齢制限ムービーも一発ダウンロード可能 - GIGAZINE
YouTubeやニコニコ動画からムービーのダウンロード&動画編集も簡単にできる超絶多機能な「VideoProc Converter」のお手軽「録画」機能でPC/iPhone/iPadの画面を録画してみた - GIGAZINE
YouTubeの動画ダウンロードからPCやスマホの画面録画まで可能な多機能ツール「VideoProc Converter」で録画しながら画面にリアルタイムで線や文字を書き入れてみた - GIGAZINE

Zoom

1兆6000億円超でオンライン会議ツールのZoomが買収した「Five9」とは? - GIGAZINE
Zoomで「マイクが自動的にオンになって勝手に録音が始まる」という事例が公式フォーラムに多数投稿される - GIGAZINE
Zoomに「顔をアバターに置き換える機能」が追加されたので使ってみた - GIGAZINE

無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう - GIGAZINE
画像の解像度を「2倍」にするPhotoshopの新機能「スーパー解像度」の使い方&仕組みはこんな感じ - GIGAZINE
サブスク途中解約でAdobeから2万円以上請求されたユーザーが支払いを回避した方法とは? - GIGAZINE
Amazon | CLIP STUDIO PAINT PRO 公式ガイドブックモデル改訂版 セットモデル | イラスト・ペイント | ソフトウェア
イラスト マンガ制作ソフト・アプリ CLIP STUDIO PAINT(クリップスタジオペイント)
無料&簡単に画像を使ったオシャレなHTMLメールを「テンプレートを選ぶだけ」で作成できる「Mail Studio」を使ってみた - GIGAZINE
イラストを線画に変換する「Anime2Sketch」が登場 - GIGAZINE
軽量動作&簡単操作でPC画面をキャプチャーできる「wcap」レビュー - GIGAZINE
「画像の一括ダウンロード」「ページ情報の抽出」などの操作をプログラミング不要で自動化できる「Browserflow」レビュー - GIGAZINE
無料でキャラクターボイスを自動で合成してくれるAIトークソフト「COEIROINK」は誰でも超簡単に創作物の「声」を作り出せる - GIGAZINE
無料&PCとウェブカメラだけで簡単にVTuberになれるツール「RiBLA Broadcast (β)」レビュー、指の動きもトラッキング可能で配信に即利用可能 - GIGAZINE
iOS版TwitterにGIFアニメ撮影&投稿機能が登場、実際の使い方はこんな感じ - GIGAZINE
AIの力で自分の声を好きな声にリアルタイム変換できるボイスチェンジャー「MMVC」が登場 - GIGAZINE

PC Watch

プロジェクトファイルが分割されなくなった「Audacity 3.0.0」 - PC Watch
Microsoft、AIがプレゼンのうまさを評価/指導してくれる機能 - PC Watch
Windows 10に既存ゲームを自動でHDR化する機能 - PC Watch
Windows版「mmhmm」のオープンベータ3公開。一括管理できる法人向けプランも登場 - PC Watch
【特集】デフォルト設定で使ってる人は注意。配信ソフト「OBS」で見落としがちな高画質化/フレーム落ち対策のポイント - PC Watch
OBS StudioにNVIDIA Broadcast相当のノイズ抑制や“元に戻す”機能が追加 - PC Watch
Zoom、Internet Explorer 11のサポートを9月末で終了 - PC Watch
Premiere Pro、自動文字起こし機能が正式公開。日本語含む13言語対応でテロップ配置支援も - PC Watch
無料のAI音声合成ソフト「VOICEVOX」公開。商用利用も可 - PC Watch
Zoomで会議中のシームレスなデバイス間移動をサポート - PC Watch
【Hothotレビュー】ゲーム生配信後に編集動画をアップしている人待望のOBSプラグイン「Source Record」 ~ワイプやゲーム画面を配信時にフルサイズで同時記録 - PC Watch
ブラウザ版PhotoshopやIllustratorが登場。Web活用でコラボレーションを強力に支援 - PC Watch
【ニュース・フラッシュ】ふりがな自動設定機能や地図作成ツールなども備えるDTPソフト - PC Watch
新Winampがベータテスター募集 - PC Watch
Adobe、無料の「Creative Cloud Express」投入。デザインの心得がなくても高品質コンテンツを簡単に作成可能に - PC Watch
【特集】OBSの神プラグインにまた新機能。配信やWeb会議の画面を拡張現実っぽく見せることが可能に - PC Watch
Zoom、アバターでWeb会議に参加できる機能 - PC Watch
TwitterのiOSアプリでアニメGIFが撮影可能に - PC Watch

窓の杜

厳密なCDリッピングが行える「AccurateRip」に対応した「fre:ac」v1.1.5が公開 - 窓の杜
時間無制限・透かしなしの無償デスクトップ録画ツール「TapeX」 ~Windows/Mac対応【レビュー】 - 窓の杜
Windows 11では「Snipping Tool」のデザインも刷新 ~モダンな使い勝手に - 窓の杜
新スクショツール「Screen Sketch」に遅延撮影機能が追加、「Snipping Tool」は延命? - やじうまの杜 - 窓の杜
「Snipping Tool」もストアでアップデートできるように ~Windows 10 Build 21354 - 窓の杜
OS標準アプリ「ペイント」がストア経由で更新可能に ~Windows 10でプレビュー - 窓の杜
個人利用無料、軽量・簡素・高速なリモートデスクトップ接続アプリ「AnyDesk 7.0.0」 - 窓の杜
Windows 11の丸角のウィンドウの端までキッチリ撮れるスクショ撮影ツール「PriScVista」v3.0が公開 - 窓の杜
Macのファイルプレビュー「Quick Look」をWindowsで再現した「WinQuickLook」、ARM64にネイティブ対応 - 窓の杜

OSDN

オープンソースの動画エディタ「Kdenlive 21.12」が公開 | OSDN Magazine
リソースシステムを一新した「Krita 5.0」が公開 | OSDN Magazine
「darktable 3.8.0」が公開 | OSDN Magazine
オープンソースのストリーミング配信ソフト「OBS Studio 27.2」が公開 | OSDN Magazine

CDDB

音楽CDのメタ情報を提供するCDDBサーバー“freeDB.org”が、3月31日で終了 - やじうまの杜 - 窓の杜
「freeDBTagger」楽曲長の組み合わせでアルバムを特定して楽曲情報を自動入力 - 窓の杜
MusicBrainz - The Open Music Encyclopedia
「foobar2000」ユーザーインターフェイスや機能を自由にカスタマイズできる音楽プレイヤー - 窓の杜
foobar2000: Components Repository - MusicBrainz Tagger
CDDBサーバーのfreeDB.orgが遂に停止してしまったので代わりにfreedb 日本語を使ってみた | DevelopersIO
freedb 日本語

Wget

wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
Wget - GNU Project - Free Software Foundation

Wireshark

無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE
Wireshark · Go Deep.
status:open | code.wireshark Code Review
wireshark/wireshark: Read-only mirror of Wireshark's Git repository. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at https://code.wireshark.org/review/ .
CloudShark - The easiest way to analyze and share network capture files. | CloudShark
CaptureSetup/USB - The Wireshark Wiki
GolangでUDPサーバー&クライアントを作成してWiresharkで検証する - Yabu.log
Golangで書かれたWebサーバーでHTTP/1.1のkeep-aliveを検証する - Yabu.log
Golangで作成したWEBサーバーのTCP通信(HTTP GET)をWiresharkで検証 - Yabu.log
Wiresharkでlocalhost(127.0.0.1)宛のパケット送受信をキャプチャする方法 - Yabu.log
USBPcap
WiresharkのUSBPcapのログの見方 - Qiita
WiresharkでUSBメモリのパケットキャプチャしてみた! | LoT ラブオンテック
msaitohさんはTwitterを使っています 「てゆーか、新しいのゲットしたら MII ID1, ID2 を繋げてbitreverse したものを IEEE OUI.txt から検索するよね。最近は Wireshark OUI Lookup Tool もあるけど https://t.co/ZIMUOyt0YK」 / Twitter
Wireshark · OUI Lookup Tool
Wireshark Tutorial: Wireshark Workshop Videos Now Available
オープンソースのパケットアナライザ「Wireshark 3.6」が公開 | OSDN Magazine

SuperPuTTY

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーん、やっぱりどーにも合わない。 マルチタブ機能のあるPuTTYを探そう…良いのあるかな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とりあえず、SuperPuTTY という PuTTY wrapper を試してみる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SuperPuTTY はwrapperなのでアレなところあるけど、基本 PuTTY なので扱いやすい。」 / Twitter

PGP

gpg (GNU Privacy Guard)の使い方 - Qiita
GnuPG チートシート(簡易版) - Qiita
SKS OpenPGP Public Key Server
ytakanoさんはTwitterを使っています 「GPGで署名したコードがGitHub上でunverifiedになって悩んでいたら、副鍵を相互署名していないからだった。GPG難しい。」 / Twitter

Web Compatibility | webcompat.com
SlideShareで公開されているスライドをpdfでダウンロードするコマンド - A painter and a black cat
Ubuntu18.04にImageMagickをインストールするには | Ninton
新しい RealPlayer(RealTimes)無料 Windows
Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.
XMedia Recode - Download
17 Free Audio Converter Software Pieces [2019] Check now >
TuneBrowser – TuneBrowser は Windows 用の音楽管理・再生ソフトです.
Amazon.co.jp: Kindle for PC (Windows) [ダウンロード]: ソフトウェア
calibre - E-book management
Releases · apprenticeharper/DeDRM_tools
ダウンロード | らくちんプリント2.0
Rufus - 起動可能なUSBドライブを簡単に作成できます
【SuperCollider】ブラウザ(Chrome)でSuperColliderを動かす - Qiita
音声合成業界に激震! もはや人間の喋り声、入力文字読み上げソフトVOICEPEAKはビジネス用途でも自由に利用可能

ハードウェア関連

FirmwareTablesView
Core Temp
Coreinfo
CPU-Z | Softwares | CPUID
PCI-Z detect unknown PCI devices
GPU-Z Video card GPU Information Utility
HWiNFO - Hardware Information, Analysis and Monitoring Tools
iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
CrystalDiskInfo – Crystal Dew World
MemTest86 - Offical Site of the x86 Memory Testing Tool
無料&インストール不要で32GB以上でもFAT32フォーマット可能な「FAT32 Format」 - GIGAZINE
ASCII.jp:Windowsマシンの電源関係を制御する「Powercfg」コマンドを極める (1/2)|Windows Info
ASCII.jp:Windows 10で電力プラン情報を取得する
USB Device Tree Viewer
バッテリー残量や電圧が規定値以下のときメールを送ったり基準放電速度との比較ができたりするバッテリー監視ソフト「PassMark BatteryMon」レビュー - GIGAZINE
端末が機械学習アプリに適しているか測定する「Geekbench ML」 - GIGAZINE
CPU・メモリ・GPU使用率や天気予報・ビットコインの価格などあらゆる情報を表示できるシステムモニター「thilmera」レビュー - GIGAZINE
システムモニター「thilmera 7」が完全無料化 ~シェアウェア版の機能を解放 - 窓の杜
無料のシステムモニター「thilmera 7」v0b171が連続更新 ~クラッシュなどを修正 - 窓の杜

Arm

Announcing ARM64EC: Building Native and Interoperable Apps for Windows 11 on ARM - Windows Developer Blog
ARM 上の Windows 11 アプリ用 ARM64EC - UWP applications | Microsoft Docs
Overview of ARM64 ABI conventions | Microsoft Docs
64-Bit Office for Windows on ARM
ARMネイティブの速度とx64相互運用を両立 ~Microsoft、「ARM64EC」を発表 - 窓の杜

Android

2021年7月第1週 Windows Subsystem for Androidが登場:Android Weekly Topics|gihyo.jp … 技術評論社
【山田祥平のRe:config.sys】なぜWindowsにAndroidアプリが必要なのか - PC Watch
Windows 11でAndroidアプリ・ゲームを ~プレビュー版「Amazon AppStore」の一般提供が開始 - 窓の杜

Docker

Install Docker Desktop on Windows | Docker Documentation
Docker Desktop for Mac and Windows | Docker
料金プランも刷新 ~「Docker Desktop 4.0」が正式リリース - 窓の杜
Docker Desktopが無料プランを個人・小規模法人向けに限定、大企業向け新プランを設定 - GIGAZINE
Docker Desktopが有料化へ、ただし250人以下かつ年間売り上げ1000万ドル(約11億円)以下の組織や個人やオープンソースプロジェクトでは引き続き無料で利用可能 - Publickey
Dockerが大規模ビジネス向けに有料サブスクリプションを開始
DockerDesktopからWSL2上のみで動くDockerに移行する
Docker Desktop for Linuxを開発中とDocker社が表明。有料化の発表が好評だったとして機能強化など加速 - Publickey
「Docker Desktop 4.1」が公開、ボリューム管理が全ユーザー向け機能に | OSDN Magazine
「Docker Desktop」のWSL 2+NVIDIA GPU対応が正式に ~「ほぼネイティブ」なパフォーマンスを発揮 - 窓の杜
Linuxカーネルの「Dirty Pipe」脆弱性に対処した「Docker Desktop 4.6.0」 - 窓の杜

UDF・ISO9660

富士通Q&A - [Windows 10] ディスクにデータを書き込む方法を教えてください。 - FMVサポート : 富士通パソコン
富士通Q&A - ファイルシステムの「ISO9660 LEVEL1」と「JOLIET」の違いを教えてください。 - FMVサポート : 富士通パソコン
windows10でISO9660(レベル1)形式のCD-Rを作成したい - Microsoft コミュニティ
CD-R書込形式について - Microsoft コミュニティ

GIGAZINE

無料で自動文字起こししてくれるMicrosoft製アプリ「Group Transcribe」を使ってみた - GIGAZINE
PCのハードウェアの信頼性を確かめる負荷試験を行う「PassMark BurnInTest」レビュー - GIGAZINE
Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた - GIGAZINE
Windowsのパスワードを「chntpw」で強制リセットしてログインできなくなったPCを使えるようにする方法 - GIGAZINE
Windows 10でオーディオやグラフィックスアプリを含むLinuxのGUIアプリを使用可能にする「WSLg」機能が登場 - GIGAZINE
完璧にパスワードを設定するための4つの方法 - GIGAZINE
「次世代のWindows」をまもなく配信予定だとMicrosoftのCEOが発言 - GIGAZINE
見落とされがちなWindows 10の便利機能5選 - GIGAZINE
Microsoftは2025年までにWindows 10のサポートを終了する予定 - GIGAZINE
「Microsoft 365」が2022年3月に値上げ予定、その対象プランとは? - GIGAZINE
Microsoftアカウントのサインインでパスワードが完全不要に - GIGAZINE
MicrosoftがOfficeユーザー向けに発表した新たなコラボレーションツール「Microsoft Loop」では何ができるのか? - GIGAZINE
累計10億ダウンロードを老舗ポータブルアプリ配布サイト「PortableApps.com」が達成 - GIGAZINE
超初心者でも他人のPCを簡単にリモート操作できるWindows標準機能「クイック アシスト」の使い方 - GIGAZINE
スケジュール管理・メモ帳・アイデア整理などを1つアプリにまとめてクラウド同期も完備した「Clover」レビュー - GIGAZINE
無料で大量のファイルを簡単かつ爆速でコピーできる「FastCopy」が6年半ぶりにメジャーバージョンアップ - GIGAZINE
「Windows Hello」の顔認証は赤外線画像で突破できると判明 - GIGAZINE
Windows 10の顔認証機能は赤外線写真の低解像度カラーコピーでだませることが判明 - GIGAZINE
簡単な操作で作業の内容や作業時間の記録が出来る「TimeTagger」を使ってみた - GIGAZINE
ChromeでRSSフィード機能が有効に - GIGAZINE
Windows Updateを正常にインストールするには最低8時間オンラインのままである必要アリ - GIGAZINE
Windows標準のセキュリティシステム「Microsoft Defender」を最大限に活用する方法 - GIGAZINE

窓の杜

MS

Process Hollowing/Herpaderping攻撃の検出に対応した「Sysmon」v13.00が公開 - 窓の杜
「Visual Studio」の中の人が作ったプログラマー向け十徳ナイフ「DevToys」 - 窓の杜
Microsoft、「Autoruns」v14.0を公開 ~不審なスタートアッププログラムの炙り出しツール - 窓の杜
「TCPView」がメジャーアップデート ~検索ボックスやダークモードに対応したv4.0が公開 - 窓の杜
書式なし(プレーン)テキストとして貼り付けたい場合は[Windows]+[V]がお勧め - やじうまの杜 - 窓の杜
Microsoft、「Edge Device Image Builder」をプレビュー公開 - 窓の杜
Microsoft、「Excel」に14の新関数を追加へ ~テキスト・配列操作が簡単に - 窓の杜
Windows 11の通常版はどこで買えばいいの? - やじうまの杜 - 窓の杜
細切れに利用しているPCは「Windows Update」を確実に受け取れないかも - やじうまの杜 - 窓の杜
Windows 10で[同期の設定]が機能しないケースについてMicrosoftが案内 - 窓の杜
Windows 10のセキュリティの質問って覚えてる?思い出せないなら「SecurityQuestionsView」【レビュー】 - 窓の杜
Windowsのドライバー検証が強化 ~2020年10月更新以降、導入時にエラーが発生することも - 窓の杜
“セーフガードホールド”ってなに? ~Microsoftがサポートページで詳細を案内 - やじうまの杜 - 窓の杜
ぇ、それだけでよかったの? Windowsのユーザーフォルダーを開く最速の技 - やじうまの杜 - 窓の杜
Windows 10の[スタート]画面が再編中? 確かにプログラムフォルダーはスッキリしたけど、あのツールはどこ行った! - やじうまの杜 - 窓の杜
Linux GUIアプリがWindowsで動作 ~Microsoft、新しいWSL 2機能「WSLg」を初期プレビュー - 窓の杜
AACに対応、Bluetoothオーディオの強化を図ったDev版Windows 10 Build 21370 - 窓の杜
システムフォント「Segoe UI」が可変フォントに生まれ変わる ~Dev版Windows 10 Build 21376に導入 - 窓の杜
Microsoft、Windows 10で迷惑アプリのブロック機能をデフォルト有効に - 窓の杜
Windowsの「B」、「C」、「定例外」リリースってなに? ~更新プログラムの仕組み - やじうまの杜 - 窓の杜
[Ctrl]、[Shift]、[Alt]、[Windows]の4キーを同時に押すとどうなる? - やじうまの杜 - 窓の杜
新しい「Microsoft Defender」アプリがストアに登場 ~有償セキュリティ機能の提供を画策か - やじうまの杜 - 窓の杜

え、こんな機能が? Windows 10のマイナー機能を活用しよう! 2018年 記事一覧
「Orchis」さまざまな方法でメニューを呼び出せるランチャー - 窓の杜
「Clibor」定型文の挿入もできるテキスト専用のクリップボード履歴ソフト - 窓の杜
ZST/ZIPX形式を解凍できる「WinRAR 6.10」、Windows 11のシンプル右クリックメニューにも対応 - 窓の杜
高速ファイルコピーツール「FastCopy」が約6年半ぶりのメジャーバージョンアップ - 窓の杜
「sexe」が10年ぶりにバージョンアップ ~通常のアプリを無理やりWindowsサービス化するツール - 窓の杜
【窓の杜、vPro入れました!】テレワークで困った「会社に置かなきゃいけないPC」問題、本格リモート制御で解決してみた - 窓の杜[Sponsored]
USB/Wi-Fi接続されたAndrod端末の画面をPCで表示・操作できる「scrcpy」【レビュー】 - 窓の杜
無料パーティション編集ツール「EaseUS Partition Master Free」がexFATに基本対応 - 窓の杜
WindowsをUSBメモリに入れて持ち運べる「EaseUS OS2GO」が発売開始 ~Macでも起動 - 窓の杜
「Acronis True Image」が「Acronis Cyber Protect Home Office」にリブランド - 窓の杜
無償のイメージバックアップツール「EaseUS Todo Backup Free 2022」がリリース - 窓の杜
Windows 11標準にしたいぐらいのカッコいいファイラー「Files」がARM64にネイティブ対応 - 窓の杜
Windows 11のシステム要件を更新でも迂回可能に ~インストールメディア作成ツール「Rufus」v3.18 - 窓の杜
PC/MacからAndroid端末を操作できるツール「scrcpy」、HID/OTGをサポート - 窓の杜
23年前に開発終了したにもかかわらずいまだ「定番」と呼ばれるアプリがあるらしい - やじうまの杜 - 窓の杜
【レビュー】オープンソースとなった定番バイナリエディター「Binary Editor BZ」 - 窓の杜
【レビュー】シンプルながら十分な機能を備えるバイナリエディター「FavBinEdit」 - 窓の杜

PC Watch

【レビュー】Windows 10に実装予定の新ライセンス認証機能を試す ~パーツ交換を行なっても、オンラインで再認証が可能に - PC Watch
Microsoft、Intel CPUの脆弱性を修正するWindows 10用マイクロコードを公開 - PC Watch
Windows 10プレビューでついにLinuxのGUIアプリが動作。オーディオやGPUも対応 - PC Watch
箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
AACコーデック対応のWindows 10プレビュー版登場。BTヘッドセットの表示統合で使い勝手も改善 - PC Watch
サイバー犯罪からあなたと会社を守るための、いまさら人に聞けないパスワード管理術 ~ブラウザの新機能や2段階認証の活用法を丁寧に解説。Windows Hello対応機ならより便利に- PC Watch[Sponsored]
【ニュース・フラッシュ】Windows 10プレビュー版、Segoeフォントに視認性向上の新書体 - PC Watch
Windows 10は2025年にサポート終了? - PC Watch
「Windows Autopilot」で、PCもスマホのように手軽に“機種変”しよう ~買ったPCを箱から出してすぐに環境が再現可能- PC Watch[Sponsored]
Microsoftアカウント、パスワードのサインインを無効化する新機能 - PC Watch
無料で個人データのダミーを大量に生成できるジェネレータ。住所やマイナンバーなど - PC Watch

マイナビニュース

プレビュー版「コンパクトモード」から見るエクスプローラーの進化 - 阿久津良和のWindows Weekly Report | マイナビニュース
アイコン変更とキーバインド修正から見る次期Windows 10への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
プロアクティブな設定「Customize your device」への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 10ミニTips(204) コマンドラインからWindows Updateを実行する | マイナビニュース
このタイミングでデバイスマネージャーに改良を加えるMicrosoftの狙い - 阿久津良和のWindows Weekly Report | マイナビニュース
また消えた「Windows」の文字 - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 11でリニューアルされるSnipping Tool - 阿久津良和のWindows Weekly Report | マイナビニュース
Microsoftアカウントがパスワードレスになった - 阿久津良和のWindows Weekly Report | マイナビニュース
Windowsデバイスを最新に保つには、更新後最低6時間はオンラインに | TECH+
エクスプローラーのタブ機能がInsider Previewで復活? 阿久津良和のWindows Weekly Report | マイナビニュース
Insider PreviewのMarch 2022 Bug Bashに参加 - 阿久津良和のWindows Weekly Report | マイナビニュース

ASCII.jp

ASCII.jp:Windows 10の標準アプリが動かなったときの対処法 (1/2)
ASCII.jp:Windowsキー絡みのショートカットは徐々に増えて、減って、また増えている (1/2)
ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)
ASCII.jp:Windows 10におけるキーボードの秘密 (1/2)
ASCII.jp:Windows Updateを飼い慣らして、都合のいい時間に再起動させる方法 (1/2)
ASCII.jp:Windows 10のデバイスドライバーで見えた、今秋の大型アップデートの可能性 (1/2)
ASCII.jp:年2回のWindows 10のアップデートに要する時間に大きな差 フルアップデートとサービステクノロジーアップデート (1/2)
ASCII.jp:Windows 10は好きな文章を合成音声で簡単に喋らせることができる (1/2)
ASCII.jp:デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない (1/2)
ASCII.jp:BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)
ASCII.jp:Windows 10が起動しない場合の最終手段「Windows RE」の基本 (1/2)
ASCII.jp:WindowsのコマンドでLAN内のデバイスを探す (1/2)
ASCII.jp:Windows 11ではARM版も改良が進んだ (1/2)
ASCII.jp:Windows Updateの状態をコマンドラインから調べる方法を考える (1/2)
ASCII.jp:4Kディスプレイを導入してWindowsの文字が小さいときにやること、やってはいけないこと (1/2)
ASCII.jp:Windowsでキートップにないさまざまな文字を入力する方法を整理する (1/2)
ASCII.jp:WindowsのコマンドラインからUSBデバイスについて調べる方法 (1/2)
ASCII.jp:Windows Insider Programに変化あり 次期Windows 11ベータテストへの布石か (1/2)

自作.com

マイクロソフトは、アカウントからパスワードを削除できるようにします。|自作.com
Microsoftによると、Windowsのアップデートには最大8時間かかる可能性があるという|自作.com

@IT

Windows 10のエクスプローラを便利に使うTIPS 10本:Tech TIPS - @IT
Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
Robocopyより高機能。ファイル同期ツールの決定版「FreeFileSync」:知っトクWindowsツール(1/2 ページ) - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その1):企業ユーザーに贈るWindows 10への乗り換え案内(29) - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その2):企業ユーザーに贈るWindows 10への乗り換え案内(30) - @IT
「Windows 10 バージョン21H1」が正式リリース、Windows Updateによる機能更新プログラム配布をコントロールする2つの方法とは:企業ユーザーに贈るWindows 10への乗り換え案内(100) - @IT
WindowsUpdateProviderモジュールとWindows Update WMIプロバイダーの廃止によるWindows Update自動化への影響:企業ユーザーに贈るWindows 10への乗り換え案内(78) - @IT
刷新された「Windowsのリリースの正常性」サイトの歩き方:企業ユーザーに贈るWindows 10への乗り換え案内(99) - @IT
Windows 10 バージョン2004の隠れた新機能、クライアントOSでもシリアルコンソール(SAC)が利用可能に:企業ユーザーに贈るWindows 10への乗り換え案内(77) - @IT
Windows 10の登場から6年で削除された機能、廃止予定機能のざっくりまとめ:企業ユーザーに贈るWindows 10への乗り換え案内(97) - @IT
SSE2非対応の古いプロセッサがWindowsに見捨てられたというウワサは本当? (1/2):その知識、ホントに正しい? Windowsにまつわる都市伝説(113) - @IT

技術評論社

第661回 リモートデスクトップビューアー,Remminaを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

blog

小規模CSIRT向けWindowsイベントログで押さえておくこと|セキュリティブログ
【Win10】Windows 10 Homeバージョンで Hyper-Vを有効にする方法【Tips】 : 0から楽しむパソコン講座のブログ
Windows 読み取り専用になったディスクを読み書き可能にする方法 - 元「なんでもエンジニ屋」のダメ日記
エクスプローラで移動や削除が重いのを改善する(Windows10) - jBlog

山市良のえぬなんとかわーるど

山市良のえぬなんとかわーるど: "About your PC" を検索せよ
山市良のえぬなんとかわーるど: Windows Sysinternals 更新情報 (2021 年 4 月 22 日) - Procmon v3.70、Sysmon v13.10、Autoruns v13.99、TCPView v4.01、WinObj v3.03
山市良のえぬなんとかわーるど: Windows Update に 8 時間必要?(それとも 6 時間?、自動更新の場合の話)

Publickey

[速報]マイクロソフト、無料でRPA機能「Power Automate Desktop」をWindows 10ユーザーに提供開始。Microsoft Ignite 2021 - Publickey
マイクロソフト、「Universal Print」正式リリースを発表。プリンタサーバをクラウド化し、プリンタドライバを不要に。Microsoft Ignite 2021 - Publickey
「Windows Server 2022」プレビュー版が登場、安全なブートなどセキュリティ強化。Microsoft Ignite 2021 - Publickey
VMware、自宅サーバ愛好家のために「動作保証はないけど動くらしい」非公式ハードウェアリストを作成開始、コミュニティに情報提供を呼びかけ - Publickey

午前7時のしなもんぶろぐ

セキュリティ調査に役立つブラウザ拡張機能のまとめ - 午前7時のしなもんぶろぐ
CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ
怪しいファイル・サイトを検査! 「VirusTotal」の安全な使い方教えます! - 午前7時のしなもんぶろぐ

Windowsイベントログ解析ツール「Hayabusa」を使ってみる - itiblog
Microsoft、wushowhide.diagcabを再公開。署名をSHA-2へと変更 | ニッチなPCゲーマーの環境構築Z

infoQ

Googleの2FAは2FAを必要とせずに無効にできる
JDKMon - JDKの検出と更新を行う新ツール

Zenn

Microsoft Defenderを眺めてると「もう全部あいつ一人でいいんじゃないかな」という気分になる

Qiita

bootrec /RebuildBcd 指定されたパスがみつかりません - Qiita
自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法 - Qiita

Twitter

Makoto Kato ︎︎さんはTwitterを使っています 「嘘書いてなぁ。 "USBキーボードは、デバイスに関する情報を返すことが可能で、メーカー名やキーボード名を取得することが可能で、これを使ってレイアウトを判別することは可能なのだが" https://t.co/OqzdTpJJDy」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 2000のリリース時はそういう意図でDesignされていたんだけど、実際世の中で発売されるキーボードはUSレイアウトと日本語レイアウトで同じIDを返すものがほとんどだった。だから不可能だったんだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「最終的にはHotfixを作って、自動に選択されないようにした (たしか*.infに入っている情報消すようなHotfixだった記憶) 。2000年くらいのお話ですね。」 / Twitter
入谷 優さんはTwitterを使っています 「因みに、スタート メニューの検索結果でも、Ctrl + Shift + Enter でアプリを管理者として起動できます。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Intel用CPUに特化されたPython。NumPy, scikit-learn等を含んでいる。バイナリはかなりデカいらしい。conda/dockerから利用可能。 https://t.co/CDSptqqCeB」 / Twitter
Intel® Distribution for Python
入谷 優さんはTwitterを使っています 「certutil.exe を使うと HRESULT 値を解読できるとは! https://t.co/kIobiZqDy5」 / Twitter
The CertUtil program will decode Windows error codes, and in a variety of formats - The Old New Thing
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy.exe は Win32 GUIアプリなので(=EXEのPEヘッダ subsystem=2、なおコンソールだと 3)、起動した瞬間、親プロセスから detach されます。 (start "" /wait fastcopy.exe とやれば、終了まで待ちますが、Ctrl-C は効かないままですね) https://t.co/377ByMZIOA」 / Twitter
PE(Portable Executable)ファイルフォーマットの概要
YurikaさんはTwitterを使っています 「今日はマイクロソフト定例セキュリティパッチの日。今月は50件の脆弱性を修正しました。 既定では自動更新が有効ですが、ぜひ早期の適用をよろしくお願いいたします。IT管理者向けに概要をブログで公開していますのでぜひご覧ください。 https://t.co/wzO5GYxB3Y (メモ続く→) https://t.co/Fba7WNpqXm」 / Twitter
[IT管理者向け] DCOM の脆弱性 (CVE-2021-26414) に対応するためのガイダンス – Microsoft Security Response Center
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「パスワードの規則」って最悪。これらの規則はシステム設計者の恣意的な基準にすぎず、サイトごとにバラバラである。だからパスワード生成器でつけたパスワードですら「数字が2個以上含まれていない」という理由で却下されたりする。 https://t.co/B6NAJ7P5kq」 / Twitter
Why I Hate Password Rules - Schneier on Security
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的にはpwgenが便利でいいよね。 https://t.co/mNQInwpgXd」 / Twitter
HashiCorpがHCP Packerのパブリックベータを開始
YurikaさんはTwitterを使っています 「正規のドライバーの脆弱性が悪用されたり、悪意のあるコードが仕込まれてしまう件の増加を踏まえ、ドライバーの脆弱性や悪意のある挙動をスキャンすることができるポータル  Vulnerable and Malicious Driver Reporting Centerを開設。E3/E5はASRやWDACと連携も可 https://t.co/89NNadP9vj」 / Twitter
Improve kernel security with the new Microsoft Vulnerable and Malicious Driver Reporting Center - Microsoft Security Blog

ViVi web site
オンラインスキャン for Home Network - トレンドマイクロ
Windows10 設定変更ツール
VMware Workstation Player | VMware | JP

MSVC

Windows Dev Center
Windows SDK and developer tools - Windows app development
Visual Studio Older Downloads - 2019, 2017, 2015 & Previous Versions
Download the Windows Driver Kit (WDK) | Microsoft Docs
Incredibuild - Turbocharge compilation, tests, and other DEV workloads

IME

IME Cursor
IME Cursor Forum - Google グループ
日本語入力システム「ATOK」 | ATOK Passport |【公式】ATOK.com

デバイス

Sony Japan | FeliCa | 個人のお客様 | ダウンロード
Sony Japan | FeliCa | 個人のお客様 | ダウンロード | SFCard Viewer 2
SFCard Viewer Web版
HL-L2360DN | 日本 | ブラザーサポート
日本 | ブラザーサポート | ブラザー製品調査・サポートプログラムのダウンロードとインストール
【西川和久の不定期コラム】Windowsマシン同士のHID共有、コピペなど可能な「Mouse without Borders」を試す ~Universal Controlの補足説明も - PC Watch
Download Microsoft Garage Mouse without Borders from Official Microsoft Download Center

Intel

Free Intel® Software Development Tools
Intel® Software Development Emulator
インテル® Manageability Commander
インテル最新CPU「第12世代Core」でvProに新展開、「スモールビジネス向けのvPro」も発表 - INTERNET Watch
単一ソースコードでメニーコアやGPUやFPGAに対応したクロスアーキテクチャー対応のソフトウェア開発を可能に。インテルの「oneAPI ツールキット 2022」[PR] - Publickey

Home | endoflife.date
Identify CPU features (beta)
Download LibreOffice | LibreOffice - Free Office Suite - Based on OpenOffice - Compatible with Microsoft
ダウンロード:WindowsとmacOSへDeepLを組み込む
ダウンロードセンター - Zoom
Windows | ダウンロード | Slack
Microsoft Edge Insider Channels をダウンロード
Software Download
アプリ インストーラー を入手 - Microsoft Store ja-JP
iCloud を入手 - Microsoft Store ja-JP
iTunes を入手 - Microsoft Store ja-JP
X410 を購入 - Microsoft Store ja-JP
VcXsrv Windows X Server download | SourceForge.net
WSL のインストール | Microsoft Docs
以前のバージョンの WSL の手動インストール手順 | Microsoft Docs
Ubuntu 20.04.4 LTS を入手 - Microsoft Store ja-JP
Download Ubuntu Desktop | Download | Ubuntu
クイック スタート - Azure Portal で Windows VM を作成する - Azure Virtual Machines | Microsoft Docs
Download Windows 11
Download Windows 10
実行ポリシーについて - PowerShell | Microsoft Docs

GitHub

tenpoku1000 (市川 真一)
GitHub · Where software is built
Trending C repositories on GitHub today
Trending C repositories on GitHub this month
Most active GitHub users in Japan
GitHub Copilot · Your AI pair programmer
GitHub Codespaces
Welcome - dev [GitHub] - Visual Studio Code - GitHub
Get Started - default (Workspace) - Visual Studio Code
GitLens 12がVisual Studio Code for the Webのサポートを提供
最新のJIS情報 (METI/経済産業省)
f/x [エフエックス] ITメディア・タンク
News - ArkEdge Space
0から作るソフトウェア開発

その他

法務

Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Googleの法務がオープンソースの管理に政府も関与させるべきとか書いてたのはこの件か。log4jの件で安全保障上の脅威と見做したホワイトハウスとそれと結びつきたいBig Techという構図かな。ここに非営利組織の名がないところに怖さがあるね。」 / Twitter
Jennifer JacobsさんはTwitterを使っています 「NEW: Google, Microsoft, Oracle, Amazon, Apple, Facebook, other tech co’s meeting with White House today. Agenda: log4j and how to improve security of open source software, which, because it’s used & maintained by volunteers, is “a national security concern,” @JakeSullivan46 says.」 / Twitter
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「こういう動きに煽られて、公開免許とかセキュリティ監査義務付けとか一部の官庁が言い出さないか心配になってきた。」 / Twitter
全世界を揺るがした「Log4j」のようなオープンソースソフトウェアを無償でメンテし続けるという難題を解決すべくGoogleが立ちあがる - GIGAZINE
大企業は無償利用せず金銭的支援を行えと警告したのに改めないので作者がついに激怒、毎週2000万回以上ダウンロードされるcolors.jsとfaker.jsを破壊し使用不能に - GIGAZINE
作者自らによる破壊で世界中に被害を与えた「Faker.js」がコミュニティ主導のプロジェクトに変更 - GIGAZINE
colors.jsとfaker.jsの作者が自らのライブラリを破損、背後にはオープンソースを悪用する企業への不満? | OSDN Magazine
「無料でLog4j対策を教えろ」と迫った大企業とオープンソース開発者の痛快なやりとりが公開中 - GIGAZINE
オープンソースcURLの作者、某大企業から「24時間以内にこの質問に答えるように」との無礼なメールを受け取る - Publickey

不適切な名称

Easily rename your Git default branch from master to main - Scott Hanselman
VMwareがコネクターの「オス/メス」表記を非推奨にするとの報道 | スラド ハードウェア
ゆうくさんはTwitterを使っています 「git 2.28 がリリースされて init.defaultBranch が追加されたらしい。git init で最初に作られるブランチ名を master から変えられるやつ。 https://t.co/fcG82vjppd」 / Twitter
Highlights from Git 2.28 - The GitHub Blog
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もう英語を避けようぜ。 git push origin master のかわりに クソ野郎 突き倒す お前 俺 にしよう。」 / Twitter
ギズモード・ジャパンさんはTwitterを使っています 「Github、人種差別を連想させるコーディング用語の見直しへ https://t.co/1EaS8H8esF」 / Twitter
Github、人種差別を連想させるコーディング用語の見直しへ | ギズモード・ジャパン
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「クソ野郎 侮辱 クソ野郎 状態 頭 もがれたぞ」 / Twitter
Twitter、コードやドキュメント内の用語「Whitelist/Blacklist」「Master/Slave」「Dummy value」などを好ましい用語へ置き換え、具体例も発表 - Publickey
Linuxカーネルでの「master/slave」と「blacklist」禁止、トーバルズ氏が承認 - ITmedia NEWS
Ichinose ShogoさんはTwitterを使っています 「すごい提案がやってきた 「"pull" はいじめに関連しており、気分を害する人がいるので、"pull request" を "get request" に変更しましょう」 https://t.co/VmLWY6PuM6」 / Twitter
Renaming "Pull requests" into "Get requests" by fengertao · Pull Request #15 · github/renaming
sksatさんはTwitterを使っています 「GitHubポリコレ部についていつも思うのは、「いやGitはいいんかい」ということですね」 / Twitter
sksatさんはTwitterを使っています 「ポリコレ部のみなさん、Linux Kernelの不適切なコメント除去活動などに参加されるとよいのでは。知らんけど。」 / Twitter
GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更 - Publickey
新しいGitHubリポジトリではmainブランチがデフォルトに
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「BLMの影響で、電子工作でよく見る MOSI/MISO (Master/Slave In/Out) が COPI/CIPO (Controller/Peripheral) になったらしい…後年「BLMにビビって、下らない言い換え流行ったよね(苦笑)」とか振り返るのかな? https://t.co/Z894bK0N66」 / Twitter
A Resolution to Redefine SPI Signal Names - Open Source Hardware Association

GIGAZINE

わかりやすくて役に立つリリースノートを書くための10のポイント - GIGAZINE
GitHubのソースコードがGitHub上にリークされる、公開した人物は「GitHubのCEO」を偽装 - GIGAZINE
オープンソースプロジェクトのセキュリティを1発で自動評価してくれる「Security Scorecards」が登場 - GIGAZINE
GitHubがGit操作時のパスワード認証を廃止、今後はトークンによる認証が必須に - GIGAZINE
GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー - GIGAZINE
GitHubのサービスを駆使してウェブサイトの死活監視が無料で行える「Upptime」 - GIGAZINE
Googleが提案するオープンソースプロジェクトのセキュリティを高めるための「Know, Prevent, Fix」とは? - GIGAZINE
SSH接続でGitHubにアクセスする際にセキュリティキーによる認証が利用可能に - GIGAZINE
Gitの操作を間違ってしまった時に簡単に元に戻せる「git undo」を使う方法 - GIGAZINE
GitHub開発チームの開発環境がCodespacesに移行、セットアップ時間が45分から10秒に - GIGAZINE
田中裕一(Yuichi Tanaka)さんはTwitterを使っています 「Codespacesと似てるんですが、GitHubのリポジトリで "." を押すと、ブラウザ上のVS Codeがエディタとして起動します。これでブラウザ上でコードをさくっと編集できます。Codespacesと違ってこちらはエディタが起動するだけなので、ビルド等を行う環境が必要な場合はCodespacesを使うイメージです。」 / Twitter
脚光は浴びないが重要なオープンソースソフトウェアを維持する開発者に報酬を分配する「OpenFare」とは? - GIGAZINE
テキストからグラフを自動で作成してくれるライブラリ「Mermaid」をGithubがサポート - GIGAZINE

窓の杜

GitHub、中核機能をすべて無償化 ~チーム開発も無料で始められるように - 窓の杜
Microsoft、「Visual Studio Codespaces」を「GitHub Codespaces」に統合 - 窓の杜
GitHub、“Open Source Guides”の日本語訳を公開 ~OSSコミュニティのベストプラクティスを集約 - 窓の杜
「GitHub」がMP4/MOVビデオのアップロードに対応 ~不具合や要望の投稿に - 窓の杜
「GitHub Copilot」がプレビュー公開 ~関数名やコメントをみたAIが勝手にコーディング - 窓の杜
「GitHub Codespaces」が法人向けに提供開始 ~[.]キーでリポジトリを「Visual Studio Code」開くショートカットも - 窓の杜
「GitHub CLI 2.0」が公開 ~カスタムコマンドで機能を自由に拡張できるように - 窓の杜

Publickey

「GitHub Container Registry」パブリックベータとしてサービス開始。無料でコンテナのパブリックイメージ公開可能 - Publickey
CNCF、Kubernetes用ソフトウェアパッケージなどの公開リポジトリ「CNCF Hub」を公開 - Publickey
CircleCIがAWSやGoogle Cloud、Kubernetesなどへ自動デプロイするための共有パッケージ「Orb」を公開。クラウドへの自動デプロイが容易に - Publickey
GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 - Publickey
GitHub、電子掲示板でコミュニティ機能を実現する「GitHub Discussions」パブリックベータを開始。GitHub Universe 2020 - Publickey
GitHub、自動でマージが実行される「Pull request auto-merge」機能を発表。GitHub Universe 2020 - Publickey
Google、オープンソースソフトウェアの脆弱性をバージョンごとにデータベース化する「OSV」(Open Source Vulnerabilities)プロジェクトを開始 - Publickey
GitHubが動画のアップロード機能に正式対応。バグの再現手順や機能のデモなどの説明が動画で容易に - Publickey
AIとのペアプロへまた一歩前進、「GitHub Copilot」登場。AIがコメントからコード生成、書きかけのコードを補完、コードを見てテストコード自動生成など - Publickey
マイクロソフト、オープンソースプロジェクトにAzureの無償クレジットを提供開始 - Publickey
GitHub ActionsがOpenID Connectをサポート。GitHubからクラウドへのデプロイがより安全に - Publickey
AIとペアプロする「GitHub Copilot」がneovimとIntelliJ IDEAでも利用可能に、テクニカルプレビューとして - Publickey
GitHubがコード検索を強化。正規表現対応、プログラミング言語別、組織やリポジトリ、ファイルパスなど範囲指定、高速な結果表示 - Publickey
GitHub Actionsの作成が容易に。リポジトリの中身に合わせておすすめのワークフローを一覧表示、検索機能も - Publickey
GitHub、スポンサーだけが見られるリポジトリ「Sponsors-only repositories」発表 - Publickey
GitHub、Markdown構文でフローチャートやクラス図、ガントチャートなどのダイアグラムを表示できる「Mermaid」をサポート開始 - Publickey
GitHub、Wikiページにも画像をドラッグ&ドロップで追加可能に - Publickey
GitLab.com、SaaS版の無料枠を最大ユーザー5人までに制限。6月から - Publickey

blog

VSCodeのGitHubリポジトリに対する不正なPushアクセス - RyotaK's Blog
AWS IAM Userアクセスキーのローテーションを自動化しました | Money Forward Engineers' Blog
Semantic Versioningの闇 - knqyf263's blog
セマンティック バージョニング 2.0.0 | Semantic Versioning
日記 (2020 年 5 月)
日記 (2020 年 6 月)
日記 (2020 年 7 月)
git で並列 fetch するオプション - HsbtDiary(2021-02-03)
Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
同じソースツリーでテストが通っていたらテストをスキップする | おそらくはそれさえも平凡な日々
大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog
リリースノートからコミットログを調べる
Git管理下でローカル編集した差分を検知除外したい時にはgitignoreではなくgit update-indexを使おう | DevelopersIO
MDN日本語版の覚え書き | フロントエンドBlog | ミツエーリンクス
新しいGitHubベースシステムにおけるMDN日本語版の翻訳が凍結解除 | フロントエンドBlog | ミツエーリンクス
まともに使えるソフトウェアを作るためのチェックリスト - うさぎ小屋
Keep a Changelog
GitHub開発チームでのCodespacesの利用 - GitHubブログ
Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
コミットはスナップショットであり差分ではない - GitHubブログ
Takafumi IkedaさんはTwitterを使っています 「ついに仕事用アカウントを個人とは別に作れるようになった / “Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog” https://t.co/SoVcB3Vj2c」 / Twitter
Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog
GitHub上のsensitive dataを削除するための手順と道のり | メルカリエンジニアリング
Tailscale経由でGitHub ActionsのVMにsshする - masa寿司の日記
GitHubからJenkinsとTerraformを使って仮想マシンをデプロイしてみた | IIJ Engineers Blog
GitHubリポジトリの機密情報チェックツール - 電通国際情報サービス TechBlog
Include diagrams in your Markdown files with Mermaid | The GitHub Blog
Line-staging (Interactive Staging) - Visual Studio Blog

OSDN

オープンソースプロジェクトと開発者を結びつけるサービス「OSS Port」 | OSDN Magazine
Microsoft、オープンソースプロジェクトにAzureクレジットを付与するプログラム | OSDN Magazine
企業は社内で使うオープンソースコンポーネントの17%しか認識していないーー米Revenera調査 | OSDN Magazine
オープンソースの利用は拡大、だがOSPO職を設ける企業はわずか15% | OSDN Magazine
FSFのFree Software Awardsが発表、修理する権利のSecuReparisなどが受賞 | OSDN Magazine

infoQ

GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より
GitHubコードスキャンはベータ版終了
GitHubは、CodespacesとDiscussions、およびその他のセキュリティ機能を導入
Visual Studio CodespacesはGithub Codespacesに
Githubが不必要なCookieをすべて削除
GitHubが依存性グラフとセキュリティ警告を導入
GitHubの依存関係グラフ~ 開発ワークフロー全体をセキュアに - GitHubブログ
Git Cloneの脆弱性の分析
Git 2.31がリリース、メンテナンスがバックグラウンドで実行可能に
GitHubはトークンフォーマットを変更して、識別性、シークレットスキャン、エントロピーを改善
GitHub、DMCAに対して開発者をサポートする独立的な法的支援機関を設立
CodespacesがEmacsとVimをサポートしてGitHubの新しい開発プラットフォームになった
エクステンションをサポートしたGitHub CLI 2.0
GithubがGitプロトコル、Dsaキー、レガシーSSHアルゴリズムのサポートを段階的に廃止
オープンソースのセキュリティを改善するGitHubアプリAllstarが発表
GitHubがプロジェクトを導入、Codespace、Copilot、コードスキャニングなどをアップデート
Universeイベントで発表されたGitHubのリリースで開発者フローが改善
GitHubが機械学習を使って脆弱性コードスキャンを拡張した方法
パフォーマンス向上のためにGitHub Codespacesがテンプレート化

Zenn

個人からチームまで、Notion での情報・タスク管理一元化完全解説
ブラウザだけでOS自作入門しよう
Docker ではじめる "ゼロからのOS自作入門"
Check! GitHub の監査ログを知る
Gitのインデックスの中身
Gitのブランチの実装
Gitのオブジェクトの中身
GitHub Actionsの手動実行パラメータのUI改善について速報で解説する
GitHubセキュリティ Organization運用のベストプラクティス

Qiita

Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする - Qiita
Visual Studio で日中韓台文字表示 UEFI アプリ作成のメモ - Qiita
GitHubのClone数をAPIで取得する - Qiita
GitHub「Personal access tokens」の設定方法 - Qiita
gpg (GNU Privacy Guard)の使い方 - Qiita

Twitter

その他

ARCHITECTURE​.md

ドッグさんはTwitterを使っています 「ARCHITECTURE​.md ファイルのすすめ.コア開発者とコントリビュータの間の知識差を埋めるために,プロジェクトの構造を把握して「◯◯の処理をやっているのはどこか」が大体分かる小さいドキュメントを置く | 'ARCHITECTURE​.md' https://t.co/3QL0196l8E」 / Twitter
ARCHITECTURE.md
ドッグさんはTwitterを使っています 「https://t.co/EP0qzByMt3 rust-analyzer の architecture​.md がよく書けてるらしい.そういえば少し前に話題になっていたような」 / Twitter
rust-analyzer/architecture.md at d7c99931d05e3723d878bea5dc26766791fa4e69 · rust-analyzer/rust-analyzer
ブックマーク
プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか? - GIGAZINE
ARCHITECTURE.mdというものを書いてみた - maru source

Code of Conduct

Tomoya Matsuura 松浦知也さんはTwitterを使っています 「@uint256_t Berlin Code of Conduct https://t.co/B814f6XJom とContributor Covenant https://t.co/xuKT4crnu0 辺りが日本語もあるし参考にしやすいと思います。とはいえ、CoCってライセンスと違ってどういうコミュニティを目指すかの表明みたいなもんなんで、参考にしつつオリジナル作った方がよいかなとも」 / Twitter
ベルリン行動規範
Contributor Covenant:

key already in use

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「githubで key already in use になった場合、「どこで使われてる?」というのが判らないと詰む。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ssh -T -ai ~/.ssh/id_xxx git@github.com と実行して "username/repo" と出る場合はそのdeployキー登録されてる、というFAQあった。 https://t.co/UA4LJC2RJl」 / Twitter
Error: Key already in use - GitHub Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「もう少し詳細な議論 https://t.co/Gb2q4n4F93」 / Twitter
git - GitHub Error: Key already in use - Stack Overflow

PR

Kazuho OkuさんはTwitterを使っています 「"Merging changes into a tree is called a "pull", and is analagous to 'cvs update'." こういう慣習がBitkeeperの頃からあったというのはパッと出てくるけど https://t.co/roxkm8d32f」 / Twitter
Documentation/BK-usage/bk-kernel-howto.txt - kernel/msm - Git at Google
FUJI GoroさんはTwitterを使っています 「その理由はGit誕生以前からある用語だからだったと思いますが、もはやGitHub以前の "pull request" という言葉のユースケースを探すことも困難になっているような…。」 / Twitter
uint256_tさんはTwitterを使っています 「pull request ってなんで pull request って呼ばれてるの」 / Twitter
FUJI GoroさんはTwitterを使っています 「LinusがGitでLinux kernelを開発する際の作法について説明したメール(2005)を発見した: > A "release" tree into which tested patches are moved for final sanity checking, and as a vehicle to send them upstream to Linus (by sending him a "please pull" request.) https://t.co/R8CqoHG0U9」 / Twitter
git/cogito workshop/bof at linuxconf au?
uint256_tさんはTwitterを使っています 「@__gfx__ 以前からpull requestという言葉が存在していたんですね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@uint256_t @__gfx__ NetBSD の release engineering team では、開発ブランチからリリースブランチへのマージ要求を pull-up request と呼んでいて、webで確認できる限りでも 2000年からありますね: https://t.co/mXv6CYN2P9 (GitHub のサービス開始は2008年)」 / Twitter
NetBSD Release Engineering: Pullup Requests
Kazuho OkuさんはTwitterを使っています 「@n_soda @uint256_t @__gfx__ gitに限って言っても、git request-pull コマンドが2005年からありますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そんなとこだと思うけど、細かなこというと 3 はおかしいというか、git pull 自体は「fetch from and integrate with」だし、pull の用法は「pull request」と同様の意味だと言うほうが自然だと思う。 pull = fetch + merge ってことかな」 / Twitter
FUJI GoroさんはTwitterを使っています 「1. もともとVCSの "merge" は "pull" とも呼ばれていた 2. "pull request" は特別な用語ではなく単に「マージしてください🙏」という意味 3. Gitがmergeではない意味でpullを実装(ただしpullのデフォルトの挙動はmergeも含む!) 4. GitHubが一般用語としての pull request を機能名として採用」 / Twitter
𝔸𝕂𝕒𝕟𝕒𝕤𝕙𝕚𝕣𝕠 (カナやん)さんはTwitterを使っています 「@kazuho ちなみにGitLabの方は 'pull request' ではなく、'merge request' だったりします。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「pull requestって、bitkeeper以前で使われてたっけ?。Kernelコードやってたの2000年くらいまでだから記憶が曖昧 https://t.co/J1EE8C7SUj」 / Twitter
pull | BitKeeper Documentation

histric

histric-1

κeenさんはTwitterを使っています 「パッチベースの分散バージョン管理システムのPijulが1.0に向けた展望を示してる(まだ読んでない) Towards 1.0 https://t.co/SkAsUabx6Z」 / Twitter
Pijul
👻 道化師 🃏さんはTwitterを使っています 「GitHub Desktop のイヤなバグを見つけてしまったなぁ。 GitHub 上で作りたてのリポジトリを GitHub Desktop でクローンすると、他の環境でコミット&プッシュした内容をプルできなくなる。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「あ、ブランチを切り替えようとする操作で問題を回避できた!」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/dfdNpNQKQn ずっと欲しかった GitHub の通知を org と author でフィルタできる機能が入ってる.これで通知の流量の多いリポジトリを watch してても,自分のリポジトリ宛の通知を見落とさなくなるはず.早速 Filters に登録した https://t.co/Y2YJHLLUQw」 / Twitter
Organization and Author Filters for GitHub Notifications - GitHub Changelog
井山梃子歴史館さんはTwitterを使っています 「cherry-pickがidentityを保つの,達成されてほしい性質なんだよな」 / Twitter
FadisさんはTwitterを使っています 「ちなみにGitHubはAPIの/metaに機能ごとに使用する可能性があるアドレスの範囲が書かれているので、hooksに列挙されている範囲のアドレスをallowする設定を生成するスクリプトをcronで時々走らせておけば良い感じに「GitHubは通って良し」が出来る」 / Twitter
入谷 優さんはTwitterを使っています 「GitHub Codespaces が dotfiles リポジトリから自動的に設定ファイルを引っ張ってきていることに気付きました。配慮が行き届きすぎていて怖いぐらいです。 https://t.co/dlYQP1pCZP」 / Twitter
Personalizing Codespaces for your account - GitHub Docs
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ZeroVer運動。ソフトウェアにメジャーバージョンをつける時代は終わった。これからはつねに 0. で始まるバージョンにせよ。実際、オープンソースでは ZeroVerを使っているものが多い。たとえば React Native は6年以上開発されているが、最新バージョンは 0.65.0-rc.2である。 https://t.co/Hxaf0wiDVo」 / Twitter
ZeroVer: 0-based Versioning — zer0ver
Shiro KawaiさんはTwitterを使っています 「情報とメタ情報の線引きの問題かも。 メタ情報を全部情報内に含めようとするとすぐ破綻する(例: $Log$)。なので程度問題になるけど、メタ情報が手に入る前提なら情報は極力スリムにする方が良い。 ただ現状だと、ファイルとリポジトリが泣き別れしちゃうことを防げない。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「gitで管理されているファイルはファイルのデータを見ただけでは作成日付すらわからない。太古のSCCSからSubversionに至るまで、ファイルの中身を見ただけで雰囲気はわかるようになっていたのに。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ファイル自体にリソースフォークのようにメタ情報を付加する発想もあったけど、ファイルシステムによってサポートされてなかったり、複数のファイルに関連するメタ情報どうすべ、とか悩みは多い。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「git使い始めた頃は、$Header$相当が無いとtarballからコピーされてったファイルがどのリビジョンか分からなくなって管理むちゃくちゃにならない? とか不安だったんだけどいつしかそこは割りきるようになった気がする。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ただChangeLogの慣習はまだ捨てられてない。やっぱtarballだけ見て何が起きてるかどうか把握できるのはメリットだと思うし。 複数人分散開発だと衝突が起きまくるので少人数開発でしか使えないけど。(GaucheではPRにChangeLog変更は含めず、マージ後にメンテナである自分が適宜追加する運用)」 / Twitter
kateinoigakukunさんはTwitterを使っています 「CIのお世話、とても大変だし、多分他にも出来る人いるでしょ…俺がやらないといけないのはもっと他に…って気持ちになる」 / Twitter
kateinoigakukunさんはTwitterを使っています 「おそらく他で役に立たないヘッドレスmacOS運用の知見が溜まっていく」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GitHubのURLさ、Git内部の仕様を考えたら /tree/branch-name/path/to/dir がディレクトリーで /blob/branch-name/path/to/file がファイルのパスなのは 至って自然なんだけど、直接URL書いてアクセスするときは結構めんどいよね。」 / Twitter
ドッグさんはTwitterを使っています 「@igrep /tree/ の URL はファイルだと勝手に /blob/ にリダイレクトしてくれる(逆もしかり)ので,常に /blob/ 使っておくとかで良いと思います」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Linda_pp なんと!ホントだ!ありがとうございます!」 / Twitter
Masaki HaraさんはTwitterを使っています 「最近知って有用だったこと: git blameには --reverse オプションがあるし、 git logの -S オプションを使うと「指定した語句が増えたり減ったりしたコミットの一覧」が取れる https://t.co/r4ir1pBqQP」 / Twitter
How do I "git blame" a deleted line? - Stack Overflow
SODA NoriyukiさんはTwitterを使っています 「減ったタイミングが簡単にわかるのはすごくうれしいな…←cvs時代から減ったタイミングは二分探索で頑張って探してた人」 / Twitter
画力・博士号さんはTwitterを使っています 「GitHubのPRのURLにクエリパラメータ ?w=1 をつけると空白文字だけの変更をdiffから消してくれるようになっていることを知った」 / Twitter

GitHub の基礎 - 管理の基本と製品の機能。 - Learn | Microsoft Docs
iOS、AndroidのGitHub Mobileで新たな2要素認証 | TECH+
2 要素認証を設定する - GitHub Docs
YurikaさんはTwitterを使っています 「オープンソースのメンテナー向けの脆弱性対応ポリシーやプロセスのつくり方ガイドはこっち:https://t.co/y7p8XmT2Gt オープンソースではなくても、自社製品の脆弱性を受け付け対応するプロセスの導入 (いわゆるPSIRTの導入) を検討しているところには参考になりそう」 / Twitter
ossf/oss-vulnerability-guide: A guide on coordinated vulnerability disclosure for open source projects. Includes templates for security policies (security.md) and disclosure notifications.
記事一覧 - Jicchoの箱

勉強会等

takuya-aさんはTwitterを使っています 「検索技術に関する情報交換を目的とした Slack を立ち上げました!こちらの招待リンクからご参加ください。 https://t.co/Tca70vuMff」 / Twitter
第一回関数型プログラミング(仮)の会 - connpass
第二回関数型プログラミング(仮)の会 - connpass
PPL 2022: 第24回プログラミングおよびプログラミング言語ワークショップ
ss2021 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
Haskell Day 2021 #HaskellDay
Haskell Day 2021 - connpass
第2回『Implementing functional languages』勉強会 - connpass
論理学友の会例会#19 - connpass
プログラミング言語処理系が好きな人の集まり
プログラミング言語が好きな人が集まるSlack・定期ミートアップ - YouTube
prog-lang-sys-ja
ruby-jp
guiland
Computers-and-Mathematics
いい感じにリンク化するPopup Menu - daiiz
smalltalk-users.jp
osdev-jp
ゼロからの OS 自作入門 | ゼロからのOS自作入門
uchan-nos/os-from-zero: 『ゼロからのOS自作入門』(内田公太著、マイナビ出版)のサポートサイトです
uchan; MikanOSにUSB CDCドライバを追加してシリアル通信 · uchan-nos/os-from-zero Wiki
uchanの電子工作ラボ
uchan's site
CPU+コンパイラ自作ワークショップ - connpass

検索

-from:tenpoku1000 github.com/tenpoku1000 - Twitter検索 / Twitter
自作OS gui - Google 検索
自作OS コンパイラ - Google 検索
自作OS UTF-32 - Google 検索
OS開発予定 - Google 検索
インテル ドキュメント - Google 検索
自作OS レガシー規格 - Google 検索
自作OS 仮定義 - Google 検索
自作OS NMI - Google 検索
x64 uefi os自作 - Google 検索
freetype uefi - Google 検索
ovmf qemu ビルド - Google 検索
コンパイラ WebAssembly JIT 自作 - Google 検索
コンパイラ WebAssembly 自作 - Google 検索

objdump

FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter

Gist

2017

2 年以上かけて自作 OS 開発のための資料を集めた話

資料

ワナビとは (ワナビとは) [単語記事] - ニコニコ大百科
日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | 日本規格協会 JSA Group Webdesk
JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996/CORRIGENDUM 1:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006 DVD-再生専用ディスクのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006/AMENDMENT 1:2017 DVD-再生専用ディスクのボリューム構造及びファイル構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 0613:2015 ユニバーサルディスクフォーマット(UDF)2.50 | 日本規格協会 JSA Group Webdesk
JIS X 0614:2015 ユニバーサルディスクフォーマット(UDF)2.60 | 日本規格協会 JSA Group Webdesk
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML) | 日本規格協会 JSA Group Webdesk
JIS X 4168:2004 段階スタイルシート 水準1(CSS1) | 日本規格協会 JSA Group Webdesk
JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | 日本規格協会 JSA Group Webdesk
JIS X 3005-2:2015 データベース言語SQL 第2部:基本機能(SQL/Foundation) | 日本規格協会 JSA Group Webdesk
JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類

自作 OS で USB デバイスに対応するための調査メモ

自作 OS で USB デバイスに対応するための調査メモ

BSUSRC06 USBシリアル変換ケーブル : USBケーブル | バッファロー
USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
USB-LAN2500R
ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社
HL-L2360DN | レーザープリンター・複合機 | ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
BonjourPrinting
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
Raspberry Piでイーサネットコンバータを作る
Raspberry Piで無線LAN
iPhone 6 Plus - 技術仕様
BluetoothテクノロジWebサイト
Launch Studio - Listing Search
PIC
HIDP ‐ 通信用語の基礎知識
A2DP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識
HOGP ‐ 通信用語の基礎知識
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Diego Giagio :: Personal Website - iPhoneEthernetDriver
iPhone/iPadを有線LAN(Ethernet)で接続しよう
if_ipheth(4)
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。
URoad-Stick│超速モバイルネット WifiサービスはUQ WiMAX
stick_linux_info_v1.0.pdf
Huawei WiMAX 2+モデムをLinuxで使う

自作派の人のためのコンパイラ関連規格のメモ

自作派の人のためのコンパイラ関連規格のメモ

Unicode

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk

C

www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
C++でCプリプロセッサを作ったり速くしたりしたお話
ISO/IEC 9899:201x - n1570.pdf
ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
Clarification Request Summary for C11

LSP

language server protocolについて (前編) - Qiita
Specification

アセンブリ/WebAssembly

Linux のアセンブラー: GAS と NASM を比較する
WebAssembly Specifications
WebAssembly High-Level Goals - WebAssembly

ABI

x64 software conventions | Microsoft Docs
System V Application Binary Interface - DRAFT
gabi41.pdf
mpx-linux64-abi.pdf

PE/ELF/UEFI

PE Format - Win32 apps | Microsoft Docs
The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
Linux Foundation Referenced Specifications
Microsoft UEFI CA の署名ポリシーが更新されました | Microsoft Docs
mjg59 | Secure Boot bootloader for distributions available now
SecureBootとLinux
openSUSE:UEFI - openSUSE Wiki
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

テスト・log

第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
TAP
LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
Labeled Tab-separated Values (LTSV)

Debug

デバッグ情報の歩き方 - Qiita
DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Download DWARF Standards
LLVM Project Blog: LLDB is Coming to Windows
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
The PDB File Format — LLVM 9 documentation
microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
CodeView.pdf
x64 exception handling | Microsoft Docs

セキュリティ

MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
Software Design 2015年5月号|技術評論社
SEH_Overwrite.pdf
EMETReport.pdf
/GS (Buffer Security Check) | Microsoft Docs
スライド 1 - bh-japan-08-Ishiyama.pdf
MR201412_Control_Flow_Guard_JPN.pdf

ECMAScript

ECMA-262 Edition 5.1を読む - 秀和システム あなたの学びをサポート
ECMAScript® 2018 Language Specification
asm.js: 仕様と実装の今 - Qiita
asm.js
Rockridgeさんのツイート: "Firefox、Edge、Chromeの各開発ツールが利用するリモートデバッグ用のプロトコルを統合する動きがあるという。 / “Implementing a Chrome DevTools Protocol server in …” https://t.co/BuXEkgpQRS"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
Wayback Machine
HAR ファイルの生成と Web リクエストの分析 - アトラシアン製品ドキュメント
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
JavaScript ASTを始める最初の一歩 | Web Scratch
estree/estree: The ESTree Spec
tc39/proposal-binary-ast: Binary AST proposal for ECMAScript
Il y a du thé renversé au bord de la table !
binast/binjs-ref: Reference implementation for the JavaScript Binary AST format
[2015-02] 最近のJavaScript AST標準化の動き | Web Scratch
getify/concrete-syntax-tree: Defining a standard JavaScript CST (concrete syntax tree) to complement ASTs

Web IDL

ESウェブブラウザ通信 - ESウェブブラウザでのWeb IDLの利用 | Shiki’s weblog
Web IDL (第 2 版 — 日本語訳)
Web IDL

自作 OS の GUI 開発のためのメモ

GUI

書籍

朝倉書店| グラフィクスの仕組み
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
マイナビ ブックス - 目次
フルスクラッチによるグラフィックスプログラミング入門 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社

GUI ライブラリ

Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
lc-soft/LCUI: A small C library for building user interfaces with C, XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
lvgl/lvgl: Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

EditorConfig

EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com

文字コード

Downloading ICU - ICU - International Components for Unicode
International Components for Unicode - Wikipedia
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

フォント

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
googlefonts/noto-fonts: Noto fonts, except for CJK and emoji
The FreeType Project

レイアウトエンジン

fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
fribidi/fribidi: GNU FriBidi
GNU FriBidi - Wikipedia
HarfBuzz – Y.A.M.A.P
HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
Page not found · GitHub Pages

文書・PDF

JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
Google Chrome PDFエンジンがオープンソース化
pdfium Git repositories - Git at Google
Issues - pdfium
Full PDF SDK Developer Guides | Desktop, Mobile & Web
にっき♪: PDFium

画像

Independent JPEG Group
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo-2.0.5
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
The libexif C EXIF library
libexif-0.6.22
libpng Home Page
libpng-1.6.37
GIFLIB download | SourceForge.net
giflib-5.2.1
memononen/nanosvg: Simple stupid SVG parser
SVG 1.1 仕様 (第2版) 日本語訳
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
memononen/nanovg: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
https://twitter.com/rockridge07/status/868125619963314176
https://twitter.com/rockridge07/status/905787835357077504

音声

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み – NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
git.xiph.org
libvorbis-1.3.7
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia
Development – Opus Codec
Opus-1.3.1
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
xiph/flac: Free Lossless Audio Codec
FLAC-1.3.3
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

動画

https://twitter.com/vyv03354/status/701022560759066624
https://twitter.com/vyv03354/status/702818242482405377
OpenH264
Theora - Wikipedia
Theora - Wikipedia
Theora.org :: downloads - Theora, video for everyone
git.xiph.org
libtheora-1.1.1
VP8 - Wikipedia
VP8 - Wikipedia
VP9 - Wikipedia
VP9 - Wikipedia
WebM - Wikipedia
WebM - Wikipedia
The WebM Project | Developer Overview
webmproject/libvpx: Mirror only. Please do not send pull requests.
libvpx-1.9.0
AV1 - Wikipedia
AV1 - Wikipedia
AV1 specification を読む 2018-03-26 .. 04-17 - Qiita
AOM-AV1-Video-Tech-meet-up.pdf
aomedia Git repositories - Git at Google
The WebM Project | Developer Overview

UTF-32 でも固定長で処理出来るわけではない

UTF-32

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
符号点 - Wikipedia
Unicode Terminology: English - Japanese
結合文字 - Wikipedia
異体字セレクタ - Wikipedia

表に出て来ない凄い人は、実在性の確認が困難である

2018

x64 の 64 ビットモードのエンコーディング概略

x64

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals

インテル関連ドキュメント・リンク集

インテル

書籍

Amazon.co.jp: 新装改訂版 Linuxのブートプロセスをみる (アスキー書籍) eBook: 白崎 博生: Kindleストア
自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
ゼロからのOS自作入門 | マイナビブックス
作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
30日でできる! OS自作入門 | マイナビブックス
コンピュータの構成と設計 第5版 上|日経BPブックナビ【公式サイト】
コンピュータの構成と設計 第5版 下|日経BPブックナビ【公式サイト】
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(John L. Hennessy David A. Patterson 吉瀬 謙二 佐藤 寿倫 中條 拓伯 中條 拓伯 天野 英晴 天野 英晴 鈴木 貢)|翔泳社の本
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
USB 3.0 ホストドライバ自作入門 - Hello uchan world - BOOTH
USB 3.0設計のすべて
USB 3.2のすべて
USB Type-Cのすべて
販売終了
USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
O'Reilly Japan - Bluetooth Low Energyをはじめよう
Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CUTT System:64ビットアセンブラ入門
CUTT System:AVX命令入門
低レベルプログラミング(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン, ジュニア, ヘンリー・S., Warren, Jr., Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販 | Amazon
Linkers & Loaders | コンピュータ・一般書,UNIX,UNIX | Ohmsha
リンカ・ローダ実践開発テクニック
【Code Reading Tシャツ付き】Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
【Code Reading Tシャツ付き】Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - Binary Hacks
たのしいバイナリの歩き方:書籍案内|技術評論社
デバッガによるx86プログラム解析入門【x64対応版】 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました

SDM

https://twitter.com/InstLatX64
instlatx64
Intel® 64 and IA-32 Architectures Software Developer Manuals
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol3_i.pdf

データシート・エラッタ・拡張命令

Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
6th Generation Intel® Processor Family Specification Update - 332689-025_6th Generation Intel Processor Family Spec Update.pdf
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf

llvm-mca・oneAPI

llvm-mca - LLVM Machine Code Analyzer — LLVM 12 documentation
Intel® Architecture Code Analyzer
Intel® Architecture Code Analyzer Download
Intel® oneAPI: A Unified X-Architecture Programming Model
インテル® oneAPI ツールキットで FPGA を開発してみる
インテル oneAPI ツールキット | 統一されたクロスアーキテクチャー・プログラミング・モデル | XLsoft
インテル® oneAPI ツールキット | iSUS
インテル® oneAPI 最新情報 | iSUS
インテル VTune プロファイラー | C++ C# Fortran Java Python プロファイラー

チップセット

Intel Chipset Products
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series and Intel® C230 Series Chipset Family Platform Controller Hub (PCH) Datasheet - Volume 2 of 2 - 100-series-chipset-datasheet-vol-2.pdf
Intel® 100 and C230 Series Chipset Family PCH Specification Update
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-1.pdf
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-2.pdf
Intel® 200 and Z370 Series Chipset Families Platform Controller Hub (PCH) Spec Update - 200-series-chipset-pch-spec-update.pdf
Intel® 300 Series and Intel® C240 Series Chipset Family Platform Controller Hub (PCH) - 300-series-chipset-pch-datasheet-vol-1.pdf
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub

GPU

Hardware Specification - PRMs | 01.org
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel® Processor Graphics
インテル® プロセッサー・グラフィックス | iSUS

UEFI・ACPI・I/O 等

Specifications and Tools | Unified Extensible Firmware Interface Forum
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPICA Documentation | The ACPI Component Architecture Project
IA-PC HPET (High Precision Event Timers) Specification 1.0a - software-developers-hpet-spec-1-0a.pdf
eXtensible Host Controller Interface for Universal Serial Bus (xHCI) - extensible-host-controler-interface-usb-xhci.pdf
USB Type-C Connector System Software Interface Specification
Specifications – NVM Express
AHCI Specification
Specifications | Bluetooth® Technology Website

その他

技術資料 | iSUS
x64 アセンブリーの概要 | iSUS
x64 の 64 ビットモードのエンコーディング概略
投機的実行サイドチャネルハードウェア脆弱性

レガシー規格 SATA を振り返る

SATA

後半

忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SATA LPMの設定方法
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: DEVSLP(Device Sleep)機能とは
【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
Samsung HM020GI 1. Specification Summary
Support policy for 4K sector hard drives - Windows Server | Microsoft Docs
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行 | Seagate 日本
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブ(4Kn)の違い - ぼくんちのTV 別館
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
Toshiba MK6034GSX - hard drive - 60 GB - SATA-150 Series Specs & Prices - CNET
Toshiba MK3276GSX - hard drive - 320 GB - SATA-300 Series Specs & Prices - CNET
MQ04 シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
Toshiba MG04ACA500A - hard drive - 5 TB - SATA 6Gb/s Specs - CNET
MG04ACA シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
HDD が AV コマンド対応か調べたい: ひでのブログ
Seagate Mobile ST1000LM035 - hard drive - 1 TB - SATA 6Gb/s Specs & Prices - CNET
Seagate Laptop Thin SSHD ST500LM000 - hybrid hard drive - 500 GB - SATA 6Gb/s Specs - CNET
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 | サンワサプライ株式会社
Amazon.co.jp: オウルテック 5.25インチベイ内蔵専用HDDケース 2.5インチ&3.5インチHDD各1台簡単増設 SATA接続 Windows8.1対応 ガチャポンパッダイレクト ブラック OWL-IE5CB: パソコン・周辺機器
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)
CFastって何?
コンパクトフラッシュ協会がCFexpress* 1.0仕様を発表 | Business Wire
最大転送速度2GB/sを実現する次世代カード規格「CFexpress 1.0」発表 ~将来的に8GB/sを目論む - PC Watch

Storage Reviews - CNET
Purchase SATA Specification | SATA-IO
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
AHCI Specification
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
Microsoft Word - dg_sataahciip_refdesign_jp.doc - dg_sataahciip_refdesign_jp.pdf
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc - dg_sata_achi_ip_data_sheet_jp.pdf
Reconf 201506
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
AT Attachment 8 - ATA/ATAPI Command Set - D1699r4a-ATA8-ACS.pdf
AT Attachment 8 - ATA/ATAPI Command Set - d2015r2-ATAATAPI_Command_set_-_2_ACS-2.pdf
内蔵SSD | 2.5" SSD | SATA-III 6Gb/s SSD220S - トランセンド|メモリ製品のスペシャリスト
AT Attachment 8 - ATA/ATAPI Command Set - d2161r5-ATAATAPI_Command_Set_-_3.pdf
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
di529r14-ATAATAPI_Command_Set_-_4.pdf
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Specs & Prices - CNET
INCITS: INCITS 558-202x - Information technology - ATA Command Set - 5 (ACS-5)

C のグローバル変数の仮定義とは

C

JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
仮定義
C言語のグローバル変数とexternについて - Gobble up pudding

NMI に割り込まれたい

NMI

bochs.sourceforge.net/techspec/PORTS.LST
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Low Pin Count - Wikipedia
Wayback Machine
[絶版2016.10.4] 改訂新版 PCIバス&PCI-Xバスの徹底研究
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
カーネル ダンプまたは完全なクラッシュ ダンプを生成する - Windows Client Management | Microsoft Docs
ASRock Rack > E3C236D2I
Amazon | KONDOLEN ブレッドボード?ジャンパーワイヤ(メス-オス)(20cm)40本 1 個 | KONDOLEN | PCパーツ 通販
Amazon | アイネックス 実験用スイッチ・LEDセット KM-01 | AINEX | インターフェースカード 通販

32 ビット整数式の x64 JIT コンパイラを試作する

2019

x64 の電力管理についてのメモ

2020

Intel

ALL

Guidance for System Administrators to Mitigate Transient Execution...
Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic...
How to Assess the Risk of Your Application
CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier
Spectre mitigations in MSVC | C++ Team Blog
Analyzing Potential Bounds Check Bypass Vulnerabilities
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
Kernel page-table isolation - Wikipedia
Meltdown (security vulnerability) - Wikipedia
Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
L1 Terminal Fault
Foreshadow - Wikipedia
Microarchitectural Data Sampling (Fallout/Zombieload/RIDL)
Microarchitectural Data Sampling - Wikipedia
Intel® Transactional Synchronization Extensions (Intel® TSX)...
Speculative Behavior of SWAPGS and Segment Registers
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler
Spoiler (security vulnerability) - Wikipedia
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
Processors Affected: L1D Eviction Sampling
CacheOut
Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
Processors Affected: Vector Register Sampling
LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection
Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
Snoop-Assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling
Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling
PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting CVE-2020-8694,...
INTEL-SA-00389

Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues

Secure Coding

Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic...
How to Assess the Risk of Your Application

CPUID/MSR

CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier

(1) CVE-2017-5753 Variant 1 Bounds Check Bypass

Analyzing Potential Bounds Check Bypass Vulnerabilities
Spectre mitigations in MSVC | C++ Team Blog

(2) CVE-2017-5715 Variant 2 Branch Target Injection

Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation

(3) CVE-2017-5754 Variant 3 Meltdown:Rogue Data Cache Load

Meltdown (security vulnerability) - Wikipedia
Kernel page-table isolation - Wikipedia
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center

(3a) CVE-2018-3640 Variant 3a Rogue System Register Read

Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115

(4) CVE-2018-3639 Variant 4 Speculative Store Bypass

Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center

(5) CVE-2018-3615/CVE-2018-3620/CVE-2018-3646 L1 Terminal Fault

Foreshadow - Wikipedia
L1 Terminal Fault

(6) CVE-2018-12126/CVE-2018-12127/CVE-2018-12130/CVE-2019-11091 Microarchitectural Data Sampling

Microarchitectural Data Sampling - Wikipedia
Microarchitectural Data Sampling (Fallout/Zombieload/RIDL)

(7) CVE-2019-11135 Transactional Asynchronous Abort

Intel® Transactional Synchronization Extensions (Intel® TSX)...

(8) CVE-2019-1125 Spectre SWAPGS gadget vulnerability

Speculative Behavior of SWAPGS and Segment Registers

(9) CVE-2019-0162 Spoiler

Spoiler (security vulnerability) - Wikipedia
More Information on Spoiler
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記

(10) CVE-2018-3665 Lazy FPU Save/Restore

INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter

(11) CVE-2020-0549 L1D Eviction Sampling

CacheOut
L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
Processors Affected: L1D Eviction Sampling

(12) CVE-2020-0548 Vector Register Sampling

Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
Processors Affected: Vector Register Sampling

(13) CVE-2020-0551 Load Value Injection

LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection

(14) CVE-2020-0550 Snoop-assisted L1 Data Sampling

Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
Snoop-Assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling

(15) CVE-2020-0543 Special Register Buffer Data Sampling(SRBDS)

Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling

(16) CVE-2020-8694/CVE-2020-8695 With Great Power comes Great Leakage(PLATYPUS)

PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting CVE-2020-8694,...
INTEL-SA-00389

投機的実行サイドチャネルハードウェア脆弱性
独自拡張 WebAssembly を生成し、UEFI アプリを出力するバックエンドを試作する

2021

WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行

WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行

Windows で sudo なことをする。 | みむらの手記手帳
更新プログラムの検索、ダウンロード、インストール - Win32 apps | Microsoft Docs
山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)

Intel CPU の Security & Reliability の各項目の概要を簡単に知りたい

Intel CPU の Security & Reliability の各項目の概要を簡単に知りたい

Intel Core i512600K Processor 20M Cache up to 4.90 GHz Product Specifications
white-paper-intel-hardware-shield.pdf
Intel Security Features and Technologies Related to Transient...
What is Intel® Secure Key Technology?
Intel® Boot Guard - Understanding the UEFI Secure Boot Chain

イマドキの C 言語の if 文では dangling(ぶら下がり・ぶらぶら・宙ぶらりん) else 問題は発生しない
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk

新線計画
コンパイラ・IDE・OS・VMM・IME の開発のためのメモ
WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
OS 開発予定(基本機能)
やらないこと・低優先度のリスト
正規表現を学習した際の問題点を掲載
keybase.md
MIT PGP Key Server
C++ でグローバル定数を宣言する場合のイディオム。定数の唯一の定義をマクロ HEADER_H_ で指示することで実現する
EFI 内部変数の CustomMode に CUSTOM_SECURE_BOOT_MODE:1 を書き込み後に再起動し、値を取得すると常に STANDARD_SECURE_BOOT_MODE:0 が返る
Affected Processors: Transient Execution Attacks & Related Security Issues by CPU | 01.org API
エヌユルさんはTwitterを使っています 「Type-Cのことをググれば分かるとか言ってる人、 分かりやすく簡潔な記事を書いたら需要がありますよ 多分2年ぐらいで時代遅れになって使い物にならなくなりそうですが…」 / Twitter
エヌユルさんはTwitterを使っています 「最低でもType-CとType-Aの変換はどっち方向だと規格違反で危険なのか何故かを含めて解説できる人だけが日経の記事を批判してくれ 私は覚えてない」 / Twitter

リポジトリ

tenpoku-book

chapter-2

2.3

最近のruby-core (2017年3月) | Money Forward Engineers' Blog
引退するメインフレームプログラマたち - その対策は?

2.4・2.5・2.6

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系 | 佐々 政孝 |本 | 通販 | Amazon
CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog

2.7

プログラミング言語処理
プログラミング言語処理
WebAssembly Specifications
Binary Format — WebAssembly 1.1 (Draft 2021-07-16)
Binary Encoding - WebAssembly
WebAssembly/wabt: The WebAssembly Binary Toolkit
WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | 株式会社ヌーラボ(Nulab inc.)
WebAssembly(wat)を手書きする | Kabuku Developers Blog
Writing WebAssembly By Hand
WebAssembly逆アセンブルして調べるテスト
WebAssemblyをはじめよう | WEBASSEMBLY USUI BOOK
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社

2.8

Intel

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software

書籍

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
[絶版1999.4] 8086ファミリ・ハンドブック
80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ

x64 アセンブリーの概要 | iSUS
Node.js
x64 の 64 ビットモードのエンコーディング概略
x64 でのソフトウェア規約 | Microsoft Docs
x64 での呼び出し規則 | Microsoft Docs
x64 でのスタックの使用 | Microsoft Docs
x64 でのプロローグとエピローグ | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Saving Space When Saving Space - emsea
データ構造アライメント - Wikipedia
linux - How do I disassemble raw 16-bit x86 machine code? - Stack Overflow
Writing WebAssembly By Hand

2.9

引退するメインフレームプログラマたち - その対策は?

chapter-4

4.1.1・4.1.2

Windows7でもFastBootが効くってホント? - 週刊アスキー
Interface (インターフェース) 2011年 11月号 [雑誌] | |本 | 通販 | Amazon
Play with UEFI
UEFI時代のブートローダ
UEFI Spec 2_6.book

4.1.3

Windows 10で素早くUEFIの設定画面を起動する:Tech TIPS - @IT
GUIDとは何?Weblio辞書

4.1.4

FreeType使用記録

4.1.5

Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
SecureBootとLinux
mjg59 | Secure Boot bootloader for distributions available now
openSUSE:UEFI - openSUSE Wiki
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
ACPI BGRT - 借り初めのひみつきち
Advanced Configuration and Power Interface Specification
Windows bitmap - Wikipedia
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon

まえがき - x64 UEFI 対応 OS 自作入門 ~実機で動作する OS を作ってみよう~
Spaces - GitBook
tenpoku1000/tenpoku-book: 電子書籍: x64 UEFI 対応 OS 自作入門 https://www.gitbook.com/book/tenpoku1000/tenpoku-book/details
Zephyrがおもしろい~OSSのRTOS~ - Qiita
数式の再帰的下向き構文解析
FOLLOW()の計算を間違えにくくする工夫 – knsm.net
気まぐれな戯れ言の部屋 バックナンバー12
LL(1) Parser Generatorを作ろう(1) – 腐った牛乳
review-1.pdf

UEFI

tenpoku1000/UEFI_Start: DevicePath 文字列などの情報取得結果の表示・保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_SetupScreen: UEFI セットアップ画面への画面遷移を行う UEFI アプリケーションです。
tenpoku1000/UEFI_FreeType_MSVC: UEFI アプリケーションで、英日中韓台のアウトライン・フォント表示を行うサンプル・プログラムです。
tenpoku1000/UEFI_SecureBoot: UEFI セキュアブートのサンプル UEFI アプリケーションです。
tenpoku1000/UEFI_SecureBootMode: UEFI セキュアブートのモード表示を行う UEFI アプリケーションです。
tenpoku1000/UEFI_ACPI_Table_Disp: ACPI テーブルの取得結果の表示・ファイルへの保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_Ver_CPUID: UEFI version 等と CPUID 命令の取得結果の表示を行う UEFI アプリケーションです。
tenpoku1000/PE_COFF: 独自拡張 64ビット WebAssembly と、PE32+ DLL や UEFI アプリを出力する C コンパイラ試作版

外部プロジェクト

Unicode

Unicode License Agreement
Unicode Terms of Use
Unicode Character Database
UAX #44: Unicode Character Database
Unicode 12.1.0
Index of /Public/12.1.0

UEFI

TianoCore

UDK

UDK · tianocore/tianocore.github.io Wiki
UDK2014 · tianocore/tianocore.github.io Wiki
UDK2015 · tianocore/tianocore.github.io Wiki
UDK2017 · tianocore/tianocore.github.io Wiki
UDK2018 · tianocore/tianocore.github.io Wiki

What is TianoCore?
tianocore/edk2: EDK II
EDK II · tianocore/tianocore.github.io Wiki
BSD Plus Patent License · tianocore/tianocore.github.io Wiki
EDK II Specifications · tianocore/tianocore.github.io Wiki
Tasks · tianocore/tianocore.github.io Wiki
Windows systems · tianocore/tianocore.github.io Wiki
EDK II BaseTools User Guides · GitBook
Getting Started Writing Simple Application · tianocore/tianocore.github.io Wiki

OVMF_DEBUG

Hosts/Linux - QEMU
Re: [edk2] Filesystem issues since "OvmfPkg: enable SATA controller"
How to run OVMF · tianocore/tianocore.github.io Wiki
How to build OVMF · tianocore/tianocore.github.io Wiki
QEMU - ArchWiki
[edk2] source level debugging of OVMF with gdb
[edk2] using gdb on OVMF with symbols
SYS$OUTPUT: GDB scripting example: reloading symbols for UEFI target
SYS$OUTPUT: Using GDB to debug UEFI.
Windows を EFI ベースのコンピュータにインストールする

UEFI shim loader

mjg59 | Secure Boot bootloader for distributions available now
Index of /~mjg59/shim-signed
mjg59/shim: UEFI shim loader
rhboot/shim: UEFI shim loader

gnu-efi | SourceForge.net
Specifications and Tools | Unified Extensible Firmware Interface Forum

The FreeType Project
musl libc
adobe-fonts/source-han-sans
Doug Lea's Workstation
ReactOS Project
NASM
LibreSSL
MinGW - Minimalist GNU for Windows download | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net

参考資料

WinDbg

MSDN_Driver

テンプレートを使ったユニバーサル Windows ドライバー (KMDF) の作成 (Windows Drivers)
コンピューターの手動ドライバー展開の準備 (Windows Drivers)
Setting Up Kernel-Mode Debugging over a Serial Cable Manually - Windows 10 hardware dev
Kernel-Mode Debugging in Visual Studio - Windows 10 hardware dev
DevCon Install (Windows Drivers)
DevCon Remove (Windows Drivers)
アプリケーションからSCSIコマンドを発行する方法 - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF のディスパッチルーチンについて - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF Toaster で I/O Control を受け取る - Japan WDK Support Blog - Site Home - MSDN Blogs
フレームワークを使用したドライバーの開発 (Windows Driver Kit)
フレームワークベースのドライバーにおけるデバイスへのアクセスの制御 (Windows Driver Kit)
制御デバイス オブジェクトの使用 (Windows Driver Kit)
デバイス インターフェイスの使用 (Windows Driver Kit)
Defining I/O Control Codes (Windows Drivers)
SDDL for Device Objects (Windows Drivers)
デバイス オブジェクトのセキュリティ - Japan WDK Support Blog - Site Home - MSDN Blogs
デバイス オブジェクトのセキュリティ その2 - Japan WDK Support Blog - Site Home - MSDN Blogs
I/O コントロール発行に使うハンドルに必要なアクセス権限 - Japan WDK Support Blog - Site Home - MSDN Blogs
Device Object と Device Stack - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF デバイス ドライバーの更新 - Windows 10 hardware dev
KdPrint function - Windows 10 hardware dev

UserMode

Communications Resources (Windows)
Named Pipes (Windows)
ハンドラ関数
Amazon.co.jp: Windows95通信プログラミング (Microsoft programming series): Charles A.Mirho, Andre Terrisse, 梅原 系: 本

構造体

windbg で EPROCESS 構造体と遊ぶ:Book of Days
kernel-mode memusage - NyaRuRuが地球にいたころ
ダンプ解析 (Windows) - 08th SE's Wiki
WinDbg - マイクロソフト系技術情報 Wiki

Debugger Commands - Windows 10 hardware dev
Kernel and remote debuggers - tutorial - developer Fusion
KD Extension DLLs & KDCOM Protocol
j00ru//vx tech blog : Attacking the Host via Remote Kernel Debugger (Virtual Machines)
https://www.blackhat.com/presentations/bh-usa-07/Stewart/Presentation/bh-usa-07-stewart.pdf
ChangeLog-0.3.11 - ReactOS Wiki
アプリケーションからのデバイスドライバの呼び出し、制御方法について
管理者権限でしかアクセスできません | WDDDC
IoCreateDeviceSecure problem | Windows Vista Tips
0と1の欠片 : [Visual Studio]ドライバをビルドすると、"22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in \xxxx.inf."というエラーになる

TOML

toml/toml-v0.4.0.md at master · toml-lang/toml
TOML仕様和訳 - Qiita
TOMLは人に優しい設定ファイル言語 - Qiita
Cool Python Tips: TOMLを使ってみよう
TOMLの日時形式
Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
最強のC++実装TOMLパーサーが完成した - in neuro
toml11を60倍高速化した話 - in neuro
toml11をバージョンアップした - in neuro
toml11 v3ができてきた - in neuro
TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
toml11をマイナーアップデートした - in neuro
TOMLで型の異なる要素を持つ配列が許可された - in neuro

Twitter

酔漢 @🏍⛺📻さんはTwitterを使っています 「【緩募】中級向けベアメタル開発教科書はありませんか? - GCC / Clangとセクション - LDスクリプト -- 物理メモリ配置 -- 入力セクション -- 出力セクション -- VMA/LMA -- NOLOAD - ELFツール -- readelf/objcopy - 不要セクション -- function-sections, data-sections -- gc-sections -- keep()」 / Twitter
酔漢 @🏍⛺📻さんはTwitterを使っています 「- C/C++言語 -- 関数呼び出し規約 -- 名前マングリング -- extern "C" -- attribute -- volatile - 割り込み -- 割り込み禁止・許可 -- NMI - DMA -- DMAと割り込み - Cache -- Invalidate / Flush -- CacheとDMA」 / Twitter
酔漢 @🏍⛺📻さんはTwitterを使っています 「- CRT -- Data/BSS初期化」 / Twitter
oooooさんはTwitterを使っています 「@suikan_blackfin 教科書は他の人が挙げているのでそれ以外の情報を。ベアメタル開発ではリンカにlldを使うとハマります。リンカスクリプトの解釈がldとは微妙に違うし特にVMA/LMAの挙動がおかしいです。コンパイラはclangを使う場合でもリンカはldをおすすめします。」 / Twitter
実践的低レイヤプログラミング

Play with UEFI
技術者見習いの独り言: SecureBootとLinux
openSUSE:UEFI - openSUSE
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
UEFI - PhoenixWiki
www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf
ぽこつん研究所 » メモリ管理について考える#09 dlmallocの設定項目
FreeType使用記録
www.uefi.org/sites/default/files/resources/EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
https://firmware.intel.com/sites/default/files/UDK_Debugger_Tool_User_Manual_V1.11.pdf
www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf

ライセンス

その他

GPLやMITやCCなど主要ライセンスの内容と意味のまとめ | ITキヲスク
Google v. Oracle API著作権裁判
ライセンスについての紹介 | VINTAGE Blog
いまアメリカのソフトウェア特許に起きていること - what`s the 446?
【Cases & Trends】 アメリカ特許訴訟が急減 - ここにも見える最高裁Alice判決の影|知財情報|日本技術貿易株式会社
Coop Lights - About
fixedpoint.jp - なぜGCCのドキュメントはDebianでnon-freeなのか
あなたのコード、違法かも? エンジニアも知りたい、弁護士が教える著作権と開発契約の法知識 - エンジニアHub|若手Webエンジニアのキャリアを考える!
よく見かけるあの©表示って何の意味なのかな? 【よくわかる音楽著作権ビジネス】 - INTERNET Watch
GoogleやYahoo! JAPANでさえ間違ってる、Copyright(コピーライト) の正しい書き方 - 2016年版 | hajipion.com
OSSライセンスとは~著作権法を権原とした解釈
mjg59 | The Commons Clause doesn't help the commons
Microsoft、OINに参加し、6万件以上の特許をオープンソース化 「Linuxを保護する」 - ITmedia NEWS
MongoDBもクラウド事業者に対抗してライセンスを変更、AGPLから独自作成のSSPLへ | OSDN Magazine
他人の著作物を使用したアイコンの法的リスクについて(栗原潔) - 個人 - Yahoo!ニュース
上山浩 「OSSライセンス遵守のための基礎知識」 知財管理 Vol.68 No.5(NO.809)に掲載 | 日比谷パーク法律事務所
c484e7e1251d2ed577a08fc47179d1e4.pdf
GoogleとOracleが「APIの著作権」を巡って最高裁判所の口頭弁論で対決、Googleが不利との見方 - GIGAZINE
09 f9: A Legal Primer | Electronic Frontier Foundation

ライセンス

さまざまなライセンスとそれらについての解説 - GNUプロジェクト - フリーソフトウェアファウンデーション
Welcome to The Open Source Initiative | Open Source Initiative
オープンソースライセンスの比較 | YOSBITS
オープンフォントライセンス | YOSBITS
SIL Open Font License - Wikipedia
License Library
SPDX License List | Software Package Data Exchange (SPDX)
著作権の保有と譲渡

日本

ガイドライン事例

サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員本人にとっても有益であろう、というあたりかしら… "
Kazuho Okuさんのツイート: "あ、ちなみに株主です… "
Kazuho Okuさんのツイート: "ありがとうございます。労働にあたることを明示した上で社員に自由に休日労働する権利を認めるの、あまりにホワイト企業で素晴らしすぎる / “業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | …” https://t.co/Gk9woMzDrA"
業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ

授業目的公衆送信補償金にかかる著作権法の改正 | yasuokaの日記 | スラド
「TPP11関連法成立で、著作権の非親告罪化と保護期間延長が確定」「漫画家個人がCloudflareに漫画村運営者の情報開示請求提訴」など出版業界関連の気になるニュースまとめ(2018年6月25日~7月1日):見て歩く者 by 鷹野凌
著作権の保護と制限の規定がもうすぐ変わる ~ 保護期間延長、非親告罪化、柔軟な権利制限、教育の情報化対応など、まとめて解説 – HON.jp News Blog
Inada Naokiさんのツイート: "日本の著作権法にはフェアユース規定はないものの、基本的に親告罪だから、著作者の利益を損なわない、著作者が文句を言わない範囲での著作権違反の多くが明確な許諾なしに黙認されていて、それを前提に色んなことが成り立ってる。 その黙認されてるエリアに丸ごと網をかけちゃうような法律はNGと思う"
DL違法化「文化庁は与党に正確な情報を提供していない」知財法専門家が批判レポート - 弁護士ドットコム
「これでいいのか! 2018年著作権法改正」出版にあたり――日本版フェアユース再考のすすめ  - INTERNET Watch
マンガワンのチート事案についてまとめてみた - piyolog
「知人の弁理士に相談した」、Pythonを商標登録した企業が理由を説明 | 日経 xTECH(クロステック)
著作権法改正の概要と「写り込み」に係る権利制限規定の対象範囲の拡大 - BUSINESS LAWYERS
オープンソースのプロジェクトに商標登録の支援などを行い、不適切な利用から守る、「オープンソース商標イニシアチブ」が国内で発足 - Publickey
heatwave_p2pさんはTwitterを使っています 「今回の騒動の発端になった井上大臣の会見。政府がコスプレイヤーをクールジャパン大使に任命して、著作権の啓蒙までさせるものだから、コスプレの適法性に疑義があっては困る。そりゃ「法的な整理が必要」になるよね。全然クールじゃない。 https://t.co/wNzAkQlgAh」 / Twitter
井上内閣府特命担当大臣記者会見要旨 令和2年11月27日 - 内閣府
「Python」の登録商標、米Python Software Foundationが再出願。アーク社の登録商標に対しては不使用取消審判を請求 - Publickey
著作権Q&A | 社団法人 日本書籍出版協会
意外なモノの商標登録一覧202選 - 社会人の教科書

EU

GDPR

CCPA

2020年から施行される個人情報保護法「CCPA」はGDPRよりも企業に厳しい内容である - GIGAZINE

日本企業も大きな影響を受ける「GDPR」--まずは「対象か」の確認を - ZDNet Japan
GDPRの施行によりUnroll.meとPinterestのInstapaperはヨーロッパで利用不可に
Do Not Track and the GDPR | W3C Blog
GDPR:その目的と企業の責任 – カスペルスキー公式ブログ
GDPRとは – カスペルスキー公式ブログ
結局何をすべき?GDPR対応3つの優先事項と解消すべき6つの疑問
知らないとマズい - 最大約 26 億円の制裁金や個人情報利用停止措置を伴う「GDPR」施行まであと一週間 | トレンドマイクロ セキュリティブログ
GDPR 施行直後の対応に伴うリスクや、便乗したサイバー犯罪の可能性とは? | トレンドマイクロ セキュリティブログ
一般データ保護規則(GDPR:General Data Protection Regulation) - フォーティネット
GDPR対策関連ホワイトペーパー集 | 日本オラクル | Oracle JP
Rockridgeさんのツイート: "EUのGDPRやePrivacy Regulationに合わせて、Do Not Track(DNT)の仕様や実装もアップデートされていくようだ。 / “Do Not Track and the GDPR | W3C Blog” https://t.co/ajgFvTzRvF"
GDPR変更でユーザトラッキングへの影響が際立つ
SaaSがGDPRに準拠するには、オンプレミスが望ましいのか?
ブラウザ新興企業Brave、グーグルなどによるGDPR違反を申し立て - CNET Japan
Kazuya Gokitaさんのツイート: "GDPR、いろんなサイトで「当サイトでは利便性向上のためにcookieを…」みたいなダイアログが開いて、こんなの事実上同意せざるを得ないので、ただただインターネットが不便になっただけだな"
Nerry さんのツイート: "なんちゃらなんちゃら法のせいで最近やたらとクッキーを受け入れますかって画面に表示されるサイト増えたけど、これって拒否選んでも選んだことがクッキーに保存されないから永遠に聞いてくるってこと?"
mizchiさんはTwitterを使っています 「GDPR はEUアクセスブロックするだけじゃ足りなくてEUに所属してる国から日本に来てる人のアクセスも遮断しないといけなくて現実的に無理…」 / Twitter
Ichiro OtaさんはTwitterを使っています 「GDPR の対応でひとつ面倒なのはリクエストがあったら「収集済み」のユーザデータを削除しないといけない点。さらに収集したデータがリークしたときの体制・対応なども確立しておく必要があります。体力がないと対応できない、と言われているのには理由があります。」 / Twitter

ハイパーリンクを貼るだけで著作権料がかかる通称「リンク税」がEUで導入されようとしている - GIGAZINE
EUがインターネットをめちゃめちゃにする | ギズモード・ジャパン
「オープンソース開発に重大危機」--GitHubがEUの著作権法改正に反対する理由 - ZDNet Japan
欧州議会、著作権関連規則の改正案を否決 | スラド YRO
Rockridgeさんのツイート: "MozillaはEUの著作権指令の改正に反対の立場。包括的なアップロードフィルターの導入はインターネットの文化を貧しいものにしてしまうし、リンク税の導入は知識へのアクセスと共有を困難にするからだという。 / “Mozilla r…” https://t.co/8qOcIgeUze"
出た、Google最終兵器。EU著作権法改正後の白抜き画面がリーク | ギズモード・ジャパン
「リンク税」などを含むEUの改正著作権指令案への大規模な反対運動が勃発 - GIGAZINE
Tomoko Uchidaさんのツイート: "これ通っちゃったんか。。。meme と GIF は除外とされたらしい / EU passes divisive Article 13 copyright law https://t.co/mtlfHGMAKl"
EU passes divisive Article 13 copyright law

BSDL

@kazuho

Kazuho OkuさんはTwitterを使っています: "BSDL、昔は特許の使用権も付随してるに決まってるだろJKと思ってたけど、IIRC最近VP8とかFacebookとかBSDL+特許ライセンスの構成をとるものが増えてきてるので、そういう前提がいつか通用しなくなる可能性が出てきてるんじゃないかなと嫌な気分になってる"
Kazuho OkuさんはTwitterを使っています: "BSDL は特許ライセンスが付属するか怪しい、MITL は暗黙に付随していると考えられる、Apache License は明確に付随する、の差"
Kazuho Okuさんのツイート: "特許の使用許諾を別につけることが一番妥当なOSSライセンスがBSDLだし(文言内でライセンサーを意味する単語が「copyright holders」なため)、利用者としてもライセンサーとしてもBSDLは紛らわしいので避けるべき"
Kazuho Okuさんのツイート: "BSDLなソフト見つけたらまず特許条項の存在を疑う。2010年代の常識です"
Kazuho Okuさんのツイート: "AndroidにバンドルされてるOSSであるVP8がBSDL+特許ライセンスで、(電気機器メーカーが多い)MPEG4陣営がG社を特許侵害で訴えらづらくする毒饅頭として機能している話とか"
Kazuho Okuさんのツイート: "以前にも炎上して改訂されてたんだけど、今回は改訂されず https://t.co/GkOqd1NRXb / “Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note” https://t.co/3xK1JwnNuA"
Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note
Kazuho Okuさんのツイート: "BSD+特許ライセンス問題にASFが介入いしてくるの、なるほどその手があったのかって感じ"
https://www.apache.org/legal/resolved.html#category-x
Kazuho Okuさんのツイート: "fbの特許ライセンス問題に耳目が集まっているうちに言っておくと、BSDLは主要OSSライセンスのうちで唯一、ライセンス提供者が「作者」でなく「著作権所有者」になっているがゆえに、特許ライセンスを別途指定しやすいという問題があり、それがゆえにBSDLを使うのは避けるべき"
Kazuho Okuさんのツイート: "あと、パテントトロールに対してはOSSの特許条項は役に立たない(トロールは自社でOSSを使った業務をやらないので、OSSの使用権を失っても困らない)から、パテントトロール対策だって言い訳は説得力ない"
Kazuho Okuさんのツイート: "つまりOSSの特許条項は、競合他社との競争において意味をもつものです"
Kazuho Okuさんのツイート: "件の特許ライセンスについては、ああいうライセンスをBSDLにつけること自体は各個の自由だし、OSS配布は社会貢献活動ではないという立場からもアリだと思う。一方で、ああいうライセンスのソフトを使いたくないケースもあるから、もっとゆるい条項になるといいなとfbの中の人たちのために思う"
Kazuho Okuさんのツイート: "Fbに限らずGoogleのvp8やwebmもそうだし、BSDLみたらpatent grantを疑えって話ですよ。その認識が広まるなら今回の騒ぎはいいことだと思う #毎回言ってる"
ASFがReact.jsなどが使うFacebookのオープンソースライセンスを禁止、Facebookは「変更しない」と発表 | OSDN Magazine

@mhiramat

まさみさんは語りたいさんのツイート: "OSSライセンスのMITライセンスやBSDライセンスについて、著作者の表示をすれば自由に使えるのだけど、これ多人数で開発するプログラムに適用した場合、全ての人のCopyright表記をするのか、ライセンスファイルにあるものだけでいいのかでもめそう。"
KaiGai Koheiさんのツイート: "BSDライセンスのPostgreSQLの場合、Copyright表記は全て「PostgreSQL Global Development Group」になってるんだけど、『PGDGとはPostgreSQLの開発に貢献した全ての人です』という定義になってる。… "
まさみさんは語りたいさんのツイート: "なるほど、comittersとかdevelopersとか、個人を特定しない方法がありますね。その辺り、個人の表記をどうしたいのかは本当ははっきりさせたほうが良い・・・。… "
まさみさんは語りたいさんのツイート: "コントリビューターの一人が著作者名をどうしても表記して欲しいって言った場合は問題が起きちゃうんですよね。だから厳密には事前に方式を決め、コミット前に同意を取ったことを確認する手段(signed-offとか)も用意する必要があるんだけど、全部のOSSでやるのは難しいよなあと。… https://t.co/9KtW4HsTl6"
KaiGai Koheiさんのツイート: "なので、"How to contribute"でも良いので事前にルール化・文書化しておく必要はありますね。アップストリームに入れたいのであれば、その流儀に従ってくださいと。… "
まさみさんは語りたいさんのツイート: "この辺りのノウハウ、大手のOSSプロジェクトはみんな持ってると思うんで、そこからテンプレを起こして広めるのと、揉めた時の相談先としてLFなりが第三者機関として動けるようになると凄くありがたいですね。 Githubはライセンスファイルのテンプレしか用意しないし。… "
Satoru Uedaさんのツイート: "このスレッド、大切な問題提起を含んでいると感じます。著作権表記をどうするかもOSSの配布をするシーンで悩みとして浮かび上がる。配布のシーンに直面する事が圧倒的に多い組み込み系は特に気をつかいたいところ。… "
Satoru Uedaさんのツイート: "GPLだと、著作権表記もライセンス表記もソースコードと一緒に全部開示することになる。この点からも、Linuxのような大規模OSSに向いていると言えるのかも知れませんね。… "
まさみさんは語りたいさんのツイート: "はい。しかし一般に寛容型と言われているライセンスはこの辺りがあやふやなので、大規模になった時に、「ライセンスの外側」で貢献同意の裏付けを取るプロセスとしてOpenStackとかでContributor License Agreement を交わすという方法がありますね。 https://t.co/ax5gG9REfC… https://t.co/lAKOcwx7Xh"
まさみさんは語りたいさんのツイート: "このあたりは、OSSプロジェクトを進める上でのライセンス外だけどライセンスに絡む重要なノウハウなので、他の寛容型ライセンスを使う際の注意点と回避策として標準化していかないといけないんじゃなかろうかと思います。… "
Satoru Uedaさんのツイート: "そのとおりだと思います。短いメッセージでは書ききれないことがたくさん思い当たります。BoFネタですね。… "
まさみさんは語りたいさんのツイート: "昨日知ったというか理解したのは、寛容型ライセンスは法務的には全く寛容型とは言い切れない面倒くさいライセンスであるということだった。特に著作人格権が存在する日本では・・・。"
nishio hirokazuさんのツイート: "著作者人格権はベルヌ条約を批准している地球上ほとんどの国に存在しているわけだが、一体どこの国の話をしているのか…… "
henrichさんのツイート: "これはdebian/copyrightファイルでも悩む所であり、どうすればいいのかはまだベストプラクティスがない…。… "
まさみさんは語りたいさんのツイート: "これはいいまとめ。やはりプロジェクト毎にライセンスがどう扱われるかをきちんと決めておけという話になるのかな? (CLAで。)… "
Igaguriさんのツイート: "(まちがい) 日本には著作者人格権があるからめんどくさい (ただしい) なぜか米国は条約で保証しなければならない著作者人格権の制度がなく、米国法しか考えずに作られたOSSライセンスが多い… "
まさみさんは語りたいさんのツイート: "なるほど米国だけ例外的で、例外的な条件に基づいてライセンスを作ってしまったから、本来保護されるはずの著作人格権の行使のあたりの取り決めが別途必要なのか。"
nishio hirokazuさんのツイート: "僕の理解をまとめました https://t.co/KvOucRXa5p… "
すぎむら45さんのツイート: "> ライセンスも「著作者が、他の人に、どういう条件で利用を許諾するか」を書いたものに過ぎないので、著作者が誰であるかを定めるための手続きではない。 この観点はとても重要だと思いました。 使用許諾の話と、著作者人格権の行使の話は混じっているのはよくないですよね。… https://t.co/3JGcfxruVs"
多人数で開発するOSSの著作者表記 - 西尾泰和のScrapbox
mongrelP@もんぐれさんのツイート: "わかりやすいところだと旧GPLとかが該当するみたいね(記事による。今のGPL3とかはどうなってるかはわからぬ) https://t.co/X7HcTVFF8X… "
GPLは契約として成り立つか---日本法との整合性を検証する - CNET Japan
MAEKAWA Masahideさんのツイート: "著作「者」人格権ですね。… "
姉崎 章博さんのツイート: "あまり意識されていないが「多人数で開発する」は「全員、共同著作権者とは限らない」し「(元著作者以外が)二次的著作権者とは限らない」。 Contributer=(二次的)著作権者と思い込んでいる人が多い? 「二次的著作物として何を創作した」に答えられるプログラム記述が残っていれば権利者と言えるかな… https://t.co/th1z91D2vg"
姉崎 章博さんのツイート: "もちろん、プロジェクトリーダをやっている元著作者は、そんな厳しいことを言わずに、Contributeしてくれた人をリスペクトして、Copyrightを追加してくれている人が多いけど。 記述が類似性をもって取り込まれたわけでもないとか、著作物と言える規模でもないのに、著作権を主張するのはどうなんだろう… https://t.co/W2dxp1gV5y"
姉崎 章博さんのツイート: "「第三者から見て決める基準」が無いから、親告罪になっていると思っています。 釈迦に説法になりそうですが、 どのくらい他人のウチに踏み入れたら住居侵入罪になるか、何センチって決まっていないのと同じではないでしょうか。 どちらにしろ所有者(権利者)しだいかと。… "
ぉゅぅさんのツイート: "姉崎さんに教示いただいたと思いますが、LGPLの3項に参考になりそうなサイズはありますね。10行以下のインライン関数やマクロ程度ならLGPLとしてのライセンスを要求していません。 とはいえ、それをもって著作権有無を判断できないでしょうけれど(各国の判例があれば もっと参考になるのかな)。… https://t.co/xDMyYhIJW9"
ぉゅぅさんのツイート: "https://t.co/7BcoewUTMP 3. Object Code Incorporating Material from Library Header Files. >small macros, inline functions and templates (ten or fewer lines in length) このあたりがそういってるのかな、と。… https://t.co/Dt9PxcUpQj"
姉崎 章博さんのツイート: "親告罪になっている理由にももう一つあって、著作者本人が許している(お目こぼししている)のに、第三者の検察が問題視するものではないかららしい。 そういう意味でも、著作者次第。 著作者を無視したルール(基準)があるわけではない。… "

vyv03354さんのツイート: "歴史的にはむしろBSDLはGPLがパクれない条文だった(宣伝条項付きだった)ところを、FSFからの働きかけに応じてわざわざパクれるように修正した(宣伝条項を外した)という経緯があるわけだが、哲学とか本来の意図とか一体何の話をしているのだろう。 #エアリプ"

Artistic License

Artistic License - Wikipedia
Artistic License - Wikipedia

MPL

Mozilla Public License - Wikipedia
Mozilla Public License - Wikipedia
Mozilla Public License, version 2.0
MPL 2.0 FAQ — Mozilla
MPLの概要 | easy labo
MPL2.0ライセンスのライブラリを使った開発 -MPL2.0ライセンスをうたっ- オープンソース | 教えて!goo
Mozilla Public License(MPL)2.0が公開 | オープンソース・ライセンスの談話室
Mozilla、Mozilla Public License(MPL)を10年ぶりにアップデート | OSDN Magazine
MPL 2.0, copyleft, and license compatibility | Opensource.com
Kazuho Okuさんのツイート: "MPL 1.1にあった、著作者に対し(その著作物に無関係でも)特許侵害訴訟を起こしたら、その著作物に含まれる著作者所有特許のライセンスがrevokeされるってのは割と好きなんだけど、なんで2.0で廃止されたのかしら"

GPL

Linux

まさみさんは語りたいさんのツイート: "StackOverflowにGPLとカーネルモジュールについての詳細な引用回答を見つけた。結構具体的にソースを示して見解を示しているのが良い。しかも技術的な話だから、これは多分法務の人だけでは理解できない。 https://t.co/XPsEGkhyIm"
how to make my own linux kernel driver closed(not open source)? - Stack Overflow
まさみさんは語りたいさんのツイート: "GPLとしての要件は派生物であるかどうか。Linusの意見も派生物としてのカーネルモジュールはGPLにすべきであるという意見。ただし、他のOS向けに書かれたドライバを、単純に移植しただけである場合についてのみ、Linusの見解としては派生物でないからGPL出ないドライバも受け入れられると言う。"
まさみさんは語りたいさんのツイート: "おそらく厳密に言えば、そのハードウェアが他のGPLでないOSで動くことが証明されていて、そのOS向けに書かれたドライバであるということが証明できるのであれば、GPLを適用しなくてもLinuxカーネルについてだけ言えば受け入れても良い。ただし他のGPLソフトウェアはそれぞれの事情で判断すべき。"
まさみさんは語りたいさんのツイート: "ライセンスは書面の字面だけでは解釈が別れるものがあって、それをきちんと解釈しようとすれば、ライセンサに確認するしかないが、ここではライセンサ(Linus)の意志が明確に表現された発言がリンクされているのがポイント。"
まさみさんは語りたいさんのツイート: "ちょっとややこしいのは、元々以前の世代のハードウェアはLinux以外のOSを動かしていて、Linuxもサポートするために移植したが、今世代のハードウェアではLinuxしか動かしておらず、しかも新世代のために修正を加えている場合はどうなるのかということ。"
まさみさんは語りたいさんのツイート: "今ならいくらでもユーザ空間にドライバの機能を追い出す手段があるので、わざわざカーネルドライバにプロプラコードを突っ込むのは相当のマゾかN○IDIAだと思ってる。"
まさみさんは語りたいさんのツイート: "armのmaliドライバはカーネル部分はGPLだし、まあ妥当でしょうこれ。"
まさみさんは語りたいさんのツイート: "OSSライセンスに関わる話って見方が何種類かあって、Linuxのモジュールに関わるものはもう少し細かくて、あまり外野から口を挟むべきではないよなと思ったり。(なんでLGPLではなくてGPLv2だけどEXPORT_SYMBOL_GPLなど入れることになったのか、等の苦しさを汲み取れなければ止めたほうがいい)"
まさみさんは語りたいさんのツイート: "このあたりの苦しさが伝わってくるから、いろいろ言われても「OSSライセンスの教科書」は好き。"
Naoya HoriguchiさんはTwitterを使っています 「GPL が感染するというような表現する人がいるけど、Linux カーネル内ではプロプラのモジュールに対して tainted (汚染) フラグを立ててえんがちょしているので、実はどっこいどっこいなのではないか。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「プロプラのモジュールがあったら、ライセンス上解析できない(RE禁止)かもしれへんやん?そういうのをLKMLに送ってくんなよ、送っても無視する(か、最低優先度にする)ぞ、という意味のtaintedです。ライセンス違反で汚染されてるとかそういう話ではないです。」 / Twitter

licenses/GNU_General_Public_License_version_3.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
GNU General Public License - Wikipedia
姉崎 章博さんのツイート: "#osc18tk 世界中の弁護士が「GPLは契約」と言う愚かな理由 https://t.co/nGALPIVDHJ 一時限目より、ちょっと、ディープな話ですが、聞いていただけると幸いです。 言葉だけを鵜呑みにせずに、人がどういう認識で何のためにそういう話をしているのか調べると、結構あまり考えていないことがわかる:-(… https://t.co/BrJ52LdBvf"
オープンソースカンファレンス2018 Tokyo/Fall - イベント案内 | 2018-10-27 (土): 世界中の弁護士が「GPLは契約」と言う愚かな理由
GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
Kazuho Okuさんのツイート: "@yukihiro_matz FSFは商用ソフトを「マルウェア」「ユーザを虐待するように設計された機能を有している」と非難している(https://t.co/0krqdpAztY)わけですし、松本さんの感情は別としてウイルスと呼ばれるくらいのことを問題視してもしょうがないかと"
トーバルズ氏がLinuxとGPLについて真に思うこと - ZDNet Japan
「GPLv3」公開から10周年 | OSDN Magazine
米Red HatやGoogleなど、GPLv2やLGPL違反時の「治癒期間」の権利を約束へ | OSDN Magazine
本の虫: 自由ソフトウェア財団が技術的な指導力を失いつつある
米Red Hat、GPLv2やLGPLv2.1を利用するソフトウェアに対してもライセンス違反時の「猶予期間」を提供へ | OSDN Magazine
「Qt 5.7」リリース、本リリースよりLGPLv3およびGPLv3での提供へ | OSDN Magazine
まさみさんは語りたいさんのツイート: "B2BのビジネスでGPLのソフトウェアを使った場合、ソースコードの提供義務はそのソフトウェアの頒布先になるんだけど、戦車とかにLinux使ったら自衛隊にだけに公開すればいいという話で、そこから先は組織の機密保持のため公開されることはない、という話になるな。"
まさみさんは語りたいさんのツイート: "GPLは頒布に際してソースコードの公開を要請するけど、更に踏み込んで、レポジトリの公開を要請するライセンスって言うのはどうだろうか。"
fjのYog教祖様さんのツイート: "GPLv4 としてRMSに提案する ( w )/… "
まさみさんは語りたいさんのツイート: "WindowsやRTOSドライバとコア部分を共有したい場合はBSDとかMITにするのが良いと思いますね。GPL互換だし問題がない。… "
だよもんフレンズは転職したいさんのツイート: "だからBSD(とMIT)ライセンスが無難。GPLは極端過ぎる。… "
まさみさんは語りたいさんのツイート: "だけどBSDだと「このドライバはBSDだからソースコードは配布しないで下さい」とかいうB2B契約をしようとする輩が出てきてやっぱり炎上するかもなので、よっぽど隠したい理由がない限りGPLにしておくのが良いと思うよ。要するに、Linuxを育てた人たちの成果にフリーライドして平気かどうかという話。"
まさみさんは語りたいさんのツイート: "過激と言われるかもだけどさ、そこの筋を通せるかどうかって、その会社が単なる寄生虫として生きるのか、社会のリーダー格として生きるのかの分岐点だと思うんだよね。 寄生虫は大きくなれないし日陰に生きるしかない、それで良いの?"
まさみさんは語りたいさんのツイート: "https://t.co/tCtMZVhFk8 ごめん、Linusもアカンって言ってる。"
Linusのカーネルモジュールのライセンスへのスタンス | スラド
GNU GPL登場前夜 | OSDN Magazine
2019年9月27日 リチャード・ストールマン「FSFは辞めてもGNUは辞めない」:Linux Daily Topics|gihyo.jp … 技術評論社
著名なフリーソフト活動家が一通のメールで役職辞任に追い込まれたことに「危険な動きだ」と批判が寄せられる - GIGAZINE
FadisさんはTwitterを使っています: 「FSFとGNUは今までRichard M. Stallman氏が双方のトップを兼任していた為その連携は必然だった。が、先の騒動でFSFを追い出された氏が依然としてGNUのトップを続けている状況で、今後FSFがGNUとどう付き合うべきかが悩ましい問題になっているらしい https://t.co/rgKBMGwEzg」 / Twitter
The FSF Is Re-Evaluating Its Relationship With The GNU - Phoronix
Stallman氏、GNU Projectトップを引き続き務めることを表明。プロジェクト内からは反発の声も | OSDN Magazine
SNKのあまりにもデタラメな対応のせいで GPL違反状態になっているNEOGEO Arcade Stick Proの解析情報 - honeylab's blog
SNKによるNEOGEO Arcade Stick ProのGPL逃れの手口と彼らのミス - honeylab's blog
FadisさんはTwitterを使っています: 「GNUの主要なプロジェクトのメンテナが名を連ねてRichard Stallman氏をGNUのトップから降ろすように求めている声明文。なんというか、GNUの方も時間の問題って感じだ https://t.co/Xk8QSmFHbq」 / Twitter
Joint statement on the GNU Project — 2019 — Blog — GNU Guix
KOSAKI MotohiroさんはTwitterを使っています 「GPLはバイナリを使える正当所有者はソースコードも入手可能でなければならないというライセンスですが、そのソースコードを自分でコンパイルしたものを利用可能かどうかはその国の法律によります。ほとんどの先進国では Red Hatみたいな他者の商標は勝手には使えません。CentOSみたいな商標削除作業要」 / Twitter
電子計算機の沼さんはTwitterを使っています 「Xを静的にリンクしたバイナリYを配布したら私がXのバイナリを再配布した扱い?(ライセンス苦手おじさん)」 / Twitter
てらモス♋️さんはTwitterを使っています 「現代のストレージ事情において、共有ライブラリを使う必要性はほぼ無く、あげるとすれば暗号系のライブラリの更新だけど、これは本来OS側で面倒を見るべき事で、実際RHEL などは suite として提供している」 / Twitter
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t それは再配布した扱い(もちろん共有ライブラリを同梱しても再配布扱い)。ただし誤解が多いけど、GPL のバイナリと MIT なバイナリを同梱したら全部 GPL にしないといけないわけじゃないからな」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@termoshtt そこが難しい、、、 再配布するときは元の…みたいなやつに頭を悩ます」 / Twitter
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAが結構ややこしくて、リンクしたやつを再配布する場合はCUDAのライブラリはその本体を動かすためになら使って良いという条項がある」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@termoshtt なるほど、、、、、」 / Twitter
2021年6月2日 もうFSFにとらわれない ―GCC運営,FSFへの著作権移譲を開発者に求めないポリシーに:Linux Daily Topics|gihyo.jp … 技術評論社
Grafana LabsがGrafana、Loki、TempoのライセンスをAGPLv3に変更
FadisさんはTwitterを使っています 「GNU C Library(glibc)がコントリビュート時に著作権をFSFに譲渡する事を求めなくなったらしい。FSF発のプロジェクトの多くはコントリビュート時にFSFへの著作権の譲渡を求めていたが、少し前にGCCがこの条件を撤廃しており、glibcもこれと同じ方式に移行する形になる https://t.co/VbIX7X4TrK」 / Twitter
GNU C Library Looking To Drop FSF Copyright Assignment Policy - Phoronix
nishio hirokazuさんはTwitterを使っています 「CopilotとGPLの話、少なくとも日本の著作権法においては30条の4の「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合」について著作権が制限され自由に使える件を踏まえてない発言はミュートしたい https://t.co/AL7rRWALgn」 / Twitter
著作物に表現された思想又は感情の享受を目的としない利用 - 西尾泰和のScrapbox
7594591200220899443さんはTwitterを使っています 「github copilot はgplのコードを学習してんならgithub copilotが生成するコードはgplなコードのderivative worksでしかあり得ねえだろうが、という指摘がされており一考の価値がある」 / Twitter
eeveeさんはTwitterを使っています 「github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying https://t.co/IzqtK2kGGo」 / Twitter
7594591200220899443さんはTwitterを使っています 「元来GPLとはソフトウエアを自由化する運動だってわけだが。謎のAIとやらをかますだけでGPLの自由が毀損されて不自由なコードに化けてしまって良いのか。」 / Twitter

CDLA

Linux Foundation、機械学習やAI時代をにらみデータのための新ライセンスを発表 | OSDN Magazine
Home - CDLA

Bluetooth

Bluetooth ブランドを使用する - 登録
Bluetoothロゴを使用するためには?〜①Bluetooth SIGメンバー登録編〜 | 無線化.com
Bluetooth認証 | BLEDocs
a10.pdf

Creative Commons

クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
Creative Commons — CC0 1.0 全世界
クリエイティブ・コモンズ・リーガル・コード
Creative Commons — CC0 1.0 Universal
Creative Commons Legal Code
Creative Commons — 表示 4.0 国際 — CC BY 4.0
クリエイティブ・コモンズ (Creative Commons) — 表示 4.0 国際 — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
本の虫: このブログのライセンスをCreative CommonsからGFDLに変更
本の虫: 邪悪なクリエイティブ・コモンズで起こるべくしておきた事件
本の虫: ますますクリエイティブコモンズが変な方向へ
Choose a License
Creative Commonsライセンスの作品は無条件で使って良いわけではない - yanok.net
データ・資料 | クリエイティブ・コモンズ・ジャパン

DMCA

漫画村が使っているCloudflareというCDNが著作権侵害ほう助で苦境に陥っている件 - orangeitems’s diary
楠 正憲さんのツイート: "CloudflareがDMCAで海賊版サイトをテイクダウンしないのは札付きだったのか / “Cloudflare: We Can't Shut Down Pirate Sites - Slashdot” https://t.co/w0PVacszQh"
Cloudflare: We Can't Shut Down Pirate Sites - Slashdot
フェアユースに対する不当なDMCA削除要請をめぐる「Dancing Baby」裁判、和解に達する | スラド IT
まさみさんは語りたいさんのツイート: "DMCA申請する際に、予め誤った申請だった場合の保証金を積み立てる仕組みと、申請自身が正当な申請者により行われたことを保証する仕組みが必要なのでは。虚偽住所や詐称申請はできない仕組みを作ったら儲かる気がする。"
辻正浩 | Masahiro Tsujiさんのツイート: "私の投稿を検索結果から消そうと先月から色々やっている方へ。 私のブログを装った盗用ブログを作ってそれを元に私の投稿にDMCA申請するのは全部Googleに拒否されてるにしてもやりすぎですよ?全部気づいてますよ?既に警察からも指導されていますよね?まだ続けるならそろそろ動きますよ?"
光のインターネットの闇さんのツイート: "侍エンジニア塾、批判していたサイトをDMCAクレーム申請してGoogle検索に出さなくしている。。。 https://t.co/gn0UJ341JK"
DMCA (Copyright) Complaint to Google :: Notices :: Lumen
高梨陣平さんのツイート: "インターネットアーカイブ、Waback MachineがDMCA対応で削除を開始。 とうとう個々人での保存が重要になりつつある。腐ったDMCA申告に対抗するのはコストが高過ぎる。… "
「最後の砦」崩れる? Internet ArchiveでDMCAによる削除要請に対応した痕跡見つかる【やじうまWatch】 - INTERNET Watch
「著作権者のクレジットを表記して」というDMCA通知に従ったら不正行為に加担しかねないという報告 - GIGAZINE

MS

Microsoft Public License (MS-PL) | Open Source Initiative
使用条件
Microsoft 開発者サービス契約
マイクロソフトの主要なシェアードソースライセンスに関して « 来栖川電算
米Microsoft、オープンソースライセンス準拠の管理のためのOpenChain Projectに参加 | OSDN Magazine
2019年12月19日 欧CERNが進める脱Microsoftプロジェクト「MALT」,代替ソリューションが一部公開:Linux Daily Topics|gihyo.jp … 技術評論社

本の虫

本の虫: 高度に発展した特許業界はヤクザと見分けがつかない
本の虫: Javaの権利にまつわるまとめがすごい
本の虫: fair use権利を侵害するYouTubeのContent IDと戦うために著作権侵害するゲーム批評家の話

GIGAZINE

Googleが「コードが著作権の対象になる」という裁判所判断はソフトウェア開発の未来を左右するとして対Oracle訴訟について嘆願書を提出 - GIGAZINE
GoogleとOracleが繰り広げる訴訟で「APIは著作権保護対象か否か」について最高裁判所が審理に乗り出すことに - GIGAZINE
Googleを著作権侵害で訴えているOracleもAmazonのコードをパクっているという指摘 - GIGAZINE
約1兆円の賠償金を巡るGoogleとOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? - GIGAZINE
オープンソースソフトウェアの利用条項は法的に強制力があると裁判所で判決が下る - GIGAZINE

技術評論社

2018年10月11日 Linuxとオープンソースを守るために ― Microsoft,「Open Invention Network」に参加:Linux Daily Topics|gihyo.jp … 技術評論社
監訳者解説 山形浩生:ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険|技術評論社
2019年1月17日 SSPLはオープンソースライセンスにあらず!? Fedora,リポジトリからSSPLソフトを削除へ:Linux Daily Topics|gihyo.jp … 技術評論社

TechCrunch Japan

MongoDBがそのコードのオープンソースライセンスを改定、オープンソースの“食い逃げ”に むかつく | TechCrunch Japan
世界を手中に収めたオープンソースソフトウェア | TechCrunch Japan

Publickey

Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey
クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス「SSPL」を理由にDebian、Fedora、RHELがMongoDBのバンドル取りやめを表明 - Publickey
[速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲 - Publickey

スラド

OpenSSL、ライセンス変更に向けて貢献者の合意を求める | スラド オープンソース
OSSを利用する多くのソフトウェアで脆弱性対応の不備やライセンス問題が存在する | スラド セキュリティ
著作権法における「引用」と「技術の開発又は実用化のための試験の用に供するための利用」と「情報解析のための複製等」 | yasuokaの日記 | スラド
なかのん&マジックさんのツイート: "これはGoogleを支持するわ。APIの模倣がダメなら、プラットフォーム間等の移植の際に、元のAPI叩いてたところに抽象化したレイヤーをはさむこと自体が違法ってことになるよな。 / Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める https://t.co/UIoIwVmEZ0"
Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める | スラド IT
なかのん&マジックさんのツイート: "API呼び出し部分を同じ形のメソッドなりでラップして、自動テストでプラットフォームの色んな動作をエミュレートしてもやっぱり違法になるのかな?"

infoQ

OSSライセンスの遵守を簡単にするGitHub Licensed
グーグル、オラクルへの支払いは数十億の可能性も
Bank of Ameriaのブロックチェーンデータストレージ特許が公開
最高裁判所は、GoogleによるJava APIの使用は公正利用であると判決

OSDN

licenses/MIT_license - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
オープンソースライセンス管理団体OSI、ライセンス情報を提供するAPI「Open Source License API」を公開 | OSDN Magazine
スタッフ解雇を理由にFSFと対立していた「Libreboot」、GNU Projectから正式に離脱 | OSDN Magazine
Black Duckが企業アプリで使われるOSSに関する調査結果を公表、6割以上で脆弱性が放置されているという結果に | OSDN Magazine
米Facebook、批判を受けて「React」のライセンスから特許条項を削除へ | OSDN Magazine
米GitHub、依存性ライセンス情報のキャッシュと確認を行う「Licensed」を公開 | OSDN Magazine
オープンソース商標についての解説と不使用取消審判への対応のお願い | OSDN Magazine
Redisがモジュールのライセンスを変更、商用利用に制限 | OSDN Magazine
Kazuho Okuさんのツイート: "周辺モジュールをAGPLよりもリベラルなApache Licenseにしつつ、それ自体を商品として提供するのは禁止する、と。これは果たしてOSSなんだろうか... / “Redis’ License is BSD and wil…” https://t.co/K4IcvZRQrQ"
Kazuho Okuさんのツイート: "変更前のライセンスがAGPLなので、クラウド事業者も開発に協力していたわけだし、今後も協力すると期待されるからこそApache License+αに変更したんじゃないのかしら… "
Kazuho Okuさんのツイート: "AGPL+著作権譲渡でやりつつ、「別ライセンスは有償提供ね♡」といういつものモデルで始めてればよかったんじゃないの感は感じる"
米Redis LabsがRedisモジュールのライセンスを再変更、独自のRedis Source Available License(RSAL)へ | OSDN Magazine
分散SQLデータベース「CockroachDB」、「as a Service」としての提供を制限するライセンスに変更 | OSDN Magazine

POSTD

MITライセンスを1行1行読んでいく | POSTD

Qiita

公開ライセンスの話 - Qiita
そのライブラリは、本当にその著作権表記だけで良いのか? - Qiita
githubでライセンスを設定する - Qiita
ライセンスの選択を恐れる必要はありません - Qiita
ちょっとユニークなライセンスたち・まとめ - Qiita
Facebookと係争中の他社はReact.jsが使えない - Qiita
プレゼン資料やアイコンやLGTMに、漫画・アニメを無許可で使うと日本では著作権侵害です - Qiita
ライセンスをつけないとどうなるの? - Qiita

Twitter

特許

Shirouzu Hiroaki(白水啓章)さんのツイート: "2000年以降の出願で、特許として認められないもの。 「特許出願前に(略)外国において(略)電気通信回線を通じて公衆に利用可能となった発明」 https://t.co/YKhdZvBu4Y 例えばRFC等で既知の場合は、特許として認められない、となるはず。 (なのに特許成立している例が…無効審判にできそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "1999年以前の出願については、「外国において頒布された刊行物に記載された発明」が認めない条件となっていて、出版されているものに限っていた様子。"
Kazuho Okuさんのツイート: "自己防衛とかナイーブすぎる。基盤技術をばらまいて他社に依存させて、それら他社の特許を自由に踏めるようにするための戦略でしょ。Androidを販売したければVP8のサポートが必須だから動画関係の特許侵害でGoogleを訴えることができなくなる、的な… https://t.co/QT8nIgkS7j"
mattnさんのツイート: "PATENTS は特許侵害に対する自己防衛だと思います。Google は OPN にサインしています。 https://t.co/fBee4IHiw3 https://t.co/LyrpQBWQx0"
Kazuho Okuさんのツイート: "まあGolangの特許条項はApache Licenseと同様の温和なものだとは思うけど"

著作権

OS作れないマン 技術書典3 あ11企さんのツイート: "社内リポジトリにあるソースコードに著作権表示があって、編集するたびに年号の部分を書き換えるの面倒だから、米国も無方式主義となった現在では著作権表示を削除しても良いのではないかと提案した。"
ぬるぽへさんのツイート: "著作権のこと全然考えてなかったんだけど、特に譲渡とかの取り決めをしてない状態でプルリクエストをどんどん受け付けると、ライセンスを例えばMITから独自のものに変えようみたいな話が出たときに全著作権者にコンタクトを取って了承を得なければいけなくなるのか、なるほどなー"
Kazuho Okuさんのツイート: "著作権譲渡契約(CLA)がなくてcopyright書き換えられたのなら文句言うの分かるけど、CLAがあるのにsquash mergeのオーサー欄がとか言われるの辛い。そんなに自分の名前載せたいならCLAがあるプロジェクト避ければいいのに、と正直思います"
Kazuho Okuさんのツイート: "なお僕はCLA嫌いです"
Kazuho Okuさんのツイート: "実務的な話をすると、squash mergeをする場合というのは、複数人の変更を単一のコミットに変換するというケースが当然に想定されるわけで、その際、CLAで著作者の表示が不要であるにもかかわらず著作者の確認を行わなければならないとなると、作業上の負担が大きくなります"
Kazuho Okuさんのツイート: "僕は 1) @mattn_jp さんの気持ちはわかる 2) MSのやり方が間違っていたわけではないし、実務上のメリットもある(https://t.co/NAYpIxbEAH) 3) である以上、謝罪と修正を要求すべき問題ではない という認識です"
Kazuho Okuさんのツイート: "「僕はこうしてほしい」という希望を伝えるのはもちろんいいんだけど、どっちが正しいとか間違ってるとかそういう問題ではないということ… "

商標権

Kazuho Okuさんのツイート: "商標権は製品の識別を保護するものだから、ソフトウェアやサービスとして商標登録がされているものを紹介する「書籍」を出したとしても商標権侵害にはならないんじゃないの? 教えて偉い人 / “ライセンスからみたOSSの商業出版の話。 -…” https://t.co/Q3qvGRmgek"
ライセンスからみたOSSの商業出版の話。 - @rdlabo
成瀬さんのツイート: "その通りで、「商標的使用」じゃないので侵害にはなりません… "

OSSライセンスの教科書

もうすぐ夏休み終わりさんのツイート: "OSSライセンスの教科書買ってきた。 JSONライセンスを実務上当然認めるべき、という主張には断固としてNoと言いたい。理解しかねる"
まさみさんは語りたいさんのツイート: "JSONライセンスの言うEvilかどうかって主観的だし、ソフトウェアというツールを作った時点では保証しかねる。例えばカワンゴのOP53Bに利用されたらどうするか。これはインターネットの自由にとってはEvilだが、カワンゴにとってはGoodなのである。要するに確信犯に対しては全く意味がない。"
まさみさんは語りたいさんのツイート: "その上意図的に差別的に自由を侵害しているのでフリーソフトウェアライセンスとしてもダメっていうね。似たような話にNihon Linuxで起きたGGPL騒動がある。 https://t.co/9XATNlB83S"
nihonLinux - Wikipedia
まさみさんは語りたいさんのツイート: "JSONライセンスよりGGPLの方が日本ローカルで騒動に面白みが会って良いんだけど、如何せん2002年のことだからみんな忘れちゃってるんだよなあ。"
まさみさんは語りたいさんのツイート: "実務的に見てJSONライセンス使ったソフトウェアがあったとして、製品に使えるかどうかと言うと、製品がevilな使い方をされるはずはないから使っていいことになるのではないか?ただ、巡り巡って偵察兵器に使われる可能性は無いといえないが、ライセンス受けた時点で判断はできないよな。"
まさみさんは語りたいさんのツイート: "後になって著作権者から、「それは俺にとってevilだ」とか言われたら著作権違反で訴えられる可能性もあるから、やはり判定に主観が入り込む可能性があるのは実務的にも無理だな。"
まさみさんは語りたいさんのツイート: "これと全く同じ状況に陥るのは、ライセンスが付いてないソフトウェアね。誰かが書捨てたコードはすごく危うい。しかしそういうのを考えないで依存関係で勝手に使われるものもあるからなあ。"
もうすぐ夏休み終わりさんのツイート: "全くそうです。Evilな人はそもそもライセンスなんて無視するから意味ないんですよ… "
まさみさんは語りたいさんのツイート: "オープンソースの皮をかぶったハニーポットトラップ、というのも実は存在しうる。"
もうすぐ夏休み終わりさんのツイート: "JSONライセンス大喜利〜 アジアの某大国では顔識別ソフトで人民を監視している。さて、この顔識別ソフトにJSONライセンスが使われていた場合、これはライセンス違反であると言えるか?違反である・違反ではない、それぞれに根拠を述べよ… "

スタックオーバーフロー

κeenさんはTwitterを使っています 「スタックオーバーフローの問答はクリエイティブコモンズのなんかのライセンスで自由に使えたはず。あれを勝手に自動翻訳したサイトを作るのはライセンスの範囲内。問題なのはそれを上位に出すサーチエンジンの方では」 / Twitter
κeenさんはTwitterを使っています 「&gt; 2018-05-02 (UTC) 以降に投稿されたコンテンツは、CC BY-SA 4.0 の条件に基づいて配布されます。 投稿した内容のライセンスは? https://t.co/Lz5qMSG7Qm」 / Twitter
投稿した内容のライセンスは? - ヘルプ センター - スタック・オーバーフロー

Makoto Kato ︎︎さんのツイート: "OSSってのはソースコードを公開するということがOSSじゃなくて、コードのコントリビュートや意見が開かれているということに使うべきだと思ってるんだよね。zlibとかその点ダメな部類だけど"
まさみさんは語りたいさんのツイート: "OSSによらず、ソフトウェアのライセンスの話は、プログラミングを小学生から教えるのならば、リテラシとして扱わねばならない話なんですよ。これだけ気軽にweb上に文書を公開できるなら、著作権の知識がリテラシであるように。"
まさみさんは語りたいさんのツイート: "何かを表現する権利とそれに付帯する注意点は、その表現方法の知識と、本来であれば表裏一体であるべき。これは道徳なんかより遥かに重要。"
まさみさんは語りたいさんのツイート: "未だに読み書き算盤から基本のリテラシが進歩していないことが、日本の教育の問題だと思う。識字率が高いけど、バランスのいい互恵権利意識(fairness)の普及率はどうだろうか? 社畜の問題も、男女格差の問題も、OSSフリーライドの問題も、同根なのではないか。"
まさみさんは語りたいさんのツイート: "道徳はそれを書いた人間や文化を背景にした「善悪」を教える教科なので、ここで言いたいfairnessとは真逆ですね。一方が善きことと思っても、他方はそう思わないかもしれない。これだけだと文化を同質に保つ事は出来ても、異文化との交流にとっては障害になります。… https://t.co/DFJPxQjwM9"
ところてんさんのツイート: "超かっこいいEULAだ。そりゃー同意するよ。… "
まさみさんは語りたいさんのツイート: "Copyright表記のオリジナル年と名前以外の部分については、つまり更新年のところについては不要な表記なので著作物の一部とみなせるので、つまりそこだけを毎年書き換えても、更新年記述の更新があったことを更新とみなせるから嘘は書いていないことになる。"
まさみさんは語りたいさんのツイート: "ExFATだ。間違えた。ちなみにExFATのページにはまだ「製品適用にはMSの特許ライセンスを必要とする」旨書かれている。 https://t.co/Gsv0lRDAiA"
まさみさんは語りたいさんのツイート: "MSがOINに提供したパテントにはexFAT関連の特許は含まれていないが、彼らの「善意の兆し」があるのだろうと期待してSoftware Freedom ConservancyがMSに話をし始めたようだ。 https://t.co/pj22b4ImKy"
Shinji Konoさんのツイート: "マイクロソフトって「特許で訴えない契約」を強要してた会社なんだよな。結局、特許はクロスライセンスで相殺される方向。薬でも特許が切れるのを待つ的なところがあって。"
傳智之さんのツイート: "“知的財産権は,もともとイノベーションを促進するための手段ではある(⁠「保護してあげるから,みんなに公開してくださいね」というのが知財だ)⁠。でも,欧米日の先進国ではそれがいまや,既得権益の保護に使われるだけになっている。” https://t.co/DyBFWEerTC"
henrichさんのツイート: "TechcrunchのMongoDB記事、タイトルから妙な匂いだなと思ったらやっぱりのhiwa案件(viewが増えてもアレなのでリンクなし)。MongoDBは風評被害で訴えてもいいと思うよ…あと本家Techcrunchのライターも。"
まさみさんは語りたいさんのツイート: "マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意 @wired_jp https://t.co/Z2fOfGDJE1 まだだ、exFatが含まれていない限り、見せかけだけに過ぎないよ。"
Thoughts on Microsoft Joining OIN's Patent Non-Aggression Pact - Conservancy Blog - Software Freedom Conservancy
マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意|WIRED.jp
Hideyuki Tanakaさんのツイート: "わかっててBSDとかMIT採用してたんじゃなかったのか。やっぱストールマンの言ってたことは正しかったんだなあ(´・_・`) / “redismongodbkafkaaws.html” https://t.co/VI6EnMNvCC"
Hideyuki Tanakaさんのツイート: "オープンソースなんか広まったらソフト産業死ぬぞ ↓ これからはサービスで儲ける時代。ライセンスも緩くていいぞ。まだこの時代に適応できてへん企業おる? ↓ 結局IaaS持ってるとこしか儲かんないじゃん… ↓ 謎ライセンスでクラウド業者の利用を縛るぞ!フリーライドは許さん! (´・_・`)"
henrichさんのツイート: "ふむ。『「今更聞けないシリーズ」にOSSの利用に関する法的リスクや係争事例の紹介およびOSSライセンス違反を生じさせないための基礎的な知識の解説が掲載されました。』 https://t.co/0QNkSNSCa1"
κeenさんはTwitterを使っています 「著作権にあまり詳しくないので他人のコードの一部を拝借してきたときにどういう著作権表示したらいいのかよく分かってない。 元がMITライセンスとかならLICENSEファイルもってきてauthorに自分加えればよい?」 / Twitter
よんたさんはTwitterを使っています 「@blackenedgold わからないのわかる。「一部のコードはこのかたのでライセンスはこれだよ」みたいな説明もあると良さそう。ライセンス表記をするヘルプ項目いれたり、他の人のコードとライセンスでディレクトリ切ったり、ソースコードコメントに書いたりかなあ。引用サイズによる。」 / Twitter
ドッグさんはTwitterを使っています 「Rust の標準ライブラリのソースコードを使う場合,ライセンスは Apache 2.0 か MIT だけど,Apache 2.0 で取り込んだソースを大きく変更したら変更内容を書く義務があるのか」 / Twitter
NPRさんはTwitterを使っています 「Just in: The U.S. Supreme Court, in a 6-2 opinion, found that Google’s use of Oracle's lines of code when creating its Android operating system constituted “fair use” under the copyright laws.」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今回のグーグルvsオラクル著作権訴訟の米最高裁判決は、API以外の用途(同人等の二次創作含む)にも影響がありそうというスレ」 / Twitter
Charles DuanさんはTwitterを使っています 「Wow--SCOTUS doesn't just rule in favor of Google in @googlevoracle, but says that API reimplementation is fair use *as a matter of law*, meaning that the decision applies to all APIs https://t.co/AwRBGtZ5Pp」 / Twitter
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「パブリックドメインのような法的解釈とかではなくオープンソースの定義の自由的にも自由/フリーの4条件にも反する形でオープンソースではなくなったソフトウェア/ライセンスを何と呼ぶか?単純な話でプロプライエタリと分類している。」 / Twitter
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「オープンソースにしたいけどこれが困るので一部制限かけます、というのは大昔からプロプライエタリと呼んでいる。気に入らない何かを差別するライセンスはその時々の時代の情勢で出現するので珍しいことではない。」 / Twitter

tenpoku1000/tenpoku
tenpoku1000/int_calc_compiler: WebAssembly を中間言語に採用した、32 ビット整数式の x64 JIT コンパイラ
Github新项目快报(2018-11-26) - 《统计学习方法》的代码实现
tenpoku1000/first_follow_set: C 言語で文法の First 集合と Follow 集合を出力するサンプルコード
tenpoku1000/OPML_bookmarks: コンパイラ・IDE・OS・VMM・IME の開発のための OPML・ブックマーク HTML ファイル
tenpoku1000/jp-books: コンパイラ・IDE・OS・VMM・IME の開発のための和書
tenpoku1000/Chocolatey.pkg.config: Chocolatey パッケージマネージャの pkg.config XML 設定ファイル
tenpoku1000/.atom: テキストエディタ Atom の設定ファイル
tenpoku1000/test: テスト用リポジトリ
tenpoku1000/windbg_logger: カーネルデバッグ中の Visual Studio 内蔵 WinDbg の通信内容を記録するアプリケーションとデバイスドライバです。
visualstudio · GitHub Topics · GitHub
602+ Best Webassembly Open Source Software Projects
電子書籍: x64 UEFI 対応 OS 自作入門 https://tenpoku1000.gitbook.io/tenpoku-book/ | LaptrinhX
Uefi_freetype_msvc
格安のトラックパッド付き無線キーボード – Boot macOS
Linux - PCのVRAMに直接アセンブリ言語でデータを書き込む。|teratail
linux - write data in assembly language directly to pc vram

Help

GitHub.com Help Documentation
Creating a commit with multiple authors - GitHub Docs
GitHub Deceased User Policy - GitHub Docs
ブランチの自動的削除を管理する - GitHub Docs

Git

その他

cherry-pick

4. cherry-pick【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
cherry-pickコマンド備忘録 - Qiita
git cherry-pickで特定のコミットのみを適用する| Gitテックラボ | [Smart]
SourceTreeでgit cherry-pickを使う | アライドアーキテクツ エンジニアブログ
[git]複数のcommitをまとめてcherry-pickする - dackdive's blog

reflog

いざという時のためのgit reflog - Qiita
`git reflog` についてまとめてみる
Git - git-reflog Documentation
[git]git reset を取り消す(git reflogの使い方) - dackdive's blog
【翻訳】Gitで様々なUndoを行う方法 - はらへり日記
Git/git reflog (git resetを取り消す) - yanor.net/wiki
Git Undo エイリアスを定義する | POSTD
git log - What's the difference between git reflog and log? - Stack Overflow

docx

渋川よしきさんのツイート: "gitの内部構造的に、バイナリファイルの過去のすべてのバージョンをgzipしてローカルに保存していくのと変わらないので、これやるとgit clone数時間みたいなリポジトリができあがる。zipされているxlsxはgzipしてもファイルサイズほとんど変わらないし。git LFSはわかっている人じゃないと/でもつらい… https://t.co/mYRLJW2HP3"
アーさん@疾風の雑魚プログラマさんのツイート: "WordやExcelが内部的にGit対応を行い、ファイルを保存すると自動的にGithub上のリポジトリにPushされるようになり、世界から日付管理されたExcelファイルを撲滅することができた日には、後世までMicrosoftを称える準備がある。"
Arseny Tolmachevさんのツイート: "今でもできますけど https://t.co/Cl9b1IPGqV… "
Gaelan/WordGit: Git diff and merge on Word docs, using Word's native support.
TortoiseGit/contrib/diff-scripts at master · TortoiseGit/TortoiseGit
渋川よしきさんのツイート: "git、正確にはバイナリdiffで保存する仕組みはあるんだけど、まあそれが発動するときはgit gc起こりまくりの極限状態なことが多いはずで、ストレスフルなのは変わりない。"

stgit

stgit Tutorial - エンジニアきまぐれTips
まさみさんは語りたいさんのツイート: "stgit使ってるからなあ・・・… "
Masaki Haraさんのツイート: "アンケート: gitでブランチを切り忘れてmasterにコミットしてしまったとき 1. masterをtopicにリネーム 2. topicにコピーしてmasterに戻ってreset 3. resetしてtopicを作って再コミット 4. その他"
まさみさんは語りたいさんのツイート: "stgitのあかん所、CC: stableに # が使えんのじゃー。"

~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう

内部構造

Amazon.co.jp: エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する eBook: 河村聖悟: Kindleストア
Git の仕組み (1) - こせきの技術日記
やさしいGitの内部構造 - yapcasia2013
内部構造から見るGit - Qiita
Git の内部データ構造 - SSSSLIDE
Git の内部構造を知っていたら、リモートリポジトリへアクセスできないホストへ差分を適用できた話(実話) - Qiita
Gitのリポジトリの中身をなるべく正確に理解する | To Be Decided
Git のコマンドだけでなく、その仕組みを学ぶ
Gitの基礎知識をまとめたよ - tasuwo blog
Gitを支える内部構造についての話 - Timers Tech Blog
「GitHub トレーニングチームから学ぶ Git の内部構造」のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/
Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。 · DQNEO起業日記
[Git].git/indexのデータ構造を詳しく調べてみた · DQNEO起業日記
git graphを使ってターミナルで Git のツリー構造を表示する | ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
» Gitの最低限必要な基礎知識
参加レポート【GitHub トレーニングチームから学ぶ Git の内部構造@名古屋】 - ton-tech-ton
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「あとで読む: gitの新しい sparse-checkout機能で使われる "sparse index"技術の詳細。Indexはgitのステージングで使われる重要なデータ構造だが、巨大なツリーをcheckoutすると非常に重かった。Sparse indexでは、各ファイルではなくディレクトリをblobのかわりに参照できる。 https://t.co/Q6fnudDVeD」 / Twitter
Make your monorepo feel small with Git’s sparse index | The GitHub Blog

ProjFS(GVFS)

WalkingCatさんのツイート: "it looks like GVFS (Git Virtual File System) has been renamed to ProjFS🧐"
GVFS: Git at Enterprise Scale
Microsoft/GVFS: Git Virtual File System: Git at Enterprise Scale
GVFS/Protocol.md at master · Microsoft/GVFS
Releases · Microsoft/GVFS
RavenFile | Windows Weekly 558: 150 Bottles of Ranch Dressing on the Wall
米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開 | OSDN Magazine
Makoto Kato ︎︎さんのツイート: "SDのレポジトリにはSLM時代 (Windows 2000 RTMまで)のデータ入ってないから、言ってること間違ってるよ。 https://t.co/Yms96KiRhz"
大規模リポジトリの問題を解決するGit Virtual File System
Gitのスケーリング(と、その背景) | プログラミング | POSTD
SATO Naoki / さとうなおきさんのツイート: "WindowsのソースがGitに移行。350万ファイル、300GB、開発者4,000人、1,760デイリービルド。GVFSのおかげ。 The largest Git repo on the planet https://t.co/22nMZ9j6OH"
The largest Git repo on the planet | Brian Harry's blog
MicrosoftがWindowsのコードリポジトリをGitに移動
「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan
Microsoft、Windowsの開発におけるGitの活用状況を説明 | マイナビニュース
Where is GvFlt filter driver source code? · Issue #5 · Microsoft/GVFS

LFS

大容量ファイルもGitで管理。 Git LFSの使い方
git-lfs/docs at master · git-lfs/git-lfs
過去のコミットでgit LFSを使うように歴史改変をする - 簡潔なQ
すらりん日記 » Blog Archive » Git LFS を使ってみる|No:4390|すらりん日記
渋川よしきさんのツイート: "git lfsのファイルロックの仕様がわからん。.git/lfs/lockcache.db というファイルができる。ロック・アンロック時にHTTPのリクエストをサーバーに飛ばしている。リモートとローカルというモードがありそう。わからん。"
渋川よしきさんのツイート: "で、これロックしたところでだれがこの状態を見て「このファイルを編集しちゃダメだよ」って言ってくれるのか。そしてどうやってリモートとこのステータスを共有するのか。"
渋川よしきさんのツイート: "なるほど。lock対象にすると全部がreadonlyになるのか。"
渋川よしきさんのツイート: "あーわかった。積極的にはロック情報を取りに行かないのかもしれない。"
428Hさんのツイート: "git-lfs が 2.x だと認証を拾ってくれない気がする。 1.5.6 だとすんなり通る。 たぶんこれと同じ症状。 https://t.co/F946bdlsNZ"
Git LFS on Windows requires credentials to be cached · Issue #1763 · git-lfs/git-lfs
fu-jinさんのツイート: "git lfsは失敗する。というかもう失敗に終わった感がある。… "
squirrelsさんのツイート: "この間ついにsouce treeが見限っていたような。 本家がバグありのまま更新止まってたしね。… "
beepcap@エビからくり民(成年済)さんのツイート: "git lfsはそのアイデアが出回り始めた頃は期待してた。 まさか、lfsを追加してないgitからpushするとリポジトリ全体が崩壊するとは思わなんだ"

gitattributes

.gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ - podhmo's diary
Customizing how changed files appear on GitHub - GitHub Help

gitignore

Git - gitignore Documentation
github/gitignore: A collection of useful .gitignore templates

rebase

あのコミットをなかった事に。git rebase -i の使い方 – karakaram-blog
git svn rebase で conflict したときの解消手順 - 日曜プログラマがダラダラ書く
Esewvi LoveさんはTwitterを使っています 「git squashとrebaseでいつもハマって、めんどくさいからgit push -f でごまかす」 / Twitter
yoh2さんはTwitterを使っています 「せめて --force-with-lease にして😖」 / Twitter

filter-repo

git filter-repoってなんぞ - Qiita
Gitの履歴のメールアドレスを一括変更 (git-filter-repo) - Qiita
git-filter-repo/INSTALL.md at master · newren/git-filter-repo
newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)
git-filter-repo(1)

switch/restore

git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
Git 2.23.0のswitchとrestoreについて - DEV
git switchとrestoreの役割と機能について - Qiita
Git - git-restore Documentation
Git - git-switch Documentation
Git - Gitの基本

git worktree

git worktreeを使ってみる - Qiita
ブランチの切り替えをしなくてよくなるコマンド git worktree がすごい! - Qiita
複数ブランチの同時並行作業にはGit Worktreeを - astamuse Lab
git worktree についてのメモ - Webdelog
worktree - [Reference/Git] ぺんたん info
git worktreeで複数ブランチを並行させて作業する - いろいろ備忘録日記
git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う - アジャイルSEの憂鬱
Goリポジトリでgit worktreeは使えるか. gitの比較的新しい機能としてworktreeがあります。普段利用する機会はなか… | by Masaki Yoshida | Medium
ワークツリーとインデックス|サル先生のGit入門【プロジェクト管理ツールBacklog】
まさみさんは語りたいさんのツイート: "この問題、実は切実。確かにある程度のgotoはレビューしやすい差分ができるのでwelcomeなんだけども、後で最適化のためのパッチも作って欲しい。… "
Urabe, Shyouheiさんのツイート: "個人的には「diffが小さくなるから」という理由によりgit以降でgotoは復権しつつあると肌感覚で感じるんだけど、どうなんだろうな。ちゃんと調査してみると面白いかも"
まさみさんは語りたいさんのツイート: "個人的には原則として、機能追加とコードの最適化は別パッチにして欲しい。但し機能追加が完全な関数実装の変更を伴う場合は一緒にして欲しい。この当たり微妙な書き方だけど・・・。"
まさみさんは語りたいさんのツイート: "あー、splitdiffはhunkレベルに分割してくれないのか・・・。"
まさみさんは語りたいさんのツイート: "git add -pで手動でhunkに分けながらcommit"
まさみさんは語りたいさんのツイート: "どうもkconfigに怪しい所があるのでうまく行くパターンと行かないパターンをgitに放り込み、hunk毎に別コミットにした上でgit bisectしつつカーネルビルドとテストを繰り返している。"
まさみさんは語りたいさんのツイート: "gitのデータベースだけシンボリックリンクにして、複数の異なるバージョンをチェックアウトできないだろうか・・・。"
Hiroaki Nakamuraさんのツイート: "git worktreeというサブコマンドで出来るらしいですよ。 https://t.co/IBtaqaj1gv… "
Multiple working directories with Git? - Stack Overflow
Hiroaki Nakamuraさんのツイート: ""Git - git-worktree Documentation" https://t.co/PuTHA6F6Dj さっきまでこれ知らなくて、gitの複数ブランチを並べて見たいときにgitのワークスペースディレクトリをまるごとコピーして片方ブランチ切り替えとかやってたんですが、これを使えばさくっと出来たんですね。"
Git - git-worktree Documentation
まさみさんは語りたいさんのツイート: "カーネルのgitが4つぐらい入っていて無駄すぎたので助かる。"

merge

Kazuho OkuさんはTwitterを使っています 「圧倒的merge派。git logが綺麗でうれしいことはないけど(ツリーをたどりつつ、当該コミットで変更の理由を見ればそれで十分だから)、PRレビューしたあとにrebaseされるとレビューした文脈が消えるのが辛すぎる / https://t.co/msl9Yy5rQ9」 / Twitter
あなたはmerge派?rebase派?綺麗なGitログで実感したメリット - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
Kazuho OkuさんはTwitterを使っています 「ツリーが複雑になるのが嫌ならsquash mergeすればええねん」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「歴史改変」って言い方するなら、自分ひとりしか知らないツリー(ブランチ)の改変は好きにやったらいいねん。誰にも迷惑かからへんし。でも、PRレビューとかやったあとのやつを改変するのは危険。他のひとに迷惑がかかる」 / Twitter

blog

cron から自動で git push する [Tipsというかメモ]
git pushで本番環境に“自動デプロイ”できる環境を作ってみよう! | vdeep
gitのコミットの記法 - Fixstars Tech Blog /proc/cpuinfo
git grep を使う - Fixstars Tech Blog /proc/cpuinfo
Github を Windows で利用する(Git GUI編): 小粋空間
git入門 (全22回) - プログラミングならドットインストール
Gitで特定のcommit idを指定してcheckoutする方法
Git で現在チェックアウトしているコミットのID | そんなこと覚えてない
Gitのインラインdiff (word-diffの進化型) - quattro_4's diary
TortoiseGit で git add -p 相当できた
Gitのdiffで差分の場所をメソッド/関数名で表示させる - 理系学生日記
GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
Windows 10の開発環境を整えた - YAMAGUCHI::weblog
本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
Git 2.x シリーズの 6 つの素晴らしいフィーチャー | Atlassian Blogs
Gitのリモート操作を5倍から50倍高速化するには | Yakst
ブランチ、タグを指定してgit cloneする|DIGITAL SQUADブログ
「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
apt-get upgrade gcc considered harmful - NyaRuRuが地球にいたころ
本の虫: git submoduleを含むレポジトリをGitHub Pagesで公開するときのsubmoduleのURLはhttpsでなければならない
Kazuho's Weblog: Git で全ブランチから検索
本の虫: GCCのgit移行が難航中
gitのrebaseでsquashをワンライナーで | κeenのHappy Hacκing Blog
globalのgitignoreの設定をdotfilesでやるようにした - 脱力系日記
gitでアレを元に戻す108の方法 - TIM Labs
git logでソースのdiffを見る - 誰にも見えないブログ
bare repositoryの初期化時に入り込んだ余計なファイルの削除 - 誰にも見えないブログ
commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox
過去の Git コミットのコミッタを変更するには - Corredor
Kazuho's Weblog: git blameでプルリクエストの番号を表示する
gitで2つのリポジトリを混ぜる戦略を考える - golden-luckyの日記
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「強制的に共有させるような仕組みを作るとセキュリティー上の問題も発生するだろうし、これくらいが落とし所なんだろうなぁ / 1件のコメント https://t.co/TPYdzttmoN “チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社” https://t.co/VAsGejhr9v」 / Twitter
チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社
Gitワークフロー設計について - 電通国際情報サービス TechBlog

News

“master”は不適切? デフォルトブランチ名の変更に対応した「Git for Windows」v2.28.0 - 窓の杜
「Git for Windows 2.29.0」が公開 ~セットアップ時にデフォルトブランチ名を設定可能 - 窓の杜
プログラムの実行時間を99%短縮した「たった1行のコード」とは? - GIGAZINE
「Windows Terminal」「Sublime Text 4」連携を追加した「Git for Windows」v2.32.0 - 窓の杜

infoQ

Facebookの大規模で高速なリリース方法
Git2.17は移動したコードに対する差分表示やオブジェクト検索機能が向上した
Git 2.18がGitプロトコルバージョン2のサポートを追加
diff, branch、grepなどが改善されたgit 2.19
ワークフローとパフォーマンスを改善したGit 2.20
トポロジの保存とインタラクティブなりベースが可能になったGit 2.22
MicrosoftがWindowsのコードリポジトリをGitに移動
Git 2.26でプロトコルバージョン2がデフォルトに
Git 2.29でSHA-256の実験的サポートを導入

OSDN

分散バージョン管理システムGitの使い方入門 | OSDN Magazine
Gitを使いこなすための20のコマンド | OSDN Magazine
Git 2.10リリース、表示の改善や細かい設定強化などが行われる | OSDN Magazine
「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5.2」リリース、軽微な修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.3」がリリース、リモートリポジトリ側でチェックアウトしされているブランチへのプッシュが可能に | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
認証ヘルパ機能や細かい機能強化が加えられた「Git 1.8」がリリース | OSDN Magazine
「Git 2.14」リリース、細かな変更が多数加えられる | OSDN Magazine
「Git 2.16」リリース | OSDN Magazine
「Git 2.17」が公開 | OSDN Magazine
「Git 2.19」リリース | OSDN Magazine
「Git 2.20」リリース | OSDN Magazine
「Git 2.21」リリース | OSDN Magazine
「Git 2.22」が公開 | OSDN Magazine
「Git 2.23」リリース、「git switch」や「git restore」コマンドを実験的に導入 | OSDN Magazine
「Git 2.24」公開、複数の新機能が導入される | OSDN Magazine
「Git 2.35」が公開 | OSDN Magazine

POSTD

コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD
モノリシックなバージョン管理の利点 | プログラミング | POSTD
GitトラブルをGetしてしまったら:バージョン管理のお話 | POSTD

Qiita

gitでシンプルなデプロイ環境を作る - Qiita
AdventCalendar - git bisect で問題箇所を特定する - Qiita
Git blameを使って効率の良い犯人探し(w - Qiita
インデントコミットで真犯人がわからなくなった場合の git blame - Qiita
気をつけて!Git for Windowsにおける改行コード - Qiita
Git コマンドまとめ - Qiita
Gitでやらかした時に使える19個の奥義 - Qiita
detached HEAD から脱出する方法を git の内部構造から探る - Qiita
gitで文字列検索、git grepとgit log -Sがとっても便利 - Qiita
git grepでディレクトリを限定して検索 - Qiita
git diff -bとgit diff -wの違いを調べた - Qiita
git-lfsでコンフリクトしたらどうなるか - Qiita
Git リポジトリの内容を zip ファイルにする - Qiita
【Git】ブランチの切り替えとかプルとか出来ないときの対処法 - Qiita
基本的なGitコマンドまとめ - Qiita
ブランチ切って更新してマージするまでの流れ - Qiita
git configをプロジェクトによって使い分ける - Qiita
GitでVisual Source Safeの使い勝手を再現する!ロック機能 - Qiita
gitのremote urlを変更する(レポジトリ移行時) - Qiita
git tagの使い方まとめ - Qiita
Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita
Githubのリポジトリからファイルを削除 - tanaka's Programming Memo
git最強のオプション filter-branch - Qiita
Git ファイルの履歴を完全に削除する
あのコミットをなかった事に。git rebase -i の使い方 | karakaram-blog
git reset --hard の復元 - Qiita
まだ git push origin するときに current branch 名を入力して消耗しているの? - Qiita
Git で変更を patch ファイルにする / patch コマンドで適用する - Qiita
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
[git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita
git tagの使い方まとめ - Qiita
GitコミットメッセージにMarkdownを使えるようにする - Qiita
Gitで日本語長文のdiffをとる方法 - Qiita
Git Subtree 事始め - Qiita
git-subtree移行メモ - Qiita
git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する - Qiita
GitHub Desktopで新規リポジトリ作成後、Push/Pull/同期エラーが出たときの対処 - Qiita
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
git gcの限度設定 - ゲームエンジニアな日々
git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば

GitHub

Setting your username in Git - User Documentation
Setting your email in Git - User Documentation
Taeung/git-training: Don't think about git, just do git
rgburke/grv: GRV is a terminal interface for viewing git repositories
瑣末u 🗹さんのツイート: "javascript実装のgit。ほう。ブラウザでも動作 / “isomorphic-git · A pure JavaScript implementation of git for node and browsers!” https://t.co/RSQhQv23Rq"
isomorphic-git · A pure JavaScript implementation of git for node and browsers!
isomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!

Twitter

その他

blame

SODA Noriyukiさんのツイート: "cvs には blame はなくて「cvs annotate」なんだけど、少なくとも1999年の10月には、NetBSD 関係の chat で「cvs annotate」のことを「cvs blame」と呼んでたし、解説されなくても意味が通りました。1999年10月はsvnやgit… https://t.co/ZqtuAGmtrV"
_さんのツイート: "SVN も svn blame だけど、どこらへんに由来するだろう"
SODA Noriyukiさんのツイート: "この辺の話は、オッサン達にはジェラルド・M・ワインバーグの「プログラミングの心理学」のエゴレスプログラミング関係の記述で広まってる。名著なので若者にも読んで欲しい(最近の版の翻訳の質について悪い評判があるのが気になるけど。昔の版だと訳者は別の方) https://t.co/Db45ZlpKc6"
_さんのツイート: "ちなみに一連の blame についての話は SRE 本に `Best Practice: Avoid Blame and Keep It Constructive` という項目があったことで呟きました。人を blame するのはやめよう。… https://t.co/z0we6tGJCq"
Atsushi EnoさんはTwitterを使っています 「質問の意図はよくわからないけどgit blameしたらcommit出てくるのでそこから辿って意図を調べるのには十分だったかな…コードに書いてあってもいいけど邪魔な時もあるしコメントが適切に更新されないこともある(そしてそれをコードレビューで検出するのはきびしみある)ので一長一短」 / Twitter
qwerty2501さんはTwitterを使っています 「コードでなぜそうなってるか説明したいときにcommit logでその説明を書くって人にそれで開発ちゃんと回せるのか聞きたいんだけど だれに聞けばよいのだろう」 / Twitter
qwerty2501さんはTwitterを使っています 「@atsushieno git blameだとcommit後にファイル内の別のところを変更してフォーマッタかけると影響でてそれをcommitしてしまうとcommit logが隠れてしまいますよね。 あとファイル移動してcommit前にそのファイルに更新かけてしまうとrenameじゃなくてdelete/addになってしまって後で追うのが難しくなるかなって」 / Twitter
qwerty2501さんはTwitterを使っています 「@atsushieno それと単純にチームメンバーがgit の履歴見ない文化だったりするとなぜそうなってるかが伝わらずその後の改修に影響を与えるリスクがあると感じてるのでそういう場合もコメントに書いて見られないよりはマシな状態にしてます。 コメントメンテされないよねってのはそれはそう」 / Twitter
wataさんはTwitterを使っています 「へえええ、こんな機能が。後からPrettierみたいなスタイルフォーマッター入れるとblameが使い物にならなくなる問題解決じゃん https://t.co/wOVanqwCR0」 / Twitter
Viewing a file - GitHub Docs

bisect

らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「bisect がちゃんと機能するようにいい感じにコミットしてるの、えらい」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「コミット粒度の問題とか、開発ブランチで常にコンパイルが通るようにしておくとか、意識すべきことがそこそこある」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「より正確には「テストが実行可能なように」か」 / Twitter
Miura HidekiさんはTwitterを使っています 「それ。あと、bisectがうまく動くようにテストが書いてあるってのも追加で」 / Twitter
Kazuho OkuさんはTwitterを使っています 「1st parentが常に本流だ、という運用ができない人に、mainブランチのコミット権限渡したらダメ」 / Twitter
非実在naka akiさんはTwitterを使っています 「そいや(よく知らんのだけど)、過去ブランチ(名)情報を消しちゃうgit文化だと、どの支流を辿るべきかを機械的に決定できる可能性がかなり減って、つまりbisectしづらい…ような気がするんだけど、違うんだろうか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「コマンドラインからgit使うマンだけど、bisectはgit bisect使わずに手動でコミットチェックアウトしてコード動かすことのが多いな」 / Twitter
非実在naka akiさんはTwitterを使っています 「@kazuho あーそうやって判別してるんですね…。 mainかあ。俺よりエライ人が変なマージしない人だった経験が無い人生だったorz」 / Twitter
FadisさんはTwitterを使っています 「gitに提案されている新機能「確率論的bisect」について。git bisectはある時点で正常で今壊れているコードがいつ壊れたのかを二分探索で探す機能だが、必ず再現するわけではない不具合を調べる場合、1度正常に動いてもそこまでは正常という確信が持てないためうまく機能しない https://t.co/nrkuBM08NL」 / Twitter
FadisさんはTwitterを使っています 「確率論的bisectでは現在のcommitが正常か異常かをgitに伝える際に、その判断にどの程度自信が持てるかを0.0以上1.0以下の値で指定する。gitは壊れている範囲を二分探索で絞り込むのではなく、疑いを晴らせない範囲を重点的にサンプリングして一番怪しいcommitを絞り込む」 / Twitter
FadisさんはTwitterを使っています 「この変更の作者は1.0の自信を持てる場合(=通常のbisect同様決定論的に絞り込みが可能な場合)とそうでない場合の実装を可能な限り共通にするように実装を行なっているが、その結果決定論的なbisectの挙動が以前と変わってしまっている点がまずい、という指摘がなされている」 / Twitter
7594591200220899443さんはTwitterを使っています 「bisectで濡着をかけられないように可能な限り細かくコミットを切る事だけが大事で他はそれを実現する為の方法論でしかない。ともかく全てのコミットは俺の無罪の証明の為にある。」 / Twitter

users

@fadis_

Fadisさんのツイート: "gitに唯一guiが欲しくなる瞬間がある。大和西大寺駅みたいになったgit log --graphを目の当たりにした時だ"
Fadisさんのツイート: "gitプロトコルv2: gitの通信は「通信路を確保する方法(http?ssh?)」と「通信内容の表現方法」の2層で構成されているが、後者についてGoogleが提案している新しいプロトコル。v2ではクライアントが関心の無いブランチをサーバでフィルタしてfetchできる。git-2.18から使える https://t.co/I1es9C2UOQ"
Git Has A New Wire Protocol Yielding Much Greater Performance - Phoronix
Fadisさんのツイート: "ローカルに転がっているgitリポジトリを今すぐgitwebで見たくなった時は、git instawebでgitwebを動かすためのhttpdが上がってきてブラウザが開いてそのリポジトリをgitwebで見れるようになる。git instaweb --stopしないとhttpdが上がりっぱなしになる https://t.co/3zqarBV1cR"
Git - git-instaweb Documentation
Fadisさんのツイート: "で、従来git instaweb時にgitが呼び出そうとするhttpdはapacheかlighttpdかmongooseかplackup(Perlモジュール)かwebrick(Rubyモジュール)だったけど、新たにPythonのモジュールhttp.serverにも対応したらしい https://t.co/lvKyQey3Z4"
FadisさんはTwitterを使っています: 「gccのsvnからgitへの移行が今週末にも完了するらしい。gccのリポジトリをgitに移す試みは2018年からなされているが、20世紀から続く巨大な歴史相手に既存のツールではRAM 64GBでも足りずgcc移行ツールが新規に作られる、gitでの解釈が悩ましい歴史が発掘される等難航していた https://t.co/W7pmpA2kro」 / Twitter
It Looks Like GCC's Long-Awaited Git Conversion Could Happen This Weekend - Phoronix

@shibu_jp

会社員さんのツイート: "@shibu_jp `git checkout -` で前のブランチに戻れますよ"
渋川よしきさんのツイート: "github、まちがって自分でマージボタンを押してしまって、revertコミットPRを作る機能を使ってもどしたんだけど、それだと最初に出そうとしたPRがマージ済みだと判定してしまうので再度PR出すのができなかった(ので歴史改変して完全になかったことにした)"
渋川よしきさんのツイート: "githubのsquash and mergeするとハッシュが変わっちゃう?git pullしてgit branch -dで消すときにハッシュが違うと、違うブランチ扱いになって強制削除じゃないとダメになるのかな・・・"
INADA Naokiさんのツイート: "squash はまとめた別コミットを作るのでハッシュ変わりますね。1コミットだけのプルリクをハッシュ変えずにマージしたいなら rebase and merge 使うのかな。 master が1つでも進んでたら rebase もハッシュ変わるので、 -D になれるしか無いかと。… https://t.co/4OHb6teyDZ"
INADA Naokiさんのツイート: "Github上でマージ後にプルリクのブランチを消して、git fetch methane --prune して、 deleted branch があったら git branch -v して git branch -D するという習慣を付けてます。もう少しうまくやりたい気持ちはある。… https://t.co/4YrVReKx3p"
渋川よしきさんのツイート: "git rebaseでコンフリクト →修正しているうちに乗ってきて、rebase中なのを忘れて作業してコミット(detachヘッダー発生) →git checkout →コミットが虚空に消える"

@msdmairitan

Masaru Iritaniさんのツイート: "Windows ソースコードが Git に移行しました。計画を最初に聞いた時には夢物語のように思えましたが、日本の開発チームでもあっという間に Git が当たり前になったように感じます。 https://t.co/9ZYv3gvwRZ"
Masaru Iritaniさんのツイート: "因みに Git の前は Team Foundation Server ですらなく、Source Depot と呼ばれる内製の集中型バージョン管理システムを使っていました。社外の豊富な情報が活かせるのも Git の大きな魅力です。"
Masaru Iritaniさんのツイート: "GVFS で Windows のリポジトリを複製中です。Git が導入されてから開発ツールの更新も早くなったので、嬉しい反面追い付くのが大変です。"

@blackenedgold

κeenさんのツイート: "コミット、ほぼ -mでやってる。むしろ複数行に跨らないといけないのはコミットが大きすぎるから分割しろって習った。"
κeenさんのツイート: "そういえば世の中にはコマンドラインからgitを使わない人がいるらしいですねって言おうとしたけどgitって-m付けなかったらデフォルトでエディタが立ち上がるんだっけ。"
κeenさんのツイート: "commit前にgit diff --cachedしてた"

@kazuho

Kazuho OkuさんはTwitterを使っています 「規模というより、正確にはブランチの構成の複雑度によるんじゃないかなぁ。squashは特に、コミット粒度が大きくなって元の変更の意図が曖昧になるので、必然性がない限りやらないほうがいいと思う」 / Twitter
はむこさんはTwitterを使っています 「色々言われて「大規模 OSS で cherry pick と revert がしにくくなるので、メンテナが泣いちゃう」は非常に理解できた。 僕も割と泣く係なんですが、隕石級確率の泣き案件のために、毎日の commit コストを上げるとのは、チーム全体の機動性が下がって生産性への影響があるかなというイメージでした。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、なぜpr単位でcherry-pickしたいかっていうと、master以外にもリリース用のブランチが(場合により)複数あって、バックポートが大量にあるからなんだと」 / Twitter
Kazuho OkuさんはTwitterを使っています 「github flowで開発してる分にはrebaseもsquashもなくて大丈夫だと思う。first-parentだけ辿ることは大抵のgitコマンドで可能だし。フローが違うと、、、(ツイートはここで途切れている)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「PRレビューがしやすいように、PR作る段階でコミット群が汚いなら整理してもいいと思う。やっちゃダメなのは、PRレビューが始まった後にforce pushとかrebase。文脈が消える」 / Twitter
Kazuho Okuさんのツイート: "まさか-mで一行コミットログとかしたことのない真面目クンなの???"
Syohei YOSHIDAさんのツイート: "git commit -mでエディタを立ち上げないというより, みなさん git commit -vで差分を見ながらコミットメッセージを書かないのかしら ?"
Kazuho Okuさんのツイート: "git checkoutで別のブランチにうつるときに、submoduleのバージョンも切り替えてくれるハックってないのかな"
hkobaさんのツイート: ".oO(… --recurse-submodules …?)… "
Kazuho Okuさんのツイート: "ありがとうございます!!!!! gitをアップデートしながら… "

histric

histric-1

Ryou Ezoeさんのツイート: "非プログラマーのためのgit入門書、割と切実に啓蒙のために出版されてほしいし、実際私が書いてもいいんだけれど、gitを効果的に使うためには、プレインテキストで書く、CLIツールを使うといった作業も出てくるので、果たしてこれをどうすればいいのか。"
にゃおきゃっとさんのツイート: "git diff で --color-words オプション付けると単語単位でdiffしてくれるのか!!!!めっちゃ便利!!!!!行単位じゃないから本当に変更点だけが分かりやすく出る!!!!もっと早く知りたかった!!!!"
くまぎさんのツイート: "ふははは、貴様には git submodule init --update git submodule update --init のどっちが正しいか定期的にわからなくなる呪いをかけた。"
なかのん&マジックさんのツイート: "バージョン管理システムってGUI化すると面倒すぎて使えたものではない印象がある。基本的には各アプリがそういう機能を内蔵するなり、連携するなりして自動化しないとあかんのだろうなと(そして意味が分からずに使ってもらえないオチ)。"
水島宏太さんのツイート: "実名は挙げませんが、プログラミング能力が高くて、コンピュータ・サイエンスの分野でとても高名な偉い人でもgitほとんど使えないか使いこなせない人ときどきいるんですよ。そういう人の肩の上に乗っている自覚があるので、たかがツール一つでそういった方々を馬鹿にするとか恐れ多くてできないです。"
水島宏太さんのツイート: "もちろん、情報系学生がgit触れないのが主題というのは理解してますが、git触れないこと程度のことを馬鹿にするってのはそういうのとたいして変わらないと思ってます。"
qwerty2501さんのツイート: "git使ってるとここからここまでのcommitを一つにまとめたものを一つのcommitとして見れる単位が欲しくなる"
vyv03354さんのツイート: "changesetのidは内容や更新日時などをもとに生成される(改竄防止の為) その情報の一部として「親changesetのid」も含む(途中だけ差し替える攻撃を防ぐため) なので途中を変えるとそれ以後も必然的に再計算が必要 gitも同様の仕様だったはず。分散バージョン管理では避けようがないのでは… https://t.co/t7AbIGY9ON"
ドッグさんのツイート: "Git で 4b825dc642cb6eb9a060e54bf8d69288fbee4904 は特別なコミットハッシュで,最初のコミットの前の空のツリーを指すというのを初めて知った"
ドッグさんのツイート: "特別なコミットハッシュというか,空のツリーだから常に同じハッシュになると言ったほうが正しいのかな(よく分かってない)"
クニワッさんのツイート: "そうだと思います。オブジェクトの型ごとに prefix がつくので、先頭に tree でバイト数でみたいな感じになりますが、後続の内容が空なので一意になるはずです。https://t.co/SnjiyWYkYF にわかりやすい作成方法が載ってました。… "
Is git's semi-secret empty tree object reliable, and why is there not a symbolic name for it? - Stack Overflow
ドッグさんのツイート: "分かりやすいリンクありがとうございます.なるほど,first commit のツリーの sha は空だから固定値になるけれど first commit オブジェクトの sha は他の諸々が考慮されて別の値になるという感じですね… "
あずりえるさんはTwitterを使っています: 「検索すると色々なことができることがわかるが、如何せん難しすぎる。 (コミットメッセージを上書きする方法、リモートにあるブランチ名を強制的に書き換える方法、プッシュを取り消す方法など)」 / Twitter
nhoriguchiさんはTwitterを使っています: 「リリース用のタグは git-tag -a オプションで annotate tag (タグオブジェクト) 付きにして、ちょっと仮のタグを打ちたいときは -a なしにするのがよくある運用じゃないかな。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「git の GUI frontend はボタンとかメニューには、(git xxx)の様に対応するコマンドを書いてほしい。何を言ってるのかわからんのじゃ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Gitで、特定のコミットにおける特定のファイルの中身を表示する / 1件のコメント https://t.co/eIlTIibqL4 “git commands - How can I view an old version of a file with Git? - Stack Overflow” https://t.co/XvuO10xxR1」 / Twitter
git commands - How can I view an old version of a file with Git? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「git format-patch... まさに今欲しいコマンドじゃないか!」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「コミットをきれいにするために歴史を改変する文化はよくわからない。」 / Twitter
tomoyaさんはTwitterを使っています 「違うちがう。本当に綺麗な人は、綺麗にしようとしてるんじゃなくて、息を吐くように普通にコミットしたら自然と綺麗になっているんですよ。生産性とか関係なく、単純にスキルレベルの話ですね。」 / Twitter
yoh2さんはTwitterを使っています 「履歴をありのままに、それこそコミット直後の push 前に気付いた typo 修正のような fixup 的なものまで記録して、履歴の追いにくさははツールでカバーというのが理想なんだろうけどあいにくツールもそれを扱う人間もそこまで賢くないからまあまあ見れた形に直してる。」 / Twitter
yoh2さんはTwitterを使っています 「あと、PR/MR 直前の rebase はそれとは違う理由でやってる。 コンフリクト起こしてるから直してと連絡受けて作業するのはロスがでかい。」 / Twitter
ドッグさんはTwitterを使っています 「過去の履歴も含めて全てのテキストを git grep するには git rev-list --all と組み合わせれば良いのを知った https://t.co/N07vFEsV67」 / Twitter
How to grep (search) committed code in the Git history - Stack Overflow
Takashi KawasakiさんはTwitterを使っています 「gitの一番良いのは、とりあえず何も考えずにgit initしておけばいいということだと思う。」 / Twitter
ぬるぽへさんはTwitterを使っています 「これ今更聞けないGit入門的な質問だと思うんですが、Gitってあるコミットのコミットハッシュが同じだったらそれ以前の歴史も全部常に同じだと言えるんですっけ?確かに昔の歴史書き換えたらそれ以降のコミットも書き換わりますよね普通」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@nullpo_head 同じですね」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「理解し難いのは、デフォルトでcloneが--recursiveになってないこと、そしてsubmoduleがdetachedになる事。僕に言わせれば、内部設計こそ良くても、UI設計では間違えられるところを全部間違ってる。」 / Twitter

画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SSHの公開鍵は、任意のデータを署名するのに使える。これは2019年リリースの OpenSSH 8.0から追加された機能で、ssh-keygenを使って署名・検証ができる。SSHはPGPよりもずっと普及しているし、Git 2.34からcommitをSSHで署名できるようになる。またGitHubは事実上の鍵配送だ。 https://t.co/5WFdAc74j3」 / Twitter
It's Now Possible To Sign Arbitrary Data With Your SSH Keys
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、GitHubで各ユーザのSSH公開鍵が閲覧可能なのは意外と知られていない。 たとえば Linus Torvaldsの公開鍵は: https://t.co/WZIRwMJJz6」 / Twitter
https://github.com/torvalds.keys
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Gitでよい commitメッセージを (英語で) 書くには: - 題名の後は1行あける。 - 題名は50桁以下。命令形にし、句点は入れない。 - 本文は72桁幅に。 - 説明には what (何が変わったか) と why (なぜ変わったか) を入れる。how (どう変えたか) はさほど重要ではない。 https://t.co/bKRdVPIVmj」 / Twitter
How to Write a Git Commit Message

Git - リベース
Gogs
Git - タグ
Git - Git as a Client
リリースプロセス | Yarn
Git チュートリアルとトレーニング | Atlassian Git Tutorial
Gitea - Wikipedia
Windows 10 - Using Git Bash With TMUX.md
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「elfshaker - バイナリファイル用に最適化されたgitのようなもの。多数のバージョン違いのビルド (clangなど、数百MBあるもの) を高速で切り替えるのに使う。 https://t.co/Jry3xNQg42」 / Twitter
elfshaker/elfshaker: elfshaker stores binary objects efficiently

GitBook

プラグイン

GitBookで外部ファイルの読み込み | 技術文書をソフトウェア開発する話
azu/gitbook-plugin-include-codeblock: GitBook plugin for including file
練習問題の解答を折りたたんで表示できないか?(in HTML版) · Issue #63 · dwango/scala_text
ymcatar/gitbook-plugin-sectionx: A GitBook plugin created for you to separate the page into sections, and add buttons to allow readers to control the visibility of each section
gitbook-plugin-regexplaceを利用して、ブロックレベル要素でMarkdownを囲む - kmizuの日記
markomanninen/gitbook-plugin-regexplace: Replace (RegEx) page section texts with given substitutes
書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch
GitbookIO/plugin-mathjax - JavaScript
gitbook-plugin-japanese-support
gitbook-plugin-mermaid-2の導入 - Qiita
mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
ローカルにGitBookの環境を構築してmermaid.jsをプラグインで導入する | つくるログ
gitbookのmathjaxプラグインが突如動かなくなる - in neuro

Qiita

GitbookとGithubを連携して電子書籍を自動Publishする方法 - Qiita
GitBookローカル開発環境セットアップ - Qiita
GitBook MarkdownからPandoc+LaTeXで美しいPDFを生成する - Qiita
[GitBook] GitBookから生成されるPDF・HTMLのデザインを変更する方法 - Qiita
Gitbookインストール - Qiita
GitBookでAnkerを使ったLinkのURLを使えるようにする - Qiita
GitBookで体制図を書きたい - Qiita
gitbookを使ってみてわかったこと - Qiita
AsciiDoc入門 - Qiita
GitBookのPDF出力で日本語フォントをIPAGothicにする - Qiita

GitBook
What is GitBook - GitBook
GitHub - GitBook
GitbookIO/gitbook: 📝 Modern documentation format and toolchain using Git and Markdown
mizunashi_mana/TIL/tools/doc-aboutgitbook - 電気通信大学MMA
Markdown · GitBook Toolchain Documentation
Configuration · GitBook Toolchain Documentation
Plugins for GitBook
autocover | GitBook Plugins
Introduction · GitBook Starter Kit
Introduction | 技術文書をソフトウェア開発する話
技術文書をソフトウェア開発する話 - GitBook
GitBook Starter Kit - GitBook
Can I host my content on GitHub? · GitBook Help Center
Kindle形式の電子書籍(.mobi)を手動でデバイスへ転送してプレビューする方法 | Thinking Salad
gitbookで楽々ドキュメント作成
VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話
Gitbookで生成したファイルがGitHub pagesに無視される - in neuro
How to fix HTTP 404 on Github Pages? - Stack Overflow
ドキュメントは何で書けば良いのか - in neuro

Markdown

Graphviz

Graphviz - Graph Visualization Software
graphviz / graphviz · GitLab
graphviz / webdot · GitLab
Graphvizとdot言語でグラフを描く方法のまとめ - Qiita
Graphviz - Wikipedia
テキストデータをグラフ画像に変換するツール「Graphviz」ことはじめ | DevelopersIO
データのビジュアル化を最少の労力で: Graphviz
Python上でGraphvizを使って綺麗なグラフを描く - プログラミング原人の進化論
sphinx.ext.graphviz -- Graphvizのグラフを追加 — Sphinx documentation
graphvizを使ってみる | ぬの部屋(仮)

PlantUML

シンプルなテキストファイルで UML が書ける、オープンソースのツール
PlantUML使い方メモ - Qiita
Visual Studio Code で UML を描こう! - Qiita
PlantUMLの基礎 | tracpath:Works
PlantUMLの実践応用(シーケンス図) | tracpath:Works
VSCodeで始めるPlantUML生活 | GMOインターネットグループ 次世代システム研究室
OSSテストツールを知ろう「PlantUML」 | ハートランド・ザ・ワールド
PlantUML - Wikipedia
PlantUMLのレイアウトのコツと指定方法についてのまとめ
チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ

Mermaid

Takashi KawasakiさんはTwitterを使っています 「おや、今までMarkdown Preview Enhanced使ってたけど、GitHub形式の```mermaid しか対応してなくて、面倒なことをしていたんだけど、こっちだとAzure形式の::mermaidもサポートしているのか。」 / Twitter
稀Jr.さんはTwitterを使っています 「VSCode に "Markdown Preview Mermaid Support" がありあますね。編集はこれで十分かも。 https://t.co/axch2xz0cw」 / Twitter
Yoshiyuki NakamuraさんはTwitterを使っています 「@moonmile VS Codeで編集されたMermaidダイアグラムですけど、Wikiの方ではちゃんとグラフィカルに表示される手段があるんでしょうか? …と思って自分で調べてみたところ、一応ちゃんとあるんですね。これは良いなあ…😇 https://t.co/1iMlJIrQXn」 / Twitter
SimonKenyonShepard/mermaidjs-github-svg-generator: This project allows you to generate and render mermaidJS diagrams and automatically include them in github README files
稀Jr.さんはTwitterを使っています 「@nakayoshix chrome だと GitHub + Mermaid 拡張があって SVG 表示してくれたりします。 https://t.co/Hn09aLHs5g ↓の図は見えるはず。 https://t.co/gi6SuQILFw」 / Twitter
GitHub + Mermaid - Chrome ウェブストア
COCOAシーケンス図

slideship.com

slideship.com - Create a slide, ship immediately
Markdownで手軽にスライドが作成・公開できるサービス「slideship.com」が始動:ニュースリリース|gihyo.jp … 技術評論社

Marp

Marp - Markdown Presentation Writer
yhatt/marp: Markdown presentation writer, powered by Electron.
Markdown スライド作成ツール『Marp』の開発経緯裏話 - Speee DEVELOPER BLOG
Electron で Markdownプレゼン作成ツールを作って公開するまで - Qiita
無料でプレゼンのスライドをマークダウン記法で作成できる「Marp」 - GIGAZINE
marp - Google 検索

remark

Remark
gnab/remark: A simple, in-browser, markdown-driven slideshow tool.
Home · gnab/remark Wiki
Remark使い方メモ(Markdown でスライドを作るやつ) - Qiita
markdown + remark.js + gh-pages でプレゼン資料を公開する - Qiita
markdownからスライドを作るツールを調べてみた - UNIX的なアレ
Remark.jsにMathJaxの数式を入れる方法 – はむかず!

reveal.js

reveal.js – The HTML Presentation Framework
hakimel/reveal.js: The HTML Presentation Framework
Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita
hakimel/reveal.js: The HTML Presentation Framework

Marked

chjj/marked: A markdown parser and compiler. Built for speed.
Marked.js で Markdown をクライアント側でパースして表示する - Qiita
markdownをリアルタイムプレビューするWEBエディタを作ってみました(シンタックスハイライト、サニタイズあり) - Qiita
『marked.js』 を使ってブラウザ上で markdown を html に変換する方法 | phiary
JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
Marked.jsを使って社内ドキュメントを書きやすくしよう! – cybozu developer network
node.jsでmarkdownからHTMLを生成する [2014-2-28 17:18]

highlight.js

highlight.js
marked.js で変換したコードを highlight.js でハイライト表示する方法 | phiary
コードのハイライト表示用 JS ライブラリ highlight.js の使い方 - Qiita
ソースコードをハイライトする軽量ライブラリ、Highlight.jsの使い方
highlight.jsを言語毎にカスタマイズして使う
highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研
highlight.jsを全ての言語に対応させる - ncaq
ソースコードをシンプルきれいにハイライト!highlight.jsを使ってみた | ぶちねこどっとうぇぶ
WordPress に Markdown と highlight.js を導入 – アカベコマイリ

markdown-headings

Markdownの見出しを抽出するツールを作った - EagleLand
markdown-headings
1000ch/markdown-headings: Get headings in markdown.

markdown-it

markdown-it demo
markdown-it/markdown-it: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
Markdown it!
markdown-it
markdown-it - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
Node.jsでmarkdown-itを使ったMarkdown→HTML変換を行う - 情報アイランド
Markdownをクライアント側でパースする(markdown-it利用) - LionHeart SD BLOG
Markdown-Itで独自レンダリングする方法 – 踊る犬.netブログ (旧)

blog

Markdown in 2016 - Hack like a rolling stone
Markdownに目次(TOC)を表示させる - tsunokawaのはてなダイアリー
Markdownテキストを整形するAngular Markedとコードをハイライト整形するAngular Highlightjs (1/3):CodeZine(コードジン)
【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜
Big Sky :: GitHub 等で Markdown に画像を貼る時は代替テキストを意識しようと思った。
k16's note: Markdown原稿をGitHubで管理して本にする仕組みが出版社で導入されないわけ
k16's note: TeXと10年戦ってわかったこと
AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch
機能紹介 - HackMD
Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ
MKDocsを使ってFPGA開発日記の記事まとめページを作り直した - FPGA開発日記
MarkdownエディタならTyporaが最強であるという話 - FPGA開発日記
Markdown ブロックの WikiWikiWeb 方式での書式変換 - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その2) - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その3) - Tociyuki::Diary
大量のテキストを食っても速い Markdown Editor 作った - mizchi's blog
MarkdownBuffer の実行時間の計測とパフォーマンスチューニングの余地 - mizchi's blog
mdbuf v1.0.0: 最高の Mardkown Preview を目指して - mizchi's blog
Markdown コードブロックの JavaScript を bundle して実行するエディタを作ってみた - mizchi's blog
MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター - mizdev
MDsveX - Svelteの中のMarkdownの中のSvelte
markdownがもっと捗るキーボード設定:全角入力時も記号はなるべく半角になるようにする - Yabu.log
WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog
MarkdownエディタTyporaでMarkdownテキストを用いて図を書く方法 - FPGA開発日記
自作 Markdown プロセッサベースの blog.jxck.io v2 リリース | blog.jxck.io
Markdownでスライドを作る、Marpのすゝめ | IIJ Engineers Blog

Zenn

開発者のためのスライド作成ツール Slidev がすごい
slidevjs/slidev: Presentation Slides for Developers (Public Beta 🎉)
Markdown を拡張する MDX はドキュメント作成の新たな可能性?

Qiita

Qiita - Markdown記法 チートシート - Qiita
GitHub Markdown + TeX記法で数式を任意の位置で合わせたい - Qiita
GitHub Markdown + Tex記法で任意の数式番号を書きたい - Qiita
GitHub Markdown + TeX記法で数式に空白を入れたい - Qiita
Markdownテキストでシーケンス図とフローチャートを描く - Qiita
マークダウン中にコメント行を入れる - Qiita
Markdown文法まとめ - Qiita
GitHub Flavored Markdown は何であって何でないか - Qiita
CommonMark
CommonMark Spec
A formal spec for GitHub Flavored Markdown - The GitHub Blog
GitHub Flavored Markdown Spec
QiitaやGitHubのコメントで折りたたみ要素を作る方法 - Qiita
GitHub 上のマークダウンを Travis CI 経由で Qiita に記事として投稿する - Qiita

GitHub

README.mdファイル。マークダウン記法まとめ | codechord
markdown-cheatsheet-online
higuma/markdown_cheat_sheet: Markdown cheat sheet
markdown-memo/markdown.md at master · owlat7/markdown-memo
OS作れないマンさんのツイート: "Atomのmakrdown-previewが使っているライブラリを使う手もあるか?https://t.co/vEBD63YBKL"
gjtorikian/roaster: Turns a raw and crunchy Markdown file into nice and smooth output
syntax-tree/mdast: Markdown Abstract Syntax Tree format
github/markup: The code we use to render README.your_favorite_markup
remark - markdown processor powered by plug-ins
wooorm/remark: Markdown processor powered by plugins
EFMarkdown on CocoaPods.org
EyreFree/EFMarkdown: A lightweight Markdown library for iOS.
commonmark/cmark: CommonMark parsing and rendering library and program in C
thlorenz/doctoc: 📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
joeyespo/grip: Preview GitHub Markdown files like Readme locally before committing them.

Twitter

画像追加

電子計算機の沼さんはTwitterを使っています 「記事(markdown)とか書いてるとき,スクリーンショットを撮って,保存してGUIでフォルダに置いて,gitに追加するのが死ぬほど面倒なんですけど,なんかいい方法ないですかね.. githubにCtrl + Vで貼り付けてUpできたりせん?」 / Twitter
@yosukesand🐗さんはTwitterを使っています 「@Hishinuma_t xwd で出力して、.png に convert とかは?」 / Twitter
xwd - Google 検索
電子計算機の沼さんはTwitterを使っています 「@yosukesand あー.....いけそう? ちょっと検討しますありがとうございます」 / Twitter
🍤🐟🦐🍤🦀🔝🌈🍽🇰🇵💻🎣さんはTwitterを使っています 「@Hishinuma_t git hubのissueにMarkdownモドキ書いてgithub wikiにコピペするっていうゴミ手法なら自分のところではやったことがあります(GithubWikiはなぜか画像のctrl+vができねえ)」 / Twitter

おそろしく速い手刀さんのツイート: "MarkdownコンパイラがGithubと違う動きをする!このMarkdownはクソ!って言うまえに、Github Flavored Markdown という規格がいかに Commonmark から逸脱しているかをな…"
( ꒪⌓꒪)さんのツイート: "markdown でコマンドラインのコードハイライト指定する時に ```sh より ```console の方が良いという知見を得た。 https://t.co/PgYsVYYRXy"
ドッグさんはTwitterを使っています 「Issue や PR に何か stats をコメントするタイプの bot でコメントを適宜更新する必要がある場合,生成する markdown テキスト内に &lt;!-- ... --&gt; で bot 向けの情報を JSON あたりで埋めておくの良さそう」 / Twitter
広江 克彦さんはTwitterを使っています 「文中の改行は無視してくれればいいのに、ブラウザが半角スペースとして表示してくれてしまうのはCSSで制御できるのだろうか?」 / Twitter
yoh2さんはTwitterを使っています 「Markdown もこれなので、そのままでも読みやすいようにと適宜改行を入れてるとレンダリング結果にポツポツ空白が挟まって残念な気持ちになる。」 / Twitter
yoh2さんはTwitterを使っています 「改行前後の文字種 (行頭の空白は無視) によって空白を入れるかどうか判断するようになるといいのかな。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「脚注をサポートしているmdの実装そのものは、Markdown Extra、Pandoc’s Markdown、Kramdownなどなど、たぶん有名どころがかなりある(ところでCommonMarkの脚注の現状はどうなってるんでしょうか…?)」 / Twitter
ドッグさんはTwitterを使っています 「ついでに GitHub の markdown の描画のバグも見つけた. a &lt;!-- -- --&gt; この行でなぜかコメントがそのまま描画されてしまう.コメント内の -- を削除すると正しく動くので,コメントのパースのミスかな」 / Twitter
ドッグさんはTwitterを使っています 「仕様見る限りでは -- は含んで良さそうに見える https://t.co/9rYbYED8fA コメントの中のテキストが &lt;!- で終われないのと -&gt; で始まれないの知らなかった」 / Twitter
HTML 5.2: 8. The HTML syntax
ドッグさんはTwitterを使っています 「結論から言うとこれは仕様だった.HTML 5.2 までに仕様変わったのかな? CommonMark の仕様には -- は含んではいけないと明示的に書いてあった &gt; An HTML comment consists of &lt;!-- + text + --&gt;, ...(省略)... and does not contain --. https://t.co/tbbSWAgEvT」 / Twitter
ドッグさんはTwitterを使っています 「"does not contain --" の後に HTML5 spec へのリンクが載ってるけど,そのリンク先にも -- を含んではいけないとは書いてないので,多分どこかで変わったんだろうなぁ」 / Twitter
ドッグさんはTwitterを使っています 「HTML 5.1 → 5.2 の間で変わったのか.5.1 では -- は含められない仕様になってた https://t.co/xJzQODmbbv &gt; nor contain two consecutive U+002D HYPHEN-MINUS characters (--)」 / Twitter
HTML 5.1 2nd Edition: 8. The HTML syntax
HTML Standard
ドッグさんはTwitterを使っています 「例えば今回の &lt;!-- -- --&gt; みたいに markdown として不正な文字列に対してレンダラがどう動くべきなのか謎い.今回のだと,テキストの後だと一連のテキストノードとして扱われて,行頭とかだとコメント扱いになってる(コメントの終端が無い扱い?)っぽいのでパーサの気分次第にみえる」 / Twitter
ドッグさんはTwitterを使っています 「markdown ではリンクのラベルをラベル定義より先に書けるから,そこを正しくパースしようとするとインクリメンタルパースができないのか.例えば [foo][bar] がある時,bar が存在するとリンクにしないといけないし,存在しないと [foo][bar] 全体をただのテキストノードにしないといけない」 / Twitter

クロスリファレンスとは 「相互参照」 (cross-reference, x-ref, xref): - IT用語辞典バイナリ
Markdown の Table 記法を CSS で実現する | blog.jxck.io
CommonMark Spec
Markdown Variants
RFC 7763 - The text/markdown Media Type
Daring Fireball: Markdown Syntax Documentation
Markdown - Wikipedia
StackEdit – In-browser Markdown editor
Simplenote
なぜScrapboxはMarkdownを採用していないのか - 増井俊之
Kibela キベラ| 人と情報に自由を|個人の力を組織の力にする情報共有ツール
HackMD - Markdownで知識ベースを共作
FadisさんはTwitterを使っています 「I❤️LA: 分数、添字、行列、積分等の面倒な表記を伴う数式をテキストで書く新しい言語。このような言語としては従来からLaTeX等があるが、I❤️LAはUnicodeの豊富な数学記号を活用して、一意に解釈できる記法でありながらテキストのままでも読める「数式のMarkdown」を実現する https://t.co/2yD1m5yv6r」 / Twitter
I❤️LA: Compilable Markdown for Linear Algebra
電子計算機の沼さんはTwitterを使っています 「LaTeXが美しいことは認めるが、あんなものは書きたくない 数式以外はもっと楽に記述して変換したいが、Markdownがその答えかと言われると微妙なのが一番の悩み」 / Twitter
第709回 CodiMDでMarkdownをウェブブラウザーから共同編集する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

Releases

GitHubのリリース機能を使う - Qiita
GitHubのリリース(Releases)を削除する - Qiita
GitHubのAPIを使ってReleaseの最新バージョンを取得する - Qiita
GitHub Releasesにリリースノートを自動生成する新機能。テンプレートでのカスタマイズも可能 - Publickey

reject(CVE)

Hiroshi SHIBATAさんはTwitterを使っています 「@__gfx__ @bulkneets 「脆弱性じゃない」というのを、https://t.co/jrxvm1HXa2 から reject というのを出すのが良いと思います。油断するとこの CVE id をもとに dependabot が動いたり、期待しない FUD なども出てきます(本当にだるい...)」 / Twitter
CVE - Common Vulnerabilities and Exposures (CVE)
FUJI GoroさんはTwitterを使っています 「@hsbt @bulkneets そうそう、dependabotとかが動き出すのを懸念してます。 ほぼメンテされてないモジュールだし、さらにいうとぼくはあまり関係もないのですが、エコシステムに対する攻撃…とまではいかないものの雑すぎるムーブでだるいですね…。」 / Twitter

Zed

ドッグさんはTwitterを使っています 「GitHub の Atom チームが Rust で再実装してるテキストエディタ,Zed っていう名前になったのか(試作時は Xray だったはず).early access 希望者募集中 | 'Introducing Zed — A lightning-fast, collaborative code editor written in Rust.' https://t.co/22rj3e0U4i」 / Twitter
Zed
ドッグさんはTwitterを使っています 「コードを通じたコミュニケーションを推してて,他人との同時編集機能を組み込みで実装してる.実装には CRDT (https://t.co/p9KPWRXkZi) を利用」 / Twitter
Conflict-free replicated data type - Wikipedia
ドッグさんはTwitterを使っています 「高い描画パフォーマンスを出すために,GPUI という UI 描画フレームワークを時前実装してる.Mozilla の WebRender を参考にしてるらしい.(Xray では UI は Electron でコアを Rust で間を Node.js の native API でつなぐ感じだった)」 / Twitter
「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜

AlphaCode

自動プログラミングAIの「AlphaCode」をDeepMindが発表、競技プログラミングレベルのコード生成が可能 - GIGAZINE
DeepMindの問題解決型AIが競技プログラミングに挑戦、上位54%にランクイン | TECH+
Kazuho OkuさんはTwitterを使っています 「面白い。問題とサンプルテストを入力に機械学習で直接答えを予測するやり方と比べて、プログラムを予測させるやり方にどの程度の意味があるんだろう。もし前者の方が精度高いなら、後者を経由するメリットは、人間になり済ます以外の何が残るんだろう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「小さな計算量で解けることがわかってる問題に対して、より優れた予測手段を提供してくれる、というのはあるのかな。実用的かはしらんけど」 / Twitter
Kinuko Yasuda / 安田絹子さんはTwitterを使っています 「競プロ民(数千時間やってきたとのこと)による AlphaCode についてのコメントスレッド」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「Importantly, the vast majority of the programs that #AlphaCode generates are wrong (Figure 8). It is the filtering using example tests that allows #AlphaCode to actually solve something. Example tests are part of the input (App. F), yet most sampled programs can't solve them.」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「Using example tests is a fair game for comp. programming and perhaps for some of real world backend development. But for much of the real-world code (e.g. code that defines front-end behavior) crafting tests is not much easier than coding itself.」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「The paper emphasizes creative aspects of competitive programming, but from my experience it does involve writing lots of boilerplate code. Many problems involve deployment of standard algorithms: Levenstein-style DP, DFS/BFS graph traversals, max-flow, and so on.」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「Sec. 6.1 makes a point that #AlphaCode does not exactly copy sequences from training data. That’s a low bar for originality: change a variable name and this is no longer copying. It would be interesting to look at nearest neighbor solutions found using neural representations.」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「Let me also dilute these critical remarks with a note of appreciation. AlphaCode uses a very cool “clustering” method to marginalize out differently-written but semantically equivalent programs. I think forms of this approach can become a code generation staple.」 / Twitter
Dzmitry BahdanauさんはTwitterを使っています 「To sum up: AlphaCode is a great contribution, and AI for coding is a very promising direction with lots of great applications ahead. But this is not AlphaGo in terms of beating humans and not AlphaFold in terms of revolutionizing an entire field of science. We've got work to do.」 / Twitter
ドッグさんはTwitterを使っています 「AlphaGo で有名な DeepMind が,言語生成モデルを使って競技プログラミングの問題を解くシステム AlphaCode を開発してる.Codeforces の直近の10コンテストで平均程度の成績を出せてるらしい | 'Competitive programming with AlphaCode' https://t.co/r6O65LElBu」 / Twitter
Competitive programming with AlphaCode | DeepMind
ドッグさんはTwitterを使っています 「AlphaCode のサイトに行くとコードのアノテーションが見られて,問題文とコードの対応が面白い.トークンごとに生成なのか https://t.co/d6WjrQjtvr」 / Twitter
AlphaCode
ドッグさんはTwitterを使っています 「論文の preprint: https://t.co/DXDmcwQtow」 / Twitter
competition_level_code_generation_with_alphacode.pdf
ドッグさんはTwitterを使っています 「データセットは 715GB か.さすがに Codex と比べると少ない.生成してるのは Python みたいだけど,データセットには色々な言語のコードが入ってる https://t.co/pHTTFhwTWF」 / Twitter
deepmind/code_contests
Jun MukaiさんはTwitterを使っています 「ちょっと前にQuoraか何かで書いたと思うんだが、AIが発達してコード生成ができるようになっても、AIにコード生成させるための仕様記述は必要で、その仕様記述が「プログラミング言語」と呼ばれるだけだと思うんだよね。」 / Twitter
Jun MukaiさんはTwitterを使っています 「もちろんプログラマという専門職として必要な人数が減ったりするなど業界的な変化はありうるし、プログラミングという活動の意味が激変するかもしれないけれど、プログラマ自体がいらなくなることはないんじゃないかな」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@jmuk AIの癖とかAIの気持ちを知り尽くし短い指示で的確なコードを生成させる、AI遣いと呼ばれる職人が台頭する。」 / Twitter
IKeJIさんはTwitterを使っています 「@jmuk ユニットテストを書く仕事に戻るんだ。」 / Twitter
Jun MukaiさんはTwitterを使っています 「@ikeji そうそう、プログラマの仕事はテストを書くだけになったりするかも」 / Twitter
Shinya KatoさんはTwitterを使っています 「仕様を書くと AI がコードを自動生成してくれる →違うそういうことじゃないんだ!という挙動が発生する →AI に祈りを捧げながら仕様を書き換える試行錯誤がなされる →やっぱり人間がコード書いた方が早いんじゃね?となる ……みたいなとこを考えてた」 / Twitter

Copilot

プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE
GitHubのソースコードで学習したプログラミングAI「Copilot」は著作権侵害なのか? - GIGAZINE
ytakanoさんはTwitterを使っています 「Copilot使ったら、勝手に文章が生えてきてワロタ https://t.co/pJn21Ernet」 / Twitter
ytakanoさんはTwitterを使っています 「将来的には、プログラミングは「書く」と言う行為ではなくなり、AIという木からなった出来の良いソースコードを「収穫する」と言う行為になります。」 / Twitter
ytakanoさんはTwitterを使っています 「Copilotの吐き出した文章、権利関係が怖すぎるぞ。」 / Twitter

プログラミング言語

その他

Esolang, the esoteric programming languages wiki
トップページ - nothingcosmos wiki
Abstract vs. Concrete Syntax Trees - Eli Bendersky's website
アセンブリ言語や機械語、高級言語といったものがなんなのかよくわかりません。それぞれに該当する言語を教えて欲しいです。C言語やPythonはどの部類に入るのでしょうか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「各言語実装が、自家製の構文解析器を使っているか、あるいはYacc的なパーサジェネレータを使っているかの調査。 自家製: GCC, Clang, JS V8, TypeScript, OpenJDK, Go, C# Roslyn, Lua, Swift, Julia Yaccもどき: Ruby, PHP, Bash, R, PostgreSQL, MySQL, SQLite PEG: CPython https://t.co/TlguNesqEu」 / Twitter
Parser generators vs. handwritten parsers: surveying major language implementations in 2021 | notes.eatonphil.com
Miura HidekiさんはTwitterを使っています 「少なくともcrubyはraccではなくbisonを使っていると思うのだけど」 / Twitter
スタック使用量の算出 | CS+ V4.01.00
微分方程式と差分方程式(漸化式)
TCD CS David Gregg
f31-yunhe.dvi - p153-yunhe.pdf
プレースホルダとは - IT用語辞典
lifeLOG + REPOsitory: 2^64 (2 の 64 乗) って、どれぐらい?
linux - ARG_MAX は何故必要?(あるいは、ARG_MAX はどう決まる?) - スタック・オーバーフロー
プレースホルダ構文完全解説
プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine
二村射影 - Google 検索
多段階計算 - Google 検索
double dispatch - Google 検索
かわいしんさんはTwitterを使っています 「TaPLには「帰納的に構成された木構造の構成に関する帰納法は高校で習う自然数上の帰納法と同一だ」という趣旨のことが書かれているのだがあまりに素朴すぎないだろうか。」 / Twitter
dif_engine@ワサラー団さんはTwitterを使っています 「@squawai 「素朴」というか「雑」?」 / Twitter
かわいしんさんはTwitterを使っています 「@dif_engine ぼくは「素朴」と「雑」を等価につかいますので…」 / Twitter
令掛ベインさんはTwitterを使っています 「手続き的な記述とは評価順を使って依存関係を記述するものという気がしてきた」 / Twitter
COBOLコンパイラ「gcobol」が発表 | OSDN Magazine

既存言語

Haskell

モダンな言語

とりさんさんはTwitterを使っています 「TLの方々はnull安全言っとりますが,実はヌルポで例外が飛ぶのは割と良心的な挙動なんじゃないかと思うのです(null参照はありえないと仮定して最適化を施すコンパイラを見ながら」 / Twitter
てくのたのしーさんはTwitterを使っています 「実用に耐えられるぐらいライブラリが成熟してる&ユーザがいる言語の時点でhaskellぐらいしかないんだけど、haskellはモダンな言語な感じがしなくてなかなかつらい…」 / Twitter
mod_poppoさんはTwitterを使っています 「「モダンな言語な感じ」ってどういうのだろう。個人的には ・型注釈が後置 ・型注釈が省略可能 ・実装の継承によるサブタイピングを持たない ・nullがない、あるとしても型レベルで区別される あたりを挙げたいけど」 / Twitter
mod_poppoさんはTwitterを使っています 「俺が考えるモダンな言語の条件、「文字列型がUTF-8である」も追加で」 / Twitter
らいパン粉さんはTwitterを使っています 「モダンな言語の条件は、Windowsで動くことと、環境構築が簡単なことと、無料のエディタが使いやすいことだよ」 / Twitter
らいパン粉さんはTwitterを使っています 「あとコンパイルが遅くないこと」 / Twitter
mod_poppoさんはTwitterを使っています 「モダンな言語はエラーメッセージが親切であってほしいしWebAssemblyを吐けてほしい」 / Twitter
mod_poppoさんはTwitterを使っています 「並列処理が気軽に書けないプログラミング言語、キッツイな」 / Twitter
mod_poppoさんはTwitterを使っています 「「モダンな言語」の要件に「並列処理がサクッと書ける」も追加だな https://t.co/opnJbRq54E」 / Twitter
mod_poppoさんはTwitterを使っています 「モダンな言語の要件に「パーサーを作りやすい」も追加しよう(Standard MLを睨みながら)」 / Twitter
mod_poppoさんはTwitterを使っています 「Standard MLのandalso/orelse/handle周りをちゃんとパースするのが大変すぎる。andalso/orelseは二項演算子に準じるパース方法にしてほしかったし、handleには先行するトークン(tryみたいな)が欲しかった」 / Twitter
ぐらふぃさんはTwitterを使っています 「モダンな言語にはまともなマクロがほしい」 / Twitter
びしょ〜じょさんはTwitterを使っています 「モダンな言語はデファクトスタンダードな処理系にパッケージマネージャやビルドツールが統合されている」 / Twitter
三木里秀予@楽器ちょっとお休みさんはTwitterを使っています 「- コンパイラ(もしくはインタプリタ)が吐くエラーの文言の可読性が高い - フォーマッタが付属している。可能ならLSPサーバも が追加で欲しい>RT」 / Twitter
びしょ〜じょさんはTwitterを使っています 「言語のモダニティというのは、多分モダンな周辺環境に合うというのが求められるんで、真面目に考えると FFI で既存の資産を拾いやすいとか LSP が用意されてるとか、CI やコンテナに乗せるための実行環境を作りやすいとかかも。」 / Twitter
てくのたのしーさんはTwitterを使っています 「haskellに足りないモダンな感じ、なんだろう。モダンな感じとは違うかもしれないけど - 効率の良いutf8文字列がデフォルト - デフォルトで先行評価 - rustのanyhowやgolangみたいな簡素で統一的なエラーハンドリング方法が選択肢にある - 例外が無い( =値によるエラーかpanicの2択 )」 / Twitter
てくのたのしーさんはTwitterを使っています 「簡素なエラーハンドリング、exceptionsでできたりする? https://t.co/QaObjy0FGk」 / Twitter
exceptions: Extensible optionally-pure exceptions
Miura HidekiさんはTwitterを使っています 「こんな仕様、何が嬉しいの?って多くの人が思うような言語がモダンな言語というイメージ。出始めのころのオブジェクト指向言語とかバッカスがACMチューリング賞記念講演で講演したころの関数型言語とか」 / Twitter
Miura HidekiさんはTwitterを使っています 「この観点でもやっぱり、Rustは頭おかしい」 / Twitter
Miura HidekiさんはTwitterを使っています 「FPと同等くらい尖っているけど、一気に支持を得たな。不思議」 / Twitter
Miura HidekiさんはTwitterを使っています 「それくらいみんなGCが嫌いなのか。悲しいなー」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 RustでGC書けば問題なし」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 なるほど」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 静的型検査と同じで、強力で高い効果があるものは大体、嫌われるような気がします。ああ、破壊的代入、ってのも強力で効果が高くて嫌われてるなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど、強力な機能ほど嫌われる、その発想は無かったですけどうなづけます。例えば、継続・マクロ。Lisp系の言語やFORTHがずっとマイナーなのも説明がつきますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「「強力で高い効果があるものは大体、嫌われる」これが正しいと、プログラミング言語は1つに収束する気もするけど、そうじゃない所を見るとダークエネルギーみたいな要素があるのだろうな。ひょっとすると好奇心なのかもしれない」 / Twitter
zickさんはTwitterを使っています 「Cは冗談として、型注釈が後置な言語は昔から結構あった気がする。今になって増えてきたのは省略可能な文法が作りやすいから?」 / Twitter
Miura HidekiさんはTwitterを使っています 「みんな大好きPL/Iが型注釈が後置だな。さすがIBMや https://t.co/Tp0xqYUTXc」 / Twitter
PL/I - Wikipedia
mod_poppoさんはTwitterを使っています 「みんな大好きBASICも型注釈は後置だった気がするな」 / Twitter
日比野 啓 (Kei Hibino)さんはTwitterを使っています 「継承が嫌われるの、部分型付けとセットになっていることがよくあるからじゃないかな。 列多相があっても部分型付けにはせずに、パラメータ多相にする方法はあるという理解。」 / Twitter
日比野 啓 (Kei Hibino)さんはTwitterを使っています 「部分型付けで失なわれる制約が実プログラムに問題を起こすかどうかをプログラマが常に注意しなければならない。 そもそも部分型付けを利用しなければ、その部分については考えなくてよい。」 / Twitter

関数型・論理型プログラミング言語

Kenji RikitakeさんはTwitterを使っています 「関数型スノビズムは勘弁してほしい」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@jj1bdx もし差し支えなければ「関数型スノビズム」の言わんとすることをご教示いただければ幸いです。スノビズムはsnobbismだと思うのですが。」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@zacky1972 副作用なしでプログラミングができるとか(笑) すべてS式でいいとか(笑) 現実の問題解決を無視した主張が結構見られるんですよねえ。 ICFPにも行ったしCUFP付属ワークショップの企画もしてますけど、自分が関数型万歳と言わないのは、こういったスノビズムに与したくないからです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@jj1bdx 理解しました。私と似た立場なのですね。」 / Twitter
チェシャ猫さんはTwitterを使っています 「どうかな…少なくとも自分が直接知る Haskell ユーザで「実用性ではなく数学的な美しさを求め」ている人間は見たことがないし、モナドだの圏論だの特別視してるのはむしろ実際には書かない人な気がする。専門用語で会話する医者を見て「彼らは治療ではなくドイツ語を求めている」とはならんでしょう?」 / Twitter
CubbitさんはTwitterを使っています 「>関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています ちなみに、その当人の私は純粋関数型言語であるElmを現実の受託開発のプロダクトで使い、一般向けのウェブサービスとしてリリースし現在も運用してますので、ご理解をよろしくお願い奉り候」 / Twitter
CubbitさんはTwitterを使っています 「また、数学的な美しさでは当然Haskellのほうが上なんですが、サーバーサイドはGCPのCloud Functionで運用しているっていうクソ実用上の理由で数学的美しさを諦めてTypeScriptで書いてますし、最近はメンバーのスキルの標準化という実用的な理由でReactを多用してます」 / Twitter
山本和彦さんはTwitterを使っています 「「プログラミング言語Xは実用的でない」という発言は、「数学は役に立たない」という発言と同じで、「君が役に立てられないだけでは?」という印象を与えがち。 実用に関する発言は、自分の品位を落とすことにつながることを理解すべき。」 / Twitter
山本和彦さんはTwitterを使っています 「僕は、新しいトランスポートプロトコルであるQUICをHaskellで書いています。 副作用の有無が型で区別できるし、軽量スレッドもあるし、STMもあるからです。 これらの機能がない言語は実用的でないと言われたら、困りませんかね?」 / Twitter
山本和彦さんはTwitterを使っています 「QUICの実装リストには、どの言語で実装されたか書かれれてますが、この一覧にあなたの言語が含まれていなければ、実用的じゃないんですよ、って言われたら嫌な気持ちになりませんか?」 / Twitter
純粋関数型プログラミングと純粋関数型プログラミング言語に関する意見まとめ - Togetter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ところで、私はそんなに関数型勢ではないです。しいて言うなら、オブジェクト指向&関数型プログラミング勢ですが、それとは独立に純粋関数型プログラミングとそれを後押しする言語のメリットは認める(ただし、自分の趣味ではない)という立ち位置です。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「派生して「良いプログラミング言語のマーケティングとは何か」という話題も考えている。過去の私の失敗も踏まえて。 特に、「事実としての正しさ」へのこだわりを前面に出す議論は、関数型勢とかアカデミア系の人はやりがちだけど、これは「こわい」とプログラマにすらとられがちなのかなと思う。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「自分の推しとかそういう観点とは独立に、相手の主張の意図を理解する姿勢というのは必要だと思う。 推せないけど、言いたいことはわかるしある程度同意するみたいな。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「Scala Days 2013辺りだったかな、Odersky先生のkeynote speachで 「関数型プログラミングってなんか小難しい印象与えがちなので、そっち前面に出すのってややこしくないですかね」みたいな質問をしたのを思い出した。 Odersky先生は「それでも重要だ」という回答だった記憶ですが。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「型名がIO[A]でなくProgram[A]だったら妙な誤解生まれなかったのでは。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「「関数型プログラミング言語」を業務で使わないとしても、それ由来の機能はメインストリームの言語にたっぷり入ってますし、高階関数のmap/reduce(fold)/filter/... とかも色々な言語でふつーに使われてるので、キャッチアップしないで済ませられる時代はもう過ぎてる気がする。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、別に関数型プログラミングはなんか高尚なことでもなくて、手続き型プログラム方面からでも、保守性を高めて行こうとした時に割と自然に出て来るものでしかないと思うし、断絶があるとするのは誤解だと感じる。」 / Twitter
imuno@シリコンバレー5年目さんはTwitterを使っています 「@kmizu ああ、こういうときはこう書くのか〜、という思い着く思いつかないの壁はあると思います。勉強する、しないの壁や、それに由来する知識の壁は置いとくとしても。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「「パラダイムシフトが必要だ」勢がこの辺の問題ややこしくしてるんじゃないかなあと。 Effective Javaの時代から不変データが重要だとか既に言われてた事で、それの延長と考えればふつー、ふつー。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「「学術的な正確さがないと相手にされない」という気持ちは,理解できます。それは関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています。それが特性なんだろうなというのが,私の正直かつ残念な気持ちです。(炎上するかも)」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「こういった事情で,私はElixirを「関数型プログラミング言語です」という紹介の仕方をしたくない気持ちなのです。」 / Twitter
帰国RTAさんはTwitterを使っています 「@cactaceae なるほど、結局一番最初の方のツイートは、「ただ単に純粋関数を使ってMonadicなプログラミングをしたところで、ドメインモデルなどがopaqueなデータ構造(e.g. (IO a))に埋もれてしまっては結局テスト可能性が損なわれるので、純粋関数は銀の弾丸ではない」程度の意図と読み替えて大丈夫でしょうか?」 / Twitter
r.ishibashiさんはTwitterを使っています 「@kmizu Cubbitさんは学術上は正しいけれど、僕の提示している課題感を全く理解していないんですが、関数型プログラミングを利用するユーザーが実務上の有効性を議論する時、学術上の正確さがないと相手にすらされないと?」 / Twitter
Naoki Fukuta(福田直樹)さんはTwitterを使っています 「とりあえず自身があっち系でなく論理型プログラミング系でよかったのです…と思えるTLが流れてきたのです🥺」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@fukutax 私から見ると,論理型プログラミング系も,関数型プログラミングとある意味似たノリのように思えます。。。」 / Twitter
mod_poppoさんはTwitterを使っています 「純粋関数と純粋関数型言語メモ 続き - Togetter https://t.co/jkp0ecie6f. ScalaのZIOとHaskellのIO型で違いがあるとしたらZIO型は「副作用のある関数」として説明されるのに対してHaskellのIO型は「現実世界を受け取って(更新された)現実世界を返す純粋な関数」として説明されるのが違いかな、」 / Twitter
純粋関数と純粋関数型言語メモ 続き - Togetter
mod_poppoさんはTwitterを使っています 「と思った。まあ電子計算機上に現実世界が入ってるわけでもないしこのIO型の説明は子供騙しもといコンパイラー騙しでしかないわけだが。」 / Twitter
mod_poppoさんはTwitterを使っています 「「HaskellのIO型はopaqueなデータ型で、『現実世界を受け取って〜』はGHCにおける内部実装に過ぎないので、説明としては良くないかもしれない」という気持ちと「HaskellのIO型といえどどこまで行っても(殻を剥いても)純粋関数なんですよ〜〜Haskellの特徴が出ていますね〜〜」という気持ちがある」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@cubbit2 現実的には不純な関数を使いたいこともある(のと遅延純粋関数型言語だと、色々つかいづらい)ってのが個人的理由だったり(拒む程の強い理由ないですが、strict Haskellがデファクトスタンダードならもっと使いたいです)。」 / Twitter
CubbitさんはTwitterを使っています 「@kmizu そうですね 私も遅延評価が苦手で、それが理由でHaskellよりも正格なPureScriptやElmのほうが好みですね そっちはそっちでぜんぜんメジャーでないゆえの使いづらさがあるのですが……」 / Twitter
mod_poppoさんはTwitterを使っています 「この辺の「遅延評価が苦手」感がいまいちわからないのだが、 ・計算量がわかりづらくなる ・unsafePerformIOのようなescape hatchが使いづらくなる のどちらが理由として大きいのだろう?それとももっと別の理由?」 / Twitter
mod_poppoさんはTwitterを使っています 「まとめ主の挙動で一つ俺にとって意味不明なのはRedditにスレを立てに行ったことで、Redditの投稿には十分な文脈を載せていないのでTwitterの文脈からしたらピンボケな回答がついているように見える(まとめ主はそれで満足なのか?)」 / Twitter
mod_poppoさんはTwitterを使っています 「純粋関数型言語というとどうしてもHaskellが槍玉に上がって遅延評価!モナド!IO型!みたいな抱き合わせになってしまいがちなので、PureScriptとかElmとかLazy Kとかの他の純粋関数型言語がもっと流行って欲しい」 / Twitter
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「Idrisとか、Cleanとかも。」 / Twitter
m (IO t)さんはTwitterを使っています 「自分は、純粋関数の「純粋」はいわゆるレトロニムだと思っています。 関数といえば数学の関数のことだったのが、プログラミング言語ではそれがサブルーチンのことであると再定義されてしまった。なので純粋という語を付けて、これは本来の意味である「数学の関数」ですよ、と主張している。」 / Twitter
r.ishibashiさんはTwitterを使っています 「まとめ 純粋関数の純粋とは「まじりけのないこと」 Haskellの純粋とは「そのことだけをいちずに行うこと。ひたむきなこと」 と言えると僕は思うんですがみなさんどうでしょう? https://t.co/o39wgHc1CE https://t.co/tx7l2CWqW3 https://t.co/9SIlyyClfz https://t.co/KcSHLAAABK」 / Twitter
Haskellには副作用がないのか? - あどけない話
杉本啓さんはTwitterを使っています 「僕は、関数型とオブジェクト指向のどちらが優れているか論にはあまり興味ないです。両方を理解した上で、目の前の状況に合うよう工夫することが大事で、どちらか片方に振る論は、たいていウソだと思っています。」 / Twitter
杉本啓さんはTwitterを使っています 「だから、どんなアイデアでも、実際に適用するまでに、かなり長い下準備の時間を掛けます。それを惜しむと、どっちがいい論に陥いるし、それは思考停止だと思っています。」 / Twitter
杉本啓さんはTwitterを使っています 「〇〇は××だという論は、常に仮説です。ぼくらは、考えるのがメンドくさいから、毎日、それにしたがって生きていきますが、時にはそれを疑い、深く考えて、真実により近い新しい仮説に行き当たる方がいい。それも仮説、つまり嘘なんだけど。」 / Twitter
mod_poppoさんはTwitterを使っています 「「GC付きのRustが欲しい」みたいな発言をする人、関数型言語を暗黙に除外しがち」 / Twitter
wint 𝄆 Java Java エンジニアさんはTwitterを使っています 「不純関数型プログラミング」 / Twitter
mod_poppoさんはTwitterを使っています 「「関数型プログラミング」と言った場合すでに「純粋関数を多用するプログラミング」くらいの意味合いになるので「純粋関数型プログラミング」という言い回しはあまりしなくないか」 / Twitter
mod_poppoさんはTwitterを使っています 「不純関数型プログラミング、副作用を前提とした高階関数を使うプログラミングとかか…?(JavaScriptのArray.prototype.forEachみたいな)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@mod_poppo 言われてみるとそこは確かに……。」 / Twitter
日比野 啓 (Kei Hibino)さんはTwitterを使っています 「某 ISP で、バックエンドで会員数十万人の接続認証をさばいているプログラムは Haskell 製です。Haskell 実用的ですよ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「まあ言語なり手法なりに「実用的じゃない」という人の多くは単に視界が狭いだけなことが多いんだよな。例えば形式手法は実用的じゃないと言いながら、通勤ではスマホで改札を通っている人たちとか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「言語とか技術に対して実用的じゃないって言う人、200年前は計算機に実用的じゃないって言って居そう」 / Twitter
Shiro KawaiさんはTwitterを使っています 「言語としてデータを変更するプリミティブを持たないが、call/ccがある、というのはどうなるだろう。 既存のものとしてはUnlambdaがあるけどあれはesotericすぎてよくわからない。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@anohana call/ccとかまた微妙なところ突いて来られますね(^^; そもそもcall/ccは関数型プログラミングの世界でよく出て来るものの、ご存じのように本質的に副作用を持つので、関数型「ぽくない」て語りはよくあるように見えます。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@anohana と書いたところで、よく出て来る「例外は副作用である」の方がわかりやすいかもと思えてきました。で、例外は関数型プログラミング的でないとは言えそうだけど、不変データ指向(仮)的でないとは言いにくそうなので、考慮不足だったと認めないといけないなと感じました。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちょいと不謹慎かもですが、関数型プログラミングに不変データ指向プログラミングという別名つけた方が伝わりやすかったりしないだろうか(冗談ですけど)」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu LISPみたいな,Immutableでない関数型プログラミング言語はありますけど,そうでないImmutable指向な関数型プログラミング言語に適切な名前をつけたいと言うのはとてもよく理解できます。」 / Twitter
ruimoさんはTwitterを使っています 「@kmizu これ、とてもモヤモヤしているんですが、イコールなんですかね。JavaScriptなんかは関数がfirst citizenですけど、全然immutable指向じゃないので。」 / Twitter
Miura HidekiさんはTwitterを使っています 「不変データ指向だと、アクターモデルとかProlog(assertとかそういうのは除く)も含まれそうなので、主張がぼやける気がする。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 なるほど、いろんなパラダイムも、意外と地続きになっていそうですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 データ不変ってのは色々なパラダイムでありがちな話だから関数型言語の代名詞にするのはちょっとおこがましいのでは?って思いました。」 / Twitter

モナド

モナド・高階関数・LINQ

たーぼぉ@ひろうこんぱいるえらーさんはTwitterを使っています 「C#でいうLINQかしら?そっちが推される時代がきたか」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「話は変わりますが、ファウラーのリファクタリング第二版では、コードの不吉な匂いに「ループ」があって、パイプラインによるループの置き換えがリファクタリングにある(p.240より)辺り、時代は変わったなあと。 要は高階関数を使うのがふつーになったってことですが。 https://t.co/TEqN7jTz8V」 / Twitter

遅延評価

遅延評価とは何か - Qiita
関数引数の遅延評価 - プログラミング言語 D (日本語訳)
Scala 関数引数の遅延評価 - 追憶行
遅延評価 - Wikipedia
第5回 遅延評価 - 05.pdf
お気楽 Haskell プログラミング入門
お気楽C#プログラミング超入門
カリー化、遅延評価などScalaの文法総まとめ&今後:スケーラブルで関数型でオブジェクト指向なScala入門(11)(2/3 ページ) - @IT
いろいろな引数渡しの方式 — 値呼び・参照呼び・名前呼び・必要呼び
Fiberを使った遅延評価の例。 Lazyな変数xを引数に取って使用するメソッドの評価も遅延させる。 最後の Lazy.run をコメントアウトすると、x, foo, bar いずれも評価されない

Shinji KonoさんはTwitterを使っています 「@kmizu @nishio 遅延評価がないと悲惨な気がするんですが」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@shinji_kono @nishio リスト(ないしシーケンス)のサイズが馬鹿でかくなければ案外なんとかなるものですよ。 むしろ遅延評価を下手にするとリストが小さい場合にオーバーヘッドになることもあるような?」 / Twitter
メモリ使用量の削減のために遅延リストを使うのは(多くの場合)アンチパターン - kmizuの日記
∃ugene 🥙yokot∀さんはTwitterを使っています 「@kmizu @xuwei_k モナドのマーケティングで上手なのは Microsoft だと思います。統合言語クエリ (LINQ) SelectMany も一応ありますが、from句 2つでモナドになります。for 内包表記とやってることは一緒なんですが地味に for に埋もれさせずに from, where, select と SQL にしたのが妙手 https://t.co/YXDd45wean」 / Twitter
Chapter16 LINQとメソッド構文(9/15) - @IT
Kota Mizushima (on a diet)さんはTwitterを使っています 「@eed3si9n_ja @xuwei_k 確かに実質モナドだけど、統合言語クエリという馴染みやすい形にしたのは凄いですね。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「いわゆる関数型プログラミング言語勢のマーケティングが(もし本気なら)良くないのは、説明の方向が抽象概念の説明が続きがちなところかなとよく思う。 優れた言語機能があったとして、具体的なアプリケーションに関するモチベーションを最初に出さないと理解しづらい人がたぶん多数派だろうし。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「この辺はFP in Scala日本語版とか見ても感じるんですが、「確かにその訓練は重要なんだけど、もうちょい具体的にアプリケーションプログラマにとっての御利益にフォーカスした方が……」と感じた記憶が。」 / Twitter
ruimoさんはTwitterを使っています 「@kmizu それは強く思いますね。コップ本だったか忘れましたが「ほらmonadになってるでしょ、ドヤ」みたいな書きぶりで、読んだ時は、でそのモナドって何がウマいの? って感じだったので。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「高階関数は使えるなら使った方がいいというのが基本ポジですが、最近思うのは、「人間にとってわかりやすい高階関数」と「人間にとってわかりにくい高階関数」があるので、そこを分類できると面白いかもしれない。 map, filter辺りは「わかりやすい高階関数」に見えるけど ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「foldLeft/foldRightは「よりわかりにくい高階関数」かもしれない。forallとかexistsは個人的にはわかりやすいけど、これは量化子を扱うのに慣れてるからであって、そういう訓練なければかえって辛いこともあるかも。」 / Twitter
éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「map、filter、reduce関数あたりを知ってからfor文やif文を直接使うことがあまりなくなったんだが、このままfor文if文使わないマンになるべきだろうか。 map関数とか行が長くなりがちで使いすぎも良くないんじゃないかと思ったりしてる。」 / Twitter

acple_さんはTwitterを使っています 「Haskell には `IO a` という「開けると副作用が飛び出す箱」を表すデータ型が存在するので、Haskell は副作用を扱えると言える。それと同時に、Haskell にはコード上で `IO a` という箱を開ける手段が存在しない (※) ので、Haskell は常に純粋であると言える。」 / Twitter
acple_さんはTwitterを使っています 「モナドと副作用は関係がなくて、ただ `IO a` というデータ型が存在しているだけで「副作用は扱える」と言える。ただし、`IO a` を開けることはできないので、その副作用を何にも活用することができない。これを「箱を開けないまま箱の中に操作を書く」ことで副作用を操作できるようにしたのがモナド。」 / Twitter
acple_さんはTwitterを使っています 「この、「箱の中に操作を突っ込んで、それ自体を新たな箱と見なす」のがプログラミングにおけるモナドのイメージになる。この考え方が様々なデータ型に対して同じように適用できるので、「モナド」と「副作用」を紐つけて考えるとかえって理解を妨げる。」 / Twitter
acple_さんはTwitterを使っています 「プログラミング視点だとこうだけど、モナドそのものが何を表すのかに注目する場合、「モナドとは、何らかの引数を取って箱入りの値を返す関数 `* -> M *` をいくらでも合成して一つの `* -> M*` に押し潰すことができるという性質」と表現できる。モナドとはこの「性質」を指す用語である。」 / Twitter
時計⌚️屋さんはTwitterを使っています 「@acple この、`*_1 -> M*_2`の*_1と*_2が常に異なる型であると変に誤解してしまったことがあり(実際は*_1も*_2も完全に任意の型を取れる)、モナドの理解が数年単位で遅れた思い出」 / Twitter
acple_さんはTwitterを使っています 「@10keiya3 こっちの表現はいかにも形式的なので、実際の具体例と紐付けて考えるのはわりと慣れてからでないとむずかしい……」 / Twitter
acple_さんはTwitterを使っています 「厳密には、この合成可能性に加えて「関数がたくさんあったとして、どういう順番で合成しても結果は必ず一緒になる」ことと、「どこに合成しても合成前と同じものになる、中身が空っぽな関数が存在する」条件を加えたものがモナドである。この「条件」が「モナド則」と呼ばれている。」 / Twitter
杉本啓さんはTwitterを使っています 「また、IOモナドが話題になってるの? 昔書いた、サルでもわかるIOモナド三部作、挙げておきます(宣伝)。サルでもわかります。 https://t.co/0wAxn9bpAL」 / Twitter
プログラミング.モナド カテゴリーの記事一覧 - Hot Heart, Cool Mind.
サルでもわかるIOモナド①-副作用の除去 - Hot Heart, Cool Mind.
サルでもわかるIOモナド②-逐次実行とモナドの登場 - Hot Heart, Cool Mind.
サルでもわかるIOモナド③-アクションはモナドの夢を見るか - Hot Heart, Cool Mind.
GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
非遅延純粋関数型IMO - Google スライド
mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「IOモナドならぬProgramモナドを作ってみてます。 実際には、言い換えただけなんですが、やっぱこっちの方がイメージしやすいんではと。 #monadj https://t.co/m9tIPf7XV7」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「Programモナド(という名のIOモナドの表現変えただけのもの)を途中ですがサクっと公開。 https://t.co/vMHEvm4htO 実用性は皆無ですが、仕組みみればいわゆるIOモナドが(Haskell等での実装はここまで非効率じゃないでしょうけど)たいしたことないのがわかるかなーと。 #monadj」 / Twitter
kmizu/monadj: An IO Monad Library in Java
Kota Mizushima (on a diet)さんはTwitterを使っています 「GitHubに上げてたのすっかり忘れてたんですが、IOモナド学習用に作った言語IMO、GitHubに上げてScalaで書き直してましたね…… https://t.co/nwcnzuQY2w https://t.co/ubnx90BXVq この辺がまさにかえってきたIO(Action)を「言語の外側で」実行してる様子ですね。」 / Twitter
kmizu/imo: Statically Typed Pure Functinal Strict Language IMO
imo/Evaluator.scala at master · kmizu/imo
mod_poppoさんはTwitterを使っています 「FunctorやMonadを「二項演算」と主張している時点で圏論をかじってすらいないのが丸わかりなんだよな。Hom(a,b)→Hom(Fa,Fb)は二項演算ではないしMonadに関しては単位射を無視している」 / Twitter
エヌユルさんはTwitterを使っています 「strong monadと言う概念を知れたのは唯一収穫なんだけど HaskellのMonadはstrong monadらしいしstrongじゃないモナドってどう言うのを指すの 演算で型が変わるとか?」 / Twitter
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@ncaq indexed monad とか線形型版モナドとかかな」 / Twitter
エヌユルさんはTwitterを使っています 「@kakkun61 やっぱり型が変わるやつはstrongじゃないんですね」 / Twitter
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@ncaq 「Haskell のモナド」じゃない「モナドのようなもの」を挙げただけで、strong monad のちゃんとした定義知りません!テヘペロ」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「この、AlternativeなりMonoidなりApplicativeなりの各種型クラスの機能を使って組み立てていくの、あんまり明示的じゃなくて分かりづらい一方面白いくらいすっきりするな」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラスってやっぱReader Monadの代わりとして使うのがいいと思うんですよ。thisが常に同じ名前・同じ型で参照できるわけだし。ただ本当にReader Monadを使うあらゆる場面で使ってしまうと巨大なクラスになっちゃいそうだけど....」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そうかその理屈だとReaderTを返す関数はexntension methodみたいなものなのか。」 / Twitter
ぴくすふぁんくさんはTwitterを使っています 「comonadのありがたみを理解するために、モナドがモノイドで嬉しいのと同様にcomonadがcomonoidで嬉しいってのをわかりたいんだけど、そもそもcomonoidがわからんよ」 / Twitter
KoryさんはTwitterを使っています 「急にモナドのお気持ちを語りだすオタクをやるんですけど、「Readerモナドが関数と同じ 」というよりは、Readerモナドのような挙動をする計算モデル(環境から値が取れたり、環境に値を設定したうえでプログラムを実行できるようなモナド (Reader e -, join, pure))が先にまずあって、」 / Twitter
KoryさんはTwitterを使っています 「それの実体化を考えると、まぁ(e -> -)だけで先の操作をすべて実装できるからただの(e -> -)をReaderということにしておこう、となるというだけだという気持ちがあります」 / Twitter
KoryさんはTwitterを使っています 「s/設定したうえでプログラムを実行できるような/設定したうえで実行できるようなプログラムに対応する/g の方がいいかな」 / Twitter

型クラス テンプレート haskell c++

c++ — C ++の概念はHaskell型クラスとどう違うのですか?
C++20 の Concept は型クラス? - TypoTypoTypo
社内Haskellチュートリアルのススメ | エンジニアブログ | GREE Engineering
C++で型クラスっぽいこと - Traits - わくわく技術ブログ
w.l.o.g.
コンセプト - cpprefjp C++日本語リファレンス
ジェネリックプログラミング - Wikipedia
Haskell - Wikipedia
テンプレートの特殊化 | 闇夜のC++
エヌユルさんはTwitterを使っています 「Monadと言うか型クラス全般に言えることだけどそのインスタンスであればわざわざ再実装せずに同じ関数を使えるのが違う所で便利なことかなあ 例えばjoinはIO (IO a)にもMaybe (Maybe a)にも自分が作ったオレオレ型にも使えて、その型チェックが静的に終わる」 / Twitter
tompenguin🚀 @karabiner,inc(mochi)さんはTwitterを使っています 「モナドっていうのは単に関数の実行をモナドに移譲して安全に値を扱うことを保証してくれる仕組みっぽいな。なんでこんな簡単なことをそんなに難しく教えるんだ関数型の人は?!?!? わてならjQueryのコードとモナドのコード横に並べてこれと同じですって教えるな。。」 / Twitter
エヌユルさんはTwitterを使っています 「いやまあ、まずモナドに実行を委譲ってのがIOとStateぐらいにしか成り立たないけどそれは理解したっぽいので指摘しない」 / Twitter
tompenguin🚀 @karabiner,inc(mochi)さんはTwitterを使っています 「@ncaq ありがとうございます!それくらい抽象的な存在ということなんですかね??」 / Twitter
エヌユルさんはTwitterを使っています 「@tompenguin_ そこまで抽象的なものではないですが抽象的に使えて便利という事もあります FunctorのfmapとMonadのjoinがあればMonadのbindは自動実装できる(実際のGHCは逆にfmapとbindでjoinを実装しているが)ことを捉えることで私は理解が深まりました 型クラスの習得をした方が楽かもしれません」 / Twitter

Effect System

Effect system - Wikipedia
monadからeffectへ - Just $ A sandbox
独習 Scalaz — エフェクトシステム
技術書典6に合同誌を出した; effect system勉強会をやった - lilyum ensemble
HERP TechHub - Effect system
effect system勉強会 - connpass
hasura/eff: 🚧 a work in progress effect system for Haskell 🚧

制約

びしょ〜じょさんはTwitterを使っています 「Haskell にて、"ある型クラスを実装していない"という型クラスの制約って書けるんか?」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellはorphan instanceを許しているので「型クラスのインスタンスではない」みたいなやつは原則として書けない、と思っているけどformalな説明は自分の手に余る」 / Twitter
mod_poppoさんはTwitterを使っています 「前にHaskell-jp slackで見かけた、インスタンスの有無によって分岐できるやつ。 https://t.co/1EAUHMzPGC overlapping instanceを利用、手動でインスタンスの定義(あるいはTH)が必要。」 / Twitter
mikeizbicki/ifcxt: constraint level if statements
mod_poppoさんはTwitterを使っています 「型クラスではないけど、「二つの型が異なる」みたいな制約はclosed type familyを使うと書ける。」 / Twitter

Witherable

Koji MiyazatoさんはTwitterを使っています 「Witherable( https://t.co/ktX6ESeCuG )は何者なのか?TraversableやFilterableとの関係は?連投します。」 / Twitter
Witherable
Koji MiyazatoさんはTwitterを使っています 「最近のマイブームであるところのストリング図を使います。私のブログで一度は説明をしましたので、あと私のなんかよりチャンとしている資料へのリンクもあるのでご参照ください。 https://t.co/3oIShMAkdo」 / Twitter
市川 真一さんはTwitterを使っています 「@viercc 404 になり、閲覧できないです」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「@tenpoku1000 申し訳ありません、ご指摘ありがとうございます。コピペミスしたみたいです。 https://t.co/qaZmRm6eJJ」 / Twitter
Too lazy to evaluate - ストリング図でMonad再入門(1)
Koji MiyazatoさんはTwitterを使っています 「まず、Haskellerはご存知でしょうTraversableの絵を描きます。都合上traverseではなくsequenceAで定義して、"sequenceA"の代わりにギリシャ文字"δ"を書きます。 https://t.co/Iga7cTRO1P」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「関手TのsequenceAは、任意のアプリカティブ関手FとTの合成T(F a)をとって、FとTを入れ替える演算ですね! その下の3つのTraversable則はなんとなくそれっぽさを感じてください。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「型クラスFilterableは、リストやMapに対して定義されていたfilter,mapMaybe,catMaybesを抽象化する型クラスです。 https://t.co/GDVKLPE2wW」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「Identity則は「各要素xをJust xに置換え(fmap Just as :: T (Maybe a))てからcatMaybesしたら元に戻る」 Composition則は「T (Maybe (Maybe a))に対して2回catMaybesするのと、Maybeモナドのjoinを各要素に適用してから1回catMaybesするのは同じ」」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「とまぁ、リストのcatMaybes :: [Maybe a] -&gt; [a]を考えたら妥当な感じの法則です。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「また、Maybe自体もFilterableで、catMaybesはMaybeモナドのjoinと一致します。 https://t.co/uoGRUSLNVi」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「しかし!リストやMapのcatMaybesっぽくないものも、合法的なFilterableになれてしまいます。 https://t.co/yvH6sZt47S」 / Twitter
StrangeFilterable.hs
Koji MiyazatoさんはTwitterを使っています 「FilterableやcatMaybesという名前に反して、「連帯責任で複数の要素が取り除かれる」「もとは1つの要素を複数回使う」ことはちょっと奇妙ですね。 しかし、「要素の出現回数」といった概念をうまく法則化するのは、Filterableのメソッドだけでは記述が難しそうです。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「そこでTraversableの登場です。Traversable(とその親クラスのFoldable)は、「要素が同じように出現する」という概念を扱えます。例えば、length x = length y や for_ x (...) = for_ y (...)です。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「FilterableかつTraversableな型Tについて、"catMaybesが要素を変にいじらない"という要請を法則にしてみます。 いい名前なのか自信が無いのですが、この法則には"Distributivity"という名前を付けることにします。 https://t.co/WNMkwSej9c」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「Distributivityの意味を言葉で言うなら以下のようになります。 T (Maybe (F a))に対して、 1⃣「catMaybesでMaybeを除いてからsequenceAでアプリカティブFの作用を連結する」のと、 2⃣「sequenceAを2回使ってF (T (Maybe a))にしてからcatMaybesでMaybeを除く」のは等しい。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「Witherableとは「Filterableのように要素を取り除く操作」と「Traversableのように各要素に副作用のあるmapをする操作」を組み合わせた型クラスです。 そして、Witherable則は ・Filterable則 ・Traversable則 ・Distributivity のすべてを合わせたものと✨同値✨です。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「catMaybes、sequenceAそれぞれの性質とDistributivityをわざわざ全部記述するかわりに、WitherableのwitherメソッドとWitherable則だけで完結させられます。」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「昨晩のツイートはその証明の図だけバババっと貼り付けたものでした。(連投終) https://t.co/1xcBRRnbXp」 / Twitter

blog

IO モナドと副作用 - Haskell-jp
data / newtype / type の使い方 - Haskell-jp
Haskellにおける記号の調べ方 - Haskell-jp
文字列型を抽象化するのにはmono-traversableパッケージがいいかも - Haskell-jp
GHCに初めてコントリビュートした/最近のGHC動向 | 雑記帳
Android むけ Haskell コンパイラをリリースしました!
HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
レンズの圏論的考察 — Avendia
Avendia
とほほのHaskell入門 - とほほのWWW入門
Haskell/Denotational semantics - Wikibooks
エヌユルさんはTwitterを使っています 「これ早く使いたいし、Haskellのフィールドセレクタを全部自動生成すると言うのはフィールドを遅延評価にするのと同じぐらいの初期設計の誤りだったんじゃないかと思い始めた / “新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド” https://t.co/xguPEGOYqw」 / Twitter
新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド
TaPLの3章を読み,4章をHaskellで - Explore cs in depth!
System F をHaskellとPythonで実装した - yigarashi のブログ
自動printfデバッグ - モナドとわたしとコモナド
Maybe と IO を一緒に使いたくなったら - ryota-ka's blog
Too lazy to evaluate - FilterableとWitherableについて
型クラスと忘却・追憶構造 - 檜山正幸のキマイラ飼育記 (はてなBlog)
関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
続くといいな日記 – 文脈依存 PEG による Haskell パーサ
執筆中:「Haskellでの型レベルプログラミング」 | 雑記帳

infoQ

モナドを理解する - 迷える者への手引き
新しいHaskellベースのWeb App Specification Languageがアルファ版でリリースされた
Thrift for HaskellはRPCコードからバグを排除することを目的としている

Zenn

おすすめHaskellプロジェクト作成方法(ほぼ)2021年版
HaskellでのTDDを楽しくするライブラリ methodを作りました。
Type level mapを使ったpreload風関連リソースの取り回し。Indexed monad添え
lotzさんはTwitterを使っています 「Indexed Monad 氏、最近では Parameterised Monad と呼ばれてるらしい。Parameterised Monad から Graded Monad を作るこの関係式は面白くて、実際のデータ型で便利に使えないかは気になってる https://t.co/AgDqPET1iN https://t.co/OzPALcLhJ2」 / Twitter
[2001.10274] Unifying graded and parameterised monads
lotzさんはTwitterを使っています 「@igrep どっちもモナドにパラメータがくっついたやつですよねw Graded モナドはパラメータにモノイダル圏が必要だったり、Indexed モナドはパラメータが2つ必要だったり微妙な違いがあるんですが、元のツイートに張った論文はこの2つの違いをより抽象的なモナドで吸収して統一しようというものなので(文字数 https://t.co/47rWuhw6k4」 / Twitter
Haskellの最近の乱数生成事情について
Haskellの森
「Haskellのモナド完全に理解した」試験問題
Levelsモナドを使った幅優先探索の仕組み
GHC 9.2の新機能と、GHCの動向2021
GHC 8.10とGHC 9.0の新機能
仕事で使うHaskell
Scala ユーザーがぬるっとHaskellに入信したのでHaskellのはじめかたについて書く
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「stackがGHC入れてくれるからstack使うならghcupは要らないですよ、って言おうと思ったけどghcupはhaskell language serverも入れてくれるんだよね。うーむ。 https://t.co/ecwU2n4ekO」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「両方使う場合、--system-ghcを有効にしておけばいいかな、と思ったけどghcupでインストールしてないバージョンのresolverを使ったときは結局stackがインストールしちゃうし...。 まぁ、問題は容量たくさん食ったり、どっちを実行してるか分かりづらくなる恐れがある、くらいか」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「stackがGHCのインストールにghcupを使うオプションを設ければ解決するんだろうか」 / Twitter
「アルゴ式」をHaskellで学ぶための準備
型安全で高速な連鎖行列積の計算
mod_poppoさんはTwitterを使っています 「当然サンプルコードでGHC拡張を使いまくりなんだが、いちいち明記するべきだろうか。GHC 9.2以降だとGHC2021があるので個別に指定しなくても動いちゃったりする。あとGHC2021だとPolyKindsが有効なので適当に書いた幽霊型のカインドがGHC 9.0までと違ってたり」 / Twitter
mod_poppoさんはTwitterを使っています 「「Haskellでの型レベルプログラミング」途中だけど公開した https://t.co/VlSCQGcUuh」 / Twitter
Haskellでの型レベルプログラミング

Qiita

Windows環境でのStackのアンインストール - Qiita
Cats Effect の7つの型クラス - Qiita
Freer Effectsが、だいたいわかった: 12 OpenUnionを型によって安全にする - Qiita
モナド則がちょっと分かった? - Qiita
Haskellの例外処理事情 - Qiita
LLVM の Kaleidoscope を育てながら作る - Qiita
GHCの型レベル自然数を理解する - Qiita
10年間使ってみて見えたHaskellの闇と光 - Qiita
コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita
「タイプセーフプリキュア!」を支える技術 - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ここまでやるんなら個人的にはsubmoduleを使った方がおすすめだなぁ。 / 1件のコメント https://t.co/lFmvZFJWNJ “cabalでGitレポジトリから直接パッケージをインストールする際のダウンロード量を削減するためのworkaround - Qiita” https://t.co/wlH4KsYOkd」 / Twitter
cabalでGitレポジトリから直接パッケージをインストールする際のダウンロード量を削減するためのworkaround - Qiita

Twitter

histric

histric-1

kimiyuki@うさぎ🐇さんはTwitterを使っています 「@uint256_t わりと汎用的にやれています。内部で Python を Haskell に変換するので for 文がすべて foldl に変換され、それとは別で線形になってる lambda 項をすべて行列に変換し、そして foldl/matap -&gt; matap/matpow のような変換規則で畳んでいます」 / Twitter
mod_poppoさんはTwitterを使っています 「ぱっと見で変換のアルゴリズムを推測できないので魔法に見える(すごい)」 / Twitter
mod_poppoさんはTwitterを使っています 「漸化式を組み立てて線形だったら行列の累乗に変換、みたいなやつかな」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellは古いコードが動かなくなりやすくて申し訳ないという気持ち」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskell、普通だったら新しい言語を設計するタイミングでしか入れないような新機能・変更を言語の看板を変えずに実装していってるような感じなので永久に安定しない」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばHaskellはstack(と、stackに影響されたcabal)のおかげでファイルが1個しかないようなスクリプトでもちゃんとパッケージやGHCのバージョンを指定できるしいいよな。」 / Twitter
エヌユルさんはTwitterを使っています 「純粋関数で例外送出やキャッチってなんでやったらダメなんだろう Eitherとかを使うと実質例外じゃない? まあ純粋関数なら型で表せってのは正しい気もするが、別に例外があっても良い気がする」 / Twitter
エヌユルさんはTwitterを使っています 「純粋関数と言うより遅延評価が例外という仕組みと相性が悪いのが良くないのかな 評価しないと例外は送出されないからキャッチを書いても無駄になることがある」 / Twitter
マルチコア時代の最新並列並行技術 Haskellから見える世界 - 141126_2.pdf
松田信介@インスタントウィン開発中さんはTwitterを使っています 「関数型言語ってDBが絡んだアプリケーションでも副作用がない処理が書けるの?もしそうなら見てみたい気もするが・・・ OOPでも副作用がない書き方できるけどな」 / Twitter
はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@xhackjp1 Haskellだと、DBアクセスをする関数は副作用がある扱いになって、返り値の型に「副作用が絡んだ」旨のフラグが付いてくるのだと思います。」 / Twitter
松田信介@インスタントウィン開発中さんはTwitterを使っています 「@excelspeedup ほー、なるほど。 「関数型言語だと副作用のない関数が書ける」ってそういうことですか。そういう意味ではOOP言語でも「書けます」が・・・?どういうことなんでしょうか」 / Twitter
はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@xhackjp1 副作用をユーザが書くプログラムの「外」に追いやっている、みたいなイメージのようですよ。 副作用を起こしているのは実行環境であって、プログラム自体には副作用はない、というような。 (細かいイメージは違うのかもしれません)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@xhackjp1 関数型言語、というよりHaskellの話ですが個人的な見解はこの記事のこの節にまとまっています。興味がわいたら手前の部分も読んでみてください。 https://t.co/9u1KMnxb3Z もうちょっと厳密で詳しい話は https://t.co/Hq8O2cti4h にあります。ただし、こちらはHaskellをある程度知っている人向け」 / Twitter
HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
IO モナドと副作用 - Haskell-jp
CubbitさんはTwitterを使っています 「「副作用のある関数は返り値の型にフラグが付く」はIOモナドの砕けた解釈としてわかりやすいんですが、いったんHaskellやったあとじゃないと「じゃあやっぱり関数には副作用あるじゃん嘘じゃん」ってなってしまうので、入る前の説明としてはよくないと思ってます」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 別にそこ副作用ある、って理解で良くないっすか?結局のところ多くの場合その理解があろうとなかろうと使い勝手は変わらない、というのが私のこれまでの経験で得た結論です。」 / Twitter
CubbitさんはTwitterを使っています 「@igrep 元の話は「関数型言語ってDBが絡んだアプリケーションでも副作用がない処理が書けるのか、もしそうなら見てみたい」っていう話なので、「従来の言語と変わらないですよ」という回答だと「同じなら別に見なくていいや」ってなりません? 私はぜひHaskellに触って欲しいので、違いを強調したいんですけど」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 「副作用のある関数は返り値の型にフラグが付く」でも十分同じではないと思います。」 / Twitter
CubbitさんはTwitterを使っています 「@igrep どういう言い方だと興味を持つかは受け取る側の人次第だと思いますし、あとは多くの人に興味を持ってもらえるように、説明する側が各自で説明の仕方を選べばいいと、私は思います」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 でも仮に「副作用がない」という理解でHaskellやってもらえたとして、結局「副作用がない」ことの意味を理解するハードルってすごく高いし、理解したところで得られるメリットって衒学的なもの以外なくないっすか?理解できる前に「Haskellよくわからん」と敬遠されてしまうリスクも高いですし。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「純粋な関数だけでできてるってことを理解するよりも、その前提の一つ、IOが(動作を表す)ファーストクラスオブジェクトであることを理解することの重要だと思うんだよなぁ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「Haskellとはどこまでか」によってHaskellに副作用あるなしの結論が変わるのはその通りなんだけど、そもそも他のプログラミング言語じゃそんな議論まずしないし、普通のプログラマーから見たら十中八九「実行器まで含めてHaskell」でしょうが。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「IO Monadができる前、Haskell 1.0の頃みたいに、「外界とメッセージのリストをやりとりする関数」だった頃だったらまだ「評価器」と「実行器」を区別してた意味は分かるんですけどね。そのときのコードを見ると、確かに「評価器」に与えるコードを書いてる印象ですし(使ったことないけど)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「参考: https://t.co/1cZMLyhwtd」 / Twitter
haskell-report-archive/haskell-report-1.0.pdf at master · joyofhaskell/haskell-report-archive
mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter

histric-2

スマートコンさんはTwitterを使っています 「「Monoid と Foldable から理解する Haskell」というシリーズの構想があり、構想だけがある(わりと本気」 / Twitter
スマートコンさんはTwitterを使っています 「Semigroup / Monoid と Foldable / Traversable から入って、Applicative / Monad や Lens などを理解させていくという流れになる」 / Twitter
禁酒さんはTwitterを使っています 「遅延評価が関わってくると,何でもかんでも末尾再帰にすれば良いって訳じゃないのがアレ #HaskellDay」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「Promiseはthenが云々だからモナドではないという話を見ると、じゃあHaskellあたりのモナドはundefinedとか混ぜても耐えられるのかなという気持ちになる(?)」 / Twitter
mod_poppoさんはTwitterを使っています 「undefinedが混ざっても耐えられるモナド、こういうことか? https://t.co/V2Jo19BFyb」 / Twitter
がくぞさんはTwitterを使っています 「seq を使うと全てを破壊できるらしいですよ? https://t.co/lgdRS1Ti30」 / Twitter
haskell - A simple example showing that IO doesn't satisfy the monad laws? - Stack Overflow
lotzさんはTwitterを使っています 「私はHaskell×圏論の話題が好きでよく発信してる自覚はありますが、Haskellをやるために圏論が必要だとは1㍉も思ってないことをここに表明しておきます😌自分の周りにもHaskellを普通に書けるけど圏論は知らない人は何人もいます。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「cabalが発達した今、stackのことさえ考えなければ別に何も難しくなく ・ghcup: Rubyでいうところのrbenvとか ・cabal: Rubyでいうところのrubygems, bundler で一言で説明できるんだからやっぱもうstackあんま勧めたくないんだよなぁ... といって私自身が未だにstack使ってるんだよなぁ...」 / Twitter
すとまとさんはTwitterを使っています 「@igrep Stack使わない方がいいんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@stmtk_yu Yes and noですね... https://t.co/ghpyf4DomS に書いたとおりそれでもstackを使うメリットはあるんですが、一方で先ほどhaskell-jpにきた質問のように、stackがある故に分かりづらくしている、といった問題や、原則Stackageを使うことになるので新しいバージョンを試しづらいなどの問題もあります。」 / Twitter
最近のstackとcabalについて簡単に (1)
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@stmtk_yu 今このスライドに付け加えるなら、ghcupを使えばGHCどころかhaskell-language-serverのインストールも簡単にできる、って点ですね。まぁ、language serverについてはエディター側が入れてくることも多いので微妙かも知れませんが」 / Twitter
mod_poppoさんはTwitterを使っています 「GHCで型の等価性を表す ~ が将来のGHC (9.4?) で普通の型演算子になり、PreludeとかData.Type.Equalityからインポートすることになる https://t.co/JhrHnzn0zl https://t.co/i5OmkW9xgU」 / Twitter
ghc-proposals/0371-non-magical-eq.md at master · ghc-proposals/ghc-proposals
てらモス♋️さんはTwitterを使っています 「Rustでproc-macroのデバッグ辛い問題はHaskellだとどうなってるんだろう(´・ω・`)」 / Twitter
エヌユルさんはTwitterを使っています 「@termoshtt 割と成熟してきて適当にexpandするとかでなんとかはなる、辛いは辛いがまあマクロの辛さはみんな共通だし」 / Twitter
ruichiさんはTwitterを使っています 「non-GADTsで線形性が伝播する様にしたのはcompatibilityの問題じゃないかな、tuple とか組み込みのデータ型も都度線形版が欲しくなるわけだけど、LinearTypesのために全部書き換えるわけにもいかないから、(恐らく)そういうルールにした(論文では線形型のtupleの例とかあった) #haskellday」 / Twitter
GHCの動向2021+補遺.pdf - Google ドライブ
ふみ a.k.a.DJ MonadさんはTwitterを使っています 「https://t.co/sYsODhDzpT GHCおよびHaskellの標準ライブラリにこれから起こるであろう破壊的変更をまとめた。保守はもちろん、新しくコードを書く際もこのリストを念頭に置くと後々が楽になるだろう」 / Twitter
fumieval/Haskell-breaking-changes
Andrew CowieさんはTwitterを使っています 「@fumieval @lotz84_ このリストは優れており、計画や議論を導くのに役立ちます。」 / Twitter
CubbitさんはTwitterを使っています 「関数の純粋性の大切さを強調したり関数型プログラミングの有用性を声高に説くわりに、純粋関数型言語を使うのだけは頑なに拒む人たち、なぜなのか」 / Twitter
r.ishibashiさんはTwitterを使っています 「@cubbit2 純粋関数の純粋が意味するものと、純粋関数型言語の純粋の意味するものが全く違うからですよ。。。」 / Twitter
r.ishibashiさんはTwitterを使っています 「@cubbit2 純粋関数は単純で調べれば簡単に小学生でも定義が分かり理解できます。 純粋関数型言語は純粋(関数型言語化)のように純粋が関数型言語にかかってます。そしてそれを調べると、、、」 / Twitter
喇(らつ) / 喇叭吹きは休日さんはTwitterを使っています 「圏論から見るHaskellのFunctor https://t.co/P5b7h60k5V #Mathlog 記事が完成しました。HaskellのFunctorについて圏論からの視点で、というかstrong endofunctorについての論文を掘り起こしてきたのでそれについて書きました。なお本題はApplicativeのもよう (次回に続く)」 / Twitter
圏論から見るHaskellのFunctor | Mathlog

mod_poppoさんはTwitterを使っています 「Haskellやるのにcabalかstackか問題、「アプリケーションを構築するならstack,ライブラリーを書くならcabal」みたいになるのかなあ」 / Twitter
éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「世の中のfor文の9割はmapとかfoldで事足りるんじゃないかって思えてきた」 / Twitter
静的型付「き」言語さんはTwitterを使っています 「tagged=タグつき、tagging=タグづけなのと同様、typed=型つき、typing=型つけなので、statically typed language=静的型つき言語です。究極的には「昔から定着してる用語だから」かもしれませんが。」 / Twitter
mod_poppoさんはTwitterを使っています 「Girard's paradox, 名前はよく聞くけどHaskellで言うとどういうコードで実現できるのかよくわかってない」 / Twitter
HexirpさんはTwitterを使っています 「Agda の universe level が整数で管理されていて、それがオーバーフローしてしまうと Girard’s paradox が発生すると。めちゃくちゃ面白いな。」 / Twitter
VélociPListeさんはTwitterを使っています 「Santa came early! https://t.co/CXJQZegZEe」 / Twitter
Universe overflow causes Russell's paradox · Issue #5706 · agda/agda
Nimu Box

slide.kakkun61.com/linear-ephemeral-data-structure/
haskell-shoen
Haskell入門 | haskell
recover-rtti: Recover run-time type information from the GHC heap

OCaml・ML

SML

blog

SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog
SML#に学ぶコンパイラ言語におけるREPLの実装方法 | κeenのHappy Hacκing Blog
SMLのDerived Forms | κeenのHappy Hacκing Blog
SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
1ML - コア言語とモジュール言語の統合 | κeenのHappy Hacκing Blog
SML#のexistential typeで遊ぶ | κeenのHappy Hacκing Blog
Successor MLの話 | 雑記帳
LunarML進捗・2022年2月 | 雑記帳

Twitter

histric

histric-1

LunarML進捗:functorの実装 | 雑記帳
🎨・🎓さんはTwitterを使っています 「(Standard MLは型の定義がローカルにできたりするためにavoidance problemの対処が一層面倒そうだなあ)と思って mod_poppo さんの進捗を拝見しています」 / Twitter
mod_poppoさんはTwitterを使っています 「avoidance problemってこれで説明されてるやつか https://t.co/CPC4GLpd8b」 / Twitter
exsig.pdf
Standard ML on LuaTeXしてみる | 雑記帳
SML#の2021年トピックを紹介 - Qiita
mod_poppoさんはTwitterを使っています 「Successor MLの新機能、record extensionとnested matchesがデカくて、他は細々としたderived formに過ぎないと言って良い気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「Successor MLのnested matchを使うとパターンマッチ中に副作用を起こせるけど、record extensionのderived formと組み合わせると「ソースコード中の記述と実際の評価の順序が異なる」パターンを書けるのか…… https://t.co/J1dzQL45Ny」 / Twitter
mod_poppoさんはTwitterを使っています 「パターンマッチで非可換な副作用を起こそうという使い方は真っ当にコードを書く限りにおいては起きないと思うので重大な問題だとは思わないが、オタクなのでこういう細かいところが気になるのであった」 / Twitter
mod_poppoさんはTwitterを使っています 「めっちゃ賢いコンパイラーであれば、副作用を含むnested matchの順番がderived formによって入れ替わった時に警告を出せるかもしれない(そこまでするか?)」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLの宣言は特定のトークン(val/fun/type/datatype/...)から始まるようになっていて曖昧さが生じないから偉い。それに比べて式は……」 / Twitter
LunarML@func_party.pdf - Google ドライブ
mod_poppoさんはTwitterを使っています 「Standard MLの文法、ユーザー定義可能な中置演算子を抜きにしても、優先順位に関する注釈を使わないBNFで書き下ろした時にどの程度の規模になるのか」 / Twitter
mod_poppoさんはTwitterを使っています 「ECMAScriptがやってるみたいに非終端記号にパラメーターを持たせて、特定の規則の発動をON/OFFできるとかじゃないと辛い」 / Twitter
mod_poppoさんはTwitterを使っています 「Bisonはshift/reduce conflictが起こった時に反例を挙げてくれるのか。ML-Yaccにも欲しい https://t.co/9QMEnYnwQf」 / Twitter
Shift/Reduce (Bison 3.8.1)
mod_poppoさんはTwitterを使っています 「SMLでは 1 + case () of () => 2 は構文エラーになるが、 true andalso case () of () => false はパースできる(できなければならない)。つまりandalso/orelseは通常の二項演算子とパースのされ方が異なる。厄介。」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLで>>=みたいな演算子を独自に定義しても m >>= fn x => ... とは書けずに、カッコを使って m >>= (fn x => ...) と書かないといけないんだよな。Haskellとは違うのだ」 / Twitter
mod_poppoさんはTwitterを使っています 「Successor MLでは a andalso if b then c else d orelse e みたいな式は拒否されるっぽい?なんもわからん……」 / Twitter
mod_poppoさんはTwitterを使っています 「andalso/orelseの優先順位に照らして式を拒絶する、みたいなやつはML-Yaccによる文法定義とは別のところでやった方がいい気がするな(ほんまか)」 / Twitter
mod_poppoさんはTwitterを使っています 「HaMLet, sequenced type realisationを使っているのか……(LunarMLではSuccessor MLに従ってsequenced type realisationを実装していない)(LunarMLでもsequenced type realisationを実装するべきなのか)」 / Twitter
mod_poppoさんはTwitterを使っています 「やっぱSML97互換モードとSuccessor ML互換モードが必要な感じか。Successor ML互換モードではsequenced type realisationを弾く感じで。」 / Twitter
mod_poppoさんはTwitterを使っています 「SML '97ではこういうコードが合法(andの部分のパースが厄介らしい) https://t.co/ycHX2R8J6r」 / Twitter
mod_poppoさんはTwitterを使っています 「LunarMLでは簡略化のためにSML '97の構文の一部をパースしないことにしてるけど(val recのアレとか)、「世の中に転がってるSMLコードを解釈できるようにしよう」とやっていくとなんだかんだでSML '97を全部実装しないといけないことになるんじゃないだろうな」 / Twitter
mod_poppoさんはTwitterを使っています 「MLtonに最近この辺に関する変更が入ったっぽいな https://t.co/EIiv9e0eax」 / Twitter
Accept a non-semicolon terminated final expression in the syntax of programs by MatthewFluet · Pull Request #470 · MLton/mlton
mod_poppoさんはTwitterを使っています 「ファイルの末尾がセミコロンで終わらない式の場合、HaMLetはセミコロンを付け足すので動く、MLtonは単独の式がval it=に脱糖されるやつはセミコロンが必須なので動かない、みたいな違いがあるな」 / Twitter

histric-2

mod_poppoさんはTwitterを使っています 「SMLのReal.fmt (SCI _), 指数部が負になれないように規定されているように見える(MLtonは普通に1E~10みたいな文字列を返してくる) https://t.co/1zgiB8z8UI」 / Twitter
The REAL signature
mod_poppoさんはTwitterを使っています 「コンパイラーの高速化、どうするのがいいんだろう。並列化?その前に地道にアルゴリズムとデータ構造を改善するべきか?」 / Twitter
mod_poppoさんはTwitterを使っています 「識別子にユニークな番号を振るためにグローバルなint refを使っているからその部分をどうしたら良いか非自明なんだよな」 / Twitter
mod_poppoさんはTwitterを使っています 「SML#実践本によるとMassiveThreadsは「ノンプリエンプティブ」ということで、他の言語でよくあるグリーンスレッドのようにランタイムが勝手に制御を移すようなことはしないのかな」 / Twitter
mod_poppoさんはTwitterを使っています 「SML#ランタイムとMassiveThreadsは思ったほど密結合ではなく、実際https://t.co/6fE122kooXを見た感じではMassiveThreadsへの依存は外せるらしい?」 / Twitter
mod_poppoさんはTwitterを使っています 「smlsharpが--targetオプションを受け付けない(ハイフン一つだと受け付ける)(src/compiler/compilePhases/main/main/Main.sml:185をDLONGに変えれば良さそう)」 / Twitter
mod_poppoさんはTwitterを使っています 「どのフェーズで時間を食っているのか調べたところ、型検査(型推論)が重そうなことがわかった」 / Twitter
mod_poppoさんはTwitterを使っています 「現在のLunarMLは structure S = struct val num = #num end : sig val num : { num : int, den : int } -> int end; みたいなコードを受理するけど、これだと型推論のスコープが広すぎなんだろうな(型検査の所要時間に悪影響がありそう)」 / Twitter
mod_poppoさんはTwitterを使っています 「MLtonがトップレベルの fun f {x, ...} = x val _ = f {x = 13, y = "foo"} を受理する仕組みがよくわからんな。どういう文脈で型推論してるんだ https://t.co/xEsaoH4xxO」 / Twitter
TypeChecking
mod_poppoさんはTwitterを使っています 「途中にstructure Foo = struct endやセミコロンを挟むと型検査に通らなくなるので、「パース後に(セミコロンを挟まずに)隣接するcore decをマージする」という工程を挟んでいるのかもしれない。ややアドホックな感じがするが」 / Twitter
mod_poppoさんはTwitterを使っています 「value restrictionで一般化されなかった型変数が単一化の対象になる範囲と、recordが解決される範囲が違ってそうなんだよな」 / Twitter
mod_poppoさんはTwitterを使っています 「MLtonは隣接するcore decをマージする工程が実際にあるようだ。mlton/ast/ast-modules.funのcoalesce関数がそれで、mlton/elaborate/elaborate-modules.funからそれを呼び出している。」 / Twitter
mod_poppoさんはTwitterを使っています 「オーバーロードが解決されるスコープはレコードのそれと同じようだ」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLのsignature, 予約された名前を含むdatatypeは通常の書き方では書けないけどdatatype replicationならいけるのか https://t.co/RvXQUzzvsK」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLのReal.scan/fromStringが受け付ける文字列の仕様、もしかして?のかかってる範囲が思ったよりも広い? [+~-]?([0-9]+(.[0-9]+)?|.[0-9]+)([eE][+~-]?[0-9]+)? みたいに解釈されるべきなのか? https://t.co/rX3GJ5NWfB」 / Twitter
mod_poppoさんはTwitterを使っています 「「指数部は省略できないけど指数部の数字は省略可能」という解釈はいくらなんでもおかしいよな」 / Twitter
mod_poppoさんはTwitterを使っています 「String.scanの引数は(char, 'a) StringCvt.readerなのか?それとも(Char.char, 'a) StringCvt.readerの間違いなのか?」 / Twitter
mod_poppoさんはTwitterを使っています 「Standard MLでは単項マイナスにはチルダを使うわけだが、間違って浮動小数点数リテラルの指数部にハイフンマイナスが使われていた場合にその旨の警告を出すようにした https://t.co/AqR0kSt1TP」 / Twitter
mod_poppoさんはTwitterを使っています 「あれ?肝心のコンパイルエラーが出てないな……」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLのReal.min/max, ゼロの符号をどうするか明示されていないな。下の方に「The sign of a zero is ignored in all comparisons.」と書かれているからゼロの符号は無視するのか? https://t.co/vDvbJqeB9J」 / Twitter
The REAL signature
mod_poppoさんはTwitterを使っています 「SMLのChar.toCString, 文字のordが八進3桁で表現できない(512以上の時)時にどうすればいいか書いてないな。例外を投げるか、\uを使うか」 / Twitter
mod_poppoさんはTwitterを使っています 「Lua, math.roundがないみたいだけど欲しければ自分で実装しろということか(floorとceilはある、truncはmodfを使える)」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLのReal.realRoundは最近接丸めとのことだけど、小数部がちょうど0.5の時の説明がない。roundの方は最近接偶数丸めであることが明記されているので、それと辻褄が合うようにすれば最近接偶数丸めなんだろうけど」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の関数を実装してるとLunarMLにさっさと十六進浮動小数点数リテラルを入れたくなるな」 / Twitter
mod_poppoさんはTwitterを使っています 「Luaは浮動小数点数のプリミティブはそんなに充実している方ではないけど、(Lua 5.3以降なら)string.pack/unpackで64ビット整数と浮動小数点数のビット単位の相互変換ができるので最悪それを使えばなんでもできる」 / Twitter
mod_poppoさんはTwitterを使っています 「LuaによるsignBit関数の実装例 https://t.co/J6HHXMufq5」 / Twitter

mod_poppoさんはTwitterを使っています 「SMLのListにfoldriが欲しい」 / Twitter
26.1 ARRAY‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説 4.0.0版 - SML#プロジェクト
26.20 MONO_VECTOR‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説
26.39 VECTOR‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説 4.0.0版 - SML#プロジェクト

zehnpaardさんはTwitterを使っています 「SMLの歴史に関してこういうページがあるの知らなかった… すごい面白いな… https://t.co/vwWSDPbEp9」 / Twitter
Standard ML History
zehnpaardさんはTwitterを使っています 「Milnerの手書きのProposal for Standard MLの草稿とかある!」 / Twitter

OCaml

menhir shift reduce conflict

立派プログラマさんはTwitterを使っています 「shift/reduce conflictはmenhir使うだけで自明なやつは消してくれるからmenhirはすごいよ、他の言語向けにも使いたいよ」 / Twitter
Resolving shift/reduce conflict in Menhir grammar - Learning - OCaml
ocaml - OCamlYaccやMenhirでコンフリクトを消す方法 - スタック・オーバーフロー
manual.pdf
Resolving shift/reduce conflict in Menhir grammar : ocaml
Menhirが便利 - lilyum ensemble
manual.pdf
shift/reduce conflict
Lec11-LR-Parsing - Lec11-LR-Parsing.pdf
Writing a Lexer and Parser using OCamllex and Menhir

Qiita

OCamlでUninhabited typeを書くいくつかの方法 - Qiita
κeenさんはTwitterを使っています 「この命名方法、コンパイラ書いてるときの「関数の名前」という概念どうしようってときに参考になる OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita https://t.co/2NgaAGnvXF」 / Twitter
OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita
κeenさんはTwitterを使っています 「SMLだと関数を束縛するときに複数の文法がある。 fun name … = … val rec name = fn … =&gt; … val name = fn … =&gt; … val name = let … in fn … =&gt; … end このうちどこまでを「名前のあるfn」として扱っていいか迷ってた。」 / Twitter
構造的部分型と有界量化に関する型推論 - Qiita
subtyping.pdf
「構造的部分型と有界量化に関する型推論」について
再帰的多相バリアントそぞろ歩き - Qiita
OCamlでもLensしたい2020 - Qiita
続・OCamlでもLensしたい2020 - Qiita
型付きPPXに関するメモ - toward the typed ppx - Qiita
OCamlオブジェクトの結合を型付きPPXで - Qiita

matsumoto19.pdf
参考になるMenhir製パーサ その1(チュートリアル・サンプル編) - Arantium Maestum
参考になるMenhir製パーサ その2(500行未満編) - Arantium Maestum
参考になるMenhir製パーサ その3(500行以上編) - Arantium Maestum
Keigo ImaiさんはTwitterを使っています 「OCaml PPX calling another ocaml compiler at the compile time 👀 https://t.co/10F56FD4oa」 / Twitter
thierry-martinez/metapp: Meta-preprocessor for OCaml
でこれきさんはTwitterを使っています 「OCamlだと型変数は構文解析レベルで処理しているので ' a のように ' のあとに空白を入れられるのを思い出していた(さらに var' が有効な識別子なので 'var' もquote + 識別子で型変数扱いになるとかも」 / Twitter
でこれきさんはTwitterを使っています 「実装としてはこのへん https://t.co/ubrGBxnBSz https://t.co/B0X6sUhI15」 / Twitter
ocaml/parser.mly at 4.13 · ocaml/ocaml
でこれきさんはTwitterを使っています 「合わせ技で ' a' とか ' a'b とか書くと2文字目がクォートな型変数も書ける(が、過去にpprintastでうまく処理されなかったりもした Fix printing of type variables with a quote on 2nd character by alainfrisch · Pull Request #2130 · ocaml/ocaml https://t.co/A1nWMmR9Zr」 / Twitter
でこれきさんはTwitterを使っています 「文字リテラルは字句解析で処理する https://t.co/ZAEYSdK4QJ」 / Twitter
Keigo ImaiさんはTwitterを使っています 「継承の最も重要な使い所、最近触るのはOCaml構文木のトラバースのデフォルト実装の提供とかで、これHaskellだとderiving Genericsを使った記憶がある。あるいはレンズ使うのがいいのだろうか」 / Twitter
病気の美少女さんはTwitterを使っています 「@keigoi 構文木のトラバースにも色々ありますが、compos とかどうでしょうか。Generics 使うことも出来ます https://t.co/NFp0PVzPsR」 / Twitter
Data.Generics.Compos
Keigo ImaiさんはTwitterを使っています 「@lyrical_logical おお、知らなかったです。論文見たらsybとの比較もあるんですね…」 / Twitter
ラベル – OCaml
OCaml 5、マルチコアサポートを導入へ
🎨・🎓さんはTwitterを使っています 「OCamlでプログラム書くときも大抵型註釈つけるようになってきた,型註釈を書いていた方がとりわけリファクタリング時に型エラーが “連動して変更しないといけない部分を指してくれる” 傾向が高まるため」 / Twitter
ushitora-anqou/aqaml: Yet another tiny tiny self-hosted OCaml compiler with an also tiny standard library.
coord-e/mlml: self-hosted compiler for a subset of OCaml
cannorinさんはTwitterを使っています 「🐫 ts2ocaml is now public! This is a tool which generates #OCaml binding from #TypeScript definition files. It currently supports js_of_ocaml as a target, and ReScript support is also planned. We appreciate any feedback and bug reports. Enjoy! https://t.co/6G8uoXVk9e」 / Twitter
ocsigen/ts2ocaml: Generate OCaml bindings from TypeScript definitions via the TypeScript compiler API
Keigo ImaiさんはTwitterを使っています 「ReScriptはOCaml派生のAltJSの一つなのだが少し書いてると確かなJavaScriptっぽさを感じる。構文がJSのサブセットに寄せてあり、普通のReScript関数が構文的にも実行効率的も非カリー化されており、OCaml由来のレコードやオブジェクトもそのまま JavaScript のオブジェクトにマップされる、あたり」 / Twitter
Keigo ImaiさんはTwitterを使っています 「IDEも割とこなれていて、rescript build -w しておくと勝手に型検査が走って.jsファイルが生成されていくのも良い。JSへの脱出ハッチとして%rawも気軽に使える。OCaml 由来のオブジェクト型をもっと軽量に使えないかと思う (基本的にオブジェクト指向APIはレコード経由なので多相性がない)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「ただOCaml知らない人からの参入ハードルはまだ少しあるような気もする。軽く貢献できればいいけども / 関連: jsoo https://t.co/4DQ3LPn6Sc rescript https://t.co/kx2ohF8E1J」 / Twitter
Jsoo, production use and user facing applications questions - Ecosystem - OCaml
A short history of ReScript (BuckleScript) - Community - OCaml
Keigo ImaiさんはTwitterを使っています 「ReScript は シリアスにJSとのinteroperabilityを考えて作られている(生成されるコードがオリジナルに近く、かつ高速)。一方、Jsoo (js_of_ocaml) は既存の膨大なOCaml資源をブラウザに移行でき、かつ成熟している(生成されるJSコードサイズが小さい)。」 / Twitter
Julien LangeさんはTwitterを使っています 「We (@keigoi, @Neykova, and I) wrote a tool/short-paper to help you write session-typed programs without writing session types, in #OCaml. See https://t.co/N6uBrITXMX and https://t.co/JdvdzxYwB9.」 / Twitter
[2111.12147] kmclib: Automated Inference and Verification of Session Types
keigoi/kmclib
OCamlでLLVM JITを試した - Arantium Maestum

ReasonML

Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.
Reason · Reason を使うと、JavaScript & OCaml の両方のエコシステムを活用しながら、単純、高速かつ高品質な型安全コードを書くことができます。
知らない言語を使ってみたい - ReasonML編 (OCaml な AltJS) - Qiita
ReasonMLを使う理由…ではなく入門 - Qiita
ReasonMLの入門 | QUARTETCOM TECH BLOG
reasonml/reason: Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
OCaml風にJavaScriptを書けるReasonML - JavaScript勉強会
Reason (programming language) - Wikipedia
ReasonML on Exercism

型エラーの動的検査

Shiro KawaiさんはTwitterを使っています 「これがなー。REPL脳では、何かしっくりいかないときに一部だけ再定義してREPLで試すんだけど、その時は試行錯誤段階だから全体を直したくないんですよ。不整合なのは分かってるけどそこは今は使わないからいいよ、って感じで。それさえ許容してくれるならその後全部直すのが楽なのは同意なんだけど https://t.co/vLWOGcmnKB」 / Twitter (1)
うどんさんはTwitterを使っています 「まさにそうですね それに加えて、全体に影響する基本的なデータ型を変更したときとか、修正が必要な箇所が型エラーとして現れるのが嬉しいです 言われるがままに修正していくと、いつのまにか動くようになってる感じ (まぁこれはコンパイラ作成に限定されない利点ですが) OCamlもっと流行れ https://t.co/lEkMUO4msc」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コンパイラとOCamlの相性の良さは謎。というか多分あんまり謎でもなくて、コンパイラはルールをあてはめて言語XをX→X'→X''に変換していく、みたいなことの繰り返しだから、OCamlのパターンマッチとかコンストラクタがうまく動くんだよな。これルールそのままじゃん、みたいなコードになるというか。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「これがなー。REPL脳では、何かしっくりいかないときに一部だけ再定義してREPLで試すんだけど、その時は試行錯誤段階だから全体を直したくないんですよ。不整合なのは分かってるけどそこは今は使わないからいいよ、って感じで。それさえ許容してくれるならその後全部直すのが楽なのは同意なんだけど https://t.co/vLWOGcmnKB」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@TesseracDB @rui314 REPLで高速にサイクル回してる場合、関係ないエラー自体が見えるとそれだけで開発サイクルがつまづいてスローダウンするんですよね。そもそも目的の関数以外の部分は書きかけで構文的にも完結してない、なんて状態で目的関数/メソッドだけon-the-flyでコンパイル・実行したいわけです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@anohana これはコンパイラに型エラーはコンパイル時に全部報告するのではなく実行時エラーになるようにするモードがあるといいと思うんですけど。絶対にそこは今は実行しないのに全部修正するのがめんどくさいとかあるので。」 / Twitter
うどんさんはTwitterを使っています 「@rui314 @anohana 確かにこういう気持ちにはよくなるので、 とりあえず型を無視して欲しいところは、一旦例外を投げるコードに置き換えておいて、型検査を通すということをよくやります。 (例外は任意の型の代わりになるので)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ @anohana それを自動でするコンパイラのモードがあるといいと思うんですよね。型エラーはコンパイルエラーにするのではなくて実行時に例外を投げるコードにコンパイルしてしまうという。」 / Twitter
うどんさんはTwitterを使っています 「@rui314 @anohana 同じ文法の動的型付け言語をつくるみたいなイメージですかね。 Pythonに型をつけていくgradual typingの逆の方向っぽいですね。 特有の難しさはありそうですが、うまいことできたら、確かに便利そうです。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana すごく分かるんだけどそれでも「不整合なのは分かってるけどそこは今は…」がやっぱりそうもいかないんだよなぁと. 同じような事を言ったときに「壊れた状態で何を確認したいんだ?」と言われたのが今も自分の中では強烈に刺さってる.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 システムをボトムレベルから世界までのひとつづきの開かれたものとみなした場合、それは必ずどこかで「壊れている(矛盾がある/整合が取りきれない領域がある)」。型を含めた設計はそこに線を引いてここから下は整合とれてる、とやる。動的脳はその線を開発の粒度に応じて柔軟に動かしたい。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana 確かに型だけで全てが整合することを保証はできない。 値まで含めて考えるとどこか壊れてる。 つまりいじわるをすれば矛盾したりする領域はどっかしらある。 みたいなことかな?」 / Twitter

雑記帳

自作SML処理系進捗:Hello world | 雑記帳
自作SML処理系で 1 + 2 がコンパイルできた | 雑記帳
my-sml-compiler.pdf - Google ドライブ
minoki/DamepoML: A non-working implementation of Standard ML
自作SML処理系進捗:Hello Lua! | 雑記帳
LunarML進捗:signatureの実装に向けて | 雑記帳
Standard ML雑学 | 雑記帳
LunarMLの進捗と妄想 | 雑記帳
LunarMLの進捗・2022年1月 | 雑記帳

LLVM

mod_poppoさんはTwitterを使っています 「SML/NJもバックエンドをLLVMに移行するのか」 / Twitter
mod_poppoさんはTwitterを使っています 「後で読む https://t.co/E1S0paKYpb」 / Twitter
A New Backend for Standard ML of New Jersey | IFL 2020: Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages
mod_poppoさんはTwitterを使っています 「・LLVMに新しい呼び出し規約を追加(LLVMの改変) ・SML/NJはREPL重視なのでLLVMは外部コマンドではなくC++のAPIを叩く形で呼び出す ・やはりというか、LLVMを使うと(既存のMLRISCと比べて)コンパイルが遅くなる。実行時間は特に浮動小数点数を扱うコードなどで改善」 / Twitter
mod_poppoさんはTwitterを使っています 「・LLVMを改変して呼び出し規約を追加したわけだが、LLVMに追従するのは大変そうなのでできれば本体に呼び出し規約を取り込んで欲しい(GHCやHiPE/ErLLVMはそうしている) ・LLVMバックエンドを持つ既存の関数型言語処理系にはGHC, SML#, MLtonなどがある」 / Twitter
mod_poppoさんはTwitterを使っています 「感想:関数型言語でLLVM使うのも楽じゃないね。既存の関数型言語処理系との大きな違いはやはりLLVMのC++ APIを叩いている点か。SMLの中間表現をシリアライズ(?)してC++側で復元、LLVMに渡す、というようなことをやっているらしい。」 / Twitter
自作言語でLLVM JITによるマクロが動くまで

Real World OCaml が出ました - camlspotter’s blog
min-caml を Mac で動かす
Leaving OCaml
OCaml で書かれた Python のサブセット実装 ocaml-minipy のソースを読む - DEV
ニューラル株式会社|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム
mod_poppoさんはTwitterを使っています 「OCamlとStandard MLの比較がまとまってるページを見つけた(どのくらいup-to-dateかはともかく) / Comparing Objective Caml and Standard ML https://t.co/LpsYw1HIPj」 / Twitter
Comparing Objective Caml and Standard ML
mod_poppoさんはTwitterを使っています 「OCamlがラベル付き引数を採用する一方、Standard MLは無名レコードを引数に受け取った」 / Twitter
LunarMLの進捗2021 | 雑記帳

Elm

Elm で作る TaPL のラムダ計算(その1)
なぜElmは0.19のままか、変化すること/しないこと - Runner in the High
モジュールの構造化 · An Introduction to Elm

Idris

Idris

SnocList recursive viewを型駆動開発してみよう in Idris2
κeenさんはTwitterを使っています 「Idrisで型駆動開発でコードを半分くらい自動生成できる様子です。Emacs使ってますが他のエディタでもできます。 https://t.co/3VBQuSaAFb」 / Twitter
κeenさんはTwitterを使っています 「第2段。記事中で触れられてるコードをプログラミングしてる様子を写したよ。Twitterの尺の制約で標準ライブラリの再証明はなしと、一部コピペがある。急にコードが湧いてくるのはIdris処理系による自動生成。 https://t.co/1oQZfGd9R9」 / Twitter

依存型のあるHaskellことIdrisってどんな言語? | κeenのHappy Hacκing Blog
Idrisの基本文法 | κeenのHappy Hacκing Blog
Idrisのインストール | κeenのHappy Hacκing Blog
Idrisの型とデータ型 | κeenのHappy Hacκing Blog
REPLでIdris小旅行 | κeenのHappy Hacκing Blog
Idrisのインタフェースとモナドなどなど | κeenのHappy Hacκing Blog
Idrisと高橋君 | κeenのHappy Hacκing Blog
Idrisのモジュールとプレリュード、標準ライブラリ | κeenのHappy Hacκing Blog
Idris手習い: ビッットマップ画像の書き出し | κeenのHappy Hacκing Blog
Idrisの名前つきパラメータとGADT | κeenのHappy Hacκing Blog
Idrisのパッケージとipkg | κeenのHappy Hacκing Blog
Idrisdocの使い方 | κeenのHappy Hacκing Blog
IdrisのテストとCI | κeenのHappy Hacκing Blog
Idris面白機能:シンタックスシュガーとオーバーロード、あとユーザ定義構文 | κeenのHappy Hacκing Blog
Idris面白機能:with構文と依存型、View | κeenのHappy Hacκing Blog
Idris面白機能:文芸的Idris | κeenのHappy Hacκing Blog
Idrisで依存型を使った定理証明入門 | κeenのHappy Hacκing Blog
Idrisの依存型で高さが100%正しいAVL木を定義する | κeenのHappy Hacκing Blog
IdrisのFFIとCodegen(C、JavaScript) | κeenのHappy Hacκing Blog
IdrisのElaboratorリフレクションでメタプログラミング | κeenのHappy Hacκing Blog
Idrisで正しいモノイドを定義したい | κeenのHappy Hacκing Blog
Idrisの標準ライブラリを解説していくよ | κeenのHappy Hacκing Blog
Idrisといくつかの帰納法 | κeenのHappy Hacκing Blog
☔️leign☔️さんはTwitterを使っています 「これに似たものとして「空でない自然数の集合は最小値を持つ」(つまり自然数の普通の順序は整列順序である)はよく使う。今日も体の標数の定義に使った。」 / Twitter
プログラング言語Idrisに入門させたい(v0.9)
えーりんさんはTwitterを使っています 「Idrisは型も変数みたいなもので、こうやれば命題(Type)に対して名前付けができることが分かった。 だいぶ証明が日本語で読める雰囲気になってきた。 https://t.co/76I1VJ5SoF」 / Twitter
えーりんさんはTwitterを使っています 「命題変数は大文字を使うことで、混乱しないようにすることにした。 カラーリングはむしろ見づらくなったが。。」 / Twitter

Coq・Isabelle

Isabelle ゆるリファレンス - 若くない何かの悩み
効率的な正規表現エンジンを Coq で検証する - fetburner.core
ML のサブセットの型推論器を Coq で検証する - fetburner.core
fetburner/type-infer: A Formal Verification of Algorithm W
let多相を扱える型推論器をCoqで検証する - fetburner.core
型推論の健全性の証明 - fetburner.core
Coqによる型推論器の形式的検証 - fetburner.core
ダイクストラ法の一般化と,その正当性の Coq を用いた検証 - fetburner.core

Julia

Juliaという速くて書きやすい言語をちょっとだけ覗いてみたんだが、なにやらワクワクするものがあったので報告しようと思う - Qiita
dc1394さんはTwitterを使っています 「このQiitaの記事のC++(Eigen使用)のコードを、Juliaに移植してみたら、かなり速くなった。具体的には、 C++(+Eigen): 166.81(秒) Julia: 14.240(秒) で、C++よりJuliaの方が12倍くらい速くなった。Julia優秀すぎる。今後もC++のコードをJuliaに移植していきたい。 https://t.co/SuUxyxGCoL」 / Twitter
水素原子に対するSchrödinger方程式を有限要素法で数値的に解いてみる(C++のソースコード付き) - Qiita
電子計算機の沼さんはTwitterを使っています 「面白がって最適化してみたけど,Julia版のコードが上がってないので比較はできない ただ調べた結果,固有値ソルバが全体時間の99%(それ以外は0.1秒)で,「速い固有値ソルバをコールするコンテスト」なので,言語の話じゃなくてリンクしてる物の違いとかだったんだと思います なので私はもう撤退.」 / Twitter
dc1394さんはTwitterを使っています 「@Hishinuma_t Julia版のコードはGitHubのこちらにあげています。 https://t.co/DVf0gUicD8」 / Twitter
dc1394/hydrogen_fem_julia: FEMで水素原子に対するSchrödinger方程式を解くコードです(Julia版)
nkさんはTwitterを使っています 「実はよくわからない押しつけがましい人がよくわからない主張を繰り返すのでjulia使うのうざくなってきた」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「JET.jl すごいな。 そこそこ大きなコードを書いて人はJET.jlを使って、バグの有無や計算速度の劣化の有無を確認した方が良さそう。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 a = 2:100; a[a.∉(a*a',)] にはJuliaでよく使う基本的な事柄が詰め込まれており、理解する価値が十分にあると思う。 これで100以下の素数全体が得られる。 typeof, supertype, dump の使い方もついでに覚えてしまうと、「夜道で迷うこと」も少なくなるだろう。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 添付画像のコードは別スレで紹介したコード。 函数の引数の型がほとんど書かれておらず、Float64やInt64のような型名をユーザー側は全然入力していない。 函数の引数の型はJuliaにおける高速計算では書く必要がない。続く https://t.co/YoUgE28uOV」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 Julia言語の強みの1つは、他のLisp処理系と同様に、Julia自身がJuliaのコードを生成できることです。 この場合には、実行時に超高速に微分を計算する自動微分よりも、gradientを計算するJuliaのコードをSymbolics.jlに作らせた方が速い。 https://t.co/MOfABB90xy」 / Twitter
public/HMC leapfrog Symbolics.ipynb at main · genkuroki/public
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 別ファイルに Symbolics.jl のシンプルな応用例を追加した。これ↓ https://t.co/BCyYHXzvLE 添付画像 ②自動微分を使用 ③Symbolics.jlを使って数式として微分を計算して、Juliaの函数に変換 計算時間 50 ms ←②自動微分 32 ms ←③Symbolics.jlの応用 Symbolics.jlが速い! https://t.co/wNAihw7HXn」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 しかし、このスレッドの内容を理解すれば裏で複雑な型システムが大活躍していることがわかる。 Juliaの計算が速いのはこの型システムのおかげ。 既存の遅いプログラミング言語をJulia並に速くするためには、Julia並の型システムを導入する必要があり、破壊的な変更が必要になるだろう。」 / Twitter
Juliaの行列・ベクトルを完全に理解すっぞ!!
Embedding Julia · The Julia Language
Julia言語開発におけるCI - Advanced Technology Lab
Shuhei KadowakiさんはTwitterを使っています 「#Julia言語 の新しいバージョン 1.7が出ました。このリリースで型推論と定数伝播をめちゃくちゃ改善したんですが、詳細をリリースノートに書いたのでぜひご覧ください。運が良ければバージョンをあげるだけでプログラムが早くなるかも笑 https://t.co/tmYBn2i4VQ」 / Twitter
Julia 1.7 Highlights
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 3次元のランダムウォークもこんなに簡単。疑似乱数のシード値の指定も入れて、たったの4行。 Juliaが「超高級電卓」と呼ばれるゆえん。 10行程度で相当に色々な結果をプロットして確認できる。 https://t.co/QdwV3v0Wh9」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「そういえばJulia 1.7で疑似乱数を使った計算をする人は注意が必要で、1.7からデフォルトの乱数生成アルゴリズムが変わったので Random.seed! 関数で固定しただけでは乱数が再現しないです。 https://t.co/KF753DVtUV」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「これはJulia 1.6までの乱数生成を再現するにはどうすればいいかという話で、その必要がなければ素直に新しい疑似乱数生成器を使いましょう。軽くて速くなったらしいです。」 / Twitter
Julia REPL stan accountさんはTwitterを使っています 「@bicycle1885 It’s quite tricky! PRNGs in Julia have *never* been guaranteed to generate identical sequences across Julia versions. It’s explicitly left as an implementation detail so that features and optimizations can be added later. For full reproducibility just store a vec of the values.」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「@miguelraz_ You're right. But lazy people (including me) write code that depends on never-guaranteed features that have been preserved by chance. The tweet is intended to be a caution to those who failed to reproduce the previous results on Jupyter Notebook or other similar tools.」 / Twitter
PeterChengさんはTwitterを使っています 「@bicycle1885 Since 1.7 change the default PRNG, you need to change from MersenneTwister to Random.Xoshiro」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「@Cheng_Ching_Wen Yes, but the point of my tweet is to restore the old PRNG behavior after update.」 / Twitter
てらモス♋️さんはTwitterを使っています 「Julia 1.7のマルチスレッドの更新見てて、これC++11やな…ってなったの私だけですか(´・ω・`)」 / Twitter
「Julia 1.7」が公開 | OSDN Magazine
Julia 1.7でスレッド機能が拡張され、型推論が改善
Shuhei KadowakiさんはTwitterを使っています 「ここ半年くらいかけて取り組んでる #Julia言語 プロジェクトが形になってきた。基本的に自分一人の力でデザインも実装も進めなくてならないのでうまく行ってない時はかなりストレス溜まって辛かったけどその分だけ嬉しいね。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「これとか: https://t.co/CDhRutmNc9 これとか: https://t.co/iSdfxqhbAH これ: https://t.co/D2Bk7k4gRi」 / Twitter
optimizer: Julia-level escape analysis by aviatesk · Pull Request #43800 · JuliaLang/julia
optimizer: simple array SROA by aviatesk · Pull Request #43909 · JuliaLang/julia
Miura HidekiさんはTwitterを使っています 「これ凄いな。最速のプログラムを作るプログラミング言語がJuliaになるまである」 / Twitter
Miura HidekiさんはTwitterを使っています 「どのレベルのエスケープ解析なのか。unboxなデータ構造がどの程度簡潔なのかにもよるけど。」 / Twitter
EscapeAnalysis · EscapeAnalysis.jl
Shuhei KadowakiさんはTwitterを使っています 「KenoのこのPRほんとにすごい https://t.co/PnhC42FN2z アイディアの斬新さとかっていうよりは目の付け所が良いというか、出てきたベンチマークの結果を見て、実際にコンパイル時間とランタイムを両方同時に改善できるんだってちょっと感動してる。どうやったらこういうアイディアに辿り着けるんだろう」 / Twitter
Take purity modeling seriously by Keno · Pull Request #43852 · JuliaLang/julia
Shuhei KadowakiさんはTwitterを使っています 「気になる人これ見てみて: https://t.co/RWewtOJLnf コンパイラが賢くなりすぎて結構な数のベンチマークがもはや意味をなしてないっていう笑」 / Twitter
NanosoldierReports/report.md at master · JuliaCI/NanosoldierReports

Yatima

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Rustで実装された純粋関数型プログラミング言語Yatima。すべてのプログラムには固有の「アドレス」が割り当てられ、そのプログラムのアドレスを知っていれば同一の計算環境が再現できるらしい。パッケージ管理はP2Pで行われると書かれている。 https://t.co/kv71tyREfK」 / Twitter
yatima-inc/yatima: A programming language for the decentralized web

Zig

yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang これってstruct文(?)が何らかの値を返すということなんでしょうか? https://t.co/1FQqtq5uNp https://t.co/85uoxrlj9x」 / Twitter
Documentation - The Zig Programming Language
ドッグさんはTwitterを使っています 「@yhara Zig 詳しくないのでアレですが,型情報をコンパイル時の値として扱ってるのかと」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「@Linda_pp あ、comptimeという節を見つけました。zigでは型もfirst-classな値である、ただしコンパイル時にしか使えない、ということなのですね https://t.co/PFqAIzRNEP」 / Twitter
Documentation - The Zig Programming Language
ドッグさんはTwitterを使っています 「@yhara みたいですね.C++ や Rust は型をテンプレート引数で渡しますが,Zig は普通の引数と同じ構文で渡しますし」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang、if-elseのうちの一節だけがコンパイル時計算になったりするらしい。へぇ。 https://t.co/PFqAIzRNEP 青い部分のみコンパイル時に解決される https://t.co/KfEqXNlUZU」 / Twitter
Documentation - The Zig Programming Language

V

開発者から見た V 言語とその(誇大)広告について
Memory Management in Lobster
The V Programming Language
vlang/v: Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. https://vlang.io
Volt | <1 MB desktop client for Slack, Skype, Twitter, Facebook, Gmail and more
vlang/vos
vlang/vbrowser: Upcoming browser written from scratch in V UI
トデス子'\さんはTwitterを使っています 「V言語が参考にしたというLobster言語のGCなしメモリ管理手法について。値型が基本、ヒープに確保されたメモリは静的な生存時間解析で自動管理、必要に応じてRCを挿入。循環参照はプログラム終了時に検出して叱る。 / “Memory Management in Lobster” https://t.co/ZhdfBfCayL」 / Twitter

Nelua

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラミング言語Nelua。文法はLuaに似ているがリアルタイム性を重視している。静的型付けされており、GCはオプション。C経由でネイティブにコンパイルできる。コンパクトで埋め込みも可能。Luaを使ってメタプログラミングもできる。 https://t.co/h3BtvytH0A」 / Twitter
Nelua
ドッグさんはTwitterを使っています 「Nelua プログラミング言語なかなか良さそう.Lua に型アノテーションを足したようなシンプルな構文.静的に型チェックして外部依存の無い C コードにコンパイルされ,最終的に実行バイナリになる.マクロもあってジェネリックなコードも書ける | 'Nelua Programming Language' https://t.co/zZD5UERAYg」 / Twitter
ドッグさんはTwitterを使っています 「この Overview ドキュメントが構文をざっくり知るには良かった https://t.co/dyLJ95E0SP」 / Twitter
Overview - Nelua
ドッグさんはTwitterを使っています 「https://t.co/kVTcWzJXgA せっかくなので GC どうしてるのかなと思って実装眺めたら,自前で実装してた.素朴なマークスイープ GC だな」 / Twitter
nelua-lang/gc.nelua at master · edubart/nelua-lang
ドッグさんはTwitterを使っています 「https://t.co/dmvyTgAIUq あと面白そうなところだと,C++ の Concept みたいな機能がある.型を値として扱ってるのも今風な感じ local an_scalar = #[concept(function(attr) return attr​.type​.is_scalar end)]# local function add(x: an_scalar, y: an_scalar) return x + y end」 / Twitter
Overview - Nelua
ドッグさんはTwitterを使っています 「https://t.co/yIWw1DqqmL any type あるのか」 / Twitter
nelua-lang/types.lua at a4a5222ad9b41aa8f9649b21e0dabac7ebb10fa9 · edubart/nelua-lang
Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp GC が optional ってのが不思議ですね…そんなんで成り立つんだろうか」 / Twitter
ドッグさんはTwitterを使っています 「@hajimehoshi manual memory management と書いてあるので,D みたいに,GC 消したら手動で free() 呼ばないといけないんだと思います」 / Twitter
Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp すると標準ライブラリみたいなのはどう対応するんでしょう?」 / Twitter
ドッグさんはTwitterを使っています 「@hajimehoshi 標準ライブラリの方は見てないので想像ですが,マクロとか使ってメタプログラミングで頑張るとかですかね?(GC が有効かどうかで分岐するとか)しかしそうするとデストラクタが無いとキツい気もしますね」 / Twitter
Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp 両対応しなきゃいけないのはだいぶきつそうですね…」 / Twitter
ドッグさんはTwitterを使っています 「@hajimehoshi あとは手動でもメモリ解放できるようにしておくとかでしょうか.GC 有効にしても free() は呼んで良いと思うので,「GC 無効ならユーザはちゃんと解放用の関数を呼ぶ,GC 有効なら呼んでも呼ばなくても良い」みたいにするとか.ライブラリ内部は不要なメモリは明示的に free() するで良い気がします」 / Twitter
Miura HidekiさんはTwitterを使っています 「Nelua、コンパイラがLuaで書かれていて動的にカスタマイズ出来るとか色々面白そう」 / Twitter
Miura HidekiさんはTwitterを使っています 「なんとGCがNeluaそのもので書かれていますね。Neluaそのもので書かれていることと保守的GCの採用でGCのhousekeepingが少ないことから比較的切り替えはスムーズかと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/ZFsq8Y8fTo」 / Twitter
nelua-lang/lib/allocators at master · edubart/nelua-lang
Shiro KawaiさんはTwitterを使っています 「@miura1729 かっこいいな」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana かっこいいですよね。GCを自己記述出来るのは結構夢ですよね。私が知る限りpypyしか知らない。Lisp系だとあるのかしらん?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 Lispだと古い処理系は自己記述多いと思います。Allegroもそうじゃなかったかな。 Scheme系だとScheme48はそうですね。あと確かTIが作ってたやつ--R3RS時代。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana Allegroだと結構凝ったGCを使っているでしょうから今の時代でも通用する技術なんですね。論文かソースが読みたいけど、無理なんでしょうね」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 GC部分は読んだことないですが、古より伝わってきた部分をチラ見したら結構prog形式とgoでべたべたに書いてあって、性能にシビアなところではLispがまさに高級アセンブラなんだろなと思いました。lapというインラインアセンブラも良く使われてたし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana progかー、なんかわかる気がします」 / Twitter

Vala

ValaによるGNOMEアプリケーションのプログラミング:Programing Bible - ITmedia エンタープライズ
Vala - w_o’s diary
Projects/Vala - GNOME Wiki!

Prolog

証明図

shiryo2.pdf
5_48.pdf
7_416.pdf
IPSJ-MGN240206.pdf
CGI in Prolog<
数学と論理
第11回「導出原理」 - 11.pdf
sp06.pdf
Microsoft PowerPoint - proglang_08_logic.pptx - proglang_08_logic.pdf
247682.pdf
ソフトウェア科学特論: 命題論理の推論体系
978-4-339-02489-0.pdf
論理プログラミング - Wikipedia
カット除去定理 - Wikipedia
不可能性定理:Prologによる2×3のケースの自動証明
journal-84-02.pdf
Vol.33_01_040.pdf
宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
proplogic-system.pdf
IPSJ2019nakanishi.pdf
Prolog
誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita

Prolog 談義

hikaliumさんはTwitterを使っています 「GerritはPresubmit Ruleの定義にPrologを使っているらしい。いい話だ… https://t.co/b4KjvpicJZ」 / Twitter
Gerrit Code Review - Prolog Submit Rules Cookbook
κeenさんはTwitterを使っています 「使い熟してると格好いい言語、HaskellとかVerilogとか色々あるだろうけど自分はPrologを推す。」 / Twitter
κeenさんはTwitterを使っています 「格好いいProlog、例えばこんなのです PyPy Status Blog: Comparing Partial Evaluation and Tracing, Part 1 https://t.co/fLlAJmrbSf」 / Twitter
PyPy Status Blog: Comparing Partial Evaluation and Tracing, Part 1
Miura HidekiさんはTwitterを使っています 「一方、pypyプロジェクトではPrologでJITコンパイラを書こうとした。その後を聞かないのでうまくいかなかったのだろうな https://t.co/7vvSXvmK93」 / Twitter
JIT in Prolog | PyPy
h_sakuraiさんはTwitterを使っています 「@miura1729 動いても遅いでしょうね。 美しいが遅い。 使えないみたいな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai あれも気合を入れて最適化すると速くなると思うけどね。特にJITコンパイラならそんなに激しいバックトラックを起こさないだろうし。命令選択とかであるかもしれないけど、他はカット入れまくれそう」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 Prologは高速化目的で使うのではなくて複雑さの排除で使えばうまくいくと思います。」 / Twitter
EGUCHI OsamuさんはTwitterを使っています 「@miura1729 100歩譲ってAOTならともかく、JITじゃ投資を回収できる気がしませんね。 抽象度の高いところを攻めようとしたのかな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@eguchi3 pypyはインタープリタ部分もJITコンパイラで速くしようとしますからその辺を狙ったのかもしれないですね。ググった限り続報がないので何がまずかったのか分からないです。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 バックトラックなしなコードに変換するとか単一化のコードを無くすとか難しいのでWAMを超える研究はあまりないらしいのですよねぇ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai なるほど」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 スピードも大事ですけど、スピードだけが欲しいなら皆アセンブラかけって話しになるわけです。それでは長くなるので多くのプログラマはスピードを犠牲にして抽象化して短いコードを書くわけですよね。論理プログラミングは最上位の抽象度を誇るものなので遅さを批判しても意味ないんですよ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai 抽象的だからこそより速くなりえると思います」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 いうほどPrologが遅いわけでもないので設定ファイルがごちゃごちゃしてきたところを整理するくらいのことをPrologでやっても問題は起きないって感じではないかと思います。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 動くpypyは素早く理解できます。 バックトラックの巻き戻しは例外の巻き戻しよりめんどくさいですから難しいんですよ。やれるというなら挑戦してほしいです。 型推論してフロー解析が集合論的型システムがーってなってしまいますし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai ごめんなさい、そう言われると出来ませんとしか言いようが無いです。ただ、可能性の話をしているときにそんなこと言うならやってみろって言われるのなら、話は出来ませんよね」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 まぁそうなのですけど、Prologの最適化が難しいから高速な処理ができるようにしたものが関数型言語で単一化はパターンマッチに、述語でのバックトラックはなくすためにガードを導入。と言ったことをしているので本当に難しいのではないかと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai たしかにバックトラックは難しそうです。Schemeの継続もそれでみんな苦労していますものね。スタックGCとかバックトラックで使えないかなとか考えています。ただ、Prologは実はあまり好きではないので気が進まないんですよね」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 普通のプログラマはPrologは知っているけどすきではない。 TAPLは崇めるけどPrologで実装できない。 なのでTAPLをProlog実装してProlog最高ってなってほしいです。マジでw スピード指向だと遅いって思って嫌になるのだと思うわけでそこじゃないんですよ。 抽象能力の高さが重要です。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai Prologが嫌いなのはそう言う理由じゃなくて個人的なものです。学部時代、研究室がPrologを主に使う研究室で何かと言うとPrologとLispを比べられてLispをdisられたからです」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 https://t.co/PKVK5riZPl LispでもAMBという文脈でいい感じに書けてますし喧嘩しても仕方ないと思いますけどねぇ。 Racket Redex最高ですよw」 / Twitter
redex/redex-examples/redex/examples at master · racket/redex
h_sakuraiさんはTwitterを使っています 「@miura1729 言語機能は非決定的に書くと短くかけるのですが遅いので高速化するために関数型言語やC言語などの低レイヤーな言語で書き換える必要出てきます。ですが低レイヤーな言語はそれだけ抽象度が落ちるのでコードサイズが大きくなり全体像を把握できなくなります。というトレードオフの関係があります。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 ですから、速さを優先したらLispの方が速くてPrologは遅くなり、抽象度を優先したらPrologが勝つけどLispは負けるってだけですよね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 でもって、Lispはなんでもできる言語なのでRacket Redex のようにAMBを拡張してProlog以上の中傷度の高い処理もできる。でもこうなってくるとおそらくPrologの処理系の方が最適化されていて速くなる。みたいなトレードオフがあるのではないかと思います。」 / Twitter

bit

zickさんはTwitterを使っています 「bit 1982年06月号『パソコン用Micro Prologの試作』読んだ。BASICで書かれたProlog処理系のコードが丸々載ってる。すべてを文字列として持ち、単一化は2つの文字列が一致するように文字列(の変数の部分)を直接書き換える驚きの作り。」 / Twitter
zickさんはTwitterを使っています 「なんとメモリが足りなくなるとスタックをフロッピーに退避する仮想記憶までついてる。 https://t.co/9IX5yHcgyl」 / Twitter
zickさんはTwitterを使っています 「3要素のソートに約10分という驚きの性能 https://t.co/6VkAjB4d66」 / Twitter
zickさんはTwitterを使っています 「コメントがかわいい https://t.co/xQFJE2CxuL」 / Twitter
たけおか (Shozo Takeoka)さんはTwitterを使っています 「@zick_minoh GCは、BASICの文字列ヒープGCにお任せ!」 / Twitter
zickさんはTwitterを使っています 「bit 1983年08月号『PC-8001からHC-20へのMicro Prologの移植・改良の実際』読んだ。Micro Prologを3倍遅い計算機に移植したけど頑張って3倍速くすることで同じくらいの実行時間にしたという話。元のコードよりコメントが増えててむしろ読みやすいかもしれない。」 / Twitter
zickさんはTwitterを使っています 「3要素のソート、13分45秒。 https://t.co/U1c541ml6d」 / Twitter
zickさんはTwitterを使っています 「一昔前のC++やん https://t.co/rJ4d5v1YmM」 / Twitter
zickさんはTwitterを使っています 「これはオリジナルのコード読んでて気になってた。ちゃんと末尾再帰の最適化(手動)をしてほしい。 https://t.co/Ud6MKtdcWk」 / Twitter
zickさんはTwitterを使っています 「ここ原作リスペクト https://t.co/3lFlBBMLwl」 / Twitter

ロジバンでPrologプログラミングしてみた! - Qiita
Prolog で簡単に言語を作ってみる方法 - Qiita
Prologによる多相レコード計算の実装(2) - Qiita
アフィン型をPrologで実装してみた - Qiita
世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
OCamlでPrologを作っている話 - Qiita
prologで四則演算とJavaScriptの文字列足し算を実装とかを書いてみる。 - Qiita

Erlang・Elixir

Qiita

Elixirで速度を追い求めるときのプログラミングスタイル PartⅡ,Pelemayの近況もあるよ - Qiita
大学でElixirを教えた話 - Qiita
Elixir / Pelemay 研究の背景と意義 - Qiita
ZEAM開発ログ: Elixir マクロ + LLVM で超並列プログラミング処理系を研究開発中 - Qiita
ZEAM開発ログ v.0.2.1 Node.js と同じ原理の軽量コールバックスレッドを Elixir に実装してみた (実装編) - Qiita
Elixirで速度を追い求めるときのプログラミングスタイル - Qiita
なぜ僕の中でElixirが一番であり続けるのか - Qiita
Elixir Wizards Dojo について - Qiita
忙しい研究者のためのテストコードとドキュメントの書き方、Elixir編 - Qiita
Enum.mapと再帰スタイルの比較、ふたたび(末尾再帰版) - Qiita
NervesJP #14 新年LT回 で話したこと (Elixir) - Qiita
Elixr:ラムダ計算インタプリタ(2)ーCatch/Throwの使い方ー - Qiita
[書評] プログラミングElixir第2版のインプレッションとアップデート - Qiita
リアルタイムウェブな観点からElixir / Phoenix について - Qiita
Erlang OTP 24.0.1 と Elixir 1.12.0 を asdf でインストールする - Qiita
WSL2でDB付きElixir/Phoenix/Nxを使う最短手順 - Qiita
NxとNIFの間で相互通信するには - Qiita
Enum関数とパイプライン演算子からなるプログラミング「パラダイム」の起源: シリーズ「Elixirの歴史のインタビュー - Elixirの10周年を祝って」(1) - Qiita
Nerves Livebook(世俗派関数型言語Elixir)で始める関数型プログラミング 〜ラズパイで楽しめるよ、ラズパイ持っていない人はPCで楽しめるよ(あ、Nervesはとれますけどね)〜 - Qiita

Erlangのとても困ったところ:単一代入の思わぬ弊害 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Elixir で non-programmer 向けに DSL を作り提供する - c4se記:さっちゃんですよ☆
数学全然分からないけどElixirでFunctorを作ってみる - やわらかテック
【感想・まとめ】「関数型プログラミングなんもわからん。を考えよう」に参加してきました。 - やわらかテック
ElixirでListMonadを作ってみる - やわらかテック
数学全然わからないけどElixirでFunctorを作ってみる - やわらかテック
数学全然わからないけどElixirでMonadを作ってみる - やわらかテック
関数型言語ElixirのIoTシステム開発への展開
産業用途に利用するのにElixirが向いているぞ
mod_poppoさんはTwitterを使っています 「ビットフィールドに対するパターンマッチ、そういうのもあるのか #func_party」 / Twitter
Rubyのenum系高階関数を elixirでも使いたい
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu 例外処理に関して,ElixirやErlangの考え方はいかがですか? try catchはあるのはあるのですが,基本的にはそれを例外処理として用いるのではなく,例外が起きたらプロセスごと異常終了してもらって,異常終了を外部から監視して適切な後処理をしつつ再起動することで次の処理を受け付ける思想です。」 / Twitter
艮 鮟鱇さんはTwitterを使っています 「The Many-to-One Parallel Signal Sending Optimization https://t.co/n1ia5TUAJB ErlangのN-to-1のsignal送信がむちゃくちゃ速くなった話。仕組みとしては、signalを送るときに送信先のキューにsignalを突っ込む必要があるが、そのときにロックをとるのをやめて、pidをハッシュ関数に放り込んで得た」 / Twitter
The Many-to-One Parallel Signal Sending Optimization - Erlang/OTP
艮 鮟鱇さんはTwitterを使っています 「添字でアクセスできるslotsを用意して、そこに代わりにデータを放り込んでおく。同じプロセスは同じslotに割り当てられるので、Erlangが保証する「同じプロセスから送られたsignalは送られた順に届く」を満たしたまま、ロックの回数を減らすことができる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/itOG2yUkRA おもしろいなー。プロセスid -&gt; slotのハッシュ関数が衝突したらどうするんだろう?って思ったけど別に衝突してもよかった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「ロックを見張っていて衝突が多かったら別戦略を取るって話は面白いな。たしかjemallocでもやっていた」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 ロックフリーにするのかと思ったけどスロットごとにロックはするんですね。分散されるので衝突が減るってだけでこんなに性能が上がるのか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana たぶん、そこらじゅうから一斉にメッセージを投げまくるようなプログラムでしょうけど、なかなかインパクトがありますね。」 / Twitter
数学全然わからないけどElixirでEitherを作ってみる - やわらかテック
【Elixirで実装】関数型言語でカプセル化をする方法 - やわらかテック

Egison

プログラミング言語Egisonの型システムを設計するインターンをした - a_kawashiroのブログ
Haskellライクな構文をEgisonに実装している話 - momologue

Lisp

AMB 計算

非決定的計算オペレータ amb の並列化
計算機プログラムの構造と解釈 第二版
「プログラミング言語」 SICP 第4章 ~超言語的抽象~ その7 - chap4-7.pdf
SICP 読書ノート#59 - 4.3 非決定性計算 - call/ccによるambオペレータの実装 (pp.245) - @uents blog
amb.scm
Pythonで非決定性計算は可能か? - Retro-gaming and so on
AndrewTruett/Boolean-Satisfiability-Solver: A non-deterministic approach to solving the Boolean Satisfiability Problem.
ブール充足可能性問題を解決するための非決定論的アプローチ。 - wenyanet
Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD
hiroshi-manabe/sicp-pdf: SICP PDF with Texinfo and LaTeX source

3-Lisp

Miura HidekiさんはTwitterを使っています 「これってまさにBrian Smith氏の3Lispの話な気がする。3Lispではこの問題を環境と継続が渡ってくるメタレベルの関数で解決していたと思う」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「以前 @kinaba さんにネタ振りされた、letが関数であるプログラミング言語の仕様をちょいと真面目に考えるスレ。 前提として、letのformはlet &lt;name&gt; = &lt;exp1&gt; in &lt;exp2&gt;とする。ふつーの言語でlet関数が作れないのはまあlet(f,1,f+1) とかしたとして、fが定義されるのまあ無理だよねってとこで妥当 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「マクロなら書けるんだけど、それは関数じゃないから却下として、呼び出し時点で"f"という木の「葉」が渡されればまず良さそうなんだけど、呼び出され側の扱いが問題ぽい。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「def let(name: &lt;string&gt;, init: &lt;exp&gt;, body: &lt;exp&gt;) { } とかければなんかやれそうだけど、木の操作どうすんねんってとこが。&lt;exp&gt;をeval出来る関数用意すれば簡単だけど、それはなんか逃げっぽい。しかし、木を操作するプリミティブ色々用意するともうインタプリタから書いてる気もする。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「なんかやりようはあるんだけど、eval用意するのは反則技ぽいのが悩み。evalを構成する部品がファーストクラスで使えて、それ使って評価実現するとかなら面白い?(いったん終わり)」 / Twitter

Stalin 等

#:g1: stalinの紹介
Stalin (Scheme implementation) - Wikipedia
トランスコンパイラ - Wikipedia
Source-to-source compiler - Wikipedia
barak/stalin: stalin brutally optimizing Scheme compiler, with Debianization patches
Marc Feeley教授によるGambit Schemeの実装 - karasuyamatenguの日記
doc4-1.pdf
機械語以外で、パフォーマンスの高い最も速いプログラミング言語は何ですか? - Quora
大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係:プログラミング言語の進化を追え(1/2 ページ) - ITmedia エンタープライズ
大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) - ITmedia エンタープライズ

blog

LispKit Lisp処理系の実装 序 - Arantium Maestum
LispKit Lisp処理系の実装 1:パーサ - Arantium Maestum
LispKit Lisp処理系の実装 2:インタプリタ〜変数から算術演算子まで - Arantium Maestum
LispKit Lisp処理系の実装 3:インタプリタ〜条件分岐から関数適用まで - Arantium Maestum
LispKit Lisp処理系の実装 4:SECD抽象機械のメモリとレジスタ - Arantium Maestum
LispKit Lisp処理系の実装 5:SECD抽象機械の状態遷移〜リスト操作と比較・算術演算 - Arantium Maestum
LispKit Lisp処理系の実装 6:SECD抽象機械の状態遷移〜条件分岐、関数関連など - Arantium Maestum
Island Life - 無限cxr
GC撲滅への道 - GC Advent Calendar - miura1729の日記
自作言語tanaka-lispの進捗報告 - 技術の記録 - Ibotenic
#:g1: Metaobject Protocol及び関連技術についての個人的まとめ

Qiita

Lisp系自作言語のx86_64コンパイラを作り始めたときの話 - Qiita
不変性を仮定した、環境をキャプチャしないクロージャ生成アルゴリズムとその問題 - Qiita
[AAAI16実況報告] MIT/CSAIL はCommon Lispを水中探査ロボットAIに実運用している - Qiita
elispのシェバング - Qiita
JSONでLISPの超循環評価器を定義してみた - Qiita

Twitter

sumimさんはTwitterを使っています 「そう言われてみれば、たしかに歴代Smalltalk(というかXerox Alto)でも今の「_」にあたる文字のグリフは「←」だった^^; 「Lispのシンボルにアンダーバーが使われない理由を探る」https://t.co/hFJlBSo8Ef」 / Twitter
#:g1: Lispのシンボルにアンダーバーが使われない理由を探る
zickさんはTwitterを使っています 「Lispのことを関数型言語と言うと、必要以上に色々な人達(Lispは手続き型と信じて疑わない人、LispとSchemeは違う言語と主張する人、なんでもLispとひとくくりにするなと言う人、型付き関数型言語原理主義者、プログラミング言語オタク)に怒られるので注意した方がいいです。」 / Twitter
ANDO YasushiさんはTwitterを使っています 「SchemeをWASMにコンパイル https://t.co/eKVExOfvK2」 / Twitter
22-S.pdf
Nobuhiko FUNATOさんはTwitterを使っています 「これもたぶんあまり知られてないけど、cmucl compiler由来のsbcl(Steele Bank Common Lisp)、untypedな筈が、型推論が結構優秀で、しょっちゅうdead code eliminationしたぞとか怒られます。(もちろん言語仕様上ML族の様に完全性は追求できないが) ちなみにREPLからの入力もnative compileされます。」 / Twitter
Miura HidekiさんはTwitterを使っています 「call/ccをどうやるんだろう?って思ったらまさにそう言う論文だった。やっぱりCPS変換+ヒープに環境をとる か。WebAssemblyはいろいろ制限があるようだ。」 / Twitter
t-sin🥳さんはTwitterを使っています 「そうか。Open Implementationな感じのevalって、eval関数が再帰的に式を辿って評価してくんじゃなくて、式自身(?)のevalメソッドを呼ぶイメージか。」 / Twitter
t-sin🥳さんはTwitterを使っています 「式自身つまりリストのevalメソッドを呼ぶと、それはおそらくcar部のシンボルのfuncall的なメソッドをcdr部を引数として呼び、みたいな? そしてMOPのほうがぼくにとって未知なので、MOPによりどうなるかはまだ未知。」 / Twitter
LISPの基本データ構造(コンスセル,連結リスト,連想リスト,属性リスト)
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「#Clojure の連結リストは配列構造じゃないよ,という御指摘を踏まえて大幅改訂.しかしその結果Clojureが消えてなくなったという.比較対象としては #Python の方がわかりやすいんだもん…. 連結リストのみのLISP処理系実装について考察した|TAKIZAWA Yozo https://t.co/U6dYaLU9n8 #zenn」 / Twitter
Schemeでdefineを使わずに超循環評価器を実装してみた
連結リストのみのLISP処理系実装について考察した
Shiro KawaiさんはTwitterを使っています 「@ytaki0801 メモリが希少だった時代には、連続してアロケートされるペアを配列にパックする(CDR coding)Lisp処理系もあったと聞きます(使ったことはないです)。パッキング/アンパッキングは暗黙に行われるのでユーザからは見えません。アクセスローカリティが性能に重要になった現代で見直す価値はあるかも?」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「@anohana 情報ありがとうございます.確かにそうかもしれませんね.ただ,今はLISPも普通にベクタとかありますし,コンスセルを無理に効率化しなくてもLISPコード操作だけなら別にいいかな,などとも思ったりはします(^^;).効率化することでコンスセル一辺倒(?)に戻るのもアリかもしれませんが….」 / Twitter
シェルスクリプトでLISP処理系を作ってみた
眼力 玉壱號さんはTwitterを使っています 「で、だったら何で第一引数を特別扱いするのか?の果てに #CLOS が居る」 / Twitter
mattnさんはTwitterを使っています 「@dankogai 呼び出しが冗長になってメンバに持つ意味が無くなりませんか? foo-&gt;do_something(foo, 1, 2, 3); であれば最初から do_something(foo, 1, 2, 3); でいいので。」 / Twitter
Miura HidekiさんはTwitterを使っています 「CLOS、なんでこの継承ポリシーを特別視するのか、みたいな感じで大体カスタマイズできるから強い」 / Twitter
κeenさんはTwitterを使っています 「syntax-rulesは表現力が高いまま、簡単なケースを簡単に書けて、衛生性を担保しているという面では便利。 #func_party」 / Twitter
cisco/ChezScheme: Chez Scheme
Shiro KawaiさんはTwitterを使っています 「古くはただのパーザからevalを呼べるようにしちゃったLispに始まり、「ここでほんの一手間かけとけば後で楽できそう」という誘惑に負けちゃうのはプログラマの宿痾かもしれない」 / Twitter
Rui UeyamaさんはTwitterを使っています 「特にエンタープライズJavaで見られるこういう過剰な柔軟性は、バイナリの更新は大ごとだけどXMLの設定ファイル(実際は半分コードみたいなやつ)の変更ならなぜか簡単みたいな運用の歪みの結果ということがよくあって、そういうのはやめて、実現したい機能は素直にそのままコードとして書きなよ、と。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「MBRブートセクタに収まる、わずか436バイトのLISPインタプリタ SectorLISP。しかもGCつき。これでLISPは491バイトのFORTHを抜き「世界最小のプログラミング言語」になった。ちなみにBrainfuckは99バイトで実装可能だがこれはまともな言語に数えないことにする。 https://t.co/WxHozKnviV」 / Twitter
LISP with GC in 436 bytes
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Game of Life上で実装されたLispインタプリタ。まずCで書かれたインタプリタを仮想マシン上のコードに変換する。この仮想マシンはVarLifeと呼ばれるセルオートマトンで動作するので、これをさらにLife用に変換する。入出力はASCIIコードでRAMモジュール上に表示される。 https://t.co/Tc320fm5vO」 / Twitter
woodrush/lisp-in-life: A Lisp interpreter implemented in Conway's Game of Life
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: Game of Life上でテトリスを実装する (Quest For Tetrisプロジェクト)。上で紹介した仮想マシンのアーキテクチャや各種部品、およびVarLifeの概念はここで発明された。 https://t.co/yiTBU7BRjD」 / Twitter
code challenge - Build a working game of Tetris in Conway's Game of Life - Code Golf Stack Exchange

adams86orbit.pdf
Medley Interlisp Common Lisp
Clojure - Learn Clojure - Functions
いかにもLispらしいマクロを書いたので解説。
おもしろマクロ with-c-syntax の最近の進捗 - Google スライド
[Home] Emacs Scripts
でこれきさんはTwitterを使っています 「Lispっぽくて三角括弧がちというとMDLを思い出すところではある #:g1: レトロLisp探検: MDL https://t.co/SHmKdyG3jA」 / Twitter
#:g1: レトロLisp探検: MDL
Shiro KawaiさんはTwitterを使っています 「前から思ってた疑問。lsの出力とかでマルチカラムにする時、column-majorでソートされるけど、1画面をはみ出すくらい縦に長くなるとスクロール行ったり来たりで探すのが面倒じゃない? row-majorの方が探しやすいと思うんだけど、なんでそうしなかったんだろう。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「出版物の慣習を引き継いだのかなって気はするけど。出版物はページで区切れるので行ったり来たりは発生しない。 あれ今からでもrow majorにしたらみんな混乱するかなあ。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「(REPLでの補完候補の表示方法を考えている)」 / Twitter
Shiro KawaiさんはTwitterを使っています 「探す単語が確実に分かってる場合はcolumn-majorだと一行目を横に見ればどのカラムに目的の語があるかわかるわけだけど、何となくしか分かってない場合、ありそうな箇所をいくつかスキャンしたい。その時に下まで行ってまた上に戻るのが大変、ってことね。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Grammarlyの文法検査エンジンは SBCLで書かれているらしい。 https://t.co/Wta8B1Dm1A」 / Twitter
Running Lisp in Production | Grammarly Engineering Blog
Racket - Wikipedia
Shiro KawaiさんはTwitterを使っています 「@miura1729 @nasunasunasu10 伝統的にはLisp系言語はLisp自身でGCまで書くのが主流で、CでLispを実装する流れの方が新しいですね。 もちろん、GCを書く時はGCをトリガしないように書きます。」 / Twitter

Smalltalk

Bytecode

Bytecode

zakkiさんはTwitterを使っています 「Smalltalk-76論文はHTMLに打ち直された奴が昔は公開されてたっぽい https://t.co/pZ9Mfdl7MS」 / Twitter
Smalltalk-76 Programming System
Miura HidekiさんはTwitterを使っています 「@k_matsuzaki 論文見たらbyte codeの意味でmicro codeって言っていますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「byte codeと最初に言ったの誰問題、がぜん面白くなってきた Smalltalk76は違うっぽい」 / Twitter

zakkiさんはTwitterを使っています 「ACMで検索出来た範囲だと、1978のAPL https://t.co/Vvx96YLDLf 1978のLisp REDUCE/1700 https://t.co/3z5gNXQRM8 が最古っぽい」 / Twitter
Compilation and delayed evaluation in APL | Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
REDUCE/1700 | Proceedings of the 11th annual workshop on Microprogramming
zakkiさんはTwitterを使っています 「それ以前にも"byte code"を含むのはあるけど、1バイトのコードとか2バイトのコードとかいう用法っぽい。全部は読んで無いけど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@k_matsuzaki Smalltalkは80年に公開するまで論文すら公開されなかったんでしょうかね?」 / Twitter
zakkiさんはTwitterを使っています 「@miura1729 Xeroxの人のSmalltalk関連で絞ると、78年のSmalltalk-76のには出てこなくて80年のTinyTalkの論文には出てくるのでそのあたりで名前が付いたんじゃないかなぁと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@k_matsuzaki なるほど」 / Twitter
Miura HidekiさんはTwitterを使っています 「面白そうだったので、調べてみました。Wikipediaのバイトコードの欄にあるバイトコードの例で古そうなものの年代を比べると言う方法です この中で古そうなのはST(1969年ごろ)、BCPL(1967年ごろ)、Algol68C (https://t.co/1UlVqQFO1T)あたりのようです。」 / Twitter
ALGOL 68C - Wikipedia
Miura HidekiさんはTwitterを使っています 「バイトコードと言う名前が使われていたかは論文を読めばよさそうですが、さすがに無理かなと思います。このころの論文は入手にお金がかかりそうだし、画像でしょうからgrepも出来ませんし」 / Twitter
Miura HidekiさんはTwitterを使っています 「Wikipediaのバイトコードの欄はこれです https://t.co/0M342Iu5bm」 / Twitter
Bytecode - Wikipedia
おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ST以前に「バイトコード」って言葉あったんだろうか? この前の「1バイトが8ビット」みたいなのが程々落ちついて以後だと考えたら、「ST以前」にはなさそう。」 / Twitter
_ko1さんはTwitterを使っています 「バイトコード言い出したのはSmalltalkなんかなあ(何も知らない」 / Twitter
_ko1さんはTwitterを使っています 「acm dl でちょっと見た(bytecode で検索)けど 1980 年に Smalltalk 処理系の文脈で言及があった。78年のも、多分同じような言及だったと思う。で、その辺で Smalltalk (とその応用)が研究者に広まってたって感じだろうか。"byte code" だとデータ型の話がヒット。」 / Twitter
_ko1さんはTwitterを使っています 「bytecode の出典はわからんかったなあ」 / Twitter
Toshio HirotsuさんはTwitterを使っています 「@_ko1 多分、Smalltalk-80 の Bluebook とかに出てくるはず…と思って探した These methods are translated by a compiler into sequences of eight-bit instructions called bytecodes. っていう説明があるから、最初かどうかまでは分からないけど、この程度の説明が必要な特殊な用語だった感じはある。」 / Twitter
_ko1さんはTwitterを使っています 「@t_hrt はい。青本は 83年みたいで、80年の論文 (https://t.co/UKsF9hiNqC) にも出てきて、そのころには界隈で通じた用語なんだろうなぁと思います。」 / Twitter
sumimさんはTwitterを使っています 「@_ko1 @t_hrt 実装の歴史については青本より緑本(Smalltalk-80: Bits of History, Words of Advice)の方が良さそうです。https://t.co/pPHGFaRFmT 同書によれば、-80の前身の-76での工夫の一つとして“A compact and efficient byte-encoded instruction set”の考案があったとされています。 https://t.co/vro5n1qJj8」 / Twitter
Amazon | Smalltalk-80: Bits of History, Words of Advice | Krasner, Glen | Education & Reference
sumimさんはTwitterを使っています 「@_ko1 @t_hrt ただ、件のTinyTalkの論文から“the byte-code interpreter”と参照されている The Smalltalk-76 Programming System - Design and Implementation https://t.co/2MXUhJXzdC の該当記述には「bytecode」や「byte-encoded instruction」といった表現は見あたらず、ただ「code syllable」と書かれています https://t.co/FH3fGdu28Z」 / Twitter
The Smalltalk-76 programming system design and implementation | Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
TinyTalk, a subset of Smalltalk-76 for 64KB microcomputers | Proceedings of the 3rd ACM SIGSMALL symposium and the first SIGPC symposium on Small systems
_ko1さんはTwitterを使っています 「@sumim @t_hrt 内輪用語だったんすかねー」 / Twitter
https://twitter.com/sumim/status/1489656119219740676
Smalltalk_Kernel_Language_Manual_Sep77.pdf
19790306_NoteTaker_Smalltalk_Conventions.pdf
sumimさんはTwitterを使っています 「@_ko1 @t_hrt 1バイトに収まるコンパクトな命令セットなので「compact code syllable」と言っていたのがいつしか「bytecode」と言い習わされ、定着したのかもしれませんね。」 / Twitter
_ko1さんはTwitterを使っています 「@sumim @t_hrt はい、そういう推測です」 / Twitter

histric-1

hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
TruffleSqueak
TruffleSqueak: Polyglot Programming with Squeak/Smalltalk and GraalVM | Hacker News
sumimさんはTwitterを使っています 「メッセージングのオブジェクト指向過激派のSmalltalk-72は、クラスやメソッドの定義は言うに及ばず、ALGOLを模したforループやif-then-else構文のように見える式、果ては変数への代入に至るまで、全てメッセージ式だ が…プリミティブな条件分岐式「⇒()」だけは制御構造なのは内緒だ(駄目じゃん!) https://t.co/mZTqARgGnE」 / Twitter
sumimさんはTwitterを使っています 「ちなみに、この-72の孫にあたる-80以降の現在に至るSmalltalkでは、このプリミティブな条件分岐構文は廃止され、よく知られているように、条件分岐やループは真偽値やブロックへのメッセージ送信として(少なくとも文法上は)表現されていますが、代入まではメッセージにはなっていません。」 / Twitter
sumimさんはTwitterを使っています 「代入操作については、分家(?)ですが曾孫の代にあたるSELF(Smalltalk-84と呼ぶ人もいます)が、「←」や「:=」などのそれっぽい記号こそ使いませんが実質代入に相当する操作を再びメッセージとして実装しています。」 / Twitter
sumimさんはTwitterを使っています 「一方、-72の子の-76(とその兄弟の-78 https://t.co/jmlwDNSF1Y )では、省コスト版機構のためメッセージングの徹底度低下は余儀なくも、Ruby同様のレシーバーの省略を許すルール(ただし省略時レシーバーは固定)と特殊形式のメソッド呼び出しでforループを表現するなど興味深い試みがなされています」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim ちなみに-80の子孫のPharoでは、変数モデル(slot)を使って特定の変数への代入文をメッセージ送信で実行することもできます。」 / Twitter
アラン・ケイとMVC|tenjuu99|note
Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「久しぶりの #st_study 楽しかった。ただし、truffle squeak、おまえ、オレが温めていた研究ネタの多くを解決しやがって。orz」 / Twitter
Miura HidekiさんはTwitterを使っています 「truffle何とか、言語実装者の努力をことごとく踏みにじった感がある」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 今後の言語実装技術を考える上で、いろんなバランス軸を書き替えてしまった感があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 研究の世界はカオスがふさわしいと思います (部外者が過ぎた物言いだとは思います。すみません」 / Twitter
TruffleSqueakの紹介 - Google スライド
Miura HidekiさんはTwitterを使っています 「Smalltalkだといろいろ出来そう。あと、テキストウィンドウに関数名を書いておくとそれがボタンになってクリックすると起動するOberonとか。」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「そういえばプログラムに唯一のエントリポイント(main関数)があるのって割とよくある構造だけど、エントリポイントが一つである必然性って無い気がする。プログラムの起動のされ方によってエントリポイントが切り替わってもいいんじゃない?BTRONのアプリってそんな感じだっけ?」 / Twitter
asfdrweさんはTwitterを使っています 「@uchan_nos Androidがそんな仕組みじゃないでしょうか。 1つのプログラムに複数のActivityやServiceを持たせることができて、メインActivityに限らずどのActivityやServiceでも対応するIntentにより実行開始できる仕組みです。」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@asfdrwe1 なるほど、近いかもしれません」 / Twitter
Squeak/Pharo Smalltalk に備わる APL/J ライクな配列演算機能 - Qiita
TruffleSqueakのnative imageをビルドする - Google スライド
自由自在 Squeakプログラミング PDF版
ScratchとSqueakはどのように関連していますか? - Quora
yhara (Yutaka HARA)さんはTwitterを使っています 「えっ、Smalltalkってこんなことできるの https://t.co/3G3cNnRkMm」 / Twitter
rubygems_newsさんはTwitterを使っています 「methodfinder (2.2.3): A Smalltalk-like Method Finder for Ruby with some extra features https://t.co/4q3BrVyVsL」 / Twitter
methodfinder | RubyGems.org | コミュニティのGemホスティングサービス
h_sakuraiさんはTwitterを使っています 「純粋なオブジェクト指向ではプリミティブ型のようなものが存在しないので美しい。全てはオブジェクトであり例外はないw」 / Twitter
sumimさんはTwitterを使っています 「(ほぼ^^;)純粋なメッセージング・オブジェクト指向言語のSmalltalk-72では、代入やメンバー関数(のちのメソッド)のコールみたいなものが存在しないのでシンプルで美しい。それっぽいものも全てはオブジェクトへのメッセージングでシミュレートされており例外は(ほぼ^^;)ないw https://t.co/VPORwmhsAv」 / Twitter
Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita

histric-2

Masashi UMEZAWAさんはTwitterを使っています 「Squeak 5.3用の日本語環境インストーラ(beta)が一応できました。 sarをダウンロードして、Squeak 5.3にD&amp;Dするとインストールできます。 https://t.co/Zbdtmu6tPL まだベータ扱いなので、気づいた点などあればお知らせください。 #st_study #squeak https://t.co/ZhZAFYibdD」 / Twitter
squeak-ja/InstallJa20211113.sar at master · mumez/squeak-ja
Hacker News記事題日本語翻訳さんはTwitterを使っています 「商用Smalltalkの興亡 https://t.co/l2pvaQ7PUF」 / Twitter
The Rise and Fall of Commercial Smalltalk
sumimさんはTwitterを使っています 「当時のまま、バグレベルまで再現されたこちらも是非! https://t.co/N82rFLf3Hb」 / Twitter
ThingLab
sumimさんはTwitterを使っています 「1978年に撮影された ThingLab のデモの様子です。ドキュメントを読むだけでは分かりにくい、実際の操作の仕方を学ぶことができます。 https://t.co/zQV7YUBmMX」 / Twitter
videosrv14.cs.washington.edu/info/videos/mp4/general/ThingLab_Alan_Borning.mp4
Torsten BergmannさんはTwitterを使っています 「Looks like I have not seen any announcement last year on this one - nontheless interesting: an event-based socket reconnection layer for @pharoproject smalltalk with features such as auto reconnection to a server or auto switching to alternative servers. https://t.co/EKaCGpCdRG」 / Twitter
mumez/Stick: An event-based socket reconnection layer for Pharo smalltalk
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「Smalltalkとスプレッドシートの関りは古く、米国防総省向けに作られたAnalystから抜き出したSmalltalk Spreadsheetがありました。そのアイデアから派生したものに富士ゼロックスのV-Cells(Object Bits)やFXISのGrapherGearなどがありました。 https://t.co/YlYSpBR9AN」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「制約指向プログラミングという意味では、何と言ってもThingLabですね。 https://t.co/BdxTgF3Wv7 https://t.co/nJk7LXvptQ」 / Twitter
esug.org/data/HistoricalDocuments/ThingLab/ThingLab-index.html
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「自然はすでにそこにある(計算されている)のに、なんでわざわざ計算しないといけないのかと思っていたことがありました。」 / Twitter
The Self Handbook — Self Handbook for Self 2017.1 documentation
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
Webアプリの進化に追随するGoogle Chrome:興味深い技術的側面(4/6 ページ) - ITmedia エンタープライズ
動的性が Ruby の遅さの原因? - Smalltalkのtは小文字です
ANDO YasushiさんはTwitterを使っています 「chrome://credits 見てたらStrongtalk(Smalltalk)が入ってるのに気付いたんだけど、どこで使われてるの??」 / Twitter
sumimさんはTwitterを使っています 「@technohippy V8エンジンの非常な高速化は、今世紀に入ってSunがオープンソース化したことで自由に使えるようになったStrongtalkのVM(Animorphic VM)技術を転用し、そのオリジナル開発メンバーらの手により成し遂げられてました。JavaのHotSpot VMと時を隔てた兄弟みたいなものですね!→https://t.co/c665uiw1Ll」 / Twitter
The Hitchhiker's Guide to ...: Google Chrome, JavaScript and Smalltalk
sumimさんはTwitterを使っています 「@technohippy 誤解されがちなので念のため、Strongtalkのもう一つの特徴の「(オプショナルな)型チェック機構」と、件のVMの高速化技術(実行時の型情報を活用した最適化の仕組み)は互いに独立した技術です。」 / Twitter
V8 (JavaScriptエンジン) - Wikipedia
Smalltalk - Wikipedia
🚙 🛢️ 🖖🏽 スティーブエッグ:動的言語の復活 🧑 🚳 🈵

Alto、Star、Smalltalk、Lisa、Mac、Win の関係をはっきりさせよう
Alto - Wikipedia
Xerox Alto Restoration Part 17 - Xerox Alto Demo - YouTube
#:g1: アクターモデルとPLASMAとSmalltalk-72の関係を雑に探る
sumimさんはTwitterを使っています 「Smalltalk-72(メッセージによる計算)→Actor→Schemeは地続き→“Schemeの学習教材などに、なんでもλというプリミティブに還元してみせるという例が良く出てくるのですが、なんでもアクターというプリミティブで表現するという路線を継承したのかなと思わなくもありません。” https://t.co/1fX78VdHxF https://t.co/En0QiZ2P28」 / Twitter
#:g1: アクターモデルとPLASMAとSmalltalk-72の関係を雑に探る
sumimさんはTwitterを使っています 「Smalltalk-72と、https://t.co/5WpSdjjeCV など今のSmalltalkを含む -76以降とは、同じ「Smalltalk」ですが仕組みとしてはまったくの別言語なので、特にアクターへの影響を探る際には要注意です^^; Smalltalk-72はこちらのサイト等で、ほぼ当時のままの処理系を体験できます→https://t.co/KtUwwk6rYj」 / Twitter
Pharo - Welcome to Pharo!
HOPL-St72
Go FujitaさんはTwitterを使っています 「動きつづけているものをカタチにするという点で、少なくともアウトライナーと Smalltalk は似た機能をもっているように思う」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「せんせーい、ポインタで共有された領域を指すポインタのほうを全て一斉に書き換えることこそが真に楽しいプログラムを書くことの秘訣って考えてる人は何を使えばいいですか? 答え:Smalltalk」 / Twitter
sumimさんはTwitterを使っています 「Squeak の Git Browser の使い方、だいたい分かった。https://t.co/Gv0RaTB1dj」 / Twitter
hpi-swa/Squot: Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
Smalltalkプログラミングの情報源 | Smalltalk from Scratch
アラン・ケイ
sumimさんはTwitterを使っています 「そう言われてみれば、たしかに歴代Smalltalk(というかXerox Alto)でも今の「_」にあたる文字のグリフは「←」だった^^; 「Lispのシンボルにアンダーバーが使われない理由を探る」https://t.co/hFJlBSo8Ef」 / Twitter
#:g1: Lispのシンボルにアンダーバーが使われない理由を探る
オブジェクト指向が分からなくなったので、Smalltalk(Pharo)に入門してみた - Qiita

Self

The Self Handbook — Self Handbook for Self 2017.1 documentation
Self - Wikipedia
Self (programming language) - Wikipedia

Forth

並列処理対応 Forth 系言語 Paraphrase の 2020 年の開発状況 - Qiita
並列処理対応 Forth 系言語 Paraphrase を作る際に考えたよしなしごと - Qiita
Paraphrase の開発状況 2021 - Qiita
機械語手書きから言語処理系をブートストラップする - Qiita
Factor - Wikipedia
κeenさんはTwitterを使っています 「最近forth勉強してる途中なんだけど、forthの拡張性やばい。なんでも自己書き換えできてしまえるし、ヤバいプリミティブ用意して自己書き換えで拡張して最後にヤバいプリミティブをundefineして綺麗にするのもヤバい」 / Twitter
κeenさんはTwitterを使っています 「昔投稿されたForthのセルフホストコンパイラはこちら 一日でできるセルフホスティングForthコンパイラ - Qiita https://t.co/2GpSiqYVvx」 / Twitter
一日でできるセルフホスティングForthコンパイラ - Qiita
t-sin🥳さんはTwitterを使っています 「@blackenedgold ヤバいですよね…。魔法みたいなすごい言語なのにニッチすぎて微妙によくわからないところがまたふしぎです。」 / Twitter
κeenさんはTwitterを使っています 「@sin_clav スタックだけでプログラミングする縛りプレイ言語と思ってましたが世界の広さに驚嘆してます。」 / Twitter
t-sin🥳さんはTwitterを使っています 「@blackenedgold スタック指向なところだけ見てるとその他の部分知ったときに驚きますよね。難点は自己拡張性までいろいろ解説した資料があるにはあるけど若干散らばりぎみなところですかねえ。https://t.co/d7SmPjkotbとかの規格書から入るのは入門にはつらいですし。」 / Twitter
Forth
Forth - Wikipedia
プログラミング言語Forthに魅せられて。 - Qiita
ようこそ!日本FORTH研究会へ
小さいけどパワフルなFORTH言語について | ある計算機屋さんの手帳
第1章 Forthの哲学 — Thinking Forth 0 ドキュメント
Rubyist のための他言語探訪 【第 8 回】 Forth
プログラミング言語 Forth
Forthを使うのじゃ | TECHSCORE BLOG
プログラミング言語 Forth
Forth言語概説 - iMops-forth @Wiki - atwiki(アットウィキ)

Go

GoとPythonの比較

yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「昨日雑なお気持ち表明をしてしまったので。 「GoとPythonの比較」 パッケージ管理について。Pythonはもともとpip、GoはGOROOTによるシステムワイドなパッケージ管理が基本。ごく最近pyproject.tomlやGOMODULESなどのプロジェクト単位のパッケージ管理が導入された。よって「似ている」」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「並行処理について。Go言語は高度なグリーンスレッドが存在する一方Pythonは並列処理には向かない。一方FutureはPythonにあるがGoにない(多分)。よって「似てない」」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「速度について。Go言語のhttpの実装は早いことで知られる一方、それ以外の処理においては必ずしも最速級の言語であるとは言えない(システム言語と呼ばれているものはGoよりも高速なことが多い)。Pythonはよく遅いと言われている。これはなんとも言えない」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「配列、スライスのインデックス指定について。Pythonでは配列の末尾からのインデックスとして負の値が使える一方、Goでは多分無理。よって「似てない」」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「型システムについて。Goの型システムの特徴はinterfaceと呼ばれるダックタイピング的機能である。一方Pythonは一応クラスベースだが、array-likeのようなインターフェース的な考え方も一応存在する。よって「似ている」」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「エラーハンドリングについて。Pythonにはraiseを用いた専用のエラーシステムがあるが、Goには無く(panicはあるが)第2引数を使ってエラーを通知する。よって似てない」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「読みやすさ。Goはコーディングルールを統一しやすい、クセが少なくて初心者でも読みやすいと言われる。一方Pythonもオフサイドルールで読みやすいと言われることがある。よって多分引き分け」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「書きやすさ。Pythonはよくプログラミング初心者におすすめされるが、GoはC開発者の移行を意識しているように思われる。どちらも学ぶことが少なくとっつきやすいという点では似ている」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「最後に: GoはPythonの代替になるか? 結論: GoはGoogleということもありビジネスサイドの人もよく知っており、またPythonに全く似ていないとは言い切れないという点で代替する価値はあるかもしれない。しかしもっとPythonの代替としては適した言語があるのではないだろうか?」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@tsukimikaze774 ぱいそんの変数のスコープって変でしたっけ」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@tsukimikaze774 なるほど、これは怖いですね」 / Twitter

goroutine

【翻訳】goroutine の仕組み - まるまるこふこふ
build-web-application-with-golang/02.7.md at master · astaxie/build-web-application-with-golang
Go言語の並列処理 goroutineとchannel - Qiita
Go言語感想文 - なるせにっき
nobonoboさんのツイート: "一旦 #golang のgoroutineに慣れちゃうと他の環境でネイティブとグリーンそれぞれに同期操作が別々のため基礎ライブラリが2セットにダブってしまってるの超めんどくさすぎてツライ。"
GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang - niconegoto Blog
Futureとその周辺 | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp に Async/Await を実装しましたよ。 仕事のほとんどは generator.el と promise-core.el で済んでるので、TypeScript のやり方を参考に繋げただけです。 これで非同期処理を同期処理と同じように書けるよ。… https://t.co/YYOhoR1g33"
TAN-Y(たに)さんのツイート: "・コルーチンは使うだけなら簡単。 ・std::futureは標準でawaitできるけど戻ってくるスレッドが毎度生成のワーカースレッドなので事実上使い物にならない。(まあこれは仕方ない) ・C++/WinRTはUWPのランタイムとからめてうまくawaitできるようにしてるんだろうなあと想像。"
Big Sky :: 書評「Go言語による並行処理」
渋川よしきさんのツイート: "既存のgenerator base coroutine、coroutineとしても使えるけど、外部インタフェースとしては第一はiteratorなんだよな。coroutineがプリエンプティブ・マルチタスクのための言語機能というのであれば、今後一番複雑なタスク管理の中心になるasyncioと親和性高くデザインされる、というのは違和感ない"
C++ でコルーチン (async/await 準備編) - Qiita
C++ で async/await をする - Qiita
DQNEOさんはTwitterを使っています 「#goconB @saki_engineer さんの発表よかった。最後の違和感と提言のところ、めちゃうなづいてしまった。結局GMPは構造体なので、それを操作してる主体はどこで動いてるのっていう疑問。」 / Twitter
スケジューラから学ぶGoランタイム 〜code reading of runtime pkg〜 - Speaker Deck
DQNEOさんはTwitterを使っています 「その辺が関数名やコードの場所として示されてたので、すごい価値がある。runtimeリーディングが楽になりそう。」 / Twitter
DQNEOさんはTwitterを使っています 「しぶちゃりさん @sivchari の発表と合わせて見たら、より理解が深まりました。」 / Twitter
goroutineの仕組みについて - Speaker Deck

グリーンスレッド

グリーンスレッド - Wikipedia
Green threads - Wikipedia
Inside Meinheld - Qiita

よくわかるcontextの使い方

チェシャ猫さんはTwitterを使っています 「「Go Contextを完全に理解する」を聴講。 #gocon #goconA」 / Twitter
チェシャ猫さんはTwitterを使っています 「「よくわかるcontextの使い方」、自分も読んだ。良い資料だと思う。 #gocon #goconA https://t.co/hLYlNnRCTT」 / Twitter
よくわかるcontextの使い方
チェシャ猫さんはTwitterを使っています 「これ自前で実装したら絶対 mutex の操作とかでミスりそう。 #gocon #goconA」 / Twitter
チェシャ猫さんはTwitterを使っています 「これ紛らわしいのは(Go とは直接関係なく)Lambda 側でも「呼び出しの context」という言い回しが使われるからだよね。 #gocon #goconA」 / Twitter
チェシャ猫さんはTwitterを使っています 「context のコードリーディング良いですね。この程度の分量なら簡単に読めるし、社内勉強会のネタとかにも良さそう。 #gocon #goconA」 / Twitter
チェシャ猫さんはTwitterを使っています 「「言うほど Go を使いこなしてる?」いや、Go で機能が足りないという言われるのはその辺じゃなさそうだし、さすがにちょっと筋が違う気もする…。 #gocon #goconA」 / Twitter

エラーハンドリング・静的解析

Motonori Iwata(カジュアルブロッカー)さんはTwitterを使っています 「shadow有効にするとか? https://t.co/P7d2x4SuIY」 / Twitter
tools/analyzers.md at gopls/v0.7.3 · golang/tools
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「静的解析でなんとかならんの、と思いきや試した限りはならんらしい。うーむ。 / 1件のコメント https://t.co/I1bEPghWQY “エラーハンドリングをミスって大事故に - Qiita” https://t.co/7dEmcGBZ0y」 / Twitter
エラーハンドリングをミスって大事故に - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そもそも if _, err := db.LoadContext(ctx, member); err != nil { じゃなくて _, err := db.LoadContext(ctx, member) if err != nil { と書くのではダメなの、タイプ数も変わらないし、と思うんだけどどうなんだろう」 / Twitter
かにかまさんはTwitterを使っています 「@igrep 上の書き方だとerrのスコープがif文内に閉じたはず…(うろ覚えですが)。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko はい、まさにerrのスコープがifで閉じてしまったのが原因で起きたトラブルなので…」 / Twitter
かにかまさんはTwitterを使っています 「@igrep ああ、そういうことでしたか。なるほど。 個人的にはスコープは狭めたいので、そもそも名前付き戻り値ってやつを使わないほうがよさげだなーって思いました。」 / Twitter
Hajime HoshiさんはTwitterを使っています 「@igrep 一般的に変数のスコープは狭ければ狭いほどよいと思いますね」 / Twitter
Hajime HoshiさんはTwitterを使っています 「@igrep ので Qiita の例でいうと自分が書くなら ``` if _, err := db.LoadContext(ctx, member); err != nil { return nil, xerrors.Errorf(": %w", err) } ``` と思ったんですが、そもそも名前付き戻り値が諸悪の根源に思えてきました…」 / Twitter

批判

yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「ポインタやinterface{}やgoto等、Goの言語仕様の根底にありかつ多くの批判を受けている部分はどうしようもないな... (まあ言語ごとに得手不得手があるので仕方ない、苦手分野があることは認めるべき)」 / Twitter
medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Goへのヘイトに対する擁護、批判的思考ができてなくて現状追認してるだけの現実逃避しかねぇな 「いや、これでいいんだ!」って言ってるだけだから信者なんだよ。受け止めてライブラリを作りなさい。 https://t.co/b0OnJVZoMv」 / Twitter
Goへのヘイトに対する考え方
medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「大抵の高級言語は隠蔽してる参照とポインタをユーザーに見せることが、見せないことに対してどうしてメリットがあるんですか?」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 アドレスの概念を学べる... (冗談です)」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 ああまあ参照よりわかりやすいというのはありますよね。参照先を書き換えるのか、どこを参照しているかを変えるのかが明確に区別されるので」 / Twitter
medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「@yasuo_ozu JSとかPythonを書いててそこらへん明確に区別したいことってあります?」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 プログラミングに慣れてる人なら大丈夫なんですが初心者が躓くポイントではありますね」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 関数にオブジェクトを渡すとき、その中身を書き換えられるようにしたい場合とか。(アンチパターンみが深い)」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「うーん、Go言語にnilとgotoとinterface{}がなければな...」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「大抵のユースケースで ポインタ &lt;&lt;&lt;&lt;&lt; Option なんですよね」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「まさにこれ、グリーンスレッドの存在が足手まといにしかならない局面ではGoじゃなくてもいいってなる(まあそこまでGoが悪いということもないと思うのですが)(Cに較べれば良いと思う)」 / Twitter
medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Webサーバーとかコンテナエンジンとかマイクロサービス作ろうってなったら俺でもじゃぁGoでやるか!ってなるけど スタートアップがモノリシックな業務アプリケーションを作るのにGoを使うわって言われるとえぇ…となってしまいますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「Go言語を嫌う6個の理由 - さめたコーヒー https://t.co/s8AqEBHV0m 文字列とnilの件、仮にString(ポインタではなく)でnilが受け取れるようにしたとして、String実体を期待した所にnilがやってきた場合どういう挙動を望んでいるのだろうか?」 / Twitter
Go言語を嫌う6個の理由 - さめたコーヒー
Miura HidekiさんはTwitterを使っています 「え?Go言語って高階関数無いの?って思ったらあるみたい。じゃあ、filterが欲しければ定義すればいいじゃん」 / Twitter
Seiya YazakiさんはTwitterを使っています 「@miura1729 Generics が(現時点では)無いので型ごとに手書きないしコード生成をする羽目になります &gt; Go言語でfiterを定義 今後入るはずの Type Parameter (= generics) で解決する課題であり、提案書の example でその点が明確に触れられてもいます: https://t.co/pB9G9NOTfj」 / Twitter
Type Parameters Proposal
Miura HidekiさんはTwitterを使っています 「@saiya_moebius なるほど、Generics。Pascalの悪夢がよみがえってきました」 / Twitter
hsjoihs (2回+2週済)さんはTwitterを使っています 「Go、前に @KOBA789 が「あれはOS屋さんが最高のOSを作りたかったけど、OSを作っても人々使ってくれないからプログラミング言語に擬態して出荷させたもの」みたいなことを言っていて面白かったな」 / Twitter
Miura HidekiさんはTwitterを使っています 「Goのソースコード今日読んでいたのだけど(goroutineの実装が面白そうとのうわさを聞いたので)、確かにOSのコードみたいだった。goroutineのコードはまだ見つかっていない」 / Twitter
知我麻社さんはTwitterを使っています 「nilに関しては妥当では? ポインタがないなら「なにも入っていない変数」とか必要ないと思うけど」 / Twitter

コスト

ぬるぽへさんはTwitterを使っています 「Goの人って変数がスタックかヒープに行くか/allocationのコストとか気にしますか?CとRustだと気にするのは分かるんですが、そもそも高レベルランタイムな言語のGoだとそこらへん気にしなさそうなイメージがあったんですが一般的にどうなんでしょう」 / Twitter
kubo39.dさんはTwitterを使っています 「@nullpo_head 一般には気にしないようですが、気になる人はnotinheapのようなコンパイラディレクティブを使って動的に検査ができるようです。 https://t.co/ofUuKZpHG0」 / Twitter
src/runtime/HACKING - The Go Programming Language
ぬるぽへさんはTwitterを使っています 「@shitsyndrome ありがとうございます、雑にまとめてしまうと気にしない場合は多いかもしれないが、現にnotinheapがあるように場合によっちゃ気にするという感じですかね、ありがとうございます!」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head パフォーマンスを気にする場合はprofilingしてボトルネックを探すのですが、allocationの回数を減らすのを気にすることはものによってはありますね。例えば https://t.co/apBvNfERwo とか。」 / Twitter
rs/zerolog: Zero Allocation JSON Logger
Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head あと変数がスタックに行くかヒープに行くかは go build -gcflags="-m" で調べられます。 "Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium" https://t.co/Z7mVYBBQal」 / Twitter
Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium
ぬるぽへさんはTwitterを使っています 「@hnakamur2 おーなるほど、loggerとかは重い処理代表の文字列処理もする上に何度も呼び出されるので、確かにその手のコストを気にする代表格ですね!あとそのフラグは知らなかったです、ありがとうございます」 / Twitter

名前なしメンバ

ぬるぽへさんはTwitterを使っています 「マジかよと言われること覚悟で聞くんですが、is-aかつimplementationの再利用をしたいときにcomposition over inheritanceって結構大変じゃないですか?引数を受け流すためだけのボイラープレートを省略する何らかの言語機能がないと、メソッドが多いときに大変なわけですが、割とそんな言語機能はない」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@nullpo_head Goとかだと構造体に別の構造体を名前なしメンバとして追加すると、自動的に引数をフォワーディングするみたいな感じの動作になるやつあります。 https://t.co/UxP8SgsxK2」 / Twitter
Effective Go - go.dev
ぬるぽへさんはTwitterを使っています 「@rui314 ありがとうございます、これまさに調べたときに見つけててGoはやりやすいんだなーと思いました JavaとかC#もinterfaceのデフォルトメソッドを使えば同じことができるんですがRustだと難しく・・・」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@nullpo_head これもともとはPlan9のCから来てるはずなんですよね。https://t.co/kOYBhFOl2jの3.3」 / Twitter
Plan 9 C Compilers
ぬるぽへさんはTwitterを使っています 「@rui314 おーそうなんだ、といいつつまず"Plan9のC"とかいう存在を初めて知ってそっちに驚いちゃいました Plan9はほんとフロンティアだ...」 / Twitter
satさんはTwitterを使っています 「@nullpo_head @rui314 おお、すげえ!しらんかった」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi @nullpo_head Plan 9 Cはヘッダファイルからヘッダファイルがインクルードするのを許さないとか、なんかいろいろあります。」 / Twitter
ぬるぽへさんはTwitterを使っています 「@rui314 @satoru_takeuchi ぜんぜん知らない世界だ」 / Twitter

blog

Golangのgoroutine周りを気合で理解する - それが僕には楽しかったんです。
goroutineを調べたときに深掘りしたときに調べたまとめ - Flicker's Style++
「みんなのGo言語 第二版」補足。Go v1.16の新機能紹介など - 覚書
Goroutineのプリエンプション | dtyler.io
code-for-blog/channel-msgpersec.go at master · eliben/code-for-blog
Goのモジュールを個別に更新する - daisuzu's notes
Go言語によるCFB8暗号化 | フューチャー技術ブログ
Go Conference Online 2021 Autumnが開催されました&作って学ぶシェル | フューチャー技術ブログ
「Contextを完全に理解する」というテーマでGo Conference 2021 Autumnに登壇しました | フューチャー技術ブログ
Go Conference 2021 Autumn にGoの静的解析で登壇しました | フューチャー技術ブログ
Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース - Publickey
待望のGo新機能のリリース!!でもちょっと待って!プロダクションコードに反映する前に・・・ | Money Forward Engineers' Blog

Zenn

Go言語が好きな理由
Goランタイムケーススタディ|Goでの並行処理を徹底解剖!
並行処理を支えるGoランタイム|Goでの並行処理を徹底解剖!
Shiro KawaiさんはTwitterを使っています 「まあこれっすね。期待するものが違う。」 / Twitter
Shinya KatoさんはTwitterを使っています 「Go は better C という雰囲気が強いので、Ruby のノリで書くと「こんな機能もないの?不便なんだが?」ってなりそうだけど、C 言語のノリで書くと「えっ?そんなこともやってくれるんですか?神ですか?」ってなるイメージ」 / Twitter
Goの苦手な領域
渋川よしきさんはTwitterを使っています 「GoはめっちゃくっちゃにCPUヘビーな処理の場合はC++/Java/Rustに性能は劣るし、SIMDを活用するライブラリも少ない。I/Oヘビーなやつには強い。Webサービスとかミドルウェアには良い。あとはコンパイルが早くてクロスコンパイルが楽勝、という理由で使っている。 https://t.co/RT7khCCgpE」 / Twitter
渋川よしきさんはTwitterを使っています 「CPUもI/Oも性能が良くてメモリ消費も少なくてバイナリサイズも小さくてマルチコアが効率よく使えてクロスコンパイルも楽でビルドも高速でサードパーティライブラリも簡単に追加できていいエディタも手に入りやすい、という言語は存在しないので諦めるべし。どの欠点がどの程度許容できるか次第。」 / Twitter
Goから学ぶI/O
原理原則から適切なgoroutineの数を考える
gomockを完全に理解する
Go 2のGenericsを使ってリストとHListを作る
Goにおけるメモリ管理の可視化
Goとマルチコアスケール実装
Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話
Goのなぜ問答
Go言語のジェネリクス入門(1)

Qiita

Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
プログラミング(IT)初心者がgoroutineを理解しようと頑張ってみた。 - Qiita
goroutineとチャネルの動きを図を使って理解する(和訳) - Qiita
goroutineとスレッドの違いって? - Qiita
goroutineのよさを理解するための低レイヤの話 - Qiita
Goにおける等値と等価の考察(struct1==struct2と&struct1==&struct2とreflect.DeepEqual(struct1,struct2)とreflect.DeepEqual(&struct1,&struct2)) - Qiita

Twitter

DQNEOさんはTwitterを使っています 「低レイヤだいぶ詳しくなったつもりだけど、Genericsはむずい。全然別の脳みそが必要な気がする。意味論とか型理論とか論理学的なジャンルなのかな。数学の集合論好きな人なら向いてるかもしれない #gospecreading」 / Twitter
DQNEOさんはTwitterを使っています 「interface vs dynamic typeで既に抽象 vs 具象 という軸があるので、そこにさらに「汎用型 vs インスタ化された型」という軸が加わると、初心者にはだいぶ難しい気がする。教えるのが大変そう」 / Twitter
DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
Debugging Go Code with GDB - The Go Programming Language
Masashi ShinbaraさんはTwitterを使っています 「Go に導入されるジェネリクスの利用方法を紹介した動画。使った方が良いところ、使わない方が良いところをインターフェイスやリフレクションとの比較を交えて紹介されていて分かりやすい。日本語字幕も付いてる。 https://t.co/fTJDHGT3hF https://t.co/v68EkBONCm」 / Twitter
Go Day 2021 on Google Open Source Live | Using Generics in Go - YouTube
Masashi ShinbaraさんはTwitterを使っています 「型から考えるのじゃなくて、コードから考えるというのは Go ぽい感じ。 https://t.co/fYsT2248qP」 / Twitter
田中ひさてるさんはTwitterを使っています 「@shin1x1 int 用の sort 関数と string 用の sort 関数と… みたいな、型が違うだけの重複コードがあるとき用って印象」 / Twitter
Masashi ShinbaraさんはTwitterを使っています 「@tanakahisateru まさにそういう用途でしょうね。」 / Twitter
がくぞさんはTwitterを使っています 「そう言えばGolangやTypeScriptはStructural Typingだけど、Structureの表現内に名前は含まれてるんだよなー。 完全にデータ型の集合を同一視する言語とかあったりするのかな?」 / Twitter
zehnpaardさんはTwitterを使っています 「@gakuzzzz {x:str, y:str}と{a:str, b:str}を同一視するのは難しそう」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「Optionじゃなくてnullがあるところとか、usingじゃなくてdeferがある所とか、エラーハンドリングが手動とか、何かこだわり(もしくは合理的な妥協)が有るんだと思うので」 / Twitter
medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「「Goが優れている」っていうので挙げられるのが「他の言語もそうやん」てのばっかりで ほんとうに「それは確かにGoにしかない利点ですねぐぬぬ」っていうのが「並行処理が爆速」しかない」 / Twitter
田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix 「待機するかもしれない関数を含む処理のときいちいち Promise 囲みとか async await 付けるとかしなくていい」ですかね」 / Twitter
medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「@tanakahisateru @nakayoshix これは難しいですね。呼び出す時にgo付けるだけでいいっていうとそうなんですが 普通の書き方にPromiseで囲んでasync await付けるだけで非同期できるC# TS Python Nimとは違う世界観なので学習コストが…」 / Twitter
田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix えーと、なにか await したいときそこに到達するコールスタックの関数が全部 async でないといけなくて、待機するフロー自体も async でないといけない、というのに比べて、同期実行と go あるやつ呼ぶ場合との違いがないのは思考負荷が低いって感じで」 / Twitter
medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「@tanakahisateru @nakayoshix それは、確かに」 / Twitter
田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix まあ、クロスコンパイルできるとかGCがあるとかツールがワンパッケージで揃ってるとか、そういうのはGoならではの特徴じゃないでしょ、ホントに使って他と比較してから記事書いてる? というのは同意ですねー」 / Twitter

ジェネリックプログラミングを取り入れた「Go バージョン1.18ベータ1」 | TECH+
Masaki HaraさんはTwitterを使っています 「絶対確実な後方互換性なんてのは幻想なんだから、リスクに応じた対策が入ってるべきなんだよな。Goの場合コンパイラバージョンで壊れるリスクはほとんど無視できるけど、パッケージはそうではなかった (のでモジュールが必要になった) ということなんだと思ってる」 / Twitter
GoのジェネリックがGo 1.18 Beta 1でデビュー
Goにおいてアクターモデルを実現するライブラリ"Molizen"とその未来 | さんぽしの散歩記
ジェネリクスを導入した「Go 1.18」が公開 ~「Go」言語の仕様変更としては過去最大級 - 窓の杜
「Go 1.17」が公開、ジェネリクスをサポート | OSDN Magazine

Scratch

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ニンゲンの認知どうこうな言語というなら、形式文法をはじめとする論理的制約ではなく、もっと物理的制約を生かしたビジュアル言語表現をしたほうが良いと思うよ。例えば、Scratchのブロックの形状の違いによる構文要素の区別ね。あれは見事。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「scratchでは、ブロックの穴の形状と、そこに嵌め込みたいブロックの形状が合っていれば、そこに嵌め込むことで構文的にvalidな構成ができる。これ、ニンゲンの脳みそに物理的制約問題を解かせることで、構文的に正しい構成をさせるという、とても素晴らしいUIだよ。認知的にとても正しいアプローチ。」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda Scratchも3.0でキャストの柔軟性が増して、なんでもありになりつつあります。以前は、[ ]が数値で( )が文字列、&lt; &gt;が真偽値でしたが、( )が数値または文字列になり、&lt; &gt;が( )にはまるようになりました。これにより分岐や制御を使わない技法が生まれており、一見して読み解くのが難しくなっています。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@abee2 それはとても残念ですね。バージョンを重ねるとだんだん元の言語設計の哲学がぼやけていくのはよくあることではありますが。」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda 狙ったというより、実装言語とフレームワークがJavaScriptとBlocklyになった影響がありますね。パズルとしては面白いし、私もそういうのは嫌いじゃないです。「可読性? なにそれおいしいの?」という気持ちも理解できますが、あらゆる年齢とスキルレベルが入り混じる世界ではつらいところではあります。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@abee2 実装に使うフレームワークの影響というのは、ちょっと言語デザインのあり方としてツラミがありますね。」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda trueは1じゃなくて、Trueの唯一のインスタンスと叫んでみても詮無いことではあります。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「Scratchは制限が多いのですが、幸いリストがあってこいつをスタックとして使うようにブロックを作れるので 「オペランドスタックにVをプッシュする」 とかのブロックをいくつか組んでおけば、再帰関数とかも普通に書けるという知見があります。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、ブロック内ローカル変数もないですが、これはレジスタ用変数を作っておくか、ローカル変数テーブルをリストで作っておくことでなんとかなります。高レベルな仕組みで低レベルなものを模倣するという本末転倒な感じがありますが、これはこれでたのしーです。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「結構苦心して作ったScratchで構文解析のプログラム、何故か消えてしまってたけど、「保存」忘れてたというオチ?ブラウザ上だとつい自動保存してくれるような錯覚に陥りがち故な罠か。」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@kmizu 空のブロック定義が1つだけ残っていますね。可能性としては、ブロックパレットに誤ってドラッグしたり、Deleteキーを押したりして、ブロックが削除されたタイミングで自動保存が走った感じでしょうか。消した直後であればUndoが効くのですが、クラウド保存には履歴がないので回復は難しいです。」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@kmizu Scratchのサーバーはあまり信用できないので、このような事故を回避するために、適当なタイミングで「コンピューターに保存する」や「コピーを保存」を行うことをお勧めします。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@abee2 なるほど、ありがとうございます。いい授業料になりました……」 / Twitter
Scratchで再帰関数の実装とメモ化をやってみた - kmizuの日記
Shinji KonoさんはTwitterを使っています 「Scratch 、自分もそうだけど、小学生も「なんかかっこわるい」って思ってるのがいる気がする。構文エラーが減るのは良いかもしれないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Scratchが良いなら、製品でも使われてるはず。」 / Twitter

ROS2 DDS

DDS (Data Distribution Service) とは | Yutaka Kondo
ROS2 ハードウェア | ROS2 DDS | ADLINK
2-3_ros2_LP.pdf
ROS on DDS
ros2_intro - s2a_public.pdf
ROS2 rmwを切り替えてpub/sub通信しよう - Tier IV Tech Blog
IPSJ-ARC18230002.pdf
ROS2でコンピュータ同士が通信できない場合の対処方法 – Memoteki
ロボティクス向けソリューション|日新システムズ
ROS2 - 分散ノード - Qiita
ROSを使ってロスなくロボット開発 - MONOist
Robot Operating System - Wikipedia
ja - ROS Wiki

Rust

モジュール

ぬるぽへさんはTwitterを使っています 「Rustのモジュールはそのあたりめちゃくちゃいいですね、モジュールはファイル/フォルダに対応していて、フォルダのトップにかならずpublicなinterfaceを宣言するファイルがあるわけで、少なくともファイルを一つ読めばそのモジュールのパブリックなin方向のインターフェースはわかる」 / Twitter
ぬるぽへさんはTwitterを使っています 「ただファイルを読む必要があるからファイル構造だけで、なんとなくプログラムのコンポーネントの依存関係がわかるというわけではなく、あと何が公開されているかと比較して、何に依存しているかは全ファイルのuseを見ないと分からない crate単位で何に依存してるかはcargo.toml見ればわかるんだけど」 / Twitter
ぬるぽへさんはTwitterを使っています 「OSSのコードベースを読めるようにはなるには、「土地勘」、つまりどんなフォルダ構成で、どこがだいたいどのモジュールか、みたいな感覚を育てるわけなんですが、これってソースのモジュールのグラフ構造とFSの木構造にセマンティクスのギャップがあってそれを埋める必要があるからな気がするのよな」 / Twitter
ぬるぽへさんはTwitterを使っています 「工学的/生産性な側面から見たプログラムのモジュールとは何か、そしてモジュールの依存構造のグラフをどうやってうまくFSにマップして、ソースコードの構造からすぐにモジュールのグラフが意味のある単位で見えるようにするかよなー、シンボリックリンクとかを素朴に張ってみてもfindとかと相性悪いし」 / Twitter
ぬるぽへさんはTwitterを使っています 「少なくとも僕のモジュールの定義(?)は、「内部のインターフェースをカプセル化して、その一部のみを外部に公開することができるような単位」で、それはまぁネストしうるんですが、モジュール間の依存をどんどん増やすのに負のインセンティブが言語にあったほうがスパゲティ化を防げると思うのよね」 / Twitter
まげぱはらへりさんはTwitterを使っています 「負のインセンティブが強すぎると一つ巨大なスパゲティカラマリーノなモジュールになりがちなので難度設定むずかしそう。言語仕様として難易度を持つんじゃなくて、設定で外部依存の難易度をプロジェクト(?)作る人がビルド単位で設定できるようになったりはしないものか。」 / Twitter
ぬるぽへさんはTwitterを使っています 「> 負のインセンティブが強すぎると一つ巨大なスパゲティカラマリーノなモジュールになりがち なりそう・・・」 / Twitter

GATs

Hideyuki TanakaさんはTwitterを使っています 「ほんとにstableになるん? / 1件のコメント https://t.co/inS3QQPc5B “The push for GATs stabilization | Rust Blog” (3 users) https://t.co/9IVP4JfbRz」 / Twitter
The push for GATs stabilization | Rust Blog
Hideyuki TanakaさんはTwitterを使っています 「RustにGATsが入るとこういうダミーのstructにたいしてimpl実装することで、Haskellの型クラスみたいに高階型を疑似的にtraitのインスタンスにすることができなくもない感じになるっぽいけど、RustのいうところのHKTを入れるのは無理なんか? https://t.co/u1MI1bnFHc」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「まあともかくなんにせよこれが入ったらRustでもFunctorとかモナドとかが定義できるようになる気がするから、そういうのなんとかしてRustでやりたい人には朗報かもな(´・_・`)」 / Twitter

GhoseCell

yukiさんはTwitterを使っています 「Rustはaliasing (shared reference) XOR mutablilityの関係でdoubly-linked list等の実装がとても辛い。そこでGhoseCellという、データに対しての権限を複数持てるデータ構造の提案。Coq等で健全性の証明もされている。/GhostCell: Separating Permissions from Data in Rust https://t.co/ZAcAMjBUKF」 / Twitter
GhostCell: Separating Permissions from Data in Rust
yukiさんはTwitterを使っています 「(下記は論文を雑に読んだメモです。理解が間違ってるかもしれません:pray:)Branded Typesという昔ながらの関数型プログラミングの技法を再利用している。この型は、state-dependency typesという型を簡易的にシミュレートするために、幽霊型とランク2多相を結合した型になっている、らしい。」 / Twitter
yukiさんはTwitterを使っています 「肝心のdoubly-linked listの実装例。GhostCellは中にPhantom Lifetimesとでも呼べるInvariantLifetimeという型を持っていて、それがBranded Typesのbrandを表現している。Rustはライフタイムにはランク2多相をサポートしているため。/https://t.co/IYvl4A8b3Z」 / Twitter
ghostcell/src/dlist_arena.rs · master · FP / ghostcell · GitLab
yukiさんはTwitterを使っています 「これを利用することで、Rustプログラマはunsafeでスピードを出す一方で安全性の保証を犠牲にするか、あるいは安全性の保証を得ることでスピードを犠牲にするかという2択から解放されることになる。ベンチマークを見ても、GhostCellは爆速になってる。」 / Twitter

proc-macro

yukiさんはTwitterを使っています 「このリポジトリをcloneしてrust-analyzer入りのVSCodeで開くと、開いた瞬間に走るcargo checkによってProcedural Macrosが実行され、たとえばlocalhost:8080に~/.ssh/id_rsaにある中身が読み出されてしまうってこと?😨 こわっ😨/lucky/bad_actor_poc https://t.co/r4HFXUFJ0Z」 / Twitter
lucky/bad_actor_poc
uint256_tさんはTwitterを使っています 「proc-macroはやっぱりサンドボックスか何かで動かないといけなさそうね(wasm?」 / Twitter

メモリ安全性

さいぺさんはTwitterを使っています 「Rustのメモリ安全性を、借用とlifetimeではなく、メモリへのunique accessとshared accessから説明した記事。 この導入だと、SendとSyncへの流れが自然でわかりやすい Rust: A unique perspective https://t.co/yGotPZjzB8」 / Twitter
Rust: A unique perspective
さいぺさんはTwitterを使っています 「mutキーワードをuniqに変更する提案があったの初めて知った」 / Twitter

GC 有無

伊津野 英克さんはTwitterを使っています 「GC付きのRustがほしいのは、ほんの一部で限定的にGC使いたいというニーズがあるからだと思うので変な主張ではないと思うけど。w3mは文字列管理にGC使ってたはずで同じように自己参照とか不変だけど可変長データオブジェクトとかはGCの対象にした方が便利だよね、という話ではと。」 / Twitter
[2110.01098] Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment
κeenさんはTwitterを使っています 「これねー。ちょっとの工夫でコンパイルが通るものをどう扱うか(matchの所有権移動とか)で難しい。顕著に「受理されない」と感じるのはマルチスレッドでのデータ共有とグローバル変数やコンフィグとかの大域的な値を雑に扱うコード。文字列やベクタは扱いが面倒になるけど無理ってほどではない。」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「今日はRustとGCの話しとなって、やっぱりGCを持っていないRustが安全性のためにどういうコードを受理しなくなったのか?という部分を勉強しておかないと、RustはGCがあると目的達成が困難な用途で使うべきという主張に説得力を持たせられないな😇」 / Twitter
まっちゃらさんはTwitterを使っています 「@_yyu_ The art of Multiprocessor ProgrammingにGCがない場合の実装が困難とかやる方法が未知となっているアルゴリズムがいくつかあった気がする(記憶が曖昧)からヒントになるかも₍₍ (ง´・_・`)ว ⁾⁾」 / Twitter
κeenさんはTwitterを使っています 「ちょっとの工夫でコンパイルが通るのは例えばこのコード。このままだとコンパイルが通らないんだけど1文字の修正で通る(x → _)。こういうのを「受理されない」ととらえるか「同等のコード」ととらえるかで話が変わる。 https://t.co/wrpQ7yqxSM」 / Twitter
Rust Playground
κeenさんはTwitterを使っています 「GCの有無が効いてくるケース=RustでRc/Arcが必要になるケースととらえるとほぼ並行なプログラムを書きたいときかな(ロックやコネクションプールなど)。そういうときはRc/Arcがあるから困ることはない。どちらかというと普段プログラムを書くときに無駄にメモリを意識させられるとかの方が困る。」 / Twitter
κeenさんはTwitterを使っています 「こういう他の言語で手癖で書いてるようなコードがRustだと特有の書き方要求される部分が学習難易度が高いと言われる要因の1つかな。一度覚えてしまえば手癖になるので書くときに毎回頭使ってる訳ではない。」 / Twitter
κeenさんはTwitterを使っています 「もうちょっとちゃんと筋道立てて説明したい。 1 所有権システムが拒否するのはリソースを開放する場所が静的に決まらないコードである 2 そういうのはa コードが複雑で静的に解析できないb 入力に応じて開放する場所が変わるc 並行な実行でコンパイル時に決定不能d C FFIなどがある」 / Twitter
κeenさんはTwitterを使っています 「3 aの大部分はコードの工夫でどうにかなる 4 aの残りの大部分とbはRcでカバーできる 5 cはArcでカバーできる 6 本当にどうしようもないaの残りとC FFIはunsafeでカバーできる 7 なので「無理」なケースはほぼないが、コードを書く労力は(主に3のケースで)増えがち ってところでどうだろう。」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@blackenedgold すごい雑な投稿に詳しい説明ありがとうございます🙇‍♂️意図としても何かのアルゴリズムが完全に記述できないということはほぼないと思っていて、意味的に同じ複数のプログラムのうち、リソース解放を静的に特定するためどれかしらの書き方にしなければならない(3)のパターンが知りたい感じでした。」 / Twitter
κeenさんはTwitterを使っています 「@_yyu_ 私もよく訊かれて回答に窮していたので整理するちょうどいいきっかけでした。 (3)は一般論としてはもちろん所有権/参照/ライフタイムの制約から外れたコードなんですが具体例は各個撃破というか1つ1つ経験で覚えてるので難しいですね 😇」 / Twitter
てらモス♋️さんはTwitterを使っています 「Rustの意味でのSafety、GCが保証する事項と被る部分もあるけど被らない部分もたくさんあるので、その切り口はあんまりな気がするな…(´・ω・`)」 / Twitter

UB

κeenさんはTwitterを使っています 「Rustでは未定義動作を防げるがそれとは別に、意図せず情報が漏れてしまうことがある。例えばwriteはOSがメモリを読み取るので別ライブラリのメモリでも渡せてしまうとか。何がどこまで見えるのか考えてもいいんじゃないと。 Broken Encapsulation · sunfishcode's blog https://t.co/rABHKskffv」 / Twitter
Broken Encapsulation · sunfishcode's blog
κeenさんはTwitterを使っています 「UBはコンパイル時の懸念でこれは実行時の懸念なので区別はあるけど、コード書くときに保証されてることと保証されてないことの別を考えるといいよねってことかな。細かいこと言いだすとポインタのアドレスでメモリアロケーションの回数が漏れるとかもあり、結構難しい。abstract execution周り?」 / Twitter

tsc

ドッグさんはTwitterを使っています 「SWC の開発者が TypeScript 型チェッカを(Rust ではなく)Go で実装してる話.tsc のソースは Rust が禁止している mut な値の共有を多用しているので Rust へのポーティングが困難だった | 'I’m porting tsc to Go' https://t.co/cJ26e0aSrW」 / Twitter
I'm porting tsc to Go
ドッグさんはTwitterを使っています 「これは僕も前々から思ってた Rust の言語設計ゆえの大きな欠点の1つだと思う.例えば Java みたいな既存言語の実装からのポーティングが,実装の設計を大きく変えないと実現できない(無理にやろうとすると Rc とか RefCell を多用することになるはず)」 / Twitter
ドッグさんはTwitterを使っています 「まあしかし,この人とは別に Rust で TS の型チェッカを書いてる人も https://t.co/motA8xiJCO」 / Twitter

tyty

ドッグさんはTwitterを使っています 「TypeScript の型チェッカを Rust で書いてるらしい.まだ公開されてないけどいずれオープンソースにする予定 | 'tyty' https://t.co/CFU8jSBLCJ」 / Twitter
tyty
ドッグさんはTwitterを使っています 「TypeScript の型チェックは遅いので,バンドラ(esbuild とか)は TS を JS に変換する時に型チェックをしない(別途チェックされる前提).型チェック自体は遅いままなのが現状.唯一 swc はこの問題を解決しようとしてるけど,オープンソースになるか怪しい(https://t.co/zT59UvhyMi)」 / Twitter
TypeScript type checker · Issue #571 · swc-project/swc

monochromeさんはTwitterを使っています 「@Linda_pp 世界をRustで書き換えればOK(炎上」 / Twitter
ドッグさんはTwitterを使っています 「@s_isshiki1969 本家 TS コンパイラが TS 以外で書かれることはまず無さそう… 本家の実装をポーティングすると本家への追従が一番重いタスクになるので,そうなると本家と同じ設計で実装できるかはメンテの容易さにかなり影響してきそうですね」 / Twitter
monochromeさんはTwitterを使っています 「@Linda_pp TSインタプリタをRustで書けばコンパイルもV8も不要になるし、万事解決…」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcの経験で動的型付け言語で抽象解釈みたいなテクニックで型付けを出来る限り高速で行いたいなら、共有されたポインタをガンガン書き換える感じになるのでRustはとっても分が悪いだろうなって凄く思う >RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、共有されたポインタをガンガン書き換えるのが本当に最適解かはよくわからない。」 / Twitter
Miura HidekiさんはTwitterを使っています 「共用する部分の管理は参照カウントよりそれなりに洗練されたGCアルゴリズムの方が効率が言いような気が凄くする」 / Twitter
Miura HidekiさんはTwitterを使っています 「ランタイムがでっかくなるとかチャンク内のメモリマップが必要になるとか色々課題はあるわけだけど」 / Twitter

unsafe

monochromeさんはTwitterを使っています 「GC作ってた時にこれでハマった」 / Twitter
κeenさんはTwitterを使っています 「unsafeを使うのは難しいよねって話題。そうか、初期化のつもりでフィールドに代入すると古い値をdropする処理が入って落ちるケースがあるのか。 Uninitialized Memory: Unsafe Rust is Too Hard | Armin Ronacher's Thoughts and Writings https://t.co/7mmx1PQLbu」 / Twitter
Uninitialized Memory: Unsafe Rust is Too Hard | Armin Ronacher's Thoughts and Writings
κeenさんはTwitterを使っています 「これが落ちるの認識してなかった https://t.co/sp4lpu8lAB」 / Twitter
Rust Playground

表現力

Masaki HaraさんはTwitterを使っています 「「Rustでコンパイル通すのにTipsが必要って、要するに表現力低いんじゃないの」というのは、自分はYesという回答でいいと思うんだけど、ちゃんと整理する必要がありそう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「まずここでいう「表現力が低い」っていうのは「他言語から1対1で移植できないの?」という風に解釈していいと思う。その上で、どの言語から移植するかによって状況は異なる。」 / Twitter
Masaki HaraさんはTwitterを使っています 「JS, Java, Pythonのような言語からの比較で考えると、GCがないことが一番本質的に効いてくると思う。あとGIL/GVLがないというのもあるけどこっちはある程度何とかなる。 GCがなくて循環参照が作りにくいこと以外は、最悪オブジェクトを全部Arc<Mutex<T>>にすればいいから多分なんとかなる。」 / Twitter
Masaki HaraさんはTwitterを使っています 「考えてみると他にもあるな。GoだとinterfaceからinterfaceへのダウンキャストができるけどRustはRTTIやリフレクションを持たないから同様のことを実現するのは難しい。多分RTTIをライブラリレベルで頑張ってエミュレーションするとかになると思う。」 / Twitter
Masaki HaraさんはTwitterを使っています 「CやC++からの比較でいうと、これはもう安全性を証明する必要があるから当然書き方は強い制約を受ける。安全かどうか局所的な推論で示せないようなコードは書けない、というのがこの場合の「表現力が低い」の実態だと思う。」 / Twitter
Masaki HaraさんはTwitterを使っています 「unsafeを使うという覚悟ができてればある程度は対応付けられると思うけど、厳密にそうとは言えないものもある。たとえばeffective types (いわゆるstrict aliasing) の概念はRustにはなくて、より強い&Tとより弱い*const Tしかないから、1対1移植で同程度の最適化に持ち込むのは難しそう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「C/C++からRustに移植するなら、パフォーマンスは保ちたいだろうという前提でここまで話したけど、そうではなく動けばいいのであれば話はもう少し簡単になるはずで、困ったら全部にMutex<T>をつけて回るみたいなのでなんとかなる可能性はある。」 / Twitter

新しい命令型言語・数学偏重に対する批判

hsjoihsさんはTwitterを使っています 「KMC で「静的型 vs. 動的型」の話がされていたので、「関数型言語の特徴」とされがちなものの多くは、どちらかというと「C や(かつての) Java や (かつての) C++ が有していた欠点」とでも形容すべきもの、という話をした。「C/C++/Java vs. LL 言語」と「静的型 vs. 動的型」の混同に注意、と述べた。」 / Twitter
hsjoihsさんはTwitterを使っています 「> Rust のことを関数型プログラミング言語と呼んでいる人がいたら、その人は Rust のことも関数型プログラミングのこともどちらもわかっていない可能性が高い https://t.co/SxYUEM6okp そう、Rust は「関数型言語の特徴」とされがちな機能の多くを含有しているが、明確に命令型スタイルの言語。」 / Twitter
六本木ではたらくソフトウェアエンジニアへのよくある質問とその答え (FAQ) (2015 - 2017) - hayato
hsjoihsさんはTwitterを使っています 「かつて有名どころの命令型言語が軒並み採用してこなかった便利な仕組みが数多く導入されている、新しくて便利な命令型言語ですよ。たしかにかつての Rust はだいぶとっつきにくかったものの、今や(実行速度を損なわない範囲で)使いやすさを向上すべく日進月歩で進化している https://t.co/JdSVDI04kf」 / Twitter
きひろちゃん(9歳幼女)さんはTwitterを使っています 「俺の目にはトレイトはオブジェクト指向の正当進化に見えるんだが、本当はHaskellの型クラスからの流用らしいので結局関数型おべんきょ不可避か???」 / Twitter
hsjoihsさんはTwitterを使っています 「@aki33524 Rust、「関数型言語の諸々を採用している」というよりは「関数型言語でよく採用されており、伝統的に命令型言語であまり採用されてこなかった諸機能を採用している」という印象があり、関数型おべんきょにより得られる納得はそこそこあると思います(むしろRust先にやって後で関数型やることもできそう」 / Twitter
きひろちゃん(9歳幼女)さんはTwitterを使っています 「@hsjoihs C++ -> Rust -> Haskellの順に学んでちょっとずつ抽象化の理解を得るか。」 / Twitter
hsjoihsさんはTwitterを使っています 「Haskell で実用的なコードを書く上で、ファンクタとかモナドとかの数学的背景を知っている必要は何一つ無いにもかかわらず、そういう名前を付けてそう呼んでいったがために、そういう単語とか数学的背景だけに興味がある人がやたらめったら参入する、という構造があるという話もしてみた」 / Twitter
hsjoihsさんはTwitterを使っています 「Rust はその反省を活かしたのか、「ライフタイムの推論が賢くなったんですけど、それを説明するには、実は二階述語論理とスコーレム化の話をしておく必要があって……」といった、数学屋さんだけにウケてソフトウェア書く人にウケづらい話を極力目の付く場所から排除するような運用をしている気がする」 / Twitter

blog

Rust structとenumの組み合わせ - yhara.jp
Rust に様々なスクリプト言語を組み込む - Möbius Flyer
A New Backend for Cranelift, Part 1: Instruction Selection - Mozilla Hacks - the Web developer blog
κeenさんはTwitterを使っています 「let _ = の話ですか? Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム https://t.co/oBGsGgkijZ」 / Twitter
Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム
κeenさんはTwitterを使っています 「これ読んでも釈然としない部分は残る。参照外しじゃなくて参照外しした値がunsafeとかなのかなぁ。」 / Twitter
κeenさんはTwitterを使っています 「mirの時点で参照外しが消えてるのでearly dead code eliminationで参照外しが消えた結果unsafeにならなくなったとかかなぁ。しかしそれをやるには無効なポインタの参照外しがundefined behaviorであることを使うはずで、なんかビミョーにsoundnessにケチが付きそうな気もする」 / Twitter
Writing Interpreters in Rust – GitHub 出張所 – プログラム関係のブログはここに
Frequently Asked Questions · The Rust Programming Language
2021年3月18日 Rustを学ぶためのプロジェクト―Debian開発者,coreutilsパッケージをRustで実装中:Linux Daily Topics|gihyo.jp … 技術評論社
My experience crafting an interpreter with Rust – Manuel Cerón
Rustのパターンマッチを完全に理解した | FrozenLib
Rustで作るインメモリキャッシュ | κeenのHappy Hacκing Blog
Rustでインメモリキャッシュ作った話 | κeenのHappy Hacκing Blog
言語自作を通して学んだRust | κeenのHappy Hacκing Blog
Rustのconst fnって何? | κeenのHappy Hacκing Blog
Rust with Fearless Concurrency | κeenのHappy Hacκing Blog
RustのMutexのPoisoning | κeenのHappy Hacκing Blog
RustからCPU拡張命令を使ってみる | κeenのHappy Hacκing Blog
moldを使うとRustのビルドが速くなる | κeenのHappy Hacκing Blog
Rustで最速のサーバソフトウェアを目指す! - nttlabs - Medium
Rust を始める時に少しだけ読み書きしやすくなる Result と Option の話 | IIJ Engineers Blog
自作lintルールとcargo fixでRustのコードをリファクタする | κeenのHappy Hacκing Blog
Rustでポインタから`Box<[T]>`を作る | κeenのHappy Hacκing Blog

はてなブログ

Rustの並列処理についての勉強 - FPGA開発日記
勝手にevalしない言語をRustで作ったら意外なものになった - 色の輪
大学でRustを教えた話 - 未完成な論を綴るブログ
Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
RustでUnix Domain Socketを扱う方法 - 睡分不足
Rustのasync/awaitを使ったecho serverの実装 - 睡分不足
rustのArcの内部構造 - 睡分不足
rustのMutexの内部構造 - 睡分不足
rustのArcについてその2 - 睡分不足
rustのIteratorの実装 - 睡分不足
rustで動的にバッファを確保する方法 - 睡分不足
rustをnostdで使う - 睡分不足
rustのGUIライブラリconrodの使い方 - 睡分不足
rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
nomによるnumpyデータのパース - 睡分不足
[rust]ZST/DSTによるflexible array memberの実現 - 睡分不足
Rustでグラフを表現するにはTyped Arenaが便利 - 簡潔なQ
Rust製のパーサコンビネータnomを解剖する(v6.0.0) - Explore cs in depth!
Rust製のパーサコンビネータcombineを"覗き見"する(v4.4.0) - Explore cs in depth!
knurling-rs のツールお試し Get a grip on bare-metal Rust! - 低レイヤ強くなりたい組込み屋さんのブログ
Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself
Lox (Crafting Interpreters)にdefer文を追加する - 井山梃子歴史館
Rustでグラフをplotするライブラリのまとめ - Stimulator
君のRustは20倍遅い - 簡潔なQ
なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog
Rustのライフタイムについて調べている - ブログのおんがえし

スライド

RustでつくるRubyのFiber - Speaker Deck
fukuoka.rb#202 RustでつくるRuby - Speaker Deck
How to learn Embedded Rust Edition 2021 - Speaker Deck

OSDN

「Rust 1.55」が公開 | OSDN Magazine
「Rust 2021 Edition」が公開 | OSDN Magazine
「Rust 1.57」が公開 | OSDN Magazine
インラインアセンブリをサポートした「Rust 1.59」が公開 | OSDN Magazine

infoQ

Rustが1.39でゼロコストAsync/Awaitをサポート
Rustの非同期ランタイムであるTokioが1.0に到達
Microsoftがメタデータを使って、Rustや他の言語からの慣用的なWin32相互運用を可能に
CXXが実現するRustとC++の安全な相互運用
MicrosoftがRust For Windowsをプレビュー
Rust 1.51がリリース - const genericsが安定化、Cargoとコンパイル時間が改善
Rust At Six:新しい言語エディションと広がる採用
Rust 2021 Editionリリース - Armin Ronacher氏に聞く

Zenn

Rustにおける関数ポインタやクロージャ
[Rust] Drop/dropあれこれ
Craneliftを歩く
GhostCell 論文を読む
Rust + LLVMで自作言語をセルフホスティングした話
llrl programming language
rustdoc中で数式を書く
「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる

Qiita

C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
Rust から C++ のメソッドを呼ぶ方法をまとめてみた - Qiita
WSL2 (Ubuntu) で Rust のインストールがうまくいかない - Qiita
Rust でグラフ(petgraph) - Qiita
Rustで自己参照構造体が作れない理由と解決法 - Qiita
本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
XbyakをRustから使ってみた - Qiita
『みんなのデータ構造』を読んで Rust で実装した - Qiita
no_stdのRust on LinuxでHello, world!する - Qiita
Rustの型システムの恩恵:言語処理系としての観点から - Qiita
自作コンパイラ基盤の話 - Qiita
スペースによるパターンマッチの網羅性検査 - Qiita
レイアウト規則を独自実装してしまったお話 - Qiita
ガラスボーさんはTwitterを使っています 「repr(align(N))アトリビュートの紹介だけど、小さいサイズならalignedというクレートが便利だったりします https://t.co/ZOHGGe1eUg https://t.co/Z99iQvvuAE」 / Twitter
Rustでallocを使わずにページ境界に合わせたメモリアロケーションをするには - Qiita
aligned - crates.io: Rust Package Registry
RustのさまざまなDockerfileのビルド時間を比較してみた - Qiita
Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita
Rustのコンパイルエラーを爆発させる技術 - Qiita
非同期 Rust パターン - Qiita
union: RubyでRustがunsafeになった話 - Qiita
actix-webのホットリロードされるDocker開発環境を作る - Qiita
moldとcargo watchを併用してより快適な開発環境を作る - Qiita
書き捨てるためのRust - Qiita

Twitter

histric

histric-1

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Greg KH「Rustにしても本質的には変わらない。過去のプレゼンみたか? そして補償すべきものは時代とともに変わる。今や悪意あるハードウェアからユーザースペースを守らなければならなくなった。」 https://t.co/KTQWIOnCXP」 / Twitter
Re: [PATCH 00/13] [RFC] Rust support - Greg Kroah-Hartman
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「仮にRustにしてメモリ安全が保証されたとしても、メモリ以外のコードについては何も解決してくれない。企業の役員どもは新しい機能を追加することについては余念がないが、保守に出すカネはないと来ている。保守をしているのは誰だと思う? インターンだぜ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「コミュニティが保守する」ってのは嘘だ。」 / Twitter
κeenさんはTwitterを使っています 「Rustに新たな概念I/Oセーフが導入されてる。ファイルハンドラを取り出したままファイルのデコンストラクタを走らせると浮いたハンドラができることがあるからそれをunsafeにしたい。 RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs https://t.co/nrG1sdrXje」 / Twitter
RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs
κeenさんはTwitterを使っています 「現在のライブラリの設計上もunsafeなんだけど明文化した感じかな?unsafeは本来はメモリ安全性についての機能だからIO安全性にも使ってる現状は邪道といえば邪道。 あとas_raw_fdとinto_raw_fdがややこしい問題を新しい型を導入して解決しようともしてる。」 / Twitter
☀sat🌛さんはTwitterを使っています 「今日はRustの識者たちにRustについて聞いたんだけど世の中そうそううまい話はなくてRustはRustなりに大変ということがわかった」 / Twitter
uint256_tさんはTwitterを使っています 「Rustから外側の世界に触れようとすると大変」 / Twitter
uint256_tさんはTwitterを使っています 「ブラウザはさっぱりわからん」 / Twitter
伊津野 英克さんはTwitterを使っています 「最近、言語仕様に非互換がないことの重要性を痛感する。少なくともrust みたくパッケージ単位で言語バージョンを指定できるようにしてほしい。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「Rustコードのレビューむずいな。自分で書く分には変数のライフタイムが見えるけど、人が書いたのをテキストだけでレビューするの無理だ」 / Twitter
Miura HidekiさんはTwitterを使っています 「つまりライフライムに色をつけるツールがあると喜ばれるってことかな? (作るとは言っていない」 / Twitter
mattnさんはTwitterを使っています 「C「所有権などない」」 / Twitter
mattnさんはTwitterを使っています 「というか、malloc の実装って(あんま知られてないのかもだけど)ユーザランドなので、たまーに良かれと思って malloc の実装をちょっと改造してリンクしたライブラリが「こっちは alloc するから使う側が free してね」って言う通りに free したら落ちるみたいな案件がある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Cの所有権は 俺の物は俺の物 お前の物は俺の物 では?」 / Twitter
かりやみつらないさんはTwitterを使っています 「所有権はみんなの心の中にあります」 / Twitter
Miura HidekiさんはTwitterを使っています 「かねがねRubyで静的解析して所有権の概念を持ち込みたいと考えている」 / Twitter
伊津野 英克さんはTwitterを使っています 「Rustやってると、データクラスに隠蔽はいらないじゃ、という気になってくる。必要なのは隠蔽化のコネクタとしてのインターフェイス(トレイト)なのよね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/xkuuxAD3mW ボローは着てても心は2フェーズ」 / Twitter
Two-phase-borrows - Guide to Rustc Development
κeenさんはTwitterを使っています 「Rustのメモリ管理を図示した説明。途中にあるスライドが動く資料って感じで分かりやすい。 🚀 Visualizing memory management in Rust | Technorage https://t.co/Wq9V81YqPs」 / Twitter
🚀 Visualizing memory management in Rust | Technorage
Masaki HaraさんはTwitterを使っています 「コンパイル時Mutexですね (一度にあるリソースを同時に触らないことを保証するのが&amp;mutで、そのロック順序を保証するための時間チェックがライフタイム)」 / Twitter
Masaki HaraさんはTwitterを使っています 「この「Rustにおける参照とはlockである」もqnighyが突然言い出した奇抜なアイデアではなくRust界隈ではしばしば使われる通例的な説明のひとつです」 / Twitter
令掛ベインさんはTwitterを使っています 「Rustでもスタックに積むものが巨大すぎると100段階ぐらいの再帰でStackOverflowするとかあるんだ」 / Twitter
κeenさんはTwitterを使っています 「Rust初心者がやりがちなRustっぽくない書き方。番兵使うなOption使えとか、リソース作ってから初期化するんじゃなくてRAIIしろとかそういうやつ。 Common Newbie Mistakes and Bad Practices in Rust: Bad Habits · Michael-F-Bryan https://t.co/U4ep9NmSPW」 / Twitter
Common Newbie Mistakes and Bad Practices in Rust: Bad Habits · Michael-F-Bryan
ドッグさんはTwitterを使っています 「Rust で Linux のメモリモデルをどう扱うか Linux perfbook の著者がいくつかのユースケースごとに一連のブログ記事を書いてる.まだ読んでないけどチラ見した限り面白そう | 'So You Want to Rust the Linux Kernel?' https://t.co/LrEAc1xgou」 / Twitter
So You Want to Rust the Linux Kernel? - Paul E. McKenney's Journal — LiveJournal

histric-2

yukiさんはTwitterを使っています 「いい記事!Rustのコードをどうやってチューニングしていくかを具体例を使って順を追って説明してくれている。cargo benchとcargo flamegraphを使って計測しながら取り組む。clone対処とdeserialize高速化をやってた。/Making slow Rust code fast https://t.co/jN7irZbyCW」 / Twitter
Making slow Rust code fast | patrickfreed's blog
monochromeさんはTwitterを使っています 「RustだとPartialOrdとかPartialEqとかが型システムに組み込まれているからおかしなことにはなりずらいよね」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/rL5pwxZXJL ここで勉強するのがRustをマスターするのに近道かなって思ったので読んでみる」 / Twitter
About this guide - Guide to Rustc Development
Miura HidekiさんはTwitterを使っています 「https://t.co/y7V96knUSL この辺、mmcに似ていると思って少し嬉しい。ただし、mmcはtとuが完全に同じになるのではなく、uにtが持つ型を加えるという感じの動作になる」 / Twitter
Type inference - Guide to Rustc Development
令掛ベインさんはTwitterを使っています 「Rustのsplit("")はすべての文字境界で切るようだ。JavaScriptのsplit("")も文字ごとに分解になるけど前後に空文字列がつく点で異なる / https://t.co/J6ysPflg1Y」 / Twitter
String in std::string - Rust
Uchio Kondo🍙さんはTwitterを使っています 「面白い。ASTからバイナリの間に3回もIRが / 2件のコメント https://t.co/9sg6QYiLbf “Rustコンパイラの処理の流れ(1). Rustのプログラムは以下のようなステップから構成されており、上から順に処理され… | by Takanori Ishibashi | Medium” (9 users) https://t.co/5i6zbodn4s」 / Twitter
Rustコンパイラの処理の流れ(1). Rustのプログラムは以下のようなステップから構成されており、上から順に処理され… | by Takanori Ishibashi | Medium
Uchio Kondo🍙さんはTwitterを使っています 「あれ、 https://t.co/jwbg7ME2ut だと、HIR-&gt;THIR-&gt;MIR-&gt;LLVM IR なので4つ、か...?」 / Twitter
About this guide - Guide to Rustc Development
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「それはRustじゃん...(Goのようなグリーンスレッドは無いが)」 / Twitter
medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「TSには言語標準のOption/Result型がないしGoには例外がないしJVMはメモリ食いまくるしPythonにはグリーンスレッドが無いからこの世界はクソ」 / Twitter
monochromeさんはTwitterを使っています 「GCバグ取れた。 いろいろと怪しいことをやっているとRustでも普通にdouble freeとか発生する。 https://t.co/cNFLkicNJA」 / Twitter
Fix double free bug. · sisshiki1969/ruruby@dd09078
Uchio Kondo🍙さんはTwitterを使っています 「Rustの `;` 、なんというか「 `;` がないブロックはその値が外に出ていくんだなあ」的な認識になるので、これはこれと思っている。ifやmatchも同じ挙動だし。」 / Twitter
🍣さんはTwitterを使っています 「個人的には、関数はもちろん、ifとかmatchとかも全部含めて `{...}` の中で最後に評価された値がそのブロックの値になる、っていうのは一貫性があって好き(ついでに、わざわざ return を書いているところは early return なんだなというのが一目で分かるのも良いと感じる)」 / Twitter
ドッグさんはTwitterを使っています 「mustang の作者が,メモリ安全性と I/O 安全性とパフォーマンスを売りにした新しいシステムコールの wrapper ライブラリ書いてるのか.std を全部移植して Rust 本体にマージされるのが最終目標 | 'Porting Rust's std to rustix' https://t.co/Tg8zkxmO8G」 / Twitter
Porting Rust's std to rustix · sunfishcode's blog
ドッグさんはTwitterを使っています 「- unsafe な処理が syscall の wrapper 実装内で完結するので,呼び出し側で unsafe 使わなくて良い - Rust 製なので libc を経由しない - Rust 文字列から変換した C 文字列をスタック置くなどの最適化を行うことで,std より少し速い」 / Twitter
ドッグさんはTwitterを使っています 「bytecodealliance org にホストされてるのでお仕事でやってるのかな.複数のバックエンドを持てるようになってて,WASI バックエンドも開発中 https://t.co/ZzShJWCPSp」 / Twitter
rustix/src/imp/wasi at wasi · bytecodealliance/rustix
KOBA789さんはTwitterを使っています 「「Rust のコンパイルエラーは親切だから言うとおりに直せばなんとかなる」ってのは8割くらい本当なんですが2割くらいは通用しなくて、それは大局的な設計がそもそも Rust のルールに合ってないというケースです。しかもそういうときは細かい修正を積み重ねた上で詰んでちゃぶ台返しを食らいます」 / Twitter
uint256_tさんはTwitterを使っています 「Rustで何かを書き直す時は、だいたい設計ごと変えがち。」 / Twitter
monochromeさんはTwitterを使っています 「Rustでパーサコンビネータを使ってると、エディタの支援機能で表示される変数の型がやたらに長くなって辛い」 / Twitter
かりやみつらない 3042798775655さんはTwitterを使っています 「ほかの言語は「学習コストが低い」んではなくて、[コンパイルが通るようになるまで(あるいは動き出すようになるまで)の学習コストは低いが正しく動かすための学習コストは高い」でしかない…」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C++でstd::moveをちゃんと使うために、無駄な構造体・クラスのコピーを減らそうとコピーコンストラクタを=deleteしていくと、アホみたいにコピーしてるところ見つかるので、move or copyを明示的に使うRustはわかりやすくて便利。人間は暗黙的な変換に慣れすぎてる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C++でPromise的なコードや現在のスレッドやバックグラウンドスレッドに小さなタスクを作るときにラムダ多用することになるけど、暗黙的なコピーになっちゃうので一見わからん」 / Twitter

Kohei YamaguchiさんはTwitterを使っています 「Cranelift、前の世代ではIRの命令を再起的に変換していくスタイルを取っていたのでIRからTarget InstへのN-to-1の変換ができなかったけど、今の世代ではTreeにしてmatchを取るようにしたから対応できるようになったという理解でいいのかな」 / Twitter
ぬるぽへさんはTwitterを使っています 「動的型付けな言語でもドキュメントに関数の型を書けという声が一定の支持を集めるように、C++のAPIのドキュメントでもオブジェクトのライフタイムを書けという声が一定の支持を集めるようになったりして まずはC++用のライフタイムアノテーションの記法の開発から始まる」 / Twitter
ぬるぽへさんはTwitterを使っています 「いや実際C++用のライフタイム/所有権のアノテーション割とありうるな・・・」 / Twitter
Masaki HaraさんはTwitterを使っています 「JavaScriptがRustより圧倒的に優れているところが1つあって、それは言語仕様書 (C, C++, Javaなども同様にすごい)」 / Twitter
Phil EatonさんはTwitterを使っています 「I wrote a new blog post on parsing, compiling, and virtual machine evaluation for a super minimal Lua implementation written from scratch in Rust! https://t.co/8qFviEecJo https://t.co/d1MGArlErR」 / Twitter
Writing a minimal Lua implementation with a virtual machine from scratch in Rust | notes.eatonphil.com
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Rustコンパイラはなぜこんなに遅いのか? Rizen 5950X+128GB RAMでも2分以上かかる。ビルド方法、デバッグシンボル、プロファイリング、使っているライブラリのバージョンなど様々な要因を調査した結果。 https://t.co/n7VxBozBGv」 / Twitter
Why is my Rust build so slow?
yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「Rustのstd::task::Contextは型じゃなくてトレイトにすべきだったのではないだろうか。 これがトレイトなら、スケジューラが独自のSleep機能を有するFutureを提供しやすくなるし」 / Twitter
uehajさんはTwitterを使っています 「@ntaoo 2013年ごろ、1.0が出るはるか前には実はRustに自動GCはあったんですよ。でも言語の位置付けを明確にするために敢えて削除されました。 https://t.co/bhBErxEa7q」 / Twitter
https://pcwalton.github.io/2013/06/02/removing-garbage-collection-from-the-rust-language.html
ntaooさんはTwitterを使っています 「@uehaj 読みました。C/C++を競合相手と定めて、win, iOS, android等の多様なプラットフォームの要求に柔軟に対応できるようにあえて削除されたんですね。Thank you for the pointer!」 / Twitter
κeenさんはTwitterを使っています 「普段使いはするけどあまり自分で書くことのない手続マクロはどういう仕組みなのか実感してみようの記事 Procedural macros under the hood: Part I | The IntelliJ Rust Blog https://t.co/bFB7r8XQGf」 / Twitter
Procedural macros under the hood: Part I | The IntelliJ Rust Blog

chumsky - Rust
発展的な移行戦略 - エディションガイド
Rustのビルドを高速化する方法 | POSTD
Why does Rust generate LLVM IR in an architecture-specific way and using empty arrays for mutable static variables? - Stack Overflow
Drop alignment padding fields in type definitions in LLVM IR - compiler - Rust Internals
brendanzab/codespan: Beautiful diagnostic reporting for text-based programming languages.

TypeScript・JavaScript

TypeScript

構文解析

Masaki HaraさんはTwitterを使っています 「microsoft/TypeScriptのパーサーの面白いところ。シフト演算子 >> なんて滅多に使わないだろうということで > を優先的に切り出すようになってて、 >> が必要なところ (式の直後) で再パースするようになってる。 (Foo<Bar<T>> みたいな形で出てくることのほうが圧倒的に多い)」 / Twitter
Masaki HaraさんはTwitterを使っています 「経験上、こういうのは >> で切り出しておいて必要に応じて分解することのほうが多いし一般的だと思う」 / Twitter
Masaki HaraさんはTwitterを使っています 「JavaScriptという制約の中で極限までチューニングしてる感じがあって強い」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみに前提として字句解析器がオンデマンドでトークナイズする仕組みになっているというのがあるわけですが、実はそもそもJavaScriptの仕様上の問題でこういう設計になることがほぼ確定しています」 / Twitter

κeenさんはTwitterを使っています 「JITエンジンは作ったことないので実際のところは分からないけど理論的にはTypeScriptの型システムは健全性がないのでコンパイルの補助には使えない。使うと簡単に壊れたコードを生成させられる」 / Twitter
Miura HidekiさんはTwitterを使っています 「ヒープアロケーションをエスケープ解析しまくってスタックアロケーションに出来るなら勝てると思う(脱最適化が必要などJITコンパイルでは限界があると思う)。それをしないとJITコンパイルの実行時の情報を使ってのコンパイルには敵わないと思う。」 / Twitter
トデス子'\さんはTwitterを使っています 「TSの型を全面的に信じてAOTで機械語吐く、別の型が入りそうなところは実行時チェックでslow pathに逃がすというのはできそうだけど、JSのJITに勝てるだろうか。anyやasを厳格に廃したコードで固めればワンチャンあるんかな」 / Twitter
エヌユルさんはTwitterを使っています 「DartのAOTがDartVMやJavaScriptにコンパイルしたDartのパフォーマンスに劣らないのを見るとパフォーマンスの面ではいけそう 互換性切って同等程度のパフォーマンスで良いかは謎」 / Twitter
エヌユルさんはTwitterを使っています 「asm.jsでは||で数値つけるとかで型推論の補助して高速化してたし TypeScriptの型システムを応用してもそれぐらいの補助は出来ると思うんですよね でもそれやって限られたシステムのみで高速化するならwasm使えって感じではある」 / Twitter
zakkiさんはTwitterを使っています 「MSRのStatic TypeScriptがそれでフットプリントは小さく出来るけど速度的にはJITに勝てないだったような https://t.co/52uOQp077W」 / Twitter
Static TypeScript: An Implementation of a Static Compiler for the TypeScript Language - Microsoft Research
zakkiさんはTwitterを使っています 「そもそもがちっちゃいデバイス向けで速度に振ってないっていうのもあるとは思うので、強い会社が無限に頑張れば速度も頑張れるのかも」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「TypeScriptに入ったすごい改良。 場合分けによって型が異なる処理を、(分解したunion型の場合) キャストなしで書けるようになった: {flag, obj} = x; if (flag === 'A') { obj.toFixed(); } // numberの場合 if (flag === 'B') { obj.toUpperCase(); } // stringの場合 https://t.co/ZbvXxaWGue」 / Twitter
Control flow analysis for destructured discriminated unions by ahejlsberg · Pull Request #46266 · microsoft/TypeScript
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORM使ってるときもよく似たことを感じたけど、TypeScriptが普通のオブジェクト型の型定義に対してリフレクションさえできればio-ts独自の型定義APIを覚えなくて済むのになぁ。」 / Twitter

Union Types

Union Typesは直和型ではない | 雑記帳
Discriminated union typesに対応する日本語用語いろいろ
Mapped Types とか Union Types とかって何だっけ - Qiita
TypeScriptのUnion型(合併型、共用体型)の概要と具体例 | Enjoy IT Life
ユニオン型 (union type) | TypeScript入門『サバイバルTypeScript』
TypeScript の共用体型(Union Types)は or ではない(追記あり) - 30歳からのプログラミング
TypeScriptの型: 共用体を定義する (Union types)|まくろぐ
TypeScript: Handbook - Unions and Intersection Types
判別可能なUnion型 - TypeScript Deep Dive 日本語版
Union Types | Flow

OpenAPI

yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「もうJavaScriptを使ってサーバーサイドをやる時代は終わったのか」 / Twitter
Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu JavaScriptはどうだかわかりませんが、TypeScriptだとこういうのもあるみたいですね。私は一度も使ったことがないのでよくわかりませんが… frourio - Fast and type-safe full stack framework, for TypeScript https://t.co/EiGaOocoME」 / Twitter
frouriojs/frourio: Fast and type-safe full stack framework, for TypeScript
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix これはprotobufやOpenAPIに類する物のTS版ですかね...」 / Twitter
Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu 型情報を上手く使って自動生成する系として考えるとそういうものなんですかね…? 私はまだよくわかってませんが、以前mizchiさんのこちらの記事を見て面白そうだな…と思ってただけです。 https://t.co/jxYpcDAioc」 / Twitter
2021年 は Fullstack Next.js 元年なので、有望な Next.js 系フレームワークを全部試した
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix OpenAPIのTS向けバインディングっぽいですね。 使いたいですがサイズが大きすぎる...」 / Twitter

Deno

Denoの分散ホスティング「Deno Deploy」ベータ2公開。FiIe System API追加、クラッシュレポートなど - Publickey
Denoが暗号化、メッセージ、ネットワークなどのWeb APIサポートを拡張
「Deno 1.14」が公開 | OSDN Magazine
Denoのフロントエンド開発の動向【2021年秋】

parseInt

Kazuho OkuさんはTwitterを使っています 「JavaScriptのparseInt、もともとJavaにあったAPIを持ち込んだのでスクリプト言語との組み合わせで変な問題が出がち、というのはあると思います」 / Twitter
Yukihiro MatzmottoさんはTwitterを使っています 「@kazuho 文字列じゃないものを渡された時に勝手に文字列化した上でparseするという設計上の判断がダメだっただけだと思いますが。単にエラーにすりゃよかったのに。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yukihiro_matz その意味だと、それこそRubyのto_iのようにインスタンスメソッドにすべきだったという話だと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だんだん思い出してきた。これJS実装したことある人なら耳タコができてる話。なにしろ組込関数の定義ひとつずつに NOTE XXX is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yukihiro_matz 補足です。JavaScriptではString#methodすら、レシーバ(this)を文字列変換してから処理を行うようと定義されていて、これはメソッドの再利用を可能にするためです。 文字列を数値変換するメソッドで型チェックするのはこのような慣習から外れますし、また...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「みたいな注記がある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yukihiro_matz Stringのインスタンスメソッドとして他のやつと同様に定義すれば、他のインスタンスメソッドの誤用問題が特にないことを考えても十分であった可能性が高い、と言えるかと思います」 / Twitter

JSX

Masaki HaraさんはTwitterを使っています 「ECMAScript読んでからJSX読むと色々な点がunderspecifiedでびっくりするな https://t.co/ja6vJuqHT9」 / Twitter
JSX | XML-like syntax extension to ECMAScript
Masaki HaraさんはTwitterを使っています 「JSXFragment: ... `<` `/` `>` とかもかなり曖昧 (TSの実装見る感じだと `<` `/` で1トークンっぽい)」 / Twitter
Masaki HaraさんはTwitterを使っています 「> names of JSXOpeningElement and JSXClosingElement should match これもECMAScriptだったら § SS: Early Errors § SS: JSXElementNameList と2セクションかけて説明されてるしそのほうが正確」 / Twitter
Masaki HaraさんはTwitterを使っています 「なんならBabelとTSで挙動が違う例あるな。これとか。 <a href= "\" />」 / Twitter
Masaki HaraさんはTwitterを使っています 「まあこれはTSのバグと言ってよさそうだ」 / Twitter
「JSX」って名前のものが色々あって混乱する - Qiita
React - Wikipedia
JSX - Wikipedia
JSX の導入 – React
JSX - TypeScript Deep Dive 日本語版
ES5 + Facebook JSXで書かれたJavaScriptコードベースをTypeScriptに移行させる - CARTA TECH BLOG

本物のクロージャ

SODA NoriyukiさんはTwitterを使っています 「昔これを読んでからJavaScriptが好きになった」 / Twitter
にゃんだーす☆わんさんはTwitterを使っています 「ブレンダン・アイクがJavaScriptを作った顛末は『Coders at Work プログラミングの技をめぐる探求』(2011年オーム社、Peter Seibel (著), 青木 靖 (翻訳))に載ってる。 画像は138ページより引用。 https://t.co/KxpkcBJCGy」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「ほんとこれ>JavaScriptには本物のクロージャがある」 / Twitter
にゃんだーす☆わんさんはTwitterを使っています 「アイクは「その結果としてほかの人たちがしたのと同じ間違いを犯すことになりました」としてAlgol風のLispを実装しようとした先駆者と同じ轍を踏んだことを語っているが、それでもJavaScriptにクロージャを持ち込めたことは世界の歴史を変えたと思う。JavaScriptがVBScriptにならなくてよかった。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「ECMAScript 3って、1999年なのか… かなり間がある… (JavaScript の初版は 1995年)」 / Twitter
Masaki HaraさんはTwitterを使っています 「JavaScriptがSchemeの影響を受けているという話、関係者がそう言ってるならそうなんだろうけど、実はfunctionがクロージャになったのってES3のタイミングなんですよね。クロージャがない時代のJavaScriptはどの辺りがSchemeだったんだろうというのは少し気になるところ。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「クロージャでこそなかったけど、関数がfirst class objectであったのは当初からな気がする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「んーってか記憶が曖昧だけどドキュメントみると、ECMA262第3版が出る以前のJavaScript 1.3の段階でクロージャサポートしてる。 "The inner function can use the arguments and variables of the outer function. The outer function cannot use the arguments and variables of the inner function."」 / Twitter
Kazuho OkuさんはTwitterを使っています 「つまり、function expressionがなくfunction statementだっただけ。https://t.co/VdetvSvH0L」 / Twitter
Working with Objects
Kazuho OkuさんはTwitterを使っています 「JavaScript 1.2にも同じ文章あるから、少なくとも1997年のNetscape Navigator 4.0リリース時にはクロージャ対応だったと言えそう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「source: https://t.co/bHfxPYRuQ3」 / Twitter
Wayback Machine
Kazuho OkuさんはTwitterを使っています 「@qnighy https://t.co/egiRC6E6ko こんな感じです。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@kazuho ありがとうございます! 標準より一足早くサポートしてたんですね。ただ、やはりJavaScript 1.0の時点では存在しなかった可能性があるので当初の疑問は残ったままですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@qnighy "WHAT'S NEW IN JAVASCRIPT 1.2" に "The nested function can use the arguments and variables of the outer function. The outer function cannot use the arguments and variables of the nested function." ってのが入ってますね。1.1以前はクロージャではなかったと」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@qnighy cf. https://t.co/QPriTTrEnF (これhttps://t.co/RfxYAivpm1のコピーだと思う)」 / Twitter
What's New in JavaScript 1.2

blog

V8

Understanding the ECMAScript spec, part 1 · V8
Understanding the ECMAScript spec, part 2 · V8
Understanding the ECMAScript spec, part 3 · V8
Understanding the ECMAScript spec, part 4 · V8

フロントエンドBlog

dtslintで型定義ファイルをテストする | フロントエンドBlog | ミツエーリンクス
React Native + ExpoでWindowsからHello World | フロントエンドBlog | ミツエーリンクス
Vue Test Utilsで始めるスナップショットテスト | フロントエンドBlog | ミツエーリンクス
Web Componentsの実用に向けて | フロントエンドBlog | ミツエーリンクス
aria-current属性と一般兄弟結合子で作るステップUI | フロントエンドBlog | ミツエーリンクス
サイトデザインの品質を上げる3つのセルフチェックリスト | フロントエンドBlog | ミツエーリンクス

ベインのブログ

Mapをレコード代わりにするための型付け - ベインのブログ
関数を渡すvs.エフェクトを返す - ベインのブログ

10 年前に JavaScript で Flash Player を開発し買収された話
大統一 Node ツールチェイン Rome の野望 現状の実装 - mizdev
Chromium Blog: Chrome is up to 23% faster in M91 and saves over 17 years of CPU time daily
なぜ ES2022 で文字列リテラルを使った import/export ができるようになるのか | サイボウズ フロントエンドエキスパートチーム
型のある言語は一度は経験するべきだと思った出来事が起きた - やわらかテック
Kazuho OkuさんはTwitterを使っています 「「グローバル空間に生えている関数は基本ろくなものではない(暴論)」wwww良い記事 / https://t.co/TnFXLhgM4b」 / Twitter
JavaScript で parseInt / parseFloat を使わない方が良い理由
Kazuho OkuさんはTwitterを使っています 「グローバル関数でもencodeURI系はマトモだと思うけど、まああそこに置く必要ないよね感はある」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「> 当時の状況として、MicrosoftがWindows+Internet Explorerで市場を独占しようとしていて 脅威になったIEはIE3以降でしかないけど、IE3のリリースは1996年だし、その頃はNetscape 2がすでにリリースされてて市場をほぼ独占してたので、歴史認識が正しくない話を混入してる https://t.co/ubKruWNzTM」 / Twitter
JavaScriptはJavaのScript版(であろうと努力はした) - きしだのHatena
Makoto Kato ︎︎さんはTwitterを使っています 「Windowsが市場を制していたというのは正しいのだが、1995年にJavaが発表されて、Javaさえ動けばOSなんでもよくない?っていうのがこの頃みんなが思い浮かべてた話。IE3でJava applet対応してるわけで、Java陣営のIE脅威論はその後MSが独自拡張しちゃうからだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ちょうどトレーニングでレドモンドにいる時に、Javaの裁判が和解したので、ちょっと覚えてる。裁判やってても、会社対抗ホッケー大会はやってたそうで。。。」 / Twitter
Sanitizer APIの使い方 | フロントエンドBlog | ミツエーリンクス
fp-ts 2.8.0 で追加された bind, bindTo について - DEV Community
マイクロソフト、JavaScriptに型宣言を追加しつつトランスパイラ不要の「Types as Comments」をJavaScript仕様策定会議のTC39に提案へ - Publickey

窓の杜

「Node.js 16」が公開 ~Apple Silicon向けのプリビルドバイナリを初めて提供 - 窓の杜
「Node.js 17」がリリース ~V8がv9.5へ、「OpenSSL」がv3.0へとアップデート - 窓の杜
Googleが提供するビジュアルプログラミングを活用した知育ゲーム「ブロックリー・ゲーム」 - どれ使う?プログラミング教育ツール - 窓の杜
懐かしのRPGをJavaScriptで手軽に作れる! ゲーム好きの心をつかむ「ハックフォープレイ」 - どれ使う?プログラミング教育ツール - 窓の杜
Microsoft、JavaScriptの型構文を提案へ - 窓の杜

OSDN

ESモジュールをサポートした「Next.js 18」公開、Rustコンパイラも導入 | OSDN Magazine
米Microsoft、「TypeScript 4.5」を公開 | OSDN Magazine

POSTD

JavaScriptのバンドルとトランスパイルが不要なモダンWebアプリ | POSTD
中身のないnpmパッケージ「-」が70万回以上ダウンロードされる— その理由とは | POSTD

スライド

がくぞさんはTwitterを使っています 「Tagged Type だ。型で制約を表現しようとするとやっぱりNominalの方が有利なのだろうか? 確かに構造は同じだけど意味を変えたい型というのは存在するよなー https://t.co/3yvtHK7JVN」 / Twitter
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2 - Speaker Deck
union types - Google 検索
JavaScriptはなぜシングルスレッドでも非同期処理ができるのか/Why Can JavaSctipt Invoke Asynchronous in Single Thread? - Speaker Deck

infoQ

JavaScript

最新のJavaScriptによるパフォーマンスの向上
BlockLike.jsがMIT ScratchからJavaScriptプログラミングへの移行を容易にすることを目指す
V8は、パフォーマンスを向上させるために最適化しないコンパイラステージを導入
リジューム可能なJavascriptフレームワークQwikとは
Parcel 2: Rustベースの10倍高速なJavaScriptコンパイラ、モジュラー構成、差分バンドリング
Redwood - Ruby on RailsのエクスペリエンスをJavaScriptで実現

TypeScript

TypeScript4.1にテンプレートリテラルタイプが追加された
Typescript 4.2 リリース。型と開発者エクスペリエンスが向上
TypeScript 4.3がプロパティの書き込みタイプを改善
SentryはフロントエンドをTypescriptに移行 - 教訓
AmazonがAWS Lambda Powertools TypeScriptを発表
TypeScript 4.6ベータ版で型推論とエラーチェックが改善

Deno

新しいDenoモジュールによるVueアプリケーションのビルドとコンパイル
Denoは、自己完結型のスタンドアロンバイナリにコンパイルできるようになった
Deno 1.5、RustベースのJavaScriptコンパイラによりビルド性能が3倍向上
Aleph.jsを使用したDenoのサーバレンダリングWebアプリケーション

Vue

Vue 3は大規模な使用に取り組むための新しいAPIと共にリリースされた
Vue3のネイティブCSS変数テンプレートとの統合検証
新しくリファクタリングされたVue.jsのビルダーVite 2.0は、依然としてスピードにフォーカスしており、フレームワークに依存しないようになった
Vuenion 2021の今 - Vue Amsterdam 2021でのEvan You氏の講演

新しいテンプレートDSLのTempuraは解析の速度とサイズにフォーカスする
Flowタイプチェッカーはただの型付きのJavaScriptではなく、今やFacebookのニーズを満たす中核を担う
Erlangにインスパイアされた言語GleamがJavaScriptにコンパイルされるようになった
ReScript - 完全な型指定を備えたJavaScript代替言語
RxJSの状態 - NgconfでのBen Lesh氏の講演
Next.JS 10は、自動画像最適化、国際化されたルーティング、およびWebバイタル分析をもたらす
非同期コードのテスト - RxJS Live London
React Native 0.64でHermes JavaScriptエンジンがiOSで利用可能に
AngularJSが正式にサポート終了へ

Zenn

TypeScript 4.1による型レベルパーサコンビネーター
TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
unsafety-zoo.ts/src at master · todesking/unsafety-zoo.ts
TypeScriptにはanyが4種類、undefinedが3種類、……
ドッグさんはTwitterを使っています 「なるほど型推論が2段階になっていて,上向きに型情報を収集しといてから下向きに推論していく時に単一化するのか | 'TypeScriptにはanyが4種類、undefinedが3種類、……' https://t.co/nByMZ4FhhJ」 / Twitter
ドッグさんはTwitterを使っています 「ループ時のフロー型の推論で繰り返すのもなるほどと思ったけど,これ収束したかの条件どうなんだろう.silentNeverType が現れたかでチェックしてるのかな」 / Twitter
そろそろ技術ブログで setCount(count + 1) と書くのはやめませんか
TypeScript で T 型と {...} の併用で型チェックが機能しなくなる罠
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"「必須だけど絶対に値が存在しないキー」を作る" なるほどー! / 他6件のコメント https://t.co/RAzZm2lvNw “TypeScript で幽霊型っぽいものをつくる” https://t.co/uY8zcGdfO1」 / Twitter
TypeScript で幽霊型っぽいものをつくる
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幽霊型、とはちょっと違うけど、使用しない型変数を使うことで、「この型はTであってほしいけど事前にチェックしろよ」みたいな意図を示す型がほしくなったのでやってみようと思う。 type Maybe&lt;T&gt; = unknown; みたいな」 / Twitter
GitHub上のDenoモジュールの配信システムを作った
any、またお前か——配列とhomomorphic mapped typeの罠
wint 𝄆 揚げ出しエンジニアさんはTwitterを使っています 「分割代入でまでフロー解析による型絞り込みが発生するのか…。更に進化するなぁ… ─── TypeScript 4.6で起こるタグ付きユニオンのさらなる進化|uhyo https://t.co/WUnhrIpVyR #zenn」 / Twitter
TypeScript 4.6で起こるタグ付きユニオンのさらなる進化
がくぞさんはTwitterを使っています 「分割代入によって変数同士の関係性を持てるようにするっていうのは目から鱗だなぁ……」 / Twitter
TypeScript 4.5 以降で ESM 対応はどうなるのか?
mints: 5.7kb の TypeScript コンパイラを作った
TypeScriptのJSDocサポートでできること、できないこと
あなたが知らないかもしれない TypeScript の豆知識
JavaScriptのレガシー挙動を定めたAnnex Bをひたすら読む記事
がくぞさんはTwitterを使っています 「動的に正規表現を合成したい、みたいな話は大抵の場合parser combinator使った方が楽なのではと思ってしまうかなー」 / Twitter
TypeScript 4.1による型レベルパーサコンビネーター
Masaki HaraさんはTwitterを使っています 「JavaScriptの演算子の優先順位と「禁止ルール」の一覧|Masaki Hara https://t.co/8nStJswDoi #zenn 新作です。演算子の優先順位って、表にして並べたら終わりじゃないよね? っていう話です。」 / Twitter
JavaScriptの演算子の優先順位と「禁止ルール」の一覧
Native ESM + TypeScript 拡張子問題: 歯にものが挟まったようなスッキリしない書き流し
JavaScriptの参照レコードとthisバインディング
JavaScriptの識別子

Qiita

NestJS

NestJSのススメ ~Expressを超えてゆけ~ - Qiita
NestJS入門~NestJSの基本構造を理解しよう~
NestJS触ってみたらいい感じだった! | cloud.config Tech Blog
TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ | DevelopersIO
NestJS - A progressive Node.js framework
Documentation | NestJS - A progressive Node.js framework
nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀
nestjs

TypeScriptの型レベル連結リスト活用術:型を変えられるコンテナを作る - Qiita
Deno触ってみた - Qiita
Denoの登場でNode.jsの時代は終わるのか? - Qiita
7万行のJavascriptコードをTypescriptに移行した話 - Qiita
TypeScript4.1から正式に登場したテンプレートリテラル型について - Qiita
TypeScriptで、class以外の型にinterfaceをimplementsする(型クラスとインスタンスのデザインパターン) - Qiita
JavaScriptのコメントは4種類ある - Qiita
「Denoにはnpmがない」は部分的に正しい - Qiita

Twitter

histric

histric-1

Masaki HaraさんはTwitterを使っています 「ES5.1まではホスト定義の関数が参照を返す可能性があることが明記されていたのか (ES2015で関数が参照を返すのが禁止された)」 / Twitter
mod_poppoさんはTwitterを使っています 「WSHのJScript(ES3準拠)ではScripting.DictionaryのItemメソッドが参照を返したりする」 / Twitter
ウェブエンドエンジニアさんはTwitterを使っています 「TypeScript はなんか綺麗な一貫した世界観があるのではなく、現場的なユースケースに対応可能な異常な型を作れたり異常な脱出ハッチの組み合わせで動くので継続的に見てる人にしか存在意義がわからないハックやオプションがいっぱいあって教えづらい」 / Twitter
がくぞさんはTwitterを使っています 「Utility TypesはじめType Manipulationは正しく型レベルプログラミングなので、アドホックに使うとすぐにHowの詳細に入り込んでしまい、その型が何を表してるのかを端的に表現されなくなってしまうんですよね。 なので適宜type aliasを使ったり型名から構造が推測可能な状態にしておきたいですねー」 / Twitter
A-MikaboshiさんはTwitterを使っています 「出来るTypescriptエンジニアほどUtilityTypeを多用すると思うけど、でも、あれを使うとインテリセンスを使わないと、その型に何を入れれば分からない...っていう本末転倒な状況になるので使いすぎはアンチパターンだと思う。Twitter内のTypescripter諸君はどう思う?」 / Twitter
A-MikaboshiさんはTwitterを使っています 「私は個人的なルールとしてUtilityTypeの使用は一層にとどめるようにしている。3〜4層に渡るUtilityTypeの使用は人の認知能力を超えると思う。」 / Twitter
A-MikaboshiさんはTwitterを使っています 「Javascriptに@typesを追加しているライブラリが使いにくいなって感じるのはUtilityTypesを多用しているせいだと思う。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「この問題は同期的なAPIのpostMesssageみたいなのがWorkerだけに認められればいい話なんですかね / 他14件のコメント https://t.co/3P9ngNopkV “今Partytownがヤバい。JavaScript Sandboxの未来はどっちだ?” https://t.co/tSZ1qmVHWi」 / Twitter
今Partytownがヤバい。JavaScript Sandboxの未来はどっちだ?
yumetodoさんはTwitterを使っています 「BT https://t.co/B2nvzrJjsV Node.jsでDeno向けに書かれたコードを動かすためのshim。まずDeno向けに書いてNode.jsはshimで対応というパターンも今後出てくるのだろうか。denoland/deno.ns https://t.co/9biZ6Ipu72」 / Twitter
denoland/deno.ns
zakuroさんはTwitterを使っています 「TS の型システム、強力ではあるけどあれはあくまで JS に型をつけるだけで、コンパイル通ったらほぼ動作するみたいな安心感があるタイプの型システムではない」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「個人的には、引数と戻り値の型は大事なドキュメントだしちゃんと書きたい、とは思うんですけど、やっぱり書きたくない、というニーズもあるんですね。その意味で型推論できることってやっぱ価値があるんだな、と。」 / Twitter
禁酒さんはTwitterを使っています 「TypeScript,自分は静的な型チェックで実行前に型エラーを発見できる体験が好きなのであって,関数引数にいちいち型アノテーションを付けるのが好きなのではない事に気付かせてくれた偉大な言語」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あと関連して、型推論が効くとどういう型の関数にすべきか分からない状態で適当に書いても部分的にせよどういう型にするべきかコンパイラーが教えてくれるのはありがたいですね。」 / Twitter
がくぞさんはTwitterを使っています 「結局現状で例外機構を静的検査と上手く織り合わせる方法があまり無くて(Scala3.1のsafer exceptionがこの辺うまい解決になるのか期待してるけど)静的検査を活用したい場合に今だとこういう方向になりがちですね…… ただTSの場合do-notationも無いし単純なunion typesで十分な場合も多そう」 / Twitter
azuさんはTwitterを使っています 「throw errorじゃなくて値を返すEitherを使うという話 "Stop catching errors in TypeScript; Use the Either type to make your code predictable" https://t.co/IbjPFQb1MW #TypeScript」 / Twitter
Stop catching errors in TypeScript; Use the Either type to make your code predictable
がくぞさんはTwitterを使っています 「例外機構の型検査を強化するにはどうしても言語側の拡張が必要になってきちゃうけど、Eitherであれば現状の型システムの範囲でユーザが定義すれば使えちゃうので色々便利というのある」 / Twitter
がくぞさんはTwitterを使っています 「TypeScriptの場合、EitherよりもValidatedの方が欲しくなるケースが多いんですけどいかがでしょうか?」 / Twitter
がくぞさんはTwitterを使っています 「まー型クラスがないしStructural Typingな言語でEitherとValidatedを区別する必要もないと言えばないのですが……(まぁでもEitherでapplicativeな合成を優先させたりしてるとよく知ってる人ほど間違えるみたいな罠になってしまう」 / Twitter
がくぞさんはTwitterを使っています 「そう言えばStructural TypingのTypeScriptでEitherとValidatedの区別ってどうつけてるんだろうと思ってfp-ts見てみたらValidationTはdeprecatedになっていた https://t.co/EbviPingz4 操作側でEitherをValidatedとして扱う感じぽいなー。やっぱそうなるか https://t.co/a5ZV8Dyd22」 / Twitter
fp-ts/ValidationT.ts at cb9821d92f076a887dc9952e08ef039f778cdb3b · gcanti/fp-ts
Getting started with fp-ts: Either vs Validation - DEV Community
mod_poppoさんはTwitterを使っています 「第10節:TypeScriptで関数の行先を指定するのに使うのはtype annotationで、普通はtype assertion(as)は使わなくないか」 / Twitter
mod_poppoさんはTwitterを使っています 「第13節:f(x)だとネストした時にカッコが多くなって大変だ。うんうん。だから独自のパイプライン記法でP(3)['>'](f)['>'](g)と書く、と。カッコが多いのはどっちだ?」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「大森さんの記事、JavaScriptの構文がJavaによせられたこととか、Dateみたいな基本的なライブラリがJavaからの移植ってことに触れられてなくて、単にJavaが流行ってたから名前をもってきただけと説明してるな。 https://t.co/uOIz7AR3wD」 / Twitter
よくいる「JavaScript」を「Java」と略す人、違いをどう説明すればいい? | 日経クロステック(xTECH)
布団でタイムワープしたfu7mu4さんはTwitterを使っています 「@kis @kmizu Java のスクリプトっぽいのは groovy といってな」 / Twitter

histric-2

令掛ベインさんはTwitterを使っています 「package.json に type: module をつけるとよいという話を聞いて、TypeScriptの module:esnext のプロジェクトを Node.jsで動かせるようになった」 / Twitter
令掛ベインさんはTwitterを使っています 「webpackでバンドルして動かす方針だとprismaが動かない (ブラウザ上では動かないよというエラーが出る) から助かった」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「TypeScriptで避けるべき機能: - enum (JS本来の型ではないため矛盾が生じる) - namespace (上に同じ) - decorators (JSで正式承認されるまで待つべし) - privateフィールド (# privateFieldを使うべし) https://t.co/hjwcqTq4ld」 / Twitter
TypeScript Features to Avoid
Kazuho OkuさんはTwitterを使っています 「JS実装したことあるので説明できるけど {}+[]は分からん、と思って試したら、この表と違う結果になった」 / Twitter
Hカップの論文を読むタイプのMLエンジニアver0.02さんはTwitterを使っています 「犯罪にも認定されるjavascriptの反意図性 https://t.co/VH5urmXacJ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* 浮動小数の挙動は一般的 * minmaxは可変長引数サポートするならこうなるのが自然 * binary operatorな+は、いつ文字列変換するか * 配列の文字列変換はarray.join(",")と等価 * オブジェクトのデフォルトの文字列変換は[object Object] * あとは一般的な型変換と結合順序 そんなにキモくないと思う」 / Twitter
mattnさんはTwitterを使っています 「@kazuho @tkihira むずかしい... https://t.co/p9Z2mB9Ew7」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 jsこそのちにクラス定義が追加されたり、prototypeプロパティが使われなくなってプロトタイプベース言語が使われない証拠になっている気がします」 / Twitter
Object のプロトタイプ - ウェブ開発を学ぶ | MDN
Chromeバージョン91は最大23%の高速化。JavaScriptエンジンを改良 - PC Watch
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「軽量(&lt;1KB)・高速なJavaScriptオブジェクト比較ライブラリ。diff(obj1, obj2) とすると、どの属性値が新たに作成・変更・削除されたかの列を返す。依存はゼロでTypeScriptもサポート。Date()やRegExp()にも使える。 https://t.co/mzwPrjcDzL」 / Twitter
AsyncBanana/microdiff: A fast, zero dependency object and array comparison library. Significantly faster than most other deep comparison libraries and has full TypeScript support.
yukiさんはTwitterを使っています 「TypeScriptのような型チェッカーを実装する連載。現在はPart6まであるみたい!型チェックの実装、今作ってる自作言語に組み込んでみようかと思っていたので、かなり参考にできそう😳/Reconstructing TypeScript, part 0: intro and background https://t.co/TO4RDAGIQH」 / Twitter
Reconstructing TypeScript, part 0: intro and background
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JavaScriptは最適化しにくい: 動的型付け、float型の数値、複数のfalse相当値。しかも即時実行が必要で詳しく解析できない。にもかかわらず速いのは、1. 動的プロファイル、2. 仮想マシンコードによる最適化、3. 属性値アクセスのためのキャッシュ、4. インライン展開である。 https://t.co/As6Zupyk5p」 / Twitter
How JavaScript engines achieve great performance | by Robin Heggelund Hansen | Nov, 2021 | Bekk
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「たとえばV8のJITは、当初は機械語に直接コンパイルしていたが、最近はまず仮想マシンコードに展開するようになった。こうすると実際の機械語より形式が単純なので、推論しやすい。関数が"hot"と判定されたときだけ実際の機械語にコンパイルされる。」 / Twitter
⁧ ⁨まあぼ@cub 📡ᴠᴀᴄᴄɪɴᴀᴛᴇᴅさんはTwitterを使っています 「昨年はLaravel + Inertia.js + Vue2でいくつか作って使われて開発効率がとても良かったと思う。一方で、これから新規にはVue3ではなくReactまたはSvelteだと思うんだけど、ルーティングとデータについてもInertiaではなく普通にAPIを使ってフロント・バックを分離した方が良いのかなあと悩む。」 / Twitter
⁧ ⁨まあぼ@cub 📡ᴠᴀᴄᴄɪɴᴀᴛᴇᴅさんはTwitterを使っています 「Inertia.jsを使えばフロント&バックのルーティングを一元化できるし開発は簡単になって開発速度が上がる。だけどそれに依存する2歩目を踏み出すのは直感的に何か引っかかるんだよなあ。良く分からないけど。むずい。」 / Twitter
Denoよどこへ行く - keroxpのScrapbox
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「気にするにしてもx === void 0の方がいいような」 / Twitter
エヌユルさんはTwitterを使っています 「EcmaScript 3ではundefinedに代入できるから x === undefinedじゃなくて typeof x === "undefined" を使えとか書いてる記事見て正気かと思った 私はx == null派閥です」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JavaScriptの怪・その1729: parseInt(0.5) → 0 parseInt(0.05) → 0 ... parseInt(0.000005) → 0 parseInt(0.0000005) → 5 理由: parseInt() は引数をまず文字表現に変換するが、0.0000005の文字表現は "5e-7" だった。 https://t.co/NEWarYAh4J」 / Twitter
We all love JavaScript : ProgrammerHumor

mod_poppoさんはTwitterを使っています 「JavaScriptコードを書き出す処理を書くためにECMAScriptの仕様書を見てるけど、文法定義がES2015の段階でもかなりアレゲになっとるな。俺に理解できるのはES5止まりや」 / Twitter
mod_poppoさんはTwitterを使っています 「ES5にはyieldもアロー式もなかったので平和」 / Twitter
mod_poppoさんはTwitterを使っています 「ES5とES2021を比較しても真に増えたReservedWordsはawaitくらいか」 / Twitter
mod_poppoさんはTwitterを使っています 「JavaScriptを言語のコンパイル先とする場合は、文法的にはES5があれば十分で、ライブラリー的にはES2015(TypedArrayや数学関数, Reflect)とES2020の一部(BigInt, globalThis)があれば十分な気がする。もちろんJavaScriptとのFFIを重視するなら話は別だが」 / Twitter
mod_poppoさんはTwitterを使っています 「Reflectのありがたみ、JavaScriptの世界に対するFFIを用意する側からすると、関数呼び出しAPIさえ用意しておけば細かい構文へのバインディングを用意する必要がなくなるのか」 / Twitter
Masaki HaraさんはTwitterを使っています 「typeofは内部的な型をほぼそのまま出してるだけで、例外として ・NullとObjectが "object" として統合 ・[[Call]] 内部スロットを持つObjectは "function" ・document.allの特別扱い(Annex Bの互換性規定) があるだけなのでオーバーライドの余地はないですね」 / Twitter
Masaki HaraさんはTwitterを使っています 「なのでBabelで古いターゲットのコードを吐かせるとSymbolのpolyfillを識別するためにtypeof式の置き換えが発生したりするけど、当然Babelの影響下にあるコードにしか影響しないし、そもそもSymbolの挙動をユーザーレベルで模倣するのにも限界があるから完全ではない」 / Twitter
mizchiさんはTwitterを使っています 「script type は現代では <script type=module src="..."></script> と書く場所であってほかは何も入らないですよ」 / Twitter
🔫武藤スナイパーカスタムさんはTwitterを使っています 「@mizchi 現代的ではないのだろうけど、 type="text/json"を使うことが…」 / Twitter
wint 𝄆 🇺🇦さんはTwitterを使っています 「これな…。 Array の length をイジっても、値が用意されない(undefined ですら!)って罠……。 https://t.co/YptHuKy3mY」 / Twitter
Array.length - JavaScript | MDN
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いやー、JavaSscriptでこれはハマったわー。 new Array(10).map((x) => x.toString()) してもmapに渡した関数が1回も実行されないなんて! new Array(10).fill(undefined).map((x) => x.toString()) とかしないといけないのね」 / Twitter

GraalVM・Java・Kotlin・Scala

Java

LTS

Red Hat、Windows版OpenJDKの長期商用サポート提供を発表 - Publickey
AWSが独自のOpenJDK「Amazon Corretto」発表。AWS内部で使っていたJavaを外部提供へ。Java 8は2023年まで、Java 11は2024年まで無償でLTSを提供 - Publickey
Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey
AWS版OpenJDKの「Amazon Corretto 8」正式版リリース。少なくとも2023年6月まで無償でアップデート提供 - Publickey
OpenJDK を開発する流れ - #chiroito ’s blog
AWS、Java 11対応の独自OpenJDK「Amazon Corretto 11」プレビュー版を公開 - Publickey

Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識:連載|gihyo.jp … 技術評論社
Java-MA16-JIT.pdf
shuJIT: a Java Just-in-Time Compiler for x86
shudo/shujit: Java Just-in-Time Compiler for x86 processors
Java12新機能まとめ - Qiita
ところでJavaのRaw Sring Literalsはどうなってるの? - きしだのはてな
JDKの新しいリリース・モデル、および提供ライセンスについて
米Red Hat、「OpenJDK 8」と「OpenJDK 11」の開発を統括することを発表 | OSDN Magazine
RedHatがJava 8および11の幹事になる
EclipseとOracle、javaxパッケージ名前空間と商標の扱いに関する合意を断念
Javaは今でも無償ですという話と最近のJava Webフレームワーク / Java is still free and Java Web FW - Speaker Deck
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Java EE仕様はJakarta EEに改名された
米Microsoft、JVMのチューニング技術を持つjClarityを買収 | OSDN Magazine
「AzureをJavaにとってよりよいプラットフォームにする」、マイクロソフトがJavaツールベンダのjClarityを買収 - Publickey
JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】 | Backlogブログ
JIT コンパイラのコンパイラスレッド、コード最適化について - それが僕には楽しかったんです。
JIT コンパイラのコードキャッシュ - それが僕には楽しかったんです。
Java のJIT コンパイルについて - それが僕には楽しかったんです。
Oracle、UTF-8が標準になった「Java 18」を発表 ~簡易Webサーバーも装備 - 窓の杜

過剰な柔軟性

Log4j 2

Dai MIKURUBEさんはTwitterを使っています 「今回の Log4j2 のこれを「あの頃 (90〜00年代くらい) はそういう時代じゃった…」で評しようとしてる人もいるけど、違うからね? 2015 年にもなってわざわざ作り込んだやつだからね?」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「いろいろ擁護する声もあるけど、元の 1 の作者の「やめとけ」っていう声を無視した上で、名前だけは拝借して 2 としてやらかしたというのは、個人的にはほぼ擁護できない…」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「参考文献: https://t.co/9ZRXb2A4G2」 / Twitter
Why was Log4j 2 created?
Dai MIKURUBEさんはTwitterを使っています 「最初の仕事は 2015 よりはだいぶ早かったんだな」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「これ、「自分の提案が全然取り込まれる気配がないから新しいのを作り、その新しいのに届いた PR を寛容に取り入れたらその PR 主がトンズラし、しかたなく互換性のためにメンテを続けていたらそこが大穴だった」ってことかね…。 SLF4J と Logback が新規 PR をほぼ取り込んでないの、正解なんでは…」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「「security fix していること」はよくメンテされているソフトウェアの条件ではあるけど、「届いた Issue や変更をよく受け入れてそれなりの頻度でリリースしていること」は必ずしもそうではない (相関は多少あるだろうけど) んだなあと改めて。「雑な Issue/PR 投げるな」の話にも通ずるところがある」 / Twitter

Rui UeyamaさんはTwitterを使っています 「log4jの問題の教訓は、過剰に柔軟な奇妙な機能を付け加えるとわけがわからないことになるよということかな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「特にエンタープライズJavaで見られるこういう過剰な柔軟性は、バイナリの更新は大ごとだけどXMLの設定ファイル(実際は半分コードみたいなやつ)の変更ならなぜか簡単みたいな運用の歪みの結果ということがよくあって、そういうのはやめて、実現したい機能は素直にそのままコードとして書きなよ、と。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「古くはただのパーザからevalを呼べるようにしちゃったLispに始まり、「ここでほんの一手間かけとけば後で楽できそう」という誘惑に負けちゃうのはプログラマの宿痾かもしれない」 / Twitter
Rui UeyamaさんはTwitterを使っています 「エンタープライズJavaとかの過剰な柔軟性のまた別の理由は、「設定ファイルで(原理的には)なんでもできる」ようにしとけば、開発から運用にいろんな問題を押し付けられるからというのがある。問題が起こってもそれは「設定漏れ」だから俺たちは知らんよ、運用しっかりしてくれないと困るよ、と。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「使い勝手の悪い難解なプログラミング言語みたいに異常進化してしまった設定ファイルとかで、運用が四苦八苦してても、使いこなせてないのが悪い、みたいな。こういうのは体制の歪みがコードに影響してるのであって、コードだけが悪いという話ではない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「また別の理由は「普通のOSSだって設定が難解でしょ?」というのが多分ある。確かにApacheとか設定で何でもできるようになってるけど、それは全世界で広く使われているからそうなっちゃっているだけで、あなたはせいぜい数パターンでしょ? 設定ファイルで云々とかでなく、直接コードで書きなよ、と。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「Java のこれ、オブジェクト指向パラダイムの「再利用性」の神話と絡み合った末路なんじゃないかと感じる」 / Twitter
Keigo ImaiさんはTwitterを使っています 「与太話レベルだが、なんでも部品化して差し替えられるようにして、ソフトウェア部品は全部マイクロソフトなりソフトバンクから買う、みたいな未来を想像する話を昔々に聞いた。それがエンジニアリングというものだ、ということで、同時代のハッカー文化とは対極だろうと思う。どっちが正解だったか。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「実際、.NETなりCOMのインタフェースを持った帳票系部品の広告が雑誌に載っていた時期があった気がする(学生だったので詳しくは知らない)し、なんなら前々職で保守していたシステムにもそういうものを使っていたものがあった」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そのビジネスの近接に居たけど、得られた教訓は、部品ビジネスが軌道に乗る前にプラットフォームがげふんげふんする。」 / Twitter
ママレモンサワーさんはTwitterを使っています 「話は違うけど設定ファイルでなんでもできるようにして実行バイナリの方は固定してしまいたいみたいのも、わかるんだけどそれ言ったら設定ファイルいじるたびにバイナリ変えたのと同じテストが必要なはずで本来何の解決にもなってないんだよな」 / Twitter
7594591200220899443さんはTwitterを使っています 「Javaの全てが誤りだったというつもりはない。が、現代の視点から言うとwrite once run everywhereはよくなかった。ソフトウエアはそういうものではなかった。write onceなどとというものはないのだ。常に書き続けるしかないのだ。」 / Twitter
品川@UKさんはTwitterを使っています 「KISS (keep it simple stupid) の原則。」 / Twitter
品川@UKさんはTwitterを使っています 「Log4j の脆弱性の経験を踏まえて、KISS の原則を再確認すべき時が来た。 https://t.co/q8fT2TPOGp」 / Twitter
KISSの原則 - Wikipedia
KISS principle - Wikipedia
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「やっぱり外部プログラムをevalするときは、エフェクトシステムでIOじゃないやつのみ計算できるようにすべきだな。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「と言う論文は去年のCSSで発表した気がするが、他にやることありすぎて止まってる。」 / Twitter

blog

ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ
Scala3の新機能紹介 - Adwaysエンジニアブログ
関数型インタフェースまとめ - きしだのHatena
List.of(123, "hoge")の型がこわい。泣きそう。 - きしだのHatena
2021年の最新技術を使った場合のScalaのコンパイル速度 - xuwei-k's blog
Kotlin 1.6に変更してproguardをかけたら通信周りが死んだので直した - eaglesakuraの技術ブログ
OpenTelemetry Instrumentation for Javaの自動トレースの仕組みの調査 - VA Linux エンジニアブログ
Scalaの学習コストについての私見 - kmizuの日記
Red HatはどのようにしてOpenJDKを64ビットのArmに移植したのか:コミュニティの歴史 - 赤帽エンジニアブログ
Javaの外からJavaにチェックポイントを設ける - 赤帽エンジニアブログ
Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog
7つのクラスローダー 7つの世界 - tototoshi の日記

窓の杜

Oracle、「Java 14」を発表 ~Recordクラスがプレビュー導入、switch式が正式機能に - 窓の杜
Java言語の誕生から25周年 ~Oracle、「Java 15」を発表 - 窓の杜
Oracle、「Java 16」を発表 ~パターンマッチングinstanceofとrecord型が正式機能に - 窓の杜
Java、MySQLなどに390件の新しいセキュリティパッチ ~Oracle、2021年4月定例更新を実施 - 窓の杜
「Microsoft Build of OpenJDK」が一般公開 ~無償で「Java」の長期サポートを提供 - 窓の杜
Oracle、「Java 17」を発表 ~3年ぶりの長期サポートリリース(LTS) - 窓の杜
Oracle、「JDK」の長期サポートリリース(LTS)3年→2年間隔へ短縮する提案 - 窓の杜
Microsoft、Apple M1向け「Java 16」を一般公開 ~ARM64版「Java 11」「Java 16」も - 窓の杜

OSDN

LTSリリースの「Java 17」が公開 | OSDN Magazine
「Kotlin 1.6」が公開、Kotlin/Nativeメモリマネージャが導入 | OSDN Magazine
「Java 8」の人気は健在、マイクロサービスの受け入れも進むーーJava開発者レポート | OSDN Magazine

Publickey

オラクル、Oracle JDKを再び無料提供へ、本番環境でも利用可。昨日リリースのJava 17から - Publickey
3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など - Publickey
マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も - Publickey
AWS LambdaのJava 8ランタイムがAmazon Correttoへ。OpenJDKから移行するとAWSが発表 - Publickey
Javaの長期サポート(LTS)版、次回は2年後に登場の見通し。オラクルがLTSのサイクルを3年から2年に変更提案 - Publickey
AWS、Java 17対応の無料Javaディストリビューション「Amazon Corretto 17」リリース。ただし長期サポート期間は未定 - Publickey
Kotlin Multiplatform Mobile(KMM)がベータへ。コンカレント処理でのメモリリークフリー、iOSエコシステムとの連携強化など - Publickey
Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能 - Publickey
AWS、Java 18対応の独自Javaディストリビューション「Amazon Corretto 18」正式リリース - Publickey

スライド

Rustユーザーから見た Scalaの型クラス - Google スライド
Java 2021 - Speaker Deck
Implicit 入門

Zenn

Intersection Types を利用した Type Safe Builder の改善
Scala 3のMatch Typesでコンパイル時正規表現エンジン

infoQ

Java

Java 注目の機能: パターンマッチング
これまでのJava 16と17についてわかっていること
Java 16がリリースされた
アプレットの終焉
AppStoreのJavaFXとUIフレームワークの改善
JDK Mission Control 8がリリース
OpenJDKはSecurityManagerの非推奨を提案
MicrosoftがMicrosoft Build of OpenJDKを発表
Java 17はグラス・ハーフ・フルか
次期LTSリリースJava 17の提供が開始
OracleがJava LTSサイクルの2年への短縮を提案
Eclipse IDE 2021-09がJava 17をサポート
Oracle JDK 17 - 再び商用利用が無料に
IBMがOpenJ9用のSemeru Runtimesを公開
Java News Roundup: 2022年のJavaの計画、Spring Framework 6.0-M2、Eclipse Jifaの紹介
MicroStream 6.0がJDK 17、Spring Boot、Helidonをサポート
MicroProfile 5.0 新着情報
Java Newsラウンドアップ - Spring Projectのアップデート、Value Object(プレビュー)、JEP、Quarkus 2.7.2
JDK 18とJDK 19:これまでに分かっていること
Google Java App Engine Standardがオープンソースに

Kotlin

Kotlinのコルーチンを実装面から検証する
Kotlin 1.5への道
Kiは、新しい、より柔軟なKotlinインタラクティブシェルである
Kotlin 1.5がJava 15機能と新しいJVMコンパイラをサポート
JetBrainsがKotlinの新コンパイラK2、Kotlin for WebAssemblyなどを発表
Kotlin 1.6.0リリース
Googleプロトコルバッファは慣用的なKotlinバインディングをサポートします
Kotlin 1.6.20プレビュー版でコンテキストレシーバーが提供され、パフォーマンスが改善

GraalVM

GraalVM 21.0、Javaで記述されたJVMを導入
OracleデータベースのGraalVM
Spring BootアプリをSpring Native BetaでGraalVMに変換
GraalVM 21.1がJDK 16をサポート
GraalVM 21.2でネイティブコンポーネントが改善
GraalVM 21.3がJava 17をサポート
GraalVM 22.0がリリースされ、ネイティブイメージが改善

コンパイルとドキュメントの出会い
Quarkus 2.0への道: 継続的テスト
Scala 3への道
MicroProfile4.0の新機能
VMwareはSpring 6とSpring Boot 3でさらなる10年のためにオーバーホール
AWSが顧客向けにメインフレームを移行するためのメインフレームモダン化サービスを提供
AzulがJavaクラウドコンパイラを起動
switch式とsealed型を加えたGroovy 4.0.0

Twitter

その他

エラーハンドリング

がくぞさんはTwitterを使っています 「おーsafer exceptionsが入ったScala 3.1出たのか。 https://t.co/VgHekxDbVY swiftのrethrowからさらに網羅性検査ができる強力な力を持った例外機構が使えるようになった👏 https://t.co/rU0SOfGZXf この辺を表現するのにやっぱりunion typesも大きな働きしてるよなー。Javaもこの方向に行って欲しい」 / Twitter
Scala 3.1.0 released! | The Scala Programming Language
dotty/canthrow.md at release-3.1.0 · lampepfl/dotty
Yuki Ishikawa | FOLIOさんはTwitterを使っています 「Scalaでthrowsが書けるようになりました...🤔 https://t.co/H6TT5b3ORl https://t.co/L9cjnHDtrU」 / Twitter
Scala 3.1.0 released! | The Scala Programming Language
がくぞさんはTwitterを使っています 「KotlinのエラーハンドリングはJavaよりも表現力が落ちてしまっているのでこの辺どうしてるんだろうなー。公式がResultのデザイン決める際に arrow の存在を持ち出してるし arrow を使えって事なのかなー……? server-side kotlinを推している方々に実際どうしてるのか聞いてみたい」 / Twitter
kodai 🐧❄★さんはTwitterを使っています 「Result&lt;V&gt; だとエラーのデータ表現を指定できなくて嫌すぎるので、可能な限り kotlin-result ライブラリの提供する Result&lt;V, E&gt; 型を使うようにしてる」 / Twitter
がくぞさんはTwitterを使っています 「kotlin-result これかしら https://t.co/BCxbDAkMiI Monad Comprehension あるのは嬉しいですね」 / Twitter
michaelbull/kotlin-result: A multiplatform Result monad for modelling success or failure operations.
Kota Mizushima (on a diet)さんはTwitterを使っています 「Odersky先生らのSafer Exceptions for Scalaの論文斜め読みしたけど、Odersky先生提案の機能としては、珍しく(?)私と趣味が合わない。というのは、プログラマが「適切にthrowsを書く」という難しいことをやってくれると自分は期待していないからなんですけど。 https://t.co/aD4bE8QcfC」 / Twitter
Safer Exceptions for ScalaSafer Exceptions for Scala - 3486610.3486893.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語はもっとフールプルーフであるべきだと私は思ってて、その意味でGoの設計思想も多少意味がわかるんだけど、あれはあれであんまりフールプルーフじゃない気がするし、検査例外(Safer Exceptionも)も簡単に握りつぶす事が出来る以上、微妙さを感じてる。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「例外関連でまずい順に並べると、例外を握りつぶされる &gt; 例外がハンドリングされずにプログラムが死ぬ &gt; 適切に例外が処理される、だと思うんですけど、「throws書け」というデザインはcatchして握りつぶす回避策があるのであれば、握り潰す方向にプログラマを動かしがちなので好きではない。↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「一方で、握り潰す事を絶許なデザインをするなら、効果的に働くこともあるのかもしれない、とも思う(ただ、その時にParseExceptionみたいなコンテキスト次第でバグか正常系か別れるケースどうするのかとも思う)。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu 例外処理に関して,ElixirやErlangの考え方はいかがですか? try catchはあるのはあるのですが,基本的にはそれを例外処理として用いるのではなく,例外が起きたらプロセスごと異常終了してもらって,異常終了を外部から監視して適切な後処理をしつつ再起動することで次の処理を受け付ける思想です。」 / Twitter
がくぞさんはTwitterを使っています 「実践エラーハンドリングの2022年版を書いたほうが良さそうな気がしてきたなー https://t.co/3q4aIEFMhO」 / Twitter
明日から使える実践エラーハンドリング
がくぞさんはTwitterを使っています 「各手法の表現力の差についてもうちょっと表にするなりしたい感」 / Twitter

path-dependent given

がくぞさんはTwitterを使っています 「あ、path-dependent type使ってる例だ!」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz path-dependent given、ちゃんとpathの中にいるcompanionまでgivenを取りに行ってくれるのですごい便利ですね」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 ね、これ実際スゴイ凄いのだけどその便利さを実感もって感じられている人まだまだ少ない気がするので積極的にアピールしていきたいですね!」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz macroである種のwitnessを生成するinline givenをpath-dependent givenで取ってもらっており、コールサイトが芋づる式に全部inlineになってしまうという問題をこれで避けられているので、普通にmacroテクの一種としてもめっちゃ有用そうですね(今回これ書いてようやく気付きました) https://t.co/m48ZAyOv2d」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 あーなるほど inline given。なるほどこれで inline の展開がここで止まるんですね。はえー賢い!!!」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz ✌️」 / Twitter

レシーバの省略

がくぞさんはTwitterを使っています 「そう言われるとKotlinの Function literals with receiver とかはむしろ積極的にthisというかレシーバの指定を省略させるための仕組みですね……」 / Twitter
がくぞさんはTwitterを使っています 「this以外のレシーバも省略できるようにしよう、というの発想としては中々面白いというかObject Orientedとは異なる思想っぽさを感じますね」 / Twitter
timelerさんはTwitterを使っています 「どの流儀にしろOOPを謳っている大半のプログラミング言語で、インスタンスメソッド内でフィールドのアクセスの際thisなりselfなりの記述が省略できるけど、なんでそんな要らん事するんだろう? 改めて見ると読みにくくて仕方ない…」 / Twitter
timelerさんはTwitterを使っています 「いや、こう言っておきながら何だけど、10年前までは ・わざわざthis(self)書くやつバカ ・this(self)ない方が記述量減るし、読みやすくていい と主張していたのだけど💦 RustやPythonなどを見て視点が変わったのかもしれない。」 / Twitter
timelerさんはTwitterを使っています 「なんか、IDE使ってるから省略した方が見やすいみたいなリプが見られる。 ワイはIDEを使った上で言っているのだが… 確かに今使ってるIDEがクソなIDEなのは認める。 省略して見やすくなるIDEにしたいよ…」 / Twitter
timelerさんはTwitterを使っています 「手元のIDE、メンバーは専用の色が付くけどやっぱりselfなしだと見づらい。」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisを省略するためではないような気がします。thisを省略することで区別がつきにくくなる場合はthisの使用が推奨されています。 https://t.co/W8gBDb7sRM」 / Twitter
Scope functions | Kotlin
がくぞさんはTwitterを使っています 「@Pooh3Mobi Kotlin の type safe builder パターンは積極的にレシーバを省略できることを活用するパターンですよね? 区別がつきにくくなる場合に省略を推奨しないのは当然かと……」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisを使うことは制限されていないという話ですね。」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi thisを使う事を制限する、という主張は特にしてないつもりです。 with receiverはレシーバを省略して記述できるよう(thisが省略可能な事を活かして)任意のスコープで特定のオブジェクトをthisとするための機構で、ひいては積極的に省略を活用するための機構のように思うというのが僕の主張でした」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisの省略を積極的に使うための機構では無いですよというのが僕の主張ですね」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi なるほど。レシーバの省略を積極的に使うための機構ではないとすると、この機構は何を目的とした機構なのでしょうか?省略以外に解決する課題がちょっとわかりませんでした……」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi 逆に言うとレシーバの省略をしないのであればこの機構自体を使う必要が無いように思われます( it なり変数名なりを使えばよいので)が、他の目的があったりする感じなのでしょうか?」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz よく使われる?applyに関しては val adam = Person("Adam") adam.age = 20 adam .city = "London" これを val adam = Person("Adam").apply { age = 20 city = "London" } として初期化ブロックをクラス外に持ち出せる仕組みとして利用されることが多いです。文脈によってthisを省略orNot」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz サンプルコードの例がわかりにくくなってしまっていたらすみません。:bow:」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi あ、ですよね。なので adam.age = 20 adam .city = "London" という記述から age = 20 city = "London" というレシーバを省略した記述に変えるための機構に思えました。 単にスコープを限定したいだけなら val adam = Person("Adam").also{ it.age = 20 it. city = "London" } で十分なので」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz 人に説明するのが下手くそですねすみませんw しばらくお仕事とロジック組み上げるのに時間かかるのでおまちください:bow:」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz いい勉強だとおもって、胸を借りて頑張ります。」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi とんでもない、忙しい中つっこみ入れて頂いてありがとうございます! 都合のいいタイミングで!」 / Twitter

コレクション

がくぞさんはTwitterを使っています 「戻り値同型の原則 (same-result-type principle) が基本的に無い(というか言語機構的に実現が難しい) Javaは難しいなー……」 / Twitter
RayStark a.k.a. ロジニキさんはTwitterを使っています 「この記事面白かった JDK 16 : stream.toList() に見るAPI設計の難しさ - A Memorandum https://t.co/nf1kwapcBf」 / Twitter
JDK 16 : stream.toList() に見るAPI設計の難しさ - A Memorandum
RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz same-result-type principleがどう言うものか調べてみたいんですけれど、何か資料はありませんか?」 / Twitter
がくぞさんはTwitterを使っています 「@RayStark77 https://t.co/RPyxU71B9w こちらのページの最後の節をご参照いただければ」 / Twitter
可変コレクションおよび不変コレクション | Collections | Scala Documentation
RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz ありがとうございます この戻り値同型の原則はJavaの共変戻り値型で適用できませんか?」 / Twitter
がくぞさんはTwitterを使っています 「@RayStark77 ある程度のメソッドでは可能ですが、その分overrideが大量に増えるので標準APIのバイナリ増えるとか、interfaceを実装するコストが跳ね上がるとか、諸々トレードオフがありますね」 / Twitter
RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz 実装型の構造だけ保持するような仕組みが欲しいですね… 自分型とも違う、型変数だけ自由みたいな」 / Twitter
がくぞさんはTwitterを使っています 「@RayStark77 HKTがあるだけでも割となんとかなるんですけどねー」 / Twitter
RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz ScalaのTraversableを読んでみるのが一番参考になりそうですね ありがとうございます」 / Twitter
いろふさんはTwitterを使っています 「「Stream.collect(Collectors.toList())はStream#toList()と同じではない」は間違いなく正しいし、ライブラリとかだと迂闊にはできないけど、業務アプリケーションではほぼほぼ問題なく出来るので、気にせずやれば良いです。」 / Twitter
いろふさんはTwitterを使っています 「まぁ「ほぼほぼ問題なく出来る」の問題が出るパターンを踏むとかはあるんだけど、その可能性が否定できないとかいってやらないなら、バージョンも上げれないはず。」 / Twitter
がくぞさんはTwitterを使っています 「まー Stream.collect(Collectors.toList()) を Stream#toList() に書き換えて問題が起きるコード、Streamの使い方ではない別のところに問題を抱えてる気がするので別のところを直したほうがいい感はありますね」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@irof Javaは一度、既存のコレクションフレームワークを捨てて新しいのをしがらみなしで設計しないとどうしても辛くなると思うよ……」 / Twitter
いろふさんはTwitterを使っています 「@nagise 「一度既存のコレクションフレームワークを捨てずに新しいのをしがらみありで設計した」のが1.4と言う……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@irof 捨てずにしがらみあり……🤔」 / Twitter
いろふさんはTwitterを使っています 「@nagise HashTableとかVectorとか見え隠れしますし……少なくとも捨ててはいないかなぁと。。」 / Twitter
がくぞさんはTwitterを使っています 「Date & Time API が追加できたんだし Collection Framework もぼちぼち今の時代に合わせた新しいものを作ってくれても……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz Generics specializaition 入ってからにしよう?」 / Twitter
がくぞさんはTwitterを使っています 「@nagise それは確かに(今時分からGenerics specializaitionありきで設計すすめてくれればスムーズなリリースが期待できるかも……?)」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「新しいコレクションライブラリ、追加すること自体は多分そんなでもないんだろうけど世の中サイドがそっちへ移行するのが大変そう」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@kamekoopa 古いコレクションフレームワークで作られたアレコレが使えなくなるのはどうしても辛い。 せーので移行できる訳でもなし」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「@nagise むずかしい」 / Twitter
がくぞさんはTwitterを使っています 「これなー。型クラスがあればフレームワークとかが対応してなくても自前で利用を進めるみたいな事が簡単にできるのだけど、今のJavaのエコシステムだとフレームワークが対応してくれないと利用するのが難しいってなっちゃうよね……」 / Twitter
がくぞさんはTwitterを使っています 「Doma2はCollector検索があるから新しいCollection Frameworkが出てきても自前で簡単に対応できるので便利。(実際 vavr でも guava でも Eclipse Collection でもなんでも好きなコレクション型で取得できる)」 / Twitter
がくぞさんはTwitterを使っています 「traverse/sequence 使えば元のデータ構造を維持できるよ!」 / Twitter

パターンマッチ

がくぞさんはTwitterを使っています 「list .stream().forEach(obj -> c(b(a(obj)))); を list .stream() .map(a) .map(b) .forEach(c); にするか、 obj -> c(b(a(obj))) に適切な名前fooをつけてメソッド化して list .stream().forEach(foo); にしませんか? という提案をする事が多いのだけど、これパターンとして名前ないかな?」 / Twitter
がくぞさんはTwitterを使っています 「パターンマッチで構造に対して分岐するのではなく、型に対して分岐するのはアンチパターンなので、Java18のアレをパターンマッチだーって喜んで喧伝するのはどうなんだろうなぁ……? 型で分岐したいのであれば動的なパターンマッチじゃなくてもっと適した静的な仕組みが大抵ありそう……」 / Twitter
がくぞさんはTwitterを使っています 「そういえばガード使った場合の網羅性検査どうなってるんだろ?後で調べよ」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 構造に対しての分岐の準備だからですよ。 ぼくは型に対して分岐してパターンマッチだって喜んだツイートはしてなくて、ガード節があることとswitchでnullが扱えるのを喜んでるので別の人の話だとは思いますが。」 / Twitter
がくぞさんはTwitterを使っています 「@kis 準備って事をもっとアピールできてて、現状のサンプルコードは望ましくない例だという事が広く伝われば、杞憂民も沸かなくて済むんですけどねー」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz まーそもそもあの形で使う機会ないのでは。 あとまあ、杞憂民は杞憂して喜びたいだけにも見えるので、そこまで対策する必要があるとも思えず。」 / Twitter
がくぞさんはTwitterを使っています 「@kis 実際にScalaでは型で分岐するようなケースで不適切にパターンマッチが使われているケースがしばしばあって、コード保守する側として実際に被害を被っている状況があるので憂いているのですが、喜びたいだけに見えているのであればより悲しいですね……」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz あぁ、実際にScalaでそういうコードがあるんですね。 注意喚起というよりは、機能不足をけなしてるだけに見えてしまいました。」 / Twitter
がくぞさんはTwitterを使っています 「@kis けないたいというより、パターンマッチの説明で型の分岐がメインの例にならないScalaですらその状況なので、現状のJava18の機能紹介サンプルコードが広まるとそういう誤解をより促進しそうだなーという不安の表れですね……」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 現状で導入された機能なわけで、又パターンマッチの機構として基本的な部分であり一番重要なところであることは間違いなく、JDKの実装が進んでいることは喜ばしく、そのように紹介するのが「アレをパターンマッチだーって喜んで喧伝するのは」みたいに書かれるとけなしてるようにしかみえませんでした」 / Twitter
がくぞさんはTwitterを使っています 「@kis なるほど。僕もJDKの実装が進んでいることは喜ばしく思いますし、将来のための布石の実装だと適切に伝わる紹介であれば懸念も減るので、そういう紹介が増えるといいなと思っています……」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 現状はプレビューで恐らく誰も使わず、次回Java 19で正式機能になるはずで、そのときにはrecordパターンがプレビューとして含まれるはずなので、そのときにはまとめて紹介されるんではないでしょうか。 みんなが実際に使うLTSバージョンでは両方正式機能になってるはずだし。」 / Twitter
がくぞさんはTwitterを使っています 「@kis そうなれば変な誤解が広まることもなくハッピーになるのでそうなって欲しいですねー(まさに杞憂になることが望ましいと思ってます)」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz デコンストラクションが一緒に正式機能になってれば、IntegerとStringでマッチさせるような例は出さないんじゃないかと思います。ウケなそうだし。 QiitaにJava 18新機能まとめ書いてるけど、nullが扱えることにフォーカスして、タイプパターンはあとまわしにしています。」 / Twitter
がくぞさんはTwitterを使っています 「@kis ですねー、デコンストラクションほんと期待してます。 流石です!!!<nullが扱えることにフォーカスして、タイプパターンはあとまわし」 / Twitter

histric

histric-1

110416さんはTwitterを使っています 「scala 3 マクロで refined typeを自作するチュートリアル. わかりやすい. https://t.co/zo9SvWFFdd」 / Twitter
Build your own refinement types in Scala 3
がくぞさんはTwitterを使っています 「Javaの場合、標準APIがmutability前提になってる事が多いのでその辺でも初学者へのメッセージ性として厳しいものがあるんですよねぇ……まともに触る不変クラスがStringぐらいしかなかったり、標準Collectionフレームワームもimmutableに扱おうとするとAPIが足りなすぎたり……」 / Twitter
山本ユースケ™️さんはTwitterを使っています 「@gakuzzzz java.time.*やrecordのことも思い出してあげてください」 / Twitter
がくぞさんはTwitterを使っています 「@yusuke recordはともかく初学者にいきなり java.time を例に説明するのは難易度高い気がするんですよねー…… java.time みたいなパッケージがもっと増えて既存のパッケージがどんどんdeprecatedになっていってくれるといいんですが……」 / Twitter
がくぞさんはTwitterを使っています 「まー 確かに java.time みたいな新しいImmutable前提のパッケージが増えてる事は歓迎するのですが、一貫性の無さが余計に辛いというかメッセージ性を弱めてしまっているというか……」 / Twitter
がくぞさんはTwitterを使っています 「recordもなー。実際ぎょむで使うにはlomvok.Withやopticsのようなものが無いと扱いづらくてImmutable不便ってイメージを持たれるだけになりそうな点も気になるんですよね……。その辺の不満をruntime-reflectionで解決するとそれはそれでまた静的検査を活かし難くなっていきますし……」 / Twitter
がくぞさんはTwitterを使っています 「lombok」 / Twitter
がくぞさんはTwitterを使っています 「あー個人的には全くvalをvarにオーバーライドできる事をもってダメな言語とは思ってないので、誤解を解くために敢えて書いておくと、varでオーバーライドできる仕様はreadonly/mutableなAPIを作るのに非常に合理的で、これはデータコピーを減らせるメリットもあり設計判断としては肯定的にみています」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「Kotlinのvalをvarにオーバーライドできるって話でKotlinはダメな言語みたいにいう人がいるのはわかるけど、Kotlinのvalはカスタムゲッターでも宣言できるので常に変更される(ローカル変数は違う)前提で使っている。 あれはプロパティであって、Immutableな何かを構成するのは別要素。」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「外部から変更可能ではない、つまりリードオンリーという事しか保証していない。 varにオーバーライド可能だからって嬉々としてやってるやつは見た事ないけど、心配する人たちはやってないことではなくできる事に目を向けるのかもしれない。」 / Twitter
がくぞさんはTwitterを使っています 「実際readonlyとmutableが型レベルで分かれていて、静的検査をちゃんと使えているなら意図しない破壊的変更による不具合が起きるケースて余程変な使い方をした時だけでしょみたいな割り切りは理解できますし(とはいえrumtime-reflection濫用はそういう前提をぶち壊していきますが……」 / Twitter
がくぞさんはTwitterを使っています 「自分がKotlinのこの仕様をよく話題に出すのは、設計思想の違いが端的に現れていて特徴的だなと思っているからですね」 / Twitter
かとじゅんさんはTwitterを使っています 「DDDの「副作用のない関数」は関数型言語コミュニティの人たちにしか通じないことが多くて、Javaで副作用の局所化を考えたこともない人たちには割と難しい印象。」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「Scalaに無くて、Kotlinにある機能で細かく挙げると、 - カスタムプロパティ - 移譲のbyするやつ - コルーチン - ラムダでthisのスコープ変えるやつ?T.()-&gt; R 細かくつつくとまだありそう」 / Twitter
がくぞさんはTwitterを使っています 「ふむー - カスタムプロパティ:確かにScalaには無い - 委譲のbyするやつ:exportで同等の表現力が得られる - コルーチン:scala-asyncやMonadless(非標準)で近しい表現力が得られる - T.()-&gt; R:Implicit Function Typesでもう少し広い表現力が得られる のでカスタムプロパティ以外は代替ありそう?」 / Twitter
がくぞさんはTwitterを使っています 「Scalaに無くてKotlinにある機能だと、 - メソッド引数の最後のFunctionalInterfaceを分離して書ける機構(JavaのAPI呼びやすい) - var で val override できる機構 - flow-sensitive types - Contracts とかの方がScalaでは代替機能が無いので強そう」 / Twitter
がくぞさんはTwitterを使っています 「Scala 2の範囲だとKotlinの方が機能的に優位な部分がそこそこあったのだけどScala 3でだいぶその差分を埋められてしまった感ある。 Scalaの方が機能的に優位な部分はKotlin的には対応優先度低そうだしなー。Multiple receiversとかどうなるか気になる」 / Twitter
Naoki TakezoeさんはTwitterを使っています 「ScalaConでのLi HaoyiさんによるDatabricksでのScalaの利用状況についての発表。コードの半分以上がScalaだけど関数型プログラミングはそれほど積極的に使ってない。PlayやAkkaなども使っていない。入社して初めてScalaを書く人も多いけど特に問題ないとのこと。 https://t.co/TeVCE9FXLW」 / Twitter
Scala at Scale at Databricks - Li Haoyi - YouTube
Naoki TakezoeさんはTwitterを使っています 「個人的におっと思ったのが、スクリプティングにもScalaを利用しているという点。RubyやPythonと同等の簡潔さ、テストが難しいグルーコードにおけるコンパイル時チェックのメリット、assembly jarをデプロイするので実行環境にライブラリをインストールしたら環境が壊れたというようなこともない。」 / Twitter
Naoki TakezoeさんはTwitterを使っています 「Databricksのエンジニアの多くは熱心なScalaファンというわけではないけどメリットがあるからScalaを使っている。もちろんSparkがScala/JVMで書かれているからというのは大きいんだろうけど、ある意味健全なScala利用事例なのではという気がした。」 / Twitter
がくぞさんはTwitterを使っています 「nullとかの意味については同意。Maybe/Eitherの様な型名はNominal Typingの世界とStructural Typingの世界でまた変わってきそうな気もしますね。 Nominalだと同じ構造のデータ型でも newtype UserId = Int みたいにあえて別の型を定義する事もありますし(続」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「これについて考えてみると、Option/MaybeとResult/Eitherというように名前が分かれている件はやっぱりMaybeとEitherが最強だなという気持ちになる。名前から余計な“意味”を押し付けて来ずにデータ構造の説明に終始している🛒」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「反応を加味して考察したところそもそもEitherとResultを同じ概念の別名として考えるのが良くなかったようだ。Eitherにデータ構造の説明を超えた“意味”を与えた名称としてResultがあるという解釈を得た(?)」 / Twitter
がくぞさんはTwitterを使っています 「newtypeとかしやすいように標準で提供するデータ型には余計な意味の無い名前をつけて欲しいみたいな話ならすごく賛成ですね」 / Twitter
がくぞさんはTwitterを使っています 「例えばEitherとValidatedは構造としては同じなんだけど操作の特性が違ったりするしなー」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「val (x, ...xs) = lis に関しては、ほとんど使う事が無いけど、たまにあって。 必要な時は拡張関数でList&lt;T&gt;.firstAndRemains() : Pair&lt;T, List&lt;T&gt;&gt;みたいなものを用意することはある。 こんなやつ。命名は適当。 val (x, xs) = list.fistAndRemains()」 / Twitter
がくぞさんはTwitterを使っています 「ScalaとKotlinの分割代入の記事にforループやLambda構文での利用について追記した https://t.co/NjNOCGf2T7」 / Twitter
ScalaとKotlinの分割代入(っぽい機構)の比較
執着心をなくす(Pooh3)さんはTwitterを使っています 「あ、Kotlinの事です。 実際にあったりしましたけど、途中で使わなくなったりしたのでなかなか必要だった、作って良かったというケースには遭遇しにくいなという感想です。Androidアプリ開発ではですけどね。」 / Twitter
がくぞさんはTwitterを使っています 「Javaもパターンマッチ入った後でいいから変数宣言でパターン使えるようにして」 / Twitter

histric-2

Takahiro YAMADAさんはTwitterを使っています 「前々から予兆はあったけど、Java 18からUTF-8がデフォルトになる見込み。 特に日本語Windows環境では影響あるだろうから要確認ですな。」 / Twitter
OpenJDKさんはTwitterを使っています 「Proposed to target JDK 18: JEP 400: UTF-8 by Default: https://t.co/6lgR4mXcpH #jdk18 #openjdk #java」 / Twitter
JEP 400: UTF-8 by Default
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JVMスレッドプールの使い方ガイドライン: - CPU-boundの計算のときは、コア数と同じだけの固定プールを使え。 - ブロッキングIOに対しては、処理ごとに新しいスレッドを作成できる可変プールを使え。ただし慎重に! - 非同期IOポーリング用に1つの高優先度スレッドを使え。 https://t.co/EU26OFO747」 / Twitter
thread-pools.md
がくぞさんはTwitterを使っています 「Java12 の String#indent は再帰データ構造の toString を実装するのに便利っぽ」 / Twitter
Takahiro YAMADAさんはTwitterを使っています 「誤解を招きそうだったので更に補足すると、あくまでファイル入出力に関する話です。 https://t.co/6AWv3bJgkH それも最近(Java 7のNIO.2以降かな)ではUTF-8がデフォルトのAPIも増えてきているため、現状(Java 17まで)は統一が取れてない感じもありましたね。」 / Twitter
がくぞさんはTwitterを使っています 「まーJavaのそれは名前付き引数呼び出しができないという言語機構上の欠点を無理やり補うためのイディオムですしねぇ…… 将来的にクラスの属性が増えた時もコンストラクタなら修正すべき箇所を静的検査で検出できるものがビルダーだと検出できなくなりますし欠点が多い……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「ビルダーパターンとかでインスタンス作るの、正直、起点が分かりにくいな感があってあまり好きじゃないんですよね。 newが使えるシーンならnewできるほうが分かりやすいとは思う。 抽象型に対して具象型違うんですよ、みたいな時にはnewじゃ困るというライブラリ作成側の都合とかあったりはするけども」 / Twitter
がくぞさんはTwitterを使っています 「名前付き引数呼び出しができるScalaとかKotlin使った方がいいと思います」 / Twitter
がくぞさんはTwitterを使っています 「あー 同じシグネチャでもlubに定義が無いとunion typeからそのメンバ呼べないのか https://t.co/SgSZiUD7cY」 / Twitter
Union Types - More Details
がくぞさんはTwitterを使っています 「Javaの場合だとListインターフェイスの実装クラスを何選択するべきかでデータ構造や計算量を意識する必要がでてくる(現代だと脳死でArrayListでええやろみたいな状況は置いといて)けど、配列の実装が単一の言語だとそういう切っ掛けも得られにくいみたいな所あるよね」 / Twitter
がくぞさんはTwitterを使っています 「配列の標準実装が一つしかない言語からJavaやScalaなどの言語の学習を始めて、データ構造がいっぱいあってどれ選べばいいかわからないってなってる初学者はそこそこ見る印象ある」 / Twitter
がくぞさんはTwitterを使っています 「まーでもScalaやKotlinはSeq.applyやlistOfで実データ構造意識しなくてもオブジェクト作れるし、Javaも List.of ができたからそこまで意識されなくなっていくのかなー」 / Twitter
がくぞさんはTwitterを使っています 「実際に定義するにはApplicativeが必要になってきちゃいますからねー。Scala標準ではApplicativeやMonadといった抽象は用意してないので…… FutureがIterable(2.13まではTraversable)に特化したものを用意してるので、それと混同するの僕もまれによくやります」 / Twitter
かにかまさんはTwitterを使っています 「「sequenceとtraverseってScala標準だよね?」と思って調べたら標準じゃない、というのを何度か繰り返している。 謎の思い込み。」 / Twitter
がくぞさんはTwitterを使っています 「標準ライブラリだけで sequence/traverse したい思いはありつつも、そのために標準にApplicative入れるのはちょっとScala wayでは無さそうという気もしており、なんか上手い落とし所ないのかな……?」 / Twitter
Keigo ImaiさんはTwitterを使っています 「Java 17 に sealed class やパターンマッチが正式に入ったのは喜ばしいニュースなのだけどクラスの構文が重すぎる… 一方、全く別のレコード型の構文は record Apple(int i){}; のように書けて理想的なんだけど extends はできない。これクラス宣言にも使えたらいいんですけど」 / Twitter
Keigo ImaiさんはTwitterを使っています 「少し掘ってみると、軽量に書きたければ lombok の Data アノテーション使うのが正解…?」 / Twitter
Keigo ImaiさんはTwitterを使っています 「lombok の Value アノテーションを使って @Value final class Foo extends FooBar { int i; String s; }; みたいに書けということらしい。」 / Twitter
がくぞさんはTwitterを使っています 「WEB+DB PRESS Vol.125 の Scala 3 クイックツアー 読みおわた! 型クラスにextension持たせるアイデアはいいなー。今まで型クラスのinstanceとsyntaxを別々にimportする必要があったのがこれでsyntaxを気にする必要が無くなる!嬉しい」 / Twitter
がくぞさんはTwitterを使っています 「既存のDtoをrecordにしたいけど共通属性を親クラスに持たせてるから継承できないrecordにできないよ問題、共通属性は親クラスじゃなくて単純に別recordにして委譲する方向性になるとは思うのだけど、そうするとJsonの自動マッピングとかでpathが変わるのでScalaのexportのような仕組みが欲しくなるわね」 / Twitter
うんこ💩HIZA💩ペンギンさんはTwitterを使っています 「@gakuzzzz Jacksonならば@JsonUnwrappedを使うとかですかね。(言語機能による解決ではないですが)」 / Twitter
がくぞさんはTwitterを使っています 「@NetPenguin あー確かに 🍥JsonUnwrapped 使うのも良さそうですね!」 / Twitter

がくぞさんはTwitterを使っています 「ExplicitNullsのようにコンパイラオプションでnullをbottom typeじゃなくす見たいな試みだったらJavaも採用しやすそうな気がするけどどうなんだろう? union types とか Null type がないと厳しいか?」 / Twitter
がくぞさんはTwitterを使っています 「自分はJavaのジェネリクスが実装された当時、配列が共変であることの危険性や? extends, ? superなどの扱いについては認識してたけど、変性(variance)という言葉そのものを認知したのはScalaの学習してからだったなー」 / Twitter
がくぞさんはTwitterを使っています 「Stream#toList はJava16から使えるのでいいんですが、Listが直接mapやfilterを持つとかは仮に現状でやろうとするとKotlinと同じ問題を抱えてしまうのでやらない気がしますね……」 / Twitter
がくぞさんはTwitterを使っています 「やっぱJavaにもHKT入れましょう」 / Twitter
がくぞさんはTwitterを使っています 「Java、named tupleとしてrecordも入ったし、genericsの上限境界として元々 &amp; つかえるし、例外のmulti catch で | もあるんだから intersection types と union types も一級で使えるようにしよ」 / Twitter
がくぞさんはTwitterを使っています 「JavaにEitherありすぎ問題」 / Twitter
がくぞさんはTwitterを使っています 「@irof vavr https://t.co/Qvk6WgkJDH や fugue https://t.co/t5luUM0rxp や highj https://t.co/zQmnu7MADX や functional-java https://t.co/91K1tAQQ3O とかとか色々あるのでお好みでも」 / Twitter
がくぞさんはTwitterを使っています 「そう言えばYAVIも自前でEither実装してた https://t.co/mcaKgZAY0E」 / Twitter
yavi/Either.java at develop · making/yavi
がくぞさんはTwitterを使っています 「Java8以前からサードパーティのライブラリでOptionの実装で出来の良いものは沢山あったのにどうして標準のOptionalはああなってしまったのか……(たぶん問題の本質としてはコンセプトが異なるものになぜOptionalと名付けてしまったのかが適切っぽいけど」 / Twitter
wm3さんはTwitterを使っています 「あるブロック内だけレシーバーを変えるのって Ruby とか Groovy とかでもやられてて、その意味ではレシーバー付きの関数リテラルは Kotlin 特有というわけじゃないんだろうけど、レシーバーの差し替えを安全に使いやすい言語の一つではあると思う。」 / Twitter
がくぞさんはTwitterを使っています 「確かに instance_eval とかもそうか」 / Twitter
がくぞさんはTwitterを使っています 「なるほど。レシーバの省略以外にもextensionのスコープを限定してimport無しに使えるようにするのにも使われている感じですね。確かにその使い方は失念してました、ありがとうございます」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「んで特定のthisでしか生えてない 12.dp(dp値をpixel値に変更する関数)みたいな拡張関数にされたカスタムプロパティやModifierのチェーンメソッドが安全なComposable関数のコンテントビルダーとして使えるようにしてくれている。 まぁDSLの表現力やビルダーの安全な利用に関する部分でも有用という話か」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「待って、拡張関数なのか拡張プロパティなのか。」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「拡張プロパティでおけ」 / Twitter
執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz 拙い説明で申し訳ないですが、垂れ流しの呟きのなかからサルベージしてくださってありがとうございます🙏🙏」 / Twitter
がくぞさんはTwitterを使っています 「@Pooh3Mobi とんでもない!こちらこそありがとうございますー!!」 / Twitter
がくぞさんはTwitterを使っています 「とはいえこのモチベーションのために機能が実装されたというより、どちらかと言うと後から発見されたHackの類な気もします……? Function literals with receiver 機能導入時のモチベーションとか当時の経緯に詳しい人居たら教えて貰えると嬉しいですね」 / Twitter
がくぞさんはTwitterを使っています 「Scalaの初学者がflatMapで躓いてるのをめちゃめちゃ沢山見てるので、Kotlinが ?.let に寄せた判断はそれはそれでわからなくも無いんですよね…… Python組み込み関数にもmapはあってもflat_mapは無いし、JSのArrayでもflatMapはmapより実装遅かったし。個人的にはflatMapの方が便利だと思ってますが」 / Twitter
がくぞさんはTwitterを使っています 「語弊がありそう。Kotlinにも Collection#flatMap はある」 / Twitter
がくぞさんはTwitterを使っています 「とはいえ今ではJavaでもRubyでもECMAScript/TypeScriptでもRustでもClojure(mapcat)でもC#(SelectMany)でもflatMapあるしもはや一般的なプログラミング語彙として認知されてて欲しい感はある」 / Twitter

Java 17新機能まとめ - Qiita
Kota Mizushima (on a diet)さんはTwitterを使っています 「"The idea of type-classes is that the behavior is bound to the type implicitly" なんかも、この批判が該当するのは、むしろimportとか明示しないで良いHaskellの型クラスの方であって、明示的な辞書渡しをやってるScalaのimplicit parameterはむしろ、Kotlinの提案に極めて近しいことやってる。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、これから主流の静的型付き言語に型クラスぽいものが入る例はこれからも増えてきそうな気がしてる。 最初のモチベーションが違うものであれ、どうもその辺りの必要性にぶつかるのではないかと感じる。」 / Twitter
がくぞさんはTwitterを使っています 「for文を捨ててtraverse使いましょう」 / Twitter
がくぞさんはTwitterを使っています 「for-yieldとかdo-notationとかがあれば早期リターンとか滅多に書かないからなぁ……」 / Twitter
伊津野 英克さんはTwitterを使っています 「Spring Bootの嫌なところは自動設定で余計なお世話が多い挙げ句、それを止めるにはソースコードを追わないとわからない(どころか止める方法がないことがわかったりする)。」 / Twitter
がくぞさんはTwitterを使っています 「Javaのアレは現状ではまだネストした構造を分解できない(今後の展望には入ってる)のでパターンマッチと呼称するのに抵抗感がありますね……」 / Twitter
がくぞさんはTwitterを使っています 「Genericsの型による分岐は現状のJVM上TypeTagのようなものが無いとできないと思われるのでScalaとかのようなコンパイラでTypeTag挿入するサポートが無いと厳しそうな印象ありますね Javaでこういう事やりたいなら型クラス的なインスタンスを明示的に引数で受け取る方がシンプルにできそうな気がしまし」 / Twitter
union types - Google 検索

.NET

F# SRTP

SRTP入門
静的に解決される型パラメーター - F# | Microsoft Docs
F# で型レベルプログラミング - SevenColoured
F# で型クラス 2020 - SevenColoured
F# SRTP of Type Classes from OO Perspective | F# Snippets
F# を知ってほしい - Qiita
F# の inline 関数中で Haskell のような多相数値リテラルを扱う - Qiita
fslang-design/FS-1043-extension-members-for-operators-and-srtp-constraints.md at main · fsharp/fslang-design
Inline Interfaces, i.e. simpler SRTP · Issue #641 · fsharp/fslang-suggestions

F#

単位

Kazuho OkuさんはTwitterを使っています 「ちなみに F# は数値型に単位を指定できます。使ったことないけど。自動変換は定義できるんだろうか cf. https://t.co/4hv9M6yROc」 / Twitter
測定単位 - F# | Microsoft Docs
Kazuho OkuさんはTwitterを使っています 「24*60*60とか86400とか、そういう定数が出てくるのは単位系を持たない低級なプログラミング言語使ってるからだ、というのは思いますね。変数毎に単位もってて自動変換してほしいわ」 / Twitter
mrpepper(Qiita用)さんはTwitterを使っています 「@kazuho 無次元量はいっぱいあるし、本質的に対数・指数である値もいっぱいあって線形の値と一緒くたにすると詰みそうだし、名義尺度や順序尺度の値だってめちゃめちゃ多いので、そう簡単ではなさそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「それでも、単位が型システムに組み込まれている言語は面白そうだな。F#がそうだっけ?むしろ、プログラムを解析して単位を付ける方向のほうが面白そうか」 / Twitter
ぐるぐる系SQLさんはTwitterを使っています 「@miura1729 https://t.co/FNSr6JG7zZ こんな感じですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@bleis そうそう、これこれ」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 無名数の比というのは無名数になるのか「無名数の比」という単位になるのか...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 無名数の比を求める操作が意味のあるものなのかちょっとわからなくなってきました。ハッシュ関数とかいろいろ使い道はありますけど、そう言うのを特別扱い出来るくらい頻度が少ないかは自明じゃないかと思います」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 よくよく考えてみたら比をとった場合には比の値には「倍」という単位がつくのでした :) たぶん、これは同じ単位の値同士であっても無名数の場合でも同様。また、比の値を取るという操作と割算をするという操作は抽象化した結果としては同じ操作かもしれないけど、単位のある世界では異なる操作かも。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@y_futatuki @miura1729 角度は比の値であって無次元量ですが、degとradは区別したいですしね。 「二つの長さの比がここではradになる」というのは自動的に計算するのは無理で、人間が型つけてやらないとならない。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @y_futatuki ちょっと考えてみたのですが、比の内部表現をfloatや有理数にするのではなく数式のままで表現しておいて文脈によって(sinの引数とか)変換する感じにするとどうでしょうか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @y_futatuki うーん、角度というのは「弧長と半径の比」なので、単に長さの単位を保持するだけでなくそれが「弧長である」「半径である」という情報を持ち回らないとならないですが、そういう出自まで持たせてるとキリがなくならないですかね。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@anohana @miura1729 「弧長と半径の比」を取るという操作を「除算」とまとめて抽象化してしまうのが元凶なのだと思います。抽象化した結果の数学的演算としては同じに見えても結果を「単位」で区別したいなら、それは別演算としなければならない、と。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@anohana @miura1729 もちろん、そうした区別を入れてしまうとこれもきりがなくなる気はしています。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @y_futatuki いっそキリがなくなるのをあえてやって全ての概念に別々の型を付けるってのをやってみるのも面白いのではないでしょうか?ちょうどword2vecのような感じの高次元空間の座標として型を表現出来ると思います。しかも四則演算などは結果の型が分かるのではないかと思います。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @y_futatuki 確かに徹底したらそれはそれでおもしろいかも。数式処理システムみたいなのと統合してREPLで物理量をいろいろいじくれるようにしたら役に立ちそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @y_futatuki ちょっと作ってみたくなりました。word2vecを改造することを起点にすると現実的ですし」 / Twitter

F# サブセットのセルフホスティングコンパイラを作ってみた - Qiita
F#でベンチマークをとる - ベインのブログ
[F#][小ネタ] レコードリテラルと型注釈 - ベインのブログ
Writing high performance F# code
F*コードをF#でパーズして遊ぶ | teqblog
FStar Tips | teqblog
F*でプログラムの正しさを証明する - Speaker Deck
判別共用体が共通フィールドを持てたら嬉しい - ベインのブログ
相互再帰関数の型推論で問題になったケース - ベインのブログ
ミローネ言語コンパイラ・HSP3開発ツール群の振り返りと今後の構想 - ベインのブログ
近況 2021-11-30 - ベインのブログ
令掛ベインさんはTwitterを使っています 「F# で複数の引数を受け取るとき f ctx expr とするか f expr ctx とするか f (expr, ctx) とするか迷ってた。map的な操作をするときは f ctx expr、fold的な操作をするときは f expr ctx、mapFold的な操作をするときは f (expr, ctx) とするとよさそう」 / Twitter
Agata NaomichiさんはTwitterを使っています 「F# 6 に入る ResumableCode、computation expression から state machine にコンパイルしてくれるので closure 作らずに爆速モナドができるってやつなんだけど、benchmark 見ると本当にオーバーヘッドがかなり小さくてすごい。 https://t.co/mn2R4pPiLb https://t.co/Bgi9pSvRls」 / Twitter
fslang-design/FS-1087-resumable-code.md at main · fsharp/fslang-design
可視性を使ってnever型もどきを作る - ベインのブログ
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「F#で実装するセルオートマトン。いわく、この手のものを実装するにはF#は最適な言語である。パターンマッチングで書けるので簡潔だし、出力結果を簡単に画像に保存できる。 https://t.co/PdGlM3CWAh」 / Twitter
Cellular Automata in F#
Keigo ImaiさんはTwitterを使っています 「Dark言語のバックエンドが OCaml から (Rustを選ばずに) F# に移行する話 https://t.co/R6uRQvZqAh」 / Twitter
Dark's new backend will be in F#
F# 6が、再開可能なコード、パターンマッチング、ツールの改善などを導入
令掛ベインさんはTwitterを使っています 「.fsi のバリアントの型注釈おもしろい / https://t.co/wXYD7BE48J」 / Twitter
fsharp/prim-types.fsi at f860e782f10ba4e750e53df216ce8ff96b570e01 · dotnet/fsharp

Publickey

マイクロソフト「.NET 6」正式リリース、.NETとして最初のLTS版。Win/Mac/iOS/Androidアプリを単一コードで記述可能に - Publickey
マイクロソフト「.NET 7 Preview 1」公開。MSBuildによるコンテナビルドなどクラウドネイティブ対応強化 - Publickey

infoQ

Microsoftが .NET 5 をリリース
C#9 and .NET 5 - ブックレビューとQ&A
Azure Functionsの更新には、ランタイム外への.NETの移行が含まれる
Microsoftが.NET 6 Preview 1をリリース
Azure .NET SDK: Jeffrey Richter氏とのQ&A
Microsoftによる.NET Conf: Focus on Windows
C# 9がリリース - record型、init-onlyセッタ、パターンマッチングの拡張を提供
Visual Basic 16.9が.NET 5に
.NET 6:非同期の改善
.NET 6 LINQの改良
.NET 6では、WPFとWinFormsでBlazor WebViewコントロールが利用できるように
Mercuryは、C#と同等の機能をVisual Basicで提供し、新たに複数のプラットフォームをサポート
.NET 6: コレクションの改良
PythonとNodeに挑戦するASP.NET Core 6
EF CoreとASP.NET Core 6で非同期ストリーミング
.NETの新パッケージ System.Threading.RateLimiting
ASP.NET 6のMinimal API、Blazorの強化、ツールのアップデート
.NET 6: スレッドの改善
.NET Framework 2022年1月累積更新プレビュー

.NET | 無料。 クロスプラットフォーム。 オープン ソース。
C# 9.0のTop-level statementsとその動作 | Yucchiy's Note
技術解説 – LINQ – kekyoの丼
技術解説 – 非同期 – kekyoの丼
.NET非同期処理で例外を安全に対処する – kekyoの丼
技術解説 – 動的生成 – kekyoの丼
技術解説 – 低レベル – kekyoの丼
async関数が例外を捕捉する挙動について - ベインのブログ
.NET 6 の Scatter/Gather IO の効果を Visual Studio for Mac 2022 Preview 1 on M1 Mac で試してみましたが、まだ、闇が深かったです - 個人的なメモ
Takashi KawasakiさんはTwitterを使っています 「FileStream面白いなぁと眺めてたけど、なんだこの謎仕様w 謎仕様だから変更されたんだろうけど、 bufferSize=1 って意味わからんな。 https://t.co/pMktQWNAH8 https://t.co/3YnEfT7bXf」 / Twitter
File IO improvements in .NET 6 - .NET Blog
b33fさんはTwitterを使っています 「.NET Instrumentation via MSIL bytecode injection - https://t.co/xslG6HZsdF」 / Twitter
.:: Phrack Magazine ::.
Microsoft、圧力を受け.Net 6ホットリロードの決定を撤回する - ソフトアンテナブログ
米Microsoft、一旦はSDKから削除したHot Reload機能のサポートを復活 | OSDN Magazine
Microsoft、「.NET 6」をリリース ~Apple M1にも対応、史上最速の「.NET」 - 窓の杜
マネージド スレッドを TerminateThread した場合に発生する .NET ランタイムの内部エラーについて | Japan Developer Support Core Team Blog

Python

Python

Kazuho OkuさんはTwitterを使っています 「なんでモヤモヤするのか自分でもよくわからないけど、開発者の思考的に ・オープンアドレスでコリジョンさけたい ・ハッシュテーブルサイズは2の冪乗だし大きめに ・その場合、値はテーブル外に置いたほうが良い ・リハッシュのコストも下がるし ・キー比較とかもあるので間接参照コストは無視できる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「・さらに挿入順を維持できるオマケもついてくる みたいな感じなイメージがあるからなのかも」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あー、つまり、キャッシュミス減による高速化ではなく、省メモリ化あるいはコリジョン減少による演算量・分岐予測ミスの現象による高速化の可能性もありうるってことなんかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「pythonのが速度改善を目的にした実装(そして実際に速くなっている)という想定は正しいんだろうか。実際に書いた @methane さんが知ってそう / https://t.co/ptptdXVeJO」 / Twitter
Kazuho OkuさんはTwitterを使っています 「オープンアドレス法で作る時に、ハッシュテーブルと値をもつ場所を別にしても速度低下が少ない(あるいは無い)、というのはそのとおりだと思うんだけど、それが近年のCPUの特性だと言われると、えっそうなんかなーってちょっと悩む」 / Twitter
Inada NaokiさんはTwitterを使っています 「大きい理由はメモリ使用量削減です。 dictの作成、イテレートは明らかに速くなる一方、探索はほとんど変わらず、マイクロベンチマークによっては遅くなる場面もありました。 参考に当時(まだパッチ作ってる段階)の記事を紹介します。 https://t.co/TsJOFT5l49」 / Twitter
DSAS開発者の部屋:Python に現在実装中の Compact dict の紹介
Inada NaokiさんはTwitterを使っています 「BLOGにも書いている通り、キーワード引数などをOrderedDict(双方向リンクリスト+dictで実装されている)に置き換えることで順序を維持しようという提案があり、それだと速度もメモリ効率にもオーバーヘッドがあったのですが、新しいdictの実装ではゼロオーバーヘッドで実現可能」 / Twitter
Inada NaokiさんはTwitterを使っています 「生成&破棄は旧dictと比べてもかなり速いので、ベンチによっては確かに速いと言えます。 でもPython(Ruby, PHPも)にとっては探索速度の重要度が静的言語と比べて段違いで高いので、探索速度が同じか微妙に遅くなる変更の主目的が速度とは断言しづらい。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@methane ありがとうございます!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「オープンアドレスハッシュのメモリ使用量、値のサイズをs、間接表現のインデックスのサイズをi、ハッシュの最大充填率2/3、可変長配列のbackoff factorを2とした場合、 値埋込: 3s 値を別配列: 2s+3i とかなので、s&gt;&gt;i な状況においては値を別配列でもったほうがメモリ的に有利なんだよな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「backoff factor=1.5とかだとメモリ使用量半分になる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「64bit化にともなって言語処理系のsは大体2倍になったので、そのタイミングで値を埋め込むのをやめる処理系が続出したのは納得感ある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「感想文続き https://t.co/YhkJeDlNA8」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonバイトコードの技術解説。 https://t.co/nfJOVLlHSP 各OPコードは、disコマンドのページで説明されている。 https://t.co/E9WF32xofp」 / Twitter
pyasmtool/bytecode_disasm.md at master · MoserMichael/pyasmtool
dis — Disassembler for Python bytecode — Python 3.10.2 documentation

窓の杜

「IronPython 3」が登場 ~Python 3をターゲットにした初めてのIronPython - 窓の杜
「Python 3.9.6」が登場、「Python 3.8」系はセキュリティのみの修正へ移行 - 窓の杜
「Python 3.9.8」が公開 ~「macOS 12 Monterey」でファイルダイアログが表示されない問題を解決 - 窓の杜
「Python 3.10」のベータ版が登場、「Python 3.8」系は最後のメンテナンスリリース - 窓の杜
「Python」各バージョンに一斉にセキュリティ更新 ~円周率(パイ)の日には間に合わず - 窓の杜

News

米MicrosoftのCoreCLRベースPython実装のフォーク「Pyjion 1.0」が公開 | OSDN Magazine
PyPIリポジトリで開発者の個人データを標的とした悪意あるパッケージ発見 | TECH+
Python 3.10系最初のメンテナンスリリース | TECH+
AppleがmacOS 12.3のベータ版でPython2.7を削除していることが発覚 - GIGAZINE

Pythonプログラミング入門 - IPP_textbook.pdf
index.ipynb - Colaboratory
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonで 'a', 'b' と書くべきところを、コンマを忘れて 'a' 'b' と書くと、まったく異なる値になる。しかし改行を含むリストではこのようなミスを見落としやすい。プロジェクト666個 (Tensorflow, PyTorch, Sentryなど) を調査した結果、5%にはこのバグがあった。 https://t.co/E6gLyEMyoZ」 / Twitter
5% of 666 Python repos had comma typos (including Tensorflow, and PyTorch, Sentry, and V8) | by Code Review Doctor | Jan, 2022 | Medium
mogami290さんはTwitterを使っています 「ほう。一般的にインタープリタは、構文木のトラバース、変数のヒープ確保、動的型に1/3くらいずつの時間を使っていて、動的型を残している限り3倍よりは早くならない。 5倍とはお手並み拝見。型の解析とエスケープ解析で局所的に静的型のレジスタ確保にコンパイルしてしまうのかな?」 / Twitter
python_japanさんはTwitterを使っています 「Pythonの開発者 Guido van Rossum氏から、Microsoft の出資を受けて、今後の4年間でPythonを5倍高速化する計画が発表されました。これはMark Shannon氏のプランに基づく改善計画で、既存のCPythonとの互換性を保ちながら、徐々にパフォーマンスを改善する予定です。 https://t.co/HJ7vknTqU2」 / Twitter
ideas/FasterCPythonDark.pdf at main · faster-cpython/ideas
python_japanさんはTwitterを使っています 「改善プランの概要 1. インタープリタを改善し、データに応じてアダプティブに特殊化した処理を実行(pep-659) 2. 小さな整数値、2項演算子の改善など、たくさんのチューニング 3. 小さな範囲を最適化するJITコンパイラを導入 4. JITで広い範囲を最適化できるように改善 https://t.co/A9tuprSfR6」 / Twitter
faster-cpython/plan.md at master · markshannon/faster-cpython
Miura HidekiさんはTwitterを使っています 「大体同意。5倍速くしたいなら、よく使うプリミティブをより低オーバーヘッドで呼び出す仕組みを作りしかないと思う。 &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「データ構造のunboxing化とエスケープ解析はグローバルに解析しないとboxing &lt;=&gt; unboxingの変換が頻発して却って遅くなると思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITの経験ではVM命令を対応する機械語に展開するだけではそれほど速くならない(コンパイル時間をチャラにする程度)、効いてくるのは足し算とか配列参照なんかのメソッド呼び出しをやっていて遅いのを直接呼び出したり機械語に展開したりしてオーバーヘッドを無くした時。」 / Twitter
Miura HidekiさんはTwitterを使っています 「オーバーヘッドを減らす呼び出しをする際には当然型が分かっていると有利で静的に型が分かるとこの辺で聞いてくる。べつに抽象実行とか大げさなことをしなくても型を推定する方法はいろいろある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITで使った型推定法は型に関するガードの結果を基本ブロック内で伝搬してその基本ブロック内では同じ変数に対してガードを発行しないようにする。この程度の話で最良のときには10倍程度の速度向上が出来る。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 うーんと昔、GaucheでVM命令をそのまま機械語に置き換えた時は2倍くらいでした。各VM命令ごとにVMの状態がconsistentになるようにVMのスタック操作などが入るのがひとつ律速で、基本ブロックでまとめてその中ではVM気にしないようにすればもうちょい進めるかな、ってとこで中断」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana mrubyの話で、mrubyはメソッドのsendが比較的重いのでそこで律速になったかな?って思います。ただ、Gaucheもcall/ccとかで関数呼び出しはCのようには行かないだろうから、私の実装になにかオーバーヘッドがあったのかもしれないです。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 mrubyだと基本算術演算なんかもデフォルトでは全部send経由ですか? Gaucheの場合は組み込み関数は展開できるのでそのへんは有利です。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana 命令は別れているのですが、たとえば足し算は:+をsendするような実装です。FixnumやFloatがレシーバーに来るとは限りませんから」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「Python の AST は式だけで 27 種類あって触るのがつらい。文は 25 種類ある。プログラムなんて変数と定数と関数抽象と関数適用の 4 種類さえあれば十分なのに、なぜ……」 / Twitter
Pythonの再帰回数の上限を確認・変更(sys.setrecursionlimitなど) | note.nkmk.me
PythonでLanguage Implementation Patternsのパーサと戯れる 序 - Arantium Maestum
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「近日リリースの Python 3.10 で導入された match節の長所と短所。この機能はいくつかのケース (構文解析、イベント分岐など) では明らかな利点がある。しかしこうした例は多くなく、case内の構文解釈が標準的でない。またZen of Pythonに反し複数の方法が可能になってしまう。 https://t.co/wbZU46kZtK」 / Twitter
Structural pattern matching in Python 3.10
Grail (web browser) - Wikipedia
はじめに — Python早見帳
Python3.11の新機能 (まとめ) - Qiita
mod_poppoさんはTwitterを使っています 「Pythonは変数のスコープとGILが辛い」 / Twitter

Ruby

Ruby

mrubyのJITの概要 - Qiita
「Ruby 2.6.0」が正式リリース ~JITコンパイラーの導入でパフォーマンスが向上 - 窓の杜
「Ruby 2.6」リリース、JITコンパイラを導入 | OSDN Magazine
Ruby 用の JIT コンパイラを作りました。ただし VM のではない。 | Chiba’s website
Yadriggy C · csg-tokyo/yadriggy Wiki
Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載 - Publickey
YJIT: Building a New JIT Compiler for CRuby — Development (2021)

Rails

Action View の概要 - Railsガイド
ビュー(view) | Railsドキュメント
ERBとは | Railsドキュメント
Ruby on Rails: ビューの基本 - Build Insider
Railsに入る前にしっておきたいERBとActiveRecordのこと - Qiita
【Rails】html.erbでの記述 - Qiita
テンプレートの中でRubyコードを使う - Ruby on Rails入門
コントローラやアクション毎に使用するレイアウトを切り替える - Ruby on Rails入門
Railsのerbで使われる記号の意味 - コード日進月歩
[入門者向け] Ruby on Railsのviewを分かりやすく解説! | 押さえておきたいWeb知識

blog

MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG
KibelaにRBS / Steepを導入しようと考えています | bitjourney Kibela
TypeProfを使ってみました - あしたのチーム Tech Blog
Rubyオブジェクトの未来をつくる「シェイプ」とは(翻訳)|TechRacho by BPS株式会社
Ruby でメソッドが呼び出された時にレシーバがあるかないかで処理を切り分ける - Secret Garden(Instrumental)
Railsの高速化に貢献する新たなJITコンパイラを搭載したRuby 3.1プレビュー1が公開 - Publickey
Ruby 3.1はエラー表示をちょっと親切にします - クックパッド開発者ブログ
プロと読み解く Ruby 3.1 NEWS - クックパッド開発者ブログ
Rails 7.0正式リリース、Node.js不要のフロントエンド開発環境がデフォルトに - Publickey
『webで使えるmrubyシステムプログラミング入門』を読んだ - wonda_tea_coffee’s blog
Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!
Ruby 3.1 の debug.gem を自慢したい - クックパッド開発者ブログ
Crystal言語作者がRubyを愛する理由(1)「等しさ」の扱い(翻訳)|TechRacho by BPS株式会社
Crystal言語作者がRubyを愛する理由(2)文字列の表現(翻訳)|TechRacho by BPS株式会社
Crystal言語作者がRubyを愛する理由(3)ほぼすべてがメソッド呼び出し(翻訳)|TechRacho by BPS株式会社
Crystal言語作者がRubyを愛する理由(4)呼び出しが強力(翻訳)|TechRacho by BPS株式会社
【Ruby】クラウド勤怠におけるゴーストメソッド利用例 | Money Forward Engineers' Blog
WindowsでWSL2を使ってRuby3.0.0-preview2を動かす - ブログのおんがえし
Rubyの開発環境を2021年ぽくする for Windows - ブログのおんがえし
Ruby On BrowserとRuby WASM/WASIの雑感 - ブログのおんがえし

スライド

Use Macro all the time ~ マクロを使いまくろ ~ (日本語) - Speaker Deck
Active Recordから考える次世代のRuby on Railsの方向性 / Directions for the next generation of Ruby on Rails: From the viewpoint of its Active Record - Speaker Deck
Ruby 3 の型解析に向けた計画
タイムアウトにご用心 / Timeout might break application state - Speaker Deck
AST を使って ActiveRecord の where の条件式をブロックで記述しよう - Speaker Deck

Zenn

Re: Rails を主戦場としている自分が今後学ぶべき技術について
Shiikaの型システム - メタクラスとジェネリクス
Rubyの静的型検査を利用した開発手法の現状まとめ
配列からべき集合を求める割と綺麗な関数とそれに至るまで

Qiita

RubyVM::AbstractSyntaxTree::Node 詳細 - Qiita
Ractor超入門 - Qiita
「Railsは終わった」と言われる理由 - Qiita
Railsの趨勢についてTwitterで話題になっていましたが、このブログの内容に賛成ですか? - Quora
成瀬さんはTwitterを使っています 「取り出す方はその通りだけど、入れる方は、Rails以外のフレームワークってvalidationとかモデルの扱いとか、ぼくらが当たり前に使ってるやつが存在しなくて無限に設定書かないといけなかったりする」 / Twitter
ruruby: RustでつくっているRuby - Qiita
Rustでつくる(つくれるかもしれない)Ruby - Qiita
RubyをCに変換する話 - Qiita
Ruby処理系自作入門 - Qiita
Ruby 2.6 Advent Calendar 2018 - Qiita
サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita
Ruby 2.7 Advent Calendar 2019 - Qiita
サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 3 - 新機能と変更点の総まとめ - Qiita
Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
Ruby 3.0 Advent Calendar 2020 - Qiita
Miura HidekiさんはTwitterを使っています 「AIでruby-signatureを生成する https://t.co/K1pwgGQSEO #Qiita ちょっとこの関係のものを触っていた。'a + 1('aは型変数)みたいのを'a = Fixnumと推定してもいいのか迷う」 / Twitter
AIでruby-signatureを生成する - Qiita
Miura HidekiさんはTwitterを使っています 「フィボナッチを求めるメソッドfibに対して、抽象実行による型プロファイルで型変数'aをapplyするって感じでテストプログラムなしで型推定を試みたんだけど、そうすると fib: 'a -&gt; Fixnumと出てきた。'a + 1なり 'a &lt; 2で’aをFixnumと推定してもいいなら fib: Fixnum -&gt; Fixnumと出来るんだけどなー」 / Twitter
Miura HidekiさんはTwitterを使っています 「この辺をやりだしたのは、もちろん大堀先生の「コンパイラ」の型推論の所を読んだのが理由です」 / Twitter
mmcはどう失敗したのか - Qiita
Kinx Update 2021(パッケージ管理サポートなど) - Qiita
TypeProf VSCode ExtensionでRubyの静的型解析を体験する - Qiita

Twitter

_ko1さんはTwitterを使っています 「これはrubyでは他言語を意識した変更です」 / Twitter
hnwさんはTwitterを使っています 「@_ko1 すみません、ようやく理解しました。リリース前のPHP7の変更をVladimir Makarovさんがキャッチアップしてたところから議論が始まったんですね。かつリリース前のPython 3.6も参照してますね。なるほどー https://t.co/fyIsbAGWOR」 / Twitter
Feature #12142: Hash tables with open addressing - Ruby master - Ruby Issue Tracking System
hnwさんはTwitterを使っています 「@_ko1 なるほど、コメントありがとうございます。Ruby2.0付近で順序を維持するようにしたのは他言語を意識した仕様変更だと思っていたのですが、Ruby 2.4の変更は高速化という理解でした。 https://t.co/pxsTkefmtE」 / Twitter
Ruby 2.4.0 リリース
_ko1さんはTwitterを使っています 「@hnw 目的は性能です(メモリ消費削減含む)」 / Twitter
hnwさんはTwitterを使っています 「@_ko1 Ruby 2.4の実装を議論していた時期はPHP7リリース前だったので完全に独立に実装を進めていたのかと思ったんですが、他言語での連想配列の高速化の流れの影響が間接的にあったということでしょうか。それとも、それ以前から他言語との比較で問題意識を持っていた箇所ということですかね?」 / Twitter
monochromeさんはTwitterを使っています 「Rubyの多重代入、辛すぎだろ。 最後の評価順の話は、現在のCRubyとは異なるようだ。 多対多の代入の場合、右辺を並び順に評価した後、左辺を順に評価している。 以前のYARVは左辺は逆順で評価していたようだ。(その気持ちはVMを自作すると痛いほどよく分かる https://t.co/djYeYkyScp」 / Twitter
Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog
RBS基礎文法最速マスター - pockestrap
Miura HidekiさんはTwitterを使っています 「むしろ申し訳ないという気持ちになった...。正直、抽象実行でリアルタイムで補完するとか型チェックが出来るようになるとは思わなかった」 / Twitter
kateinoigakukunさんはTwitterを使っています 「Special thanksに挙げていただきました 😊 https://t.co/X9Bxvicd07」 / Twitter
TypeProf for IDE: Enrich Development Experience without Annotations
kateinoigakukunさんはTwitterを使っています 「TypeProf for IDE: Enrich Development Experience without Annotations #ruby #ruby3 https://t.co/MUZ9X6yip1 via @SlideShare」 / Twitter
Miura HidekiさんはTwitterを使っています 「苦節5年、とうとうRubyでmallocを書くことが出来た。この労力で得られた教訓を一言で言うと、「適材適所」。Rubyは低レイヤのための言語ではないことが分かった https://t.co/W76azk2HdO」 / Twitter
mruby-meta-circular/malloc.rb at master · miura1729/mruby-meta-circular
Miura HidekiさんはTwitterを使っています 「とにかく型変換がめんどくさい。C言語ってよく出来た言語だなって思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行による型の推定、型変数を引数に抽象実行を行って型変数間の関係を抽出して、高速に実行出来る形にコンパイルすることで抽象実行を高速化する方法が突然思いついた」 / Twitter
Miura HidekiさんはTwitterを使っています 「前段階で抽象実行の抽象実行を挟む感じ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RubyとPythonの設計思想の違いはfor文(メソッド)に集約される。Pythonはfor文のループとしての記述のしやすさを重視しているが、Rubyのforメソッドはあくまでオブジェクトに手続きを任せる方式である。この違いは言語全体に影響しており、Python=システム言語、Ruby=DSLっぽい https://t.co/qmBxEn7GaN」 / Twitter
Ruby vs Python comes down to the for loop
Miura HidekiさんはTwitterを使っています 「mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog https://t.co/D0ekqClFqR setjmpってCPS変換するとかメタサーキュラーインタプリタを構築するとかして実装できないかしらん?」 / Twitter
mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog
Miura HidekiさんはTwitterを使っています 「mrubyの場合、longjmp後残っていないといけない変数値はVM実行のための限られたものだろうからsetjmp時に退避するとかして、あとはapply like function経由で関数呼び出しするようにプログラム変換すれば可能か気がする。ちょっとしたCコンパイラを書かないといけないけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「WebAssemblyが関数ポインタをサポートしていないとかなら流石に無理だけど」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 間接関数 call ありますよ。関数の型を事前に登録しておく必要はありますが」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど。当然関数の型は静的に分かるのでそれほど大変な話ではないですね」 / Twitter
κeenさんはTwitterを使っています 「CPS変換したプログラムを動かしたいからWASMにTCOきてくれという」 / Twitter
Continuation-passing style - Wikipedia
コスモさんはTwitterを使っています 「@NandroidF Rubyに関してはMSYS2同梱インストーラーが推奨に変わってます。インストーラーを一発ねじこむだけで環境構築が終わるようになっていて、問題は少なくなっているはずですー。」 / Twitter

「Ruby 3.0.3」「Ruby 2.7.5」「Ruby 2.6.9」が公開 - 窓の杜
「Ruby」環境がWebブラウザー上で動作する時代に! サーバーを介さずに処理が完結 - やじうまの杜 - 窓の杜
「Ruby 3.1」が登場 | OSDN Magazine
Raku 入門

Swift

データ競合のない並列言語を目指すSwift
Swift CollectionsはSwiftに新しいデータ構造をもたらす
Swift 5.4が複数の可変数引数、リザルトビルダなどをサポート
async/awaitとアクタをサポートするSwift 5.5
Swiftの関数型の実行時表現 - Speaker Deck
並行性サポート、列挙型、プロパティラッパなどを強化したSwift 5.5
Swiftが実験的に分散アクターをサポート
伊津野 英克さんはTwitterを使っています 「Swift ライクなテンプレート文字列は互換性の問題もないしいいよね。JavaScriptの`${value}`は言語としての一貫性がなぁ。」 / Twitter
Swift Playgrounds 4.0でiPadを使ったiOSアプリ作成が可能に

PHP

PHP式プログラミング入門

PHP式プログラミング入門(LT版) #func_party |tadsan|pixivFANBOX
PHP式プログラミング入門
ジェネレータで無限を手玉に取る術 #phperkaigi |tadsan|pixivFANBOX
関数型プログラミングの世界
計算量O(n)の画期的なソートアルゴリズムであるスターリンソートをHaskell で実装してみた #Haskell - Qiita
gustavo-depaula/stalin-sort: Add a stalin sort algorithm in any language you like ❣️ if you like give us a ⭐️
Functoolsを作った - Qiita
Functoolsで過剰にスマートなPHPを書こう (無名再帰篇) - Qiita
PHPの無名関数式とは何か、そしてPHP7.4のアロー関数にそなえよう - Qiita
$-less PHP|tadsan|pixivFANBOX
西尾泰和のブログ: Pythonでワンライナーを作成する際のノウハウ集
Multi-Paradigm Language TAO

sjiさんはTwitterを使っています 「やはり PHP、SharedArrayBuffer 的なコンテキスト間でのゼロコピーのデータ共有方法ないのが惜しいな。いやメモリ共有は悪なのでそのものが欲しいわけでもないんだけど、やはり copy でなく move が欲しい」 / Twitter
sjiさんはTwitterを使っています 「parallel + FFI 使うと、FFI で確保した C 言語データ領域のアドレスを Channel 経由で渡すという裏技が使え見た目上はゼロコピーになるんだけど、FFI 経由での C 言語データ領域へのアクセス自体がアレなので Channel 経由でふつうにコピーして送るのに対するコストメリットがあまりない」 / Twitter
sjiさんはTwitterを使っています 「LuaJIT にならった JIT での FFI データアクセス最適化が入ると多分ある程度戦えるようになるんだけどなあ」 / Twitter
sjiさんはTwitterを使っています 「https://t.co/oMX4wVVrtw これとかゼロコピーでの共有使える奴が圧倒的に強く、現時点では JIT 性能や配列 / オブジェクトアクセス以前の要因で Node に PHP が勝てないところ(ほぼ Node と同等の処理で PHP 側マルチスレッド化しても圧倒的に差がつく)」 / Twitter
fasta | Computer Language Benchmarks Game
sjiさんはTwitterを使っています 「moveToAnotherRuntime($data) した先で $data が unset されたような扱いにできて、静的解析でその状態での不正利用を検知できるようなソリューションがあるとだいぶ嬉しいな」 / Twitter
sjiさんはTwitterを使っています 「ランタイム側は参照経由で null 突っ込むくらいは今ある仕組みの延長でもいけるか、そいつへの参照を持つ側は nullable にしないと持てなくなる。静的解析はどうかなあ、rust でいう所有権的な仕組みを使えればいける気もするけども」 / Twitter
sjiさんはTwitterを使っています 「参照持つ側を nullable にせざるを得なくなるとすると null チェックを強制するくらいまでの静的解析からの補助はいけそうだが」 / Twitter
sjiさんはTwitterを使っています 「https://t.co/TNE3Gu7mXX つまりこれはできる」 / Twitter
Psalm - a static analysis tool for PHP
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
20年前にPHPでJavaカスタムタグのようなものを実装していた - きしだのHatena
配列、ジェネリクス、PHPで書けない型 #phpcon2021 |tadsan|pixivFANBOX
「PHP 8.1」がリリース ~PHPの持続的発展を支援する非営利団体「PHP Foundation」も設立 - 窓の杜
「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能 - Publickey
PHP言語の開発と発展をリードする「The PHP Foundation」設立。JetBrains、Zend、Automatticなど10社 - Publickey
「PHP 7.3」のサポートが終了 - 窓の杜
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PHPのarray型は、都合によりリストとも連想配列とも解釈される。あるときJSONの {"0": "No", "1": "Yes"} をデコードしたら、PHPはこれを自動的に「キーが連続した整数である」とみなし、勝手にリストに変換してしまったという話。恐るべし。 https://t.co/z4DnaK73Ri」 / Twitter
PHP: Frankenstein arrays - vazaha.blog
a needle in a haystack(引数どっちだっけ?) - Qiita

Folders - Esolang

zehnpaardさんはTwitterを使っています 「これかな https://t.co/uJkphac3ma」 / Twitter
Folders - Esolang
tadなsanさんはTwitterを使っています 「ファイルシステムでLisp… 作れるな」 / Twitter

デザインパターン

その他

分散アプリケーションランタイム (Dapr) v1.0 が発表された
Micronaut 3.0が将来の開発に適応できる大きな変更を提供
BBCの分析プラットフォームの失敗に備えた設計
フレームワークは善か悪か,その両方か?
アーキテクチャと設計 InfoQトレンドレポート - 2019年1月
データメッシュの原則と論理アーキテクチャの定義
議論によるソフトウェアアーキテクチャの拡張 - アドバイスプロセス
AWS Migration Hub Refactor Spacesの一般提供により、アプリケーションリファクタリングが大きく進展
Netlify GraphによりWebアプリにおける外部API統合をシンプルに
Googleが第2世代のCloud Functionsを発表
セキュリティ・バイ・デザインがクラウド移行のリスク管理にどのように役立ったか
オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの
デザインパターンの陳腐化 - 千里霧中

関心の分離

OOP

MVC・MVP・MVVM

Model View ViewModel - Wikipedia
MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT
ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
MVVMを勉強するときに参考になった 概要まとめ & アンチパターン & リンク集 - Qiita
» [WPF] MVVMパターンについて -入門編- 技術ブログ
Vue.jsが採用しているMVVMパターンとは【目的を重点に解説】 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
プログラミングな日々: MVVMとは何か
いまさら学ぶMVVMパターン
MVVMとはなんぞやを公理から求めてみる - 滅入るんるん
【C#活用】WPFでMVVMパターンを実装する際の注意点 | .NETコラム
Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita
現場で選ばれているiOSアーキテクチャ - Qiita
完璧なモデルビュー-どんなアーキテクチャでもRyanKay(MVP / MVC / MVVM)
ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓 - ログミーTech
開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT
MVPとかMVVMとか - ゆうなんとかさんの雑記帳的な。
Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する - エンジニアHub|Webエンジニアのキャリアを考える!
雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳
Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に
MVVMのModelにまつわる誤解 - the sea of fertility

デザインパターン・DI

コンポジション

継承とコンポジションをどう使い分けるか
コンポジションとは : JavaA2Z
やはりお前らのコンポジションは間違っている - Qiita
クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
プログラミング 継承とかインターフェースとかコンポジションとか - はかせのラボ
合成と委譲ってなに? | 民主主義に乾杯
0.デザインパターンの基本 2 | TECHSCORE(テックスコア)
継承 (プログラミング) - Wikipedia
プログラマー育成コース for Java Web開発のためのJava入門:7章 : 富士通アプリケーションズ
【23日目】オブジェクト指向プログラミング⑦コンポジションな関係を作る - 目指せ!Pythonプログラママー

NAKAMURA AtsushiさんはTwitterを使っています 「DIコンテナを使う理由はそうなんだけど、なんでDIするか?の答えにはなっていないような 個人的には依存の解決はPullするかPush(Injection)するかしかないと思っていて、PullはStaticなリポジトリへ依存しないといけなくなるからDIするんだけど 前にこの辺にかいた https://t.co/LCSUv3Yzrm」 / Twitter
Service LocatorとDependency InjectionパターンとDI Container - nuits.jp blog
Takuto WadaさんはTwitterを使っています 「依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ DIコンテナが依存と生成知識を一括管理し、秩序と調和が訪れる(完)」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「この流れで考えたら、唐突に「プリミティブ型の断片的な設定パラメータをinjectする」ことへの違和感と抵抗感の理由がわかった。 それだと整合性の担保や変更時のレビューが大変になるから、Abstract Factory相当のオブジェクトがほしかったんだ。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「diconファイルをモジュール化すれば自然にそういう単位になるけど、GuiceやDaggerで同じことをやるにはもう少し工夫が要る」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「という発想が、デザインパターンを知ってるとできるようになるって話を書いた気がした。 https://t.co/R7mwTo9YDA DIコンテナでこの問題を解くときの実装はGoFのAbstract Factoryとはぜんぜん違う形になるはずだけど、状況と問題設定は同じ。」 / Twitter
一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?に対するYuki Sonodaさんの回答 - Quora
Kazuho OkuさんはTwitterを使っています 「そうなんだよね。結局、GUIフレームワークプログラミングで「発見」されたAbstract Factoryパターンをサーバサイドのフレームワークプログラミングで「再発見」したのがDIというか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「で、IoCについては、設定ベースではなく規約ベース(convention over configuration)でやる手法もあって(libcが呼ぶユーザプログラムの関数名がmainと決まってるのが端的な例)、サーバサイドフレームワークでも後々、規約ベースの手法も取られるようになった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「IoCが、規約ベースなのか、コードベースなのか、専用言語を使うのか、という点はそれぞれ得失がある(クライアントサイドGUIでもしばしば専用言語を使う)けど、規約ベースやコードベースでやることの敷居が高い言語ほど、ごついDIになりがちなのはしょうがないよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「デザインパターンについては Pree のメタパターンについての本が一番記憶に残ってるし、いい本だと思う。Amazon 見ると2009年に買い直してるから、部屋のなか探せば出てくるかな。 https://t.co/nuMeSzv5hX 内容については https://t.co/HTDBSCXQOd が参考になると思う」 / Twitter
オブジェクト指向におけるデザインパターン
伊津野 英克さんはTwitterを使っています 「共有するドメインモデルと個々のメンタルモデルのギャップをMVCで回収するという解釈はいい気がする>DDDに関する論の主戦軸を整理してみた(2020年版) https://t.co/k61ltvIfbp #Qiita」 / Twitter
DDDに関する論の主戦軸を整理してみた(2020年版) - Qiita
ドメイン駆動設計 - Wikipedia
GRASP - Wikipedia
Abstract Factory パターン - Wikipedia
Observer パターン - Wikipedia
Flyweight パターン - Wikipedia
Command パターン - Wikipedia
nishio hirokazuさんはTwitterを使っています 「WebアプリのためのフレームワークがGUIの部品をクラスで作るようになった…しかしメジャーどころのReactが「クラスで部品を作るのはやめて関数で作る方向に移行します」と宣言(2019年)この状況において20年前のオブジェクト指向的設計はどの程度有効なのか?どういう修正を加える必要があるのか?」 / Twitter
Tetsuya KaneuchiさんはTwitterを使っています 「これぞ「継承」の問題。 #オブジェクト指向」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言葉の意味が時代と共にズレていくのはありがちな現象だけど、技術用語についてはそれは大いに問題であって、少なくとも意味を拡張する時には元の意味に矛盾しないようにしないと論理性に欠けるよね。ましてや元の意味は捨てるなんてダメでしょう。元の意味と矛盾するものは別の言葉を充てるべきでは。」 / Twitter

コンポーネント

Githubが複雑なアプリケーションでWeb Componentsの開発を容易にするCatalystをリリース
IonicのStencilコンポーネントコンパイラの設計に関する考慮事項 -- DotJS2019でのAdam Bradley氏の講演
効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合

ドメイン駆動設計

なぜDDD初心者はググり出してすぐに心がくじけてしまうのか - little hands' lab
ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab
モデルでドメイン知識を表現するとは何か[DDD] - little hands' lab
ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か[DDD] - little hands' lab
ドメイン駆動 + オニオンアーキテクチャ概略[DDD] - little hands' lab
モデルとは"現実世界を正しく表現したもの"ではないという話 / 境界付けられたコンテキストの必要性[DDD] - little hands' lab
ドメイン駆動設計関連情報のググるときのコツ - little hands' lab
JJUG2017fall 「DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話」 - little hands' lab
境界づけられたコンテキスト 概念編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
境界づけられたコンテキスト 実装編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD] - little hands' lab
ドメイン駆動設計は何を解決しようとしているのか - little hands' lab
DDD基礎解説:Entity、ValueObjectってなんなんだ - little hands' lab
新卒にも伝わるドメイン駆動設計のアーキテクチャ説明(オニオンアーキテクチャ)[DDD] - little hands' lab
非エンジニアの方に「DDDって何なの?」と聞かれたときの説明[ドメイン駆動設計] - little hands' lab
ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD] - little hands' lab
「DDDのモデリングとは何なのか、 そしてどうコードに落とすのか」資料 / Q&A - little hands' lab
CQRS実践入門 [ドメイン駆動設計] - little hands' lab
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか - little hands' lab
ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
DDDで複数集約間の整合性を確保する方法(サンプルコードあり)[ドメイン駆動設計] - little hands' lab

R. ShioyaさんはTwitterを使っています 「RustConf 2018 のキーノートなんだけど,スーファミとか64の時代のゲームの作りから始まり,オブジェクト指向はゲームに全くむいてない(For games, OO doesn’t really help, at all)とか,昔ながらの配列ベースの構造を発展させた ECS というものの説明がされてて面白かった https://t.co/InZWz9Wfqk」 / Twitter
My RustConf 2018 Closing Keynote
R. ShioyaさんはTwitterを使っています 「ゲームを作るのに(少なくとも古典的な)オブジェクト指向がむいていないのは体感的には昔から感じていて,“The problem with OO is that everything happens somewhere else” と書かれているように,オブジェクトの相互作用で全体の動作を実現するみたいのは作りにくいしわかりにくいんだよな.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オブジェクト指向のメイヤー先生も「OOは、データと操作の並置ではなく、データ中心のアプローチ」と書いてはいたが、でもその独立性・自律性が別の扱いづらさを生むのはよく感じる話。 RDBとのミスマッチはわかり易いけど、多くの問題解決パターンとしてもミスマッチ多々発生してる印象。」 / Twitter
オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

関心の分離 - Wikipedia
関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
責任(関心)を意識したアプリケーション設計 - Qiita
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
ryoheyさんはTwitterを使っています 「MVVMでモデルを頑張って分けすぎてモデル間の依存が多くなって良くない感じになるのと同じことが起きそう。最初のうちはあんまり分割しないで素直に書くのが良いかもな」 / Twitter

基本はatomと直積と直和でデータ構造が表現される

がくぞさんはTwitterを使っています 「オブジェクト指向なデータ構造に限らず、FPで一般的に使われるものも含めて基本はatomと直積と直和でデータ構造が表現されることが殆どな気がしますね? 後はnominalかstructuralかの差だとか、classベースだと基本的にopen recursionがくっついてるとかそういう差異の話になりそうな気がします」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz というかもっとつまらない実装の話で、ツリーノードに枝と葉があるのにポリモーフィズムがちょうどいい以外に、OOPだからとくに作りやすいものってない気がするなあと思って」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru 一般的には、OOPだと枝と葉以外のものを足したくなった時に既存の操作を変更せずに足すことができる、という所にメリットを見出してる感ありますねー」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz 抽象さえ合っていれば要素の詳細に多態を入れてもいいのは OOP っぽいですねー。ただそれだと、OOP はどこでも何でもそうなので、着目したいなと思ったのは、構造そのものが多態性による実装ととくに相性がいいと言えるのはどれかなと思ったんです」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru なるほど。そういう意味で言うと、構造として相性がいいみたいなのは無さそうな印象ですねー」 / Twitter
ひさてるさんさんはTwitterを使っています 「いかにもオブジェクト指向なデータ構造って突き詰めると Composite パターンしかないよなってならない? こいつは Node が Leaf か Branch でポリモーフィックっていうオブジェクト指向らしさが効いてくる。あとは結局、要素が抽象を介して実体を参照している部分がOOPで、構造自体はそうでもない」 / Twitter
ひさてるさんさんはTwitterを使っています 「で、振る舞いを持つ小さなコールバックをクラス定義していたのは、いまどきなら変数を束縛した関数でもいけるので、アルゴリズムのためのOOPって方向性でいくと、わざわざ名前付いたクラスを設計する必要性は下がってきてる」 / Twitter
ひさてるさんさんはTwitterを使っています 「だからあまり役に立たないではなく、むしろ何でもかんでもOOP言ってたのが落ち着いて、人が認識するために名前を持つ概念モデルとして、および、依存チェーンに存在するモジュール単位として、という本領が見えきたんじゃないのという考え」 / Twitter
ひさてるさんさんはTwitterを使っています 「すでに構造化プログラミングで語られていたことにオブジェクト指向のラベルを付けて語る独自理論については除外して考えています」 / Twitter
union types - Google 検索

SOLID原則

依存性逆転の原則 - Google 検索
イラストで理解するSOLID原則 - Qiita
SOLID - Wikipedia
開発者が知っておくべきSOLIDの原則 | POSTD
SOLID原則は最新のソフトウエアアーキテクチャでも重要か?
設計原則とSOLIDについてのノート
【SOLID原則】オープン・クローズドの原則 - OCP
よくわかるSOLID原則1: S(単一責任の原則)|erukiti|note
SOLID原則をまとめてみた Part1 ~SOLID原則とはなんぞや編~ - ecbeing labs(イーシービーイング・ラボ)
開発者が沿うべき、Solid原則とは - 株式会社オプティマイザー

DI

依存性逆転の原則 - Google 検索
ひさてるさんさんはTwitterを使っています 「テスト書くこと自体にやるかやらないかの選択肢はないと思う。テスト可能な仕様設計(フィクスチャが際限なく関連に広がらないか)と構造設計(密結合で組み合わせ爆発しない DI か) があるかないかで勝手に決まる。そこが欠落してるのに無駄なテストを書こうとするのは、書くだけ無駄と考える人より愚か」 / Twitter
ひさてるさんさんはTwitterを使っています 「モジュールもデータもだけど、抽象を境界として責務領域を区切れてないかぎり、本番と同じ不確定要素の組み合わせ爆発のかたまりでしかなく、それは検証って意味でのテストじゃなくて、いちど通しておけば事故率下がるよね的な、ためし稽古リハーサルみたいなものでしかないものと考えでいる」 / Twitter
ひさてるさんさんはTwitterを使っています 「テストを書くなというわけではなく、それより先にやることがあるというはなし。ララベルでいうと、テストを書く前に、テストの対象範囲からファサードをすべて排除するのが先。エロクエントのインスタンスともなるべく距離を置きたい。そういうこと」 / Twitter
ひさてるさんさんはTwitterを使っています 「単体テストでクラス粒度の動作確認を取るべきというのと、結局 Symfony がいちばん簡単なフレームワークじゃん、というのは一致しているはずなので、Symfony あるいは DI と DataMapper 系 ORM を評価できない人の言う「俺のようにテストを書け」は、信じたら危ない可能性がある (暴言)」 / Twitter
非実在naka akiさんはTwitterを使っています 「@tanakahisateru どーでもいいところでnewだらけのコード、つらい… DI使いたい… しかし一体どこで(いつ)どうやって彼らwを教育できるとゆーのだらふ… みたいな」 / Twitter

DIではなく継続で依存性の逆転を行う実例

依存性逆転の原則 - Google 検索
がくぞさんはTwitterを使っています 「DIではなく継続で依存性の逆転を行う実例だ https://t.co/tWLI9vMpFJ」 / Twitter
phenanさんはTwitterを使っています 「記事を投稿しました! 令和版: 依存関係逆転の法則の実現方法 [Scala] on #Qiita https://t.co/wbWLuEqDGe」 / Twitter
令和版: 依存関係逆転の法則の実現方法 - Qiita
phenanさんはTwitterを使っています 「@gakuzzzz その通りです。 ただ、継続を強調すると難しいと思われそうなので、あまり継続の話であることを意識させないように書いたつもりです。 (データ型の方に意識が向くように書いた)」 / Twitter
がくぞさんはTwitterを使っています 「@phenan 読んでてその意図をひしひしと感じました!取っ付きやすくてその誘導がめっちゃ成功してると思います!」 / Twitter
phenanさんはTwitterを使っています 「@gakuzzzz 良かった! 成功してるなら嬉しいです!」 / Twitter

systemd

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「systemdのunitの書き方をブラウザ上で実際に動かしながら学習できるチュートリアル。targetを追加し、serviceを追加し、service間の依存関係を記述して異常時の対応もおこなう。 https://t.co/zlwsjybZ99」 / Twitter
systemd by example - the systemd playground

マイクロサービス

なおぱーさんはTwitterを使っています 「他社のエンジニアの方から「マイクロサービスを始めたいんだけど」と相談を受けることが増えてきたんだけど、そのたびに「99.9%のケースではマイクロサービスにしない方がいいですよ」とお伝えしてる。ましてや新規サービスをマイクロサービスで作るのはかなり修羅の道。ソウゾウは極めて特殊」 / Twitter
Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr その発言する人無限にいるから説くの大変…(エンジニア3人のスタートアップで…とかさ…」 / Twitter
なおぱーさんはTwitterを使っています 「@sotarok この間koemuさんともこの話で盛り上がったんですが、外から見てるとメルカリのマイクロサービス化が過剰にキラキラして見えてしまっているんだなーと感じます。リアルを伝えていかねば…」 / Twitter
Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr そう、大体みんなメルカリとか見てあれやりたいっていうの…w」 / Twitter
なおぱーさんはTwitterを使っています 「@sotarok リファクタリング文脈でモノリスをマイクロサービス化したいと言われたら、「まずはユニットテストとe2eテストを書け。次に不要コードを消せ。話はそれからだ」というと「まあそうですよね…」とションボリされますが、そういうことをもっと発信していかないといけないですね!」 / Twitter
Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr あとは組織論もかな… マイクロサービスにして、それどんな組織でどう作っていく、運用していくイメージなのか。それがフィットしてなかったら無限に無駄だからなぁ」 / Twitter
NetflixやAmazonなどの大企業も導入する「マイクロサービス」の利点とは? - GIGAZINE
Kazunori OtaniさんはTwitterを使っています 「マイクロサービス化すると、今までと比べて「どんなサービスがあるか」とか、「サービス間の依存関係」とかが頻繁に変わり得ることになる。そういうサービス構成を設計ドキュメントで管理するのは難しい。トレース情報を集めて、実態を把握しましょう。」 / Twitter
渋川よしきさんはTwitterを使っています 「@katzchang サービスディスカバリーとか、.well-known/以下の自分のサービスの情報を開示するエンドポイントとかの組み合わせで自動ドキュメント化とかできないもんかなー、とか思ったりもします。トレースもいいですね。」 / Twitter
Kazunori OtaniさんはTwitterを使っています 「@shibu_jp 静的解析は可能性がありそう。ただ、それによって実装の手間が増えないようにするのは要注意かもしれない。」 / Twitter
JaegerとUberのCRISPを使ったマイクロサービスコールのクリティカルパス分析
クックパッドの基盤をフル活用して新卒が新規アプリケーションを作った話 - クックパッド開発者ブログ
Datadogを使った分散トレーシングをクラウド会計で見えるようにした話 | Money Forward Engineers' Blog

DDD

関数型ドメインモデリング

yasuabeさんはTwitterを使っています 「この本ちょっと期待。来年4月に完成予定らしいけどBETA版はもう読める。関数型ドメインモデリングもそろそろ黎明期から普及期に入ってきそうな感。」 / Twitter
PragmaticProgrammersさんはTwitterを使っています 「Harness the power of functional programming by creating real-world applications rather than focusing on theoretical concepts. Build and deliver robust applications in less time and with fewer defects. From Objects to Functions, in beta https://t.co/AjRs88HIjc #pragprog https://t.co/ZFU9ta9GRe」 / Twitter
From Objects to Functions, in beta
yasuabeさんはTwitterを使っています 「DDDも、OOの集大成としての第一世代(そろそろ古すぎ)、イベントが導入された第二世代(せめてここでありたい)、関数型の第三世代くらいみたいなイメージで見てるけど、第一世代原典の青い本もよく読むと関数型の萌芽はすでに入っとるのよな。SuppleDesign 以下のパターン群あたり特に。」 / Twitter
yasuabeさんはTwitterを使っています 「完成予定6月に伸びたっぽいな」 / Twitter
yasuabeさんはTwitterを使っています 「これ余りとんがった技法は使ってないけど、基本的なFPでWebアプリを作るよい教科書になりそうな気がしてるのよな。ぱらぱら読んでると、圏、モノイド、函手〜モナド辺りについても最低限の事が練習問題付きで易しく解説されてる。」 / Twitter
yasuabeさんはTwitterを使っています 「基本的と言っても未完成の章に "Functional Concurrency" が入ってるから、Scala で言えば Cats Effect 相当の内容までは入るかもしれないけど。」 / Twitter

本質

ひさてるさんさんはTwitterを使っています 「どんなクラス名にするといいかとか、プロパティの数がどうとか、バリューオブジェクトの型を積極的に使えばいいとか、メソッドを短くして集約と委譲だとか、そういうのは DDD というプロセスそのもののカバー範囲じゃなくて、プロセスの枠組みとは独立して実践的モデラーが内包しているものだよなぁ」 / Twitter
ひさてるさんさんはTwitterを使っています 「というふうに問題を分けて考える、独立した抽象概念の獲得っていうの、情報のエンジニアリングにすごく重要で、そもそもオブジェクト指向できるって本来そういうこと言うんじゃなかったっけかなと思っている」 / Twitter
ひさてるさんさんはTwitterを使っています 「ドメイン駆動設計にはドメインをぐいぐい設計するコツが書いてあると思うの、アジャイルが無条件に早いとか、ファーストクラスな関数があるから関数型だとか、名前に引きずられて意味が置き去りになってるパターンだと思う」 / Twitter
ひさてるさんさんはTwitterを使っています 「アジャイルってネーミング、当時たまたま流行ってたからバズるだろうと便乗しただけ。class より function を多用することと関数型パラダイムには何の関係もない。これ本職ならみんな知ってる」 / Twitter
magnoliak🍧さんはTwitterを使っています 「@tanakahisateru オブジェクト指向でも関数型でも、どうやって抽象を見出すか、そのアプローチとか、方法論とか、ライブラリのサポートのレベルの違いでしかなくて、「と、に、か、く、抽象化して一回求められる本質を掴んで実装に進んで!」と言わないとか何とか」 / Twitter
magnoliak🍧さんはTwitterを使っています 「@tanakahisateru それなりに歴史のあるプロジェクトだったら、「このプロジェクトにおいてコードに求められる変化ってどんな変化だった?その共通点は何?」って質問に答えて欲しくて、過去の個別具体的な歴史は別にいいんですよ、とかなんとか」 / Twitter
ひさてるさんさんはTwitterを使っています 「@magnolia_k_ 「わかりました、それらのファクターをまとめて仮に x として、この x が持つ一般的な特徴は…」 「社会に出たら数学は役に立たないんだぞ」」 / Twitter
magnoliak🍧さんはTwitterを使っています 「@tanakahisateru ここでいう数学に統計が入ってこないし、少なくともエンジニアの人は集合を忘れないでいてあげてほしいんですよね」 / Twitter
ひさてるさんさんはTwitterを使っています 「@magnolia_k_ 現場のエンジニアはスキルが低くて約半数に及ぶ人が偏差値 50 以下なのです (統計とは)」 / Twitter
ひさてるさんさんはTwitterを使っています 「@magnolia_k_ そういえば、モデルと抽象と本質が同じ意味っていうの、英語話者とエンジニアだけの感覚ですよね。普通のひと感覚が逆で、モデルは絵に描いた理想にすぎなかったり、抽象はあいまいで意味なく見えるものだったり、原則は例外ありデフォルトって意味だったり」 / Twitter
magnoliak🍧さんはTwitterを使っています 「@tanakahisateru あー確かに 余計な物を削ぎ落とした本質って認識は確かにないですね」 / Twitter

@masuda220

増田 亨.さんはTwitterを使っています 「エンティティ・集約・リポジトリがチームの理解を混乱させ、設計を迷走させる原因は、はっきりしている。 ドメイン駆動設計では、この三つはオブジェクト指向プログラミングの設計の議論。 それに対し多くの技術者は、この三つをテーブル設計とデータベースアクセスの話として解釈する。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計では、エンティティは識別情報を他の属性から明確に区別するための設計パターン。 集約はデータの集約ではなく、計算・判断の「ロジック」の集約を明らかにするための設計パターン。 リポジトリはオブジェクトの退避と再構築のための設計パターン。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の超要約: アプリケーションの複雑さに立ち向かうために、 ビジネスルールに焦点を合わせて、 オブジェクト指向プログラミングに取り組む 別の道: 単純なアプリケーションを、 入出力に焦点を合わせて、 手続き的なプログラミングでちゃっちゃと作る」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の基本の設計パターンで ・値オブジェクト ・モジュール の二つは、チームの設計の基盤として確実に役に立つ。 それに対し ・エンティティ ・ドメインサービス ・集約 ・リポジトリ ・ファクトリ は、解釈が混乱しやすく、チームの設計を迷走させていることが多いのではないか?」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメインサービスは、オブジェクトのモデリングと設計に豊かな経験と確かな判断力を持つ技術者には有用なパターン。 オブジェクト指向プログラミングの理解と実践が不足している技術者にとっては、手続き的なプログラミングに留まるためのアンチパターンになるだけ。禁止すべき。」 / Twitter
増田 亨.さんはTwitterを使っています 「エヴァンスはオブジェクト指向プログラミングでの開発経験があることを前提にドメイン駆動設計を書いた。 しかし、おそらく日本の読者の大半はクラスを使った手続き的なプログラミングの経験しかない。 DTOとエンティティを同じと考える読者にエヴァンスのドメイン駆動設計は意図は伝わらない。」 / Twitter

リポジトリクラスのメソッド設計 - kawasima
杉本啓さんはTwitterを使っています 「ドメイン駆動設計というのは、特別なことではなくて、言葉の普通の意味での「設計」なのだと思っている。 ソフトウェア開発の分野では、「設計」という言葉が、ソフトウェアの内部構造の設計に片寄って使われがちなので、 それを引き戻すために、あえて「ドメイン駆動」と付しているだけだ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ほんとその通りなんだけど、なぜか仕事のやり方にそういうラベルを貼りたがる、そしてそのラベルが製品の商品価値を高めると思っている人は、思いのほか多い。というか、圧倒的多数にみえる。ニンゲンって面白いね。」 / Twitter
杉本啓さんはTwitterを使っています 「だから、ドメイン駆動設計をやるかやらないかとか、採用するかしないかとか、ナンセンスなので、考える必要がない。 ワンライナーのようなケースは別として、たいていの場合、ユーザーにとって使いやすく、開発者にとってわかりやすくしようとすれば、 設計は勝手にドメイン駆動になっていく。」 / Twitter
杉本啓さんはTwitterを使っています 「設計できないと思いDDDに期待するのは、技術スキルが足りないか、ニーズの理解が足りないか、度胸がないかのいずれかで、たぶん、度胸が一番足りない。 自分が考えた未熟な設計を人目に晒して、ボロボロに批評を受けることを恐れている。 その度胸の無さは、ドメイン駆動設計であれ何であれ補えない。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「これもその通りで、ナントカ方法論をそのまま実行したって、それで出来るものは単なる習作の域を出ない。自分でちゃんと考え自分で判断して自分で切り拓いてできたモノは、見ればやはり習作ではなく、作品になっている。でも、この違いがわかる人も、たぶん少数派なんだと思う。さびしいけど。」 / Twitter
杉本啓さんはTwitterを使っています 「度胸がない人は理論や客観的根拠に従って設計しようとするが、たいていうまくいかない。とってもつまらないものが出来る。 理論に従ってるから、みな、けなさないけど、おもしろくないと思ってる。 理論は役立つこともあるが、設計するときはいったんそれを捨てなければいけない。DDDもそのひとつ。」 / Twitter
杉本啓さんはTwitterを使っています 「設計するときに、理論がいっぱい詰まった分厚い本を参照したくなったら、あ、オレ、ヤバいな、と思った方がいいと思う。 僕自身は、設計するときは、本をいっさい開かない。自分の脳髄で、手に馴染んだ道具になっている知識以外は使わない。本を開くとバイアスがかかる。」 / Twitter
SoundCloudの付加価値サービスとドメインゲートウェイを備えたドメイン駆動設計とは
がくぞさんはTwitterを使っています 「#現場から学ぶモデル駆動設計 Wither より Lens 使いましょ」 / Twitter
がくぞさんはTwitterを使っています 「正直JavaだとWitherを自前で定義するとミスしやすいので Lombok 無いと厳しい感がありますね…… #現場から学ぶモデル駆動設計」 / Twitter
Gou.t💉💉さんはTwitterを使っています 「DDDの話になるとリポジトリとか集約みたいな話になって全然ビジネスとか業務の話にならないのに違和感を感じるんだけどそういうもんなの?ドメインから駆動するんじゃないの?」 / Twitter
もっちさんはTwitterを使っています 「@tan_go238 業界に与えるデメリットを知りつつ、実装パターンの書籍を初心者向けに出して儲けてる人がいるから仕方ない 「エンジニアは実装に関心があるから実装パターンから普及するんだ」なんて自分を正当化してるけど」 / Twitter
田中ひさてるさんはTwitterを使っています 「@tan_go238 私にもアジャイル奥義と書いてある本の主題をSOLIDだと思っていた頃がありました https://t.co/ZallGGsiCw」 / Twitter
田中ひさてるさんはTwitterを使っています 「@tan_go238 (手段: 疎結合で相互影響を減らす / 目的: 見積もりと変更コストが釣り合わないと変化を受け入れられなくなる)」 / Twitter
かとじゅんさんはTwitterを使っています 「松岡さんがおっしゃるとおり、僕も以下のようなことを考えます。 1) オブジェクトに対する命令(リクエストとレスポンスがある)→ クラスベースならメソッドに落とし込む、アクターベースならメッセージパッシングにする 2) オブジェクトの状態遷移 3) オブジェクトのイベント通知」 / Twitter
かとじゅんさんはTwitterを使っています 「1)2)3)はCPUとメモリ上の出来事であって、永続化とは別ですね。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「いいえ、「タスク」というモデルを作り、そのモデルが「着手」「停止」「終了」という振る舞いを表現できるような実装にします。(続) #Peing #質問箱 https://t.co/NnMWjAekUP」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「タスクの「着手」というメソッドを実行すると、タスクの内部状態であるステータスが「着手中」に変わる、という形です。 リポジトリは受け取ったタスクインスタンスを、何の分岐やバリデーションもなくDBに格納するだけです。リポジトリは特定のカラムだけを更新したりはしません。」 / Twitter
sumimさんはTwitterを使っています 「ふと、タスクは状態で振る舞いを変えない(変えなくてもほぼ支障は無い)からよいとして、では状態によって振る舞いが変わってしまう例は無いか考えてみている。そしてそんな時に特にオブジェクト指向を意識してどんなふうに組んだらよいか考えるのも面白ろそう。代数的データ型とパターンマッチ?」 / Twitter
MultiParadimeDesign

OOP

OOP

Kota Mizushima (on a diet)さんはTwitterを使っています 「凄い今更の反応なのですが、 https://t.co/IxQBGUg3Xx > ところで、オブジェクト指向入門、この本は、ぜんぜんオブジェクト指向してない。 むしろ、「ふわっとしてない」感じで厳密にオブジェクト指向を定義しようとしてる本じゃないですかね。」 / Twitter
オブジェクト指向は禁止するべき - きしだのHatena
Kota Mizushima (on a diet)さんはTwitterを使っています 「入門じゃないのはその通り(原題がそもそも入門ではない、てか包括的なリファレンスがコンセプト)ですが、メイヤー先生は厳密に定義作って話進めていく人なので、ページ数がすっごい膨らんだだけかなーと。 DbCとか含めて本来OOPやるなら必須の要素を色々列挙してる本だと思います。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あの本を真面目に読んで、全然オブジェクト指向してないと感じるなら色々誤解してるんじゃないかなあ。 型理論はほぼほぼ出てこないですし(型理論の入門の入門くらいかもしれませんが)。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「書籍を斜め読みするのは私もよくやりますが、書籍の骨子を捉えられていない人が妙な方向で書籍紹介やるの好きじゃないんですよ。 どう見てもOOSC 2ndは「オブジェクト指向」の本なのを、そうじゃないと紹介するのはもやるし、ましてや「型理論」とか全然出てこないじゃないですかーと思うわけですよ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「せいぜいが「型について、俗流技術書よりはフォーマルに説明している」ってのがOOSC 2ndのレベルであって、型理論の入門(たとえばTAPLで扱われているような)段階にすらいたってないわけで(参考文献とか見る限り当然彼自身はそういう知識持ってると思われますが)。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「時々こういう事でもやる発言するのが、なんか周囲から見てて不機嫌そうとかこわいとか思われる要因ではと思うことがあるのですが、もうちょっと対象に誠実に向き合っていいのではと思うのですよ。」 / Twitter
r.ishibashiさんはTwitterを使っています 「@kmizu 僕はそういうの好きですよ! 同類なのでフォローになってないかもしれないですかw」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@cactaceae Scala好む界隈が似た傾向はあるかもしれませんね…w」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「人柄が穏やかな事と、結構いい加減な事を言うタイプってのは直交概念であると私は思っていて。 個人的に仲良くしてる人で、直接お話する限り穏やかな人で、喧嘩もしたくはないけど「そこいい加減すぎやしませんか?」という批判が怖がられるとしたらどうすればいいのかなというのは今でも悩みです。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、OOSC 2ndの紹介については苦言を呈しましたが、 > 責務や粒度のようなファンタジックな指標 とかは完全に同意で、あの辺は恣意的になんとでも言える基準じゃね?とよく感じます。 > 単にプログラム言語と向き合うだけになる。 とかも完全に同意。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、広まった言葉はとかく濫用されるってだけの話で、関数型プログラミングとかもだんだんと本来の定義とかけ離れた独自定義がどんどん出て来てるし、概念が大衆化するってのはそういうものなのかもしれないとも思います。」 / Twitter

オブジェクト指向言語は間違っていた! --- 新世紀言語 MixJuice ---
オブジェクト指向が0.05%も理解できない記事 - Qiita
オブジェクト指向プログラミング - Wikipedia
なぜ日本人はオブジェクト指向をなかなか理解できないのか?:新刊ピックアップ|技術評論社
川口 聖人🛫☀️早起きエンジニアさんはTwitterを使っています 「継承先でオーバーライドするか、mixinするか、DIするか。判断に結構迷う」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オブジェクト指向を講義するも「ピンと来ない」学生多い…ごもっとも。 「写経や実験も大事。あと、あくまで主力の設計手法の一つ、絶対に正しいわけでも無く宣伝メリットに批判的な人達も居る。大きなソフトを作るのに必要な『補助線の流儀の一つ』くらいの認識で」 と伝えたり。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ピンと来ない=自分の能力が無いのでは?と思うのが一番マズいよね)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全ての設計手法は、カーニハンの言う「複雑性のコントロール」が肝だよね。それさえ達成なら、手法は何でもいい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしてもライブラリ利用者の視点では、関数に比べてクラスは全貌把握しづらい傾向あるよね。 OOPのステート・内部処理の隠蔽化は良い点の筈だけど、よほどエレガントなクラス設計・I/Fでないと、むしろ利用者側のグリップ感を無くす原因になりがちというか。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「オブジェクト指向いらんよっていうときに「いやカプセル化が」ってよくあるけど、カプセル化って抽象データ型由来だし、あとカプセル化もいまは必要なとこでは必要だけど崩すときには崩す要はバランスになってて、オブジェクト指向はそのあたりの指針あたえてくれず常にカプセル化がえらいってなってる」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「カプセル化がいつ大事で何がデメリットでいつ壊すかみたいな話に関しては、オブジェクト指向はなにも言ってくれないので、心の中の 要はバランスおじさんに従うしかないみたいになってしまう。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「「オブジェクト指向のなかでこの考え方は今でも役に立つ」というのは、だいたいオブジェクト指向以前の構造型プログラミング由来の抽象データ型の話でおさまったりするわけで。」 / Twitter
sumimさんはTwitterを使っています 「Dynabook構想やAltoにまで言及のある力作ですが、ただ、ケイの「メッセージングのオブジェクト指向」とストラウスストラップらの「抽象データ型のスーパーセットとしてのオブジェクト指向」とがきちんと区別されずに渾然一体のものとして扱われているのが少し残念。」 / Twitter
佐藤清文さんはTwitterを使っています 「プログラミング進化論(4)(2009)|Saven Satow #note オブジェクト指向プログラミングについて。 https://t.co/nmVeSaE06e」 / Twitter
プログラミング進化論(4)(2009)|Saven Satow|note
佐藤清文さんはTwitterを使っています 「@sumim 読んでくださりありがとうございます。ご指摘の通りと思います。プログラミング小史ですので、ざっと流れを書くものになり、そうした問題点はありますね。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「オブジェクト指向の3要素とは?」 / Twitter
sumimさんはTwitterを使っています 「なかなか良さそうなことが書いてありそうだったけど訳があれなので、原文を探してみたらこれっぽかった→https://t.co/mK8Fpqw8tc Go や Erlang こそ真のオブジェクト指向言語だ…的な論調や引用はいつも通りもにょるけど、kimizu氏に独自研究と一蹴された結論にも私同様到達できていて好感が持てる。」 / Twitter
Misconceptions About the Philosophy Behind OOP | by Erik Engheim | Medium
‾ƃ‾dさんはTwitterを使っています 「“60年代に考えたのと同じ精神で。私は「オブジェクト指向」を発明したとは思いませんが、コマンド以外のメッセージと通信する完全なコンピューターからすべてを作成することの本当に強力な点に多かれ少なかれ「気づきました」。” OOPの背後にある哲学についての誤解 https://t.co/GVYO8Zx4Np」 / Twitter
OOPの背後にある哲学についての誤解
増田 亨.さんはTwitterを使っています 「複数の異なるクラスで重複するロジックを見つけたら、やるべきは、スーパークラスの抽出ではなく、重複部分を共通部品として抽出して、それぞれのクラスが共通部品を使うようにリファクタリングでする。 実装継承による共通化ではなく、部品組み立て方式(コンポジション)による共通化を選ぶ。」 / Twitter
増田 亨.さんはTwitterを使っています 「複数のクラスが同じメソッドを公開していることを、構造的に明示したい場合は、インタフェースの抽出を行い、それぞれのクラスがそのインタフェースを実装していることを宣言する。 スーパークラスの抽出と、インタフェースの抽出は目的も効果も異なるリファクタリング。」 / Twitter

関数型

KoryさんはTwitterを使っています 「また人にBoehm-Berarducci encodingを布教した https://t.co/oZBt5MliwM」 / Twitter
KoryさんはTwitterを使っています 「rank-1多相がある言語なら直和を埋め込めるといういつもの話をした」 / Twitter
ユーザーブログ:Hexirp/(2020-07-17) lambda 3 の解析 | 巨大数研究 Wiki | Fandom
オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの

状態

がくぞさんはTwitterを使っています 「自分がこの辺、インスタンスを複数持てる事の意味が腑に落ちたのStringTokenizerだったなー 仮にTokenizerが解析位置という状態をグローバル変数で持っていたら、改行で解析している途中に : で解析したくなると困るよね?→ インスタンス毎に状態持てると嬉しい、的な話」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「1→複数にするときに困るという話ではなく?」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「staticじゃなくインスタンスメソッドがいいのって、結局オブジェクト指向とか関係なくて、「DIできない」「テストがやりにくい」「モックしにくい」みたいな、つまりハックが効かないという理由なんだよなー」 / Twitter
risukeさんはTwitterを使っています 「@kis 継承よりコンポジションって言われるようになったタイミングを考えると2010年ごろだとまだ継承がバリバリ現役の時代だったのかなと……。 最近古い会社のコードレビューする機会があって継承地獄で死んだのでstaticおじさんの気持ちはわからなくもないです。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@risuke まだラムダ式はいってない時期だしなー」 / Twitter
sjiさんはTwitterを使っています 「@kis PHP は遅延静的束縛と文字列経由でのクラス参照があるので、本当はクラスだけでインスタンスなしに多態できますが(abstract protected static function に実用的な意味がある)、積極的に使うエコシステムは発達してなくてインスタンス経由での DI が主流すね。他言語の皆が通った道が歩きやすい的な」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「まあメソッドにデータ構造も引数で渡せばええやんというのはあるんだが」 / Twitter
非実在naka akiさんはTwitterを使っています 「@nagise クソリプだけど、ファイルポインタ(C用語)とか、JDBC Connectionオブジェクト(を参照する変数)とか、というものの「複数のインスタンスの区別」を理解できない子や大人wが身近wに居ると結構ツライ人生になります。転生したいw トランザクション…orz」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@naka_aki_spl 実際、若い人とか見てても、そこで躓いてる人はいますねえ……。」 / Twitter
非実在naka akiさんはTwitterを使っています 「@nagise 「処理を呼ぶ」までは理解できてるけど、「何(どのインスタンス/変数)に対して処理を呼ぶ」のかの区別が必要だとは理解できてない、みたいな…orz ついでに言えば、こういうレベルの人に、クラス(てかobject)の設計させると悲惨…」 / Twitter
がくぞさんはTwitterを使っています 「ただこれも結局、解析位置という状態をmutableで持つゆえの弊害で、戻り値を多値やタプルで返せれば状態も常に受け渡すことが可能になるので、StringTokenizerのインスタンスを複数作る意味も薄くなっていくんですよね……(状態が露出するか否かの差はあれ)」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz 状態を持とうとするからインスタンスメソッドとか言い出すんだ!とか言われると割と反論しにくくはありますね」 / Twitter
がくぞさんはTwitterを使っています 「@nagise そうなんですよねー とはいえ状態を持たないようにとすると、本来の結果と状態の両方を戻り値にする必要があって多値やタプルがないと厳しいし、毎回状態を受け取って渡し直すのも手間でStateモナドが欲しくなってくるし、そんなん考える位なら可変で状態持った方が…みたいな話になるのもまぁわかりみ」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz @nagise コンストラクタに与えられて二度と変更されない委譲先オブジェクトは状態ではないけど、それはインスタンスのメソッドを使う理由にならないですか? なんでみんなインスタンスメソッドとミュータブルであることをイコールで考えてしまうのかすごく不思議で」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru @nagise それは移譲先オブジェクトを毎回関数の引数で渡しても実現可能だからですかねー。関数のシグネチャにそれが表れる事そのものを大きな問題として捉えるか否かみたいな話はありますが。そっちの話はこの辺で https://t.co/DWBVxiigep」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz @nagise 「こうすれば作れるから実質同じ」という考えかたと「作れるからといって粒度が違う知識を同じところに混ぜるな」という考えかの違いで、後者をやろうとした人がOOPの便利なところを利用してうまくやったのが、いまのアーキテクチャの常識感を作っただけなんじゃないかなあと思うんですよね」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru @nagise あー元の話と対比するなら、二度と変更されない値なのであればグローバル変数でも問題が起きない、というのはあるかもですねー。複数の利用箇所で異なる値を使いたい且つ関数の引数ではなく一貫性を持たせたい、みたいな理由がないと説明が難しいのでこの文脈だとあまり使われないのかも?」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz @nagise けっきょくDIみたいな話にはなるんですが、グローバルアクセスできるオブジェクトを避けてローカルに関係構造を閉じられるというメリットを無視すると、いずれグローバル神クラスの爆誕なのかなという気持ちも…」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru @nagise 「粒度が違う知識を同じところに混ぜない」だけならグローバル変数で実現できちゃいますしね。 では何故グローバル変数よりコンストラクタ引数の方が望ましいのか、みたいな話だとテスト容易性の話になってきて、結局きしださんが最初に言ってた話に戻ってしまうかと」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz @nagise 依存注入可能でテスト容易性があるっていうのはモジュール独立性と安定性確保に関係するので、オマケじゃなくて、むしろ本題を別の言い方で表した重要なことだと思うんですよ。テスト容易性関係ないってなると、芋づる式に全ての原則とアーキテクチャがいらなくなって、」 / Twitter
ひさてるさんさんはTwitterを使っています 「@gakuzzzz @nagise あーそれならオブジェクト指向もソフトウェア工学もいらない、モノリシックなアルゴリズムの話ですよね、ってなってしまう気がするんです」 / Twitter
がくぞさんはTwitterを使っています 「まぁでもこの複雑さを受け入れてでもimmutableにした方がテスト容易性や合成可能性が上がるのでimmutableにした方がいいよね、というのが今の時代な気がする」 / Twitter
がくぞさんはTwitterを使っています 「open recursion に近いものがあるけど、インスタンスをベースにすると何も考えなくても自然とモジュールの再利用の単位が変わるというのが大きかった気はしますね。 普通の関数でこういう再利用の単位にするにはReaderなり継続なりが必要になって関数のシグネチャ自体に手を加える必要がでてきちゃう https://t.co/PSiQ9t0jjI」 / Twitter
ひさてるさんさんはTwitterを使っています 「このことは、知識を使用フェーズから隔離して生成フェーズに隠蔽できるメリットに気づかせてくれます。すべて static (グローバル関数) でかまわないという考え方は、いずれ内部にサービスロケーターを誘致します。同じ「関数」でも、変数をバインドしたクロージャは実質インスタンスメソッドです」 / Twitter
ひさてるさんさんはTwitterを使っています 「つまりこれのことです」 / Twitter
ひさてるさんさんはTwitterを使っています 「そこに何の違いも #ちょうぜつエンジニアめもりーちゃん https://t.co/zfh2s4tCcl」 / Twitter
非実在naka akiさんはTwitterを使っています 「@tanakahisateru てゆかRunnableかどうかはどうでも良いような気も 昔某氏に「オブジェクトとクロージャは技術的に出来ることは同じですよー」って聞かされて3日3晩うなされたっけ(嘘」 / Twitter
ひさてるさんさんはTwitterを使っています 「@naka_aki_spl Java の lambda は、Runnable みたいなメソッドがひとつしかないインターフェースと置き換え可能な型なのです」 / Twitter
がくぞさんはTwitterを使っています 「🍥Singleton つけてDIするクラス、結局システム中ではインスタンスが複数存在する事はないし期待もしてないので、インスタンスが複数持てるメリットが活きないというのはある」 / Twitter

Twitter

RISC of RainさんはTwitterを使っています 「Go言語では基本1層(0層?)で、明らかに抽象的なコード(大事な側)が技術詳細なコード(どうでもいい側)に依存してるときのみDIしてる。単位はレシーバ・構造体」 / Twitter
mattnさんはTwitterを使っています 「クリーンアーキテクチャ、Java だとパッケージをレイヤとして扱う事で責務を分離する手法なので、Go の様にディレクトリをパッケージとして扱う言語では Java と同じやり方では綺麗にはいかないし負担になりえる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GoFはデザインパターン集でしかなくて、中には特定の言語や状況でしか必要ないものが、たくさんあるわけで。言語やハードウェア技術の進化に伴って、それらを使う必要がない人が増えているのなら喜ばしいことですね」 / Twitter
徳永広夢さんはTwitterを使っています 「GoFを若者が読んでも「昔の人は大変だったんだなぁ」と、昔の人が千歯こき使ってた話を聞くのと同じようなテンションでしか読めないんじゃないかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Singleton、Factory的なもの、Flyweightなんかは、割と言語非依存の概念だし、使わざるを得ないんじゃないの」 / Twitter
Kazuho OkuさんはTwitterを使っています 「プリーのメタパターン知らずにデザパタ語っていいのは中2まで / “オブジェクト指向におけるデザインパターン” http://t.co/UsvsOi0h」 / Twitter
オブジェクト指向におけるデザインパターン
Shiro KawaiさんはTwitterを使っています 「メタクラスがある言語ならFactoryパターンって単にメタクラスのメソッドなんだよね まあ、デザパタって実装技術というよりもコミュニケーションツールと考えるべきだと思う。」 / Twitter
一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか? - Quora
Data Mapperパターン - Google 検索
kimiyuki@うさぎ🐇さんはTwitterを使っています 「GoF はみんな読むべきだけど、言語のサポートがないまま小規模ソースコードでパターンを使おうとして無闇にコードを複雑にしてる例もわりと見られる気もして複雑な気持ち」 / Twitter
まちカドおるみんさんはTwitterを使っています 「「現代の言語機能ではすでにサポートされているものも多いから意義がない」はある側面では真だし GoF にある設計そのまま流用するのが良くないこともあると思っている。ただ、それが直ちに GoF そのものに意味はないし読まなくて良いということではない、ということまで至らない人が居るのがアレ」 / Twitter
まちカドおるみんさんはTwitterを使っています 「教条主義的に GoF をまるっきりそのまま使う人にとっては完全に意味がないことも多かろうとは思うけれど、そういう主旨の本じゃないもんね」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@kotatsu_mi 当時はそういう趣旨の本だった気もするけれど…… 今では歴史の本的な扱いな気がする。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ichinose_iroha あくまで、こういう問題のときどう対処するかという設計の頻出について、分類したり名前をつけたりしてパターン化するという解決をしてみました、という話で、そのまま書き写しましょうでもこうしなければならないでもなかった気がする」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@kotatsu_mi そうは受け取らなかった読者がわりと見受けられたという方が正しかったかも知れ無い。」 / Twitter
伊津野 英克さんはTwitterを使っています 「業務システムならトランザクションスクリプトの方が明らかに設計もメンテナンスも楽なのに、なんでドメインモデルなんかが流行ってしまったんだろうなぁ。データモデルと処理がくっついてて嬉しいのはCollectionとかアルゴリズムが隠蔽されてる方が嬉しいやつだけでは。」 / Twitter
トランザクションスクリプト - Google 検索
ウェブエンドエンジニアさんはTwitterを使っています 「Ruby 使う会社に3社いたけど破滅した Active Record しか見たことがないので active record パターンが生産性高いという意見が全く理解できない…」 / Twitter
ウェブエンドエンジニアさんはTwitterを使っています 「本来DBと関係ないロジックがModelという名目で ActiveRecord を継承したクラスメソッドに書かれてストレージとロジックが密結合なために純粋な関数のテストをするために大量の seed データを注入しないと動かないなどの現象が起こり、長大なセットアップスクリプトを要求されるのが苦痛」 / Twitter
ウェブエンドエンジニアさんはTwitterを使っています 「あと認証認可の role 判定が save を上書きされる形で実装されて無関係なときに誤爆するなど、実装上のアンチパターンを誘発してるように思う。これは継承一般の問題台けど」 / Twitter

テスト

モデルベーステスト

モデル検査はモデルを検査するものではない

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「大手IT業者の方が講演で「モデル検査では分散システムはモデル化できない」とか言ってて「並行プロセス計算とか…」と言ったらキョトンとしていた。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「現在コンピュータを応用したシステムの多くは計算だけじゃなくて通信も大事な仕事の1つであるわけですが、通信するシステムを設計するときに基礎となる理論はあまり知られていないと思うのです。大学以外ではほどんど聞く機会がないんじゃないかと思うので、日曜日のセミナーは特におすすめなのです。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ここで設計といっているのは、システムの振る舞いを記述すること、つまり仕様を書くことと、システムを構成するコンポーネントを定めて、全体としての振る舞いを知ること、そして検証することです。それぞれの点で、計算を主とするプログラムとはだいぶ違ってきます。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「どういうシステムなのか誤解があるようですね」とか言われて、大学院情報系の数十人の教員の前で小一時間問い詰めようかと思ったけど自粛した(しないほうが良かったかも」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「(そもそも「モデル検査」を「モデルを検査すること」だと思ってる時点で典型的な間違いですが。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/zhxftFnVR3 https://t.co/hLlfPib9mr &gt;We used the term Model Checking because we wanted to determine if the temporal formula f was true in the Kripke structure M, i.e., whether the structure M was a model for the formula f.」 / Twitter
The Birth of Model Checking | SpringerLink
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「&gt;Some people believe erroneously that the use of the term “model” refers to the dictionary meaning of this word (e.g., a miniature representation of something or a pattern of something to be made) and indicates that we are dealing with an abstraction of the actual system」 / Twitter

形式手法 定理証明 と テストベクタ生成 T-VEC Tabular Modeler
IPSJ-JNL5302010.pdf
37136500.pdf
ソフトウェア信頼性の向上のための形式手法・開発支援ツールの研究 - sss2012-software-oiwa-pub.pdf
テスト駆動開発から証明駆動開発へ #JTF2019 / July Tech Festa 2019 - Speaker Deck
バグ0の資産を積み上げるための証明駆動開発入門
62_134.pdf
自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み
000049838.pdf
Information for Prospective Students
研究テーマ/検証 - Takatalab
モデルベーステスト - Wikipedia
7594591200220899443さんはTwitterを使っています 「「自動テストとはこの文脈ではコンピュータ・プログラムが想定通りに動くかテストする工程を自動化するもの」っていう定義でいうと、多分その作業を自動化するのはV字とか関係なくほとんど誰もできないと思うよ、それは自動テストというかもはや自動検収に近い https://t.co/lXX1MLCRQE」 / Twitter
なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
7594591200220899443さんはTwitterを使っています 「いわゆる関数とかの粒度のユニットテストは別に想定通りに動いているかの確認ではないと思う。スタブしまくった環境下でコードカバレッジ上げれば想定通りに動くだろうというのは幻想に過ぎない」 / Twitter
7594591200220899443さんはTwitterを使っています 「「プログラムの想定」とは一体全体なんだったのか、というのは、案外深淵な問題で、一筋縄ではいかないものなのですよ、いわんやそれを自動化するに及んでは…」 / Twitter
ytakanoさんはTwitterを使っています 「来年はスレッドライブラリでも自作してモデル検査で検証してもらおうかな」 / Twitter

テスト

テスタは製品定義にどのように貢献できるのか
開発者がE2Eテストを書くことで得たもの
テストピラミッドを使って品質を左シフトする
マイクロサービスでのエンドツーエンドテストの課題
Goがベータ版でファズテストをサポート
ブロックチェーンシステムにおける品質の作り込み
機械学習によるテスト失敗の予測
ミューテーションテストの紹介 - Dave Aronson氏のJSConf Hawaiiでの講演より
堅牢なテスト戦略により自信を持ってDropbox Syncをリライト
ディフェクト・マスの測定が重要な製品領域のテストにどのように役立つか
テストコードのデザインパターン:Robotパターン - 千里霧中
テスタビリティ(試験性)を確保するための設計方針 - 千里霧中
テスタビリティ(試験性)の拡張を実現する実装 - 千里霧中
ソフトウェア・テストを再考する - hidekatsu-izuno 日々の記録
テスト自動化 / Test automation - Speaker Deck
テスト戦略によってデプロイメント作業の完成度とプロダクト品質を向上する
2021年版、サーバーレスのテスト手法を考える / Serverless Testing 2021 - Speaker Deck
ネットワークはなぜつながらないのか 〜インフラの意味論的検査を目指して〜 #AWSDevDay / AWS Dev Day Online Japan 2021 - Speaker Deck

テストダブル

Masaki HaraさんはTwitterを使っています 「RDBに関係するテストはちゃんとした実装に繋いで実行したい派なんだけど、Railsに毒されているだけでmockしても意外と大丈夫なんだろうか……?」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy Mockできる場合は * DBアクセスが非常に単純でテストが不要 * DBアクセスが完全にカプセル化され、単体でテストされてる のどちらかで、多くのソフトウェアはどちらにも該当しないのでmockしないほうがよいというのが実情と感じます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 いい感じに言語化してもらえてありがたいです。」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy 前者はKVSだと行けたりしますがRDB使ってるとほぼありえないし、DBアクセスを1レイヤに完全にまとめるのも負担でかいし、自分達の書いたDBアクセスコードはテストで動かしたいので「単体テスト」から外れてもDBは繋ぎたくなっちゃいますよね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 同感です……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 結局、テストする価値のあるインターフェースをテストするべきなんじゃないかって気はしますよね。 &gt; 前者はKVSだと行けたりします わかります。しかしKVSくらい単純だと今度は期待する応答をハードコードするよりも、KVSの挙動をアプリケーションの言語でシミュレートしたほうが簡単なことも……」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy はい、testing libraryの提供するmockというよりtest doubleですね。 dbへの呼び出しのexpectやresponseをちまちまmockすることはほぼあり得ないと思います…」 / Twitter
test double - Google 検索
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「「テストダブル」のダブルってどう言う意味かと思ったら「代役」と言う意味があるらしい。 MartinFowlerが「Stunt Doubleのようなものだと思ってくれ」といっていて、これはまさにスタントマン、代役のことを示すらしい https://t.co/PFi3hP8yK8」 / Twitter
データベースをスコープで分けてテストしやすくする - ベインのブログ

型のlog(対数)という演算

kinabaさんはTwitterを使っています 「Logarithm and Program Testing https://t.co/gIny4LPDPg これまだ論文出てないけど、検索で見つかる少し前の進捗途中の発表見る限りめちゃ面白い奴では? 型と型の足し算や掛け算は普通にあるけど、では突然ですがここで型のlog(対数)という演算を考えます。なぜか?自動テストケース生成のためだ!」 / Twitter
Logarithm and Program Testing (POPL 2022 - POPL Research Papers) - POPL 2022
kinabaさんはTwitterを使っています 「古くはKnuthの「ある種のGenericなソート関数の正しさを示すには、Boolのリストを正しくソートすることだけ確かめればOk」という結果のような、多相型の関数の正しさは、実は特定の型だけで確かめれば保証されるという話があって、その「特定の型」に何を使えばいいかを型のlogで計算できるのだとか」 / Twitter

fuzzer か property test

Property-Based Testing

proptest - Google 検索
Shinjuku.rs#10を開催しました│FORCIA CUBE│フォルシア株式会社
Rust の Proptest の紹介 - Qiita
Rust の proptest-derive の紹介 - Qiita
proptest - Rust
AltSysrq/proptest: Hypothesis-like property testing for Rust
Introduction - Proptest
Proptest
(PDF) Proptest: A Property Based Test Pattern Generator for Sequential Circuits Using Test Compaction.
Property-based testing in Rust with Proptest - LogRocket Blog
proptest - crates.io: Rust Package Registry
Property-Based Testing in Rust - Speaker Deck
maguro.dev - 2020/06/30 に開催された Shinjuku.rs #10 に参加しました

眼力 玉壱號さんはTwitterを使っています 「取りあえず fuzzer か property test って話になるけど、こいつらは基本 framework が無いと辛い奴なんだよなあ🤔」 / Twitter
ドッグさんはTwitterを使っています 「@objectxplosive どちらかというと Copilot 的に,一般的な「いじわる系テスト」を学習して似たようなテストを生成してほしい感ありますね」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 『bug は境界に潜んでる』ってのは真理だからなあ…ただそれを test case として生成するには『対象 program における境界とは何か』を理解してないと難しくて Deep Learning でどうか出来るか今は微妙な所の気はする(将来は判らぬ)」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 大抵の property testing framework は heuristics として『空の値』『null』をいの一番に値として生成するというのはあるけど、それ以上は対象の構造に依存しちゃう」 / Twitter
ドッグさんはTwitterを使っています 「実装をいじめるためのテストケースを書くのがだるいので,エクセルの auto fill みたいに10個ぐらい書いたらあと990個ぐらい自動生成しといてほしい」 / Twitter

Property-based Testing

がくぞさんはTwitterを使っています 「境界値テストが書ける時点で境界値について意識が向いてる必要があるので、人間は愚かという前提に経つとProperty-based Testing しようね!という方向に」 / Twitter
ABAB↑↓BAさんはTwitterを使っています 「みんな仕様と数学について話しているけど 人間は愚か という前提に経つと、空配列が来る可能性があるなら 境界値テスト書こうね!で済む 人間は愚かなので、テスト書かないって話もあるけど;;」 / Twitter
がくぞさんはTwitterを使っています 「また依存関係だけでなく、内部構造をどこまで公開する必要があるかによっても変わってきそうですね。 最近はExtension Methodをもつ言語も多いので、そういった言語では独立したモジュールにしてExtension Methodとして a.toB にするみたいな表現も可能そうです」 / Twitter
がくぞさんはTwitterを使っています 「AがBを知っていてはいけないのであれば当然 a.toB: B は書けないですし逆もまたしかり」 / Twitter
がくぞさんはTwitterを使っています 「b.fromA(A a)は実際にはファクトリであってbのインスタンスは不要なのでオブジェクトに帰属という概念とは異なる感じですよね。オブジェクト指向が前提にあるとしたら a.toB: B になる感じですが、実際にはAとBの依存関係によって決まってくるパターンの方が多そうです」 / Twitter
やきにくさんはTwitterを使っています 「aがbより安定概念なら b.fromA(A a)、逆なら a.toB(B b) ですかねぇ。判断がつかない場合はどちらにも帰属させられないので独立したモジュール(パッケージ)に純粋関数として、と自分ならすると思います。」 / Twitter
山本和彦さんはTwitterを使っています 「オブジェクトでも型でもいいんですが、aからbへ変換するa2bという関数/メソッドは、オブジェクトに帰属させる場合、a側に置くのか、b側に置くのか、慣習とか知見はあるんでしょうか?」 / Twitter
がくぞさんはTwitterを使っています 「ふつーのドメインロジックのテストもふつうにProperty based testingできるよ!という話は以前にしたのでご参考まで https://t.co/Xe8lIUFGg7」 / Twitter
Property Based Testing でドメインロジックをテストする
がくぞさんはTwitterを使っています 「テストを書く時はテスト観点を大事にしましょう、という話で、テスト観点が明確であればProperty Based Testingするのも簡単ですよ、というお話です」 / Twitter

テストケースのリファクタリング

goyoさんはTwitterを使っています 「Tesseractで多言語対応テストの自動化しようとしているが入力テストが鬼門だな」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストの領域で一番重要なのはテストケースのリファクタリングとかリストラクチャリングだとおもっていて、このへんの技術がすすんでいないことの証左として、Launchableみたいな戦略になるんだよなっていう。。。」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストケースにおけるデザインパターンみたいなものがあるんだけど、あまりうまく言語化できていないというのをずっとかかえているんだけど、それよりもアジャイル開発におけるパタンランゲージづくりのほうが仕事で急務なのでそっちばかりやっている。」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「たとえば、コアとなるテストケースをどのように抽象化しておくと、副作用に着目するテストケースと、単純なロジックに着目するテストケースをつくりやすくなるのか。とか。で、テストにおける期待値をつくりやすくするために仕様の記述時点でどのように工夫をしておくのか。とか。」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストもアジャイルも形式化されている範囲だけをつかうと、どうしても焼畑農業的な業務になってしまい、そうなると差別化をしにくくなり、別の領域とくみあわせたロールになりがち。それはそれでいいんだけど、結局元の領域自体は進歩しにくくなっちゃうんだよね。。。っていう感覚がある。」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「そんな現状において、自分はなにもできていないので、ソフトウェアテストやアジャイルで形式知をのこしたり、サービスをつくったりしている人達ほんとうにすげーなってなっておもっています。」 / Twitter

Property Based Testing

shinoさんはTwitterを使っています 「Property Based Testing (PBT, QC) 界隈には「PBT を実行するとテスト対象コードのバグが見つかるか、テスト対象ドメインの自分の理解のバグが見つかるか、それら両方である」という格言がある。今回も見事にそうなった。100 行程度のコードでバグが見つかるのはほんとうにすばらしい。」 / Twitter
shinoさんはTwitterを使っています 「だれの言葉だったかは忘れた(もとは英語だったかな)。こんな格言が何度も身に沁みているにも関わらず、なんか PBT を書き始めようとするのに心理的な障壁があるのはなんとかしたい(めんどくさいんだよ...)。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@itawasa PBTは対象 domain への理解が無いと書けないので Example Based Test よりも難度は上がりますね。 幾つかパターンあるのでそこに落とし込める時は良いのですが🤔」 / Twitter
shinoさんはTwitterを使っています 「@objectxplosive 今回は雑なドメイン理解で PBT 書いたらエラーになって、なんでや??って調べてたら別のところに潜在バグがあったという流れでした。ブラックボックスで PBT 書くとたまに起きますねぇ。感謝しかないっす。」 / Twitter
EffでミュータブルなしStateとプロパティーベーステスト
Masaki HaraさんはTwitterを使っています 「property-based testingのつもりが単なる実装のdualになってしまう問題ってやっぱあるんだな」 / Twitter
Masaki HaraさんはTwitterを使っています 「まあしかしそれでも別にいいのかもしれない。そのあと実装を変えるときのハーネスとしては機能するはずなので」 / Twitter

blog

千里霧中

QAアーキテクティング手法:CEQAAM - 千里霧中
QAアーキテクチャの概要 - 千里霧中
QAアーキテクチャの事前検証 - 千里霧中
責務構造ツリー - 千里霧中
Tesseract OCRで文言描画の多言語対応テストを自動化する - 千里霧中

1台のサーバーで複数のステージング環境を同時に使えるようにする | PR TIMES 開発者ブログ
保守・拡張をしやすいカプセル化したCypress | フューチャー技術ブログ
テスト容易性を考慮したFlutterのアーキテクチャ考察 | /var/log/koka
【翻訳記事】テスト自動化の対象となるテストシナリオの整理に役立つBRIEFの原則 - ブロッコリーのブログ
テスト時間を短くするための分散テスト実行 | メルカリエンジニアリング
メルペイフロントエンドのテスト自動化方針 | メルカリエンジニアリング
Rustのテストは2種類のオプションがある | κeenのHappy Hacκing Blog

スライド

ユニットテストの保守性を作りこむ, xpjugkansai2011
質とスピード(2020秋100分拡大版) / Quality and Speed 2020 Autumn Edition - Speaker Deck
Agile Testingを夢見たテスト自動化 〜ATDDへの挑戦から始まる 1年間の試行錯誤〜 / dreaming agile testing at basebank - Speaker Deck
これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing - Speaker Deck
Webフロントエンドのリプレースを支えるテストの考え方 / JSConf JP 2021 - Speaker Deck
テストアーキテクティングをテーマに登壇 - 千里霧中
テストを導くためのテストアーキテクチャの組み立て方/cetam - Speaker Deck
アメリカで働くQAエンジニアの現場から - Speaker Deck

PDF

yosshi_さんはTwitterを使っています 「大した話ではないんですが、この辺のテストの呼び方が会社毎に結構違うので趣深い https://t.co/SyyFo9x30k #k8snovice https://t.co/g8l6pPJafo」 / Twitter
000005144.pdf

@goyoki

goyoさんはTwitterを使っています 「分析の効率化はODCの運用で必然の流れだよなあ。今はインタラクティブなBIツール・データ分析ツールがたくさん普及しているからなおさら #qa_online」 / Twitter
goyoさんはTwitterを使っています 「業務フロー分析とVSTePは競合しないから、業務フロー分析で理解を深めて、そこで学んだものもまとめてVSTePでテスト観点分析してもよいかもと思った #qa_online」 / Twitter
しましま(偽)さんはTwitterを使っています 「@goyoki ですよね。VSTePの観点はなんでも包含できるので、業務フローから観点を展開できるはずです。 #qa_online」 / Twitter
goyoさんはTwitterを使っています 「@shimashima35 おっしゃる通りだと思います」 / Twitter
しましま(偽)さんはTwitterを使っています 「@goyoki せっかく業務フロー分析をしているので、そこを排他にするのはもったいなと。」 / Twitter
Takuto WadaさんはTwitterを使っています 「テスト駆動開発にはざっくりいうとモックを積極的に使う派(ロンドン学派)とあまり使わない派(デトロイト学派、古典派)がありまして、私は後者なのでほとんど使わず、このエントリに深く同意するところです / “モックは必要悪で、しないにこしたことはない - …” https://t.co/VjDvospTKu」 / Twitter
モックは必要悪で、しないにこしたことはない - blog.8-p.info
mswで快適モック生活 - Adwaysエンジニアブログ
goyoさんはTwitterを使っています 「アジャイルの中での古典派TDDだと、EDUF(Enough Design Up Front:EDUF⁠)でアーキテクチャを構築しつつ、ボトムアップでTDDをすすめるのが現実的なアプローチだと思う」 / Twitter
goyoさんはTwitterを使っています 「留意点は、古典派TDDはモックを使わないようにボトムアップでプログラミングするけれど、アーキテクチャ設計とかトップダウンの基本設計は否定しないところ。仮に設計アプローチは同じだとしても、古典派とGOOS派はテストコードとユーザドメインの距離に差が出る」 / Twitter
goyoさんはTwitterを使っています 「理想はGUI仕様からテストを自動生成可能にするMDTだけど、テスト優先でモデル化する動機づけと費用対効果の課題になる」 / Twitter
goyoさんはTwitterを使っています 「描画ベースのEnd to Endテストだと、座標データの抽象化あるいは自動生成が課題になるな。後者に画像認識やAIみたいなキーワードが安易に挙げられるけど、その道に進んでみるとFraky Testとの戦いになる」 / Twitter
goyoさんはTwitterを使っています 「テスト自動化にいろいろな目的や成功指標があるのはその通りだけど、「コスト削減をテスト自動化の目的に掲げているのは素人」という言説は受け入れがたい」 / Twitter
Fumikazu FujiwaraさんはTwitterを使っています 「@goyoki 目的によって素人かプロフェッショナルかは測れなそうですよね^^; ちょっと外れますけど例えば自動化でテストデータ作成とかコスト削減に寄与しますもんね」 / Twitter
goyoさんはTwitterを使っています 「@freddiefujiwara はい。まさに仰るとおりです。」 / Twitter
goyoさんはTwitterを使っています 「コスト削減が目標として妥当なシチュエーションに普通に遭遇してきたのだが、経験している世界が違うんだろうか」 / Twitter

ぽんこつさんはTwitterを使っています 「Swagger的なのを使うときにコード自動生成系はまじでやめて、compile時チェック的な仕組みであれば好ましい、unit testでも無いよりマシ、という話をした」 / Twitter
Category:ソフトウェアテスティング - Wikipedia
公開資料 - WACATE
CDNは5時間で開発できる | POSTD
品質系社員の現場からのビジビリティー、存在感向上=成果の見える化のアプローチ - Qiita
Kazuho OkuさんはTwitterを使っています 「LD_PRELOAD で getaddrinfo (2) をオーバーライドするラッパーとして実装した。複数アドレス返したり、名前解決にv4の側だけ遅延いれたり、ポート番号変えたりできて便利 https://t.co/OBMZpMvcnG」 / Twitter
injectaddr.so.c
Kazuho OkuさんはTwitterを使っています 「名前解決まわりのテスト書く一番楽な方法、実は nsswitch.conf に、特定の環境変数がある場合だけ、いろんな動作をする libnss extension を書く方法だったりする?」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「機械学習でFirefoxのテストを効率化する。Firefoxは1日に300近くのpushがあり、90種類の異なる環境に対して約85,000の項目が存在するが、CI負荷を減らすためテストは部分的にしか実行しない。しかし一時的に失敗する項目もあり、組み合わせ戦略はXGBoostを使って学習させる。 https://t.co/CeyINaOp7H」 / Twitter
Testing Firefox more efficiently with machine learning - Mozilla Hacks - the Web developer blog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GNU coreutilsをテストしているフレームワークの説明。それほど長くない所要時間で、システムに跡を残さない (idempotence) ようにするため、様々なツール を組み合わせている: gdb, strace, valgrind, /dev/full, LD_PRELOAD, loopback mountなど。/dev/fullは初めて知った。 https://t.co/9fDdeP8MLF」 / Twitter
How the GNU coreutils are tested
/dev/full - Google 検索
フロントエンドのテストのモックには msw を使うのが最近の流行りらしい
かとじゅんさんはTwitterを使っています 「頭がよい人が雑に書いたテストコードはだいたいアサーションルーレットになってて、テスト対象のメソッドも複数の責務を持ってる。だからリファクタリングも難しい。こういうのを防ぐためにTDDはやはり必要なガイドだと思える」 / Twitter

アナロジー・一般化・精密化

ななこさんはTwitterを使っています 「数学において新たなアナロジーを見つけることは当然大いに価値のあることだけど、他の誰かが見つけたアナロジーに興味を持つことは何かを生み出せるんだろうか」 / Twitter
小山信也さんはTwitterを使っています 「@savarin_math アナロジー・一般化・精密化が,数学研究の三大手法ですので,既成のアナロジーであっても,その一般化や精密化を行えば,立派な研究になり得ます.」 / Twitter
ななこさんはTwitterを使っています 「@Tomuo2000 確かにそうですね。既成のものも一般化や精密化の余地はありそうです。」 / Twitter
小山信也さんはTwitterを使っています 「@savarin_math その三大手法を拙著「数学の力」で解説したので,良かったら今度持参します.」 / Twitter
ななこさんはTwitterを使っています 「@Tomuo2000 いろいろ紹介して下さってありがとうございます。 大変勉強になります。」 / Twitter

モデリング

SPIN・Promela

形式手法

「形式手法」をものづくりへ ─ 高品質・高効率な製品開発に向けて - NII SEEDs / 国立情報学研究所
形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
Scaling symbolic evaluation for automated verification of systems code with Serval | Proceedings of the 27th ACM Symposium on Operating Systems Principles
uw-unsat/serval-sosp19: This repo contains the artifact for our SOSP'19 paper on Serval
ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
リージョンについて | κeenのHappy Hacκing Blog
仕様記述テクニック「Promotion」の紹介 - DeNA Testing Blog
Program Synthesis - Microsoft Research
rosette.onward13.pdf
osdi16-sigurbjarnarson.pdf
Hyperkernel: Push-Button Verification of an OS Kernel
Simple and Precise Static Analysisof Untrusted Linux Kernel Extensions
一人Computer Science Advent Calendar 2017 - Qiita
Proof Assistantを作る・理論編 その1 - The curse of λ
ゼロから学んだ形式手法 - DeNA Testing Blog
CSP-Prover
電子情報通信学会知識ベース |1編 ソフトウェア基礎
電子情報通信学会知識ベース |2編 計算論とオートマトン
電子情報通信学会知識ベース |3編 アルゴリズムとデータ構造
電子情報通信学会知識ベース |7編 ディペンダブルコンピューティング
01gun_08hen_02.pdf
モデル検査器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「モデリングはかんたんです。送受信するプログラム書くのと変わらないから。検査も自動なので全く問題なし。唯一"受理"の読み方が壁だけど、道具って使ってるうちにわかっちゃうもんです。とにかく仕様との違いを見つけてくれるという点が大きい。ずはりこれです。」 / Twitter
07gun_01hen_01.pdf
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Enterprise Architect のモデルから Promela を生成して Spin で検査、反例を読み込んで分析、という理解で正しい? https://t.co/6sdGxwNCZo」 / Twitter
スパークスシステムズ ジャパン ニュースさんはTwitterを使っています 「構造計画研究所様 モデルベース形式検証ツールDynaSpec販売開始のお知らせ https://t.co/0niVmzNqtE」 / Twitter
スパークスシステムズジャパン フォーラム - ニュース
構造計画研究所 | モデルベース形式検証 | DynaSpec | 日本
Category:形式手法 - Wikipedia
Category:プログラミング言語理論 - Wikipedia
seminar_tokyo_20140916-02.pdf
000049838.pdf
Tsukasa #01さんはTwitterを使っています 「暗号ライブラリの実装において、形式的検証が成されたプリミティブを C やアセンブリ言語の形態で出力する研究プロジェクト。 HACL* https://t.co/erpdiyzBET」 / Twitter
project-everest/hacl-star: HACL*, a formally verified cryptographic library written in F*

SPINによるモデル検査-1 - S2-a-material-nonaka.pdf
0.PROMELAの基本文法
Microsoft PowerPoint - RS2010-spin1.pptx - RS2010-spin1.pdf
xv6から始めるSPIN入門
猫でもわかる! モデル検査器 SPIN 入門
31_4_40.pdf
UMLとモデル検証 | オブジェクトの広場
B_020.pdf
CiNii 論文 -  上流設計からモデル検査プロセスまでの一貫設計検証環境 : UML記述からSPINモデル検査器用プロセス定義及び線形時相論理式への自動変換手法

形式化されないもの

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「っていうか、値クラスとか、そんなこといわゆる設計で考えるようなことじゃないと思うのだけど。いわゆる設計界隈、プログラミングに引き摺られすぎじゃない?より重要な、構造に対する制約、機能に対する制約、後の改変が許される範囲、許容されるべきバリエーション、みたいな辺りがお留守に見える。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「つまり、デザインにおいて大切なものは形式化されないのですよ。でも、それらは然るべきスキルを持った人がプロダクトを見れば明らかなんです。ここがデザインと工学の衝突点。いちばんワクワクするところ。 https://t.co/Ex2AHF83eD」 / Twitter
杉本啓さんはTwitterを使っています 「いままさにリリースするプロダクトに、必要かつ十分な設計配慮が織り込まれているということ。不足もなく余分もなく。これが大事。あとは些事。」 / Twitter
杉本啓さんはTwitterを使っています 「ということは、リリースを重ねる都度、その新しいフィーチャを実現するためのコードだけでなく、関連する他の部分のコードも見直して、全体として最適なアーキテクチャにしなければならない。この点を見落としていると、増築を重ねた温泉旅館みたいなプロダクトになると思う。」 / Twitter

イミュータブルデータモデルの極意
ソースコード生成機能・ソースコードの読み込み機能について - UML/SysML/BPMNモデリングツール Enterprise Architect
ステートマシン図からのコード生成 - UML/SysML/BPMNモデリングツール Enterprise Architect
コード生成 - MATLAB & Simulink - MathWorks 日本
RGen: Rubyのモデリングとコード生成フレームワーク
E4-3.pdf
MetaEdit+ 各種資料と動画デモ
11種類のソースコードを自動生成できる新UMLツールが登場 | 日経クロステック(xTECH)
codegeneration | astah in 5 min
SelexES_CaseStudy.pdf
まちカドおるみんさんはTwitterを使っています 「結局オブシェクトの相互関係でモデリングできて何がうれしいのっていうのは何かしらの問題をオブシェクトでモデリングするという practice なしで伝わらない気がするし、」 / Twitter
まちカドおるみんさんはTwitterを使っています 「その上でこういう問題はこうモデリングする、という定式化がデザインパターンとして存在してる、という組み立てじゃないとわからないと思うし、わからなかった」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「もっと単純な話で、順番がある掛け算のほうは、あれは算数ではなくて一種のモデリング言語なの。そのモデリング言語では単位を扱っていて、掛け算の引数の順番が違うとsemantic errorになるの。小学校の問題は、そのモデリング言語に名前を付けて教えずに、算数だと言って教えているところ。かもねー。」 / Twitter
国内航空機製造業界にモデルベース開発は浸透するのか、MBACの挑戦:MATLAB Expo Japan 2021(1/2 ページ) - MONOist
モデル化可能開発: カスタムツールがシステムを説明可能にする方法

停止性問題

正当性・停止性

チューリングの停止性問題 | IIJ Engineers Blog
termination.pdf
typedlmd.pdf
Microsoft PowerPoint - 13comp.ppt - 13comp.pdf
Microsoft PowerPoint - 02diag.pptx - 02diag.pdf
停止性問題について考える。Halting Problem - Unityでインディゲーム道!
3.handout.pdf
Turing machine の停止問題
チューリングマシンの停止性問題 - Thoth Children
どんなコンピューターにも出来ない事 〜停止性問題〜|越境するテクノロジー|note
Microsoft PowerPoint - 6.pptx - 6.pdf
p1.dvi - 16_15.pdf
ソフトウエア工学資料 - programVerification.pdf
IPSJ-Z81-2N-02.pdf
https://nagoya.repo.nii.ac.jp/record/19059/files/IPSJ-TPRO0402003.pdf
20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
itp.dvi - itp.pdf
Computability2019-12 - Computability2019-12.pdf
バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
03-correctness.pdf
algorithm4.pdf
Byron Cook: Terminator - Proving Good Things Will Eventually Happen | Charles | Channel 9

停止性問題

停止性問題

停止性問題 - Wikipedia
ゲーデルの不完全性定理 - Wikipedia
ゲーデル数 - Wikipedia
カントールの対角線論法 - Wikipedia
カントールの定理 - Wikipedia
濃度 (数学) - Wikipedia
連続体仮説 - Wikipedia
パラドックス - Wikipedia
ラッセルのパラドックス - Wikipedia

電子情報通信学会知識ベース

電子情報通信学会知識ベース |トップページ
06gun_02hen_ab.pdf
06gun_02hen_01.pdf
06gun_02hen_02.pdf
06gun_02hen_03.pdf
06gun_02hen_04.pdf
06gun_02hen_05.pdf
07gun_01hen_ab.pdf
07gun_01hen_01.pdf
07gun_01hen_02.pdf
07gun_01hen_03.pdf

バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
停止性問題について考える。Halting Problem - Unityでインディゲーム道!
20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
【コナハン】「人と機械の停止性問題」/「tbn*echo」の小説 [pixiv]
マンガ6.b「停止性問題」 | ラビリンス人工知能
停止性問題は決定不能→バグのないソフトウェアは作れない? - sumiiのブログ
高階差分にもとづくループ停止性証明方法
「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について - noopな日々
Magic: The Gatheringのルールが本質的に不完全であることの証明|Memeplexes
ライスの定理 - Wikipedia
チャイティンの定数 - Wikipedia
無限ループ - Wikipedia
モデル検査 - Wikipedia
二分決定図 - Wikipedia
充足可能性問題 - Wikipedia
抽象解釈 - Wikipedia
SPINモデルチェッカ - Wikipedia
制御フローグラフ - Wikipedia
決定問題 - Wikipedia
コラッツの問題 - Wikipedia
Shinji KonoさんはTwitterを使っています 「ゲーデルの不完全性定理とチューリングマシンの停止性の問題は、両方とも自己参照命題と対角線論法の二つの証明があり別物。後者は番号付けを通して自己参照する感じ。」 / Twitter

機械学習

機械学習 停止性問題 - Google Scholar
AI研究における「ブラックボックス問題」とは何か | Forbes JAPAN(フォーブス ジャパン)
Ceron - 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE
アラン・チューリング「人工知能の “考え方” は我々とは異なる」 | and AI. – 人工知能のwebメディア
いまさら不完全性定理と人工知能について - 再帰の反復blog
AIは数学者にとってかわれない、これはチューリングが既に証明済み - 団塊亭日常

制約ソルバー

連言標準形

uint256_tさんはTwitterを使っています 「連言標準形と積和標準形って同じようなものなんだろうか」 / Twitter
ゆかたゆさんはTwitterを使っています 「@uint256_t 積和標準形は論理積の論理和であって、「変数に何を代入しても条件を満たす」もの(つまり同値変形)を見つけるために使います。 連言標準形は論理和の論理積であって、「ある変数を代入して条件を満たす」ものを見つけるために使います。 という説明を今思いつきましたが、鉞が来そうな気がしています。」 / Twitter
uint256_tさんはTwitterを使っています 「@yukata_yu なるほど (連言じゃなくて選言標準形でしたね)」 / Twitter

SAT/SMT

テストケース生成

32_1_103.pdf
ソフトウェア科学特論: 命題論理とSAT
KJ00005931319.pdf
SAT/SMTソルバの仕組み
基盤(S)離散構造処理系プロジェクト(北海道大学サイト) セミナー
高速SATソルバーの原理と応用 - nabeshima.pdf
2-2.pdf
07gun_01hen_02.pdf
lecture4.dvi - lecture4.pdf
高速SATソルバーの原理と応用 - 20141015-atos10.pdf
m_1205089.pdf
高速SATソルバーの原理と応用 - 2701.pdf
はじめてのコンコリックテスト - S4-1.pdf
37136500.pdf
OGAWA.pdf
https://swest.toppers.jp/SWEST10/minutes/S23-a.txt
2H5-OS-03b-5.pdf
10-6-B4-4.pdf
情報基礎特論
JP2014186407A - テストケース生成方法、テストケース生成装置およびプログラム - Google Patents
人工知能学会 第106回人工知能基本問題研究会(SIG-FPAI)
魔術師見習いのノート
充足可能性の意味・用法を知る - astamuse
PowerPoint プレゼンテーション - ando_lab_intro_b4_2020.pdf
宋 剛秀 (Takehide Soh) - マイポータル - researchmap
教員詳細 - 番原 睦則
Mutsunori Banbara's Web Page (in Japanese)
特開2015-22515 | 知財ポータル「IP Force」
九州大学-研究者情報 [松永 裕介 (准教授) システム情報科学研究院 情報知能工学部門]
甲1514_本文.pdf
SAT技術の進化と応用 パズルからプログラム検証まで 特集 基 応 専 般 SAT 技術の進化 番原睦則 神戸大学 鍋島英知 山梨大学 SAT ソルバー 地区 1 地区 2 地区 3 地区 4 The story of satisfiability is the tale of a triumph - PDF Free Download
DLPDFR013375_P1-61.pdf
Sigss2012.pdf
業績

モデル生成

144449495.pdf
IPSJ-JNL5502035.pdf
KJ00009572843.pdf
命題論理 SAT モデル 生成 - Google 検索
393.pdf
90001267.pdf
if12_168.pdf
PowerPoint Presentation - OGAWA.pdf
充足可能性問題 (SAT)のQUBO表現 -最大独立集合問題に帰着させる方法- T-Wave
000049838.pdf
F_039.pdf
論理と計算 講義ノート - logic2018spring-draft.pdf
2E1-J-1-03.pdf
SAT µ»½Ñ¤òÍѤ¤¤¿ Áȹ礻¥Æ¥¹¥È¥±¡¼¥¹À¸À® - erato_seminar_20120706.pdf
システム検証論 -モデル検査によるシステム検証- - hand4.pdf
C 言語ベース設計に対する高位設計検証技術 - das2009-fujita.pdf
スライド 1 - Kameya-IBISML-slides.pdf
SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
or55-11_706.pdf
人工知能学会 第97回 人工知能基本問題研究会 (SIG-FPAI)
学位論文要旨詳細
Theses - 岩沼研究室
jsai08.pdf
石畠正和 : Masakazu ISHIHATA - Publication
Microsoft PowerPoint - 8.pptx - 8.pdf

C3

SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
RKX1209/c3: The C3, SMT/SAT solver written in C.
SAT ソルバで数独を解く方法 - まめめも
2009-02-08
Decision Procedures - Bit-Vectors
SMT-LIB The Satisfiability Modulo Theories Library
SATソルバを使うためにCNFを作る - soutaroブログ
DPLLアルゴリズム - Wikipedia

blog

SATソルバを使うためにCNFを作る - soutaroブログ
SAT/SMTソルバの仕組み - scrapbook
ヒビルテ(2012-08-26)
Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
SMT2ファイルの書き方

PDF

IPSJ-MGN570811.pdf
27_3_24.pdf
three_wise_men - 160307-16.pdf
Sigss2012.pdf
fose2012.pdf
general2-3.pdf
37136500.pdf
ソフトウェア科学特論: 命題論理
特集「最近のSAT技術の発展」
ソフトウェア科学特論: 命題論理とSAT
encoding.dvi - encoding.pdf
110008106386.pdf
SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ
CiNii 論文 -  SATソルバ・SMTソルバの技術と応用
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł - YATABE.pdf

スライド

SAT/SMTソルバの仕組み
_pdf
three_wise_men
000049838.pdf
The Art of De-obfuscation - Speaker Deck

Wikipedia

二分決定グラフ

講義情報

アルゴリズム特論
S. Minato's Course Information (in Japanese)
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論

二分決定図 - Wikipedia
ブール関数 - Wikipedia
二分木 - Wikipedia
決定木 - Wikipedia
真理値表 - Wikipedia
ブール代数 - Wikipedia
ベン図 - Wikipedia
カルノー図 - Wikipedia
クワイン・マクラスキー法 - Wikipedia
選言標準形 - Wikipedia
連言標準形 - Wikipedia
否定標準形 - Wikipedia

充足可能性問題 - Wikipedia
制約充足問題 - Wikipedia
命題論理 - Wikipedia
恒真式 - Wikipedia
数理論理学 - Wikipedia
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
タブローの方法 - Wikipedia

Qiita

「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
z3 (smtソルバ) で遊ぶ - Qiita

Twitter

るくすさんのツイート: "UCLID、適当に変数のビット幅を減らしてみてUNSATになればUNSAT proofを取り出す。でproof以外のクロージャを1変数に置き換えて規模を削減した物にbit-blasting。これでSATになればproof部分のビット幅が足りてない事が原因というヒューリスティック"
るくすさんのツイート: "Bit BlastingとTseitin encoding実装しなおさなきゃ駄目だ"
Shinji KonoさんはTwitterを使っています 「SATの変数の数は線形だが、それに全部引っかかると指数乗になる。解が多くなると易しくなってしまうので絞る必要があるが、そうすると関与する変数が多くなり、それを見つけるのは容易しになる。繰り返しネックを作るには…」 / Twitter
Shinji KonoさんはTwitterを使っています 「変数の組合せを変えていく必要があるが、変数の数には限りがあるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、変数の数がないとだめ。しかし、それは線形にしか増えないので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「というわけなのでP=NPがdefenceできてるのは驚異ではあるな。決まったパターンでしかネックを作れないことがわかって肯定的に解けてしまう可能性もある。」 / Twitter
retrageさんはTwitterを使っています 「[2109.13498] Learning to Superoptimize Real-world Programs https://t.co/jWJD30qeYV」 / Twitter
[2109.13498] Learning to Superoptimize Real-world Programs
retrageさんはTwitterを使っています 「斜め読みしただけだけど、prgram correctnessでSMT Solver使うのってnaiveすぎると思う。実世界のソフトウェアだと複雑すぎて検証できないんじゃないかな」 / Twitter
retrageさんはTwitterを使っています 「あとHacker’s Delightを参照しているのがちょっと面白い」 / Twitter

SAT/SMT by Example
openSUSE/libsolv: Library for solving packages and reading repositories
pycosat 0.6.1 : Python Package Index
PicoSAT
wkschwartz/pigosat: Go (golang) bindings for Picosat, the satisfiability solver
z3 - Implementing bit-blasting for floating-point arithmetic in SMT - Stack Overflow
Vol.28 No.2 (2013/03) SAT ソルバー – 人工知能学会 (The Japanese Society for Artificial Intelligence)
バージョンの充足可能性問題 | POSTD
権藤研 輪講資料 2018/6/19 新山 (充足可能性問題について)
Introduction - Verification For Dummies: SMT and Induction by OCamlPro

Alloy

Alloy

チェシャ猫さんはTwitterを使っています 「そういえば以前「Alloy は検査可能な仕様記述言語であって、いわゆるモデル検査器ではないのでは」と言う話が出たことがあった。この Alloy 6 の機能追加を以って、Kripke 構造と様相論理式の ¥models 関係を検査する「いわゆるモデル検査器」になった、とも言える。」 / Twitter
チェシャ猫さんはTwitterを使っています 「形式検証 / 形式手法 Advent Calendar 2021 の 9 日目を投稿しました。遂に Zenn デビューだ! Alloy の使い勝手が激変する大注目機能です。時間発展するシステムの記述と検査がビルトインで可能に。 Alloy 6 の新機能 Mutable Field と線形時相論理|チェシャ猫 https://t.co/v2PZEUvlNL #zenn」 / Twitter
Alloy 6 の新機能 Mutable Field と線形時相論理
チェシャ猫さんはTwitterを使っています 「Zenn トップページのトレンドに載ってたので記念撮影。 #zenn https://t.co/ABLBupNlHC」 / Twitter
チェシャ猫さんはTwitterを使っています 「この辺の話。 https://t.co/Um08xJk67S」 / Twitter
チェシャ猫さんはTwitterを使っています 「今まで Alloy を普通に「モデル検査器」と呼んできたけど、確かに言い回しとして正確じゃない。モデル検査の範囲を「与えられた Kripke 構造が目的の様相論理式を満たすか判定する手法」みたいに定義するなら、Alloy はこの範疇には入ってない。」 / Twitter
チェシャ猫さんはTwitterを使っています 「でも初めてツールに触れる人に対して「定理証明 vs モデル検査」みたいな説明の仕方は便利ではあるし、ちゃんと述べたいとき以外は「モデル検査とは有限状態を全探索する手法」ぐらいの雑さじゃダメかなぁ。」 / Twitter
cutsea110さんはTwitterを使っています 「@y_taka_23 そのレベルでないと分からない」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「@y_taka_23 有界モデル検査器でいいのでは」 / Twitter
チェシャ猫さんはTwitterを使っています 「@chiguri この会話を見てのツイートでした。経緯も含めて「Alloy は SAT ソルバでモデル発見が可能なように設計された仕様記述言語」なら確実だと思いますが、普段はモデル検査器と呼んでもいいんじゃないかなという個人的な印象です。https://t.co/San1LfvNTi」 / Twitter

Alloy

鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「#builderscon に採択されたので、今考えている形式手法の可能性についてブログにまとめて、公開しました! SWETグループが考える形式手法の現在とこれからの可能性 - DeNA Testing Blog https://t.co/lAmEXLS5jg」 / Twitter
SWETグループが考える形式手法の現在とこれからの可能性 - DeNA Testing Blog
takeoさんはTwitterを使っています 「@hoddy3190 あの、Alloyはモデル検査にも使えますが、モデル検査の手法ではないです。重箱の隅をつつくようで恐縮ですが……」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake コメントありがとうございます! おそらく表の部分をご覧になってのコメントかと思われますが、カラムタイトルを「代表的な記述言語」としているため間違いではないと思われます。 もし、モデル検査のためだけの手法と見えてしまうのであれば修正したいのですが、どの箇所か教えて頂けますでしょうか?」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 おっしゃるとおり、表の「代表的な記述言語」にAlloyが含まれているからですが、「代表的な記述言語」だと間違いではない、というのは私にはまだピンと来ていないです。Alloyはモデル検査のための言語ではないので。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 一応ですけど、AlloyはZを元に作られた仕様記述言語ですよ」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake はい、そこの背景は理解した上での発言です。私も最初は仕様記述言語の箇所に書いていましたが、モデル検査(モデルファインダー)としての使われ方の方がメジャーなのかなと思い、今の書き方をしています。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 うーん、モデル検査とモデル発見も別のものですし、そこをカッコで書かれるのは違和感ありますね。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 Alloyをモデル検査用のカテゴリに入れるのは、色々なところで見ますが「よくある間違い」だと思っています。 軽量に仕様記述をするための機能がモデル発見なので、「モデルファインダーだから仕様記述言語ではない」はおかしいと思います。」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake memo: こちらのツイートの返信に続き書いてあります。https://t.co/P2WrcKib57 ご興味ある方はご覧ください。 すいません、Twitter始めたばかりなので返信先間違えてしまいました。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 一応ですけど、AlloyはZを元に作られた仕様記述言語ですよ」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 一方、「メジャーだと思う」というのは私の観測範囲での主観ですし、そもそもmodel checkerではなく、model finderだ!という意見は納得ができます。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 https://t.co/hao4MwpffC」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 貴重なご意見ありがとうございます。 Alloyに関して明るくない部分がありました。明日修正を検討させていただきます。」 / Twitter
鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 入れ違いで失礼しました。」 / Twitter
takeoさんはTwitterを使っています 「@hoddy3190 いえいえ、差し出がましいことを申しまして、すみません」 / Twitter

Sosuke MORIGUCHIさんはTwitterを使っています 「@y_taka_23 なるほど。私も特にモデル検査と呼ぶこと自体には違和感ないですね。区別するならモデル生成とか言ってもいいかもしれませんが・・・」 / Twitter
takeoさんはTwitterを使っています 「@chiguri @y_taka_23 ツイートをご覧の通り、僕自身は割と違和感を感じています。SATソルバを使う、ソルバを使った網羅的探索をする、という点は確かに共通していますが……うーん」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「@bonotake @y_taka_23 やはりモデル検査というからにはモデルがあってしかるべき、という感じでしょうか。私もチェシャ猫さんと同じようにモデル検査と定理証明に大別しがちなのでそのせいかもしれません(第三の分類が必要かも)。ちょっと自分でも考えてみます。」 / Twitter
takeoさんはTwitterを使っています 「@chiguri @y_taka_23 今までの形式的仕様記述が(対話的)定理証明とセットで使うものだったが、Alloyはモデルファインダーとセットで使うという点では確かに異なっています。ただ、両方共仕様の記述がプライマリーな目的であることは同じなので、「仕様記述」という分類があるならそちらに入れるのが筋かなと」 / Twitter
takeoさんはTwitterを使っています 「@chiguri @y_taka_23 モデル発見とモデル検査は違うものか、という点でも、僕は違うと言ってしまう側です。ただ、要素技術や、falsifierとして利用されるという点では確かに似通ってはいます」 / Twitter
cutsea110さんはTwitterを使っています 「@bonotake @chiguri @y_taka_23 たしかに言われてみれば自分もalloyで書いておいてpredやassertのまとめたものを仕様書として共有したな。 自分の中ではモデル検査器だと思ってたけど使い方はそうではなく仕様記述だったのか。」 / Twitter
takeoさんはTwitterを使っています 「@cutsea110 @chiguri @y_taka_23 正しい使い方だと思うし、僕もよくそういう風に使っていました。」 / Twitter

チェシャ猫さんはTwitterを使っています 「これはチェシャ猫的にはかなりの大ニュースなんですけども、今年 11 月 にリリースされた Alloy 6 では遂に時間発展するインスタンスと線形時相論理の検査機能がビルトインで搭載されました。新しい予約語 var を付けたフィールドは時間依存とみなされ、通例通り ' を付けることで事後状態を表します。 https://t.co/R4G15YR0yO」 / Twitter
チェシャ猫さんはTwitterを使っています 「実装は典型的な SAT ソルバによる線形時相論理の有界モデル検査で、検出されるインスタンスは必ず lasso(ρ みたいな形の先端でループしたパス)になります。元々は Electrum という Alloy の拡張として開発されていて、それが本体に取り込まれた形です。 https://t.co/C5YHO1as7p」 / Twitter
haslab/Electrum2: Electrum is a temporal extension to Alloy. Alloy is a language for describing structures and a tool for exploring them. It has been used in a wide range of applications from finding holes in security mechanisms to designing telephone switching networks. This repository contains the code for the tool.
チェシャ猫さんはTwitterを使っています 「元になった 2018 年の論文はこちら。J. Brunel らによる "The electrum analyzer: model checking relational first-order temporal specifications" です。4 ページしかないので読もうと思えばすぐ読めます。 https://t.co/7abImZTGfq」 / Twitter
The electrum analyzer: model checking relational first-order temporal specifications | Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
チェシャ猫さんはTwitterを使っています 「上のスクショに使ったソースコードを Gist に貼っておきました。簡単ですが、線形時相論理の例として「赤と青が同時に点灯しない」「無限回、通行可能状態になる」の検査が入れてあります。Alloy 6 を DL して読み込ませると、UI もかなり変更されたのが分かると思います。 https://t.co/NsLvC0J8nv」 / Twitter
Traffic signals with Alloy 6's temporal logic

Rust

Hideyuki TanakaさんはTwitterを使っています 「充足問題をRustコンパイラのmatchのnon-exhaustive patternsの検出に帰着できるんで、RustコードをコンパイルするのはNP Hardだという話 (´・_・`) / 1件のコメント https://t.co/NJtM9FVK29 “Compiling Rust is NP-hard” (3 users) https://t.co/mIIoNtshxZ」 / Twitter
[B! *あとで読む] Compiling Rust is NP-hard
Compiling Rust is NP-hard
Hideyuki TanakaさんはTwitterを使っています 「CNFの否定は余集合のDNFになるんで、まさにそれでカバーされないものが元の式を充足される割り当てになるって話で言われてみればそうだ(´・_・`)」 / Twitter

Sugar

SAT型制約ソルバーSugarについて
お絵かきロジックをSugar制約ソルバーで解く
SATソルバーMiniSatとSugarを導入 - Qiita
制約充足問題を解くためにsugarをインストール - TIM Labs
Sugar制約ソルバーがパズル神 – The Coherence World

PDF

Microsoft PowerPoint - csp.ppt
Microsoft PowerPoint - 11Prolog演習応用編印刷用.pptx
Microsoft PowerPoint - backtrack.pptx
67.pdf
introduction_sat.pdf
digidepo_8559157_po_r6-2-7.pdf
制約論理型言語における制約集合の構造解析による代数制約ソルバーの効率化についての検討 - 国立国会図書館デジタルコレクション

american fuzzy lop

コンコリック実行エンジン

angr, AFL, Driller | 一生あとで読んでろ
Conpy:Pythonアプリケーションのためのコンコリック実行エンジン | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
これまで調べてきたファジングの話 - who3411のブログ
ソフトウェアテストの技術:現場から研究へ,研究から現場へ
コード難読化・アンパック系論文サーベイ - Log.i53
改竄とリバースエンジニアリング - owasp-mstg-ja
DeepState: C/C++ symbolic execution unit test framework from Trail of Bits | Firmware Security
実装して学ぶ Symbolic Backward Execution - Speaker Deck
はじめてのコンコリックテスト
mumumuさんはTwitterを使っています 「ファジングの最適化のためにMutationの選択を強化学習しようぜ、みたいな話を聞いてなるほど状態だった 指摘されるとせやな、という感じだが」 / Twitter
mumumuさんはTwitterを使っています 「たしかDirectedなファジングにアニーリングを使ってたやつは読んだことあって、システムっぽい話に数理最適化とか機械学習の話題を混ぜるとこうなるのか感があったな」 / Twitter
Aurélien FrancillonさんはTwitterを使っています 「Our new paper (to appear at NDSS 21) with @poeplau SymQEMU: Compilation-based symbolic execution for binaries Like for SymCC we directly embed the instrumentation for symbolic execution in the app, but this time in QEMU, so works with binaries PDF: https://t.co/785ORontDi https://t.co/CCM40sb5Xd」 / Twitter
ndss21_symqemu.pdf

american fuzzy lop
google/AFL: american fuzzy lop - a security-oriented fuzzer
ご注文は American Fuzzy Lop ですか? - Qiita
RustでAmerican Fuzzy Lop(afl) - Qiita
mirrorer/afl: american fuzzy lop (copy of the source code for easy access)
afl/afl-fuzz.c at master · mirrorer/afl
american fuzzy lop (fuzzer) - Wikipedia
Chapter 23  Fuzzing with afl-fuzz
Breaking Ruby’s Unmarshal with AFL-Fuzz – Fuzz Stati0n – Medium
American Fuzzy Lop (AFL)の構造 - 睡分不足
AFL on my extensible fuzzing framework (squiffer)
afl/technical_details.txt at master · mirrorer/afl
るくすさんはTwitterを使っています: 「2016年のハッキング自動化コンテストDARPA CGCでも上位チームの殆どがファジングとシンボリック実行を組み合わせていて、現在でも活発に研究されてる分野です。 CGCで優勝した我らがCMUの「mayhem」だけは別格の高度なシンボリック実行切り替えシステムなんだけど、詳細は表に出てないです(言えません」 / Twitter
るくすさんはTwitterを使っています: 「あ CGC当時のmayhemは純粋にAFL+シンボリック実行だったのかも。 説明がめんどくさいので2016年のntddk先生の記事を見て。 https://t.co/d3JVSu668P 今のmayhemは... アレがアレしてアレになってる」 / Twitter
angr, AFL, Driller | 一生あとで読んでろ
Miura HidekiさんはTwitterを使っています: 「そうか、シンボリック実行、具体例を挙げて抽象実行するよりより汎用的な解析結果が得られそうだな。組み合わせ爆発さえ抑え込めれば」 / Twitter
Miura HidekiさんはTwitterを使っています: 「mmcもシンボリック実行を取り入れ始めていると言えるのかな?結構効果は絶大な気がする。ライブラリレベルで呼び出しが無くても型を得ることが出来そうな気配」 / Twitter
Miura HidekiさんはTwitterを使っています: 「全然次元の違う話だった。すげー、これをガリガリ実装できるリソースのある国とは戦争したって勝てねーよ」 / Twitter
uint256_tさんはTwitterを使っています: 「ファザーというもの, よくわかってないけど, バイナリを解析して分岐を網羅できそうな入力をSATとかで生成するのかな」 / Twitter
mumumuさんはTwitterを使っています 「Automated Whitebox Fuzz Testing [NSDI '08] BlackBoxなファジングはあまりにも非効率なので,Mutation時にシンボリック実行の制約情報を活用するWhitebox手法を提案しSAGEを実装.(実行時に制約を生成し,Mutation時に一部の制約を否定した入力を生成).MS Researchの人がMSのAppに適用していい話」 / Twitter
American Fuzzy Lop (AFL)の構造 - 睡分不足
GJDuck/e9afl: AFL binary instrumentation

抽象解釈

抽象解釈 - Wikipedia
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
Microsoft Word - 【第5分科会】ConcolicTestingグループ_論文_修正_20150220.doc
情報システム信頼性研究会資料
デバック工学研究所
Concolic testing - Wikipedia
ピギーバック - Wikipedia
abstractInterpretation - 白紙
untitled
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
Miura HidekiさんはTwitterを使っています: 「evalに型付けをおこなう方法について考えている。今は、型変数を実際の型を基底とする線形空間のなかのベクトルとして表現してよろしくするという方針で考えている。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「結局、サポートしていないといけないメソッドの組の中から実際の型を検索するという話になると思うのだが、それを効率よくやる方法で思いついた方針」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として文字列リテラルじゃなくて変数が渡ってくると色々困りそうな」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 変数で文字列の内容がわからないのが前提です。eval時に型チェックを行うのですがその型を得る方法を考えています。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 とりあえず制約無しの型変数を考え抽象実行で持っていなければならないメソッドを集めます。そのメソッドの戻り型の制約とかも考え具体的に当てはまる型を探すってのが大まかな方針です」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として渡される変数の値(文字列)そのものを推論しないと返り値の型も決まりませんよね?」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 いえ、evalの戻り値がその後どういうメソッドを使っているか(さらにそのメソッドの返り値のメソッドの使い方)を見ると型が決められるのではないかと思います。何も制約がなければObjectクラスということになります」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 なるほど、逆の発想なんですね。 副作用だけを期待して返り値を捨てるケースもありそうですし、method missingとか使ってると辛そう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 返り値を捨てるケースだとObjectとでもしておけばいいですし、method_missingを使っている場合はmethod_missingが定義されているクラスを持ってくればいいかなと思います。ただ、method_missingが定義されているとなんでも候補のクラスとして出てくるのであまり嬉しくなさそうです」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 そうか、別に厳密に型を定める必要はないし、Rubyだとそもそもそれは不可能ですよね。 RubyでRubyのプログラムを読んで、最終的には対象プログラム内の変数や関数の(取り得る)型の集合をリスト化して出力する、という話なんでしたっけ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 そうです。もともとはコンパイラの最適化のためですが、どこまで型宣言なしで型宣言が復活できるか興味本位で作っています。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 最終的にはプログラマが最低限の型を書いて、あとは型推論で頑張るようになるんですかね。それだと動的型付け言語ではなくなりますが。 静的型付け言語にも代数的データ型が普及しつつあるので、変数に複数の型を突っ込めるという動的型付けの美点?が失われつつあるような。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 究極的には動的と静的型付けの区別はつかなくなるんでしょうね。Rubyはその中でも最右翼で言語仕様に型宣言はとりあえず入らない(型宣言は別ファイル)ですわね。」 / Twitter
CiNii 論文 -  論理プログラムの抽象解釈を用いた解析
untitled - 7.pdf
静的解析 - MATLAB & Simulink
抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier : 2002-06|書誌詳細|国立国会図書館サーチ
aviatesk/JET.jl: scratch: experimental type checker for Julia, no need for additional type annotations

制約充足問題 - Wikipedia
制約充足問題 - 数理計画用語集
制約充足問題についてのゆるふわな話 - Qiita
SuperCon 2016 予選問題をCSPソルバーで解く - ブログのとさか
世界一美しい覆面算を制約ソルバーで解く - 屯遁のパズルとプログラミングの日記
制約計画ソルバー SCOP  入門編
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
B.4 制約充足問題ソルバwcsp
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
制約プログラミングとは | constraint.org
SATソルバーは問題解決のための「銀の弾丸」か?
制約充足問題のSAT符号化
パズルをSugar制約ソルバーで解く
《制約充足問題》 - ORWiki
ikyuuさんはTwitterを使っています 「HORNSATがPに入る話(貪欲法で解ける)を読んでいて、Horn formulaがPrologで使われていることを知った。 いつか論理プログラミングとかも勉強してみたいな:)」 / Twitter
Introduction to Fuzzing - Speaker Deck
解析基盤技術を用いた効率的なソフトウェアテスト - Speaker Deck
ZetZ、形式的検証機能を備えたCのダイアレクト

PDF

20800022 研究成果報告書
_pdf
_pdf
encoding.dvi
termination.pdf
typedlmd.pdf
www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/termination.pdf
www.fc.inf.kyushu-u.ac.jp/~kawamura/t/joi/H290320_yoyogi.pdf
paper.pdf
general4-3.pdf
1205_29.pdf
bachelor.pdf
ieicej07.pdf
100229.pdf
Microsoft PowerPoint - 03np.ppt [互換モード]
Kenji OtsukaさんはTwitterを使っています 「停止性問題の重要性 https://t.co/XrJkRnqxCZ」 / Twitter
What is the importance of the Halting Problem? - Quora
Kenji OtsukaさんはTwitterを使っています 「ポストの対応問題については、チューリングの停止性問題への Reduction を用いて決定不能であることを証明できる。 https://t.co/xfFjglJcOh」 / Twitter
決定不能問題から始める計算可能性理論入門 - resume.pdf
Kenji OtsukaさんはTwitterを使っています 「チューリングの停止性問題について、矛盾を導いて証明する方法は、ほかの場合にも使える。 たとえば、「任意の関数と任意の入力についてテキストをプリントすることを判定する関数は作れるか」という命題について、同じように矛盾を導いて不可能であることを示せる。」 / Twitter

Twitter

El Pin AlさんはTwitterを使っています 「OCaml、このコードの型検査も停止しない。 applicative functorがあって、かつpathベースのモジュールシステムだと、再帰モジュールを上手く扱うのは難しいよね https://t.co/CAcIS33dZj https://t.co/lb7w5a4aoJ」 / Twitter
unterminating type checking for recursive modules · Issue #3674 · ocaml/ocaml
画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n &lt;= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
のぶしみさんはTwitterを使っています 「def f(n): if n&lt;=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
Compiler Explorer
7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
N1528: Why undefined behavior for infinite loops?
7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
Masaki HaraさんはTwitterを使っています 「&gt; My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ &gt; As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter

Aritalab:Lecture/Algorithm/Halting Problem - Metabolomics.JP
yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
PFIセミナー 2013/02/28 「プログラミング言語の今」
バグのないプログラムと不完全なこの世界: Architect Note
バグのないソフトウェアの作れない理由 - Qiita
ハッカーの遺言状──竹内郁雄の徒然苔第44回:複雑さを利用する? | サイボウズ式
決定不能問題から始める計算可能性理論入門
計算可能性理論 講義ノート
d.y.d.
ytakanoさんはTwitterを使っています 「人間の行動を予測できるマクスウェルの悪魔ができたとする。その悪夢が、Aは次の交差点を左に曲がると予測したとする。それを聞いたAは右に曲がると予測は間違っている事になる。よって人間には自由意志があり、因果的決定論は間違い。」 / Twitter
ytakanoさんはTwitterを使っています 「構造が停止問題と一緒だな。」 / Twitter
ytakanoさんはTwitterを使っています 「マクスウェルの悪夢の予測に反する行為を行おうとすると、強制力が働いて出来ないならば自由意志はない。何をしてもブチャラティが死んでしまうように宿命と言うわけか。」 / Twitter
ytakanoさんはTwitterを使っています 「停止問題はこんな感じかな https://t.co/0C9wr7ZWL0」 / Twitter
ytakanoさんはTwitterを使っています 「停止問題はわかりやすいけれど、不完全性定理はやっぱり複雑だな。」 / Twitter
ytakanoさんはTwitterを使っています 「Rustでやろうとしたら、型に阻まれて無理だった。」 / Twitter
チューリング完全性について詳しく教えてください。に対するShiro Kawaiさんの回答 - Quora
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「意図せずチューリング完全になってしまったシステム: - C++のテンプレート - Javaのgenerics - x86のMOV命令 - マジック・ザ・ギャザリング - DOOM (モンスターを信号として使用) - SQL (再帰的テーブル使用) - Sendmail.cf - JBIG2画像形式 (実際に悪用された) etc. https://t.co/yswgYet6m2」 / Twitter
Accidentally Turing-Complete
かわいしんさんはTwitterを使っています 「アルゴリズムは、プログラムという「実体・実装」を持つ前から一般的な課題を実行するための規則の集まりとして、ポピュラーでした。実際にユークリッドの「最小公約数を見つける」ものを始め、al-Khwarizmiの著作における民事的な金銭の授受や測量等々に用いられていました。」 / Twitter
かわいしんさんはTwitterを使っています 「1936年にアルゴリズムの限界がチューリング機械によって示された後の時代に実用的なコンピュータが実現されていきます。今あなたがこのtweetを見ている機械もチューリング機械が持つしたがってその機械が持つ理論的限界がわかってから発明された、チューリング機械の子孫・末裔なのです。」 / Twitter

論理と計算

論理

二階論理 埋め込み

多相 二階 カリーハワード

Wikipedia

カリー=ハワード同型対応 - Wikipedia
Curry–Howard correspondence - Wikipedia
System F - Wikipedia
System F - Wikipedia
二階述語論理 - Wikipedia
Second-order logic - Wikipedia
命題論理 - Wikipedia
Propositional calculus - Wikipedia
Second-order propositional logic - Wikipedia
Proofs of Strong Normalisation for Second Order Classical Natural Deduction on JSTOR
Proofs of strong normalisation for second order classical natural deduction | The Journal of Symbolic Logic | Cambridge Core
型 命題 - Google 検索
二階述語論理 system f - Google 検索
二階命題論理 system f - Google 検索
ssrcoq2.pdf
IPSJ-Z68-7B-01.pdf
9.pdf
IPSJ-MGN300605.pdf
ゲーム意味論 - Wikipedia
直観主義論理 - Wikipedia
依存型 - Wikipedia
型理論 - Wikipedia
型システム - Wikipedia
量化 - Wikipedia
Coq - Wikipedia

9.pdf
www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
IPSJ-MGN300605.pdf
yrigk02568.pdf
d.y.d.
https://syllabus.adm.nagoya-u.ac.jp/data/2021/25_2021_Y010602550048.html
tapl ch 23
型システム入門 プログラミング言語と型の理論 - Benjamin C. Pierce - Google ブックス
Curry-Howard同型対応 - mrsekut-p
多相型付きラムダ計算 - mrsekut-p
Haskell/カリー=ハワード同型 - Wikibooks
66_0661078.pdf
ユーザーブログ:Hexirp/(2021-11-05) ラムダ計算の体系の強さ | 巨大数研究 Wiki | Fandom
カリー=ハワード同型対応 - 自然演繹とラムダ計算との間の対応 - Weblio辞書
カリー・ハワード対応とは コンピュータの人気・最新記事を集めました - はてな
System F
Haskell で LINE Bot を作った
【研究課題】λμ計算の表示的意味論に関する研究 A study on denotational semantics of λμ-calculus ID KAKENHI-PROJECT-14540119 | 学術DB 日本の研究
なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
型付きラムダ計算 - ユニオンペディア
カリー=ハワード同型対応 - ユニオンペディア
TypeScriptでカリー=ハワード同型対応(?)
6-3-1-04_(14)シラバス.pdf
Microsoft Word - 完成.docx - 1_cms191226.pdf
北海道苫小牧市出身の初老PGが書くブログ

二階論理 証明

二階述語論理 - Wikipedia
第13回「不完全性定理」 - 14.pdf
1301-5.pdf
述語論理のことを理解しよう | 実用的な数学を
Yoichi HiraiさんはTwitterを使っています 「@esumii 集合論や二階論理はどう共有するんですか? 帰納関数で証明チェッカが書けないような言葉を使うとか、矛盾している(が気持ちは伝わる)言葉を使うとかしないと、また不完全性定理の証明が移植できてしまうような。」 / Twitter
述語論理.pdf
Boolean valued higher order logics - Ikegami.pdf
9.pdf
整数の不思議(その1) - predicate_logic.pdf
論理と計算 講義ノート - logic2018spring-draft.pdf
D:\情報処理学会学会誌\multi\0022\0011\in\00260038.PDF - IPSJ-MGN221105.pdf
<5461726F2D88C09594924296E790528DB897768E7C2E646F63> - 123116b.pdf
tujfersrs0301_133.pdf
w b _ T } [ X N [ 2015 _ P s S _ - ss2015kurahashi1.pdf
yokou_l.dvi - 02mm032.pdf
æ閰ç邆èꮖç邆å궦 - predicate-logic-ss11.pdf
<96BC8FCC96A290DD92E82031> - 147422422.pdf
49_292.pdf
述語論理の証明について -述語論理の証明について ∃x∀y(p(x)<- | OKWAVE
iiars_workshop9_special.pdf
離散最適化基礎論 第 10回 木幅と論理:オートマトン - handout10.pdf
概要4-6 数理論理
2009-JMSmeeting-abst.pdf
二階述語論理ってめちゃくちゃ便利なのに、数学屋さんが議論の範... - Yahoo!知恵袋
完全なものから一部を取り除いたら不完全 - Skinerrian's blog
Kazuyuki Tanaka
PowerPoint プレゼンテーション - 2015_aki_kikuchi-p.pdf
二階述語論理 - miniwiki

二階論理 決定可能性

決定可能性 - Wikipedia
二階述語論理 - Wikipedia
決定可能性(論理)
第13回「不完全性定理」 - 14.pdf
17_15.pdf
決定不能問題から始める計算可能性理論入門 - resume.pdf
情報論理 - tsubo4.pdf
「コンピュータの理解を越える論理式」? - 論理学FAQのブログ
I211 ¿ôÍýÏÀÍý³Ø - 2020logic11.pdf
(PDF) 述語論理の決定不能性 についてのノート.
incomp2.dvi - incomp2.pdf
incomp.dvi - incomp.pdf
PowerPoint プレゼンテーション - 2015_aki_kikuchi-p.pdf
æ閰ç邆èꮖç邆å궦 - predicate-logic-ss11.pdf
w7.pdf
論理と計算のしくみ - 岩波書店
main.pdf
w b _ T } [ X N [ 2015 _ P s S _ - ss2015kurahashi1.pdf
LaTeX with hyperref - E9-4.pdf
IPSJ-MGN201112.pdf
形式論理探求 第1巻 古典論理のタブロー - tableau01classical_logic.pdf
www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
「二階述語論理」の用例・例文集 - 用例.jp
知識工学 - ke.pdf
2017年度 | 情報論理 - TOKYO TECH OCW
tuecb6_1.pdf
computation-fall2-arithmetic.pdf

書籍

論理学をつくる « 名古屋大学出版会
復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
論理学への数学的手引き | Herbert B. Enderton, 笹井一個, 嘉田 勝 |本 | 通販 | Amazon
嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
<書籍紹介> 数学基礎論序説(田中一之 著)【数学】
論理と計算のしくみ - 岩波書店
53_3.pdf

PDF

15_107.pdf
Boolean valued higher order logics - Ikegami.pdf
2009-JMSmeeting-abst.pdf
tujfersrs0301_133.pdf
cs2012ch1.dvi - cs2012ch1.pdf
birth.dvi - birth.pdf
論理と計算 講義ノート - logic2018spring-draft.pdf
PSSJ-JSRNPS1(2018)_Hiromi_Tanaka.pdf
‘W“⁄Ÿ_‡ÆŸA‚±‚Ì›¼’à - ikegami3.pdf
IPSJ-MGN270811.pdf
/Users/Sakae/TeX/lectures/fuchino/ss15/logic-tokuron-ss15/forcing-LN-2015.dvi - forcing-LN-2015.pdf
107katoh.pdf
wakatenokai_FY2020_program.pdf
227464769.pdf
数学の哲学におけるシャピロの構造主義 - 40_LP45-63.pdf
hs33-01.pdf

二階述語論理 - Wikipedia
情報科学における論理 - mrsekut-p
www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
SLACS98 program
<書籍紹介> 数の体系と超準モデル(田中一之 著)【数学】
命題論理の自然演繹 [数学についてのwebノート]
巨大数論に現れるよくある間違い | 巨大数研究 Wiki | Fandom
数理論理学 - Wikiwand
論説
d.y.d.
様相述語論理のKripke bundle semanticsに関する不完全性(非古典論理とそのKripke意味論に関する諸問題)

解集合プログラミング

46-L.pdf
論理プログラミングから解集合プログラミングへ
モデル生成型定理証明と要素技術
解集合プログラミング(<特集>論理に基づく推論研究の動向)
解集合プログラミングによる様相命題論理Kの充足可能性判定
解集合プログラミングによる決定木アンサンブルからのルール抽出
解集合プログラミングに基づく系統的探索と確率的局所探索の統合的手法に関する一考察
解集合プログラミングを用いた多目的車両装備仕様問題の解法
解集合プログラミングによるソフトウェアテストケースの生成
組合せテストケース生成問題に対する制約解集合プログラミングの適用
モデル列挙とモデル計数(<特集>最近のSAT技術の発展)
SATソルバーの基礎(<特集>最近のSAT技術の発展)
OS-3 SAT技術の理論,実装,応用(オーガナイズドセッション,<特集>2015年度人工知能学会全国大会(第29回))
古典的プランニングにおけるAxiom自動抽出について
ストリーム推論(<特集>Linked Dataとセマンティック技術)
アブダクションとインダクション(<特集>論理に基づく推論研究の動向)
アクション言語(<特集>論理に基づく推論研究の動向)
レクチャーシリーズ:「人工知能の今」〔第4 回〕推論とAI プログラミング
論理コンピューティング(<レクチャーシリーズ>知能コンピューティングとその周辺〔第10回〕)
数理議論学の発展 : 動向と今後の展望(<特集>論理に基づく推論研究の動向)
論理計算の線形代数化について
制約充足問題のASP符号化に関する一考察
対立を用いた法的知識の整合性検証

分離論理

分離論理入門のようなもの - Sokratesさんの備忘録ないし雑記帳
SL.pdf
25_3_135.pdf
Coqで分離論理(separation logic) - keigoiの日記
Microsoft PowerPoint - Construction of Secure Internal Networkswith Communication Classifying System_ver2 (1).pptx - ppl2020poster-cone.pdf
GPGPUのための並行分離論理のCoqによる健全性証明 – 増原英彦研究室
KAKEN — 研究課題をさがす | 分離理論による現実的なプログラムの形式的証明 (KAKENHI-PROJECT-21700048)
KAKEN — 研究課題をさがす | 分離論理を用いたソフトウェア検証の基礎理論 (KAKENHI-PROJECT-15K00027)

命題論理・述語論理・コンパイル

述語論理・CNF・SAT

一階述語論理をCNFに変換する - ja.pays-tarusate.org
暇人の暇人による暇人のためのブログ | 一階述語論理式の冠頭標準形
述語論理をやろうず - Qiita
充足可能性問題SAT (Satisfiability Problem) - ppt download
帰納論理プログラミングのSATによる表現 - yamamoto-kondo.pdf
B-C31.dvi - 27_271.pdf
KJ00005931312.pdf
untitled - predclausal07.pdf
text.pdf
A-002.pdf
chap1.dvi - AI-SAT-1.pdf
SAT.pdf

数理言語 - ke-8-slide.pdf
ke-8.pdf
Introduction to Mathematical Logic
nyumon_logic.pdf
06gun_03hen_01.pdf
連言標準形 - Wikipedia
ホーン節 - Wikipedia
述語論理.pdf
命題論理.pdf
7_130.pdf
16_202.pdf
IPSJ-ICS91076006.pdf
KJ00001303130.pdf
0902-10.pdf
lecture7-dist.pdf
riron.pdf
2000_2a1etc.pdf
logic.pdf
D2-2.pdf
人工知能のこれまで(2)――論理を越えて - Beyond_Logic.pdf
nyumon_logic.pdf
PowerPoint Presentation - OGAWA.pdf
人工知能概論 13
shiryo4.pdf
情報に関する技術の理解を目的とした数理論理学の導入 - gijutsukyoiku21924.pdf

直観主義命題論理の命題を投げると解いてくれるbot

ipc_botの紹介 - 簡潔なQ
Theorem Prover Advent Calendar 2013 - Qiita
IPC botさん (@ipc_bot) / Twitter
buho305.pdf
東京大学コンピュータ系サークル TSG
qnighy/ipc_solver: O(N log N)-space IPC solver in OCaml
Proving Decidability of Intuitionistic Propositional Calculus on Coq
qnighy/IPC-Coq: Intuitionistic Propositional Calculus
qnighy/proofline0: study for making programming language, with linear logic

ハイティング代数

続くといいな日記 – ハイティング代数の性質
ハイティング代数 - Wikipedia
Heyting_algebra.pdf
ハイティング代数
msj07.dvi - msj07.pdf
summer2013.dvi - summer2013.pdf
直観主義論理とHeyting代数 - ちょーさんメモ出張版 気まぐれブログ
ハイティング代数
blog/heyting-algebra-properties.rst at master · mizunashi-mana/blog

KL1

ICOT

Twitter

Miura HidekiさんはTwitterを使っています 「PrologといってもCommit Choice型の言語のでバックトラックの仕組みとか実装しなくてもよいのでそれほど変態的じゃない気もする。むしろ、低レイア部分はOccamに近い実装じゃないかな?」 / Twitter
Kazunori SatoさんはTwitterを使っています 「これ、OSもUIもPrologで書いてある謎マシンなんだぜ。。 https://t.co/gkhLmG2EX5」 / Twitter
MELCOM PSI-コンピュータ博物館
夢の図書館+マイコン博物館+模ラ博物館(公式) Microcomputer Museum JapanさんはTwitterを使っています 「通商産業省所管の新世代コンピュータ技術開発機構が、1982年から進めた国家プロジェクトである「第五世代コンピュータ」の実物を寄贈いただきました 人工知能コンピュータの開発が目的でした 560億円の開発費が投入されましたが、実在しているのは、多分「マイコン博物館」に在るこれ1台です https://t.co/oce9zVeeHS」 / Twitter
Kazunori SatoさんはTwitterを使っています 「もう謎すぎるよな。 "PSIのハードウェアは,Prologと同じ構造を持った機械語であるKLO(Fifth Generation Kernel Language Version-O)をマイクロプログラムにより直接実行する"」 / Twitter
Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 実際に使われていたのはKL1では?」 / Twitter
Kazunori SatoさんはTwitterを使っています 「@sadakato KL1と書いても誰も分からないし。。w このマシンの世代ではPSIっていう逐次型Prologみたいです。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「@sadakato 間違えたESPだ。」 / Twitter
Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 隣の部署がPIM作ってたんで、なんか気になっちゃう」 / Twitter
Kazunori SatoさんはTwitterを使っています 「@sadakato 我々世代は反応しちゃいますよねw」 / Twitter
Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 しかし、ハードはともかく言語すら残っていないんですね」 / Twitter
Kazunori SatoさんはTwitterを使っています 「@sadakato まさにロストテクノロジー。。」 / Twitter
Akinori ItoさんはTwitterを使っています 「第5世代のPrologマシンを今作ったらどの程度のものになるのかなあと考えることはある」 / Twitter
Miura HidekiさんはTwitterを使っています 「今はタグマシンよりは静的型付けにするか、がんばって型をつける方がよさそうだな。または、タグ付けるにしてもページングでセグフォを起こすとかやったほうが速そう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「オーバーフロー起こすとトラップが発生する四則演算命令とかあると捗りそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/NoUasO9riI TransputerのWikipedia、内部の機械語の命令セットまで載っていてすごい (命令32個しかないのだけど)」 / Twitter
Transputer - Wikipedia

ポストGHCにむけて  ― 21世紀の計算モデルと実装
第五世代コンピュータプロジェクトの記録
Index of /~ueda/bit-special-issue-5G
Fuchi Memorial Colloquium
Fuchi Memorial Colloquium
Microsoft PowerPoint - hayashiNov25.ppt
Abduction and Induction: Logical Framework
(私的)海外研究事情
Microsoft PowerPoint - furukawa.ppt
モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
PowerPoint Presentation
PowerPoint Presentation
Microsoft PowerPoint - Fuchi-colloquium3.ppt
Microsoft PowerPoint - matsu071020.ppt
Microsoft PowerPoint - 渕記念コロキウム-横尾.ppt

Kima

d-resist2.pdf
main.dvi
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/Readme-kima220-j

Research
ローテクと向き合う
早稲田大学 研究者データベース
Kazunori Ueda, Prof.
GHC-intro.pdf
Contrtact Research by AITEC in 1996 FY
Contrtact Research by AITEC in 1998 FY
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/use-of-software-J
KLIC's page
Inside KLIC Version 1.0
KLIC 講習会テキスト KLIC システム編
KLIC 講習会テキスト KL1 言語編
dklic: KL1 による分散 KL1 言語処理系の実装 - PowerPoint PPT Presentation
CiNii 論文 -  並列論理型言語KL1の最適化手法
修士論文
Shinji KonoさんはTwitterを使っています 「PSIも触ったことがある。ESPというObject指向なPrologが動く。かっこいい。一応販売されたのかな。ESPもSparc版があり、かなり速かった。KL/1は、もっと流行っても良かったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「KL/1 は人間のプログラミング能力を越えてる感じがはっきりあった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっもと、PIMOSは触ったことはない。あれはどうだったんだろう? 実在したのだろうか? PSIクラスタは動いていたんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「近山先生にPIMOSの話を聞きに行くべきかも」 / Twitter

Prolog

Prolog

The GNU Prolog compiler
How do I make an executable?
Creating a Windows console application from SWI-Prolog
SWI-Prolog -- Manual
GNU-Prolog Manual
O-Prolog
WAM: Warren's Abstract Machine (Japanese)

組み込み述語

Prolog の組み込み述語一覧が欲しい - 電脳スピーチ blog
AZ-Prolog ユーザーズマニュアル
AZ-Prolog ユーザーズマニュアル
ncaq/prohell: Prolog like programming language
M.Hiroi's Home Page / Prolog Programming
Prolog Programming / 制約論理プログラミング超入門
Prolog Programming: List Processing (in Japanese)
144565694.pdf
prolog_main.pdf - prolog_main.pdf
28_4_108.pdf
Prolog Cafeで組込述語を作る方法 〜Prolog言語で実装する場合〜 - Qiita
IPSJ-PRO88048004.pdf
r5.pdf
Skyley Networks / マイコンでProlog
3年生勉強会 - Prolog (2)
SIG-SWO-A402-01.dvi - SIG-SWO-A402-01.pdf
05_3_Prolog.txt - Prolog.pdf
C:/‘C”mŸ_ٶ/‘C”m™ƒ−Ô/‘C”m™ƒ−Ô(‚å›ïŠp).dvi - B_25.PDF
SWI-Prolog 7.1.3の組み込み述語 'term_string / 3'のモジュール名は何ですか? - モジュール、プロローグ、述部、swi-prolog、組み込み

DCG

Definite clause grammar - Wikipedia
Prolog DCG Primer
SWI-Prolog -- Manual
Tutorial -- Using Definite Clause Grammars in SWI-Prolog
Learn Prolog Now!
DCG入門 - Qiita
Prologの動作原理と自然言語処理 | 東京工業大学デジタル創作同好会traP
https://home.hiroshima-u.ac.jp/katsuiwa/nlp.html
549.pdf
Prolog Programming: Language Processing (in Japanese)
構文解析
Prolog の Definite Clause Grammar を試す:Rainy Day Codings:So-net blog
プロローグ-解析 - parsing - Dev4App's Blog
prolog - DCGパーサのPrologを書くために他の抽象構文であいまい性を取り除く - 答えた
Prolog のプログラムのことで疑問があります。 - 問:次のことを行うPro... - Yahoo!知恵袋

PDF

Microsoft PowerPoint - searchtree-2007.ppt
_pdf
oksn_065_065.pdf
情報数学III 2001年度後期                    担当:守屋
prolog.pdf

Qiita

PrologによるPrologインタプリタ - Qiita
Prologで型クラス実装 - Qiita
Prologで様々な多相型推論 - Qiita
Miura HidekiさんはTwitterを使っています: 「ISO-PrologからGHC,独自拡張Prologへ https://t.co/zCxfsDC0tJ GHCをハスケルコンパイラではなく、ガードされたホーン節の意味で使う記事をネットでは初めてみた。面白い、ただただ面白い。いろいろ言いたいことがありそう」 / Twitter
ISO-PrologからGHC,独自拡張Prologへ - Qiita
Miura HidekiさんはTwitterを使っています: 「α変換のところで、変数として変数名と番号のタプルを使っているとのことだけど、単なる名前なしオブジェクトでよいと思う。名前が必要ならインスタンス変数に名前を入れておけばよいし。つまり、ユニーク性だけが必要なものにちょっとオーバーヘッドが大きすぎじゃないかと思う」 / Twitter
Pure Prolog in Elixir - Qiita
Elxghc -Elixir によるGHC実装の試み- - Qiita
Elxghc -中断の実装- - Qiita
Elxghc -並列動作とその測定- - Qiita
Elxlog シンプルでわかりやすい論理&amp;関数型をめざして - Qiita
Elxlog 実行効率の測定 - Qiita
エジンバラ文法内でのAND並列の試み - Qiita
O-Prologの仕様、覚書 - Qiita
O-Prologのコンパイラ - Qiita
sasagawa888/Prolog
sasagawa888/Elxghc
sasagawa888/Elxlog
sasagawa888/opl
Prolog で実装するモデル検査器の心臓部 - Qiita
Prolog実践入門 - AIに特化した老舗言語 - Qiita
Prolog 入門 - Qiita

Twitter

その他

尾崎隆大さんはTwitterを使っています 「@hatsugai % Prolog 'Prologに関しては、実は非常に単純なことをやっているんだと分からせてくれる解説本がない。どの本も何かに繋げたくての解説になっている。繋いで楽しませてやろうと思っている内容が少々高度なので、理解の進み具合との間にギャップが生じて難しくなる。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「質問掲示板とかのPrologの質問、かなりの割合で大学の授業で「やらされている課題を解くための」質問で、本当にPrologに興味持った人が質問しているわけではないので、萎える。一時期積極的に回答してたけどもうやってない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '注意するまでもないと思うが、私はリストという言葉が大嫌いだから、これを「ならび」と表現している。時にリストと表現している述語もあるが。'.」 / Twitter
竹渕瑛一さんはTwitterを使っています 「Prologは再帰定義やカットがなければ,マルバツゲームみたいな言語だからわかりやすい」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性の述語 '1文字の出現頻度'(_文字列,_文字,_出現頻度) :- bagof(_,'1文字取り出す'(_文字列,_文字),L), length(L,_出現頻度). '1文字取り出す'(_文字列,_文字) :- sub_atom(_文字列,_,1,_,_文字).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは私の7-8年前のツイートですが、誰でもが当たり前にこう思う時代は何時来るのか。'( 'https://t.co/8RyeB7WyqG').」 / Twitter
尾崎隆大さんはTwitterを使っています 「Prologで何ができるかという話ですが、手つかずの領域が多すぎて。コンピュータで処理する。プログラム言語で記述する。それに相応しい領域の常識というのが狭すぎて。それから外れたら、そこは全部Prologの領域です。要するにコンピュータで動くかどうかなんて最初から問題にしていない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologは型どころか、構造体をつくらないな。述語以外には。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「論理学の本読んでるんだけどカット除去理論のカットとPrologのカットって全然別物なのね・・・」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '数式の話が出ましたが、Prologというのは is/2 の第二引数に数式を閉じ込めている。と書くて正確ではない。比較演算子の両辺には数式を書くことができます。ただ言語として遠ざけていることは感じます。私はその先鋒かな。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ほとんどのプログラム言語でPrologを組み込もうとすると、AZ-Prologのような専用の処理系に速度的に勝てない。組込述語の充実など使い勝手でも勝てない。さらにPrologのコードは数理論理学の専門家でない限り、突然に書くことは難しい。それで作っても使われなくなってしまう。'.」 / Twitter
zimmy_yさんはTwitterを使っています 「Prologでニューラルネットとか計算量が多いプログラムを作る場合、Visual Prologが有力候補です。 Visual Prologは型定義ありで、C言語並みの処理速度です。 私の持っている円周率プログラムでの 1万桁計算時間(AMD 3400G) SWI Prolog 201.813s LPA Prolog 104.823s Visual Prolog 16.875s」 / Twitter
尾崎隆大さんはTwitterを使っています 「@daigakusenyoo % Prolog 起動プログラムは swipl です。 -q オプションでopening messageが抑制されます。 $ swipl -q ?- append([3,4],[a,b,d],L). L = [3, 4, a, b, d]. ?- halt. $」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog Ubuntuで動かしています $ cat &gt;https://t.co/dDe59M8LRc hello :- write('Hello World!\n'), halt. :- hello. ctrl-d $ swipl -q -f https://t.co/dDe59M8LRc | wc 1 2 13 $」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの起動ですが、 Windowsの場合は、実行ファイルとして \Program files\swipl\bin\swipl.exe と \Program files\swipl\bin\swiwin.exe の二つがありますが、swiplをPower Shellで呼び出せばよいでしょう。'.」 / Twitter
Miura HidekiさんはTwitterを使っています 「Prologもパターンマッチは賢いif文だし、バックトラックはちょっと気のきいたgotoだよね (暴言」 / Twitter

操作的意味論

インタプリタ

h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使うメリットは単一化や非決定性、集合、一階述語論理などを理解するのに有益だからである。 Prologを理解していれば、CoPLやTAPLの図は理解しやすいし、型推論も理解しやすい。 証明まで行おうとするとPrologは力不足なのでCoqを使う。 その前に、OCamlを使って置くと良いのかな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「i(I,I):-integer(I). i(E1+E2,I):-i(E1,I1),i(E2,I2),I is I1+I2. :- i(1+2+3+4,R),writeln(R). :- halt. Prolog による整数の足し算ができるだけのインタイプリタはこのようにかけて短い。この簡潔性と、構文=抽象構文とできる能力は述語論理の特徴であるので使い慣れると便利だ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「型推論は t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). :- t(1+2+3,int). :- halt. と書ける。簡潔に書けて意味も宣言的で明確である。Prologがわかればね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「今書いたPrologのインタプリタは 評価規則 ーーーーーーーーーーー (E-Int) i =&gt; i e1=&gt; i1  e2=&gt;i2 i1 + i2 is i ーーーーーーーーーーー(E-Plus) e1+e2 =&gt; i 型付け規則 ーーーーーーーーーー(T-Int) i : int e1 : int  e2 : int ーーーーーーーーーー(T-Plus) e1+e2 : int と書ける。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologにハマった高校生というのは見たことがないのだけど、Prologを使いこなす高校生がいたら天才だと思うよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表記は若干違うけれども、型理論で用いられる形式的言語を自動処理できるのがPrologだ。難しいことはないのでちょっと遊びに挑戦して、スタックマシンのコンパイラを書いたりしてみると世界の見方が一気にトップレベルの研究者のレベルに引き上がると思う。」 / Twitter

histric

状態(の変化)*さんはTwitterを使っています 「REST APIの作りとか見てると型付き操作的意味論というのが表示的意味論に寄せてく理由はわかる」 / Twitter
3^5さんはTwitterを使っています 「夏休みに全3回くらいの意味論勉強会をやっても良いかもしれない 操作的意味論と表示的意味論の両方から単純なインタプリタを実装する感じで」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
Tomoaki KobayashiさんはTwitterを使っています 「Standrd MLの操作的意味論感も好きだったが、Haskellの表示的意味論感もだいぶ好きになってきた 特にモナドですよねえ(まあより深淵な分、かなり重い概念にはなってしまっているよなあ)」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論の図とかただのPrologだと思ってみると簡単なのだけど、すごそうに見せるものになってて残念だな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「言語作成の、お手軽ツールがOCamlやPrologなのだよな。 お手軽ツールは論文でも多用されており操作的意味論や型理論では述語論理が図に使われている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論と型システムの本格ならやっぱり新しいPrologの型システム作ってからにしたいと思うけど難しいのだよなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「C言語のコンパイラが作れたら、次に勉強したほうがいいのは操作的意味論だ。操作的意味論に使われる言語は一階述語論理であり、論理型言語のPrologを使えば実装は簡潔にできる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Formalizing the LLVM Intermediate Representationfor Verified Program Transformations https://t.co/M7XWzftAOT POPL12 で Vellvm という話で操作的意味論などの形式化がされてたんだな。」 / Twitter
Architecture and Compilers Group | Main / HomePage
h_sakuraiさんはTwitterを使っています 「XMLはDSLを作るには冗長すぎる。S式は単純すぎる。C言語のような表現力が欲しい。関数型言語の代数的データ型は悪くないけど表現力不足だ。Prologみたいなものがいいよなぁと自作するも、操作的意味論の意味も論理型言語で自然に書けるしPrologで良いと気がついて自作は辞めてる今日この頃。」 / Twitter
muratakさんはTwitterを使っています 「どうでも良いけど Prolog の SLD 反駁は誰がどう見ても操作的意味論だと思うし、出来上がる反駁木は証明っぽい。一方よくある成功集合を不動点で求めるタイプの表示的意味論(宣言的意味論?)は、結局コンパイル先が論理式の集合なので、あんまりモデルっぽくない。(個人の感想」 / Twitter
Jun InoueさんはTwitterを使っています 「@emptst どっちかというと公理的意味論が証明論に対応してて、操作的意味論は対応するものが無いと思います。論理系では普通考えない「計算手順」を指定するものなので。ただ、さうした手順(遷移関係)を証明したい論理式と捉えると操作的意味論も証明論に対応します。」 / Twitter
H. M. (ALGI2020@Kyoto, ALC2021@Kyoto)さんはTwitterを使っています 「公理的意味論は表示的意味論や操作的意味論と比べてそれほど定義が明確ではありませんが,基本的にはFloyd-Hoare論理の発展形で,Hoare三つ組などのassertionに対する推論システムだと思います。 https://t.co/rHof4YRj4K https://t.co/IRwOep4A4J」 / Twitter
Axiomatic semantics - Wikipedia
Chapter11.pdf
h_sakuraiさんはTwitterを使っています 「プログラミング言語を設計してよく説明するにはBNFを書いて説明できるのが良いし、言語の仕様を説明するには操作的意味論を説明できるとよい。一階述語論理の規則で説明出来て理解できればそれ以上に難しいことはない。Prologで実装出来てれば自然に一階述語論理は身につく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskell は操作的意味論が明確だし、型の単一化は実装に隠れてるし、型を理解するのはどうせ必要だしで、初心者的には楽なんじゃないかと。」 / Twitter
らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「表示的意味論はプログラムを数学の関数とか写像みたいなのに写すやつ 操作的意味論はプログラムを状態と状態遷移で規定するやつ 公理的意味論はプログラム全体が証明木みたいになるやつ というクッッッッソ雑な説明」 / Twitter
Shinji KonoさんはTwitterを使っています 「面白いのは数学の基本は操作的意味論を持つ直観主義論理であって、問題を記号的に読み、それを機械的に処理することが数学そのものだってこと。それを算数の文章題に当てはめて文句を言ってる人たちは数学をなんだと考えてるのかってこと。」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo 公理はその体系の中で、証明木の根になれるやつ的なの。意味論はある体系を別の他の何かに言い換えて意味を説明するの(表示的意味論)とか簡約規則みたいなので意味を説明するの(操作的意味論)とか」 / Twitter
けこさんはTwitterを使っています 「@dico_leque じゃあ推論規則は操作的意味論?」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo そう思ってる」 / Twitter
けこさんはTwitterを使っています 「@dico_leque なんかモヤモヤしてネットで色々調べてたけど結局前授業でもらった亀山先生の講義資料がめちゃわかりやすかった〜 https://t.co/FckCVHwyTf」 / Twitter
画力・博士号さんはTwitterを使っています 「アクターモデルに基づく並行計算の言語を設計するとして,Erlangのreceive式による選択的受信は別に核言語の機能に入れなくていい気がしてきた,型つけはともかく操作的意味論上は “全部一旦受信して,期待するメッセージではなかったら自分自身に送信し直す” でエミュレートできる気がする」 / Twitter
画力・博士号さんはTwitterを使っています 「いやしかし型つけがややこしくなるだけか(メッセージの分解をパターンマッチングに帰着させると必然的に強い依存型が必要になりそう)」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
画力・博士号さんはTwitterを使っています 「技術者として生きる自信急速に潰えてきた,わいは操作的意味論と型システムの各導出規則について思案してこねくり回していればそれで満足なんかもしれん…….」 / Twitter

h_sakuraiさんはTwitterを使っています 「Prolog使って、ラムダ計算の操作的意味論から述語作るとか、構文木の構文検査を作るとか、型推論規則から型検査述語作るとかならすぐできるよね。BNFからコンパイラコンパイラで構文解析は1時間でできるか出来ないかかなぁ。 https://t.co/1uVfB8fTtI」 / Twitter
h_sakuraiさんはTwitterを使っています 「e ::= i | e+e な言語で ーーーー (E-Int) i =&gt; i e1=&gt;i1  e2=&gt;i2 i1+i2 is i ーーーーーーーーー(E-Add) e1+e2=&gt;i から e(I):-integer(I). e(E1+E2):-e(E1),e(E2). e(I,I):-integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. :- e(1+2+3). :- e(1+2+3,6). みたいなかんじだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「答えをパッといって嫌われる老害扱いだろうな 他に、型付け検査、部分型付け、レコード、ヴァリアント型、うんぬんとPrologで様々な型システムを実装すると面白いよ。 複雑すぎると1時間で実装できなくなるけどw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Hackerson 的なことで2週間くらいあれば、型クラスとか、多相レコード、多相バリアントができたりするようになれたりするはず。 線形型、アフィン型なんかも結構短く実装できる。Prologならね。 なぜならば、抽象度が関数型言語より高い、論理型言語だから。」 / Twitter
h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「S式やXMLはプログラミング言語を記述するには不向きなデータ記述言語だ。Prologのエジンバラ記法はなかなかプログラミング言語を記述するためのデータ記述言語として優れているので、プログラミング言語の実装実験に向いている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「集合論的型システムは型演算結果の正規化が難しい。 a | b は b | a | a と同じ型だ。 a | b - b は a | b &amp; !b 型であり a 型というような演算を高速に行う必要がある。それに加えてグラジュアルな型システムを導入しないと現状のPrologのプログラムと共存しずらい。型演算をどう高速に正規化するか。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アルゴリズミックな規則を実装してみるだけならPrologをおすすめします。例: %評価規則 e(I,I):- integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. %型付け規則 t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). r(E,T,V):-t(E,T),e(E,V). :-r(1+2+3,int,6). :-halt. https://t.co/QYmgQ7RsDd」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Rustは低レベルなのでHaskellのほうが抽象度が高くかけて良いけど、Prologのほうがさらに抽象度が高く短く書けることがある。型システムを実装する場合などはPrologを使ったほうが短く書ける。なぜならば、単一化変数やバックトラックがあり、推論規則をそのまま書けるからだ。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「表示的意味論なら式は値を表すし、操作的意味論なら計算の仕方(の一部)も表すけど、「式で場面を表す」というのは論理的に不可能なのでナンセンス。」 / Twitter
h_sakuraiさんはTwitterを使っています 「自動的に推論規則を動作させることができるということは、型理論で用いられている一階述語論理の操作的意味論を自動的に実行しプログラミング言語として実行できるということである。しかしそれは順番に実行できるように推論規則の順番に気を使って書く必要があるということになる。」 / Twitter
muratakさんはTwitterを使っています 「ラムダ計算の操作的意味論程度ですら「意味論」と呼んでいるんだから,証明体系による論理式の分類も「意味論」と呼んでなんの問題もなさそうに思える.」 / Twitter
相川千穂さんはTwitterを使っています 「操作的意味論、意外と構文論的だという印象を受ける方が多いんですね」 / Twitter
yaxbellさんはTwitterを使っています 「意味論と証明論の差については、まだ、時間が自分のために使えた時に考えたことがあった。意味論という時には、明示的に、無限の操作を認める場合であって、証明論のときには、有限回の操作しか認めていない、という差がある。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「操作的意味論は意味論じゃない」「項モデルはモデルじゃない」「ゲーム意味論は(簡単な場合を除き)商が出てくるからモデルとして不十分」等々は半世紀以上にわたる現在進行形の論争。」 / Twitter
h_sakuraiさんはTwitterを使っています 「前向き推論は幅優先探索の操作的意味論においては完全であるけど、実際のPrologの処理系は深さ優先探索をするので不完全なのではないかなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表示敵意味論では、プログラミング言語の性質を理解するには不十分なのではないかな。型があっていても実行してみないと停止するかどうかはわからないように、意味は通っていて人間には理解できて計算を完了出来る数式でもPrologの操作的意味を考えると計算が無限ループしてしまう可能性がある。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論としてLispを実装したらこうなりますみたいなのが、PrologでLisp実装だと思うといいと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Lispのプログラムの証明に使う公理の証明だった。公理の証明って変な気もするけど、Lispの操作的意味論(モデル)をAgdaで作って、公理が真であることを示すってことね。Lispの項の等式とその性質を証明するのが面倒。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO 条件式, 再帰関数, quasi-quote の言語機能を HLisp 自身で定義できる.{Landin, '64] の SECD機械の拡張でできている.必要最小限の操作的意味論とはどのようなものか,という興味に基づいている. https://t.co/7JnYGq6TBP」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO [Plotkin '75] の流れをフォローします. 操作的意味論. evaluation context で引数部分にちょっとside condition がある (関数部分がマクロのとき引数を評価しないように).https://t.co/vrwFCzJa38」 / Twitter
はかりさんはTwitterを使っています 「2+3=5を"2+3を計算したら5"と読むか"2+3と5は同じ"と読むかの違いは操作的意味論と表示的意味論の違いっぽい。λ計算ではこの2つは同じになるけど、そういうところの整合性が取れてるのも改めて意識してみるとちょっと楽しい」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf

バックトラック

尾崎隆大さんはTwitterを使っています 「% Prolog 'ならびを昇順に整列して順位を振る。ただし値に重複はない。'(_ならび,_順位,_値) :- sort(_ならび,_整列したならび), append(L1,[_値|_],_整列したならび), length([_|L1],_順位). 'ならびを昇順に取り出す。ただし値に重複はない。'(_ならび,_値) :- bagof(_,member(_値,_ならび),_).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで分かることは、Prologは順位を振るという作業は得意ではありません。その理由は非決定性の述語をバックトラックで処理しようとすると、今何位目というカウント情報がバックトラックにより無効となってしまうからです。この観点からappend/3の偉大さを感じさせられます。'.」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの限界は評価順が深さ優先探索しか選べないことにあるので、それ以外の戦略をオプショナルに選択できると嬉しい。遅延評価だったり、幅優先探索だったりしていいし、バックトラックなしにできたり、変数の単一化ができなくなるオプションとかあっていいと思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの遅さの原因はバックトラック、単一化や、静的型システムがないための最適化能力不足にある。Mercuryみたいな言語は論理型言語に1つの型システムを加えるけど型にハマったプログラムしかかけなくなるので困ることもある。場合によって型システムを選択できると嬉しいのだよなぁ。」 / Twitter

カット

尾崎隆大さんはTwitterを使っています 「% Prolog カット(!)が何故必要か 成績を判定する(_成績,不可) :- between(0,59,_成績),!. 成績を判定する(_成績,可) :- between(60,79,_成績),!. 成績を判定する(_成績,良) :- between(80,89,_成績),!. 成績を判定する(_成績,優) :- between(90,100,_成績),!. 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もし以下の定義であると 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績(84,_成績). _成績 = 良 ; _成績 = 異常値 ; false. ?- 'のようなことが起こってしまう。最後の定義節の頭部の第一引数が変数であるため、ここがどんな値でもこの節は真になる。カットがあれば、この節に到達しなくなるから、「異常値」という解がでることは避けられる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これならOK 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_成績,異常値) :- \+(between(0,100,_成績)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績を判定する(59.5,_成績). _成績 = 異常値. 'さて、between/3の第三引数に生成される値は実は整数である。したがって、整数でない値の59.5が入力されると \+(between(0,100,_成績)) が真となって、「異常値」が返される。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologのマニュアルでは、between/3のような組込述語でも、第一引数の型のような情報は載っていない。そもそもPrologでは型という概念が事実上存在しない。関数評価する為の式はあるから計算可能なものかどうかの判定はしている。整数とか浮動小数点数とか。しかしこれは「特例」。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '本来ならば、整数も浮動小数点数も必要なく、全部アトムでよかったはずだ。&gt;,&lt;,&gt;=,=&lt;,=:=,=\=,is。これら全て二引数の述語であるが、この引数にある特殊なアトムは計算可能だと。それだけで済む。そのアトムがどんな可能性を持つアトムであるか問う述語としてinteger/1があってもよいが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '組込述語 forall/2 ですが、 第一引数を実行して、真になった条件で、第二引数を実行します。そして、この条件での第二引数の実行が全て真になった場合、forall/2の実行は真になる。 第一引数が偽で第二引数が実行されない場合は、 ?- forall(fail,true). true. は、真となります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということは、 'Pの否定'(P) :- forall(P,fail). と書くことができる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '否定の定義にカットが必須だと言う話。 forall/2で書くことができるではないかとなりますが、forall/2の定義の中にカットが必要ないならば、胸を張れますが、そういうわけにはいかないでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。これ、 ?- forall(fail,fail). true. という例にするべきでした。それから、 「そして、この条件での第二引数の実行が全て真になった場合、」は 「そして、全ての第一引数の実行が真になった条件で第二引数の実行が真になった場合、」でした。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'forall/2の定義を論理的にPrologで定義するならば、当たり前に (\+)/1 が使われているだろうという意味ですね。(\+)/1 を使わなくても、それにあたることを述べる時にやはり、カットが必要になるだろうと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog カット ! ?- findall(_行ストリング,(repeat, (at_end_of_stream(current_input),!,fail; read_line_to_string(current_input,_行ストリング))),_行ストリングならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'findall/3,setof/3,bagof/3,forall/2などの事実上のループからの脱出用のカットです。'.」 / Twitter

単一化

尾崎隆大さんはTwitterを使っています 「% Prolog (a,b) は ','(a,b) という項と同じです。 , という関数子を中置きしているのは、 ?- current_op(A,B,','). A = 1000, B = xfy. 演算子定義されているからです。xfyの意味は左側にはこの関数がもはや来ることはない。右側には再帰的にこの項を持つことができるという意味です。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ですから a,b,c は ','(a,','(b,c)) という結合であると解析されます。(a,b,c) の ()は (a,b,c) = X だとイコールの左側とXが単一化されますが、 a,b,c = X だとXと単一化されるのはcだけで、a,bは目標だと解釈されます。それは意図に反するからここからここまでの「連言」だと指定する。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'その目的の為に()が使われています。従って、ここで大事なのは , の方で()は便宜的なものだと考えることができます。これで、 ?- (X,Y) = (a,b,c). X = a, Y = ','(b,c). の意味がお分かりでしょう。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- (X,Y) = (a,b,c,d). ならば X = a, Y = ','(b,','(c,d)). ですが、 ?- (X,Y) = (a,b,c,d). ならば X = a, Y = (b,c,d). でも構いません。要は項の(インタプリタによる)見せ方の問題です。 大事なことは , が演算子定義で xfy の形式だと定義されているということです。」 / Twitter

アトム

尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでSWI-Prologのprolog_flagの使い方の話をしましょう。 ?- current_prolog_flag(allow_dot_in_atom,X). X = true. 'だと、 尾崎.隆大 というようなアトムが可能になります。昨日、整数とか浮動小数点数なんてなくてもよいという話を書きましたが、この話が前提になっています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これが、 X = false. SWI-Prologの起動時(初期値)はfalseになっていますが、 3.14 のような文字列はアトムになり得ません。基本的に数字から始まってもアトムだとPrologを設計し直そうとした場合、この小数点のドットの扱いが問題になるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '基本的にアトムにドットが含まれていても問題ないというモードのもとで、数字と文字の区別をしないというルールにPrologを改めた時に、型の片鱗もないPrologが実現するのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' =:= や 大小符号の両辺。それに is/2 の第二引数の中にある評価しなくてはならないアトムの検査はどうするの?型が必要ではないかと言われるかも知れないが、そういうことはErlangやElixirにでも委託してしまえば良いのではないか。Prologで計算しなくても良いのではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '他言語との連携の遅延を0にすることはできないし、他言語側で計算可能かどうかアトムの評価をしてもらわねばならない。やはり、難しいか。PrologとErlangが一体のものであるのならともかく。'.」 / Twitter

append

尾崎隆大さんはTwitterを使っています 「% Prolog 分解/3は、append/3の第三引数を第一引数に持ってきたもの。 分解( L1 , [] ,L3) :- L1 = L3. 分解([A|L1], [A|L2],L3) :- 分解(L1, L2 ,L3). '第二節で第一引数の頭を削った残りを第一節の第三引数として取ることができる。第二引数は・・・頭からコピー。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もちろん実行は. ?- 分解([1,2,3],X,Y). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] ; X = [1,2], Y = [3] ; X = [1,2,3], Y = [] ; false. となる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ふたつのリストを結合した新たなリストを生成するのがappend/3だった。 append(L1,L2,L) このappendから、図らず思いがけず、分解/3の機能が発見された。非決定性に、双方向性に。 結合のappendが書かれてから、分解のappendの全てが解明されるまでに3-4ヶ月が掛かったということだ。'. https://t.co/DweT0hYnqt」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すげえ美しい定義だ。これが動くのだから、Prologってスゲーなと思う。(オレのボキャ貧に絶望」 / Twitter
それさんはTwitterを使っています 「@KISUGI_JINEN @TakaoOzaki 動作は分かるのですが append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). の定義で、何故そうなるのか想像するのが難しいです」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog 'Prologを開発したコルメライワのグループは1972年の12月頃には、Prologが使えるようになり、appendの書き方も発見されたのですが、この述語の可能性を全て理解するのに四ヶ月くらいは掛かったという伝説があります。彼らにしてそうですから、やはり正直難しいのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog '神話とはしましたが、実際の話のようです。'. append([],L,L). append([A|L1],L2,[A|L3]) :- append(L1,L2,L3). select(A,[A|L],L). select(A,[B|L1],[B|L2]) :- select(A,L1,L2). '下は非決定性のパターン。この二つを理解できれば、Prologの再帰述語は怖くない。'.」 / Twitter
来生自然さんはTwitterを使っています 「@miyako_yayo @TakaoOzaki 何となく分かる。。。 https://t.co/jiyto20QPZ かも。。。」 / Twitter
[Prolog][Memo] append/3 | Basic Werk

select

尾崎隆大さんはTwitterを使っています 「% Prolog ' append/3 はもしかして神様というものがいるのかと思わせる作品ですが、昨今これ以上に使われているのが select/3 です。定義は select(A,[A|R],R). select(A,[B|R1],[B|R2]) :- select(A,R1,R2). 一個取り出して、それ以外の要素も参照できる非決定性の述語です。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- select(A,[1,2,3],R). A = 1, R = [2,3] ; A = 2, R = [1,3] ; A = 3, R = [2,3]. false. ?- member(A,[1,2,3]). A = 1 ; A = 2 ; A = 3 ; false. に似ていますね」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- append(L1,[A|L2],[1,2,3]). L1 = [], A = 1, L2 = [2,3] ; L1 = [1], A = 2, L2 = [3] ; L1 = [1,2], A = 3, L2 = [] ; false. ですから. ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). 'これでA,Rに関しては先程のselect(A,[1,2,3],R)と同じ結果が順に得られます'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'この最後の ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). ですが、「やっ」と一瞥すると、その途端に 何をやっているのか分かってしまう。 そういう動きとかに交渉をもたない理解が生まれる。宣言的とか言ってしまうと面白くないのですが、この脳内で何も動かすことのない理解。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これがPrologの醍醐味ということでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'select/4が大変重宝だということは何度も書いた。 select(_取得値,[_取得値|R],_更新値,[_更新値|R]). select(_取得値,[A|R1],_更新値,[A|R2]) :- select(_取得値,R1,_更新値,R2). という定義になる。取得値をキーにして取り出し、これを更新値に置き換えるという使い方になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、それでは取得値をキーにするのではなく、何番目の要素であるかを指定してこれを更新する組込述語はというと、ないらしい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 何番目の要素かを指定してならびを更新する(_ならび,_何番目,_更新値,_取得値,_更新されたならび) :- length([_|L1],_何番目), append(L1,[_取得値|L2],_ならび), append(L1,[_更新値|L2],_更新されたならび). 'これで書くことができているがselect/4のようにappendを使わず再帰で書くと'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog こんな感じかな nth1_select(_nth1,_取得値,L,_更新値,L2) :- nth1_select(1,_nth1,X,_取得値,_更新値,L2). nth1_select(N,N,_取得値,[_取得値|R],_更新値,[_更新値|R]). nth1_select(M,N,_取得値,[A|R1],_更新値,[A|R2]) :- M2 is M + 1, nth1_select(M2,N,_取得値,R1,_更新値,R2).」 / Twitter

findall

尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の分解の例(_分解された文字列) :- findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), atomic_list_concat(_文字ならび,w,_分解された文字列). https://t.co/IBes0l34km」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '1980年頃には知られていた findall/3 ですが、 findall/4 は相当に新しいと思います。第四引数に差分リストがくるのがこの述語ですが、 atomic_list_concat/3 が第二引数を植木算的に間にしか入れないために不十分で、空文字を番兵的に差分リストの中に使って最後のwを挿入しています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 文字列の分解の例(_分解された文字列). _分解された文字列 = 大w草w原w不w可w避w . ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実は、 findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), の部分は本来、 atom_chars(大草原不可避,_文字ならび), でよいのだが、それだと _分解された文字列 の最後にwを付ける機会が一番最後になってしまう。それでfindall/4という凝った組込述語を使ったわけだ。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '一旦、 大w草w原w不w可w避 という文字列を作り、その最後に atom_concat/2 の第二引数をwとして実行して完成するというのは、癪なので。'.」 / Twitter

行入力

尾崎隆大さんはTwitterを使っています 「% Prolog 空白区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列," ","",_文字列ならび). カンマ区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列,",","",_文字列ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということで '文字列を区切り文字列で分割する。ただし、区切り文字列も要素として残す。'(_文字列,_区切り文字列,_置換された文字列) :- 文字列を区切り文字列で分割する(_文字列,_区切り文字列,L), ならびの空文字要素を置換文字列に変換する(L,_区切り文字列,_置換された文字列ならび). https://t.co/2HcnrAWB4M」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 今の所こんな迂遠な方法しか思いつかない。 ?- 文字列を区切り文字列で分割する(尾崎隆大,崎隆,L), ならびの空文字要素を置換文字列に変換する(L,崎隆,_置換された文字列ならび). L = [尾,'',大], _置換された文字列ならび = [尾,崎隆,大].」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 基本的にはこれでよいのでは。私はStringは使いませんが。 '入力 1行に1つ そのまま変数へ'(_変数) :- read_line_to_string(current_input,_変数). https://t.co/Pgnk42mDR1」 / Twitter
Prolog競プロ用チートシート - Qiita
尾崎隆大さんはTwitterを使っています 「% Prolog 'ファイルから情報を読み取る場合、Prologでは see(_ファイル名), としてストリームを形成してきました。 読み込み述語が read/1 の場合、end_of_fileを読み込むことによってファイルの終了を認識しました。そのことから、ひとつ不都合が生じました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それは、読み込み述語の第一節に停止節を起きたい場合に起こります。 読み込み([]) :- read(end_of_file),!. 読み込み([A|R]) :- read(A),読み込み(R). のようなコードを実行すると、第一節で read が空転して、結果一つ跳びに情報が取れてしまう。副作用の弱点が出る。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これを解決するのが、伝統的な、そう、先読みですということになる。COBOLではあるまいし。ここでは先読みのコードは載せませんが、実は解決策がある。第一節を、 読み込み([]) :- at_end_of_stream(current_input),!. ・・・ とするのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' see(_ファイル名), で作られたストリームが後に変更になっていない場合は、現在のストリームをcurrent_inputで参照できます。そしてそれを使って、at_end_of_streamを認識できる。いわばpeekできる訳です。これも副作用だが、覗くだけなら悪さはしないということになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで、先読みのような不自然なコードから解放されます。ところが、実は事務処理のプログラムなどでは、この先読みによって、ひとつ前の情報が常に引数にあって、それをプログラムの中で自然に参照できて、情報の比較をすることの役に立っているいうこともあるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ただ、現在のPrologのコードスタイルとしては、情報はできるだけ、データベースに展開するか、全データをリストに取り込んで処理に行くというのが主流で、ファイルを読み込みながら何かをすることは少ない。私も先読みで処理するコードを書く機会はほとんどなくなりました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'split_stringに訂正。 read_line_to_integers(L) :- read_line_to_string(current_input,String), split_string(String," ","",LL), maplist(integer_string,L,LL). integer_string(Integer,String) :- number_string(Integer,String), integer(Integer). となる。'. https://t.co/mL5NlwhO7N」 / Twitter

CSV

尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび) :- read_line_to_string(_入力,_ストリング), split_string(_ストリング,",","",_ストリングならび), maplist(string_to_atom,_ストリングならび,_項目ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), findall(_項目ならび,( repeat,(at_end_of_stream(_入力),!,fail; 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび))),_項目区切り行ならび), close(_入力).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 再帰で 'csvファイルの項目区切り行を全て読み込む'(_入力,[]) :- at_end_of_stream(_入力),!. 'csvファイルの項目区切り行を全て読み込む'(_入力,[_項目ならび|R]) :- 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび), 'csvファイルの項目区切り行を全て読み込む'(_入力,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), 'csvファイルの項目区切り行を全て読み込む'(_入力,_項目区切り行ならび), close(_入力). '再帰だと、文字数制限の為すこし不自然なところがありますが、ざっとこんな感じになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列からカンマで区切られたアイテム数を得る(_文字列,_アイテム数) :- split_string(_文字列,",",",",_アイテムならび), length(_アイテムならび,_アイテム数).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog アイテムをアトムとして取り出したい 'CSV形式の文字列から任意のアイテムを取り出す'(_文字列,_アイテム) :- split_string(_文字列,",",",",_アイテムならび), member(S,_アイテムならび), string_to_atom(S,_アイテム).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 副文字列(_文字列,'"',_取り除いた文字列,'"'). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列).」 / Twitter
尾崎隆大さんはTwitterを使っています 「文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 両端の文字はダブルクォーテーション(_文字列), sub_atom(_文字列,1,_,1,_取り除いた文字列). 両端の文字はダブルクォーテーション(_文字列) :- sub_atom(_文字列,0,1,_,'"'), sub_atom(_文字列,_,1,0,'"').」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologで最も簡単なsplit処理は ?- atomic_list_concat(L, ',' ,'abc,def'). L = [abc,def]. だろう。これにはSWI-Prologではの但し書きが付く。'.」 / Twitter

エラーと偽の区別など

尾崎隆大さんはTwitterを使っています 「% 翻訳は 'プロパティベースのテストでは、反例を縮小すると他のバグが明らかになる可能性があります。 優れた実装は、これらの他のバグも報告します。 しかし、論理プログラミングはこれを本質的に困難にします。バグはしばしば失敗を引き起こし、失敗は有益ではなく、区別することができません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの主張はPrologが日本に紹介された頃から言われていたことで目新しさはないのだが、この続きが読みたい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'コメントすると、Prologではエラーと偽の区別がし難いということが言われます。ここでは、それとは少し違って、 「確信をもって偽としたもの」と、非決定性述語の解をすべて取得する際に(一時的に)偽になったものが、同じ制御上に乗ってしまうため区別をつけられないの意味だと思います。'.」 / Twitter

DB

Sadayuki FuruhashiさんはTwitterを使っています 「RDBMSって視点によっては「プログラマブルなデータストア」で、データモデルはリレーショナルモデルに基づいていて、SQLでプログラムできる。一方、アプリケーションってプログラマブルじゃない。今その間が必要とされている。RDBMSほど柔軟性があっても困るけど、プログラマブルなデータストア。」 / Twitter
市川 真一さんはTwitterを使っています 「Prolog インタプリタに永続性を追加したもの、みたいな https://t.co/YXYiPrQBM8」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「RDBMSよりずっと柔軟性が高い、GemStone/Sはいかがでしょう?Smalltalkというプログラミング言語処理系がまるっと載ってます。 https://t.co/nKSlUd7ZYS」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'インメモリデータベースに採用される索引機構で書き込み速度の速いものはどんなものがあるのだろうか。Prologデータベースの弱点というよりも、Prologの弱点は定義節の追加が定義節数が多くなるに従って目に見えて遅くなることなので。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologでは、同一述語の定義節数が数千万を超えると書き込み速度が落ちる。これは第一引数に暗に、索引が振られていて、それがハッシュで、ハッシュテーブルの作り直しを強いられているのではないか。第二、第三、・・第n引数にも索引は欲しいのだから設計の変更が必要ではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '私の現在使っているマシンは物理10コアですが、 SWI-Prologで8-threadで並行処理をすると、逐次的に処理するのに較べ、7.74倍速くなります。メッセージ交換がない場合ですが。threadを気楽に使うことができるようになりたいものです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは何故8倍にならないかですが、これは唯一箇所にある1億節のデータベースを各スレッドが共通して参照しているからです。データベースをコアのcacheに収まるくらい小さくして、8-threadにすれば、8倍に極めて近くなるはずです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% prolog 'Prologデータベース(頭部のみで本体がないもの)の定義節のn番目を取得するためには nth_clauseという組込述語を使います。この述語の使い方は少々難しいので、 ''from:@TakaoOzaki nth_clause'' とツイッター参照をしてみてください。結構書き込んであります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの場合、予め、以下の定義をしておく。 第n節の頭部(_n,_頭部) :- nth_clause(_頭部,_n,Ref), clause(_頭部,_,Ref). ?- 第n節の頭部(2,氏名(X)). X = 東竜太郎 . '. https://t.co/s7UUAqHvQ3」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog の問題です ' 氏名(尾崎行雄). 氏名(東竜太郎). 年齢(60). 年齢(67). 氏名と年齢をばらばらに定義してしまいました。これを [[尾崎行雄,60],[東竜太郎,67]] のように定義順にまとめたい。そのためにはどんな述語を定義すればよいか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- findall([_氏名,_年齢],( 第n節の頭部(_n,氏名(_氏名)), 第n節の頭部(_n,年齢(_年齢))),L). L = [[尾崎行雄,60],[東竜太郎,67]]. ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '現在インタプリタに動的に定義されている述語の定義節、その10001節目から20000節目までを切り取りたい。こんな場合、 ?- tell(temp),listing(述語名),told. のように仮ファイルに書き出して、vimのようなエディタで処理するのが普通。そうではなく、これを直接処理したい場合もある。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologを高速に動かすためには 給与_社員名('026',尾崎隆大). 逆_給与_社員名(尾崎隆大,'026'). 給与_総支給('026',150000). 逆_給与_総支給(150000,'026'). のように持てばよい。 泣き所は_idの管理の難しさと、大量のassert時の第一引数のハッシュテーブルの更新が原因の遅延。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'foo/2が1億節定義されているとする。その第一引数に2000のアイテムがランダム(平均50000)に選択されて現れる。さて、 ?- bagof(_,B ^ foo(A,B),_). Aをキーとして取り出す。第一解が現れるまで550秒掛かった。何度繰り返してもほとんど変わらない。この時間では実用にはならない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '要するに1億要素の重複を取り除いた結果2000要素となるソートの実行時間が9分間掛かったということだ。バッチ処理で、このキーが取得できさえすれば処理を完了できるというのならば、9分掛かっても構わないというになるのだろうが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'なんで1億節というような、普通Prologでは扱わないような述語定義の話になるかというと、一昨日かな、失業保険のシステムの話が出たから。日本の場合は、1億人を管理することもあるのだろうから、述語定義もそういう単位になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog データべースの解を再帰で集める(P,L) :- データべースの解を再帰で集める(1,P,L). データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R),!. データべースの解を再帰で集める(_,_,[]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これだと末尾再帰 データべースの解を再帰で集める(M,P,[]) :- \+nth_clause(P,M,_),!. データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'このcopy_term/2が必要な辺りがキワモノっぽい。 copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), clause/3の第二引数(本体の部分)を匿名変数にしているが、clauseはcallではない。定義は参照されるが、本体が導出される訳ではない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '言うまでもないことだが、こんな定義は本来必要ない。 データベースの解を集める(P,L) :- findall(P,P,L). だけで済むのだから。nth_clause/3の使い方の例として示してみただけ。'.」 / Twitter

規則外の意味比較

ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 命題を真偽判定可能な単位に分割し、単位毎に既知の知識に照合して推論するのがPrologだと理解していますが、設問をもって「既知の知識」を自己拡張する能力って持ってましたっけ?」 / Twitter
JO3ALTさんはTwitterを使っています 「@uchujin17 当然、規則外の意味比較には対応していないはず。なので、あまり結果は良くなかったような記憶があります。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 僕も卒研はいちおう「人工知能」だったんですが、当時の人工知能は教授がモデルを作り、学生はひたすら既知データを打ち込んで、そこに設問を入れて正解率を見てみる、という原始的なものでした。正解率の上下で一喜一憂するけれど、その原因が何なのかは解析できていませんでした。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 打ち込んだ既知データがどれだけ正しいのか、打ち込み時にミスが無かったかどうかの検証も怪しいもので、GIGOをこねくり回している感がありました。だから僕は「人工知能」に絶望して、それが21世紀になってこんなに発展したことに驚いています。」 / Twitter

flatten

Shinji KonoさんはTwitterを使っています 「Prologを書けるようになったと感じたのはflatten書いてから。木構造を平らなリストに展開するやつね。そこから簡単な並列言語を作るまで2ヶ月くらい。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 昨日@shinji_kono先生が言及されていたflatten/2 my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten(V,L,[V|L]) :- var(V),!. my_flatten([],L,L). my_flatten(A,R,[A|R]) :- \+list(A),!. my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). list([_|_]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'やはり、my_flatten/3の第三節の第二・第三引数のやり繰りが難しい。先生の感想もここら辺りを発見/理解できて、自信が付いたということなのでしょう。差分リストの類ですが、quick_sortの中に現れるそれよりは易しいと思います。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。間違い。 my_flatten/3の第四節になりますね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さらにすみません。 この第四節の第一引数のなかにR1となっているところがありますが、ここはRとしてください。R1でも構わないのですが、そして第一引数を強調しての1なのですが、他にRなんとやらが現れない場合はRだけにした方がよいでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '細かなことはともかく、 my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). この第二引数・第三引数の ・・,L2,L) :- ・・,L3,L), ・・,L2,L3). というパターンは頭に入れておくとよいですね。append/3の定義を覚えておくとよいように。'.」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki 変数なし想定で書いた方が良いです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki これで学ぶのは差分リストの使い方なので。変数が入る場合は最初にnumbervarsで変換してしまうのが楽です。理論でもそうするみたいです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「差分リストはPrologを使うプログラミング的な利点なのだが、Prologの持ってる論理的基礎とは相性がよろしくない。まったく合わないってわけでもないんだが、希望を砕くくらいにはずれてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上田先生のX’talは自身でモデル検査できるので、もう少し注目されても良かったが… まだ、ギリギリPrologと言える感じ? いや、別物?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここからたどれるのかな。KL1Cがあるな。 https://t.co/a9OnMrdA6w」 / Twitter
Kazunori Ueda, Prof.
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten([],[]). my_flatten([[A|R]|R1],L3) :- my_flatten([A|R],L2), append(L2,R2,L3), my_flatten(R1,R2),!. my_flatten([A|R1],[A|R2]) :- my_flatten(R1,R2). '変数を除外しましたが、append/3を差分に使ったこのコード。意外なことに最速かも知れない。'. https://t.co/CN5FcXuXav」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten([],L,L). my_flatten([[A|B]|R1],L2,L) :- my_flatten([A|B],L3,L), my_flatten(R1,L2,L3),!. my_flatten([A|R1],R,[A|R3]) :- my_flatten(R1,R,R3). 'これが最速コード。先程のappend/3を使ったコードとの差は3%程度です。'.」 / Twitter

ソケット

尾崎隆大さんはTwitterを使っています 「% Prolog udpを書いたから今度はtcp tcpソケットの準備(_接続用ソケット,_ポート) :- tcp_socket(_接続用ソケット), tcp_bind(_接続用ソケット, _ポート), tcp_listen(_接続用ソケット, 5).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog サーバーサイドはこんな流れ 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd) :- tcp_open_socket(_接続用ソケット,AcceptFd,_). tcpインタプリタ(AcceptFd) :- repeat, 行を読みだして実行(AcceptFd), fail.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ストリームを準備するのはこの段階 行を読みだして実行(AcceptFd) :- 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out), 一行読み出し項に変換(In,_項,_エラー情報), インタプリタの実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out) :- tcp_accept(AcceptFd, _実行用ソケット, _Peer), tcp_open_socket(_実行用ソケット, In, Out), set_stream(Out, encoding(utf8)), set_stream(In, encoding(utf8)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog インタプリタの実行(_ソケット,In,Out,_項) :- 親タスクで実行(In,Out,_項), 子タスクで実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 親タスクで実行(In,Out,_項) :- 項は親タスクで実行するべきもの(_項),!, 親タスクで実行(In,Out,_項,_エラー情報), fail. 親タスクで実行(_,_,_項) :- 項は子タスクで実行するべきもの(_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 話が前後するが、トップレベルは サーバ(_ポート) :- tcpソケットの準備(_接続用ソケット,_ポート), 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd), tcpインタプリタ(AcceptFd).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 以下のような流れに 子タスクで実行(_実行用ソケット,In,Out,_項) :- thread_create(項を実行して結果を返す(In, Out, _項),_,[]). 項を実行して結果を返す(In, Out, _項) :- 目標評価(In, Out, _項), '項を書き出し、空行を送信する'(Out,_項), ストリームを閉じる(In,Out).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでは、tcp/ip関係の組込述語がどのような順序で使われるかを見ていただきたい。'.」 / Twitter

引数の数

み。さんはTwitterを使っています 「本タワーの一つにErlangの本があって読んでいるけど、大学の時のPrologの記憶が意外と残っててびっくりする。「関数に引数の数をarityと呼ぶ」というのを見て、ああarityねみたいになったけど、よく考えたら他で使ったことない単語だ。」 / Twitter
み。さんはTwitterを使っています 「arityって英単語として関数が取る引数の数という意味があるみたいだけど、これまで全然見なかったのは単に自分が勉強した範囲でたまたま使ってないだけかな。日本語だったら引数の数って表現すればいいから使う必要がない説もある。」 / Twitter
み。さんはTwitterを使っています 「数学とか論理学の英語論文とか読んでる人には馴染みのある単語なのかもしれない。」 / Twitter

尾崎隆大さんはTwitterを使っています 「% Prolog 'そうです。誰もがすぐに覚えることができます。堀江さんが書かれたことしかありません。 つけ加えるならば単一化をしっかり学ぶこと。 バックトラックですが、これは確定節で考えてみること。 家族関係が例題によいのは、確定節(Prologの場合本体がないもの)が定義の主体になるからです。'.」 / Twitter
堀江 伸一さんはTwitterを使っています 「Prolog言語布教。 Prologは事実と規則と計算式の判断をAndで結んで、全部満たすものを深さ優先探索で探します。 幾つか候補がある時はバックトラックして全部探します。 何だか言葉で書くと難しそうですが、定番入門の家族関係のコードを自分で写経すればすぐわかります。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '一方、少し変なところもあります。昨日の書いたものを例にとります。 P(_) :- Q1(_),Q2(_),Q3(_). Q1の真偽が確定して、真なってから、Q2に進み、これも真なったらQ3へ、Q3も真になった場合、Pが真になります。 順番があります。あたかも時間的な順序があるかのように。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Q1-&gt;Q2-&gt;Q3の順ではなく、 Q3-&gt;Q1-&gt;Q2の順だってよいではないか?ということが当然あるわけです。 これは多分ですが、Prolog成立時に 「論理式がプログラム言語になる!!!」 という驚きが先行してあり、その時点でのプログラム言語の像が FORTRAN,ALGOL,PASCAL に代表されるものだった。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '乃ち基本的に書かれた順にコマンドは解決される。サブルーチンはそれが解決されてから次に移る。それがプログラムの像でした。 それに合わせることが優先された。 「Q1 and Q2 and Q3 を手続きとしてみればいいじゃないか」 そのためには、Q1が解決してQ2に進むという順序が必要だった。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '論理式の連言を手続きに見做そうというのだから無茶です。でも、その無茶が通るように、真を求める探索は深さ優先に固定されました。それをバックトラックしながら探す。 もちろん、当時の貧弱なメモリ資源の制約があり、やむを得ずこうなったという側面もあろうかとは思いますが。'.」 / Twitter

Prolog - Wikipedia
Haskellが数学だとすれば、Prologは国語だ
Prologで構文解析という昔話
構文解析
は、PrologでシンプルなC言語を実装していますか? - VoidCC
Prolog Programming: Language Processing (in Japanese)
Prolog Programming: Database (in Japanese)
#:g1
神戸 Swi-Prologを使ったエキスパートシステムのメタルールやメタインタープリタの作成方法 - 初心者入門サンプル
大学 Swi-Prolog を使用したエキスパート システムのメタルールおよびメタインタプリタの作成方法 / 逆引きリファレンス
Multi-Paradigm Language TAO
プロローグ:ビルトイン付きの「バニラ」メタインタプリタ - コードログ
Prolog: "Vanilla" metainterpreter with builtins - Stack Overflow
metaprogramming - Depth limited search in prolog (vanilla meta-interpreter) - Stack Overflow
Prolog Guide - Metainterpreters
A Couple of Meta-interpreters in Prolog
Prologによる簡単なモデリング例
Prolog入門
事実と質問
UTF-8からUnicodeへの変換
Prolog入門
Prolog - Wikipedia
bitlaw-jp
The birth of Prolog | The second ACM SIGPLAN conference on History of programming languages
Haskellが数学だとすれば、Prologは国語だ
prolog-link

Prolog の知識を外部の知識で自動生成

python 3.8.2でprologを動かしてみた - Qiita
Koji von IgarashiさんはTwitterを使っています 「PythonとPrologとの連携 https://t.co/QH7THYSFOE」 / Twitter
AZ-Prolog | トピック: PythonとPrologとの連携
Koji von IgarashiさんはTwitterを使っています 「PythonからSWI-Prologの機能を呼び出す https://t.co/EezGH0Xzx4」 / Twitter
Pythonを応用した活動の紹介 - Qiita
尾崎隆大さんはTwitterを使っています 「% Prolog 'Pythonで書かれたDeep Learningや機械学習のコードや結果を統制する為のプログラム言語としてはPrologは最適なものだろう。今後はこの需要に答えるためにPrologプログラマが大量に養成されることだろう。 これがPythonからPrologを呼び出す方向。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、どんな需要があって、PrologからPythonを呼びだすインターフェイスが欲しいのか。 Prologで知識を蓄えるのには実は膨大なコストが掛かる。これを外部の知識で自動生成したい。データマイニングや機械学習でこの部分をなんとかできないか。この要請はずっと前からある。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '2日前に示した https://t.co/fgJeNGnkL1 程度の易しいPrologプログラムはルール節も含めて、機械学習で自動生成できるのではないか。もしできるとなれば、Prologは現在の地平を一気に飛び抜けてしまう。'.」 / Twitter
nojiriko.asia/prolog/fuufu_dousei_mondai_20151219_utf8.html

単一化

ユニフィケーション - Wikipedia
Unification (computer science) - Wikipedia
Unification
2051-19.pdf
unify.pdf
ppl4-3.pdf
Microsoft PowerPoint - prolog-2007.ppt
ja
ppl4-3.pdf
proofsummit.pdf
CiNii 論文 -  A unification algorithm for typed λ-calculus
unify.pdf
機能単一化文法 - English translation – Linguee
7-6. Unification
ppl6-4.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、色々な言語がパターンマッチを言語の第一級構文として入れようとしている(入れている)のを見ると、言語の進化としてパターンマッチはやっぱり正解だったんだろうな。そこから、さらに双方向のパターンマッチとしてPrologのような単一化が入ったりしないだろうか。」 / Twitter
小さいMLの型推論機を書いた - TypoTypoTypo
画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
Efficient and Insightful Generalization
Masaki HaraさんはTwitterを使っています 「束縛変数を考慮した単一化は実はそんなに難しくないような気もしてきた。単一化変数に何回shiftしたかの情報も置いておくと、shiftよりも小さいde Bruijn indexの束縛変数とは単一化できないみたいなルールが作れる。単一化変数同士の場合はshiftの大きい方にあわせる」 / Twitter

パースの法則

パースの法則 - Wikipedia
Peirce's law - Wikipedia
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
ch.pdf
d.y.d.
popl90.pdf
HOSC-double-barrel.pdf
lambdamu.pdf

線形論理・π計算

線形論理

kenkyu0290100690.pdf
ゲーム意味論 線形論理 - Google 検索
PowerPoint プレゼンテーション - ppl-summer-2015.pdf
1525-7.pdf
msj07.dvi - msj07.pdf
001_16.pdf
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
π計算
El Pin AlさんはTwitterを使っています 「https://t.co/zTdBJTgXS8 『線形論理についての軽い調査』を公開しました」 / Twitter
linear_logic.pdf

アフィン型

Rustの所有権、ライフタイム、参照、型、しがらみ | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「アフィン型と線形型でどう違うのか分かってなかったけど線形型はリソースは正確に1回使われないといけないのに対してアフィン型は最大1回使われる、つまり使われないこともあるという違いらしい。」 / Twitter
ゆっち〜 (Yuichiro MUKAI)さんはTwitterを使っています 「@blackenedgold アフィン型とアフィン変換にてる」 / Twitter
κeenさんはTwitterを使っています 「@yucchiy_ 同じアフィンから来てると思うねー。」 / Twitter
アフィン写像 - Wikipedia
アフィン群 - Wikipedia
アフィン空間 - Wikipedia
AffineStateSpaceModel—Wolfram言語ドキュメント

線形論理 π計算

π計算

スライド

π計算
PI-calculsu
pi-calculus.ppt - pi-calculus.pdf
other-calculi.ppt - other-calculi.pdf
concurrency.ppt - concurrency.pdf

プロトコル記述

IPSJ-TPRO4308019.pdf

エージェント

CiNii 論文 -  π-計算を用いたエージェントのプランの形式化に関する研究
IPSJ-JNL4209002.pdf

分散オブジェクト

CiNii 論文 -  π計算からJavaへの変換系を用いた分散システム開発手法
IPSJ-Z67-1S-03.pdf
abst062.dvi - IPSJ-TPRO0101009.pdf
IPSJ-TPRO4711012.pdf

リアルタイム・オブジェクト

IPSJ-JNL4506002.pdf
CiNii 論文 -  時間付きπ計算における有限プロセスの時間動作抽象化 (計算機科学の理論とその応用 RIMS研究集会報告集)
CiNii 論文 -  π計算に対する時間拡張と合同的性質

GUI・視覚化

CiNii 論文 -  π計算に対する視覚化システム
CiNii 論文 -  π計算に基づくプログラミング言語Nepi のためのGUI機能
IPSJ-TPRO4512011.pdf

Haskell

k9694.pdf
IPSJ-TPRO4716003.pdf

仕様検証・論理体系

言い回し:数学的な証明

チェシャ猫さんはTwitterを使っています 「&gt; TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
The Amazon Builders' Library
チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter

IPSJ-TPRO4611006.pdf
CiNii 論文 -  線型論理・π-計算による構成的プログラミング・システム

k9694.pdf
pi calclusを学ぶにあたって参照したドキュメントとその紹介その一 - けいぞうのメモ帳
A Very Brief Introduction to the Pi-Calculus (in Japanese)
CiNii 論文 -  M-pi計算 : モジュール記述を持つ計算体系
CiNii 論文 -  π-計算の名前制限の名前生成による実装の正しさ
KAKEN — 研究課題をさがす | π計算の圏論的意味論と論理的解釈 (KAKENHI-PROJECT-19K20211)
06gun_03hen_05.pdf
Parallel and Distributed Systems: Winter Semester 2013
Foundation of Software: Winter Semester 2006
授業ホーム | 並行分散計算特論 | 情報科学研究科 | 名大の授業 (NU OCW)
54-2-3_特集_06-1.qxd - 0601.pdf

PowerPoint Presentation - DNaward.talk.jp.final.pdf
IPSJ-TPRO4611006.pdf
07gun_01hen_01.pdf
j-1-1.pdf
j-1-2.pdf
j-1-3.pdf
j-2-1.pdf
j-2-2.pdf
j-2-3.pdf
okada.pdf
Computersoftware Vol.20, No.5 - 20_502.pdf
コンピュータソフトウェア18巻1号 - 18_195.pdf
ipsjPRO01.pdf
21_74.pdf
30_2_83.pdf
001_16.pdf
print-3-phase.pdf
kenkyu0290100690.pdf
other-calculi.ppt - other-calculi.pdf
π計算 - 数学とプログラミングとくだらないこと
A Very Brief Introduction to the Pi-Calculus (in Japanese)
π計算
PPL7-4.pdf
IPSJ-TPRO4716003.pdf
resume8.pdf
resume9.pdf
process-pi-calculus - process-pi-calculus.pdf

線形論理 停止性

summer1.pdf
birth.dvi - birth.pdf
IPSJ-TPRO4611006.pdf
toyama-final.dvi - toyama-final.pdf
07gun_01hen_02.pdf
1875paper.pdf

時間付きπ計算

IPSJ-JNL4506002.pdf
1554-01.pdf

プルーフネット 線形論理

jssst01k.pdf
ipsjPRO00t.pdf
paper.pdf

英文

重点項目

Linearity and the pi-calculus | ACM Transactions on Programming Languages and Systems

An exact correspondence between a typed pi-calculus and polarised proof-nets - ScienceDirect
On the π-calculus and linear logic - ScienceDirect
Linear Logic Propositions as Session Types
Session Types as Intuitionistic Linear Propositions | SpringerLink
The π-calculus as a theory in linear logic: Preliminary results | SpringerLink
DROPS - Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication
Linear Logical Relations for Session-Based Concurrency | SpringerLink
A New Linear Logic for Deadlock-Free Session-Typed Processes | SpringerLink
On linear logic planning and concurrency - ScienceDirect
"The Pi-Calculus as a Theory in Linear Logic: Preliminary Results" by Dale Miller
The Pi-Calculus as a Theory in Linear Logic: Preliminary Results - fulltext.pdf

CiNii 論文

CiNii 論文 -  線形論理と論理プログラミング
CiNii 論文 -  線形論理に基づく計算モデルの理論概説
CiNii 論文 -  ペトリネットモデルに対する線形論理の完全性
CiNii 論文 -  型付きλ計算の古典線形論理の計算的解釈への埋め込み
CiNii 論文 -  名前通信プロセス計算の並行コンビネータ

Wikipedia

線形論理 - Wikipedia
シークエント計算 - Wikipedia
適切さの論理 - Wikipedia
ゲーム意味論 - Wikipedia
直観論理 - Wikipedia

GC撲滅への道 - GC Advent Calendar - miura1729の日記
summer1.pdf
birth.dvi
kenkyu0290100690.pdf
Brief introduction to linear logic
ipsjPRO00t.pdf
ja
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記
「線形論理」の検索結果一覧 - 檜山正幸のキマイラ飼育記
線形論理。 - いもあらい。
Ryo HaruyamaさんはTwitterを使っています 「中止になった修論中間発表のスライド等です。内容は線型論理の相意味論についてです。 https://t.co/p00n1OEuOe」 / Twitter
rharuyama/soundness-for-linear-logic-regarding-phase-semantics: 修士論文中間発表用提出物
Ryo HaruyamaさんはTwitterを使っています 「ググると出てくる照井先生の「線型論理の誕生」が二種類[1][2]あって、内容が少し違うのだけど、後者[2]の方の参考文献の紹介が参考になると思う。 [1]: https://t.co/Th5lHpqVpg [2]: https://t.co/M6zZkZPlJN」 / Twitter
birth.dvi
1525-7.pdf
Ryo HaruyamaさんはTwitterを使っています 「やっぱり証明をちゃんとやろうとするとGirardの1987年の論文[3]が良いですかね。The Blind Spotという本もあるけど、1章の哲学パートは難しそうなので、頭から読むものではないかもしれない。形式的な部分だけなら参考になる。 [3]: https://t.co/QMwFZb3TXP」 / Twitter
Linear logic - ScienceDirect
ko0307.pdf
62_0621115.pdf
とりとめのない GHC 線形型メモ - 趣味はデバッグ……
El Pin AlさんはTwitterを使っています 「線形論理において、!はコモナドで各!Aはコモノイドであり、?はモナドで各?Aはモノイドである。一方、uniqueness typeにおける、non-uniqueness modality ∘はモナドであり各∘Aはコモノイドだという」 / Twitter

様相論理・時相論理

線形論理と時相論理

情報学広場:情報処理学会電子図書館
30_2_83.pdf
jssst01k.pdf
PowerPoint Presentation - modal-temporal.pdf
B-028.pdf
1966paper.pdf
lambdaCB-PPL05.pdf
ai_03_001.pdf
07gun_01hen_02.pdf

制約充足問題・LTL

リアクティブシステム仕様を実現可能にするための環境制約の抽出
平均利得時間論理とそれを用いた検証・最適化手法
充足可能性判定を利用したモデル検査
UMLに基づくRTOS設計検証のための環境自動生成法
Formal Method Europe (FME) 2001 参加報告
抽象化を用いた検証ツール
制御システム分野におけるモデル検査の応用
IEICE Trans - モデル検査の実行順序制約の図式表現と試験ケースの自動生成
IEICE Trans - 記号モデル検査によるスマートオブジェクトの近接連携シナリオの効率的な検証
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
千葉商科大学学術リポジトリ
http://t2r2.star.titech.ac.jp/rrws/file/CTT100667201/ATD100000413/
1-FPAI107-20180807-B801_01-06.pdf
2-FPAI101-20160807-B504_07-14.pdf
Honbun-t3606u021.pdf
KJ00005931319.pdf
tanabe_dsw06.pdf
147691361.pdf
235184037.pdf
3635paper.pdf
90001267.pdf
ippan4-5.pdf
ppl9-2.pdf
paper.pdf
紀要34号片山3(校了).indd - KJ00010099963.pdf

時相論理

時相論理・余帰納的手法

余帰納的手法

テスト集合余帰納法を用いた振舞等式の検証
無限の入出力を行う関数型プログラムの K正規化の形式的検証
第34回大会受賞者の声
帰納法と余帰納法にまつわる伝承 - 秋津早苗の備忘録
双対的にみる余帰納法 1.イントロ - Qiita
余帰納法についての質問と回答 - Togetter
情報学広場:情報処理学会電子図書館
始代数 - Wikipedia
余論理式,再帰型,循環的言語 - Coformulas-recursive-type-circular-language.pdf
general13-1.pdf
<30392D91E6343589F191E589EF838F815B834E835683878362837695F18D902E706466> - 46_85.pdf
ws1_2.pdf
2019-5-4-4.pdf
cs2019hoshino.pdf
algPLJapaneseJan2014.pdf
4.pdf

井山梃子歴史館さんはTwitterを使っています 「時相論理」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと余帰納的手法がよく効きそう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと基本的にはsafety, liveness, fairnessでググればいいかな」 / Twitter
ogiwaraさんはTwitterを使っています 「@sanjutsu_yu 他二つはオートマトンだけで説明できるのかな?と思い…」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「@designpatterngf Deadlockは項書き換え系において、受理状態でない状態で書き換え規則が適用できなくなった…とかで定義できそう ほかはぼくがそもそもどんなものか知らないので何とも…」 / Twitter
ogiwaraさんはTwitterを使っています 「これはObstruct freeとLock freeとWait freeの区別にもつながる」 / Twitter
ogiwaraさんはTwitterを使っています 「DeadlockとLivelockとStarvationをどう形式的に定義できますか?って話になって」 / Twitter
ogiwaraさんはTwitterを使っています 「@__pandaman64__ どこかに参考になる文献ありますか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf わからん…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf https://t.co/SxWhz6oZh2 SEPでも読む…?入門に良いかは分からない」 / Twitter
Temporal Logic (Stanford Encyclopedia of Philosophy)

時相論理 - Wikipedia
線形時相論理 - Wikipedia
計算木論理 - Wikipedia
様相論理 - Wikipedia
クリプキ・モデル - Wikipedia
可能世界論 - Wikipedia
Modal μ-calculus - Wikipedia
model-checking.ppt - model-checking.pdf
プロセス論理 時間 - Google 検索
μ計算 - Google 検索
12gun_02hen_07.pdf
0902-10.pdf
自作言語の型システムの話 - Qiita
オートマトンの概要
時相論理 排他制御 - Google 検索
時相論理 ベクタークロック - Google 検索
時相論理 ベクトルタイムスタンプ - Google 検索
時相論理 デッドロック - Google 検索
時相論理 ロック - Google 検索
時相論理 入門 - Google 検索
時相論理 モデル検査 - Google 検索
ロックコンボイ - Google 検索
レースコンディション - Google 検索
レースコンディション 時相論理 - Google 検索
ロックコンボイ 時相論理 - Google 検索

時相論理 オートマトン ペトリネット

論理式とオートマトン

kinabaさんはTwitterを使っています 「十進数どうしの足し算は定数サイズの記憶領域でできる(普通に筆算すれば繰上りを覚えて1桁ずつ出すだけ)。大小比較とかも。けど掛算は無理。でもこれは、十進表記という表記法が悪いせいかもしれない。色んな実数を表現できて色々な演算も定数メモリな数の表記法を探そう、という分野がありまして」 / Twitter
病気の美少女さんはTwitterを使っています 「kinaba さんが POPL モードなので追いかけよう。その前にこれ、まずツイートの内容がわからなかったので精進せねば…いやプログラマじゃないんですがもう…」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/KdI78F9Bqw 1/2と√3を含む加算と乗算の半環の元(実数)の文字列表現で、加算と大小比較と任意の定数倍がオートマトンで表現可能なのを見つけるよという話。実際1/2と√3に限らずもうちょい色々できる。この辺の話どこまで既知なのかわからんな」 / Twitter
Ordered Semiautomatic Rings with Applications to Geometry | SpringerLink
kinabaさんはTwitterを使っています 「定数記憶領域で書ける=オートマトンで書けるということで、すると、そういう表記法がある数と演算に関する論理式はオートマトンに変換して、マッチする文字列がある⇔論理式が真みたいにできるので、論理式の静的検証ができて嬉しい。件の論文は√3と1/2が書けるので30°回転が登場する幾何の検証とか」 / Twitter

CiNii 論文 -  有限オートマトンと表現等価な正則時相論理とその論理設計検証への応用
0902-10.pdf
ja
線形時相論理 - Wikipedia
時相論理 - Wikipedia
PowerPoint Presentation
hagiya-jssst03.pdf
オートマトン
Microsoft PowerPoint - RS2010-spin2.pptx
研究会 - 線形時相論理式からイベントベースオートマトンへの変換を利用したペトリネット検証ツールHiPS向けon-the-flyモデル検査器
07gun_01hen_03.pdf
modelcheck.pdf
jssst05.pdf
techrep.dvi
ai_03_001.pdf
Microsoft PowerPoint - 20110911_swest11.ppt
モデル検査ツールSpinによる組込みソフトウェアの検証 受講メモ
10-6-B4-4.pdf
afreeSat050215.pdf
_pdf
CiNii 論文 -  線形時相論理による組込みシステムの仕様記述とペトリネットによる実装法 (情報システム研究会 数理的アプローチと情報システム、その他一般)
17th_nagata.pdf
Dr.Uchihira's PhD Thesis
時相論理 - Wikipedia
lambdaCB-PPL05.pdf
59160283.pdf

様相論理

IPSJ-MGN300607.pdf
14_61.pdf
Introduction_to_Modal_Logic.pdf
afreeSat050215.pdf
入門・様相論理(第1回目)|山口尚|note
入門・様相論理(第2回目)|山口尚|note
入門・様相論理(第3回目)|山口尚|note
入門・様相論理(第4回目)|山口尚|note
入門・様相論理(第5回目)|山口尚|note
入門・様相論理(第6回目)|山口尚|note
入門・様相論理(第7回目)|山口尚|note
入門・様相論理(第8回目)|山口尚|note

ゲーデル変換 様相論理 古典論理

直観主義論理 - Wikipedia
ja
Math club public
no16
_pdf
(PDF) カリー・ハワード対応と直観主義論理の意味論入門 | Shunsuke Yatabe - Academia.edu
第13回「不完全性定理」
1525-7.pdf
1532jabstract.pdf
bookA4.dvi
計算機向きの様相論理の公理化
fom-mu-with-func.dvi
1602-11.pdf
Microsoft Word - 評価センター関先生・奨励研究_23C050_
afreeSat050215.pdf
論理学FAQのブログ
Substructural Negations | The Australasian Journal of Logic
様相演算子としての二重否定 - 論理学FAQのブログ
様相を「ならば」と「かつ」で定義する - 論理学FAQのブログ
20190527.pdf | Powered by Box
直観主義論理を理解した(してない) - Qiita

5分でハイデガー『存在と時間』|山口尚|note
チェシャ猫さんはTwitterを使っています 「何らかの充足可能性問題になりそうだというのはわかるけど、なんで LTL になるんだろ?」 / Twitter
Tomonori SHINDOHさんはTwitterを使っています 「形式手法(モデル検査)などで使う、時相論理のLTL記述からロボットアームの動作を生成する技術について日経Robotics 最新号で書きました 《日経Robotics》NEC、形式的記号論理でロボットが行動を「考える」技術、時相論理のLTLから知的な把持手順生成 https://t.co/3WGQLcxcAX」 / Twitter
NEC、形式的記号論理でロボットが行動を「考える」技術 | 日経クロステック(xTECH)
様相論理 カリーハワード - Google 検索
様相論理 証明 - Google 検索
様相論理 証明可能性 - Google 検索
staged computation - Google 検索
staged computation - Google 検索
monadic types for effects - Google 検索
monadic types for effects - Google 検索
情報学広場:情報処理学会電子図書館
1539paper.pdf
正規様相論理のためのCurry-Howard対応

ループ・再帰

ループを再帰関数にする考え方 - Qiita
R:whileループを再帰に変換する - 初心者向けチュートリアル
JavaScriptでループ関数を再帰関数に変換する - 初心者向けチュートリアル
ppl8-2.pdf
相互に定義された末尾再帰
授業資料/09 - Experimental Mathematics 1 (2010)
cpp-intro/008-loop.md at master · EzoeRyou/cpp-intro

意味論・直観主義

圏論

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうのに「関数型の基礎」というタイトルを付けるのは全力で止めていただきたいのだが、説得力のあるよい例えはないものか。 / 1件のコメント https://t.co/lv2uzQCf9k “【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita” https://t.co/YlfvhA1JdH」 / Twitter
【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そりゃ遠い繋がりはあるけど、遠すぎるんだよなぁ。強いていうなら「プログラミングの基礎」だよ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「うーん、やっぱたとえ話はこういうときよくないな。 そもそも例えが適切かどうかで話が発散してしまう。」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「違います &gt; 結論からいうと圏は集合です. https://t.co/DHGlZvpIWG」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏自体はほとんど集合を意識した構造を持たないので、圏を集合というのは語弊が大き過ぎる(cf. 集合圏の性質)。 圏は一般にかなりデカいので、扱いやすい小ささに収めるために Grothendieck universe を持ち出して議論してるという印象だった。」 / Twitter
⿻あいや⿻ 技術書執筆「せつラボ」さんはTwitterを使っています 「大きい圏(対象の集合(と|か)社の集合がユニバースな圏)の話かー。 ユニバースが集合なのか集合でないかという問題に依存しそう🤔✨ (明示的に言及されてない限り、ユニバースは集合ではない……という曖昧な感覚があります)」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏論はプログラミングという営みからも遠くて、プログラミング言語の意味論の基礎の基礎という感じがしますね」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏だけ使うなら圏論は要らない?」 / Twitter
[2010.05167] A Categorical Programming Language
圏 論 に よ る プログラミング と 論 理
20200325.pdf
8_1_34.pdf

表示的意味論

圏論

トビ🍷ペンギン村さんはTwitterを使っています 「圏論、無秩序な世界に”特定のルール”を課すことで、”同じ構造とみなせる”モノ達ができ、それによって”同一のルールで扱える”、って点ではプログラミング言語における”型”や”プロトコル”とかと似たようなモチベーションなんだろうなって思った。 いや、知らんけど。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「言い換えると、すべての数値に対応する関数を f(1), f(2), f(3) ・・・って全部定義するより、 "Int"って型を用意して f(Int) な関数を1つ用意するようにしたいとか、List&lt;Int&gt;, List&lt;Bool&gt;, List&lt;String&gt; って個別のリストを用意するより、 "List&lt;Element&gt;" を1つ定義するようにしたい、とかとか。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「たぶん、圏論はその扱う対象の抽象度が極めて高いから、難解に感じるだけで、モチベーション自体は極めてシンプルなんだと思う、”同じようにみなせるようにしたい”っていう。 そういう意味では、”ポリモーフィズム”みたいなものだ、って説明もありなのかもしれない。OOP ユーザには。」 / Twitter
Kosuke YOSHIMOTOさんはTwitterを使っています 「@tobi462 Haskell、モナドのインスタンスになれば、do記法を使って「命令型で記述ができる」ようになるっていう仕組みが不思議ですよね。(do記法を実現する方法としてモナドが導入されたのでしょうが。)」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「@ysn551 んー、私も詳しくないので断言は避けたいのですが、”モナド”という文脈を保って計算する仕組みが先に存在して、バインド関数?(==&gt;)のシンタックスシュガーとして”do記法”が用意された、という順ではないですかね・・・? Haskell はモナドがなければ I/O すら扱えないわけですし。」 / Twitter

圏論と型付きラムダ計算

PDF

RelevantTheories
5.pdf
H28-hasegawa.pdf
wakimoto3.pdf
intro.pdf
https://www.sci.kagoshima-u.ac.jp/mcs/archive/116-abst.html
20500010 研究成果報告書
jabstract.pdf
052.pdf
2009w202.pdf

職業プログラマが圏論をスルーすべき理由
圏論とプログラミング読書会#2 資料
圏 論 に よ る プログラミング と 論 理
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
デザイナーに憧れて: 型付きラムダ計算を関数型プログラミング言語と見做す
Modegramming Style: 関数型プログラミング技術マップ2015
なぜ、プログラムは書けるのか:計算論からゴールによる様相論理、意味論まで俯瞰してみる - ウィリアムのいたずらの開発?日記
typed lambda calculus型付きラムダ計算 ←・← (型を持たない「ラムダ計算」を改良したもの?! ・・・) | 隠れ家 - 楽天ブログ
yuwki0131-blog: ラムダ計算の使い方
技術者/プログラマのためのラムダ計算、論理、圏第2回
2017年振り返り - The curse of λ

d.y.d.
d.y.d.
katsumata.pdf
並列論理和の続き - sumiiのブログ
表示的意味論に基づくパターンマッチングコンパイル方式の構築と実装
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「圏論の「圏」はなんで「圏」なんだろうとずっと思ってたけど可換図式が輪っかを描くからだってことに最近やっと気づいたよ」 / Twitter
nkamlさんはTwitterを使っています 「型付きラムダ計算とカルテジアン閉圏の対応は理解できた(と思う)ので他の例を見てみたいなど...」 / Twitter
OddieさんはTwitterを使っています 「型付きラムダ計算から得られる圏C(λ_→)は基底型(基本的なデータ型のこと)の集合Xから自由生成されたカルテジアン閉圏になっており、任意のカルテジアン閉圏Cがに対し基底型の対応する対象を指定することで、カルテジアン閉圏の構造を保つ関手C(λ_→)→Cが唯一つ決まる(ラムダ計算の意味論)」 / Twitter
https://twitter.com/shinji_kono/status/1307988467096326144

ホーア論理・意味論

Incorrectness Logic

Masahiro SakaiさんはTwitterを使っています 「Incorrectness Logic https://t.co/DUWxMRaaeT ホーア論理は「QはPのもとでのCの実行後の状態の過大近似である」という関係 {P}C{Q} の導出に関する体系なのに対して、Qが過大近似ではなく過小近似である [P]C[Q] という関係の導出に関する体系 incorrectness logic の提案。 #POPL2020」 / Twitter
Incorrectness logic | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「ホーア論理(correctness logic)は不具合が存在しないことを証明する体系なのに対し、この incorrectness logic は具体的な(特に不具合を表す)実行例の存在を証明する体系になっていて、テスト、記号実行、バグ発見ツール等で使われている概念を捉えている。 動画: https://t.co/P4ef3AwSuk #POPL2020」 / Twitter
Incorrectness Logic - YouTube
Masahiro SakaiさんはTwitterを使っています 「過大近似と過小近似で双対的なんだけど、意外と直観が 働かなくて、でもテスト、記号実行、バグ発見ツール等で使われている概念をうまく捉えることができるよう形式化されていて、面白いな。 #POPL2020」 / Twitter

main.pdf

ミーリーオートマトン・意味論

2019-5-4-4.pdf
ムーアマシンとミーリーマシン - Google 検索

直観主義論理

summer2013.dvi - summer2013.pdf
jms.dvi - jms.pdf
cm_of_mell.pdf
直観主義論理入門 - resume.pdf

直観主義論理 停止性

summer2013.dvi - summer2013.pdf
直観主義論理 - Wikipedia
4.pdf
40_1.pdf
62_0621115.pdf
msj07.dvi - msj07.pdf
ko0307.pdf
ppl2020.pdf
winter05.pdf

証明支援系・直観主義論理・圏論

Shinji KonoさんはTwitterを使っています 「最近の学生は定理証明支援系から数学に入る。それはつまり圏論から入るってこと。Agdaがお勧めだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「最近はすっかり 排中律込みの一階述語論理? だめだめ、あんなの。やめとけ。 って気分だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学生の頃は「選択公理使わないとどうなんですか」ってな感じで、吉田先生が「微分方程式の解の存在とかが出ませんね」で そんなのいらね だったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「今は排中律=選択公理で、非構成的な仮定の一つだというくらいの気分なので いや、別にいいから、どんどん仮定して使えよ って感じ。排中律でも選択公理でも。どこで使ったかがわかるなら問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして、排中律の証明があると思った瞬間に矛盾。それは不完全性定理に当たると思っても良いし、圏論的な問題だと思っても良い。あくまでも 仮定 だとすれば問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律を完全に排除して議論するのはAgdaならそうなるが、煩雑であることも確か。常に二重否定がかかってるみたいな逃げ道もある。つまり排中律を気にせず議論して、あとから、どこに非構成的な推論があるか調べても良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので直観主義論理で微分方程式の解の存在が証明できないというのは間違いで、非構成的な仮定から存在を導くことはできる。そもそも非構成的な命題なんだから、それで良い。だから 数学は全部、直観主義論理で良い ってことね。非構成的な仮定/公理も躊躇なく導入して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律込みだと非構成的な仮定が曖昧で探す羽目になる。例えばドモルガン。片方向が非構成的。高階論理でないと公理の有限性とかに気を使うことになる。それは時間の無駄。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、圏の圏とかはlevelの抽象化が必要なので、ちゃんとはできないらしい。このlevelがhigher orderってことなのだが、圏論本には出てこない。Agda/Coqの問題。Level合わせは結構めんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「公理はえてして矛盾するのだが、解消は矛盾した公理のループを切れば良いのでわりとたやすい。切った部分は構成的な推論として正しい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、うちの学生を見てるとあんまりわかってない感はあるよな。自分でも学生の頃に学んだLKは面白いなくらいだったので、その感じはわかる。」 / Twitter

意味

Sho YokoiさんはTwitterを使っています 「何かを知り何かを作ろうとする諸科学はむしろ意味(形式的な表現から現実世界や興味の対象への対応付け;解釈)に強く興味を持っており意味をできるだけ切り捨てて形式的な体系を追い求める数学が特例的という状況で相手方に discipline を強要してしまった、というよく見る悲しい案件に見える。」 / Twitter
Sho YokoiさんはTwitterを使っています 「数理統計はきっとつらい分野で、人間の活動や科学の言語として用いられるときは意味の問題は不可分なのに、一見数学なので「意味を持ち込むな」マンが登場してしまうのかもしれない。 (勿論数学として深められるのは良いことだと思う。論理学が人の論理的推論から離陸して新しい世界を作ったように)」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi 自分は意味を持ち込むな派ですが,解釈が大事だからこそ解釈をする回数や範囲を絞るべきだと思っています.数式と解釈の変換(語の対応)には十分気を使うべきで,件のプロレスなど既存の語の定義を日常語からの類推に置き換えている時点で語るに落ちている・・・」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi AICが未来を予測している,みたいな話もそうなんですが,(伝言ゲームは必ず失敗するので)情報はできるだけ正確な形でだけ変換して最後にだけ解釈するのがよさそうに思うところです・・・」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門外の話だと書き放題だな わっはっは(死」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter

確率論理

確率論理 - Wikipedia
ファジィ論理 - Wikipedia
砂山のパラドックス - Wikipedia
誤った二分法 - Wikipedia
ラフ集合 - Wikipedia
<30312D88CB978A985F95B62D927C93E090F290E690B62E706466>
論理的推論への確率論的アプローチ
反証主義に対してAyer50) やLakatos51) が繰り広げた批判の一つとして取り上げられたり,またそれらに答えるSir Karl Popperの議論2-4)でも注意されている事ではあるが,彼らの議論を待つまでもなく13),確率的言明はどの様な結
スライド 1
07.pdf

非古典論理

非単調論理 - Wikipedia
自己認識論理 - Wikipedia
無限論理 - Wikipedia
矛盾許容論理 - Wikipedia
中間論理 - Wikipedia
多値論理 - Wikipedia
クリプキ・モデル - Wikipedia

一階述語論理 一階命題論理 変換

一階述語論理 一階命題論理 変換 - Google 検索
数理言語 - ke-8-slide.pdf
知識工学 - ke.pdf
nyumon_logic.pdf
IBMが深層学習と記号論理をつなぐ技術、画像の内容を1階述語論理に変換しソルバで解く | 日経Robotics(日経ロボティクス)
Introduction to Mathematical Logic
1.dvi - 1.pdf
4.dvi - 4.pdf
21_622.pdf
CiNii 論文 -  Unsupervised Grounding of Plannable First-Order Logic Representation from Images
Microsoft PowerPoint - fol.ppt - fol.pdf

blog

含意の真理表はどうして決まるのか : tnomuraのブログ
論理包含の定義に関する違和感について - 七誌の開発日記
フィッチスタイルの自然演繹のやり方 - Yabu.log
タブローの威力 - 誰にも見えないブログ
論理学をつくる練習問題80(2)解答 - Yabu.log
今日の論理学:極大無矛盾集合に成り立つ5つの同値関係の証明 - 誰にも見えないブログ
今日の論理学:極大無矛盾集合の充足可能性補助定理の証明~APLの完全性証明 - 誰にも見えないブログ
今日の論理学:ハゲのパラドックス,連鎖推論のパラドックス,誤植など - 誰にも見えないブログ
今日の論理学:数学的プラトニズム、直観主義論理、排中律の廃止、NJ、誤植など - 誰にも見えないブログ
今日の論理学:直観主義論理続き,対偶の部分的な成立,排中律/背理法/二重否定除去の相互変換 - 誰にも見えないブログ
Avendia

Qiita

Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita
テクニクシャンマンさんはTwitterを使っています 「Scalaで論理体系を作る話 - 2. 命題論理その2 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強力な論理である古典論理… https://t.co/OnVeM2Od5F」 / Twitter
qiitascalaさんはTwitterを使っています 「https://t.co/jTuF0mz5cf Scalaで論理体系を作る話 - 2. 命題論理その2 #scala 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強」 / Twitter
Scalaで論理体系を作る話 - 2. 命題論理その2 - Qiita
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita

Twitter

第一不完全性定理

ytakanoさんはTwitterを使っています 「第一不完全性定理 https://t.co/IL1yzAC26O」 / Twitter
ytakanoさんはTwitterを使っています 「S式をつくってevalしていくとゲーデル文Gができると言う寸法か」 / Twitter
ytakanoさんはTwitterを使っています 「こっちがいいかな。cadrとevalを繰り返すと無限に同じ式が出てくる。 https://t.co/Ubbe1FZOvp」 / Twitter
ytakanoさんはTwitterを使っています 「Provableの綴りまちがってたw」 / Twitter
ytakanoさんはTwitterを使っています 「S式はデータでありプログラムであるからできるのか」 / Twitter
ytakanoさんはTwitterを使っています 「Schemeで実装する不動点と第一不完全性定理、もう少し綺麗にできた。 https://t.co/yv0MZIbVgD」 / Twitter
ytakanoさんはTwitterを使っています 「不完全性定理、ペアノ算術やらをすっ飛ばしても、Lispと嘘つきのパラドックスが理解できると、重要な点は理解出来る事に気がついた。証明まではできないけれど。」 / Twitter
Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「ゲーデル文があるところからなら、直感的に理解できるな。」 / Twitter

論理と型

Shinji KonoさんはTwitterを使っています 「型=論理式、λ項=証明で、仕様記述は証明を含んでる。 仕様を型なしλ計算で書くと矛盾する可能性はある。 型のない仕様記述が何かってのは面白い問いだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「testing typeless specification by type evaluation かな。まぁ、Unification だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは型なし。しかし、一階述語論理。それが面白いところ。型は一階述語論理には含まれてない。appendが書けるというのはPrologのアイデアから10年かかってる。appendの正しい仕様を書けなかったってこと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型とは何かってのに戻ってくるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「仕様記述は論理式なので、その変数は単なる記号。その中身にはあらゆる可能な値が入る。値とは、スコーレム関数を含む関数と値の任意の組だな。エルブランモデルの値ね。型がないとはそういうこと。型なしλ計算。Prolog」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は一階述語論理で展開するから型がない。集合ってなんでも入るからな。なので x∈A とかを毎回書く必要がある。それが型。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理は型付λ計算を使って、命題は型、推論は型付λ項、真偽は証明で決める。ベースになる型 Set にはレベルが付く。逆説的だがSetには型はないとも言える。レベル以外の型はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので型のない仕様記述とは、一階述語論理のことだろうな。それに証明を付けると仕様記述が型になる。恒真あるいは充足可能な一階述語論理式は正しい型を持つ感じか。それを評価/evalとみなせるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaで、a : ? みたいにして論理式を書くことはできる。ただし、関数型 f : ? → ? は書かないと f a とか書けない。その状態で論理式を書くと型のない仕様記述に見える。」 / Twitter
Shinji KonoさんはTwitterを使っています 「?の代わりにSetと書くと通るのかな。それはないな。全部?で型検査することはできる。その時点でも型のエラーは出る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数の継続は関数のopenな部分になるのだが、データ型にも最後にSetを入れてopenなデータ構造にするというのを考えたことがある。その部分にメタな計算が入る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの?は便利なのでプログラミング言語にも欲しいな。IDEが持つべき機能かも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「誰が考えたんだろ。初出は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は数学のC言語というのを提唱してる。集合のアドレスは取れて整列できるのだが、そのアドレスにある集合に何が入っているかは不明。SEGVあり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論はもちろん関数型言語」 / Twitter

ホーア論理

uint256_tさんはTwitterを使っています 「ホーア論理って実用的(?)に使われてるんですか (この問いが意味あるものなのかすらわかっていない)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t Eiffelにホーア論理にそって、事前条件、事後条件、不変条件何かを指定してチェックできるんですけどね。そういうの流行らないですね。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 面白そうなので調べています」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t 有用だと思うんですけどね。型を書くのすら避けたい私にはいらないものですけど。それでも、assertを一杯入れるのはやろうとしたことがある。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 そういうことがコンパイラ基盤レベルでできると面白いかなと思ったのです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t それ面白い。コード生成の正当性のチェックとか事前条件・事後条件だけ指定してコードを推定させるとか夢が広がる」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 絶対に便利だと思うので頑張って実装します」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t 実用面だと、既存の重要なプログラムの verification などの話は一時期ぼちぼち耳にしました。テクニックとしては、coq などでは素朴な state monad が使い物にならないので hoare state moad と呼ばれる物を使ったり等があります。」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t hoare state monad もそのままの定義で使うと transformer(https://t.co/9sHABxeibp)が必要になったりするので、問題領域にあわせた独自の monad を作ることが多い、らしい、です。 software foundations(https://t.co/vgGPfKiz7x) でも扱われています。coq で記述する際は参考になると思います。」 / Twitter
IPSJ-TPRO0502002.pdf
Software Foundations

古典論理

古典論理 直観主義論理 排中律 - Google 検索
ytbさんはTwitterを使っています 「論理学を勉強しだした学生で、「真理表が難しい」と嘆く人結構多いじゃないですか。 最初は奇異に聞こえるんです、だってあんな表、小学生でも覚えることができるじゃないですか。 でも、そもそもあの表は何を表現し、なぜあの値に決まったのか、って誰も何も説明しないし、そりゃ分からないですよね」 / Twitter
ytbさんはTwitterを使っています 「入門的な教科書って日常言語との自然な類推で論理的概念を導入しますよね。初めはいいんです。 まず「真理値は1/0の値で、これは日常言語で『真』と『偽』を表します」って言うじゃないですか。一見自然に見えます。 実はここで古典論理を密輸していて、後で躓く原因になるんですよね。」 / Twitter
ytbさんはTwitterを使っています 「「かつ」 ∧ と「または」∨は問題がなくて、個々で躓く人はあまりいないと思います。「AかつB」が真なのは、Aが真で同時にBが真のときだし、その逆も成り立つ。そりゃそうだ、という感じで。 否定「でない」¬も実はきな臭いんですが、これも一応自然に見えます。」 / Twitter
ytbさんはTwitterを使っています 「だけど、「ならば」⇒、問題はコレなんですよ。 A, Bが真ならば「A⇒Bは真」、つまり「草が緑ならば安倍晋三は内閣総理大臣である」が真、明らかに変に見えます。さらにAが偽の時「A⇒Bは真」、「今日が晴れていれば今日東京オリンピックが開催された」、おかしいですよね。」 / Twitter
ytbさんはTwitterを使っています 「これ、排中律を仮定すると、直観主義論理上、A⇒Bと¬A∨Bが同値になってしまうために起こる現象で、日常的な「ならば」と意味的に大きくかけ離れているように見えるんですよ。 なんとなく自然言語の意味の類推で真理表を導入するると、ここで分からなくなるのではないかと思います。」 / Twitter
ytbさんはTwitterを使っています 「だから、私は、古典論理を教える時は、 ①自然言語における推論と関係がない、純粋な代数系のひとつとして教える ②証明論的に、直観主義論理+(便利な)排中律という体系として教える(でも変なことも起きるのは我慢してと言う) のどちらかにしないと概念的な混乱を招くと思うんです。」 / Twitter
ytbさんはTwitterを使っています 「そうですね、「または」というのは命題論理において実はあまり重要な結合子ではないので、たんなる言葉の定義の問題のように見えるからじゃないでしょうか。 一方、「ならば」はまさしく論理的推論の今回を表す言葉で、その意味のブレは看過できないからではないのだと思います。」 / Twitter
dorompaさんはTwitterを使っています 「@ytb_at_twt A∨Bも自然言語の排他的論理和とは違いますけど、初学者でもそれほど違和感なく理解できて、A⇒Bの方が圧倒的に誤解が多いのはなぜなんでしょう。」 / Twitter
ytbさんはTwitterを使っています 「今回→根幹」 / Twitter
Masaki HagaさんはTwitterを使っています 「真理値表は古典命題論理の意味(解釈)を定義しているわけだけれど,その意味の意味がわからないですよね」 / Twitter
Masaki HagaさんはTwitterを使っています 「日常生活で同じ記号(言葉)がもっと曖昧で異なる意味を持っているから「とりあえず古典論理ではこういう意味だよ」とか言われても困ってしまうんだろうか.なんで「りんご」はりんごって意味なんだろうとか普段過ごしてても思わないわけだし.」 / Twitter
Masaki HagaさんはTwitterを使っています 「いまは便宜上「りんご」と言われたら,現在目の前にあるこのりんごのことを意味することとします(現在スーパーに売られているりんごや,あなたが昨日食べたりんごは「りんご」ではありません)とか言われたらそりゃ「は?」ってなりますよね.」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈⇒だけの論理〉 古典論理において、 P∧Q ⇔ ¬(P⇒¬Q) P∨Q ⇔ ¬P⇒Q が成り立つため、命題論理の命題は、演算子を⇒と¬だけにしても表現できる。」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(パースの法則)[古典論理] ((P→Q)→P)→P ※この公理は排中律と同値である。」 / Twitter
インターネットさんはTwitterを使っています 「古典論理の意味論の方で真理値を集合(ただしこのときクリプキフレーム上の順序の入った集合でも位相空間の開集合でもなく一般の集合)とすることもできて, 集合演算はブール代数になるので2値に帰着できる (話がとっ散らかってしまった)」 / Twitter
ukikagiさんはTwitterを使っています 「「古典論理(や直観主義論理)では仮定が偽の命題は自明に真だから反実仮想的な言明には意味がない」というのはナンセンスで、単にこれらの論理が自然言語のそのような側面を捉えられていない(あるいは意図的に削ぎ落としている)だけである」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「そういえば、僕はほとんど直観論理といっても意味論の方はやったことないんだけど、「Heyting代数意味論ぐらいは多少知っとくと良いよなあ」って感じで考えたら少し面白い直観が生えて、 古典論理だと二重否定をつけても「情報」が減らないからLKの右と左だけで議論できて矛盾(空シーケント)に対しての」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「強さを考えれば良くて、それがまさに「極大充足可能集合」というアイデアな訳だけど、直観論理はそういうことができなず「右シーケントを壊さない極大な左シーケント」みたいなのをシーケントごとに用意しなきゃいけないという風に考えると、妥当ですかね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「s/壊さない/示さない」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「ex falso quodlibet 矛盾から任意の論理式が帰結されるという爆発律は、自明ではない気がします。 少なくとも、僕にとってはあまり納得感が無いのですが、皆さんはこれを素直に受け入れているのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「尤もらしく思える二重否定除去を認めると、爆発律が導かれてしまいます。 古典論理では爆発律を認めざるを得ないし、直観主義論理も(納得できるかは別にして)爆発律を推論規則としています。 ¬や⊥の解釈、またはそれらに関する推論規則を変えることで、納得感のある説明ができるのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「二重否定除去 ⇒ 納得できる ハイチュウ律 ⇒ 美味しそう もとい、排中律 ⇒ 納得できるけど、成り立たないのもアリだと思う 爆発律 ⇒ いまいち納得できない」 / Twitter
みくぺ ⍤⃝さんはTwitterを使っています 「@The_Maya_Hiker 私もすごい違和感あった どうやら、直観主義論理での証明図の''¬''と''⊥''がそれぞれ 最小論理での証明図(画像)の''→M''と''M''と入れ替えられるみたいで、 ¬の導入と¬の除去はそれぞれ→の導入と→の除去のひとつだと考えられる、というのが前原さんの論理学の本の付録で紹介されてた https://t.co/ImuMIeAgZe」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「@Cubism_FM ありがとうございます😃 なるほど、そういう捉え方もできますね。 僕の持っている戸次先生の本では、そもそも¬P をP →⊥の省略形と定義しています。 最小論理や直観主義論理では、古典論理とは否定の意味が違うので、確かにこう定義すると推論規則が上手く体系化できるようです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Union自体にはsupは使わないのだが、Unionの公理で否定形を使う必要がある。 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ... 古典論理なら、存在記号からsupが取れるわけだが、直観主義論理はそれを許さない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「似たような理由で選択公理と整列定理は直観主義論理だと別物になる。逆に正則公理は選択公理と同じになる。その差は存在記号の位置にあるのだが、直観主義論理では存在記号ないから。代わりにε-inductionを使う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りは80年代に研究されたらしいのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理も連続体仮説もPowerを含む一部の命題の話なので、それだけ議論すれば良い気もする。ZFのモデルなのは自明なので… 真実性定理みたいなのは命題全体の中身に関係するから難しいかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ODに関してはNもMもまったく同じ(一対一な順序数を入れ替えただけ)なので真実性定理が成立してると言っても良いのか。そもそも選択公理も連続体仮説もODの外にあるから。」 / Twitter
エヌユルさんはTwitterを使っています 「多数の人間は古典論理で会話してないし古典論理で自分の命題を証明しようともしてないとTwitter論理学者たちは気がつくべきでは?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(爆発律) 間違った命題からはどんなことも証明できる。 ※これを採用しない論理体系を矛盾許容論理という。」 / Twitter

SAT

mr-csceさんはTwitterを使っています 「めちゃくちゃたくさんのものが命題論理式や一階述語論理式が充足可能かどうか、という問いに落とせること、凄いなという気持ちになった。 この間のn-colorable問題を充足可能性問題にreduceできるというのは単にNP完全の証明なだけではなくて、SATソルバでその問題を解けるということだしね。」 / Twitter
mr-csceさんはTwitterを使っています 「同様に他の多数の問題が充足可能かどうかという問題に落とし込めるということは、それらは全てSATソルバやSMTソルバで解けるということだから凄いなぁと思った。 こういう研究でもよかったかもしれない。笑」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
でぃぐさんはTwitterを使っています 「命題論理のコンパクト性を使ってなにか証明するの、計算の問題をSATに帰着させる過程に似ている」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理と直観主義命題論理だと普通に判定方法違いますからね。古典命題論理は証明図に沿ってやるならDavis-Putnamみたいになって、高速にやるならSATソルバー(はCDCL)ってことになるけど、直観主義だとその手ではうまくいかない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「各原子論理式を命題変数でおき、全ての原子論理式の連言をFMで変数消去、生成された各制約条件(の命題変数)が元になった制約条件(の命題変数)の連言から含意されるという命題論理式を生成。すべての変数の消去後に、生成された命題論理式と元の論理式の原子論理式を命題変数にしたものをSATソルバに。」 / Twitter
quiver2kさんはTwitterを使っています 「@yuyabu2 すごく雑に言えば、元の問題をどんなに複雑でも命題論理式に変換すれば良いと言っているようなもので、SAT側も受けは広いですけどね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「@j_tGAP またすみません。クラスモデルMでは論理式φの相対化φ^Mのメタな証明可能性ZFC⊦φ^Mは確かに独立命題があるのでφと¬φのどちらも偽になるかもしれませんが、φ^Mそのものと充足関係Sat(M,φ)は同値であり、こちらに関してはMが1つ与えられれば真理値が参照できるのではないでしょうか?」 / Twitter
なたがわさんはTwitterを使っています 「ふと思い出してTwitterで答えを得たいシリーズその2 「ちょうど片方のみが充足できる命題論理式のペアを受けるとどっちが充足できる方か教えてくれる神託付きの機械でSATを多項式時間で解く」(教えてください...)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@mt_tilde 個人的にはHeyting代数も結構好き(古典論理におけるbool代数のように、各命題に1つずつ値を割り当てるだけでよいし、直観主義論理のLindenbaum代数になっている)なんですが、KripkeモデルのほうがSATに落としやすかったのでipc_botではKripkeモデルを採用しています。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Existential Quantification as Incremental SAT https://t.co/rIuuIC0OnW : 命題論理式の量化子除去をやるのにBDDとか使うのではなくSATソルバでという話。 https://t.co/wYypHYim6A」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの胡散臭い宣伝をした後、Prolog入門の説明をわっとする。DCGでパーサ作る。ラムダ計算を作り、型を付け、型推論し、Fether Weight Javaを実装する。ホーア理論を実装して証明し、命題論理を変換し、SATで解く。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使えばという話の流れを考える。 アフィン論理を理解するには線形論理等の基本となる命題論理を理解しないとー。 命題論理を解くにはSATで解くのが良くて、Prologを使えばSATも作れるし、変換も簡単に書ける。それで、、、なんだっけ?っていう。。。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アフィン論理と線形論理を理解しようと思ったら、命題論理がわからなくてSATなら解けるらしく、Z3だと関数のnotを取ればいいだけなのでいちいち書き換えしなくてもいいっぽいので楽そうだけど、よくわかってないのでした。結構チュートリアル長くて眠くなってきた。」 / Twitter
h_sakuraiさんはTwitterを使っています 「PrologでSATとかSMTの実装も短く書けるみたいだけど中身わからないし、命題論理は奥が深いんだなぁ。ググると論文とかPDFが出てくるのは非常にいいかんじなので、twitterで俺が荒らしてる感じもするのでローカルなところで話したいけど、誰もいなくなると嫌だ。うううっていう。」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが完全かどうかとかもよくわからんのだけど、けっこう素晴らしいんだな。 完全ではないけど健全な命題論理言語をPrologで作るのは多分簡単なんだろうなぁ。 しかし、出来ない焦るイライラするw 日本シリーズ見るw」 / Twitter
h_sakuraiさんはTwitterを使っています 「命題論理を解くにCNFにするとよくてCNFを解くのはSATが便利で、SATのすごいのがZ3などのSMTなのだな。」 / Twitter
Akira SugiuraさんはTwitterを使っています 「あ。前見たスライドに載ってた・・・orz SATは命題論理。SMTは述語論理。&gt; https://t.co/kJEZt97V97」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の問題に対して直観主義命題論理のソルバーを使うのは牛刀なので、もう少し良さげな方法としては、論理式の否定をとって充足可能性に帰着して、Tseitin transformationでCNFに変換して各種SATソルバに解かせるのがよい。これなら理論的な計算量も落ちるし速い」 / Twitter
yoriyukiさんはTwitterを使っています 「命題論理に限れば、SATがすごく速くなった。制限があるけど述語論理もSMTでなんとか。一般の量化や帰納法が課題。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の証明可能性は、論理式の否定をとったあとに変数を増やしながらCNFに変換してSATソルバーに入れるのがいいと思いますけど、二重否定をとってipc_botに投げても解けます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理は比較的簡単(SATの補問題なのでco-NP complete)だけど一階述語論理は決定不能で、そこをどうにかうまくやるソルバはいくつもある」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが論理命題で、SMTは算術演算があるやつで、z3はマイクロソフトの高速なSMTなんだな。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理のソルバー、判定するだけならSAT solverというソフトウェア群が知られている」 / Twitter
Masaki HaraさんはTwitterを使っています 「@ukikagi run {} for 8 なので、位数8以下という前提を立てて、そうするとドメインが有限になるので命題論理式に落とせて、あとはSATで解くという感じですね。必ずしも小さい方から出力されるわけではないようです。」 / Twitter
Masaki HaraさんはTwitterを使っています 「論文のネタにしようかと思ったけど明かしてしまうと、The ILTP Libraryの直観主義命題論理のデータセットのうち証明不可能なもののほとんどは、菱型のKripkeフレームを用いてSATに変換すると一瞬で反駁できる。」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「SATとか詳しくないけど https://t.co/HEcex0YXbb 関係あるような話題として、sbtのAutoPluginのためのこんなコードが既に入ってるので https://t.co/UG7Y0TtfIZ 依存関係管理に命題論理が役立つ? #ScalaMatsuri」 / Twitter
mti@さんはTwitterを使っています 「充足可能性問題(じゅうそくかのうせいもんだい、satisfiability problem, SAT)は、一つの命題論理式が与えられたとき、それに含まれる変数の値を偽あるいは真にうまく定めることによって全体の値を'真'にできるか、という問題をいう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理、解きなさいって言われたらSATソルバーにかけるだけなのに、証明図を書きなさいって言われた途端めんどくさくなるから理不尽ですね」 / Twitter

算術

Shinji KonoさんはTwitterを使っています 「不完全性定理は実際に決定できない命題pを構成するけど、p∨¬pの仮定とは両立する。それを場合分けすると、両方で⊥になる。あんまりよろしくない。でも自己言及してるはずだから直観主義論理での⊥の導出は停止性に引っかかるのか。対角線論法側は?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈一階算術の公理系〉 有名な公理系を挙げる。 1.ペアノ算術:ペアノ公理+加法+乗法 2.ロビンソン算術:(1)-数学的帰納法 3.プレスバーガー算術:(1)-乗法 1と2は不完全性定理より真偽が決定不可能な命題が存在し、3は量化子消去ができるため全命題の真偽が決定できる。」 / Twitter
プレスバーガー算術 - Google 検索
プレスバーガー算術 - Wikipedia
プレスバーガー算術は本質的なのか? - martingale & Brownian motion
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
原始帰納的算術 - Wikipedia
原始再帰関数 - Wikipedia
初等関数算術 - Wikipedia
ペアノの公理 - Google 検索

無理数と集合

Miura HidekiさんはTwitterを使っています 「どうせ無理数は関数の結果から得るしかないから、式を式のままで扱えばよいと思う」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@miura1729 式の結果で表せる実数の集合になんか名前付いてないんでしょうか」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @1inguini なんらかの新しい表現(=式)を与えて新たに特定の数を示すことによって式の結果で表すことが可能になっていくため、集合としては成り立たない気がします。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局なんらかの「表現」を持って来て記号処理で、という話になりますよね。」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「“一般の無理数を表すデータ構造” をつくるのは無理なはずです(そもそもプログラムは可算無限個しかないのに対して無理数は非可算無限個ある)」 / Twitter
Shinji KonoさんはTwitterを使っています 「無理数には二種類あって、一つは述語論理的な記述を持つもの。そして、それ以外。まぁ、それ以外っていう記述は持つのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一つの実数と特定できるか、範囲を限定できるもの。」 / Twitter

集合論・位相・表示的意味論

histric-1

Shinji KonoさんはTwitterを使っています 「集合論使ってると、ポインタとキャスト使いまくりのCとSQLの組合せみたいで最低だな。でも、それは偶然ではなくて、当時、論理的な記述にしようと思うと、述語論理とそれに基づく集合論の記述を使うしかなかったってことね。既に圏論もあったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論と排中律の組合せだと、まず、 x なんか集合がある A x B ∋ x かどうか排中律で調べる。そうだったら A ∋ a をxから取り出せる。どっかでみたCのプログラムみたいだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかの集合Aから分出公理で select A (λ x → ... ) でいろいろ抜き出す。もちろん、それがSQLのselectの元なので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換公理のわけわかなのは、どんなに大きな集合で入れ換えても怒られないところ。まぁ、それ含めてUnionとれば良いじゃんってことなんだろうけど。構成主義とはほど遠い。でも、そこは上界があるのいう明示的な仮定で。上界はHODで取ってこれる仮定なので、まぁ、どうってことない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、置換公理は ε-inductionには関係しないはずだな。その辺りがHODの便利なところ。なので、いけそうな感じだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lって最近まで記号モデルに制約する的に読んでたんだが、VはあらゆるPower Setを含んでるので、むしろ、どんな部分集合でも完全に定義できるだけの定義可能な述語を持ってるって話なので、まぁ、無理っぽい。HODも同罪に見えるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD自体にはPower Setを作る能力はなくて、そこはsup(上界)に押し付けてる。supは構成的ではないのだが、構成主義論理は寛容なので「それがあるとすれば」的なものは許してくれる。もちろん「矛盾しても知りません」なのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので HOD=V ってよりは HOD+ sup=V みたいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ謎な部分は多いけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD=ORD的な仮定を入れてるのは田中先生の本に書いてあったからなのだが、かなり微妙。定義可能なものを数えた順序数を使います的な。なので可算に落ちてしまう。sup で入れたPower Setも「それは記述可能だからOk」的に入ってる。実際の部分集合すべて的な記述は超限帰納でしかアクセスできない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基数も見かけは簡単に書けた。これがなんなのかは、これから調べる感じ。この手の存在量化は recordで書くべきだな。 Card : OD Card = record { def = λ x → (a : Ordinal) → a o&lt; x → ¬ Bijection a x }」 / Twitter
Shinji KonoさんはTwitterを使っています 「∃x∈A→P x は ¬ ¬ ( ∃x∈A→P x ) = ¬ (x∈ A → ¬ P x ) なので、二重否定を入れれば構成主義論理で問題なく議論できる。 この辺りが強制法で様相論理を入れる理由。なので構成主義論理でやる限り。必要ないらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は集合とその関係∈なので、Agda的には二つのLevelがある。圏だと対象と射と射の関係ななで三つ。ODは順序数とその方程式なのでLevelは一つ。つまり∈のLevelに制約が付く。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Trans finite induction は順序数と述語を含むのでLevelは二つ。可算順序数なら実際に証明できる。単なる帰納法に落ちるので。なんだが、OD側では一つしかLevelがない。足せば良いのだが、排中律と選択公理の関係で排中律の対象となる述語のLevelを限定する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことはTrans finite induction の述語はn に相対的に決まるのでn、suc n、… ってことになる。可算順序数なら、そのどれでも証明できる。使用するのはnとsuc nの二つ。suc nが多いのだが、排中律から選択公理を出すのにnがいる。なので二つ用意してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法TFが可算順序数に対して証明できるってのは面白い。整数論の整合性はTFで示せて、不完全性定理的には示せないのだが、それはTFは非可算順序数に対しては証明できないから。TF自体はモデルがあるから無矛盾。Pの無矛盾と証明があるのとは別なのか。 ¬ ∃ ¬ Pと ∃ P だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りの議論のはぎれが悪いのは、メタ数学を議論するのに古典論理を使ってるからなのか。そこは直観主義論理を使うべきところなわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の独立性でも、選択公理を否定しても無矛盾を先に示してる。え、それで証明終わりじゃないのと思ったものだが。」 / Twitter

histiric-2

Shinji KonoさんはTwitterを使っています 「古典集合論だと集合持ってきて、それをモデルにするとかやるのだが、ODによる連続体仮説だと直接Lを構築するので、それは要らないみたい。問題は集合と順序数との対応だから。V=Lから連続体仮説を出すのが既にできるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の方はよくわからない。排中律から行くのではないはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の中からは∋があれば順序は決まる。対応するアドレス(順序数)の絶対値は知り得ない。問題は部分集合間の順序なので、Power Setの問題になる。もちろん、それらはODの世界では絶対アドレスがあるので順序がある。⊆も排中律がないので、どっちかは決まらない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドは、どうもZFでない自明な集合論があると思ってるらしく。選択公理は自分たちのsetでは正しいとか書いてる。yの部分集合の要素z(y)を&lt;y,z(y)&gt;の順序対にして、それ全体を取ると自明に選択関数になる。そのz(y)が取れないから泣いてるんですが。setは要素から徐々に作られる的。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドのsetは要素から順々に作られるので整列定理も自明。でも、それでは実数は作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドでは直接的にPower ωの選択関数を否定する感じか。ωの選択関数は最小値を取れば良いのでZFである。ωの部分集合なら帰納法が使える。Power ωだとそうはいかない。でも超限帰納法と排中律で見つけることはできる。整列してるから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だったら排中律に制限を入れれば一発か。選択公理が成立しないような排中律の反例を入れておく感じかな。LではPower ω はL ωの要素でもあるから、L ωにそういうものを入れられるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっとも、それが入るのはPower Setだけか。 (x : Power P ) → L P ∋ x ってだけだな。L P = Power P だと自明に成立する。他には影響しないから、ベキ集合の公理を邪魔しなければ良いってこと?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ベキ集合の公理を出そうと思ったらネットが落ちてるんだった。github側があるな。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x ) power← : ∀( A t : ZFSet ) → t ⊆ A → Power A ∋ t 二重否定が入ってるのは直観主義論理だから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これはPower Aが構成的でないことが原因。なので、A ∋ x に証明がなくても許される。これは都合が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFもだいぶ見えてきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律から選択公理を導出するところでは二箇所で排中律を使ってる。普通に使うところと ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B だな。x がないと、B を作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここで二重否定が入るのは Power Aが構成的である必要を外すため。そうでないと、Power AはA ∋ xを構成する方法を全部知ってる必要がある。A=ωとかなら良い。A = Power ω だとちょっと。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x )」 / Twitter
Shinji KonoさんはTwitterを使っています 「D : HOD → HOD つまり定義をHOD として Df x = Power x ∩ D x を使ってLを構成するってideaなんだが、 L ω = V ω なDでないとだめ。Lに自由度があるので V = L にも自由度がある。 V = HOD ⊇ L だがDをPower xにするとV=Lになる。 ても、そこからは何も出ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record L : Set (suc n) where field ldef : (x : Ordinal) → odef D x ∧ Set n とするとDに適切な制約を入れれば D → ZF とできそうな気はする。Vとかωとかがちゃんとできれば。Dが強制条件でGeneric Filterとかになれば。もっと簡単な条件もありそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのだが、このV=Lから選択公理=排中律を出すのはなぁ。整列定理はHODでは成立してる。古典集合論だと排中律の方が仮定されてるから… 順序数方程式で排中律が成立する条件みたいなのを探さないとダメか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「連続体仮説の方はDをそういう風に定義できるできると思われる。もともと、それに近い仮定は入れてしまってるのだが。古典集合論のHODでもそれに近いは仮定はあるみたい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、Dの定義に排中律を書けるのかな。 lem : D lem x = record { od = record { def = λ x → &amp; (Power x )∧ (λ y → Dec ( odef x y )) }} うーん、どうかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「で、そこに対角線論法を書くと選択公理を否定できる的な?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエン先生は「数学は選択公理と連続体仮説抜きで議論されるようになる」ってな考えだったみたいだけど、直観主義論理と圏論はそういうものだな。同じものだし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec は強過ぎるが、¬ ¬ Dec ってのもなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ ¬ Dec ( x ∋ y ) ってもしかして、何も言ってない?」 / Twitter

Shinji KonoさんはTwitterを使っています 「表示的意味論と集合論は、位相空間論の重要な応用」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、それはわかるんだが、論理そのものが可算に閉じてるので、いろんなものを自然数にencodeするのが数学ってことだと思うと少し虚しいところがあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして数学者は数論に回帰するわけね」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、可算無限の本当の大きさを人は知らない」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は、整列定理と選択公理が排中律で分離できるってのを最初に教えてくれれば、もっとずっと早く理解できたと思う。まだ、チコノフの定理やってない。」 / Twitter

自然演繹・原論

Shinji KonoさんはTwitterを使っています 「もともと集合論で数学自体論理自体に疑いが出てきた時に、論理とはこういうものと疑えない操作的意味論を持つ、つまり 単なる記号ゲーム として提案されたのが自然演繹、Natural Deduction 。そして今の定理証明支援系につながってる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹以前の論理学は、単なるそれっぽい文学。もちろん、モデルがあれば整合性があるのだが。ユークリッドとかニュートンとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「吉田先生がいきなりユークリッドの原論を言語で読もうと言い出したのは、自然演繹を越える何かがあると思ったからだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹NJは記号の処理だけだが、原論は図と作図操作がある。作図操作は物理制約なので記号的な操作とは異なる可能性がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「図に関する推論も結構研究されて補助線を導出するとかあった。回転とかの幾何学的推論を記号に落とす方法はデカルトの解析幾何、つまり、線形代数がある。確かにそれは原論のモデルになるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「原論の推論に対応するものは自明には見えない。」 / Twitter

定理発見

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「定理発見は演繹操作では無理で、モンテカルロ法的な手法が必要。 数学の法則は無限に存在するはずだが、たぶん99.99...%がゴミ法則という罠。」 / Twitter
モンテカルロ法 - Google 検索

直観主義論理・一階述語論理

Shinji KonoさんはTwitterを使っています 「集合論と一階述語論理で数学を記述すると、∀ x . ω∋x → ... ってしつこく書くとこになるので煩雑。高階直観主義論理で書くと明確になる。要するに圏論/Dudective Systemでやれってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「数学的帰納法はAgdaではdataの分解になる。そこに、なんの曖昧性も出てこない。一階述語論理でやるとかなり悲惨。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法も教科書通り極めてsimpleに書ける。 TransFinite : { ψ : ord → Set (suc n) } → ( (x : ord) → ( (y : ord ) → y o&lt; x → ψ y ) → ψ x ) → ∀ (x : ord) → ψ x これは可算順序数上で証明可能。可算順序数は構成的存在物ってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaで書いたので、今更、Model に関する理解が深まった。そして、等式述語を入れる難しさも理解した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「All X =&gt; All Y =&gt; (( Exist Z =&gt; ( ( father ( X , Z ) ∧ father ( Y , Z ) ))) ⇒ brother ( X , Y) ) は brother ( X , Y) :- father (X , Z) , father (Y , Z) に正しく変換された。ちょっとうれしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理のinterpretationは個々の述語の審議値の定義。公理をすべて真にするのはModelという。矛盾があると命題は全部真になってしまうので、無矛盾性は偽な命題があること。あるいは非自明なModelがあること。公理がなくても恒真な命題は任意の interpretationに対して真。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの実装でこの辺りを調べるだけでも面白かった。Modelの構築で見落としがあると、なかなか公理が真にならない。公理には∀が入ってることが多いから。ってModelを手で作るからだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「恒真な命題は割と簡単に真になる。トートロジーと恒真を区別するのはやめろ〜 区別してるのはダメな本認定で。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の∀と∃はカッコに対する位置に過敏で間違えやすい。初学者泣かせ。幸いなことにプログラミングには出てこない。節形式にすればなくなるので幸せになれる。∃を関数に置き換えるだけでも。εδも関数明示でわかりやすくなる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「εδでも実際の証明では関数使うが、一般的に∃が関数です置換え可能ってのに自力で気がつくのは難しいかも。ただしscopeがずれることがあって… 正則公理と選択公理の区別がなくなったり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正則公理のミニマルは自分自身との共通部分が空な自分の要素だから、空でない集合の要素を取ってきてるので確かに選択公理っぽいのだが、排中律があれば「取れるか取れないかどちらか」なので特になにも付け加えられないのでセーフ。直観主義論理では関数を作る必要があるのでアウト。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理の方がはっきりわかりやすしいし、定式化も楽。そういう風に記述するべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理はモデルを使って意味付けるが、直観主義論理では証明があることが真の意味になる。モデルの構築は面倒だが、証明は限定的。公理に矛盾があるとモデルは全部おじゃんだが、証明は無矛盾に触らない限り有効。証明があるなら恒真ってのはわかりやすい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理で非構成的な議論ができないわけじゃなくて、二重否定で包んで議論すれば良い。非構成的な存在物、例えば選択関数でも、明示的に仮定すれば良い。今の数学だと選択公理はそうなってる。排中律でもそうするべきだってのが一番の違いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルは排中律が成立しない命題を自然数を使って実際に構築するわけなので、排中律は明示するべきってのは説得力がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理と選択公理が同値なのは排中律があるからなのだが、整列定理は公理っぽい。実数でも右から左の順序あるし。二次元だとあんまり自明じゃないが…」 / Twitter
ゆかたゆさんはTwitterを使っています 「ところで慣れていない人が物事の「本質」をモデル化しようとする時にはunionを取ってしまいがちという偏見があるのですが、intersectを取った方が嬉しいことが多いです。」 / Twitter
intersect - Google 検索

histric-1

SUHARA Hiromichiさんのツイート: "アトミックな命題についてはその通りなのですが、Prologで定義できるすべての命題についていうと、無限再帰や無限バックトラックを起こすことができ、つまり、真偽の決定できない命題が書けるのですね。これをもって、Prologの不完全性をいうことができます。… https://t.co/Qjwk2ZomeB"
Тургеневさんのツイート: "Prolog(論理型プログラミング言語)においては、真であると明示的に宣言されていない命題はすべて偽として扱う(閉世界仮説と呼ぶ)ということを今日習ったんだけど、「そこになければないですね」って店員が言うのはダイソーが閉世界仮説を採用しているからだとわかってすっきりした"
yuyabuさんはTwitterを使っています: 「フレーゲの公理系すごいな。6つのトートロジーと2つの規則から任意のトートロジー導けるとかヤバすぎでしょ。」 / Twitter
yuyabuさんはTwitterを使っています: 「10章入った。任意のトートロジーを扱いたいので公理系をつくる、という話。公理=自明なトートロジーを置き換え規則を適用することで任意のトートロジーを導くことができる。例示されたフレーゲの公理系では6つ!のトートロジーから任意のトートロジーを導くことができることが証明されている https://t.co/3JD1gEMtFf」 / Twitter
チャーチ数 - Google 検索
帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
Hisabumi HatsugaiさんはTwitterを使っています: 「Actor model でもデッドロック発見器的なもの(システムの状態遷移計算)を作ることはできる.λ計算のインタープリタを作る必要があるので少し規模が大きくなるかも.正常に動くモデルの振る舞いを観察するのは楽しいだろう.(続」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「しかし問題のあるモデルの場合,actor configuration に含まれるメッセージのマルチセットが大きくなる一方(未処理のメッセージが溜まる一方)ということの方が多そうな気がする.この場合は計算が終わらない.閾値を設けて止め,溜まってしまうメッセージを分析するツールとすればいいかもしれない.」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査の習得でつまづくことの1つは時相論理.式が自分の意図とあっているか不安になる.プログラマは理解するためにプログラミングするという武器を持っているので,時相論理の処理部分を自分で書いてみればいい.そう考えて構成をくふうした.アルゴリズム実装と視覚的フィードバック. https://t.co/upEsUJgubz」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査では実行が無限に続くケースを対象にすることが多いけど,途中で停止するケースが含まれていても少し修正すれば適用できる.すると EX true でデッドロック状態を見つけることができる.でも AFφ の落とし穴に落ちることもある (^^;).」 / Twitter
Miura HidekiさんはTwitterを使っています: 「クリティカルパスを短くするのとカルノー図を用いた論理圧縮は独立な事象だと思うけど、HDLを使っていればその程度の論理圧縮はやってくれる気もする。」 / Twitter
解答略さんはTwitterを使っています: 「こういう図を見るたびに思うのですが、微細加工技術の進歩した現代の半導体回路設計の現場においては 「論理素子の少ない(面積の小さい)回路図」 はそれほど求められて無い気がする。むしろテクノロジーマッピングを考慮して 「動作速度の速い(クリティカルパスの短い)回路」 を作る方が重要なのでは https://t.co/FoBBISedMS」 / Twitter
論理回路学たんさんはTwitterを使っています: 「<論理回路学・要点のつながり> 論理関数の簡単化 複雑な論理式を簡単化すれば 回路の部品が減って,良い回路になる。 論理式の簡単化は方法が2つ ・ブール代数で計算して簡単化 ※下図(3)→(6) または ・カルノー図で出力をまとめて簡単化 ※下図(3)→(4)→(5)→(6) https://t.co/ZpXOK8f4Hl」 / Twitter
FadisさんはTwitterを使っています 「再帰は末尾再帰最適化が行われない場合1回まわる毎に少なくともリターンアドレスがスタックに積まれ、再帰回数が多すぎるとプロセスはスタックを使い切る。末尾再帰最適化はコンパイラの気分でかからない事がある為、ループ回数について予想がつかない場合の再帰への書き換えはおすすめできない」 / Twitter
FadisさんはTwitterを使っています 「再帰でスタックを使い切ってページ未割り当てのアドレスに値をpushしてSEGVしたメモリダンプは画像で見ると縞模様が出やすいので目grepビギナーにオススメ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「一般論としてまったくその通りなんだけど、関数型言語の中には言語仕様で末尾最適化を保証しているものもあったり。Scheme (R5RS) なんかはその例。 ただし以下の階乗の例にあるように末尾最適化が可能なコードは、素朴な再帰的書き方よりもやや冗長になることが https://t.co/bSOFBzri9R https://t.co/3jTKm3opAn」 / Twitter
お気楽 Scheme プログラミング入門
きいねく@とりあえずやるさんはTwitterを使っています 「論理式って一行表記すると視認性わるいよなぁと常々思っていたので,これくらいはやりたい. (特に量化子の部分を小さくするのはよくやる) https://t.co/t62gffQuHR」 / Twitter
状態(の変化)*さんはTwitterを使っています 「JSONをunificationベースで扱う、とか、JSONに(論理学でいうところの)述語を突っ込むとか、あるにはあるけど https://t.co/KvRbb1fBTd これ使えばPrologはつくれるよね」 / Twitter
JsonLogic
状態(の変化)*さんはTwitterを使っています 「QuineのNF関連みてるとわかるけど、atom(集合論の界隈ではurelement=原要素、という用語を使う)が何であるかは論理型言語とかメタプログラミングの上では割とどうでもいい(処理系はそこに頓着する理由がない)」 / Twitter

histric-2

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分も「論理学をつくる」でフィッチスタイルを見て、これはわかりやすいと思った。今週末のセミナーでは同じ流れを Isabelle でやる。わかりやすい上に規則適用が正しいかどうかのチェックも入るので完璧。パズル的な楽しさもある。練習問題もたくさん用意した。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴール(仮定の列と帰結)を見たとき、どういうものがあったらどう攻撃するか(どの規則を使うか)というかなり確定的なヒューリスティクスがあるのでどんどん証明ができるようになる。1点、否定が難しくて、それはそれでパズルとして面白い。背理法を使うやつ。」 / Twitter
ぁゃιぃツイートをしないさんはTwitterを使っています 「え、もしかして古典論理の定理を二重否定した奴全部直観主義で証明できたりしますか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@Kory__3 命題論理ではそうで(Glivenko変換)、述語論理では量化の付近にも二重否定をつける必要があります(Godelの二重否定変換)」 / Twitter
cutsea110さんはTwitterを使っています 「1階述語論理の論理式の真偽を自動判定するのは原理的に不可能…why? 後続の有界スコープ仮説を導入して命題論理式に変換すれば…SATソルバに云々はワカル!!」 / Twitter
26_3_78.pdf
アラクーさんはTwitterを使っています 「命題論理を項書き換え系とみなして完備化すれば自動証明システムを作れるクヌよ!」 / Twitter
アラクーさんはTwitterを使っています 「@yukeizuta 四色定理とかケプラー予想とかのように部分的にコンピュータに計算させたものから、それこそ論理式のレベルで命題を解くようなシステム(グレブナー基底などの項書き換えシステムを含む)の研究もなされていると思います」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「ゼミの準備として書いた単純型付きラムダ計算の項から対応する命題論理の証明が出せるっていう証明。要するにCurry-Howard対応(の一方向)。手抜き。 http://t.co/q84AlTrB @ideoneさんから」 / Twitter
gQUcZ - Online IDE & Debugging Tool - Ideone.com
ミノ駆動さんはTwitterを使っています 「「テストは『欠陥があること』しか示せない」 ソフトウェアテスト原則のひとつ。 テストでバグがあることは証明できる。 しかしバグがないことは証明できないのだ。 例の検査にも同じことが言える。」 / Twitter
広瀬香美さんはTwitterを使っています 「それが良いなら、 命題 -&gt; プログラム 直観主義命題論理の自然演繹において、 命題さえあれば、証明図は定まる 証明図は、型付け図に対応できるので、命題は項をエンコードしたものとみなせる。 プログラム -&gt; 命題 項が与えられたら、命題も得られる つまり 命題 = 項(プログラム) も言えないか?」 / Twitter
広瀬香美さんはTwitterを使っています 「~しくみのほうでは、型判断でターンスタイルを使ってたので、論理式で使う記号と分けて使いたいのかなとなった。 ~序説のほうでは、ターンスタイルはもっと上位の概念で使ってた(証明図が得られることをターンスタイルで表していた)から、まあ仕方ないのだろうけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「記号論理は interpretation とmodelだな。そして、それは自然演繹とは別。」 / Twitter

AzさんはTwitterを使っています 「@jeeema この辺の話ちょっと混乱しがちだと思うんですけど、ZFC の話をするときには有限長の一階述語論理は集合論 (ZFC) なしで扱える事は認めて良いです」 / Twitter
AzさんはTwitterを使っています 「@jeeema 文字の「集合」を扱わない事で対処します。集合として扱う”必要“があるのはモデル論を考える段階になってからなのでもう少し高レイヤーな話になります」 / Twitter
AzさんはTwitterを使っています 「@jeeema キューネンの最初の方、かなりふわふわした話が書いてあって、前もって知らないと理解しにくい可能性があるので、適当に飛ばすなり sig-foundation で質問飛ばすなりするのが良いと思います」 / Twitter

hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt
(PDF) CAPEレクチャー 論理学上級I 古典論理の推件計算と計算的内実(途中版) | Shunsuke Yatabe - Academia.edu
論理型言語に基づく構文解析システムSAX
Learn just enough about linear types
がくぞさんはTwitterを使っています 「forall(∀)とexists(∃)の2つをまとめて呼びたい時ってなんて言えば良いんだろ?」 / Twitter
がくぞさんはTwitterを使っています 「Logical connective も違う気がするし」 / Twitter
病気の美少女さんはTwitterを使っています 「@gakuzzzz 量化ですか?」 / Twitter
がくぞさんはTwitterを使っています 「メソッドの総称として呼ぶなら quantifier の方が適切なのかな?」 / Twitter
Kazuyuki TAKASEさんはTwitterを使っています 「@gakuzzzz 量化子 (Quantifier) では無いでしょうか?」 / Twitter
zehnpaardさんはTwitterを使っています 「@gakuzzzz Existential quantifier, universal quantifierと呼ばれているのは見たことがあるので、quantifier で良さそうです」 / Twitter

証明

背理法

Hiroyasu KamoさんはTwitterを使っています 「高校で学ぶ数学の範囲では証明に背理法が本質的に必要な定理が明示的には出てこなくて、背理法のありがたみがいまひとつ伝えづらいのがつらいところです。通常は最初に出会うのは中間値の定理です。」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「「証明に背理法が本質的に必要」の定義は、古典数学で証明できてBishop流構成的数学で証明できないことです。念のため。」 / Twitter
とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 あまり詳しくないのですが,√2の無理数性とかは背理法が本質的に必要とはならないのでしょうか? また中間値の定理は背理法を用いずにも示せる気がします。。。」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 √2についての有名な証明は否定導入(pを仮定して矛盾を導くことから¬pを結論する)であって、背理法(¬pを仮定して矛盾を導くことからpを結論する)ではありません」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 中間値の定理の証明から見かけの上で背理法を消すことはできますが、そのかわりに排中律だの三分律(任意の実数a,bについて、a<bまたはa=bまたはa>b)が必要になります。」 / Twitter
とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 ありがとうございます. ここらへんの話に疎いため,そうなんだなくらいしか感想が浮かびません… 素人質問で恐縮ですが,三分律や排中律はRを構成していく時に既に用いてたりするものではないのでしょうか?」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 Bishop流構成的数学が、まさに、背理法を含む非構成的原理抜きで(当然、排中律も三分律も抜きで)どこまで数学ができるかを調べる分野です。それを見ると、背理法なしでもそれなりに実数論も微分積分学もできることがわかります。」 / Twitter
とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 すごく面白そうですね. ちなみにその流れで行くと最大値定理も背理法等の非構成的原理抜きでは示せないように思いますが,あっていますか?」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 はい、構成的数学で最大値定理そのものは証明できません。しかし、一様連続関数fに対する sup f([a,b]) の存在の形に弱めれば、証明できます。」 / Twitter
とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 そうなのですね!面白いです^ ^」 / Twitter

プログラミング言語

Qiita

古代C言語で1=2を証明してみた - Qiita
TypeScriptはgradual typingシステムか - Qiita
What is Gradual Typing: 漸進的型付けとは何か - Qiita
ある証券会社の証券用語の解説に仕様バグが存在することを形式検証によって発見した話 - Qiita
形式検証 / 形式手法のカレンダー | Advent Calendar 2021 - Qiita

Twitter

その他

確率・統計

アッキーだよ✨さんはTwitterを使っています 「統計学はギャンブラーの学問、確率論は胴元の学問ってのをどこかで見た気がするけどこれは言い得て妙だなと統計学勉強してて思ってる」 / Twitter
でこすけさんはTwitterを使っています 「@A_kirisaki そう思う(統計は測度(データ生成過程)がわかっていない場合にどうするかの話が多い)」 / Twitter

市川 真一さんはTwitterを使っています 「ゼロから自作しないで、とりあえず Prolog で書いてみるとロジックを動かせて良いですよという助言は確かに傾聴に値するけれど、たいていの助言者の人は Prolog に満足していて、ゼロから自作することは無さそうな印象。もちろん、それは素晴らしいことなんだけども、目的が違うことを忘れてはいけない」 / Twitter
クレイさんはTwitterを使っています 「証明支援系やプログラミング言語ら辺で大事なのはそれを使って「つくりたい/示したいものはあるか」なんだよねきっと。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「定理証明フレンドリなno_stdで動くプログラミング言語はRustで実装済みなので、カーネルを操作するコントロールプレーンの検証などは出来るはず。」 / Twitter
JxckさんはTwitterを使っています 「テストというものをプログラムと別に書かないといけない、っていう今の状況自体が、プログラミング言語の未成熟を意味してるんじゃ無いかなとかとも思ったりするんだけど、型や証明をガッチガチに極めていったら、いわゆるテストってどうなっていくんだろうか。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「プログラミング言語は自身の存在意義を説明するためにはそれを使ったアプリなりシステムを作るべきなんだけど、Dartはそれを証明できてないんだよね。.NETのクライアントサイドもそのパターンでほぼ死んだようなものだしな(Longhornでクライアントとして使えないことを証明した)」 / Twitter
mizchiさんはTwitterを使っています 「プログラミング言語の進化の方向性としては agda, coq, isabelle らへんの証明支援をいかに負担ない形で汎用プログラミング言語に導入するかみたいな部分に重きがあるように見えてる(研究が本職の人はまた別の意見や表現があるでしょう)」 / Twitter
結城浩さんはTwitterを使っています 「代数構造を数学的に調べたりする以外に、たとえば推論を行う仕組みをもったプログラミング言語はたくさんありますね。最近ではCoqなどの定理証明支援環境などもあるので、それでも「実験」はできそうです。」 / Twitter
水無麻那さんはTwitterを使っています 「Haskellで型レベルプログラミング、「結局証明書くじゃん、こんな書きにくい言語でやってられっか」感が強いよね」 / Twitter
まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap 実際はそうであってもプログラミング言語の実装によっては代数的データ構造とか集合の形で保持することになる気がする(アルゴリズムの証明ってその上に立脚して証明しませんか」 / Twitter
beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi 数学者だって分かってやってんだから、上手く逃げたと評価してくれるだろうし、逆にアルゴリズムそのものは有限性を一切持たない論理の世界だから、単純配列ですらコンパクト性証明は不能なのではないかなぁ?」 / Twitter
AOE TakashiさんはTwitterを使っています 「「関数を値として扱うことで、プログラムの証明能力があがり、コンパイルが通った時点で保証できる範囲が広がります」ふむ。:関数を扱えることはどのようにプログラミング言語の能力をあげるか - きしだのはてな http://t.co/NUYsiR2ef2」 / Twitter
2013-08-07
Kazunori OtaniさんはTwitterを使っています 「“Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA Limited” http://t.co/ELSulitgou」 / Twitter
Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
ざっきー devさんはTwitterを使っています 「@minamiyama1994 http://t.co/gzB4OlrdKm この記事の定理証明系にIdris含まれているんですが、アレって定理証明系なんですか? 依存型持ってるだけで一応汎用純粋関数型プログラミング言語名乗ってた気がするんですが……。」 / Twitter
型! 型! - Qiita
Takuya HitomiさんはTwitterを使っています 「Alloyは定理証明支援系ではないですよ。仕様記述言語です。有限の事象しか扱わないので証明にはなりません。 / “【翻訳】Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD” http://t.co/kRSNCTVvOc」 / Twitter
Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD
トマ村さんはTwitterを使っています 「"普遍妥当な論理式を機械的に導出可能とする公理系と推論法則を言語内部に構築し、実数学の諸概念を離散世界の抽象物に飛ばす機構を目指した言語です." / 極めて定理証明系言語っぽい / “世界で一番ピュアな論理型プログラミング言語Hi…” http://t.co/rVKJmQ8eGe」 / Twitter
世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
Say ya aka詩熊さんはTwitterを使っています 「HTML/CSSはチューリング完全性が証明されたセル・オートマトンである「Rule110」を再現出来るのでプログラミング言語。 Q.E.D https://t.co/7IiTZMDrZJ https://t.co/INAqPmm2lG https://t.co/UnaS70tBYz」 / Twitter
Rule 110
Rule 110 - Wikipedia
白緑@(計算機(工|科)|数)学さんはTwitterを使っています 「U-22 プログラミング・コンテスト 2021において、私の作ったプログラミング言語"kirl"が経済産業大臣賞(テクノロジー)を頂きました!! 静的型付けスクリプト言語に未来があるという証明のように思えてとてもうれしいです! https://t.co/KzAkFkXyM7」 / Twitter
White-Green/kirl-lang: An experimental project for statically typed scripting language.
Junichi Ito (伊藤淳一)さんはTwitterを使っています 「昨日書いたQiita記事の「ざっくり解説」も証明問題と構成的にはほぼ同じなんじゃないかな〜。Rubyの言語機能や標準APIは、証明問題における定理みたいなもんですね。 Rubyのパターンマッチを使って簡単なプログラミング問題を解いてみた - Qiita https://t.co/fR9mWpm3wl」 / Twitter
Rubyのパターンマッチを使って簡単なプログラミング問題を解いてみた - Qiita
森の未知JK@㌠גודזילהさんはTwitterを使っています 「真理表、命題論理にだけ使えるad hocな方法な上に実際に我々が数学するときに用いる論理推論ともかけ離れているので、論理学や計算機科学でなく数学を教えるつもりなら真理表を教える必要はないように思う。」 / Twitter

同型対応

Koichi NakamuraさんはTwitterを使っています 「同型対応のメモ。型付きλ計算~直観主義論理、多相λ計算~直観主義二階命題論理、依存型+型付きλ計算~直観主義一回述語論理、依存型+多相λ計算~直観主義二階述語論理。ここら辺すっかり忘れておる。」 / Twitter
KojimaさんはTwitterを使っています 「そういえば直観主義の二階命題論理が cHa による代数的意味論に対して完全かという話は進展があったんだろうか」 / Twitter
KojimaさんはTwitterを使っています 「直観主義二階述語論理の Kripke semantics が載ってる教科書あったっけ。一階か命題論理なら知ってるんだけど。」 / Twitter
phares🥟🐏🍃さんはTwitterを使っています 「古典命題論理→古典一階述語論理→二階論理の意味論と、直観主義命題論理→古典命題論理→直観主義一階述語論理→古典一階述語論理の自然演繹→シークエント計算、の授業くらいなら予習なしでいますぐ出来ますし、その先も正規化、カット除去、カリー・ハワード同型の初歩くらいまでなら。」 / Twitter
phares🥟🐏🍃さんはTwitterを使っています 「帰宅ー。修羅場ちゅうまったく読んでなかったのでロジックに飢えて久々に Basic Proof Theory 読んでる。二階直観主義命題論理。楽しい。」 / Twitter
Mathematical アーロンさんはTwitterを使っています 「@Kory__3 @Alwe_Alwe System Fが二階直観主義命題論理のモデルになる、とかならわかるんですが(CH対応)」 / Twitter
AlweさんはTwitterを使っています 「@7danmoroboshi なお二階直観主義命題論理なら∀、→、bottomですべて定義できる」 / Twitter

意味論

林檎あめ綿帽子さんはTwitterを使っています 「プログラムの意味論を作って何が嬉しいのか?評価の一意性みたいなメタ定理が証明できて(というより証明のための枠組みみたいなものか)、さらにそういうメタ定理が証明できると問題のプログラミング言語が私たちが期待するいい感じの性質を持っていることが分かり、安心して使えて嬉しいから?」 / Twitter
カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 プログラム言語で書かれたプログラムは計算機上で実行されることを前提としている. 言語仕様は, プログラムの文法と, プログラムが計算機上でどんな振る舞いをするかを規定している. 後者は操作的意味論にほかならない.」 / Twitter
カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 操作的意味はかなりセンシティヴな概念となる. たとえばプログラムの中に無駄なループ while (true) { break; } を入れるだけでも操作的意味は変化する. 表示的意味はこうした変形によっては変化しないような意味 (不変量) に着目する.」 / Twitter
カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 最適化技法のひとつであるプログラム変換は, プログラムの表示的意味を変えずに変形し, 計算効率を改善する課題と考えられる. 変形操作を編み出したり正当性を示したりするには意味論が要る.」 / Twitter
カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 https://t.co/thGF54nx1k」 / Twitter
msj2010sept.pdf
林檎あめ綿帽子さんはTwitterを使っています 「@amntksr ありがとう!操作的意味のセンシティビティというのと表示的意味論の旨味みたいなのはまだ知らなかった。参考文献も。」 / Twitter

式の表記法談義

Hiroki FukagawaさんはTwitterを使っています 「?をつけた心もしくは意味はなんだろう?」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「明瞭に区別したかったら、 定義式 x∈D, f(x) := 2x^2 - 3x, g(x) := x^2 +x -3 恒等式 ∀x∈D, f(x)=g(x) 方程式 ∃?x∈D, f(x)=g(x) 恒等式か? ∀?x∈D, f(x)=g(x) みたいな区別はいかがでしょうか?」 / Twitter

式の表記法談義

TANIMURA ShogoさんはTwitterを使っています 「「子供に方程式と恒等式の区別をさせることの是非」みたいな話が盛り上がっていたみたいだけど、私は、学生に「いま扱っている等式が、方程式・恒等式・定義式のどれにあたるのか意識しなさい」というようなことをしょっちゅう言っていますが、それってまずいことだろうか https://t.co/1gLBtZSBGA」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「コンピュータのプログラムを書くときだって、変数に値を入れる等号(X := 3 みたいな)と、IF X=Y の等号の意味は区別しないといかんのじゃないですか。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「文脈に無関係に「これは方程式か恒等式か判定せよ」と問うて答えに機械的にマル・ペケを付けるのはよくない、というのはわかります。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「たしかにそういう不便は感じることがあるし、誤解のもとになることもありますよね。 https://t.co/i2wkjLyIus」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「明瞭に区別したかったら、 定義式 x∈D, f(x) := 2x^2 - 3x, g(x) := x^2 +x -3 恒等式 ∀x∈D, f(x)=g(x) 方程式 ∃?x∈D, f(x)=g(x) 恒等式か? ∀?x∈D, f(x)=g(x) みたいな区別はいかがでしょうか?」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「「∃?」や「∀?」という記号を勝手に発明してしまいましたが。等号の方に意味を押し付けようとするのではなく、周りを修飾して文脈を明示すればよいだけのことと思います。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「しかも物理学で扱われる等式、例えば F = ma は、F の定義式であったり、運動を求めるための方程式だったり、法則性を主張する式だったりして、多義的なので、文脈を記述・理解することに重点を置いた方がよいですよね。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「私は、意味や文脈を考えさせないで杓子定規に反応するよう子供に仕込むような教育方法・マルバツの付け方はよくないと思うだけです。「区別した方がよいものは区別した方がよい」とトートロジーを言っているだけです。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「言い争うつもりはありませんし、誰かを罵倒する気もありません。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「教科書を書いた人も、わかっていると思いますよ。「この本だけを読んで、このとおりに従え」というつもりではなく、現場の先生が説明を補ってくれることと生徒が自分の頭で考えることを期待していると思いますよ。理解すべきことのすべてを本1冊に書けるわけがない。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「「?」は疑問文のつもりです。 https://t.co/B1lIHbwdE8 ?をつけた心もしくは意味はなんだろう?」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「「∃?x∈D, f(x)=g(x) 」と書いたら、「f(x)=g(x)が真であるような x∈D は存在するか?」という問いです。あるいは、解集合 S = { x∈D | f(x)=g(x) } を求めよ(空集合か空でないか判定せよ)という問題だと言ってもよいです。@hiroki_f」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「疑問文という文型が記号論理学にあるかどうか知らないのですが、プログラムコード中の条件判定文はそういうものですよね。@hiroki_f」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「「∀?x∈D, f(x)=g(x)」は、「任意の x∈D について f(x)=g(x) は真か?」という問いです。あるいは、解集合 S = { x∈D | f(x)=g(x) } は D と一致するか?という問題です。@hiroki_f」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「自分で勝手に記法をでっちあげておいてナンですが、この「∃?」や「∀?」記法、けっこういいと思いますよ。あと、集合の一致についての疑問文「S=Φ(空集合)?」,「S=D?」と組み合わせれば、たいていの数学的疑問文は表現できるんじゃないかな。 https://t.co/J07Fk44Tdn」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「このくらいにしておきますが、自分も教科書的な本を書いたことのある人間として、ほんとこれは言いたいですよ。「揚げ足取りは建設的でない」と言いたい。 https://t.co/pV9yKziVX5」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「数学や物理学を大学以上のレベルで専攻した人が、小・中・高校の教科書をあげつらうことは簡単ですよ。つまらない。そんなに不満なら自分でもっといいものを出せばいい。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「このくらいにしておきます。」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「真偽の決定の問題は深いでしょうね。私の試みは、とりあえず疑問文は記号で書けるようにした方がいいんじゃないか、という提案です。疑問文に原理的に答えられるか?というのは大問題ですよね。 https://t.co/mYLOqdbNqJ」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「恒等式を書いているつもりでも変数の変域を明示されていないとやっぱり曖昧なので、私は三重イコールはできれば使いたくないです。 https://t.co/xiMGxt59E6」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「三重イコールを定義式に使う人もいて、どっちをどっちで定義しているのか曖昧だったりする(たぶん左辺を右辺で定義している)ので、私は定義式は X:=A(未知のX を既知のA で定めている) と書くようにしています。A =: X と書いてもよい。@L_native」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「そういうことです。意味を考えるべき場面と、意味は考えずに無心に計算した方がよい場面もあるので、また話はややこしいのですが。「意味を意識しない」ことを原理原則とするのはまずいです。 https://t.co/nz49MazjrO」 / Twitter
TANIMURA ShogoさんはTwitterを使っています 「このへんにしておきますね。」 / Twitter
ゲルバナさんはTwitterを使っています 「@tani6s 等式だけでは無く文脈まで含めないと判別できないのであれば、等式そのものを識別しているのでは無いので等式を分別すると言うのはまずいと思います。 ラフな書き方ですが、こんな認識を持ってます。」 / Twitter
ゲルバナさんはTwitterを使っています 「『=』の意味は「a=a」,「a=b→b=a」,「a=b ∧ b=c →a=c」「x=y → 任意の命題関数PについてP(x)↔︎P(y)」を満たすこと。 等式は 元と元の間の『=』な関係 方程式は ある部分集合を条件付ける命題のうち等式で表されたもの 恒等式は その等式が条件付ける集合が全体集合になっているもの」 / Twitter
なべきちさんはTwitterを使っています 「「=」の意味の違い、って言われると結構もにょるな。 啓林館数学2p21 https://t.co/5oUBK83FDL」 / Twitter

てらモス♋️さんはTwitterを使っています 「solve equation f(x) = 0 about x を ∃?x, f(x) みたいに書きたい気持ちは分かる(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「下もf(x)=0ね(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「まぁ表記法の問題は誤解の可能性が低くなる方向で好きにしてくれ(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「どうせアインシュタイン記法とかファインマンダイヤグラムとかありがたがるんでしょ(´・ω・`)」 / Twitter

型談義

サクラさんはTwitterを使っています 「型理論をすると,集合論が例に落ちるのでよさそう(これは罠で,一般性の階層を昇るとやりたかったことからますます遠ざかってしまう(しかしこれも罠で真の一般性を夢見ずして数学をする内在的意味が自分には見いだせていない(しかしこれも罠で外在的意味まで目を向けると云々)))」 / Twitter
サクラさんはTwitterを使っています 「ややもすると集合論的実現に拘泥してしまうという呪縛から早く解き放たれるべきという話もあるしな(留飲を下げられる点で福音なのやもしれないが).」 / Twitter
そくらてす@衛府嵐大学さんはTwitterを使っています 「型は集合ではないし、数学的な構造の存在は「集合論」で保証されているとする立場もあるので、アレな意見だな」 / Twitter
サクラさんはTwitterを使っています 「@7danmoroboshi 先のtweetは緩い気持ちで全く厳密な話を意識していないです.そういう反応を頂けると有難いです. 詳しくないのでもしよければ教えてほしいのですが,ZF集合論は「型が一種類の(型理論の意味での)理論」として捉えられないのでしょうか?」 / Twitter
サクラさんはTwitterを使っています 「@7danmoroboshi 緩い気持ちをもう少し言語化しておくと,「集合型」だけ定義し,その後は「集合型」を頑張って組み合わせていくみたいなことをイメージして呟いたものでして. なお,鍵括弧でくくった部分は未定義語で,どう定義するべきかさえ調べていないものです.」 / Twitter
サクラさんはTwitterを使っています 「@7danmoroboshi リプ等で教えていただけると有難いですし,とりあえずこれを読め的な概説記事とかを挙げていただくのも大変有難いです.」 / Twitter

選択公理

Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「【選択公理】を取り扱う意味(私見) 数学、とくに「論理」と「集合」は厳密でないと困る。 例:ラッセルのパラドックス 「集合」の定義には、現在、ZFC公理系(お約束)が多く採用されている。 例えば ・空集合は集合 ・自然数全体は集合 ・A,Bが集合⇒A×Bも集合 などが保証されている。」 / Twitter
Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「正確にはこれらを導ける幾つかの「約束事(=公理)」を仮定している。 一つ【微妙なライン】なのが「選択公理」 ・Aλ≠∅ ⇒ ∏Aλ≠∅ なぜ微妙なのか? 微妙っぽい命題を導けてしまう。例えば ・ツォルンの補題 ・バナッハ・タルスキーの定理」 / Twitter
Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「なぜ認めるか? 便利だから(?) 例えば ・基底の存在 ・チコノフの定理 ・代数閉包の存在 ・ハーン・バナッハの定理 進んだ話題: 公理の独立性、強弱、逆数学… 例えば https://t.co/Bil4SRMbfy など参照。ただし、博士進学くらいまでしないと理解できないかも。「9年数学基礎論講義」、なんちゃって😉」 / Twitter
Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「なぜ認めるか? 便利だから(?) 例えば ・基底の存在 ・チコノフの定理 ・代数閉包の存在 ・ハーン・バナッハの定理 進んだ話題: 公理の独立性、強弱、逆数学… 例えば https://t.co/Bil4SRMbfy など参照。ただし、博士進学くらいまでしないと理解できないかも。「9年数学基礎論講義」、なんちゃって😉」 / Twitter
す (終了)さんはTwitterを使っています 「あっ、KunenのFoundation of Mathematicsにも日本語訳あった(忘れてた)。 キューネン数学基礎論講義 https://t.co/qSyAOoqxxY」 / Twitter

山 形 聡 志 YAMAGATA, SatosiさんはTwitterを使っています 「@reonaarticle 佐藤健「証明責任とその周辺概念の論理プログラミングによる定式化」(https://t.co/g8Z7P1cIuZ)などが参考になるのではないでしょうか。玲於奈さんが,先日,Prologについて言及されていましたが,この論文の内容は,当該言語(の一種)の法的推論への応用研究とでもいうべきものです。」 / Twitter
東京大学法科大学院ローレビュー第4巻 - v04part05(satoh).pdf
mikumiku_alohaさんはTwitterを使っています 「白田秀彰さんの法律とプログラミング言語の話し面白い。 数式の厳密な証明のためにチューリングマシーンが考案されたように、法律でも厳密な解釈のために人工言語化という研究があったんですね。 「19世紀のドイツ法学界は、この法律の人工言語化を力強く推進した。」 https://t.co/Pjxje74Psa」 / Twitter
De Legibus et consuetudinibus Interreticuli
城戸 (Legalscape)さんはTwitterを使っています 「厳格に法を記述できるプログラミング言語を作った研究。F*を使った証明付きで、実際にフランスの税法関連のソフトウェアに法と食い違いがあるバグを発見できた。著者らはINRIAとMSR。 "[2103.03198] Catala: A Programming Language for the Law - https://t.co/gEZV4hZd7N" #みてる https://t.co/QZpzt9azqN」 / Twitter
[2103.03198] Catala: A Programming Language for the Law

users

@h_sakurai

h_sakuraiさんはTwitterを使っています 「プログラミング言語の型理論系統の論文は大体、イントロダクションでなぜ研究を始めたかとかどこに何が書いてあるかとか書いてあって、原語の構文があって操作的意味があり、型付け規則があって、それが正しいことの証明、関連研究、まとめって書いてあるので要約と図を見れば大体わかる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「図に使われている評価規則とか型付け規則は結局のところPrologの述語定義みたいなものになってるのでPrologを覚えて評価規則と型付け規則を書いてるだけだ。 構文は代数的データ型でASTを表したようなものかつPrologの木構造に対する文法定義みたいなものを書けばいいだけ。最低限これが欲しいんだよな」 / Twitter
h_sakuraiさんはTwitterを使っています 「ところが自作プログラミング言語界隈の言語は言語の仕様がないし操作的意味もない、型付け規則もないので原理原則がわからず、チュートリアルから体得的に覚えろ。みたいな話になりがちでよくないと思うんだよなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologなんて訳わからないから、C言語とかRustとかで書いた方がわかりやすい。みたいな話になるのはわかるのだけど、簡潔さを追求した場合にPrologに負けるだろって話が多くの人はわかってない。2022年元旦だな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「代数幾何の照明は楽しかったんだけど、プログラミング言語の証明はまだまだ楽しいと思えてないな。楽しいドリルが必要だろうw」 / Twitter
h_sakuraiさんはTwitterを使っています 「小学校からPrologを学ぶのがいいかどうかはともかく、中学生レベルでプログラミング言語を作ったとかいう人達が最初からPrologを触って言語処理系を作って理解したのちにCoqなどで証明を書き始めたら強いと思いますよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを理解しなくても一階述語論理は使えるし、証明をするのに便利な規則が必ずしもアルゴリズム的な規則であるとは限らない。だけど、動く規則はプログラミング言語の処理系を作る場合に必ず考える必要がある。Haskellの型クラスの型付け規則は別の研究者によって書かれており論文が出されている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語の場合は階層が色々あって大変なんだよな。 プログラミング言語そのものでは研究対象として大きすぎるのでモデルとなる小さい言語を作る。小さい言語について数学的な証明をする。それを使ってプログラミング言語が作られる。それを使って応用アプリケーションが作られる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「階乗計算をするプログラムは有限時間で必ず停止するとプログラムを見て何となく理解できる。それが通常のプログラミング言語やPrologの限界であるが、機能法を用いることができるシステムでは全てのケースを調べずに全てのケースで正しいことが証明できる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語の作り方の書き方に沿って丁寧に書かれてて良いと思うけど、理論面がおろそかなので操作的意味や型理論、様々な数学的性質とその証明がついてくると良いだろうな」 / Twitter
h_sakuraiさんはTwitterを使っています 「どうしてもPrologを言語実装する人達に進めたい理由は、日本の言語研究のレベルの底上げをしたいからなのだよな。 最終的にはプログラミング言語の様々な性質の証明をもっと多くの人に理解してもらいたいと思うけど、今趣味レベルで証明している人は数人みたいな状況なので敷居が高すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「C言語のレベルからOOPを使いこなすレベルにレベルアップする。 パターンマッチを使ったFPでの言語実装のレベルにレベルアップする。 その次に論理プログラミングにレベルアップして、最後に証明を書くステップに移行するのがより滑らかな段階的なステップアップになる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「論理型言語の実装レベルを一足飛びで証明するところにジャンプしようとするから多くの人々は挫折するのだろうから、Prologを使っての論理プログラミングの段階をプログラミング言語実装をしている人達に進めたいのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Rustのenumを使えば代数的データ型のようなことはできるけど、数学的なBNFでは無い。仕様を書く際にBNFを使って書く練習をする事が今の日本のプログラミング言語実装界隈の実力を底上げすることになる。そう思うのだけど、実装だけならPrologでいいし、証明するならCoqなどでやればいい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語の基礎概念読書会面白かった 導出書くの、めんどくせぇ 誰だ簡単だって言った奴は 簡単じゃないじゃん! 自動的に導出させたい って言っててやっぱそう思うよなぁっと思った TAPLに比べれば簡単だし導出木とか証明木を書き慣れるのにチェックツールあるのはいいと思うけど」 / Twitter
h_sakuraiさんはTwitterを使っています 「その辺のプログラミング言語と関数型言語の思想の違いは、定義するときに全部、証明を付けて定義している事だ。テストをいくら書いても抜けがあるかもしれないけど、証明されていて、その証明が間違いない事をみんなで確認して間違いないと言っているものは間違いないw」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語としてのCoqを理解したあとに、 タクティク一覧作ったり、 足し算だけに絞って証明したり、 宣言型言語として扱って証明したり、 関数の証明もしてみたりしてればしばらく飽きないというか面白な。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologで推論規則を書き下してプログラミング言語を書けました。 Prologを使うと、推論規則を動かしながら試してみることができるので形式的な型理論を理解する大きな助けになります。 数学的な証明と実装の間には構文主導な規則とそうでない規則があることがわかります。」 / Twitter
h_sakuraiさんはTwitterを使っています 「言語処理系の完全性であるとか、停止性であるとか、様々な性質を証明するにはCoqなどの定理証明系を用いられることが多いです。 Prologは処理速度も遅いですが、論理型言語のパラダイムでのプログラミング言語の作成経験は大きな財産となるでしょう。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@Awed_Urshy @ksu_nori こちらこそ、横から失礼しました。 Lispは論理型言語を作る言語。Prologは述語論理でプログラミングをするために深さ優先で規則を適用するチューリング完全にしたもの。Coq等の定理証明系は述語論理を使って証明をするために自動で論理展開を行わず基本的には手動で規則を適用するものだと思います。」 / Twitter
h_sakuraiさんはTwitterを使っています 「機械的な論理展開には限界があるから、今日のようなニューラルネットワークが必要になった。 一方で、一階述語論理を使って示された素晴らしい数学的な性質を示された言語であっても、自動実行できない規則による証明があるだけでは、プログラミング言語の実装はできない。」 / Twitter
h_sakuraiさんはTwitterを使っています 「論理型言語は、高速ではないけれども、プログラミング言語の実装の知識をより簡潔に理解できるようになる。更に論文も読めるようになるので、若いプログラミング言語を作ってみたい人たちには使って理解してみてほしいのだな。Prologで言語を作るのが当たり前になれば、後は証明をするだけだ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@aka94795262 ヒルベルト・プログラムをそのままやろうというわけでもないですし。 直観論理を元にCoqなどは数学をコンピュータ上で作り証明する仕組みを作り出せています。 プログラミング言語の研究は学者の技であり、 基礎は数学で作られます。 作られた言語を職人が使うのです。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prolog用の集合論的型システムは様々なプログラミング言語の理論を簡潔に記述しながらより形式的に型検査可能とするために必要となる技術である。 まずはその型システムの構築が必要であり、型システムが完成したらその型システムの正当性を証明する必要が出てくるだろう。」 / Twitter
h_sakuraiさんはTwitterを使っています 「MLとかHaskellも昔の遅いコンピュータの時代の言語でしかないし、その頃に開発された証明システムは高速化するために関数型言語で作られてた可能性なども考えると論理プログラミングで証明システムを作って機械証明とかも面白いと思うのだけどな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Scalaで関数型言語の方の素晴らしさを知り、OCamlでコンパイラ作りを学び、Haskellで純粋関数型言語を理解する。Prologで一階述語論理について理解して、Coq、ATSで証明プログラミングを理解した感じかな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語の本質的な事柄を簡潔に記述するのに便利な機能は、リスト、パターンマッチ、代数的データ型、BNF、バックトラック、単一化、一階述語論理、証明などなのでそれらの機能を持った言語を使うことが簡潔な理解につながる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「証明というと幾何の図形で、掃除だからとかなんとかは得意だった覚えあるけど、プログラミング言語の数学的証明なところに自然につながると嬉しいよなぁって思う。ワケワカラン大学の数学の思い出があって、再勉強すると辛さ倍増みたいなのあるw」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語を図解することは、実装する人と、証明する人と、使う人の3つの立場の人たちにとって理解を共有するために有用と言える。」 / Twitter
h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@ykstprg 高速なアルゴリズムを知っていて高速なプログラミング言語で書けば速くなるのは当たり前なのですけど、それが全てではないのでそこを理解してもらいたいですね。 線形探索は遅いですけど、理論的には単純なので理解しやすいし証明には便利なのですよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@wakatsuki_moe 汎用的なプログラミング言語は理論を構築するにはあまりにも大きいことが多いので、コアな機能のみを取り出してそれなりに健全性や完全性を証明するということは出来ていると思いますが、実用的な言語はあまり完全性も健全性も証明出来ていないことも多いと思いますよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「メタ理論、メタ定理とかの話はよく分からんのだけど、プログラミング言語の基礎概念見ると、導出規則だけ定義するということだけだと完全性や健全性が証明されていないので必ず成り立つとは言えないので、必ず成り立つことを証明するようなことをメタ理論というのかな。メタ定理は証明された定理?」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語の理論についても関数型言語を使って型検査した後細かい部分については定理証明支援系を使って証明するというのが主流なのでPrologはもてはやされているとは言えないし。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologも自動証明用に作られた言語でもあるのだけど、自動証明以外の部分の型システムやCoqのようなしょうめいシステムを作って安全で高機能なプログラミング言語を実現してそのメタレベルな仕事をする言語としてのPrologであれば場合によっては十分な力を発揮出来るのではないかなとも思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「数学は基礎を築いてそれを応用するのが物理だったり、プログラミング言語だったりするのだよな。数学者は証明を主に扱っているし、物理学者は数学を使って現実の現象を扱っている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「数学の証明の理論が述語論理を使うように作られていたりするのでそれを使ってプログラミング言語の研究論文を書いているから論理プログラミング言語で書くとわかりやすいって話なのだけどわからん人多いので参っちゃうのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「依存型などの型レベルのプログラミングや証明などのアイディアからTypeScriptやRust、Swiftなどの言語が作られているので静的型システムの理解も大事だと思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「論理プログラミングはminiKanrenとかのライブラリが各言語に用意されてるし、Prologのファミリーだけというわけでもなくて、一階述語論理を使った定理証明系の言語はまた違った文化としてあると思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「型システムを構築するときには論理的プログラミングが必要になるのだけど、高階論理プログラミング言語の世界だと見方を変えた論理プログラムの自動証明をするだけでいいので多くのプログラムは共有されるのかもしれないな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「一階述語論理は型理論などのプログラミング言語の研究の論文で使われてるし、定理証明系の言語などでも使われてるのだけど、関数が当たり前の時代なので述語だけでプログラムするのがアセンブラ的で嫌って思うんだろうなぁ。」 / Twitter

@kmizu

Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語でも、Coqくらいになると、証明に関する知識や理解が必要になってきて、既存のプログラミング言語に関する理解だけでは難しいので、そこで壁はある。ただ、HaskellやScala程度だと、既存の言語知識の延長線上で理解できて、そんなに壁がないというのが自分の印象。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「Coqは定理証明支援系だろというツッコミがあるかもですが、書いたコードの正しさを証明できるプログラミング言語としてみた場合、みたいな話です。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「数式が曖昧な時に()を囲むと曖昧さがなくなるというのも「なんとなくわかる」けど、腑に落ちない気がしていたり。 その辺りが「構文解析」とか「プログラミング言語の意味論」という概念を用いて、あるいは「定理証明支援系が存在することを知る」という辺りで氷解したのは、不思議です。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@xuwei_k なんかgdgd書いてしまいましたが、現実のプログラミング言語そのものの、ある機能の性質を証明する、というのを限られた時間コストでやるのは難しいので、性質を証明しやすいサブセット言語を作って証明するしかないわけです。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語の話に偏ってるのがなにか勿体ない気がする。実体験として、オートマトンと形式言語、カリーハワード同型対応、(形式的な)証明とか、独学では入りづらいが大学で教えてくれる有用な授業は他にある気がする。 >RT」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「Klassicを元にすれば割とサクっと純粋関数型かつ遅延評価で割とまともなの作れそうな気がしてきたけど、それはそれで超手抜きな感じがする……。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、call by nameはともかくcall by needを実装したことがないので訓練にはなるかも(サンクをメモ化すれば実装できそうな気がするけどあってるだろうか?)」 / Twitter

@mootastic

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「証明プログラミング (proofgramming) 言語Kind。見た目は TypeScriptっぽいが中身は Haskellで、より純粋な型および依存型をサポートしている。そのためCoq, Idrisなどと同じような目的にも使えるが、通常のWebアプリなどを書くことも可能。 https://t.co/TyiA75HeAs」 / Twitter
kind-lang/Kind: A modern proof language

@ksuenaga

Kohei SuenagaさんはTwitterを使っています 「POPL 2014: 依存型プログラミング言語。停止性の証明をプログラム中に書かなくても良いのが偉い(?)停止性を強制する論理の世界と、停止性を強制しないプログラムの世界とを分けている。」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「@ksuenaga プログラム意味論の世界で一番有名な教科書の一つです.トピックはプログラムの意味を数学を使って厳密に与える様々な方法や,与えた意味論を使ってプログラミング言語の性質を証明する方法です.東大理情の「言語モデル論」や京大情報学の「プログラム意味論」に関係があります.」 / Twitter
言語モデル論
Kohei SuenagaさんはTwitterを使っています 「プログラミング言語が作れて,コンパイラやインタプリタや型チェッカが書けて,検証手法の健全性の証明ができて,CS のすべての分野にまあまあ精通していて,結構いろんな言語でプログラミングができて,授業ができて,やや特許法がわかる.うーん.」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「今日のプログラミング言語処理系の質問受付セッションは,決定不能性の証明について語る会になった.」 / Twitter

@tanakh

Hideyuki TanakaさんはTwitterを使っています 「これらを達成するにはCよりも安全な言語、すなわち、次のような「汎用プログラミング言語」が必要: ・完全な依存型 ・トータリティの検査 ・タクティックベースの定理証明 ・他の言語のコード生成」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「37. Idris フル依存型プログラミング言語。正格で純粋関数型。文法はHaskellに似てる。これでなら僕も多少の関数を証明付きで書けた。I/OにEffectをつかってて、そこがユニークで興味深い、なんだけど妙に出力されるコードが遅かった。今は良くなってるのかな」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「もっぱら定理証明に使われてる依存型の処理系にあって、Idrisは強い型の汎用プログラミング言語標榜してたはずだから、期待してたんだけど、出てくるコードが遅いままなら、難しいよな…(´・_・`)」 / Twitter

@blackenedgold

κeenさんはTwitterを使っています 「Idrisそろそろ触っとかないとなーって思ってたところで丁度よかった。インタラクティブな証明もあるんだ。 プログラミング言語 idris - wkwkesのやつ https://t.co/3sZ9djbZG9」 / Twitter
κeenさんはTwitterを使っています 「証明もプログラミングも出来る言語派はtrusted baseが大きすぎて迫害されてるんだろうか」 / Twitter
2022年抱負 | κeenのHappy Hacκing Blog
プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog

@TakaoOzaki

尾崎隆大さんはTwitterを使っています 「@udzura Prologの大きな発見は論理式の間に副作用を挟むことによって、これまでのプログラミング言語(手続き型)と全く同様の仕事ができる、ということでした。その発見を無視するとPrologは定理証明器ですね。 #lpjp」 / Twitter
尾崎隆大さんはTwitterを使っています 「@owken64 @nobkz % Prolog '何が言いたいのかというと、 Prologを論理プログラミングであると考えて、定理証明がまっさきに適用分野なんだろうとか考えるかも知れないけれど、実は論理式がプログラム言語になるということが「面白かった」。この段階では『論理プログラミング』は少し後方にいた。そう考えます。'.」 / Twitter

@zacky1972

Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kis 本当はその証明も含めてプログラミング言語で記述できて,破壊的な修正をしようとした時にエラーになると良いのですけどね。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@n_soda @_ko1 おそらく手順としては,そのプログラミング言語で記述した任意のプログラムの停止性を証明できることを示せば,チューリング完全ではないことを示したのと同然だと思いました。示唆をありがとうございます。」 / Twitter

@tomooda

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「それはそれとして、まあ形式的な証明はできないけど、プログラミング言語が言語学的な意味でいうところの言語である以上、全てを形式化することは不可能だと思うよ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「まあでも、プログラミング言語ももうちょい自己修正機能があってもいいと思うんだけどねー。せめて「誤りが1レキシカルトークンのみであれば必ず正解に修正できる」みたいな特性が証明されている言語、かっこいいと思うなあ。誰かつくってクレクレ」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「形式手法というと「証明とか難しそう。無理。」という人がいるけど、VDMなんて普通のプログラミング言語でキッチリしたコードとユニットテストをちゃんと書ける人なら、簡単に習得できると思う。言語仕様は典型的なプログラミング言語より覚えること少ない。ちょっと構文が古風なだけ。」 / Twitter

@y_taka_23

チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第六章の証明。名前による束縛から de Bruijn インデックスへの変換は、評価の意味論を保存する全域関数である。 #hasmoku #heyhey_haskell https://t.co/7AQA5r4WKw」 / Twitter
concepts-of-proglangs/StaticScopes.v at master · y-taka-23/concepts-of-proglangs
チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第八章の証明。単純型システムを導入。型付け可能な式は実行時エラーを起こさず、その型に適合する値にまで評価可能。 #heyhey_haskell https://t.co/1Q1QINGeqB」 / Twitter
concepts-of-proglangs/SimpleTypeSystem.v at master · y-taka-23/concepts-of-proglangs
チェシャ猫さんはTwitterを使っています 「いま読んでいる『プログラミング言語の基礎概念』第 3 章の Coq による証明。実行時エラー(種類は区別しない)を含めた評価の全域性。 #heyhey_haskell https://t.co/D1dDUIwWcl」 / Twitter
concepts-of-proglangs/IntegersAndBooleans.v at master · y-taka-23/concepts-of-proglangs
concepts-of-proglangs/Functions.v at master · y-taka-23/concepts-of-proglangs
チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第五章の証明。関数定義が導入されてようやく Turing 完全に。 #heyhey_haskell https://t.co/hukDAJewCx」 / Twitter
concepts-of-proglangs/Definitions.v at master · y-taka-23/concepts-of-proglangs
チェシャ猫さんはTwitterを使っています 「『プログラミング言語の基礎概念』の Coq による証明。第四章(let 式による局所定義の導入)まで。 #heyhey_haskell https://t.co/AY3mk7XWQO」 / Twitter
concepts-of-proglangs/Metatheorems.v at master · y-taka-23/concepts-of-proglangs
チェシャ猫さんはTwitterを使っています 「『プログラミング言語の基礎概念』第二章の主張のうちいくつかに Coq で証明を付けました。 #heyhey_haskell https://t.co/CC2Ke7xv7J」 / Twitter

@shinji_kono

Shinji KonoさんはTwitterを使っています 「モデルは、プログラミング言語の実行時の変数の値としてとらえても良い。Prolog では、変数の値は基礎論のモデルの意味と実際に一致する。しかも、それは記号的に構成されていて、一階述語論理の無矛盾性の証明過程になっている。ただし、var と cut は除く。あ、assert もね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型の整合性を証明システムまで持っていくのは良いんだが、その場合の型はプログラミング言語の型とはちょっと違うよね。関数型言語の型とも違う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter

@fushiroyama

父さんはTwitterを使っています 「JAISTで特に印象深いのは緒方先生の関数プログラミングで、定理証明をしたりチューリング完全な独自言語の設計とそのインタープリタの実装、独自仮想マシンの実装とそのコンパイラの実装などを全15回で全部やるという野心的な授業であった。是非他の人にも受けて欲しいぐらい。」 / Twitter
父さんはTwitterを使っています 「ここ半月ほど高校生が解くような数学的帰納法の定理証明をひたすらやっていた。証明するのはペアノの自然数の積の可換則の証明みたいな取るに足らないものなのだが、通常の算数と違って、授業で使うプログラミング言語と与えられた部分式を使って証明するので、パズルのような面白さがあった。」 / Twitter
父さんはTwitterを使っています 「たとえば人間は自然数の加算が結合則と交換則を満たすことを知っているが、プログラミング言語はそれを知らない。なので証明したい定理の補題はすべて自分で用意しないといけない。式変形もアドリブではできない。なので人間には自明な式もテトリスのようにつなげていく。これが何とも言えず面白かった」 / Twitter

@gaxiiiiiiiiiiii

がくしさんはTwitterを使っています 「「プログラミング言語の基礎概念」に載ってるメタ定理、証明するのに補題があった方が良いヤツまぁまぁ多いな。」 / Twitter
がくしさんはTwitterを使っています 「「プログラミング言語の基礎概念」の二章までを証明した! https://t.co/ciVg0SQT8B」 / Twitter
CoPL/MetaTheorems.v at main · gaxiiiiiiiiiiii/CoPL

@EzoeRyou

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「あ、無限ループのあるプログラミング言語をCoqで証明することは無理なのかな。」 / Twitter
狂える中3女子ボレロ村上/陶芸C++erさんはTwitterを使っています 「チューリング完全性の証明って厳密にはどうやるんだろう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@bolero_MURAKAMI とりあえずプログラミング言語なら、チューリングマシンが実装できたらいいのでは。Clangではconstexprでチューリングマシン実装して証明しているみたいですし。http://t.co/tZyV18D1Fi」 / Twitter
狂える中3女子ボレロ村上/陶芸C++erさんはTwitterを使っています 「@EzoeRyou ふむふむ」 / Twitter
本の虫: うっかりチューリング完全になっちゃったもの

@kinaba

kinabaさんはTwitterを使っています 「@ranha 「 Gallina というプログラミング言語 ( 全部これで直接書くことも可能 ) と、普通の証明っぽい記述で Gallina のプログラムを書くための Proof Engine 言語&それ用の対話環境」を合わせて Coq 、という認識」 / Twitter
kinabaさんはTwitterを使っています 「単純に、プログラムとか関係なく、証明を書くための言語、と思いたい。CurryHowardとか持ち出すまでもなく、「モジュール化が重必要」「抽象化も重要」「究極的には組み込みの細かいステップの組み合わせで書かなければならい」ものの設計にはプログラミングと同じ考え方が使えるというだけ」 / Twitter
kinabaさんはTwitterを使っています 「#WMM Nominal Isabelleの招待講演:「α変換を上手く仮定して変数名は変にぶつからないとする」という規約はプログラミング言語に関する証明には無いと全てが異様に複雑化して死ねるのですが、機械化するとこの複雑化がもろに降りかかって全員死ぬ、というのがこの分野最大の問題」 / Twitter
kinabaさんはTwitterを使っています 「…ので、つまりその証明というのは、与えられた問題を強引にプログラミング言語と見なしてチューリングマシンを実装、に他ならない。というわけで、なんでアナタそんなものでプログラム書こうとするの…的な怪しい"言語"が溢れていて楽しいです。」 / Twitter

@keigoi

KUWABARA HiroakiさんはTwitterを使っています 「pi-calculusはチャネル名の置換がキモであり鬼門」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@hkuwa 特にプログラミング言語的には名前のaliasingと密接に関わっているのだと思います. 証明を試みるとそういう反例がしょっちゅう出て泣かされる感が」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@tfujikura 分離論理はホーア論理+αなので命令型(手続き型)プログラミング言語の検証なら何でもいけると思います。ただあくまで論理でありツールではないので即効性のある使い道は…Coqの実装を使うかぎりでは、地道に証明を入力するしかないです。ただ自動化の余地はあると思います」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@yoshihiro503 Coq案「Coqプログラマーズアンカンファレンス - Coq庵」 Coqは形式手法の一つである定理証明のためのツールですが、Coqのプログラミング言語としての側面や、Coqでソフトウェアを開発できることは産業界においてあまり知られていません。」 / Twitter

@qnighy

Masaki HaraさんはTwitterを使っています 「前提的な話として、証明支援系で論理をメタ実装するのと証明支援系以外のプログラミング言語で言語または論理の処理系を実装するのは近い問題領域になる。どちらも文字列を直接扱うことは稀で、せいぜい構文解析前の変数名を記録しておくくらいのことが多いはず。」 / Twitter
Masaki HaraさんはTwitterを使っています 「では束縛変数をどう管理しましょうかってなったときに番号の振り方に流儀が色々ある」 / Twitter
ツルゲーネフさんはTwitterを使っています 「@qnighy いろいろありがとうございます。まだよく理解できてはいないのですが、例えば証明支援系においては∀xのxの部分をnat型として扱ったりするとよいということでしょうか?(もし何か参考になるライブラリなどご存知であればそれも見てみたいです)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@e9g de Bruijn index, de Bruijn level, unique idなどを使うのであれば通常natで書きます。HOAS/pHOASを使うなら別の書き方になると思います。」 / Twitter
ツルゲーネフさんはTwitterを使っています 「@qnighy なるほど、ありがとうございます。 普段何気なく論理学の教科書とか読めていますが、ちゃんと式それ自体を扱おうとすると案外難しいということなんですね。de Bruijnなど名前は聞いたことがありますが理解できていないので勉強してみます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@e9g 教科書的な論理学で言うところのα変換やcapture-avoiding substitutionが難しいという話なのかなと思います。かわりに計算機に親和性の高い別の方式が使われているだけで。 (それで思い出しましたが、natを使って教科書的なα変換を実装する、というのも選択肢としてはありますね)」 / Twitter
ツルゲーネフさんはTwitterを使っています 「@qnighy なるほど!勉強になりました、ありがとうございます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「一流のプログラミング言語は一流の証明支援系を持っている (C++: LEAN, Haskell: Agda2, OCaml: Coq, SMT: Isabelle etc.) と思っているので、僕の中ではRustはまだ一流ではない」 / Twitter
ELD-R-ESH-2さんはTwitterを使っています 「@qnighy SMTはSMLではなく…?」 / Twitter
Masaki HaraさんはTwitterを使っています 「@eldesh 確かに……! Sledgehammerの印象が強すぎて間違えたのかもしれません。」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみに僕は、プログラム証明をがっつりやっているわけではないですが、後者(通常のプログラミング言語からの証明条件抽出)のほうに好印象を抱いています。」 / Twitter
Masaki HaraさんはTwitterを使っています 「今はvim/emacsとか、静的型つき/動的型つきなどがよくネタにされるが、2030年頃には「証明支援系でプログラムを書いて通常のプログラミング言語にエクスポートする派」と「通常のプログラミング言語で書いて証明条件を抽出して証明支援系で示す派」がプログラマの鉄板ネタになる」 / Twitter
Masaki HaraさんはTwitterを使っています 「@utataquiyoshi あれ実体はより低水準な形の証明を出力するメタプログラミング言語だし自動証明も充実してるほうなんじゃないかな たぶん」 / Twitter
Masaki HaraさんはTwitterを使っています 「Q. なぜわざわざプログラミング言語に関する証明をするのか?定義が正しければ、証明はたいてい退屈なのに。 A. 定義はたいてい間違っている。 ――出典不詳 (TaPLより)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@yoshime1994 Coqは、その対応関係(Curry-Howard同型)に基づいて、証明をプログラムとして書けるように設計されたプログラミング言語のうちの一つ。」 / Twitter
Masaki HaraさんはTwitterを使っています 「Hindleyが単純型付きラムダ計算に主要型が存在することを証明し,Milnerがその声質を保ちながら単純型付きラムダ計算を拡張した.これを実装したプログラミング言語がMLである.現在ではアメリカ系のSMLとフランス系のOcaml(←板書の表記)が使われている.という内容でした」 / Twitter
Masaki HaraさんはTwitterを使っています 「@li_saku 百聞は一見に如かず!!!と言いたいですが、一応言葉で説明すると、Coqはプログラミング言語ですが、(1)特殊な型(依存型)が作れる (2)プログラムが異常終了・無限ループに陥ることなく必ず終了することが保証されている という性質のために、プログラム=証明とみなし」 / Twitter

@esumii

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「いわゆるeigenvariable condition?」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「そもそも「任意にとる」という日本語がおかしくて、誰の「任意」なのかあいまいだし、条件ついてるので「任意」ですらない。このへんの変数や束縛の理論はプログラミング言語理論、特にλ計算の(定理証明支援器上の)形式化で数十年以上の研究が。#いつもの我田引水だけど本当」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「Nominal logicとかde Bruijn indexとかlocally namelessとかPOPLmarkとか。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング言語理論(ホーア論理)の期末試験でfib(30)を求めるプログラムの正当性証明で,本当にfib(30)を具体的に計算した答案は当然に満点にしました.」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「メタと対象の区別とかはプログラミング言語理論を定理証明器上でやるのが最適(陽マ」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「不完全性定理で数学基礎論が失敗」はこれと同じレベルの議論 https://t.co/VUotROqoGk」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「Cはチューリング完全なプログラミング言語である。チューリングマシンの停止性は決定不能である。よってHello, world!の停止性は証明できない。」https://t.co/wbrzel2AHu」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「雑なたとえとして、「不完全性定理で数学基礎論ガー」という言説には「停止性問題の決定不能性で計算機科学ガー」と言っておけば良いのではないか(わりと本気 https://t.co/g2NwDgZZBW」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「ハードウェアの性能向上&定理証明等の形式検証手法の発展で現実的に。すべてのレベル(CPU、OS、プログラミング言語)でメモリ安全性、強い動的型付け、情報流検査」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@kzhk @alltbl Coqのような定理証明つきプログラミング言語環境で書く、とかでしょうか?(ちなみに決定不能だから証明できないということはないです。停止性問題は決定不能でも、停止性が証明されたプログラムはいくらでもあるのと同様)」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/KNrgHM0MTw TAPLは題名(と1章)の通り「プログラミング言語の」型システムの話で、定理証明系の話は(ほとんど)しないと明記されているので、チャンスですね」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「同じ「コンピュータ」上の「計算」でも、定理証明(支援系)まで含めれば普通に等号の公理で「等しければ(イコールであることが証明できれば)置換可能」ですが、確かに狭義のプログラミング(言語)では難しそうです。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「証明」と「計算」の対応を考えると、「同値であることの証明」は「表現を変換するアルゴリズム」に相当するので、後者ではいちいち「表現を変換」しないといけない。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「まれに」じゃないと思うプログラミング言語理論脳(ほぼすべての証明が帰納法と言ってもあまり過言ではない分野」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「理論計算機科学(プログラミング言語理論)なら公園の地面に木の枝でλ式とか帰納法や余帰納法の証明とか書いてました」 / Twitter

@ytakanoster

${jndi:ldap://ytakano.com}さんはTwitterを使っています 「リストとモノイドならRustでできそうだなと思ってやったけれど、さすがに証明は無理だった。 https://t.co/1lRXuIk6tt」 / Twitter
monoid.md
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「forall t1, t2, t3で勝手に証明してくれないかな」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「こういうことやるならHaskellの方がよさそう。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqなら証明もできる(証明できるとは言っていない)」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqは、証明できそうだなと思ったやつが、全然証明できないしやべえよ。」 / Twitter

histric

histric-1

水槽さんはTwitterを使っています 「結論は数学とプログラムは同じもの。数学はある問題を証明するにあたって、数式を使用する。プログラムはある仕様をのものを実行(誤りがないコードを製作する)するために、プログラミング言語を用いる。両方とも命題(数学の問題、仕様)が真であることを証明するもの。」 / Twitter
Mikio YoshidaさんはTwitterを使っています 「考えてみれば、λ言語をプログラミング言語として適用するという研究は、1960年代にあった。論理型言語の方では、ユニフィケーションがアルゴリズムとして完全であることが証明されたのは、1965年である。Lispは1962年。とにかく大昔だ。」 / Twitter
Yoichi HiraiさんはTwitterを使っています 「@ranha はい、手続き型の言語のプログラムを、直観主義述語論理もどきの証明から抽出できるじゃん! これにモジュールとかつければ未来のプログラミング☆ 的な。 ちなみに、論理式とループの骨組みを組み合わせて論理式扱いしていて、そこまでするかと思いました。そこまでするのが度胸かも」 / Twitter
YAMADA KiyoshiさんはTwitterを使っています 「eナントカ tacticsを利用して証明をよりコンパクトにしようとこれまでに行って来た証明を見直しているのだが,ここだという箇所を見つけられない.プログラミング言語にRefactoringがあるように,CoqのためのRefactoringルールがあるはずだ.」 / Twitter
Takayuki HayashiさんはTwitterを使っています 「「(関数型言語の)プログラムが代数的な性質を持つことによるメリットを一言で言えば、そのプログラムの正しさが集学的に証明可能となることです。」とのこと。「プログラミングHaskell」の第13章はその例を示しているんではないかと…。」 / Twitter
計算さんはTwitterを使っています 「単純型付λ計算と(命題)論理の対応を見せてプログラミング言語を書く作業と証明を書く作業が同じもんですと言った計算と論理の話は素敵だったと思う。演習では系の上の証明書きまくっただけで理論的基礎にはほとんど触れてませんが。」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「Coqと普通のプログラミング言語の中間的なものならば世間の抵抗感も少ないのかなぁ。普通のプログラミング言語+アノテーションで自動証明(Whyとか)と、証明無しでも使える依存型プログラミング言語(Agdaとか?)と、どっちの方向がより望まれているんだろうか。」 / Twitter
ウィキペディア しりとりさんはTwitterを使っています 「部分評価⇒Smn定理 http://bit.ly/9PPdp1 smn定理とは、再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている[1][2]。これを最初に証明したのはスティーブン・コール・クリーネである[3]。s-m-」 / Twitter
ウィキペディア しりとりさんはTwitterを使っています 「カリー化⇒Smn定理 http://bit.ly/aG6mdO smn定理とは、再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている[1][2]。これを最初に証明したのはスティーブン・コール・クリーネである[3]。s-m-」 / Twitter
Atsushi TanaseさんはTwitterを使っています 「証明型言語という萌芽も教えてもらった。証明を書くようにプログラミングを記述していき、コンパイルできた時点で動作が『証明』できてるから、ユニットテストも要らないぜ、というもの。明らかに『次』だね。」 / Twitter
えくすわいえくす / xyxさんはTwitterを使っています 「@qnighy_ 割とどうでも良い質問なんですが、Coqの中にあるプログラミング言語の仕様を全部入れて、その上でCoqを書いたプログラムを入れて、中のCoqの受理する証明に対応する命題が外のCoqでも成立することを(帰納的に)示したパッケージとかやっぱりあるんですよね?」 / Twitter
Takuya HitomiさんはTwitterを使っています 「プログラミング言語のMetatheoryに関する証明では、はじめの定式化をミスると、うまくやった場合と比べて証明が平気で10倍から100倍多くなる。この辺りは先行研究が存在するので、研究の成果を参照しましょう。」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「関数型プログラミング言語を使って、型チェックが厳密になったとしても、作り捨て感覚でプログラミングしてる限り状況は変わらないんじゃないか。 http://t.co/RoB5p3xU それはその通りで、Coqの証明も、他人の可読性をかなり意識しないと、後から読めない。」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「.@halcat0x15a 是非!面倒だけど楽しい、楽しいけど面倒、な定理証明系の世界へようこそ!あと関数型言語で型レベルプログラミングで苦労するくらいなら素直に依存型すればいいと思うよ!>そろそろCoqとか手を出してみたい。」 / Twitter
TOKUMOTO SusumuさんはTwitterを使っています 「Coqは対話的定理証明器。Bメソッドは集合論だが、Coqは高階論理に基づく手法。フランスのINRIAで開発。特徴は証明のための言語tacticを備えていること、関数プログラミング言語のコード生成が可能なこと #WOCS2」 / Twitter
ふぉっくす(0x1C)@ΔチカトさんはTwitterを使っています 「@ShigumaRika_mdk まぁ場合によるけど 三平方の定理の証明とかだと 370通り以上あるわけだし あながち数学言語は間違いじゃないかもしれない(プログラミング言語でもいろんな方法で作れるしね 」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「プログラミングで何か確認したいとき、慣れた言語のREPLを立ち上げたりquickcheck的なテストツールを使って簡単に確認したり。AlloyやSPINみたいなモデル検査ツールに慣れてると簡単に確認出来る事柄の幅が広がるし、それはCoqなど定理証明系でも同じ、だなぁと思った。」 / Twitter
Yuta OkamotoさんはTwitterを使っています 「「関数型言語の長所は、高階関数による高い記述力と証明によるプログラミング。短所は実行時オーバヘッドの高さ。」 #redajp」 / Twitter
内村航平に似ているさんはTwitterを使っています 「@zmpn_x31 そもそも「チューリングマシンと等価」ってどういう意味なんだかよくわからないんですよね…プログラミング言語はチューリング完全ということらしいですが、その証明を見たことがないんですよね…」 / Twitter
川崎・J・悠太 (旧登録名: 川崎・G・悠太)さんはTwitterを使っています 「@hukuv というよりも、「完全かつ無矛盾な理論体系は存在し得ない」ということを、ゲーデルとチャイティンが数学とプログラミング言語で証明してしまったからね。」 / Twitter
おくさんはTwitterを使っています 「@kb_asd それはよかった。まぁ書いたプログラムが仕様(というと抽象的すぎるけど)を満たしてることを証明できてしまうやつですね。必ず停止するプログラムしか掛けないのでプログラミング言語とはちゃいます。」 / Twitter
青栁 悠太さんはTwitterを使っています 「有理数(整数のペアに同型)列のうちコーシー列であると(Coq的に)証明できるもの全体を考えれば、実数のうち可述的なものは取り扱えると思われる。 QT @osa_k: 任意の無理数を表せるようなプログラミング言語を設計するとして,そもそもどうやって表記するの?」 / Twitter
みょんさんはTwitterを使っています 「@fumieval 意味論を付加して考えるんですか? チューリング完全なプログラミング言語とは一階述語論理の定理の証明に使う言語(というより文字と記号の列)と呼べるんじゃないかと」 / Twitter
ふみ a.k.a.DJ MonadさんはTwitterを使っています 「@myuon_myon 無論、意味論があってこその言語です。(理想的な)プログラミング言語は直観主義論理における命題の証明を記述する言語、というのは確かにそうですが、元々の議論における「数学」と同じように扱うのは違和感があります」 / Twitter
[KH]分隊長さんはTwitterを使っています 「関数型言語ならバグを含む余地がないようにプログラミング出来るとは言うものの,本当に特化した人が集まらない限り完成したソースからそれが分からない気がする・・・。 ソースが数学的に正しい事を証明するプログラム作ってるって言ってたけどそれが要求仕様と一致する証明は一体・・・?」 / Twitter
あやちぽんさんはTwitterを使っています 「数学ガール ゲーデルの不完全性定理、読了。楽しかった。心に残った台詞がたくさんあった。不完全性定理証明は関数型言語のプログラムみたいでとてもかっこよかった。プログラミング言語って不完全性定理の証明にすごく影響を受けているんじゃないかって感じた。」 / Twitter
Mikio YoshidaさんはTwitterを使っています 「意外なのが、論理プログラミングの起源。FPより古くて、1974年。R.Kowalskiの "Predicate Logic as Programming Language" という論文。一階述語論理の証明系がプログラミング言語として解釈できることを言った。」 / Twitter

histric-2

Yoshihiro503さんはTwitterを使っています 「@pasberth @chomado Coqさんはフランス生まれで、純粋関数型プログラミング言語です。だからHaskellやScalaちゃんと近い感じ。でも型の表現がすごすぎて、言語内で数学の定理が証明できるほど。」 / Twitter
snisimuさんはTwitterを使っています 「ラムダ計算 : "この計算体系が重要なのは、その内部で計算が記述できる単純なプログラミング言語であると同時に、それ自身について厳格な証明が可能な数学的対象ともみなせるからである。" 型システム入門 より」 / Twitter
コルンさんはTwitterを使っています 「クイックソートは書けるのにボゴソートが書けないプログラミング言語なんて、普通に考えて無理な気がするけれども。Coqとかみたいに、計算量を証明して、多項式時間であることが証明できなければコンパイルできません、なんて言語にすれば良いのでは?(でも、そういうのを作る意味がない気がする。」 / Twitter
襖屋石蔵 Ishizo FUSUMAYAさんはTwitterを使っています 「結城浩『数学ガール ゲーデルの不完全性定理』を読んだ. ロゴがアンビグラムの双倉図書館に行く. Peano の公理を含む形式的体系を Gödel 数で表し, プログラミング言語を作るかのように述語を定義し, ある文とその否定に形式的証明が存在しないことを示す. #book」 / Twitter
立派プログラマさんはTwitterを使っています 「@echo_ymbk うん、そうですね。きゃめるさんとかScalaとか両立してるし。でも型推論とオブジェクト指向は致命的に相性が悪いので(継承が絡むと推論が失敗することが証明されている)関数型プログラミングには問題ないけど、関数型言語には相性が悪いっす。」 / Twitter
島田 俊輔さんはTwitterを使っています 「ただ、依存型で証明駆動プログラミング! みたいのを眺めていると、それもう証明だけかいてprologみたいな言語で走らせればよくね? とちょっと思うのだ」 / Twitter
yvtさんはTwitterを使っています 「プログラミング言語の仕様を自動で機械的に証明できる方法ないかな (あいまいな点の無さとか)」 / Twitter
yvtさんはTwitterを使っています 「計算機による自動定理証明がすでにある訳だしプログラミング言語用にうまく利用できそう (よく知らんけど)」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「@kagami_hr 現時点で、通常のプログラミング言語と同等の工数で開発出来るものは無く、多分 10 倍ぐらいかかるかと。ただ、処理系の自動化や証明支援、ライブラリの充実で3倍程度効率化され、一方で私自身の証明力が3倍高まれば、同等になるよな、とは思って修練してます。」 / Twitter
林檎あめ綿帽子さんはTwitterを使っています 「よく分からないんですけどプログラムが証明である[らしい]ならばそれぞれのプログラミング言語の扱いにどれだけ長けてもプログラムにやらせたいと私たちが望むことをプログラムに実現させるには数学的な証明の能力、センスが別途必要ということですか?」 / Twitter
zakkiさんはTwitterを使っています 「究極的には、日本囲碁規約と同程度の分量と難易度の記述で日本ルールを定義できるプログラミング言語の実現と、日本囲碁規約の無矛盾さの証明と、それが与えられたときに勝利を目的関数に設定するだけで万事解決する強化学習アルゴリズムの実現って問題設定でどうか。全部割と無理ゲーっぽい。」 / Twitter
ありさんはTwitterを使っています 「機械学習がなぜある程度できるかというと、それができるライブラリがあるからだと思っていて、もし機械学習の実験をするのにOSから作らないといけなかったら、とてもじゃないけど誰も実験できないと思うんですよね。数学の証明がプログラミング言語でしづらいのはそういう意味だと思ってました。」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「プログラミング言語の操作的意味論にあたるものが論理体系では証明論的意味論と考えて、だいたい合っています?」 / Twitter
かのうさんはTwitterを使っています 「プログラミング言語特論 月3 (聴講) プロ言でやった内容+表示的意味論、進行と保存の定理と証明、再帰型等について学んだ。半分ぐらいはプロ言で学んだ知識でついていけそうという印象を受けた。ただし英語のリスニング能力がなさ過ぎて、先生の話す速度に全然ついていけかった。」 / Twitter
はる💉💉さんはTwitterを使っています 「プログラム言語のif文って、数学の証明で使う「AならばB」と全然ちゃうので、プログラミング教育って罪だよねぇ。。。」 / Twitter
はかりさんはTwitterを使っています 「プログラミング言語の基礎理論、λに直積型が入ってるの面倒だなあ...と思いながら帰納法の仮定そこだけ証明しないみたいな横着をしてる。今のところ書く量が増えてるだけな気がするしままえやろ...」 / Twitter
はかりさんはTwitterを使っています 「再帰的データ型を扱えるλ計算、リストが実装できたりしてプログラミング言語っぽくなってきたので型付けの証明が楽しくなってきた。型付けの証明が全部再帰関数の計算を辿るみたいな感じになってそれも楽しい」 / Twitter
╹ω╹1inguini.hs(リングイネ)さんはTwitterを使っています 「@FuelSan 数学というか論理学? カリーハワード同型っていうプログラミング言語の型と命題、プログラムと証明の対応関係があって、線形型っていうのは様相論理という考え方?をプログラミングの型に持ち込んだもので、データをちょうど一回しか使えないように制限することで」 / Twitter
watcherさんはTwitterを使っています 「大昔 ・テスト駆動開発(TDD) ・命題証明的型プログラミング(カリー=ハワード対応) の合わせ技で ①仕様書から確認テストを書き ②それを制約記述言語等にコード化し ③命題証明的型プログラミングでスケルトンや等価コードを生成 できないかと模索した事を思い出しました ①は今でも有効だと思います」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「私はプログラミング言語理論の専門家のつもりですが、プログラムに「不具合が必ず存在するのは理論的に証明されています」という事実はありません。」 / Twitter
ttさんはTwitterを使っています 「五十嵐『プログラミング言語の基礎概念』のメタ定理の証明について、練習問題の解答に自信がない。嘉田『論理と集合から始める数学の基礎』に帰納法の解説があったから、そちらを理解できるか確認してみることとする。」 / Twitter
もりたさんはTwitterを使っています 「variableみたいなのって定理証明支援系だとよくあるけど、普通のプログラミング言語だとあんまり見ないんだけどどうなんやろ うまい事使えば便利だと思うけど、副作用とかあると落とし穴が多すぎって感じなんかな」 / Twitter

histric-3

NaOHaq(苛性ソーダ)さんはTwitterを使っています 「. @chomado チューリング完全なプログラミング言語で書かれた任意のプログラムが「停止するかどうか」を判定するアルゴリズムは存在しない(これは数学的に証明できます)ので、プリンタさんは停止しないデータが投げ込まれる恐怖に怯えなくてはなりません。」 / Twitter
SUHARA HiromichiさんはTwitterを使っています 「語順(演算子の順序)についていうなら、Coqという定理証明系に組み込まれた関数型言語は、Prologに似た優先順位文法で演算子を定義できますが、Prologよりもっと柔軟に、複数項や後置の演算子も定義できます。 こちらでは誰か日本語プログラミングをやっていたような。。。」 / Twitter
shs_kzさんはTwitterを使っています 「今回の計算機では、高階論理(HOL)の記述が可能な言語と、その処理系・定理証明系(Isabelle)とを使って、対話系・バッチ系を組み合わせてケプラー予想の証明記述の厳密さと正しさを関数プログラミングで半自動計算している雰囲気。 人が書く証明に近い記述が可能なのだそうな。」 / Twitter
shs_kzさんはTwitterを使っています 「ちょっと驚いたんだけど、IT分野にも使えそうな?仕様技術言語 Z を 証明環境 Isabelle/HOL にのっけた研究も実績が上がっているらしい。 仕様技術言語で記述されたものを、実装環境にあわせたプログラミング言語にプリコンパイルできたら面白いなあ(SF)」 / Twitter
shs_kzさんはTwitterを使っています 「8進法による円周率πのn桁目の数字をダイレクトに求めるBBP公式は計算機が「発案」したのだが、その際に使われたプログラミング言語であるPSQLアルゴリズムの開発者ヒラマン・ファーガソンの息子、サミュエルが、トム・ヘールズとともに、ケプラー予想の最初の証明を与えていたんでしたか。」 / Twitter
7594591200220899443さんはTwitterを使っています 「コンパイルするとついでにSEGVしないことを証明するプログラミング言語が必要」 / Twitter
異国カラスさんはTwitterを使っています 「Hilbert上にHilbertインタプリタ実装できればHilbertが無矛盾で完全な言語ということが証明できるんじゃね? / “世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qi…” http://t.co/GphTzfKG5F」 / Twitter
Tomoaki MasudaさんはTwitterを使っています 「でもって、この真逆の考え方が(たぶん) Coq とかの証明プログラミングで、動作が「明確」であれば、積み上げたものも「明確」に立証される。 乱暴な話だけど、F# のような関数型言語で書くと、部品自体が明確なので、組み合わせも明確になり、明確であればそれに対するテストはいらない。」 / Twitter
みやびさんはTwitterを使っています 「プログラミング言語のチューリング完全ってどうやって証明するんですか(興味」 / Twitter
いで@いで庵さんはTwitterを使っています 「@miyabi3180 brainf**kでも実装すればいいのでゎ」 / Twitter
みやびさんはTwitterを使っています 「@ide_an チューリング完全なものを実装できればその言語もチューリング完全ということですね。brainf**kはなぜチューリング完全なのでしょうか…?」 / Twitter
いで@いで庵さんはTwitterを使っています 「@miyabi3180 yes(厳密にはメモリサイズの制限があるので線形拘束オートマトンと等価らしいけど)」 / Twitter
みやびさんはTwitterを使っています 「@ide_an あぁ、万能チューリングマシンは無限に長いメモリを持っているはずだからですね。ありがとうございました。」 / Twitter
いで@いで庵さんはTwitterを使っています 「@miyabi3180 すまん、質問読み違えた。チューリング機械をエミュレートできるから、でokかな」 / Twitter
みやびさんはTwitterを使っています 「@ide_an なるほど。」 / Twitter
suzuki_ithさんはTwitterを使っています 「変数を書き換えられる言語で証明プログラミングするには、時間軸を導入する必要があるな」 / Twitter
イカ娘さんはTwitterを使っています 「ただ問題は、証明自体がメンド臭いのに、プログラミング言語自体でその辺がホンマ自動で証明出来るようになるかどうかなんじゃなイカ。」 / Twitter
RyuseiさんはTwitterを使っています 「カリー゠ハワード対応を知っていないと、型と命題・プログラムと証明の関係とか分からないし、ラッセルの型理論が今のプログラミング言語の型にどうつながってくるのかの説明も足りていない」 / Twitter
mmYYmmddさんはTwitterを使っています 「プリンキピア・マテマティカの形式系は型と階が絡み合う複雑怪奇なものであったが、その後ラムジーの提案やラムダ計算との結びつきを経て、チャーチにより単純型理論として整備された。型の概念はプログラミング言語にとってなくてはならないものであり、多くの証明支援系が型理論の恩恵を被っている。」 / Twitter
くるぶしさんはTwitterを使っています 「たぶん、操作的意味論の証明についていえば、TAPLよりプログラミング言語の基礎概念のほうがわかりやすいきがする。」 / Twitter
RyuseiさんはTwitterを使っています 「だから、命題を、特定のプログラミング言語の型として表現して、その型を持つプログラムを書くことができれば、その命題は証明できたことになるわけ。で、そういうプログラムを書く支援をしてくれるシステムが、定理証明支援系。」 / Twitter
RyuseiさんはTwitterを使っています 「より正確に言うと、ある論理体系と同型対応がある特定の型システムをもっているプログラミング言語においては、「ある型を持つプログラムを書く」ことが「ある命題の証明を書く」ことと同じになる。」 / Twitter
小金井ささら | 冬コミ南め37a(2日目) | ユキちゃんかわいいさんはTwitterを使っています 「プログラミング言語の無矛盾性ってどうやって証明するんだろう」 / Twitter

histric-4

山貂さんはTwitterを使っています 「@suimye 定理証明からMLへの流れとしては、証明も一種の手続きであることを考えれば、証明のために書かれた言語がプログラミング言語として応用できることは納得できるところかと思います。実際にLCFが何物で、どんな変遷を辿ったのかは未だわからないので、今後調べてみたいところです。」 / Twitter
本田そこさんはTwitterを使っています 「プログラミング可能なロボットのプログラミング部分を制御しようとすれば、独自の言語を作り可能な挙動なりを意味論で制御せねばならず、となればそのインタプリタが正しく動くかどうかは定理証明系によって数学的、機械的に保証されるべきという流れになるのではないか。ということを思いました。」 / Twitter
猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「アルゴリズムやデータ構造を新しく学ぶと、なぜそれでうまくいくのか証明をつけたくなるし、適当なプログラミング言語で実装して動かしてみたくなる。それがプログラマーという生き物でしょう。」 / Twitter
煙人計画さんはTwitterを使っています 「あるプログラミング言語の処理系がチューリング完全ならば、必ずチューリング完全な機械によって模倣できる。チューリング完全の証明が、そもそも、そういうものだから。そして、チューリング完全でないプログラミング言語はほとんど存在しない。」 / Twitter
Atsushi IgarashiさんはTwitterを使っています 「@OKU_K @skymountain_ プログラミングとの対比で考えると本来は違わないはず、と思うのですが、やっぱり現状の証明支援系の証明言語が、プログラミングでいうとアセンブラみたいな低級言語に近いってことな気がします。」 / Twitter
LmsytjさんはTwitterを使っています 「Typed Racket盛り上がってなさそうだけど可能性を感じる。 証明プログラミング言語以外で、整数演算と同じ効率で自然数の階乗を定義できるようなプログラミング言語が他にあるようには思えない(知らないだけかもしれないけど)」 / Twitter
ふくださんはTwitterを使っています 「@yoriyuki @smizusaki 詳しくないので間違っているかもしれませんが、Proof netsの証明図とそのCut除去を代数的に捉えたのがGoI、というのが私の理解です。あと計算機科学ではプログラミング言語の実装手段としてGoIをトークンマシンと解釈する研究がありますIan MackieのPOPL論文とか」 / Twitter
今年からてめぇのシノギはナマコ獲りださんはTwitterを使っています 「@nao_2C4 現在のCPUとメモリによるアーキテクチャは(メモリが無限に大きいとみなせば)チューリング完全であると証明されている。よって、そのマシン上で動くプログラミング言語はチューリング機械の性能を越えることはできない。」 / Twitter
ふくださんはTwitterを使っています 「GoIって「Linear Logicにおける証明 modulo Cut除去」を代数的に表現しているので,Ian MackieがやっているようなGeometry of Implementtationといったプログラミング言語の実装手段として使われる理由が良くわからなったんだけど,」 / Twitter
⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「Qモナド(TemplateHaskellでコンパイル時に展開されるやつ)がIOモナドと同等っぽいので 実質Haskellは動的型付き静的型付き定理証明系プログラミング言語」 / Twitter
元○○ & effectさんはTwitterを使っています 「1)まず対象をできるだけ論理的に記述し、常識に反する結論(認知的バイアス)が導かれることを確認する。2)次に1で得られた論理的記述を論理プログラミング言語を用いて計算化し、自動証明を行う。3)その機械学習をモデル化し、行動経済学的な意味付けを解釈する。」 / Twitter
金狐さんはTwitterを使っています 「魔法はプログラミング言語なので、停止性問題並びに不完全性定理により、コードのバグを予め調べることはできず、言語自体の無矛盾さも証明できない。従って全人類を対象とする魔法は極めてハイリスクなものとなり実装されたことはない。」 / Twitter
淡中☆圏さんはTwitterを使っています 「@phykm プログラミングしている時に長い関数を小分けにすることは訓練できますが、数学している時に長い照明を小分けにする訓練というものをあまり聞いたことがありません。これは自然言語の欠陥が一因ではないでしょうか。また長い証明をしていると、仮定が絡まって、現在の環境が見えなくなるのも困ります。」 / Twitter
פיקםさんはTwitterを使っています 「@tannakaken 証明の小分けとか教科書の大定理とかを除いあんまやらないですもんね… 前提や目標命題を含めた環境管理が動的にふわっと行われてて読者のお察しがつらいのはよくわかります」 / Twitter
yoriyukiさんはTwitterを使っています 「プログラミング言語にシームレスに統合されてる証明システムってAgdaくらい?(CoqもGallinaをプログラミング言語と見ればよいのか。)」 / Twitter
Takashi MiyamotoさんはTwitterを使っています 「@blackenedgold Coqで何をやりたいか次第かと。プログラミング言語に興味があるならソフトウェアの基礎(SF)は良い教材だと思う。数学の形式的証明に興味がある人は、SFの最初だけ読んであとはssreflectライブラリの勉強が良いかと。HoTTに興味のある人もいるし。」 / Twitter
shs_kzさんはTwitterを使っています 「それがいつの日になるかわからないけれど証明支援系の言語でもってプログラミング言語の仕様を記述する時代が来るのではないかと思う。」 / Twitter
きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「@ebc_2in2crc いえいえ。例えばCoqというプログラミング言語があって、数学的な証明を記述することが出来ます。そこからOCamlやHaskellのコードを生成して実行可能にもできるのです。ただ、おそらくえびさんが困っている現場で適用するのは難しいだろうなぁという。」 / Twitter
td2sk🤔️さんはTwitterを使っています 「任意のチューリング完全なプログラミング言語はQuineを持つか?という疑問が浮かんだけど3秒で否定の証明を思いついた: 言語AがQuineを持たなければ終わり。持っていれば、言語Aとほぼ同じ仕様でQiuneになっているものは末尾にnopを加えなければいけない、という言語Bで反証」 / Twitter
ころさんはTwitterを使っています 「@karupanerura 他の言語での実装の正しさの証明となると、その実装を証明できる命題で表さないといけないのでかなり厳しいです。別のアプローチとして、定理証明支援系(=一種のプログラミング言語)で実装を記述し証明して、それを実際に使いたい言語に変換して使う方法があります。」 / Twitter

histric-5

p進大好きbotさんはTwitterを使っています 「プログラミングは命題論理の自動証明までをひとまずの目標にしていますけど、ついでなので形式言語と形式論理をちゃんと(計算機に特化させず数学と同様の方法で)実装させたいと思ってそっちばかり掘り下げてるので中々進まないですね。あと競技プログラミングっていうのに出れるようになりたい。」 / Twitter
p進大好きbotさんはTwitterを使っています 「形式論理は集合論まで実装させたいけど、それはあくまでプログラミングの勉強のために数学と同じ方法を選んでいて実用的じゃないので、それとは別に実用性のある方法で数学も実装させたい。」 / Twitter
ちゃーしゅーねこさんはTwitterを使っています 「証明支援系で検証したコードをプログラミング言語にエクスポートはなんとなく雰囲気程度にはわかるんだけど、「通常のプログラミング言語で書いて証明条件を抽出して~」のほうがさっぱりなにをやってるのかわからん」 / Twitter
スマートコンさんはTwitterを使っています 「依存型のあるプログラミング言語なら、「環である」という証明まで含めてクラスの一部にすればよい」 / Twitter
Noriyuki OHKAWAさんはTwitterを使っています 「たとえ証明書き易い言語でも,証明が目的でなくプログラム書くのが目的だと型レベルプログラミングやってられっかってなるということは案外知られていない」 / Twitter
すなえもんさんはTwitterを使っています 「チューリングマシンと型なしラムダ計算とwhile-if言語がすべて同じ計算能力を持つことを証明するところから始まるプログラミング入門。」 / Twitter
はくどーさんはTwitterを使っています 「Q「なぜわざわざプログラミング言語に関する証明をするのか?定義が正しければ、証明はたいてい退屈なのに」 A「定義はたいてい間違っている」 TaPL3章章末より。」 / Twitter
永遠の自動労働人形さんはTwitterを使っています 「型のある言語を使えば小さいテストは必要ないって怪しくない?」 / Twitter
とりさんさんはTwitterを使っています 「@chakku_000 テストしたい性質をすべて型として記述すれば理論上は可能だと思いますが,そういう言語を使ったプログラミングは,アルゴリズムの記述というより定理証明がメインになりそうですね... 目指せ!静的検証と動的検証のベストミックス!」 / Twitter
永遠の自動労働人形さんはTwitterを使っています 「@TypelessType 時代は定理証明!?」 / Twitter
とりさんさんはTwitterを使っています 「@chakku_000 証明苦手デス(-_-) IDEみたいに「この型が必要だよ」くらいのノリで,証明したいことを入力したら「この定理があればいけるよ」って教えてくれるやつがあったら,いつも通り補完キー連打で解決できるのに...」 / Twitter
zehnpaardさんはTwitterを使っています 「「再帰や高階関数をベースに、式の同一性を証明しながらプログラミングする」というのはAlgol系言語の習得とはある程度直交的なプロセスだという印象」 / Twitter
もっちぃさんはTwitterを使っています 「合理と推論規則を用いたフォーマルな証明が楽しめる!サポートサイトにチェックツールが公開されてるよ!!/プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) サイエンス社 https://t.co/BKzdH6ftfV @amazonJPから」 / Twitter
もっちぃさんはTwitterを使っています 「❌合理 ⭕公理」 / Twitter
MAEA2さんはTwitterを使っています 「Coq、全然しらんけどあくまで証明支援?だよね?」 / Twitter
MAEA2さんはTwitterを使っています 「Coq自体が定理を証明できるんだっけ?」 / Twitter
ГоваさんはTwitterを使っています 「@MAEA_2 一応プログラミング言語だし書いたコードOCamlとかHaskellに変換できるで」 / Twitter
MAEA2さんはTwitterを使っています 「@cloudear8 なるほど。変換可能ってことは正しさが保証されてるってことになるか。ただのイメージなんやけど、人間には追いきれなさそうな論理チェックとかを支援してくれるもんなんかなとか思ってた。デバッグとか一種の論理チェック大会やし。」 / Twitter
ГоваさんはTwitterを使っています 「@MAEA_2 もちろん証明の自動化とかもできるでー! イメージでいうと型の機能がめっちゃすごいプログラミング言語で、Javaでいう例外がキャッチされることが保障されるやつの100倍すごい機能でプログラムの性質が証明できる感じ」 / Twitter
MAEA2さんはTwitterを使っています 「@cloudear8 なんか伝わったぞ!Coqすげえ!」 / Twitter

histric-6

Cr@ネコ募集中さんはTwitterを使っています 「NANDだけですべての計算ができるなんて証明をしてしまうからNANDしか使えないプログラミング言語を作るバカが生まれるんだ……」 / Twitter
けけもとさんはTwitterを使っています 「俺が注目している証明系言語 Top3を発表します。 ・Dafny チュートリアルを少しだけ齧っただけだけど、契約プログラミングの事前事後条件っぽいものを元にそれが成り立つかどうかを検証してくれるっぽい。Coqを使いこなすのは難しそうだけど、これならワンチャン?Microsoftが作ってる。(続く」 / Twitter
けけもとさんはTwitterを使っています 「・Agda 日本語のドキュメントがあり、それが証明支援システムとしての解説ではなくプログラミング言語としての解説をしてくれているので有難い。 ・ATS 定理証明ができる実用的な言語を目指している。俺言語の方針と似てそうなので参考にしたい。」 / Twitter
ねっけつさんはTwitterを使っています 「@iketikumegane そう、創作性が気になってた(ω) 誰が記述しても同じようになるのかは議論の余地がある。その理屈だと、プログラムのコードそのものに著作権が認められるのと違いが見えにくいんだよね(特定のプログラミング言語において、プログラムと証明は類似している)。特に複雑な証明の場合どうなるんだろう」 / Twitter
飲酒さんはTwitterを使っています 「メタ定理の証明だとか言語処理系の検証だとか,プログラミング言語についてのあれこれだと,同じような手順で証明できるような場合分けが多かったり,そんなケースが言語の拡張で増えたり減ったりしがちなので,強力な自動証明でぶん殴りたい感じがある」 / Twitter
ふくださんはTwitterを使っています 「プログラミング言語理論や証明論では,重要な結果がフランス語の博論にしかないことがあって非常に辛い」 / Twitter
adaさんはTwitterを使っています 「RT 異世界魔法がプログラミング言語だったが依存型言語なので証明が辛すぎる!」 / Twitter
わかつき@E鯖さんはTwitterを使っています 「@destiny_gaia @Keyneqq ツイトするタイミング逃しちゃたのでココへ;^^ 多分、「演繹」と「推論」と「証明」とが混ざっちゃてると思うの(違ってたらごめんなさい;) 演繹定理 をググる先生に聞くと良いかも 余談:プログラミング言語に関して 「カリー=ハワード同型対応」を調べてみると面白いですよ;^^ :証明支援システム」 / Twitter
Kazutaka OgakiさんはTwitterを使っています 「1)関数の定義を書く 2)1で定義した関数についての定理を書く 3)2の定理に対する証明を書く 4)証明済みの関数を安心して使ったり、他のプログラミング言語に書き出したりする 普通の仕事だと2)で仕様を書き、 1)として作ったコード、 に対して3)で証明する。 ということになるだろうか」 / Twitter
スマートコンさんはTwitterを使っています 「@mr_konn よく考えたら λProlog の後にも普通に lean とか idris とか cubicaltt とか RedPRL とか触ってたわ……(定理証明系をプログラミング言語だと思っていない並感想)」 / Twitter
こなみひでおさんはTwitterを使っています 「@akinori_ito 大きくちがうのは,言語的だということ,試行錯誤による探索が可能ということじゃないでしょうか。ソースは言語的だしトライアンドエラーでも恥をかかずに進められるわけで。最後に成功した時が楽しい!と思う人はプログラミングの学習者には多いです。数学の証明はできるやつがその幸せを知っている。」 / Twitter
夕暮寝子さんはTwitterを使っています 「CakeMLは証明付きのStandard MLの実装みたいですね(ググった) プログラミング言語として使うのが目的で証明を書くための言語というわけではなさそうです #マシュマロを投げ合おう https://t.co/6gwuOtXofY」 / Twitter
⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「そういえば必要時評価がプログラミング言語に存在するんだから、それに対応する証明方法があったりしないかな」 / Twitter
KoryさんはTwitterを使っています 「プログラミング言語みたいな形式言語で証明を書くやつ、なにがいいかって行間が一つも許されないことなんですよね 何が困るかというと命題などのエンコードが無限に分からなくなる」 / Twitter
川向薫さんはTwitterを使っています 「定理証明っぽいことをする .why 言語とプログラミングをする WhyML (.mlw) 言語に分かれてるらしい」 / Twitter
飲酒さんはTwitterを使っています 「プログラミング言語の基礎概念 TaPLのダイジェスト的な内容.学習曲線が緩くなっているので,この本を読んでからTaPLを読めば理解が捗ることでしょう.全体を通して大ステップ意味論を採用しているのは謎(メタ定理の証明つらくない?)」 / Twitter
so_undさんはTwitterを使っています 「"関数型プログラミング言語と仕様記述言語の特徴を持っています" "関数を定義してプログラムを組み立てていくという点では、Coqは多くのプログラミング言語と同様です。その上でCoqでは、定義した関数の性質を数学的に述べて、それを証明することができます"」 / Twitter
たたもさんはTwitterを使っています 「@0918nobita inference ruleは証明論・論理学寄りの分野ではシークエント計算として、プログラミング言語寄りの分野では操作的意味論として登場します。前者は既に挙げられた「情報科学における論理」、後者はhttps://t.co/eZm03EjPvC がおすすめです。両者はカリーハワード同型対応で密接に関わっているとされます」 / Twitter
zerosum "porter" bridgesさんはTwitterを使っています 「プログラミング言語の基礎概念は、中学生の頃に初めて代数の証明問題を解いてた頃の気持ちになれるので、青春を思い出したい人におすすめ」 / Twitter
すとまとさんはTwitterを使っています 「来年の目標はプログラミング言語作ることです」 / Twitter
tkrさんはTwitterを使っています 「@stmtk_01 BF」 / Twitter
すとまとさんはTwitterを使っています 「@kgtkr あれはチューリング完全の証明に使うだけ。プログラミング言語とは認めない」 / Twitter
あぷりばーどさんはTwitterを使っています 「(ところでプログラミング言語のチューリング完全ってどうすれば証明できるんですか)」 / Twitter
らいパン粉さんはTwitterを使っています 「@projectappbird チューリング完全なやつのシミュレータを作れば証明できるぜ。 例えば、ライフゲームとか、チューリングマシンとかラムダ計算とかのシミュレータを作る。」 / Twitter
あぷりばーどさんはTwitterを使っています 「@elipmoc101 確かルール110もそうでしたっけ 一見作るのは簡単そうに見えるけども…どうなんだろう」 / Twitter
らいパン粉さんはTwitterを使っています 「@projectappbird チューリングマシンが一番楽そう。 C++のテンプレートがチューリング完全って判明したのも、テンプレートでコンパイル時チューリングマシン実装したから。」 / Twitter

histric-7

ねっけつさんはTwitterを使っています 「数学の証明で「これは帰納的な性質を証明しようとしてるから帰納法使う」とか「AがBと異なることを示すために保存量を計算する」みたいな方針と同じような形で、プログラミング言語における実装方針を書くことができるかもしれない?(というかそれがデザインパターン?)」 / Twitter
TojoQKさんはTwitterを使っています 「これができる静的型付けのプログラミング言語って依存型を持った証明プログラミング言語とTyped Racketしか知らないのですが、他に存在するのでしょうか?」 / Twitter
ふろど#つくばセンターの主さんはTwitterを使っています 「@RQprF1IJ8yieje6 チューリング完全は完全チューリングマシンを記述する能力があるかどうかで決まる指標。 簡単に言うとある言語Aでチューリング完全性が証明されている別のある言語Bが実装できるならAはチューリング完全。 プログラミング言語ならばチューリング完全。」 / Twitter
ぴあのんさんはTwitterを使っています 「@7danmoroboshi なるほどー。ただそれだと、ロジックにおける証明論的意味論とかプログラミング言語の意味論(の一部)を考慮してないような…? [そもそもsemanticsという言葉が時代につれいろんな使われ方をしてるから統一的に説明するのも無理筋か]」 / Twitter
大王 a.k.a. S.S.H.さんはTwitterを使っています 「超準解析+定理証明支援系とか超準解析+プログラミング言語意味論とかは気になる」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「少なくともMLでは(定理証明機の操作言語だった背景もあり)圏論に強く由来するはずです。 どの時点からかは知りませんが、おそらくFPの時点でも圏論が応用されていたんじゃないかと思います。 今日FPの影響を受けない言語の方が少ない中で、圏論を知らなければプログラミングできないとはなりえません。」 / Twitter
みきしぃさんはTwitterを使っています 「計算困難性証明とか実質プログラミング言語間の移植作業だし」 / Twitter
Kusunoki matohさんはTwitterを使っています 「高校でやる命題論理、数学における証明の話、プログラミングとかからの類推。ぜったいこういう要請多いでしょ。統一的な知識の集積の形式化、妥当性検証の自動化、集合知とかの文脈でもよく見る。なのにどこで語られてるのか全く知らない。自然言語処理が一番近い。見逃してそう。」 / Twitter
猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「ちなみに誤解されがちだけどsedは正規表現の置換だけではなくて(←めっちゃ多い誤解) ラベル張ってループ書くこともできるし、実質的に(メモリの物理的な容量という制約に目を瞑れば)無限のスタックを積めるプログラミング言語と考えることができて、チューリング完全であることも証明がついています。」 / Twitter
猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「ちなみに四年くらい前に、同じくチューリング完全であることが証明できるプログラミング言語っぽくないマクロプロセッサーですが、m4のクォートがLispのクォートに考え方か近くてm4でLispの処理系を実装しようとして挫折した経験があります。」 / Twitter
猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「わりと「プログラミング言語自体」と証明論に昔は興味あったので、そういうことばっかしてた。」 / Twitter
小林聡@京都産業大学さんはTwitterを使っています 「@Alwe_Alwe @takum97 tは一般に関数記号を含むので関数の計算をするわけです。普通に数式の変形と考えることができますが、関数型プログラミング言語のプログラムのように見ることが多いです。証明の正規化と同じような応用があります。というかある意味tの値の計算は証明の正規化のようなものです。」 / Twitter
ルキ@超高校級の🥺さんはTwitterを使っています 「solid原則や、プログラミング言語のパラダイムに関しては同意だが、べつに他の本にも書いてあるような気もする プログラミングとは広義のユークリッドのやり方みたいな証明法 ってのは同意です これは何となく思ってた事だし、数理論理学の教科書にも書かれている」 / Twitter
nisizakiさんはTwitterを使っています 「数学の定理の証明を理解するのと、プログラミング言語のライブラリのソースコードを理解したり、OSやコンパイラのソースコードを理解しておくのは、似てるのかな・・・ ( ・∇・)」 / Twitter
アライグマ@ミタライさんさんはTwitterを使っています 「そのチューリングマシンと同じ計算能力を持つと証明された形式体系ないしは(必ずしも数学的とは限らない)構造物のことを「チューリング完全」と呼ぶのだ.チューリング完全であれば計算ができるし,処理もできるのだ.このチューリング完全の要素はプログラミング言語に必須の条件なのだ.」 / Twitter
はりーさんはTwitterを使っています 「Moveってプログラミング言語が気になる。なんか自動証明?してくれるって感じ??」 / Twitter
福音さんはTwitterを使っています 「型システムとか証明系の計算が決定的なのに対して、確率を絡めた体系を作るのを、密かにいつかの自分の仕事だと思ってる。プログラミング言語ではあんまりとも思うも、自然言語処理では必要になってくるはず、と思ってる。」 / Twitter
wbydo / Hibiki SakuraokaさんはTwitterを使っています 「続き - 証明駆動プログラミングという分野を知る - Coqという言語触る→こっから3分岐 1. GUI前提な使い方が嫌だとか、現実的に開発をサポートとかはまだこれからだとか感じたのでとりあえずやめる(Agdaに期待) 2. 記号論理学がわからんということで本借りる。まだ読んでない。」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@y_bonten ZF系の公理化におけるクラスの扱いは、証明論の発想がないとわからないと思います。プログラミング言語屋さんには、「クラスはマクロです」でいいのですが。」 / Twitter
森羅万象の皆様と対話する丁寧ちゃんさんはTwitterを使っています 「@sanjutsu_yu あ、本当だ、よく見ると証明の式になってる!初見で一瞬プログラミング言語か何かかと思いましたw」 / Twitter
TojoQKさんはTwitterを使っています 「型なしの定理証明支援系のプログラミング言語を作っているのだけど、型があれば解決することがあまりにも多すぎるな……。関数を第一級にする場合の懸念事項に型があれば解決することが多い。あと、pair? でない値に対する car と cdr の結果について考える必要もなくなるし……。」 / Twitter
TojoQKさんはTwitterを使っています 「昨日は大した根拠もなく、契約と遅延評価は相性が悪くて組み合わせられないのではないかと不安になったけど、少し触った限りでは問題なさそう。 Lazy Racket と Racket の Contracts をベース言語として証明プログラミング言語を作る。 https://t.co/tfGST6TATT」 / Twitter
はちけーさんはTwitterを使っています 「今のディープラーニングブームの反動で、次は数学的に証明できる系が流行る。ディープラーニングでSLAMするなの流れとも近いし、プログラミングの静的型付け言語もその流れ。定理証明支援系もワンチャンあるかも。でもそういうプログラムを書く作業を支援するのにディープラーニングが使われてくる。」 / Twitter

histric-8

zehnpaardさんはTwitterを使っています 「ラムダ計算と現実的なプログラミング言語の関係の発見経緯は考えてみると複雑だな。プログラミング言語の発明以前からラムダ計算がそれら(未来の)言語の「計算」部分に関しては同等かそれ以上であることが証明されていたわけで。」 / Twitter
Yak!さんはTwitterを使っています 「どんなプログラミング言語でも人(あるいは同一人物でも気分)によって書き方が変わるものだと思うが、現状だと自分のCoqの証明は予測不能レベルにある。」 / Twitter
エポキシさんはTwitterを使っています 「「授業で扱った概念がプログラミング言語でどのように実装出来るか」っていう課題に対して「授業で扱った『写像』は全てが実装可能なわけではない。それを証明する。」っていう逆張りレポになっちゃうけど大丈夫かな」 / Twitter
入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「プログラミング言語は正しく制約がつけばつくほど構造的で証明しやすくなっていくもので、Haskellなんかはいい例で代入もループもなく、宣言的にプログラムを記述するんだが、HTML+CSSも宣言的にUIを記述してチューリング完全でもあるので、実質Haskellを超えたモダンなプログラミング言語だよね。」 / Twitter
kPfeさんはTwitterを使っています 「証明プログラミングでの証明は問題なくできるのだけど、証明した内容を自然言語で求められると脳内で変換できずに詰む」 / Twitter
みょんさんはTwitterを使っています 「@gada_twt Idrisは貧弱ながらランタイムを備えてるので普通にプログラミング言語としても使えることと、割と機能が多いけどCoqほど複雑でないので色々挑戦的だし頑張ってるなという感じはあります マンパワー足りてなさそうなのがアレですね…(定理証明界隈大体そうですが)」 / Twitter
かに〜た/限界大学生/人生オワコンさんはTwitterを使っています 「1+1=2の証明って高校生の時は何言ってんだ??ってなるけど、大学入ってプログラミングとかると言語によっては割と理解できる。」 / Twitter
飲酒さんはTwitterを使っています 「@ose20_ Software Foundationsのλ計算あたりの話は変数束縛の取り扱いが微妙で,de Bruijn indexでもlocally namelessでもなかった記憶があります.定理証明支援系を使ってプログラミング言語について形式的に議論する時はここがつらいので,僕は主にAutosubstとかを使ってde Bruijn indexに直してやってます」 / Twitter
myaoさんはTwitterを使っています 「@zehnpaard 圏論と集合論みたいな違いもあるし、証明論とモデル論みたいな違いもある気がするし、どうなんですかね? プログラミング言語程度には数学分かれてると思いますが。」 / Twitter
Hans - the working PhilosopherさんはTwitterを使っています 「@h_sakurai @TakaoOzaki But the question is if this borders could not me crossed. Or in other words: I believe that possibility and power of logic is not unwrapped to full extend」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@y_bonten 証明可能性はプログラミング言語理論のほうでは操作的意味論にあたることに気づいて、証明可能性も意味論と言えるやんと思ってしまいました。」 / Twitter
SUHARA HiromichiさんはTwitterを使っています 「@tamami_tata @tsatie コンピュータの上で圏論を「する」なら、Haskellのような普通のプログラミング言語よりも、定理証明器 (Proof assistant) を使ったほうがよいと思います。」 / Twitter
たかじんさんはTwitterを使っています 「プログラミング言語で配列の実行中の境界チェックを省けるかどうかの証明ってどうやるんだろう。SSAでできるのかな。難しそう。」 / Twitter
しょうやさんはTwitterを使っています 「・意味論などなくとも、適切な構文定義と処理系の作成で機能するプログラミング言語は作れる。 ・しかし動作についての証明の枠組みがない。 ・導出規則と判断形式の定義、三段論法を用いて評価値が何になるかの証明を構成できる。」 / Twitter
tknさんはTwitterを使っています 「推論エンジンとしてSouffle(論理プログラミング言語Datalogの拡張?)、MonoSAT(SAT/SMTソルバ)、Vampire(定理証明機)を使い分けるようなことが書いてあるけど、パフォーマンス評価でVampireは全然スケールしなかったとのことで結果にも載せられてない...結局使われているんだろうか。」 / Twitter
WikipediaクイズBOTさんはTwitterを使っています 「問題番号:95999, 再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている。これを最初に証明したのはスティーブン・コール・クリーネである。 これなんだ?」 / Twitter
⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「TaPL、名前がむずかしいのがいけないと思うので 「自作プログラミング言語を証明してみた!~型の安全性~」 とかにするといいと思う!!」 / Twitter
carnageさんはTwitterを使っています 「@nobokko チューリング完全かどうか、は世の中を見ると必要条件では無さそう。チューリング完全性が証明されていなくてもプログラミング言語として扱われているものがDSLに存在しそうだし、自作言語でいちいち万能チューリングマシンを作ってみたりはしないと思う。」 / Twitter
Masaki HaraさんはTwitterを使っています 「プログラミングを勉強するにはプログラムを書けばよくてプログラミング言語処理系を実装する必要はないのだが、証明を正しく書けるようにするカリキュラムを作ろうとすると証明の書き方だけではなく数理論理学に片足突っ込んでしまうという問題があると最近思ってる」 / Twitter
Furidosu μ'sic foreverさんはTwitterを使っています 「@hosimiyaprog モデリング言語:Alloy、TLA+、B(Cの前身とは違う)、OCL、VDM、Z モデルに指摘できる。プログラミング言語に見えるけど、プログラムをできない。 証明助手言語:Lean、Isabelle、F*(F-starと読む)、Coq、Idris 数学定理の証明に指摘できる。 プログラミング言語研究のフロント:Haskell」 / Twitter
Kazunori SatoさんはTwitterを使っています 「ラムダ計算等を除いて、普通のプログラミング言語ではコードの等価性を証明したりcanonical表現を導出できないって時点でサイエンスなのかこれ🤔ってなる」 / Twitter
とがぁぁさんはTwitterを使っています 「プログラミング言語を作るときに「コンパイラをその言語自身で記述する」ってよくやるけど,証明ができる言語を用いたら言語のリファレンスをも自身で証明しながら記述できたりするのかな」 / Twitter
⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「そう考えると、Elmは例外送出しないし無限ループもしないので、プログラミング言語じゃなくて定理証明支援系言語」 / Twitter
珠響そうき🌒情報系VtuberさんはTwitterを使っています 「プログラミング言語に対して無矛盾性証明的なのやって、厳格かどうか判定しようぜ」 / Twitter
元@あほらしさんはTwitterを使っています 「証明系プログラミング言語みたいにモデリングDSLですよ.」 / Twitter
瀕死さんはTwitterを使っています 「@ITF19_sky 弊学類の数理論理学は「情報数学 A」で命題論理の基礎的なところをやって,「論理と形式化」の前半で一回述語論理の証明の演習をひたすらやるみたいな感じですね.あとはプログラミング言語への応用の話をやる講義がいくつかという感じです.」 / Twitter
TojoQKさんはTwitterを使っています 「証明駆動で Lisp を作ろうとすると eval/apply の停止性が証明できないという問題に到達するであることが見えている。じゃあ、チューリング完全じゃなければいいかとか思うけど私の知っている Lisp ライクで必ず停止することを示せるプログラミング言語といって思いつくのは ACL2 しかないんだよな。」 / Twitter
kodai 休養期間中さんはTwitterを使っています 「操作的意味論・表示的意味論をきっちり考えながら Coq で ML 系のプログラミング言語処理系を実装したいんですよね 推論規則とかメタ定理の証明が Coq で書けたらたぶん幸せになれるだろうから」 / Twitter

histric-9

timelerさんはTwitterを使っています 「Coqなんかはチューリング完全ではないけどプログラミングっぽいアトモスフィアを醸し出しているので、定理証明支援系はプログラミング言語ww」 / Twitter
スマートコンさんはTwitterを使っています 「Coq, Agda, Idris, Lean など停止性(あるいはguardedness)が証明されない関数は実装できないが、定理証明系でありつつ一応プログラミング言語でもあるのでは」 / Twitter
ぐるぐる系SQLさんはTwitterを使っています 「@yhara 定理証明支援器系はチューリング完全ではないけどプログラミング言語とみなせるのではー、とか」 / Twitter
𝚝𝚊𝚔𝚊𝚖𝚒 𝚝𝚘𝚛𝚊𝚘 𝑓:(🧼,👏,💉×2)→☕️³⁶⁵さんはTwitterを使っています 「今見てる TLA+ もチューリング完全ではなさそうなんだけど、定理証明や形式仕様記述方面ってプログラミング言語というより DSL と認識しているんだけど、プログラミング言語と呼ばれたいなにか理由ってあるんかな?」 / Twitter
ぬまち #疑わしきはバツせずさんはTwitterを使っています 「素人考えですが、プログラミングって言語がいろいろあって、はやりすたりもあるので、重要なのは原理から物事を組み立てられること、つまり証明が自力で書けるってことだと思ってます。この認識、あってますか?」 / Twitter
(change of )*stateさんはTwitterを使っています 「一般のプログラミング言語に定理証明系のような依存型が入ったらautoconfやmakeは要らなくなるの? →多分。でも人間の平均的知性でtypeとfully-quantified kindが混在する状況を理解するのは難しいと思う」 / Twitter
スマートコンさんはTwitterを使っています 「最初から定理証明系として設計され依存型がある Agda と、汎用プログラミング言語だったのがより強力な表現力を得るために後から依存型をエミュレートするための機能を追加して行っている Haskell、というそもそもの姿勢の違いがあり、それはその言語で作業する際のメンタルモデルにも現れるという話」 / Twitter
逢瀬さんはTwitterを使っています 「プログラミング言語の基礎理論、Wの健全性と完全性の証明書いてあるな...楽しみだな...」 / Twitter
飲酒さんはTwitterを使っています 「プログラミング言語なんて1つ覚えれば大差無いとは言われがちだけど,チューリングマシンと帰納的関数(あるいはλ計算)の表現能力が等価であることの証明とか本当に差が大きすぎてやりたくないレベル」 / Twitter
Solha@sugerfieldさんはTwitterを使っています 「要するにこれが出来たことにより、HTMLはプログラミング言語ではない、という証明になるわけですね。」 / Twitter
⊥さんはTwitterを使っています 「@7danmoroboshi リプライ失礼します、ダメットは論理結合子については色々言っていたと認識してるんですが、プログラム言語についても何か言及があったんでしょうか?(それともカリーハワード同型対応などが念頭に置かれている感じでしょうか?)」 / Twitter
そくらてす@衛府嵐大学さんはTwitterを使っています 「@liewecmays あ、そういう意味ですか 単に「証明論的意味論」という意味論があるのかという話であれば「あります」という話になりますが、「プログラミング言語の証明論的意味論」があるのかと言う話であれば「聞いたことがない」と答えることになります。」 / Twitter
そくらてす@衛府嵐大学さんはTwitterを使っています 「@liewecmays ただ、Hoare Logic などを介することによって何か類似の話が出てくる可能性はあります(そうだったらおもしろいなという話なので、あまり真剣に捉えないでください)。」 / Twitter
Koji SaitoさんはTwitterを使っています 「プログラミング言語でも、言語の機能が高いほうがむしろ教育コストは低いように思えるんだけどなぁ。低い方が簡単、という発想をする人がいるんですね…。 その昔流行ったローマ字運動も廃れてしまったので、この話は歴史が既に証明しているかと(宮沢賢治のローマ字日記とか、読むのが辛いです…)。」 / Twitter
GOBさんはTwitterを使っています 「@KojiSaito 機能の高さと語彙の豊富さは別物な気もしますね。 教育コストもどのレベルの習得度を目指すかで変わりますし、難しい問題だなぁ。」 / Twitter
Baku 🌾麦さんはTwitterを使っています 「論理的な言葉の選び方というのはただのレトリックだと思うようになった プログラミング言語のような形式言語をデザインしていると、様相論理でも捉えようのない世の中の問題を自然言語とかいう仕様ガバガバ言語でロジカルに証明できるという考えこそが素朴に感じる」 / Twitter
juzyさんはTwitterを使っています 「数学は定理を証明するための言語で、無限を扱う プログラミングは打ち込んだ文字列をデータベースと照合して、ログインさせたり、書き込んだ文字列をインターネット上に公開したりするもの。無限が扱えない、という話より先に、何もかも全く違う」 / Twitter

川井新(論計舎代表)さんはTwitterを使っています 「古典(述語)論理の自然演繹の証明図を書きながら「自然ってなんだ」ってキレてる。 結局、直観主義論理で考えてから二重否定除去しているし」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「1+2-3を1 2 + 3 -と書くのを「逆ポーランド記法(RPN)」って言うことが計算科学の分野では多いと思うけども、とある書籍で「日本語記法」と書いてあるのを見て確かにそうだとハッとした。ポーランド記法の、さらに「逆」なんて回りくどい言い方せずに「後置記法」あるいは「日本語記法」でいいやん」 / Twitter
™さんはTwitterを使っています 「例えば数学の勉強だったら,定義と定理のステートメントを一通り眺めた時点で本を閉じて,具体例を作る・仮定を落として反例を作る・証明を埋める,までは普通やる(やろうとする)もので,この過程である程度感覚を掴めると思うんだけど…….」 / Twitter
森の未知JK@㌠גודזילהさんはTwitterを使っています 「よくある先入観で、いわゆる「数学科で習う数学」(集合論とか位相空間論とか)を勉強するには証明問題を解くしかないというものがあるが、これは徹底的に排除した方が良いと思う。 述語論理を正確に扱えないと高確率で答えを間違える問題は割と作れる。」 / Twitter
Naoya SueishiさんはTwitterを使っています 「最近の統計学の論文は証明が間違っているのは珍しくもないし、それを置いたらなんの意味もなくなるって仮定を置いてる論文もあったりして、なんかもう書いたもん勝ちみたいなのが多い。レフェリーに見つからなければラッキーみたいな。」 / Twitter
mod_poppoさんはTwitterを使っています 「型システムは言語の個性だから「言語横断的な共通型システム(ハイレベル)!!!」みたいなのには懐疑的なんだよな」 / Twitter
laxfunctorさんはTwitterを使っています 「Agdaはプログラミング言語Haskellに依存型というものを入れた言語です!パズルゲームみたいに定理の証明ができます https://t.co/KKYUzwOTsm」 / Twitter
The Agda Wiki
H. E.さんはTwitterを使っています 「最近、コンピュータで証明を形式化するLeanというので遊んでます。ブラウザで動く「自然数の掛け算の可換性とかの敵を倒そう!」という趣旨のゲームが、使われてるプログラミング言語しらなくても1からチュートリアル付きで遊べて、オススメです: Natural number game https://t.co/MK1PMKvcA7」 / Twitter
Natural number game
UkicodeさんはTwitterを使っています 「ここから何が言いたいのかと言うと、「チューリング完全性の高い」言語は「プログラミング言語である」と認めざるを得ないということです。 ですので、「プログラミング言語である」ことを証明したければ、「チューリング完全性が高い」ことを証明するのが手っ取り早いと俺は思います。」 / Twitter
UkicodeさんはTwitterを使っています 「この件に関してですが、逆に「~がプログラミング言語ではない」ことを証明するために「チューリング完全性がない」ことを証明してみろって言う話なんです。 Rule110を実装できるのかどうか(Rule110はチューリング完全性が高いため)試してみたら、わかりますね。」 / Twitter
UkicodeさんはTwitterを使っています 「実装にめちゃくちゃ時間がかかった。すべて込みで大体1週間ぐらい。 はてなブログに投稿しました #はてなブログ プログラミング言語であることの簡単な証明方法 - なんか考えてることとか https://t.co/PWU3OSGg2l」 / Twitter
プログラミング言語であることの簡単な証明方法 - なんか考えてることとか
Yak!さんはTwitterを使っています 「Church-Rosser性については計算機科学系(関数型プログラミング言語)の文脈で重要そうなので軽くぐぐったところ、↓3章の証明は(ばりばりプログラミング言語側だが)並行簡約とその結果*を使ってて今回の証明と大枠同じ方針っぽい? https://t.co/XBe4HggxhP #論理学友の会」 / Twitter
14_4_388.pdf
sounisi5011/プログラムさんはTwitterを使っています 「> 停止性の証明のためには > ・再帰的な呼び出しごとに真に減少するが > ・無限減少列はない > ような値があることを型検査器に教えてあげればよいです。 は?え?そんな事が可能なの…!? F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam https://t.co/HD56RtCx7F」 / Twitter
F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
sounisi5011/プログラムさんはTwitterを使っています 「依存型の静的型プログラミング言語の真価を見た気がする。何をどうしたらこんな証明が可能になるんだ?内部実装がまるで想像できない…」 / Twitter
Miura HidekiさんはTwitterを使っています 「人はDWIMの悲劇を忘れてまたエラーの自動修正を望んでしまう。戦争に似ている https://t.co/rSkpN7z6gu」 / Twitter
DWIM
こーじ@何かを1日1褒めさんはTwitterを使っています 「コンパイラ君さぁ、 「n行目のhogeが間違っています!」 って言うなら気を利かせて直すべきじゃない?そんな指示待ちの姿勢じゃ社会じゃやっていけないよ?????」 / Twitter
Nao_uさんはTwitterを使っています 「アウターワールドの内部実装の詳細。実行ファイルは20KBしかなくて、1MB程度バイトコードを実行する仮想マシンとして動いてるらしい。1枚絵に見える背景は実際にはすべてポリゴンで描かれている。にわかに信じがたいけど描画の過程を見ると確かにポリゴンだった。 https://t.co/SDUaYKp7Cg」 / Twitter
The polygons of Another World

【連載】世界のプログラミング言語 | TECH+
fiberedcat_and_stack.pdf
プログラミング Coq
プログラマのための圏論の基礎
ソフトウェアの基礎
悪魔の証明とユーザサポート - 豪鬼メモ
定理証明支援器「Coq」によるプログラミング言語理論の定式化チュートリアル - sumiiのブログ
プログラミング言語 idris - wkwkesのやつ
あなたが学ぶべき10のプログラミング言語 - emonkak's Blog
2011-11-29
Coq - Wikipedia
Coq - Wikipedia
米国カーネギーメロン大学教授がCoqによる証明を完了、ハッシュグラフの合意アルゴリズムは非同期ビザンチンフォルトトラレントであると確認|仮想通貨ニュースと速報-コイン東京(cointokyo)
[B! coq] Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
定理証明系Belugaでプログラミング言語を形式化 - Google 検索
HTMLはプログラミング言語ですか? - Quora
寝食削ってその世界にハマった。ちょまどさんが語る、プログラミングへの尽きせぬ「愛」とは - sight 次世代を生み出すテクノロジーの視点
C言語でコラッツの問題を確認してみる | 人生は読めないブログ
インテンショナルプログラミング - Wikipedia
Intentional programming - Wikipedia
漸進的型付けの未来を考える - yigarashiのブログ
Gradual typing - Wikipedia

ラムダ項 証明

ラムダ項 証明 - Google 検索
型 命題 - Google 検索
第14回 型=命題,プログラム=証明 | 日経クロステック(xTECH)
証明図 意味 - Google 検索
Implementation of a Proof Assistant in Prolog - imm6043.pdf

証明

Coq

言い回し:数学的な証明

チェシャ猫さんはTwitterを使っています 「&gt; TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
The Amazon Builders' Library
チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter

プログラミング Coq [研究開発] IIJ Innovation Institute
プログラミング Coq [研究活動] IIJ Innovation Institute
Coq - Wikipedia
Coq - Wikipedia
Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
Welcome! | The Coq Proof Assistant
prg.pdf
coq-jssst2014.pdf
mod_poppoさんはTwitterを使っています 「動画公開した / Coqで定理証明:数学的帰納法で二項係数の性質を証明してみた https://t.co/OECrtoDfNe」 / Twitter
Coqで定理証明:数学的帰納法で二項係数の性質を証明してみた - YouTube
mod_poppoさんはTwitterを使っています 「今回のは自然数と整数の基本的な性質だけでできたけど、素数や多項式が絡むような証明をしようと思ったら噂のSSReflect/MathCompとかいうやつに手を出すことになるのかな」 / Twitter
ytakanoさんはTwitterを使っています 「数学も、望月先生のABC予想の証明や、Coqの四色定理の証明のように、小ささやエレガントさはなくなり、だんだんと科学やコンピュータ科学のようになってきている。」 / Twitter
[cs/0505034] Essential Incompleteness of Arithmetic Verified by Coq
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「形式手法を教えるなら、広く使われている型システムの理論と実装やってから、モデル検査や定理証明やれば良いのに。」 / Twitter
アラクーさんはTwitterを使っています 「排中律と選択公理のありがたみを知りたい人はとりあえずCoqを弄るのが手っ取り早いと思う」 / Twitter

Prolog

Prologによる自動定理証明 - Qiita
Prologは定理証明系として、健全だが完全ではない - Qiita
CiNii 論文 -  Prologによる数学上の定理証明
2014Tokuyama.pdf
(81)並列定理証明器:MGTP/G Prolog版
宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
shiryo2.pdf

利点

FadisさんはTwitterを使っています: 「ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…」 / Twitter
FadisさんはTwitterを使っています: 「バグを直すにはしばしば職人のカンのようなスキルが要求される上に修正に要する時間は誰にも見積もることができない。一方テストや証明を使ってバグが出ないことを保証しながらコードを書くのは論理的な作業だし、要する時間もあらかじめ見積もることができる」 / Twitter
FadisさんはTwitterを使っています: 「経路が膨大になるとユニットテスト的な手法は難しくなってきて、相対的に証明が便利になってくるんだよな。つまり「起こってはいけないことが起こらないか確かめるんじゃなくて、起こってはいけないことが数学的に起こりえないような作りを心がける」 #boostjp」 / Twitter
FadisさんはTwitterを使っています: 「依存型と証明の話、conceptとconstexprに篭っている限りだいたいC++で解釈できて「実行時に決まる型でコンパイルできんだろ」っていう壁を隔てて同じ事をやりたがっている感が凄い」 / Twitter
FadisさんはTwitterを使っています: 「「その数式(略」、証明の歴史、形式主義の登場、ペアノの公理が来て20世紀に突入して 「第十章 プログラミングの基本概念」 でそういえばプログラミング本だった事を思い出す」 / Twitter
FadisさんはTwitterを使っています: 「ソフトウェアに不具合がないことを証明することは理論的に不可能なんでなかったか。不具合がないことを保証するということは確率の差こそあれ本質的に博打」 / Twitter
天使恵さんはTwitterを使っています: 「@fadis_ 「不具合がない」という言葉が既に抽象的なので,多分無理なんでしょうなぁ.ある実装と,別の何か(仕様記述言語的なもの)が完全に一致することは証明できる可能性はありますが...」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「@fadis_ 誤解されがちですが、証明する一般化された手法がないというだけですよ。証明する部分を限定化して証明の一部を手動にしたのが Coq とかの証明駆動ですし。まぁ一般のプログラムの性質全般なら組み合わせ爆発を起こして現実的じゃないですが。」 / Twitter
梶本裕介さんはTwitterを使っています: 「@fadis_ 停止性問題とかの話ですかね?あれは任意のプログラムに対してそれが停止するかどうかは決定不能というだけで、多くのプログラムは(ループなら例えば整礎集合に依存することで)個別に停止性を証明できます」 / Twitter

型付きラムダ計算

言語実装

基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
Elm で作る TaPL のラムダ計算(その2)
C++で型なしラムダインタプリタを書いた - Qiita
型無しラムダ計算学習用ステップ評価器 Mogul を作っている話 - Qiita
自作ラムダ計算処理系「らむだフレンズ」 - Qiita

意味論

論理と推論・証明

Wikipedia

自動定理証明 - Wikipedia
数学基礎論 - Wikipedia
証明論 - Wikipedia
モデル理論 - Wikipedia
公理的集合論 - Wikipedia
再帰理論 - Wikipedia
操作的意味論 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
自然演繹 - Wikipedia
演繹定理 - Wikipedia
推論 - Wikipedia
公理 - Wikipedia
ペアノの公理 - Wikipedia
一階述語論理 - Wikipedia
原子論理式 - Wikipedia
Well-formed formula - Wikipedia
自由変数と束縛変数 - Wikipedia
論理的帰結 - Wikipedia
シークエント - Wikipedia
命題論理 - Wikipedia
古典論理 - Wikipedia
直観主義論理 - Wikipedia
様相論理 - Wikipedia
Structural proof theory - Wikipedia
部分構造論理 - Wikipedia
適切さの論理 - Wikipedia

PDF

第4回「証明」
gentzen-NK.pdf
lecture5.dvi
PowerPoint Presentation
lecture5-dist.pdf
3-print-nk.pdf
temporary.pdf
kikuchi1
kikuchi
ja

プログラマー向けの(?)数理論理学(1)数学的言明 - Qiita
プログラマー向けの(?)数理論理学(2)証明と推論規則と仮定 - Qiita
小学生でも分かる論理計算 (A22P11) - (保存用) 檜山正幸のキマイラ飼育記 メモ編
推論規則と定理、公理は違うもの? -推論規則というものがイマイチ何な- 数学 | 教えて!goo
ソフトウェア科学特論: 命題論理の推論体系
推論規則 | 命題論理 | 論理 | 数学 | ワイズ
推論規則
村上・泉田研究室 AI (人工知能)
4. 推論規則と証明
推論規則と証明
論理体系の解剖-1.3- ゲンツェン流とヒルベルト流 - 知識は永遠の輝き
論理学
Introduction to Mathematical Logic

公理的意味論

PowerPoint Presentation
Microsoft PowerPoint - MItoku2-04-hoare.pptx
Microsoft PowerPoint - PLT12.ppt

Wikipedia

プログラム意味論 - Wikipedia
操作的意味論 - Wikipedia
シークエンス - Wikipedia
Simulation preorder - Wikipedia
双模倣性 - Wikipedia
合同 - Wikipedia
再帰的定義 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
演繹定理 - Wikipedia
命題論理 - Wikipedia
カット除去定理 - Wikipedia
亀がアキレスに言ったこと - Wikipedia
ラムダ計算 - Wikipedia
抽象機械 - Wikipedia
SECDマシン - Wikipedia
CiNii 論文 -  SECDマシン再訪

PDF

H28-hasegawa.pdf
untitled
untitled
https://researchmap.jp/mu03gtcsf-1774112/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=68269&metadata_id=39541
NKNJ.pdf
https://researchmap.jp/muxqtr6ru-1787519/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=29962&metadata_id=48743
(PDF) 証明論的意味論入門 | Shunsuke Yatabe - Academia.edu
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介
プログラム言語論 意味論
「論理学入門」講義ノート - abelard.flet.keio.ac.jp / abelard-flet-keio-ac-jp.pdf / PDF4PRO
https://researchmap.jp/?action=cv_download_main&upload_id=37475
Microsoft PowerPoint - proglang_09_semantics.pptx
Microsoft PowerPoint - 2017-L06-Syntax and Semantics-20170518.pptx
PowerPoint Presentation
Microsoft PowerPoint - PLT12.ppt
untitled
Introduction.pdf
resume5.pdf
j-1-2.pdf
_pdf
_pdf
ppl4-2.pdf
nyumon_logic.pdf

2018年度 | ソフトウェア検証論 - TOKYO TECH OCW
Introduction to Mathematical Logic
プログラミング言語の規則の書き方と読み方 - Qiita
誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
突発簡単チュートリアル2:λ計算の操作的意味論 - sumiiのブログ
操作的意味論 vs 表示的意味論 - sumiiのブログ
プログラムの3つの意味論のまとめ - 射撃しつつ前転 改
プログラミング言語を形式的に取り扱う – ゴミ箱
なぜ僕は操作的意味論に傾いたか - 檜山正幸のキマイラ飼育記 (はてなBlog)
操作的意味論と、不純な表示的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
評価シーケントの論理計算と操作的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
TAPLを読む会(~7章) - 忖度
CiNii 博士論文 - 言語Rubyの操作的意味論と型解析
スモールステップ意味論 - mrsekut-p
tapl ch 1 - 3
命題論理について
プログラミング言語として考えたTensor flow
ja

型なしラムダ計算

H25-hoshino.pdf

PDF

計算機ソフトウェア工学
計算機ソフトウェア工学
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
5.pdf
typed.pdf
stlc.pdf
typedlmd.pdf
lambda.pdf
sou19.pdf
Computersoftware 20-2
intro-lambda05.pdf
selfref2006.dvi
cs2015_hoshino.pdf
lambda.pdf
2.pdf
lambda
dependent.pdf
5.pdf
RelevantTheories
main.pdf
_pdf

カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
カリー=ハワード同型対応 - Wikipedia
型付きラムダ計算 - Wikipedia
ラムダ・キューブ - Wikipedia
二階述語論理 - Wikipedia
System F - Wikipedia
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 2/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きλ計算と単純な拡張 – ゴミ箱
Stlc_J: 単純型付きラムダ計算 — ソフトウェアの基礎 1.0.2 documentation
MoreStlc_J: 単純型付きラムダ計算についてさらに — ソフトウェアの基礎 1.0.2 documentation
ラムダ計算ABC - Sendai Logic Homepage
不動点定理 - Wikipedia
不動点コンビネータ - Wikipedia
不動点とfix演算子 - 一歩前進
論理と計算のしくみ 5.3 型付きλ計算 (前半)

tkrさんのツイート: "false→Aは ¬false∨Aより常に真だからfalseの仮定をすると任意の命題を証明可能まじかすげえ"
ミドリムシ+さんのツイート: "1=2から全ての命題が導けるわけです… "
tkrさんのツイート: "1=2の力すげえ… "
Fadisさんのツイート: "ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…"
Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|若手Webエンジニアのキャリアを考える!
証明最高! じゃあテストは糞なの? ― テスト談義 - プログラムモグモグ
証明プログラミング超入門
自動定理証明の紹介
Coq と定理証明
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
自動定理証明 - Wikipedia
Basics_J: 関数プログラミングとプログラムの証明 — ソフトウェアの基礎 1.0.2 documentation
構造化プログラミングと データ抽象
定理証明支援の紹介 - Qiita
環境スタック 定理証明 - Google 検索
ホールドリブンで探索 定理証明 - Google 検索
定理証明支援系と依存型プログラミング勉強会 - PukiWiki
_pdf
モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
mizutani07222007-30.pdf
FLOPS2014報告 – DSS Tech Blog
en
en
圏論とプログラミング読書会#2 資料
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
hatsugai@PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールの力を借りずに数学的帰納法を使うのは難しい.仮定が弱いとか前提が足りないとかいつも落とし穴に落ちるのだけど,それはツールを使っているから気づけるので,紙上の証明では見落としてしまいそう.ツールの支援は自動証明だけでなく証明管理とチェックの面もとても大きい.」 / Twitter

証明(直観主義)

https://twitter.com/shinji_kono/status/1308575213785763840
https://twitter.com/shinji_kono/status/1308575483680833536
https://twitter.com/shinji_kono/status/1308576073110544384
https://twitter.com/shinji_kono/status/1308576530474303488
https://twitter.com/shinji_kono/status/1308577332232216576
https://twitter.com/shinji_kono/status/1308577520174784512
https://twitter.com/shinji_kono/status/1308577921750065152
https://twitter.com/shinji_kono/status/1308578429663506433
https://twitter.com/shinji_kono/status/1308578857176293379

論理式の証明

j-1-2.pdf
記号論理学と情報科学の研究集会'97の開催のお知らせ
148784513.pdf
4.pdf
main.pdf
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
充足可能性問題 - Wikipedia
ユニフィケーション - Wikipedia
導出原理 - Wikipedia
冠頭標準形 - Wikipedia
場合分けは論理ORか論理ANDか? - 檜山正幸のキマイラ飼育記 (はてなBlog)
集合論と圏論がズレるとき: 空リスト問題 - 檜山正幸のキマイラ飼育記 (はてなBlog)

仕様を「定理」とみなし、「公理」と「推論規則」を使って証明

入門!論理学 - Heat-Hazeの日記
Prologで自動定理証明? - atoprolの日記
_pdf
数理言語
lecture19-dist.pdf
20051018_agent3.dvi
resolutionprinncipleの応用(東芝RM).iml
104-koukyuroku.pdf
untitled

証明図・証明木・探索木

証明木

証明論 - Wikipedia
3-print-nk.pdf
gentzen-NK.pdf
lecture5.dvi - lecture5.pdf
IPSJ-Z82-4K-01.pdf
IPSJ-WPRO2016011.pdf
2008grad13.pdf
sakurai10.pdf
abstract.dvi - PA1-16.pdf

digidepo_8559157_po_r6-2-7.pdf
0716-06.pdf
Microsoft PowerPoint - logic05-Chap3-1.ppt
1539paper.pdf
直観主義命題論理におけるタブロー法による定理証明器
3-print-nk.pdf
2008grad13.pdf
述語論理知識を扱う全解探索仮説推論の高速化

証明探索

@keigoi

Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば https://t.co/HJZq4qeoti の p.13 にある含意の推論規則は、変数や型環境を加えればそのまま関数適用の型付け規則であるように見えてくる。例えば P -&gt; (P-&gt;Q) -&gt; Q の型付けの導出木を書こうとすると、この型をもつ fun x f -&gt; f x というラムダ項(プログラム)しかあり得ないことに気づく」 / Twitter
gentzen-NK.pdf
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep この導出木は証明木と同じ形をしている。一方、型がつくプログラムを書くと導出木ができる。つまり、型のついたプログラムを書けば証明ができたことになる。その逆に、証明ができればそこからプログラムを抽出することもできる。例えば Djinn https://t.co/j0EdLg0Tts は、型を書くと、」 / Twitter
Djinn
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep その型がつくプログラムを自動生成してくれる。これは、その型に対応する論理式を自動証明して、その証明からプログラムを取り出すような動きになっているはず。タプルは「かつ」、Either は「または」、関数型は「ならば」に相当するので色々やってみるとよい」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば fst :: (a,b) -&gt; a は、A /\ B =&gt; A に、left :: a -&gt; Either a b は A -&gt; A \/ B に相当する。 Djinn に型を入れれば実装が出てくるはず。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep CH対応の考え方は多相型や依存型だけでなく線形論理-線形型、古典論理-継続渡し計算などに適用されているのが面白いです。上のも雑な説明なのでもしわからなかったらまた気軽にオンラインやローカルで聞いてください。」 / Twitter

情報系彼女botさんはTwitterを使っています 「論理型言語Prologは、深さ優先の探索をするから定理証明系としては不完全よ。 それに、実行速度のために単一化のOccures Checkを省いた場合は健全性も失われるわ。」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「.@ksuenaga 「深層学習によるプログラム生成の高速化」はディープラーニングを使って直観主義命題論理の証明を効率的に探索する話.(すなわちプログラム生成を効率的にやる話.)@asi1024 と @skymountain_ と @nushio との共同研究.#PPL2017」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「論理って、多分、命題作成能力が重要だと思う。 フェルマー予想も1つの命題作成。 手割りも1つの命題作成。 これができると、自動証明をくっついて解ける命題については結論が出せる。探索が省略できる。」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「@ytb_at_twt (承前)ようになったのですかね。そして単なるパラメータ最適化ではない問題は相変わらずどう解いて良いか分かってないと思います。一方、碁のような問題でも、探索の過程で論理的というか証明探索に近い推論をしてるわけで、発見と正当化の区別は自明ではない気がします。」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「証明というのは、距離空間の中で生成される多発的なシークエンスをつなぎ合わせる探索努力という気がする。 命題に対して良い距離空間を持って、長いシークエンス(論理展開)を出力できて、不断の探索努力をする人が人類の叡智となる定理を証明する。」 / Twitter
ytbさんはTwitterを使っています 「推論主義的な古典論理の証明論的意味論を持っているとき、そこからどのように「指示」概念が自然に生まれてくるかと言う問題、ようは ①古典論理の証明論的意味論 ②証明探索木で論理式の極大無矛盾集合をつくる ③スコーレム化して「指示対象」をつくる(個別化する) という流れでいいのかな。」 / Twitter
HiroshiさんはTwitterを使っています 「これはあくまで物理学の中で扱う数学的な手法であって、数学それ自体とはまた異なる。数学の営みは、数学的概念に対する性質を探索する、と言える。また、論理のギャップなく証明することが求められる。」 / Twitter
ytbさんはTwitterを使っています 「これ、面白い話で、述語論理の証明探索樹のによるモデルの構成とかは、まさしくモデルの「無限の長さの証明」で、モデルだから偶然的真理についても語ってる訳だよね。」 / Twitter
KojimaさんはTwitterを使っています 「論理と計算のしくみ、シーケント計算が証明探索を意識した作りになってて、述語論理のカット除去にエルブランの定理使っててびっくりした」 / Twitter
tenthsublevelofsuicideさんはTwitterを使っています 「こっから2ヶ月は論理学ちゃんとやりたい。述語論理の完全性証明を探索法でやるのがわからなくて挫折した。ヘンキンモデルはわかった」 / Twitter
てけてけ坊主さんはTwitterを使っています 「新幹線乗れた 遅刻しそうで気が気出ないけど、でも午前中のセミナーは出てよかった イメージとしては証明探索木による完全性定理の証明を述語論理の場合にも拡張するにはWKLぐらいで十分だよねって話をしてて、全てはチェックできてないけどちょっと納得した 完全性定理は選択公理より真に弱い」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Automated Theorem Proving in Intuitionistic Propositional Logic by Deep Reinforcement Learning https://t.co/S1heVqRruM 深層強化学習で直観主義命題論理の証明探索する論文(@ir5 さん @skyrunner_01 さんとの論文。自分の貢献はあまりないけど)。 昨年の https://t.co/9J3HOxRAvw の続きです。」 / Twitter
あきやま🐾さんはTwitterを使っています 「@kz_suzuki 探索的テストは広いからどちらもあると思うけど。 経営者は『販売を開始して良いか』の可否判断をする必要があります。その可否判断を演繹的にできるかというと、できません。帰納的に動くしかなくて、『それでいいんだよ』というのが、帰納法だと思います。 数学的帰納法は論理的に証明しているので。」 / Twitter
КазяさんはTwitterを使っています 「g3cの証明探索がかけてしまった(古典命題論理なので簡単なのはそれはそう)」 / Twitter
ytbさんはTwitterを使っています 「今日の論理学補講は古典論理の完全性定理と健全性定理。証明探索樹はやっぱりいい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
大妖精botさんはTwitterを使っています 「証明探索木、いろんなところで見るが命題論理の真理の木と違うのだろうか」 / Twitter
p進大好きbotさんはTwitterを使っています 「@Alwe_Alwe ↑の定義は論理式のゲーデル数しか取ってないです。ZFC等が矛盾する際のルール違反を避けるために、述語|-をゲーデル数上限付き証明探索に変えればOK的な話でした。」 / Twitter
Masaki HaraさんはTwitterを使っています 「まあ実態としては、ちょうど直感主義命題論理の証明探索のことを調べていて面白かたから実装しただけで、さらに追加の工数をかけて古典命題論理の証明探索を実装するほどでもなかったからですね (必要なら ~~P を証明させればだいたい所望のものが得られるので)」 / Twitter
AlweさんはTwitterを使っています 「@uu7t_u 私の言葉ではないのであれなんですが、古典論理の定理の多くが証明探索的なことで示せる事だからだと思います」 / Twitter
足跡45(羃等)さんはTwitterを使っています 「いや証明が探索できるとか表現能力とか何を対象とする論理かとかあるけど」 / Twitter
ytbさんはTwitterを使っています 「本日の非常勤授業論理学は古典命題論理の完全性定理と健全性定理について。証明探索樹を使ったけど、まあタブローだよね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「命題論理の方の完全性って実際に意味論側で真理値全探索するより統語論側で証明探索する方が優位に高速になるのか知らないんですけど、やっぱり早いんですかね? 漠然と「命題変数が少ないけどめっちゃ長い論理式」とかは意味論の方が強そうな気がしちゃいます。」 / Twitter
ℕ𝚒𝚔𝚘𝚜𝚊𝚒: unit → tweet listさんはTwitterを使っています 「#w2019progLang そもそもFLとPolymorphic FLは別の言語なので、 FLのプログラムの型に関する証明木を作りたいときはFLの型体系の推論規則・公理を、 Polymorphic … 続きは質問箱へ #Peing #質問箱 https://t.co/FOIRuR1ceM」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「あと推論と逆方向(公理に向かう方向)に証明木を伸ばす操作を英語で何と言うのでしょうか。reduntion?」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「reduntion ってなんだよ reduction」 / Twitter

証明木生成の停止性

画力・博士号さんはTwitterを使っています 「「命題Aから命題Bを証明しなさい」と入力して,実際には証明できない場合でも,証明木生成プログラムは必ず停止するのだろうか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 古典命題論理はco-NP完全.直観主義命題論理はPSPACE完全.つまり,解けることが知られている.古典一階述語論理や直観主義一階述語論理は決定不能.線形論理については https://t.co/Vuyn0MG2fT」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy 有難うございます! まだまだ無学なので精進します……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy ほぉぉぉ巧く置き換えられるんですね!」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn そういうこと.で,その戦略の第一歩となるのが,シークエント計算とそのカット除去定理.シークエント計算は除去則がないのが特徴.つまり,A/\BからBを導出するというような推論規則は線の下より上のほうが大きいので使いたくない.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn その代わりに,シークエント計算では左導入則というのが使える.これは目的の式ではなく仮定側の命題を分解する.このため,自然演繹のように目的の式だけを表示するのではなく,「仮定 |- 目的の式」の形で書く.これをシークエント(推件式)という.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 自然演繹では,(下から上に進むときに)仮定が増えるのは含意の導入則と選言の除去則だけで,仮定が減ることはなかった.シークエント計算では左導入則で仮定が減ったり増えたりする.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 具体的には,連言の例で考えるとわかりやすいだろう.「A /\ B |- G」 の形のシークエントは,「A, B |- G」の形のシークエントから導出できる.つまり,下から上に進むと,仮定A,Bが増えてA/\Bが減っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn こうすると「A, B |- G」は「A /\ B |- G」よりも「小さい」.そういう点でシークエント計算は良い性質を持っている.しかし,一般的な直観主義シークエント計算(LJ)ではまだ不足で,縮約規則とカット規則という鬼門が残っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn で,それをてんやわんやしてうまく取り除いて,結果として単調減少(無限降下列を持たない)であるような推論規則を作れると勝利というわけ.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy なるほど…… 華麗だ……」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero ちなみに直観主義論理でもcut除去は成り立っていて、これを使うと直観主義で排中律を証明出来ない事の証明が出来たと思います。cut除去は証明論の基本定理みたいなもので、これがあると色々出来ます...色々...cut除去出来ない論理もあってこれをやっている人達もいます」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 確かcut除去する度に枝が3倍くらいになるのでcut除去の個数回冪乗した3^...^3倍くらいの大きさの証明図になったと思います。正直証明図は読むためのものではないし、何より縛りプレイなので証明は排中律を認めるモノより難しくもなりますね。実装を視野に入れるなら構成的にやるべきですが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 要するに証明図の上に行くと必ず小さい論理式になるというやつで、これより証明図を上に辿るという操作は必ず停止します。なので出現する排中律を全部調べることは可能で、与えられた排中律が直観主義で証明可能であるかどうかを判定するアルゴリズムがあれば可能です。あるかは知りませんが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 変換アルゴリズムがあるかは知りませんがcut除去定理というのはあります。証明図からcutという規則を除去した証明図を得るアルゴリズムがあるよって定理で、その証明図では“AからB”が証明されたらAはBの部分論理式になっているという性質があります。」 / Twitter

公理と推論規則

公理 - Wikipedia
推論規則 - Wikipedia
命題論理 - Wikipedia
一階述語論理 - Wikipedia
推論 - Wikipedia
論理式 - Wikipedia
原子論理式 - Wikipedia
論理演算 - Wikipedia

推論規則

h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「二重否定除去が使えても、Coqerには非常に証明しにくいので、最初に二重否定を(除去規則を使って)つけてしまったほうがCoqでは楽。本来の古典論理の推論規則に基づく証明木に比べると冗長になりがちではあるけれど・・・」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
病気の美少女さんはTwitterを使っています 「∧∨ってそんなに覚えにくいのかあ。特別な覚えかたとかはしたことないけど、∧のほうが閉じてる感じする(逆さまのコップみたいな)。あと今思い付いたけど、推論規則的には∨なんて分かりやすいんじゃないのかなあ。そのままの形で証明木が別れるし」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「新しい証明木の記法を考えてみた(とりあえず推論規則だけ) http://t.co/FQ2slKencN」 / Twitter
もすさんはTwitterを使っています 「式木で論理式書いて推論規則を適用して変形していくとか考えたけど、 ⇒(ならば) が書けないという問題が」 / Twitter
友利奈緒ちゃんさんはTwitterを使っています 「証明木を作る問題、こうゆう状況だったらこの推論規則を使うというのが決まってる感じがする。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「α等価の推論規則の形成。λの引数を複数にして、その形に関してのみ議論(0でも可)。このとき、α等価なものの示す証明木がα等価な項全体を代表する元として扱える。 #TPP2014」 / Twitter
h_sakuraiさんはTwitterを使っています 「推論規則を使えば導出のルールを決めることが出来て、導出木が書ける。 評価規則はプログラムの動きを決める推論規則だ。 型付け規則は型を決定する動きを決める推論規則だ。 評価規則も型付け規則も推論規則の1つなので、導出木が書ける。」 / Twitter
トビーネットさんはTwitterを使っています 「読書してたら抽象構文木という単語がでてきたので、思わず推論規則に沿って導出してしまった」 / Twitter
かーや (kaya)さんはTwitterを使っています 「ラクエンロジックは、命題カードと推論規則カードを組み合わせることで、自分だけの最強の証明木を作って戦うカードゲームです。」 / Twitter
Masaru HITOMIさんはTwitterを使っています 「したがって、例えば人間関係においても経験的に正しかろう原則と経験的に正しかろう推論規則さえあれば、論理の木というのは構築しうる。」 / Twitter
nisizakiさんはTwitterを使っています 「結局のところ、法律や大学が制定した規則に基づいて、ゴールを入力して、推論木を構築している感じ。変なローカルルールがキャッシュにたまってて、奇妙な推論木を構築することがあるし、場合によっては制定された法律・規則の目的の斜め上を行っちゃう感じ (´・ω・`)」 / Twitter
soujiさんはTwitterを使っています 「会社で少しアジャイル開発についての勉強会に参加した後、自宅最寄駅に最近出来たスタバで型システムの勉強中 公理やら推論規則やら木やら帰納的定義など懐かしい言葉たちと再会出来て楽しい」 / Twitter
画力・博士号さんはTwitterを使っています 「ウオー推論規則や導出木を書くマクロが定義できるようになった #SATySFi https://t.co/dz80AUVD9l」 / Twitter
浅瀬さんはTwitterを使っています 「型の導出木の推論規則と述語論理の推論の対応ってことよね」 / Twitter
kodai (▶)さんはTwitterを使っています 「LaTeX の ebproof パッケージを使う練習も兼ねて、CoPL に載ってる導出システム Nat の推論規則を使って判断『S(S(S(Z))) times Z is Z』の導出木を書いてみた コマンドの使い方がだんだん分かってきた https://t.co/z6lOSq0ZFf」 / Twitter
kodai (▶)さんはTwitterを使っています 「キタ━━━━(゚∀゚)━━━━!! ペアノ自然数の加算・乗算・複数回簡約をする導出システム ReduceNatExp の推論規則(1,2枚目の写真)に従って、判断 S(Z) * S(Z) + S(Z) * S(Z) -*-&gt; S(S(Z)) の導出木(3枚目)を自力で記述できた!! https://t.co/d6XwKOztAF」 / Twitter
kodai (▶)さんはTwitterを使っています 「推論規則E-Appお前絶対許さんからな… 導出木がクソでかくなるのだいたいお前のせい https://t.co/oaurdZD1q8」 / Twitter
チェシャ猫さんはTwitterを使っています 「Deep Neural Network を利用して、最小論理の論理式に対する自然演繹による証明を生成する研究。ただし対象となる論理式が証明を持つこと自体は仮定。証明木全体を一度に生成させるのではなく、各ステップごとに適用する推論規則を DNN に当てさせる。 #jssst_ppl2019」 / Twitter
kentoさんはTwitterを使っています 「ってやれば、 ・ 規則の各適用段階での型推論の木の状態を見ながら ・ 各規則が本当に正しく動くかを確認する ってのができそう」 / Twitter
AlweさんはTwitterを使っています 「PAの順序数解析(の上限)を簡単に纏めるとPAの証明を無限の長さを持つω論理に埋め込む。埋め込むと、超限帰納法を証明できると仮定するとω論理上でも当然証明できて、それに関する推論規則を導入できる。その上でcut除去を行い、証明木の高さがわかるため、木の高さで順序型が抑えられればよい」 / Twitter
sp4ghet@すぱげっとさんはTwitterを使っています 「どうでも良い話なんですけどゲーデルの不完全性定理とかで出てくる論理学とか型理論で出てくる推論規則/導出木とかそういうやつって「論理学」というキーワードで勉強進めていけば全体観が見えてくるんでしょうか」 / Twitter
はかりさんはTwitterを使っています 「型付けの導出って推論規則の定義から導出図が一意に定まっちゃう~ってことあると思うんですが、こういうやつを計算量に気を付けつつ求めたい~とかなったらどうするんですかね。結局導出木を上るしかないのでは??みたいな話」 / Twitter
cutsea110さんはTwitterを使っています 「siteswapの証明木は下から上に展開されてて、証明と思うと向きが逆になるもんだからモヤモヤしてたけど、推論規則によって元々はどういう状況だったか、この状況を説明する証拠が下に来ていると思えば分かった気になれる。」 / Twitter
尾形学士さんはTwitterを使っています 「こっちが推論規則から導出木をつくるやつ。 https://t.co/dSrsJQQ82o」 / Twitter
EvalNatML1.hs
振込さんはTwitterを使っています 「推論規則をたくさん用意して気合で推論木を構成するのか」 / Twitter
ケ゜ンミジンコさんはTwitterを使っています 「@LDScell この本自体は大学院でやりました ただ学部の頃に似たようなことはやってました、推論規則の木を作ったりという」 / Twitter

ソフトウェア検証・論理・計算・帰納

言い回し:数学的な証明

チェシャ猫さんはTwitterを使っています 「&gt; TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
The Amazon Builders' Library
チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter

07gun_01hen_02.pdf
記号論理学
y-slide-ss06.pdf
4.dvi
kk-ieice02.dvi
https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/50090/3/000000272912.pdf.txt
論理と計算 講義ノート
Theorem Prover in Java
TRonso33_Kukita.pdf
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「形式手法(FM)はその有用性が喧伝されているにもかかわらず、いまだに産業界での応用例は少ない。より広範囲に使われるための10の提案: - 使用範囲がはっきり記述されること - レシピが細かく書かれていること - 既存技術と組み合わせ可能なこと - 自動化が可能であること etc. https://t.co/2UlNce5gXz」 / Twitter
[2112.12758] A Manifesto for Applicable Formal Methods

SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft - Microsoft Research
000005473.pdf
VPC Reachability Analyzer と形式手法 - チェシャ猫の消滅定理
関数型言語と形式手法でブロックチェーンを証明しよう
形式検証の視点から再確認したいMaybe型/Option型からnull許容データベースへのデータ変換 - Qiita
定理証明 木構造 - Google 検索
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
きけんぴんさんはTwitterを使っています 「健全性・完全性って、証明とか判定する体系自体についての話という認識。別のツイートのリプライツリーの例を借りれば、「単純型付きラムダ計算の項であるか」を判別することで「計算が停止するかどうか」を判定するというシステムならば、停止性を判定するシステムとして健全と言えそう。」 / Twitter
ytbさんはTwitterを使っています 「LL Toyという証明支援ツール、ゴールとなる証明したい論理式を入力すると、そこが結論となるような推件計算の証明図を生成してくれるんですが、ゴールとして証明できない論理式(たとえば直観主義論理上で((A→B)→A)→A)を入力すると挙動が面白いですね。無限後退。 https://t.co/5hoTti0pzm https://t.co/bZCHKUB3Ej」 / Twitter
LL Toy
ytbさんはTwitterを使っています 「直観主義論理上の二重否定除去の「導出」に挑戦したのはこちら。見事な無限後退。 https://t.co/oDasR54fna」 / Twitter
slide.pdf
general4-3.pdf
sakigake03.pdf
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介 - zengakuKyoutsu2014-07-18-2.pdf
Coq/SSReflect/MathCompで解析入門の1章の命題を全て証明 | Mathlog
ドッグさんはTwitterを使っています 「Rust プログラムがクラッシュしないことの証明の話や Unsafe Rust の安全性の証明の自動化フレームワーク (Isabelle で書かれてる) の話,借用チェックをモデル化するコアライブラリ Polonius の話などなど」 / Twitter
ドッグさんはTwitterを使っています 「Rust コードの検証をしてくれる Prusti 知らなかった.panic-free かどうかや overflow check の他,属性に事前条件・事後条件,副作用の有無などを書くと検証してくれる.VS Code 拡張もあるのか https://t.co/iDZGFo8rPC」 / Twitter
viperproject/prusti-dev: A static verifier for Rust, based on the Viper verification infrastructure.
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter

その他

型安全ルーティング

🈚️うひょ🤪✒📘さんはTwitterを使っています 「(TypeScript観点で)file system-based routingの何がだめなんですかという意見が流れてきた。ではこちらをどうぞ(宣伝) https://t.co/R0KQG3ldIo」 / Twitter
2021年の密かなトレンド? “型安全ルーティング”の概観
🈚️うひょ🤪✒📘さんはTwitterを使っています 「そう、なぜこのTypeScript時代にfile-system based routingなんてものが使われ続けているのかは正直謎(?)」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「で、TypeScript側でサポートすればいいのではとも考えられるが流石にファイルシステムは無理な気がしている。確かそういうissueもあったはず(見つけられなかった)」 / Twitter
RyuseiさんはTwitterを使っています 「でもF#はやってなかったか」 / Twitter
RyuseiさんはTwitterを使っています 「The FileSystem type provider https://t.co/ZjptI8oo7J」 / Twitter
The FileSystem type provider
🈚️うひょ🤪✒📘さんはTwitterを使っています 「やっぱり型安全ルーティングの話を出してもあまり人々から共感が得られないな。その領域は人が頑張るのが当たり前であり型で助けられるものではないという認識が強いのかもしれない(?)」 / Twitter

型レベルプログラミング

Haskellにおける型レベルプログラミングの基本(翻訳) - Qiita
GHCの型レベル自然数を理解する - Qiita
TypeScript型レベルプログラミングの細かいテクニック
TypeScriptの型レベルプログラミングで足し算・引き算・掛け算を実装する - asterisks
型レベルプログラミングを学ぶことには意義がありますか? - Quora
型レベルプログラミングの会 - kmizuの日記
たのしい型レベルプログラミング
Haskellで型レベルプログラミングで遊ぶ - mrsekut-p
型レベルプログラミング - Shingo Suzuki's project
入門SRTP - 型レベルプログラミングちょっとだけ入門 - Speaker Deck

計算ファースト vs. 型ファースト / Computation First vs. Type First - Speaker Deck
A brief introduction to type inference - Speaker Deck
PureScriptで存在型を試す - Qiita
text.pdf
Phantom Type - Google 検索
データクラス 型クラス 代数的 - Google 検索
Swiftのassociatedtypeとtype erasure - sambaiz-net
Shiro KawaiさんはTwitterを使っています 「おもしろい。型のパラメタライズは個人的にはHaskellの構文がコンパクトで好き」 / Twitter
Masaki HaraさんはTwitterを使っています 「いい機会なのでジェネリクス引数の曖昧性について各言語がどうしてるか調べつつまとめてみる https://t.co/IgszcsoAMx」 / Twitter
ジェネリクス引数の構文的曖昧性まとめ
parametric polymorphism - Google 検索
制約をロジックではなく型で表現する
単体複体 - Google 検索
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「単体複体ってグラフ構造をn次元に拡張したやつか。定義みても意味がわからなかったが、例題があったのでわかった。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「どういう時に使うんだろ」 / Twitter
kripkeJoyalさんはTwitterを使っています 「@ytakanoster 例えば 項を点、 項の簡約原理(equivalence) を辺、 辺同士の equivalence を面、 … ように簡約システムの設計に使われます」 / Twitter
kripkeJoyalさんはTwitterを使っています 「@ytakanoster あとはホモロジーの計算とか」 / Twitter

API 検索

API

UberがAPIゲートウェイのアーキテクチャを公開
Google Cloud、API管理プラットフォームの新メジャーリリースApigee Xを発表
AsyncAPIとPostman Partner、非同期API用の新ツールを提供へ

松鹿さんはTwitterを使っています 「Rustで型検索するやつ、wasmをデプロイしたので気軽に試せるようになりました 👉https://t.co/icvHKr8qNG👈 https://t.co/b34M5DLFAA」 / Twitter
hkmatsumoto/roogle: A Rust API search engine
松鹿さんはTwitterを使っています 「ちなめっちゃ遅いので10秒くらい待っててください(バイナリは1秒くらいで結果が出ます)」 / Twitter

リフレクション

イントロスペクション

Happy Squeaking!! -オブジェクト指向再入門- [第四回:メタ機能との出会い]
bacspot.dip.jp/virtual_link/www/si.musashi-tech.ac.jp/new_www/Python_1HourStudy/index_class_introsection.html#:~:text=イントロスペクションとは、自身の考え、感情、,することを指します。&text=そして可能な事を,入れることになります。
リフレクションとイントロスペクション | Ouobpo

itp-interpreter.pdf
自己反映計算 (計算機科学) - Wikipedia
メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
c - メタサーキュラー通訳の正確な定義は何ですか? - ITツールウェブ
c - メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - ITツールウェブ
インタプリタとは
メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - Javaer101
Clojureのメタサーキュラーエバリュエーターで「true」を評価する - Javaer101
S8

型レベル計算・コンパイル時計算・依存型

自らがそこに至った過程を開示

計算の過程

Mark EriksonさんはTwitterを使っています 「I _really_ wish TypeScript types had some form of a step-by-step debugger, so that I could see how types are getting transformed at each step. Trying to debug a complex type transformation is incredibly painful - forced to either guess or hack up a way to see the "output"」 / Twitter
Sam WightさんはTwitterを使っています 「@acemarke Only way I've gotten around this is by breaking down types into much smaller type aliases and testing them out manually. I feel like I need a unit tester for types, which like.... doesn't seem like it should be the case? Typescript feels more like a lang for editor autocomplete.」 / Twitter
RyuseiさんはTwitterを使っています 「表計算ソフトの「デバッガー」 https://t.co/XYMe3xamjm」 / Twitter
Read "Ministry for the Future"さんはTwitterを使っています 「@samwightt @acemarke Ah yeah, I haven't thought of Smalltalk in this context since it's far more dynamic, but it's a different means to a similar end. Arguably Smalltalk takes the "I" in IDE more seriously than most languages). I'm just now learning of Pharo - thank you for the tip!」 / Twitter
RyuseiさんはTwitterを使っています 「VSCodeで識別子にカーソル合わせたら型が表示される程度の支援じゃ不満で、もっと密にフィードバックが欲しいんだろうか」 / Twitter
RyuseiさんはTwitterを使っています 「VSCodeで書いてたら常時型推論器が走っていて好きな識別子の型が見れるじゃん」 / Twitter
RyuseiさんはTwitterを使っています 「ツールチップで表示するのは見づらい・使いづらいってのは、まあわかる」 / Twitter
RyuseiさんはTwitterを使っています 「せっかく左側にアウトラインの領域が置いてあるんだから、ツールチップだけじゃなくて、そっち側でも型やドキュメントを参照できるようにしたって良いじゃんかっていうね。 https://t.co/m55lgx8uM6」 / Twitter
RyuseiさんはTwitterを使っています 「NullPointerException…」 / Twitter
RyuseiさんはTwitterを使っています 「(出来の悪い)動的なプログラミングの方が原因のトレースはずっと困難だと思うけど」 / Twitter
RyuseiさんはTwitterを使っています 「静的検査より動的検査の方が適切に診断を出せる、とは限らないし Smalltalkが良くやっているというのはわかるけど、それ(診断の適切さ)は検査が動的か静的か自体とは違う尺度の話な気がするんだよな」 / Twitter
RyuseiさんはTwitterを使っています 「静的型付けは安全側に倒して、妥当でない(エラーが生じうる)コードは一律弾きがちなのが嫌って話も、診断の適切さとは別だし」 / Twitter
RyuseiさんはTwitterを使っています 「でも実際のところ、大規模なプロジェクトなら当然「エラーが生じうるコード」は、本当にエラーが起きる前に知りたいわけで…」 / Twitter
RyuseiさんはTwitterを使っています 「カリー=ハワード同型対応というものがあるから、型検査機の出したエラーに対して過程を開示しないっていうのは、数学の証明の誤りに対して過程を開示しないって言ってるようなもので、むしろ証明という過程を示すべきなのはプログラマーの方なのでは、という気がする」 / Twitter
RyuseiさんはTwitterを使っています 「そこに至った過程を気にしてしまうのは、手続き型に囚われているからだと思ってしまう」 / Twitter
RyuseiさんはTwitterを使っています 「まあ、オブジェクト指向であれば、「そこに至った過程」もオブジェクトの範囲で閉ざされていて、他のオブジェクトの過程は他のオブジェクトの勝手なんだから、気にしないでいいというか、気にするべきではない。」 / Twitter
RyuseiさんはTwitterを使っています 「使っているオブジェクトの過程は気にするけど、呼び出し元の過程は気にするべきではない」 / Twitter
RyuseiさんはTwitterを使っています 「何を気にするべきで、何を気にするべきでないかをうまく切り分ける技術として、オブジェクト指向と関数型プログラミングとでそんなに差があるわけではないと思う」 / Twitter

sumimさんはTwitterを使っています 「なるほど。その発想はなかった。 静的型も(チューリング完全的な意味で?)それのみで独立したプログラミングみたいなものなわけだから、そのチェックについても、Smalltalkにおけるデバッガー体験みたいなことを実現する何らかのサポートがあれば、型記述に対する苦手意識をもう少し減らせるかも。」 / Twitter
sumimさんはTwitterを使っています 「所有権(Rust)とか正規表現、SQLにもにょるのもたぶんそれだ^^;」 / Twitter
sumimさんはTwitterを使っています 「総じてエラー(主張)だけ出して、こっちやりたいことを妨げるくせに、自らがそこに至った過程を開示しないもの(物・者)にもにょるのだ! 冗談はさておき、もうちょっと優しく何が間違っているか教えて欲しい。可能なら「ほら、これ。キミが欲しい結果と違うでしょ?」と分かるまで調べさせて欲しい」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim まあ大抵のHindley-Milnerベースな型推論する処理系は、「推論すると、この型という結論とこの型という結論が出て、矛盾してるからエラー」というメッセージを出すので、その条件は満たしているかと。ただ、どうして矛盾した結果が出てしまうか、こまめに型アノテーション付けないと地獄を見ます。」 / Twitter
sumimさんはTwitterを使っています 「@tomooda 「推論すると、この型という結論とこの型という結論が出て、矛盾してるからエラー」の全過程を開示してくれる(あるいは追っかけられる)オプションが大抵の処理系にあるんですか?(反語的に)」 / Twitter
I moved to Mastodon.さんはTwitterを使っています 「@sumim @tomooda .oO(矛盾する反例を1つだけ結果として返すのは不可能ではないのでは。。。)」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim 実は修士学生時代の1つ上の先輩のテーマがそれで、私はミニ言語の型推論器を実装してあげたりしたんですが、正直、型アノテーション付いてないソース上であれを追跡するぐらいなら、最初から明示的に型アノテーションつけて回ったほうが遥かに心休まります。まじで。」 / Twitter
sumimさんはTwitterを使っています 「@tomooda 全部テキストでやろうとすればそうかもしれませんが、今なら、推論結果をコード上でポップアップなどインタラクティブに、あるいは、オーバーレイ等の何らかのグラフィカルな方法で参照可能なようにするのでも駄目っぽそうですか?」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim 私はチキンなので、あたかもSmalltalkデバッガでステップ実行するように、型推論付きの言語ではソースコードを少し編集しては型検査にかけ、を繰り返します。結局、「バグはできるだけ早期発見が吉」の典型例がコンパイル時型エラーだと思ってます。複数箇所壊すと涙が出ます。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@sumim それならば「キミが欲しい結果」を正確に教えて欲しいと処理系に言われるのがオチという気もします :-)」 / Twitter
sumimさんはTwitterを使っています 「@wtakuo そこは、もうそろそろ(理論的には結果的に間違い・実現不可能であることも含め)察しろ…と^^;」 / Twitter

PureScript型レベル計算入門 - Qiita
Haskell 型レベル計算で継続渡し - keigoiの日記
Type-level TypeScript - ryota-ka's blog
Scalaで型レベルのラムダ計算 - 貳佰伍拾陸夜日記
Scalaで型レベル”だけ”でクイックソート | POSTD
欲望の赴くままRustで型レベルPeano自然数とサイズ付きベクトルを書いた - konn-san.com
ソフトウェアの基礎
がくぞさんはTwitterを使っています 「型レベルプログラミングはある種の動的言語プログラミングですもんね…… Multi-Stage Programmingを活用すれば meta な typecheck も可能になったりするんでしょうか?」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「Scala 3のmatch type、metaなtypecheckが存在しない?(存在できない?)から、実際はString返す可能性があるものに type F[A] <: Int = /* 実装省略 */ という定義しても、そのtypeの定義時ではなく、それを使うときにならないとエラーがわからないな、いや そりゃそうか?みたいなことを考えていた」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「普通のmatchだと最後に case None => でも case _ => でもほぼ違いがないけれど、 match typeではミスしてると他のものも何でも渡ってくる可能性があるので、case None.type => と書いておいた方がエラーが出るかどうか?や、出る場所が微妙に違くなる可能性がある、みたいなノウハウはあるか?」 / Twitter
がくぞさんはTwitterを使っています 「それって…… compiler は interpreter ってコト!?」 / Twitter

代数的データ型

代数的データ型 - Wikipedia
代数データ型の直積型と直和型の理解 - きしだのHatena
Haskell 代数的データ型 超入門 - Qiita
6.pdf
タグ付きバリアント型(代数的データ型) - iorate's blog
代数的データ型
TypeScriptで学ぶ代数的データ型
代数的データ型とは何ですか? - Quora
OCaml(関数型言語):Dev Basics/Keyword - @IT
代数的データ型と初等代数学 - ryota-ka's blog
代数的データ型とその双対性 - エムスリーテックブログ
代数的データ型 - ウォークスルー Haskell
6.pdf
shapelessと代数的データ型
TypeClass.pdf
代数的データ型のひみつを暴いて関数型プログラムを攻略する|IT勉強会ならTECH PLAY[テックプレイ]
haskell - 代数的データ型は木構造で表現されるとあるが、どのような構造になるのかよくわからない - スタック・オーバーフロー
Rust パターンマッチの網羅性 - 簡潔なQ
Algebraic data type - HaskellWiki
C# 9.0でHaskellの代数的データ型(ADT)的な書き方をする - Qiita
scala - How to create ADT in Haskell? - Stack Overflow
functional programming - ADT名。 Haskellの `Left a`とは何ですか、それからʻa`とは何ですか?
haskell - 型をデータコンストラクターに関連付けるADTエンコーディングの問題は何ですか? (Scalaなど)。
関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
scala : 機能的プログラミングのADTについて代数とは何ですか?

Haskell と Scala

エヌユルさんはTwitterを使っています 「Haskellだったら単に値を持たない代数的データ型を定義して関数でパターンマッチして挙動を変える所だけど Scalaだと代数的データ型自体がobjectとしてメソッドを持てるから多態みたいな感じに書けるので どっちで実装しようか迷ってます」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellだと引数でのパターンマッチがその場で書けるけどScalaだとmatchでネストが増えるからtraitのoverrideとして書くか」 / Twitter
エヌユルさんはTwitterを使っています 「待てよ条件が直行するからそのまま1次元で書き下すと大変なことになるのでは」 / Twitter
エヌユルさんはTwitterを使っています 「やっぱりパターンマッチで変えるべきか」 / Twitter
エヌユルさんはTwitterを使っています 「フラグがいくつかあって特別な奴は全部無視する」 / Twitter
エヌユルさんはTwitterを使っています 「いやそんなことないな」 / Twitter
エヌユルさんはTwitterを使っています 「でもこれだとかなりの条件わけになってメソッドの実装がめっちゃ重複するしやっぱりメソッド多態よりデータでの区分けにするか」 / Twitter
エヌユルさんはTwitterを使っています 「Scalaって引数部分でタプルの分解出来ないのか?」 / Twitter
エヌユルさんはTwitterを使っています 「case object作った時明示的に最初あたりはtraitの型であることを明示しないといけないのがもにょるな メソッドの返り値で型書いてるからそのへんは推論して欲しい」 / Twitter
エヌユルさんはTwitterを使っています 「Dottyでenum入ったらそのへんも改善されるんだろうか?それともsyntaxだけ?」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellのdataと違ってコンストラクタに値するやつもtypeを持つのが悪いんだろうなあ」 / Twitter
エヌユルさんはTwitterを使っています 「あーもうScalaで代数的データ型使うと一々型注釈が必要で面倒だなあ」 / Twitter
エヌユルさんはTwitterを使っています 「組み合わせ爆発を回避するために色々条件を入れて頑張ってフィルタリングした結果 4万件の間違いデータが 120件の間違いデータに減った! 正しいデータは1つもなし! クソが」 / Twitter

代数的データ型 - Wikipedia
Algebraic data type - Wikipedia
代数的データ型と初等代数学 - ryota-ka's blog
Haskell 代数的データ型 超入門 - Qiita
Scala 代数的データ型 超入門 - Qiita
代数的データ型 - ウォークスルー Haskell
何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
代数的データ型を使わないリスト - maoeのブログ
TypeClass.pdf
代数的データ型と直和型と直積型とTypeScript - Togetter
データ構造 – Haskellの代数的データ型 - コードログ
輪 (数学) - Wikipedia
代数的構造 - Wikipedia
「ADT, 直和・直積, State Machine」 - Qiita
ワンランク上の関数型技法による Command パターンの置き換え - Qiita
続くといいな日記 – type family を使って再帰的 ADT をオープンにする
D言語で,(ゴリゴリの)コンパイル時メタプログラミングでADTを実現した話 - alphakai’s tech blog
keiichiro shikano λ♪さんはTwitterを使っています 「計算機のニーズに合わせるための型宣言は人間の認知にあっていないからしたくないけど、自分で作った代数的データ型を使い始めればそれは自分という人間の認知にほかならないし宣言するのはやぶさかでないよなあ」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「もうすこし,そのあたりが一般的になることを期待します. が,Function typeがあるなら,それはもう,単なる認知云々ではなくて,プログラミングそのもの. 「型宣言できない=プログラミングできない」 といっていいと思いますねぇ. https://t.co/3MC73qO81t」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「まともな型システムがあるなら,おねがい型宣言書かせてくれるよね.という気分.」 / Twitter
06gun_03hen_04.pdf

hashmap

Masaki HaraさんはTwitterを使っています 「というかまず大前提としてhashmapは "map" と名乗ってはいるものの実態としてはtotalではなくpartial functionなんですよね。いわゆるfunctionにも例外機構とかはありますけど期待値はだいぶ違う」 / Twitter
Masaki HaraさんはTwitterを使っています 「hashmapとfunction同一視したいねの話題に関連する議論です↓」 / Twitter
Masaki HaraさんはTwitterを使っています 「部分型付けのあるプログラミング言語では、 K -&gt; V は通常Kに対して反変なのに対して、 Map&lt;K, V&gt; (イミュータブルなもの) は通常Kに対して共変になるんだなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「Mapが反変性を持てないのはMap&lt;K, V&gt; → List&lt;K&gt; があるからで、逆に共変性を持てるのは未知の値に対する振る舞いが定義されているから (Noneを返す)」 / Twitter

部分型付け

ポリモーフィズム - Wikipedia
resume8.pdf
幽霊型による部分型付けの紹介
Swiftと3種類のポリモーフィズム - Qiita
TypeScriptで関数の部分型を理解しよう | Kabuku Developers Blog
構造的部分型 (Structural Subtyping) - サバイバルTypeScript-TypeScript入門
プログラム言語論 - 8.pdf
部分型付けの動作概念 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
型システムの勉強 | 雑記帳
漸進的型付けの未来を考える - yigarashiのブログ

合併型

TypeScriptの合併型と交差型ついて学ぼう
Scalaの合併型と全称型
「合併型」のご紹介:Scala 3の新しい型表現(2)|Scalapedia
(1)合併型
TypeScriptの型入門 - Qiita
Typescript(合併型と交差型) - 駆け足エンジニアの記録
tk0miyaさんはTwitterを使っています 「プログラムの型付けで Union 型のことを「合併型」と呼び始めたルーツが気になっています。だれか情報お持ちではありませんか。 (適切な訳語を調べていたのがきっかけです。こちらのほうが適訳だ、という情報もお待ちしております)」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「@tk0miya 私にはルーツはわからないのですが、CやC#にあるunionは共用体という訳語に落ち着いていると思います。TypeScriptの(number | string)のような型を指しているなら「合併型」という訳語が私には一番しっくりきます。」 / Twitter
tk0miyaさんはTwitterを使っています 「@beatnik_t5r @kaoriya コメントありがとうございます。型付け(typing)としての union と、C の union(共用体) とは異なる概念だという認識です(Java は詳しくないのでコメントできません)。前者はメモリ領域を共有/共用してはいませんし、共用型という訳は適当ではないと考えます。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@tk0miya @igrep ルーツはわかりませんが、とりあえずこの論文は1980です。 https://t.co/oI3csWAOP5」 / Twitter
IPSJ-MGN211109.pdf
tk0miyaさんはTwitterを使っています 「@tomooda @igrep ありがとうございます!古くから使われていた訳語だろうと思っていたのですが、1980年からとは!文字通り歴史を感じますね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「本当に脈絡のないただのリマインド: 直和型 (sum type) と合併型 (union type) は別概念です。」 / Twitter

型安全な行列計算

shapeless で型安全に行列の積を計算する - Qiita
[1512.01898] A Simple and Practical Linear Algebra Library Interface with Static Size Checking
akabe/slap: BLAS and LAPACK binding in OCaml with type-based static size checking for matrix operations
実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development

名前付けの遅延

アイドル焼肉さんはTwitterを使っています 「僕が今やりたいことをあえて言語化すると意味付けの遅延なのかなって気がしてきた。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「性質と実体、認識論と存在論、統語論と意味論、代数と空間のような双対性はいろいろな領域にあって、これらのうち前者から徐々に後者を導いていくっていう方法論をソフトウェア開発の分野で構築できないかなって考えている。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「プログラミングではとにもかくにも名前をつけることは崇高な行為と見なされがちで、それ自体は別にいいんだけど、とにかく意味付けを急がされる感じがする。もっと無味無臭の構造があっていいと思っていて、ユーザが使い続けることによってそこに意味が生まれてくるのではないかと。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「「無味無臭の構造」っていうのは具体的な言語機能でいうと、たとえば構造的部分型とか無名関数とかそういうのです。それ自体にどういう意味があるかはわからんけど、とにかくその構造には価値があるみたいなやつ。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「念のために言うと、意味論の側を軽視してるつもりはまったくなく、構造よりも意味のほうが見出すのに時間がかかる(ことが多い)っていうだけです。」 / Twitter
尾崎隆大さんはTwitterを使っています 「@a_suenami % Prolog 何が書かれているか想像しながら読むことになりますが. 'スケルトン的なコードはどうなのでしょうか'( 'https://t.co/vtuEFoqyhC') :- 何が書かれているか想像しながら読むことになりますが.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog スケルトン定義はこちら '1'([_1|_2],[_3|_4]) :- select(_3,[_1|_2],_1,[_5|_4]), forall(member(_6,[_5|_4]),_6 @&gt;= _3).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '問題はこれで何をやっているか判るかですが、 select forall @&gt;= この三つの組み合わせで最大値か最小値絡みであることは瞬時に分かる。 次に、selectが4引数なので、最大値または最小値となにかを交換しているのだろうなと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、 https://t.co/Ay9pM3DV0F の方は どうかと云うと、 「ならびの最小値要素を求め先頭要素と入れ替える」 より後は読みません。 これは本気の話しで、一度書かれたPrologプログラムの本体部分を読むことはありません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '既にtwitter上で度々記した通り、 述語名がABCでA,B,Cがおよそ句を意味するとき、述語の分割は倒置を省略すると、 ABC :- A,B,C. ABC :- AB,C. ABC :- A,BC. となり、ABCでその内容を一望できてしまいます。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実際には ABC :- DE. と再定義される場合もあります。再定義されれば、ここから始まるわけですから、ABCを読むだけでは情報が不足である心配は大いにあるわけです。 ですから、あくまで作法に従って書くことに努めればという条件付きの話と思って下さい。'.」 / Twitter

動的型

動的型付け

Miura HidekiさんはTwitterを使っています 「mmcの経験で動的型付け言語で抽象解釈みたいなテクニックで型付けを出来る限り高速で行いたいなら、共有されたポインタをガンガン書き換える感じになるのでRustはとっても分が悪いだろうなって凄く思う >RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、共有されたポインタをガンガン書き換えるのが本当に最適解かはよくわからない。」 / Twitter
Miura HidekiさんはTwitterを使っています 「共用する部分の管理は参照カウントよりそれなりに洗練されたGCアルゴリズムの方が効率が言いような気が凄くする」 / Twitter
Miura HidekiさんはTwitterを使っています 「ランタイムがでっかくなるとかチャンク内のメモリマップが必要になるとか色々課題はあるわけだけど」 / Twitter
ネイティブコードを吐く動的型付け言語は存在しますか?また技術的に可能ですか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
Miura HidekiさんはTwitterを使っています 「最近の動的型付け言語の処理系の売りってJITになりがちなんだけど、本当にそれだけなのか?という疑問は関係者は持つべきだとは思う。他に有効な解を私が持っているわけじゃないのだけど。でも有効かもしれない解はある程度思い浮かぶ」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付け言語でJITをコンパイラを実装してパフォーマンスを上げるのは意外と大変。がんばれば確かに速くなるのだが、速くなるかは自明ではない」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付けに限らず処理系で実アプリケーションで効いてくるのはコンパイラよりランタイムだと思うのだけど、あまりランタイムの改良をアピールすることって少ないな。RubyやJavaはGCの改良をアピールするけど(それは正しい)」 / Twitter
Miura HidekiさんはTwitterを使っています 「ターゲットプログラムによってカスタマイズされたランタイムを生成する処理系って効果ある気がするけど、私は知らない」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 Stalinはランタイムライブラリごとグローバル最適化をかけてたと思います。ただ今時はランタイムも大きいので時間がかかりすぎるでしょうね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana Stalinすげー。ランタイムが大きくなってもカスタマイズのポイントを絞れば可能だと思います」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語の売りって昔から今も、Cみたいにキャストすればなんでもありな自由度をキャストなしで書けることとデータ側にintrospection用というかメタ情報を持っていてどこからでも参照できることの2点につきると思うんですが最近は違うのでしょうか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@HPetegari はい。でもそういう機能を使ってないときは、そういう機能を持たない言語と同じくらい速く動いてほしいですよね。そういうのを可能にする技術がすこしずつ登場していると思います」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintegerをbox化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではbox化せずに性能的に遜色なく処理しているらしいという印象です。その当たりを詳しく知りたい。実は最近は動的でも内部で型推論してる?」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintergerをボックス化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではボックス化せずに性能的に遜色なく処理しているらしい。その当たりを詳しく知りたい。動的でも内部で型推論して最適化してる?」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 型は書いても良いと思う派ですが、最初に書いた型から、時とともに動的に変化しても良さそうな気もしています。C コンパイラを書いていて、コンパイルする過程で出来る高水準中間言語を見ていて、これの扱ってる型情報を動的に変更できれば良いのだろうという印象です」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が時ともに変化するを許すか否かは中間表現をSSAにすると余り意味の無いことに感じます。もちろん、PHI命令でユニオン型が生じてしまうリスクはありますが。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 プログラマとかアプリ利用者から見て、型が動的に変わることに意味がある場合もあると思います。たとえば、SQL で動的にテーブルのスキーマを変更できるような感じで、通常のプログラミング言語についても同様の使用感が得られます」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 それならユーザはあえて型を指定せずに処理系に任せるような言語仕様にした方がいいような気がします。たとえばJuliaのように」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 型が不要なら、JSON Schema みたいなものって不要なはずだと思うのですが、存在していますよね」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 Julia は調べてみますが、私は I/O を中心に考えてるので、JSON Schema みたいなものは必要だと思っています」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が不要ではなく推定できる範囲は処理系に任せましょうですね。JSONで型の推定は無理に思えます」 / Twitter
⿻あいや⿻ 技術書典11新刊🎉 数学と女の子たちの本「せつラボ」さんはTwitterを使っています 「動的型付き言語の最大の弱点 (プログラミングの中心が未定義で回る) https://t.co/5JGEH9kf0d」 / Twitter
Miura HidekiさんはTwitterを使っています 「かねがね高速なインタープリタをどうするか考えているが、私もLLVMのようなフレームワーク(ただし明示的な型指定は一切ない)を作るべきではないかという方針に傾いている。」 / Twitter
Miura HidekiさんはTwitterを使っています 「型情報などの拡散やユニフケーションなどは重いからCなりRustで記述して、それらのポリシーを記述するためのAPIをmrubyに提供するような形がいいのかなって思っている。」 / Twitter
Miura HidekiさんはTwitterを使っています 「いずれにしても、任意のVM命令でその命令が生成した値の影響を受ける命令のリスト、それが現フレームを超えるのかはAPI一発で得られるようにすべきである。」 / Twitter
uint256_tさんはTwitterを使っています 「楽しそうね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t あれこれ検討しているときが一番楽しい」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 実現できた時も楽しい」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t 確かに!」 / Twitter
uint256_tさんはTwitterを使っています 「動的言語って適当に書いても動いているように見えるから初心者向けって言わがちなのかな」 / Twitter
画力・博士号さんはTwitterを使っています 「カチッとした型システムの乗ってる計算機言語をそもそもプログラムをほぼ書いたことのない人が学ぶと型システムの意義を感じにくい問題(なんとなく,操作的直観と静的検査とが或る程度別個でいてかついずれも学べるようになっているのが望ましそうには思える)」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t 動的言語というか、インタプリタだとビルドとかしなくていいので初心者には優しいかも。」 / Twitter
uint256_tさんはTwitterを使っています 「@s_isshiki1969 結局コマンドを叩かないといけないなら、インタプリタでもコンパイラでもあんまり変わらないんじゃないかと思ってしまいました」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t まああなたにとってはそうでしょうけれども。 あとはREPLとかあると一行一行動作を見れるので初心者向けには良いかなあ。」 / Twitter
uint256_tさんはTwitterを使っています 「@s_isshiki1969 確かにREPLは便利ですね。忘れてました」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t あとはプログラムが書いた通り頭から実行されるのとか。main関数って何、とか悩む必要ないので」 / Twitter

REPL 等

uint256_tさんはTwitterを使っています 「大きなプログラムをインタプリタ(スクリプト)言語で書く意味をいまいち理解できていないんですよね」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
uint256_tさんはTwitterを使っています 「@__gfx__ 言語自身ではない所に問題があったんですね」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t そうそう、むしろ現代的な言語だとあまり意味のある区別ではない気がしますね。 あとは、スクリプト言語=インタプリタ言語=動的型付き言語、みたいな昔の処理系の典型的な実装に引きずられた定義もまだ生き残っているかもしれません。」 / Twitter
uint256_tさんはTwitterを使っています 「@__gfx__ 確かに。Crystalとかはスクリプト言語っぽいけど静的型かつコンパイル型でしたね。」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t TypeScriptも静的型かつコンパイル言語なのに実行エンジンが動的型のスクリプト言語、しかもそのスクリプト言語はしばしば実際に実行するのはJITしたマシンコード、という具合ですしね。」 / Twitter
_ko1さんはTwitterを使っています 「@uint256_t 前提によっていろんな意見がありそうです。 例えば、実行中にコード差し替えがやりやすいとかはあるかもしれません(試行錯誤しやすい) 典型的にはreplでゴニョゴニョしながらなんかするとか」 / Twitter
uint256_tさんはTwitterを使っています 「@_ko1 確かにREPLは便利ですね」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t 動的な言語(型やメソッドが実行時に変化する)の実行のためですかねえ。」 / Twitter
uint256_tさんはTwitterを使っています 「@s_isshiki1969 それは確かにそうですね。(大きめのプロダクトとかでインタプリタ言語を使う意味を考えていました)」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t Railsみたいなのは巨大だし、かつRubyの動的な性質をフルに活用していますね。 静的型付け言語の型の柔軟性が飛躍的に上がったので、遅い動的型付け言語を巨大プロジェクトで使う意味というのはどんどん縮小している気がする。」 / Twitter
uint256_tさんはTwitterを使っています 「コンパイラ型かインタプリタ型かなんて関係なくて、ただ偶然好みの言語がどちらかの型だった、ってだけなのかもしれない」 / Twitter

Ruby

Miura HidekiさんはTwitterを使っています 「Rubyの処理系を書いた者はすべてCRubyの性能の良さにひれ伏すものだ (CRubyの作者は除く」 / Twitter
僻地のプログラマさんはTwitterを使っています 「@miura1729 Rubyみたいな高機能な言語のVM、仮想マシンの単一の命令が巨大なのでJIT案外効果ない説提唱してます。仮想マシンのランタイム高速化のほうが多分効きます」 / Twitter
Miura HidekiさんはTwitterを使っています 「@kmt_t だいたいそうなんですが、命令のうち巨大で遅いのはsend命令(メソッドを呼ぶ命令です)。もちろん、だてに巨大で遅いのではなく、理由があるのですが状況を限定して速くする(またはインライン化して無くす)ことが可能です。RubyでJITコンパイラで速くなる大部分はこれだと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@kmt_t 逆に言うとインライン化(Cで書かれたメソッドとか算術演算も含む)しないJITコンパイラは多分インタープリタより遅い」 / Twitter
Miura HidekiさんはTwitterを使っています 「@kmt_t その為、インライン化や部分特化さえすればインタープリタでもJITコンパイラとそん色ない処理系が出来るのではないかと思っています。今取り組んでいるプロジェクト(1行もコード書いていないけど)はこれを実証するのが目的です。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @kmt_t それならジェネリックな巨大VM insnをスペシフィックな軽いVM insnに展開するようにしたらVMのまま速くなったりしないかなと思ったんですがそこまでやるならネイティブコードまで展開しちゃえばいいのかな。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「共有結合はcovalent bond、というのをおぼえた。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @kmt_t たとえば、:+というメソッドをFixnumとFloatを優先する型チェック命令を生成すると言った最適化は考えられますが、このアプローチの本当のうまみは動的な情報を得てon the flyで命令を生成することではないかと思っています。静的に型が分かると色々やれますけど。」 / Twitter

Nil

島鉄雄さんはTwitterを使っています 「動的型言語で、nilチェックを強制するとしても、結局その箇所を実行しないと何も分からない訳で、それでも強制するとしたら 「今はnilじゃないけど、この型はnilが入る可能性があるから、nilチェックの無いコードをエラーにします」 と言われてエラーで終了するw 動的型のお手軽さが台無しになるかも」 / Twitter
島鉄雄さんはTwitterを使っています 「エラーにするのはやり過ぎかもしれないから、警告にしたとしても、十分有益な情報だろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「例えば、要素10の配列を作成して、まだオブジェクトを格納してない状態にしたい場合、nilを入れざるを得ない。 これは未初期化ではなくて、ちゃんとした初期値だ。 なので、必要なのはnilを無くす事じゃなくて、動的型言語でも、その要素を使う時にnilチェックを強制する仕組みだろう。」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「動的型付けでNilが無い言語があったらいいのに。 そうすれば素人でも扱えるし、チーム開発に導入しやすい なんか静的型言語は扱いづらいという人が多いらしいので」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「僕はnullのある言語でチーム開発すべきではないと思っている。 大抵そういう言語では「ここでnullになるのはバグですか?仕様ですか?」という混乱が生じるので Web開発ならReact+ReasonMLが第一候補かな」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「それ以外に中々ないっすよね あ、Elmか」 / Twitter

histric-1

Shiro KawaiさんはTwitterを使っています 「REPLで実行する→エラー出る→データはメモリ上に残ってるので出力ルーチンだけ書き直して再実行 https://t.co/qWsCAGMuu3」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「動的型の言語でクソ重い処理をしてその結果をファイル出力するプログラムを書き,ファイル出力のコードにミスがあったためにクソ重い処理をした後に動的にエラーが出て何も得られず終わったときの瞬間最大感情消失速度は光速をも超えると言われている.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「もっと言うと、メモリ上のデータの方がコードよりも長生きするという使い方をしないと動的にしてる意味が無いと思う。メモリにデータを載せたまま、コードが扱う型を変えれば、データの型も変わってくれる、という。」 / Twitter
Toru HisaiさんはTwitterを使っています 「@anohana なんかそれってデータベースのコンソールで SQL を叩くのに似てますね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@torus 永続的なデータがあってそれをいろいろいじりながら考えるイメージですね。伝統的なLispのワークフローはやっぱりそっちだと思います。GaucheはREPLでのエラー時にローカル環境を捨ててしまうのが不便なんですが、いずれ何とかしたいと思ってます。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 動的型付け指向だとメタプログラミングのレイヤを縮退させて考えがちかも。例えば「任意のサイズのタプルをシリアライズ/デシリアライズするコード書きたいじゃん」というのは動的型付けだと同じレイヤで書けるけど静的型付けだと型をパラメータとしたひとつ上のレイヤになる、みたいな。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana ええ,lisp/schemeだとリストとタプル区別ない感じで,イテレートできるかどうかはアタイ(値)が決めるわみたいなね.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 ちょっとおもしろいのは、CLOSだとスロットごとに名前を指定したアクセスしかできないけど、メモリ上はどうせスロットの列で持ってるんだからイテレートさせろや、とPaul Grahamが言ってたやつ。抽象化の壁をどこに設定するかの違いかなあ。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あれれ,MOPってスロットの登録部分とか(クラス継承時のメソッドで)手を出せたような記憶があるんだけどできないんでしたっけ??」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 直接インデックスで低層にアクセスする仕組みは規格外じゃないかな。実装によっては可能だけど(Gaucheも内部的には可能)。あと自分でベクタをストレージにしたクラスをMOPで作ることもできるけど、ネイティブオブジェクトに関しては…」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あーそうか勘違いかも. AMOPではそのあたりアクセスしてた記憶があったんだけど,最初の部の説明はもしかしたらCLOSの仕組みを実装で説明してたからMOP使う側からではなかったかもしれないです...うう.」 / Twitter
島鉄雄さんはTwitterを使っています 「&gt; 動的型付け言語には初期の開発スピードが速いという微々たるメリット 静的型言語はコンパイルが通らないと実行する事が出来ないけど、複数(5とか10)人以上で開発してると、ソースを更新した時にコンパイルが通らない事がたまにある。 それが納期間近だと殺意すら芽生える事があるw 続く https://t.co/TGAnbONggS」 / Twitter
島鉄雄さんはTwitterを使っています 「あと、静的にバイナリを作成すると実行中にコードを修正して、停止箇所から再開するという事もやりにくくなる。 要するに静的型のメリットは重要だけど、動的に実行出来る(担当箇所以外でエラーが有っても実行出来たり、実行中にコードを変更出来る)事も非常に重要になってくる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています 「なので、最近のゲーム開発はゲームエンジン上で、C#を自前のVMを使って動的に実行出来るようにしてる事が多くなってる。 これは動的型ではないけど(C#なので)、動的である事のメリットは計り知れないと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「コンパイル通らないコードを書いてはいけない縛りをすると、一度公開したインターフェースは二度と変更してはいけない事になる。 なので、インターフェースの実装者は変更した時に、ソース変更しといたよと言って他人のコードをいじる事になるけど、そこは今まさに自分がいじってる最中とかある。 https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「.NET&amp;Windowsプログラマのためのデバッグテクニック徹底解説 だと、 &gt; チーム全員にドーナツを奢らせるw 多人数開発だとコンパイルエラーはどうしても避けられない。 https://t.co/EaLpRDGR6H https://t.co/qouwp80Bvp」 / Twitter
島鉄雄さんはTwitterを使っています 「それを突き詰めると、バグを出すコードを書くのが悪いってところまで行きついてしまう… 間違いなく正論ではあるけど… https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語の方が、動的に開発する環境が整ってるのは間違いない。(一例として、ブラウザに備わってるJavaScript用のデバッグ環境とか) なので、後は型の整合性をチェックする仕組みがあればいいだろう。 TypeScriptは大規模なものだけど、RubyやPythonも型宣言が出来るからそれで十分だと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語(RubyやPython)は、型宣言を全部ちゃんと書いて、エラーも全く無くなったからと言って、Cと同等の効率の実行ファイルを作成出来る訳じゃない。 そこが静的型言語を越えられない壁だろう。 逆に言うと、型のエラーが無い時にCと同等の実行ファイルを作成するコンパイラが有れば究極だろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「そう考えれば、RubyやPythonはまだまだこれからの言語だと思うけどね。」 / Twitter
島鉄雄さんはTwitterを使っています 「少し前に似たツイートをしたけど、軽くまとめると、静的型言語の弱点は多人数(5〜10人以上)での開発で、コンパイルが通らない事が起きたり、フルビルドが掛かるとPC1台の場合に30分以上掛かる事がある。 (分散ビルドで解決出来るけど、それでも5分程度掛かるだろう) 続く https://t.co/0rATXeJKsa」 / Twitter
CubbitさんはTwitterを使っています 「動的型付けな言語を好む人が何故それを好んでいるのか、うまく言語化されたものを未だに見たことがないので、誰かに書いて欲しいです」 / Twitter
島鉄雄さんはTwitterを使っています 「だから、ゲーム開発みたいにイテレーション回数がクオリティに直結するような場合は、動的型言語が好まれている(いた)。(Luaとか) しかし、型のメリットも必要だから、最近はC#のような静的型言語を動的に実行できるようにしている事が多いだろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「Emacsの70%はLispで出来てるけど、それでも本体はCで書かれてるから、1行書き換えただけでもコンパイルして起動し直さないといけなくて、これがスゲー時間が掛かる。 (自分のやり方がまずいのか…?) だから、Cの方はいじる気になれない。」 / Twitter
島鉄雄さんはTwitterを使っています 「結局、動的型⇔静的型、じゃなくて、Haskellの様な暗黙の型変換が無い代数的データ型⇔それ以外、という構図なんだよな。 動的に実行(修正・変更)が出来るという事自体はメリットしかない。」 / Twitter
島鉄雄さんはTwitterを使っています 「複数人開発でコンパイルエラーが起きる事例 1. 条件ビルド 2. ソース上げ忘れ 1.はreleaseとdebugでビルドを分けてて、debugの方で関数の引数を追加したのに、releaseの方のソースを直し忘れるとか。 どっちも当人の環境ではビルドが通ってるので気付かない。 CIでかなり予防出来ると思われる。」 / Twitter

jssst-ss-2021.pdf
Miura HidekiさんはTwitterを使っています 「1990年後半perlがWebでメジャーになるまでLispをはじめとする動的型付き言語がおもちゃ扱いされていた時代を知っている者としては再び動的型付けが見直される(おそらく今とは違う形に変わるだろうけど)未来が想像出来る」 / Twitter
しろやまさんはTwitterを使っています 「ここ何年か確実に、静的型付け言語は推論が強くなって型の恩恵を受けつつ書き味がよくなり、反対に動的型付け言語は型注釈をサポートすることが多くなってきて、進化における「収斂」のような現象が起きてるのが興味深いよね。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 動的型付けっていうか、インタプリタがおもちゃ扱いだった気がしますね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda それはありますね。BASICとかもなんだかんだ言っておもちゃでしたしね。やはりJITコンパイラの技術が発明されてからでしょうかね」 / Twitter
Miura HidekiさんはTwitterを使っています 「正確には1980年代の後半にあった第二次AIブームの時にLispやPrologなどの動的型付け言語が脚光を浴びた時があったけどまあ一部だったでしょう」 / Twitter
Miura HidekiさんはTwitterを使っています 「結局、プログラミング言語については今がどんなに勢力があってもそれが今後どうなるかには全く関係ないってことがこの手の話を長く見てきた年寄りの感想です。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 動的型付け言語で、規模の大きなシステムを組む際に、最低限これを準備しておけば非常に魅力的な環境を体現できるというのがあれば、コメントいただきたいです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 とりあえず、Webの黎明期を考えると別の領域の問題で必ずしも規模は大きくないかなと思います。」 / Twitter
神速さんはTwitterを使っています 「動的型付け言語はmockが楽なのでテストを書きやすいし、単体テストを素早く実行できるメリットはある。 まぁ、どっちもメリット・デメリットあるので、どちらも書けるようになって、案件の特性にあわせて使い分けられるべきじゃないかな。」 / Twitter
kmizu_v2さんはTwitterを使っています 「これはあくまで私見なのですが、動的型付き言語が流行った時代には、特に、主流の静的型付き言語がそこまで柔軟でなかった(パワフルでなかった)という背景も考慮する必要があるかなと思います。現代は、型がパワフルになったし、メタプログラミングも静的に(マクロ等)でやることができるから、」 / Twitter
kmizu_v2さんはTwitterを使っています 「ただ、一方で、いったん普及した言語はそうたやすく消えないし、コミュニティも変化していくので、部分的に静的型を取り込もうという動きが多くの動的型付き言語(Ruby 3、Python 3、JS -&gt; TS)で起きているのかなと。Gradual Typingのようなものの発展も関連してそうですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「逆に、静的型付け言語の知見を取り入れた動的型付け言語が再び席巻する可能性もあるってことだな。1980年代までのLispを考えるとありえる」 / Twitter
sumimさんはTwitterを使っています 「ぱっと思いつく範囲でSmalltalkが人気動的型言語と少し違う点は ➀原則として変数宣言が必須なのでタイポはある程度検知可能(ただしワークスペース変数は例外なのでこれは便利な反面、他言語並みに苦痛を伴う) ②デバッガーそれ自体が独立したIDE(な…何を言っているのかわからねーと思うが)続く」 / Twitter
sumimさんはTwitterを使っています 「③基本、簡易オブジェクトストア内でのプログラミングみたいなものなのでIDEがシンプルな仕組みながら多機能&IDE無しでも全情報にアクセスできる(広い意味で➀もその範疇)  …あたりだろうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そう言う意味なら、Rubyでも最初の代入(正確に変数の出現)が宣言で未使用ならワーニングが出るから一緒だと思うんだけど &gt;RT」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 retrun で何の警告もエラーも出ないの辛い...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki あ、たしかに。retrunというメソッド呼び出しととらえられますね。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「静的型と実行時型検査の話を見かけるとなんとなく距離を置きたい気持ちになるけど、自分も違うテーマで似たようなことをしているわけで…だから何というわけでもないけど。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型付け批判には「完全に型をあわせるパズルを解くまで実行させてくれない」みたいなのがあるけど、それは必ずしも当たらない。例えばVDMの型検査は、型が網羅的に一致していなくても実行可能な値が1つでも存在していれば(共通部分があれば)型エラーにはならないし実行可能なように設計されている。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そして処理系の作り方次第で、動的型付けのような柔軟な実行が可能。例えばViennaTalkでは、評価実行の最中に型の定義を変更することさえ可能だぜキリリ。念のために言っとくけど、VDMは由緒正しい型付集合論ベースの静的型付き言語だからな。(プログラミング言語じゃないけど」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「で、VDMの型システムのオレオレ解釈は、静的型はモデリングの道具の1つに過ぎない。正しいことを前提にしない。型付けが不完全でも、わかることは沢山ある。型は門番じゃない。型は目的じゃないってこと。型と格闘するぐらいなら、さっさと別のことをしろ。ってこと。そしたら型は後で湧いて出てくる。」 / Twitter
Island Life - 型付けと変更の時定数
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 例えば「静的に強い型付をするプログラミング言語が開発生産性が高い」という言説ですが,ソフトウェア工学的な観点で厳密に評価すると,本当にそうなのか?というのは昔から疑問に思っています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t というのは,静的に強い型付をするということは,型検査をクリアするのにそれなりに苦労するので,その知識・スキルを持つ人材を揃えるというところまで視点を広げると,アドバンテージが本当にあるのか?というのはよくわからなくなるんじゃないかと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付けで静的に型を得るType Profiler話は、どこまでやればいいのかが一番問題になるな(処理速度との絡みで)、と再認識した次第。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 通常のVM実行と静的な型推論、動的に行われる型プロファイル収集とJITコンパイルをどう組み合わせるかという話ですね。難しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 いえ、この話はあくまで抽象実行でどのレベルまでシミュレートするかという話を意図しました。確かに範囲を広げるともっと難しんですが」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 あ、そうか。抽象実行だから静的だけどtype profilingなのか。」 / Twitter
動的型付けインタープリター言語 Haskell - 趣味はデバッグ……
Miura HidekiさんはTwitterを使っています 「https://t.co/WuyFAlFUz7 これむちゃくちゃ面白いな。shapesはインスタンス変数のオフセット・型・フリーズ情報だけではなく、C++のvtableのような機能を持たせてインスタンス変数の型や引数の使われ方のパターンに特化したメソッドへのポインタを入れておくと言った使い方も出来るなと思った。」 / Twitter
The Future Shape of Ruby Objects
Miura HidekiさんはTwitterを使っています 「抽象解釈で行う型推定において、得られた型のバリエーションをshapesで表現すると型の比較(mmcの場合結構これがボトルネック。特に遅いプログラムだとなおさら)がポインタ比較一発になるので高速化できるかな?アロケーションコストの方が大きいかな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「みんなJITコンパイラにshapesを使っている、使っていないのはお前だけ という気分になっている」 / Twitter
ْさんはTwitterを使っています 「動的型付けじゃないと困るようなメタプロをやる状況,そもそもそれが間違ってるんだよな」 / Twitter
Does José Valim prefer dynamic typing or static typing? - DEV Community
「動的型付け」ではなく動的言語と呼びたい - ベインのブログ
Miura HidekiさんはTwitterを使っています 「型を指定しないで済むのがメリットなのは、楽をするからとかではなくお任せするとより適切な型を推定してくれる可能性があるから」 / Twitter

型注釈生成

Miura HidekiさんはTwitterを使っています 「https://t.co/hd4NdBAB7H 抽象実行ではなく本当に実行するのか。これはこれで現実的なアプローチかもしれんな」 / Twitter
Instagram/MonkeyType: A system for Python that generates static type annotations by collecting runtime types
Yusuke EndohさんはTwitterを使っています 「@miura1729 自分は当初は動的解析だったんですが、やってみると意外と大変(オーバーヘッドが巨大、カバレッジ高いテストがないとダメ、など)で、抽象解釈に切り替えたんですが、結果的にはもっと大変な道を選んでしまったなあという感じです。」 / Twitter
Yusuke EndohさんはTwitterを使っています 「@miura1729 動的解析でメソッドの型シグネチャを作って、メソッド単位で型解析する(抽象解釈でも伝統的型システムでも)、というのはakrさんとかが推してて有望そうです。手が足らないですねえ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mametter なるほど、計算量爆発しないし現実的ですね。インスタンス変数とかどうするのかが問題かなって思います。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@mametter @kmizu @keke_moto 抽象解釈のエントリポイントとしてのシグネチャはもちろんあった方がいいのですが、やはり抽象解釈で拾えない部分が多く、推論を助ける補助的な注釈を行いたくなる場面は当面の間まだまだありそうっていうのが最近の認識です (具体的にはこんな作業が必要になってます… https://t.co/TYLJtpj8p6)。」 / Twitter
improve various minor inferrabilities by aviatesk · Pull Request #38832 · JuliaLang/julia
mod_poppoさんはTwitterを使っています 「多次元配列のshapeの情報を含んだ型注釈が欲しい(ドキュメントとして)」 / Twitter
mod_poppoさんはTwitterを使っています 「型はドキュメント!(素振り)」 / Twitter

型理論

System F(多相的λ計算)に集合論的意味論がつかない

mod_poppoさんはTwitterを使っています 「「型=集合」で良かったらそもそも型理論は生まれてなかっただろうよ」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「型から集合は規定出来るけれど、集合から型は自明には規定できなさそう。集合を与えられたとしても、集合の生成方法や演算までは規定できなそうだしなあ。ペアノ算術も型が先にあって、そこから集合の構成方法、演算、元が決まる感じ。詳細はよく知らない。」 / Twitter
H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「「型理論では型が単なる集合として扱われることはまずありません」の大きな理由の一つは,多相型が古典集合論的解釈だと矛盾を引き起こすからです。 https://t.co/zPVcbwlQqK 一方で,直観主義的集合論(トポス)ならばこの矛盾は回避できることも知られています。 https://t.co/CwpqsSfjcl」 / Twitter
Polymorphism is not set-theoretic | SpringerLink
Polymorphism is set theoretic, constructively | SpringerLink
ruichiさんはTwitterを使っています 「“Haskellの型と直観論理 - 朝日ネット 技術者ブログ” https://t.co/qV73xc1Hlo」 / Twitter
Haskellの型と直観論理 - 朝日ネット 技術者ブログ
H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「理論の人間という表現がよくなかったかもですが理論が偉いという意図はないです。コンピュータ科学と他の科学分野の違いを聞かれたとき私は理論的側面と物理的側面と人間的側面のバランスが重要な分野だしそこが面白いところでもあるとよく言います。私がコミットできるのが主に理論というだけで。」 / Twitter
H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「なので理論の人間はこのアナロジーを使う気にはならないけど,入門書で直観的に説明する分には許容範囲かなとは思う。Programming Haskellは微妙なライン。」 / Twitter
H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「@qnighy System F(多相的λ計算)に集合論的意味論がつかないことだけなら原論文(のドラフト) https://t.co/4o0mJeIKE3 がありますが,トポス的に意味論がつくことは題名をもじった論文(のドラフト) https://t.co/IEePvhtEHe にあります。」 / Twitter
(RR-0296.pdf) - RR-0296.pdf
pitts-polymorphism-is-set-theoretic-constructively.pdf
mod_poppoさんはTwitterを使っています 「集合を集めたものは再び集合になるけど、型を集めても型にはならない、みたいな説明はアリか?」 / Twitter
mod_poppoさんはTwitterを使っています 「型のユニバースがあった」 / Twitter
mod_poppoさんはTwitterを使っています 「誰か「型って何?集合との違いは?調べてみました!」みたいな記事を書いてくれ」 / Twitter
でこれきさんはTwitterを使っています 「No Naive Set Theoretic Models of Polymorphic Lambda Calculus? - Computer Science Stack Exchange https://t.co/mHUNHDohg1」 / Twitter
functional programming - No Naive Set Theoretic Models of Polymorphic Lambda Calculus? - Computer Science Stack Exchange

簡約と型付けについて私が知っている二、三の事柄(試験投稿) | Mathlog
型理論 - Wikipedia
階型理論(かいけいりろん)とは - コトバンク
階型理論
階型理論の補足説明
プログラマのための簡単な型理論入門 - Qiita
型理論 | 黒曜の吹き溜まり
型理論 なんて自分には関係ないと思っているあなたへ
型理論と型システムは違うらしい - 木下修司研究所
「型」の定義に挑む | POSTD
ml_module_type_theory.pdf
El Pin AlさんはTwitterを使っています 「Objective metatheory信奉者になりつつある」 / Twitter
Objective metatheory - Google 検索
mod_poppoさんはTwitterを使っています 「量化子除去を組み込みで備えたプログラミング言語があると便利だろうか(?)」 / Twitter
mod_poppoさんはTwitterを使っています 「型、色々な解釈ができるという点がある種本質のような気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「型理論なんもわからん」 / Twitter

型システム

型システム

がくぞさんはTwitterを使っています 「ここで言われている圏論的な厳密性というのがちゃんと解ってないですが、Javaのintと+演算に関しては群論的に正しく半郡をなす気がします。これはオーバーフローも含めて。 intが正しく整数を表していないという話ならそれはそう。あくまでintは整数のうちの一部の範囲をとる集合でしかない感じですね」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「型システム、圏論的な厳密性っていささか理想論に過ぎると思っていて、実際のプログラミング言語だと int + int → int みたいな誤魔化しが結構あって。 型int の場合とかだと暗黙に0に近い範囲での演算なら結果もintみたいな、なんかこう範囲指定みたいな条件が隠されてるというか」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「この型の条件で面白いのがJavaのジェネリクスの境界のextends と super で、inもしくはoutに限定すれば破綻しない、みたいなことやってて これ、汎用化したら、面白いんかもなあ……ともやもや考えている」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「型システムで「なんでここでこの型じゃ駄目なんだよ!?」ってやつ、反例となるケースを除外条件としたら、型の成約をむしろスッキリ分かりやすく表現できるんじゃないかという説 人類の脳みそがそういう例外規定で回ってるんじゃないかっていう」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「制約を合成したときにどうなるのっていうのが数学的な厳密さで保証できればあるいは🤔 型の制約スパゲティができるだけなのかもしれないが」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz intを挙げたのは外してたな、と思いました」 / Twitter

“型”を語る際の7つの重大な誤り | POSTD
Introduction - Counterexamples in Type Systems
danwakai2015.pdf
型システム - Wikipedia
ポリモーフィズム - Wikipedia
型システム 〜プログラムの安全性を支える数学〜 - Laborify
型システムを学ぼう!
型システム-プログラミング CapmNetwork
ogiwaraさんはTwitterを使っています: 「TaPL、数学的な前提知識はそこまで求められない 順序理論がちょっと難しい程度」 / Twitter
ogiwaraさんはTwitterを使っています: 「@ei1640 TaPLがキツイ理由としては、 - そもそも論理学か、集合論における順序理論の習熟度が低い - いきなりの計算論理学がキツイ という二つの理由があると考えてます 前者についてはまあ頑張るしかないですが、後者についてはこの本(CoPLと言うらしい?)をオススメします https://t.co/2nG4zWzcjs」 / Twitter
プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) | 五十嵐 淳 |本 | 通販 | Amazon
ogiwaraさんはTwitterを使っています: 「SKIコンビネータとかChurch-Rosserの定理とかは面倒見てくれなかった記憶」 / Twitter
ogiwaraさんはTwitterを使っています: 「ラムダ計算にしたって別に前提知識は求められない、その場で分かりやすく(実用向けの)解説してくれる」 / Twitter
ロビン・ミルナー - Wikipedia
リスコフの置換原則 - Wikipedia
Future パターン - Wikipedia
h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
多段階計算の型システムの基礎
TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS - Speaker Deck
effectful subtyping - lilyum ensemble
Introducing Type Providers - Google スライド
A Journey to Type-safe Vectors in F# - Speaker Deck
山本和彦さんはTwitterを使っています 「素敵な型システムがあるプログラミング言語では、実装の問題を型のレベルの問題に簡略化して考えることができる。この意味が分からないのに、「型注釈は書きたくない」と主張するのは、実にもったいないことだ。(分かって主張しているならは、好みの問題なのでOKですよ。)」 / Twitter
hindley-milner型推論を持つ言語で、アドホック多相を扱う方法について、教えていただけますか?に対するJunji Ueharaさんの回答 - Quora
井山梃子歴史館さんはTwitterを使っています 「型システムのChurch styleとCurry styleを逆に覚えてたっぽい」 / Twitter

高階のジェネリクス

がくぞさんはTwitterを使っています 「TAPLの定義に基いて型という用語を使っている人々とそうでない人々の間で齟齬が生まれておるな……」 / Twitter
かすていらふぃさんはTwitterを使っています 「普通の(一階の)ジェネリクスくらいまではプログラミングの基礎教養みたいな世の中になってほしい」 / Twitter
がくぞさんはTwitterを使っています 「高階のジェネリクスぐらいは多くのプログラミング言語で扱えるようになって欲しい……」 / Twitter
ズボンを月曜の夕方6時以降に回収さんはTwitterを使っています 「表現力が低いというのにも二方向あって、書ける計算の範囲が広いのは型制約が緩い言語ぽい。逆にもう一つ、型制約に関する表現力があって、RustやScalaはここも強い。求めているのは型制約に関する表現力が(解決しようとしている問題に対して)十分高くて、書ける計算が十分に多い言語なのよな」 / Twitter
がくぞさんはTwitterを使っています 「書ける計算の範囲が広い、というのは普通なら危険だったり意図していない計算も文法上正しいものとして書けてしまう、という事だしなぁ……(それこそparseIntの引数にnumber渡してしまうみたいなのとか)」 / Twitter

型推論

OCaml PPX

Keigo ImaiさんはTwitterを使っています 「typed ppx, OCaml の型推論に絡む部分がプログラマブルになっていくのが面白い。隔靴掻痒感のあった型の問題が一挙に解決していく。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「唯一にして最大の問題はプログラム全体の型検査をメッチャ何回も回すことで…」 / Twitter
Keigo ImaiさんはTwitterを使っています 「よく考えたら、普通の(Haskell 98とかの)型クラスなら(マクロで回す)型検査は 1回だけなんですけど、これオブジェクト型の結合のための特殊なインスタンスをfundepsから自動生成していて、これがあると型推論に影響するので型検査を何度も回す必要が発生している。Showとかなら軽いはず…」 / Twitter
型付きPPXに関するメモ - toward the typed ppx - Qiita
slides
OCamlオブジェクトの結合を型付きPPXで - Qiita
davesnx/styled-ppx: Typed styled components in Reason, OCaml and ReScript
ocaml-ppx/ppx_import: Less redundancy in type declarations and signatures
PPX for plugin authors — ppxlib documentation
Creating TYPES from PPX - Learning - OCaml
[ANN] ppx_let_locs - improve stack traces - Community - OCaml
Metaprogramming and PPX | OCamlverse
Logic and Computation: Interactive Proof with Cambridge LCF - Lawrence C. Paulson - Google ブックス

OCaml-meeting0908-revised.pdf
型推論機構の実装
型推論 - Wikipedia
型推論を実装してみる | Kludge factory
Hindley-Milner型推論アルゴリズムをGroovyで書いてみた - uehaj's blog
SML# - ランク1多相性の理論
型推論のしくみ : KLabGames Tech Blog
型推論機構を備えたインタプリタをRubyで実装した - 鴨川の怪物
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~ - Google ブックス
hs2bf - 謎の型推論 - ⊥=⊥
連立方程式の解き方
Algorithm W入門を攻略してきた - osiire’s blog
Prologでλ→の型検査のプロ グラムを書いてみただけの話 // Speaker Deck
yūkiさんのツイート: "自作言語で型推論実装したいなあと思いちょっと経ったけどどんな感じのステップで型推論されていくのかわかってないので手を付けてない"
ヒトでもわかる型推論 - Qiita
uint256_tさんのツイート: "なんだかんだ言って、英語版Wikipedia が一番わかりやすい気がした: https://t.co/i0SYbiNoWi… "
Hindley–Milner type system - Wikipedia
So you still don't understand Hindley-Milner? Part 1 - Amit's Blog
OCaml-meeting0908-revised.pdf
Prologで様々な多相型推論 - Qiita
型推論に関する最近の話題への雑感 - Qiita
静的型付「き」言語(@seitekibot)さん | Twitter
JavaScript による型推論器の実装 - takuto_hの日記
Swiftの型システムを読む その1 – ukitaka – iOS開発とかのメモ
7.pdf
TypeScriptのタプル型推論使って型を改善 - Google スライド
5 分ではわからない HM 型推論 - 型システム祭りオンライン 2020 4/17 - Speaker Deck
Lispにおける型推論 - Qiita
ISLispにおける型推論コンパイラ - Qiita
ISLisp Home Page
κeenさんはTwitterを使っています 「自分はやったことないけど踏みそうではある。自分ならHashMap::&lt;usize, u64&gt;::new にして型を決めてしまうかな。 Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita https://t.co/0x0dW7sGAi」 / Twitter
Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita
C# 9: newキーワードの型推論
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「型、たしか突き詰めるとλx.xの型がΛx.x(記号これで合ってたっけ)みたいなことになる筈なので方が複雑になると型推論ができなくなるというのがよくわからない」 / Twitter
Juliaの型推論アルゴリズムを実装する
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
混ぜるな危険! Eigenとauto - Qiita
CubbitさんはTwitterを使っています 「関数のオーバーロードは邪悪である 違うインターフェイスを持ち違う振る舞いを持つ関数なのだから、名前も違うものを付けるべきなのである  あと型推論にも良くない」 / Twitter

漸進的型付

型システム 〜プログラムの安全性を支える数学〜 - Laborify
漸進的型付け言語の時代に必要なもの - mizchi's blog

型クラス

型クラスはインターフェースとどう違うのか | POSTD
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記
インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
型クラス - ウォークスルー Haskell
型クラスの真の力を見せる - kmizuの日記
TypeClass.pdf
Scalaで型クラス入門 - still deeper
κeenさんのツイート: "「定義を」分離できるのが型クラスの一番の利点で、実行時の「データと辞書オブジェクトを」分離できるのはあまり利点を感じない。文脈によって同じ型に対する型クラスのインスタンスを使い分けたい場面ってとほんどないでしょ。"
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記 (はてなBlog)
Keigo ImaiさんはTwitterを使っています 「OCaml で動く型クラスっぽいのができた。show ## (1, "abc") で、 ## のところに渡すべきインスタンスが型推論に基づいて生成される。実装は「まんま」というか、## を埋める度にソース全体を型検査し、不動点に達したら止める。 https://t.co/OM9jx6f05u https://t.co/MjwraGZU1e」 / Twitter
ppx_fillup/test.ml at master · keigoi/ppx_fillup
Keigo ImaiさんはTwitterを使っています 「OCaml のシンボル情報や型環境の探索は camlspotter さんが昔公開していた ppx_implicits のソースコードが参考になった。あとは 型付きPPXのメモを参照 https://t.co/obwXZkcchH」 / Twitter
Keigo ImaiさんはTwitterを使っています 「型クラスのついでに、オブジェクトの連結をできるようにした。辞書を引っ張ってくる代わりに推論されたオブジェクト型を元にして連結関数を生成する。 生成されたインスタンスはコンパイラの警告により確認できる。 https://t.co/oen6NecfCv」 / Twitter

依存型

依存型 述語論理

依存型 - Wikipedia
10.pdf
証明プログラミング入門2
nori_Coq3.pdf
logic.pdf
938.pdf
Idrisで遊んでみた (0) | 雑記帳
calculus of constructions (CoC) の勉強 - よーる
トポスと高階論理
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
20160114wba.pdf
はてなブックマーク - Prologに関するsyaminoのブックマーク
d.y.d.

様相論理 依存型理論 述語論理

「再帰的定義を可能にする述語論理の証明支援系上の実装」 - あいまいな本日の私 blog
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
新・あいまいな本日の私: 一階述語論理と集合論は循環している?

依存型 - Wikipedia
がくぞさんはTwitterを使っています 「こういうのはちゃんと依存型つかって型付けされてれば無問題ですね #無問題とは」 / Twitter
ひさてるさんさんはTwitterを使っています 「function getItem(id = -1) { if (id == -1) { return itemList } else { return itemList[id] } } // TODO 極刑に処す」 / Twitter
がくぞさんはTwitterを使っています 「型が推論されて不正なコードがはじかれる、という所から現実の型がつよつよな言語はもっと先に進んでいて、型によって実装がderivingされる世界があるので、世の中もっとそういう方向に進んで欲しいのだけどなー」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@koshian ライブラリ提供側は頑張って型をつけて、利用側は雑な推論で書くみたいなところが落とし所になるんやろか。 10年前だと非現実的に思えたけども、現代の技術ならそのへんが実用ラインになってて、そういう意味ではバランスは変化してきてるとは思うよ」 / Twitter
コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
依存型入門
実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
プログラミング言語 idris - wkwkesのやつ
安全かつ柔軟な依存型 -
私と型システムとポエム - The curse of λ
証明プログラミング超入門
関数型プログラミング – 依存型とは何ですか? - コードログ
2017年注目していきたい技術 | κeenのHappy Hacκing Blog
idris環境構築 | κeenのHappy Hacκing Blog
Idris入門: 数当てゲーム | κeenのHappy Hacκing Blog
イマドキと言われる言語機能について | κeenのHappy Hacκing Blog
🈚️うひょ🤪さんのツイート: "TypeScriptはちゃんとした型レベル自然数があったら楽しそうなんだけどいい感じに入らないかなあ(ぇ"
tkrさんのツイート: "型レベル文字列と型レベル自然数で闇がさらに深くなるTS #いろいろなTS"
tkrさんのツイート: "実際文字列周りは何とかしてほしいみたいなとこあるけどまじで沼になりそう ほら、 "a.b.c" みたいな事してプロパティ取得するthe 動的言語感なライブラリとか"
F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
Idris入門: 二分木 | κeenのHappy Hacκing Blog
Idris入門: リファレンス | κeenのHappy Hacκing Blog
Effective Idris: Lazy | κeenのHappy Hacκing Blog
Idrisで依存キュー | κeenのHappy Hacκing Blog
Effective Idris: Effects | κeenのHappy Hacκing Blog
Dependent Types と Refinement Types の違い - SevenColoured
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
Idrisの話とIdris2のウワサ | κeenのHappy Hacκing Blog
Idris 2の数量的型が解決した問題、導入した問題 | κeenのHappy Hacκing Blog

Refinement Types

Dependent Types と Refinement Types の違い - SevenColoured
Refinement type - Wikipedia
型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
refinement_types_for_haskell.pdf
abstract_refinement_types.pdf
MSR-TR-2009-147-SP1.pdf
Refinement Types
Programming with Refinement Types
refinement-2-bengtson08.pdf
Liquid Haskell で普通の型システムの上を行け #NGK2017B
main.pdf
Dependent type、refinement typeおよびHoare Logicの違い
LiquidHaskell 入門 その1 - 存在と一意性の証明
LiquidHaskell 入門 その2 - 存在と一意性の証明
LiquidHaskell 入門 その3 - 存在と一意性の証明
LiquidHaskell 入門 その4 - 存在と一意性の証明
monochromeさんはTwitterを使っています 「Refinementsってグローバルメソッドキャッシュにとっては迷惑でしかない気がする」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「形式検証されたコード、refinementのがまだ早そう」 / Twitter

MPST

Keigo ImaiさんはTwitterを使っています 「ECOOP 2020 (https://t.co/YR8JbvCIjn) に論文が採録されました。"Fully Static Multiparty Session Programming with Global Protocol Combinators" マルチパーティセッション型の初のライブラリ実装です。OCamlの型システムに支援された並行プログラミングが可能に: https://t.co/Fpi6xKNorP (整理中」 / Twitter
keigoi/ocaml-mpst: Multiparty Session Types in OCaml
Keigo ImaiさんはTwitterを使っています 「マルチパーティセッション型(MPST)は、デッドロックフリーな多者間通信が保証できる反面、既存の型システムとのギャップが大きく、汎用言語でのライブラリ実装がありませんでした。今回MPSTのwell-formednessとサブタイピングの関連を見出し、多相ヴァリアントやレンズ等でライブラリ実装しました https://t.co/MMfgxha9v6」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これと、一昨年ガリグ先生 (@garriguejej ) とPROで発表した線形型の実装 LinOCaml を組み合わせて、MPSTの型をOCamlの型検査器だけで静的に検査できている…はずです。(デッドロックフリーがOCamlで保証できることの証明は今後の課題になってしまいました…無念。これでも十分面白いと信じてますが」 / Twitter

Either

エラー処理を書いてはいけない
関数型の考え方: Either と Option による関数型のエラー処理
Eitherについて調べてみた - Qiita
ScalaのOption型とEither型を使う - Qiita
はじめてのOption型とEither型(Scala) - yoshikit1996’s diary
haskellのMaybeとEither理解した。気がする。 - think and error
Either 型に関数を適用する。 - sirocco の書いてもすぐに忘れるメモ
エラー処理 · Scala研修テキスト
ScalaのOptionとEitherで例外処理を行う方法 - $shibayu36->blog;
Haskell教養としての関数型プログラミング - 重城良国 - Google ブックス
すごいHaskellたのしく学ぼう! - Miran Lipovaca - Google ブックス

Haskell

Hiroyuki Miyoshiさんのツイート: "Haskellが圏論をベースにして作られたプログラミング言語であるという誤解があるようですが,次の論文にあるように歴史的にはそうとは言えません。 P. Hudak, J. Hughes, S. Peyton Jones, P. Wadler, A History of Haskell: Being Lazy With Class (2007) https://t.co/MSHszYxSO4"
history.pdf
Hiroyuki Miyoshiさんのツイート: "1980年代末頃,lazyな強い型付き関数型プログラミング言語が乱立して議論しづらいので一つ共通の仕様を決めようという動きがありHaskellが策定されました。当時のlazyのコミュニティでは言語全体の意味論には一部を除きあまり強い関心がなく,基本的には代数的意味論を採っていたと思います。"
Hiroyuki Miyoshiさんのツイート: "それとは独立に,1989年にMoggiが副作用を含む言語の表示的意味論をきれいに扱うのに,圏論のモナドが使えるに気づき計算モナドの概念を提唱しました(LICS'89)。Moggiは説明する言語としてはeagerなML系言語を用いていました。"
Hiroyuki Miyoshiさんのツイート: "Haskellの初期の仕様ではI/Oは遅延リストを用いていましたが,P. Wadlerらを中心に計算モナドを使う方がいいという意見が強くなり,Haskell1.3 (1996)で正式仕様として採用されました。Haskellに圏論を強く結びつけて言及されるようになったのはそれ以後です。"
Hiroyuki Miyoshiさんのツイート: "ついでにいうと,圏論を起源に持つという意味ではむしろCaml系言語の方が直接的起源を持っています。P.-L. Curienらにより1985年に提唱された圏論を抽象機械として使うCategorical Abstract Machine (CAM)というアイデアがあり,https://t.co/HU5JDPjcCb それに基づき実装したのがCAML言語です。"
Hiroyuki Miyoshiさんのツイート: "ただ,当然ながら実行効率が良くはなく,今でもOCamlの実装を担っているX. Leroyが,言語はおおむねそのままに実装をZincというシステムに設計し直したのが今のOCamlの直接の元になっています。"
nisizakiさんのツイート: "(・∀・)つ Chairty、Hagino's categorical programming language https://t.co/eIJiqJ8gSj… "
Charity (programming language) - Wikipedia
Hiroyuki Miyoshiさんのツイート: "ええと,Cockett & FukushimaのCharity言語は知っていますがどういう文脈で持ち出されたのでしょうか(困惑)。圏論をベースにしたプログラミング言語の例ということでしょうか? まあ萩野先生のCPLは圏論的な帰納的&余帰納的データ型を備えた最初の実装された言語なので言及すべきかもしれません。… https://t.co/qeFOUkN1SI"
nisizakiさんのツイート: "単に、圏論を(なんらかの意味で)ベースにしたプログラミング言語ということです。おさわがせいたしました。(そういえば、学生さんに「OCamlのCはcategoryのCだよ」と以前話したら  (´・ω`・)エッ? という顔をされてしまいました)… "
Hiroyuki Miyoshiさんのツイート: "了解です。まあCAMのことを知っているのは我々と同世代ぐらいまででしょうね。Curienはまだお元気なようですが。… "
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「なんでFree AlternativeのAltFとFree ApplicativeのApって別の型にしてるんだろう https://t.co/23GlhOvPG5 https://t.co/R8l5RezwqD」 / Twitter
Control.Alternative.Free
Control.Applicative.Free
Koji MiyazatoさんはTwitterを使っています 「@igrep よく読んだら地味に違いますよこれ、AltFは Ap :: f a -&gt; Alt f (a -&gt; b) -&gt; AltF f b で、Alt f x は [AltF f x] のnewtypeです。左分配律 (x &lt;|&gt; y) &lt;*&gt; z = x &lt;*&gt; z &lt;|&gt; y &lt;*&gt; z は認めて、右分配律を認めないとこの形になるんだと思います。」 / Twitter
そろそろ線形型をかじっておくか - lilyum ensemble

Datatype-Generic Programming

まっちゃらさんはTwitterを使っています 「Datatype-Generic Programming https://t.co/3ggYFezYPB」 / Twitter
ssdgp.dvi - dgp.pdf
まっちゃらさんはTwitterを使っています 「generic programming自体は人によって意味合いが違う(parametric polymorphism, data abstraction, meta-programming,など)ので、 datatype-generic programmingという新しい言葉を作ったよということか」 / Twitter
まっちゃらさんはTwitterを使っています 「ListとTreeに対するfoldLで普通は別々に実装する(コンストラクタが違うし、そもそもバリアントの数も違う)けど、バリアントごとに関数を適用して、残りを再帰していけばいいという構造は同じなので、ここを抽象化するぞってのがdatatype generic programmingということらしい(理解があってれば)」 / Twitter
まっちゃらさんはTwitterを使っています 「polytypism, structural polymorphism, typecaseなんかも同じことを指していて、Generic Haskellにおけるgeneric programmingというのもこの意味らしい」 / Twitter

blog

言語処理系勉強会に参加してきた | κeenのHappy Hacκing Blog
代数的データ型とパターンマッチの補遺: 赤黒木 | κeenのHappy Hacκing Blog
n月刊ラムダノートにパターンマッチについて寄稿しました | κeenのHappy Hacκing Blog
リソースを管理する型 | κeenのHappy Hacκing Blog
手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
Island Life - 動的型のメリットは「決断の遅延」かもしれない
OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
OCamlの型検査は決定不能
問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
Hindley-Milner型推論をCで実装した話 - malloc(sizeof(MRM));
暗黙の型変換を嫌わないで!(暗黙の型変換がなぜ嫌われるのか、暗黙の型変換で数学的同一視を自然に表現する、暗黙の型変換もどきを自作する、暗黙の型変換で遊ぼう(BNFを表す型)) - 算術の夢の楽園
Yusuke EndohさんはTwitterを使っています 「「既存の型を超える」みたいにも読める身の程知らずなポエムを書いてしまったけど、TypeProfもライブラリや難しいコードにはRBS手書きしてもらう前提だし、TypeProfが失敗してもSteepやSorbetはとても堅実で成功確実なアプローチだし、実際にはわずかに冒険してみてるだけです。わずかが難しいんだけど」 / Twitter
Rubyと型についてのポエム - まめめも
Yusuke EndohさんはTwitterを使っています 「TypeProfの期待を上げすぎてしまったか。ライブラリのRBSが揃ってない現状ではライブラリのコードも解析するのでめっちゃ解析遅いし、推論はすぐuntyped(TSでいうany)に落ちるし、そのくせエラー発見ツールとしてはfalse positive多すぎます。改善は続けるので、期待しすぎずに長い目で見てね……」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「Elixirで型が欲しかったらDialyzerとかdialyxir,あるいはGleamをどうぞ。」 / Twitter
ntaooさんはTwitterを使っています 「一旦現在主流の型システムを言語に統合してしまうと、将来に渡って言語の可能性がその型システムに束縛されてしまうので、Rubyのこの方針はとても正しいと思う | Rubyと型についてのポエム - まめめも https://t.co/xkFDEDVe5l」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyと型についてのポエム - まめめも https://t.co/56TaP4Zdyg 自動車の例えがいい。将来的にはどんな言語でも内部で使う型はプログラムにより解析され型を書くのはドキュメントのため、と言う形になると思う。ライフタイムや型が取りうる値とかも型に含まれてくると人間が書いていられなくなるから。」 / Twitter

Twitter

型で解決

田中ひさてるさんはTwitterを使っています 「生で array だ int だやってたのが急にドメインモデルどうの言われて、Price も Pay も Money も別の型にするべきとかそういう「原子から作りますか」に通じるOOPの幻想(今はもう滅んだ)にやられてしまうの、なるほどなあと思った」 / Twitter
田中ひさてるさんはTwitterを使っています 「幻想っていうのは、保守コスト下がるはずだったのに逆に上がってしまう現実が起きて、ゴールできないレベルの高すぎる意識のこと」 / Twitter
田中ひさてるさんはTwitterを使っています 「商品コードとかはよほどその仕様が特別でないかぎり、バリデーションされた string なだけでもぜんぜんいいと思うんです。itemCode って変数がパスワードを入れるところかななんて、誰が間違えますかって言えるバランス感覚です。それない人に間違わせないための防衛するぐらいなら機能を作ろうと」 / Twitter
田中ひさてるさんはTwitterを使っています 「もし型がすべてを解決するなら、フレームワークに EscapedSql 型や SafeHTML 型があるはずじゃないですか。フレームワーク作者のような頭のいい人がやっていないのは、オブジェクト指向プログラミングを知らないからじゃないですよね」 / Twitter
田中ひさてるさんはTwitterを使っています 「引数は int item_id より Item item の方がいいよぐらいの常識感をまず当たり前にしていくのがよいと思います」 / Twitter
sjiさんはTwitterを使っています 「@tanakahisateru 実は静的解析器には近いのがあったりします」 / Twitter
田中ひさてるさんはTwitterを使っています 「@sji_ch えっ、どういう!?」 / Twitter
sjiさんはTwitterを使っています 「@tanakahisateru https://t.co/65WyMQ2Udc html-escaped-string というのがあり」 / Twitter
Scalar types - Documentation
田中ひさてるさんはTwitterを使っています 「@sji_ch なんと」 / Twitter
がくぞさんはTwitterを使っています 「型をちゃんと使う世界のフレームワーク達は割とそういった型が普通に存在しているような……?オブジェクト指向とか特に関係なく…… Javaとかのフレームワークであまり見ないのは単純に型の表現力が言語として低いからでは仮説 型で全ては解決しないけど解決できる問題は多いですね」 / Twitter
がくぞさんはTwitterを使っています 「まぁそう間違えないやろという気持ちもわかりみがありつつ、自分でもびっくりするようなミスしでかす事あるので静的検査で見つかると嬉しいし、Map&lt;String, Item&gt;よりもMap&lt;ItemCode, Item&gt;とかのシグネチャの方がわかりやすいし、型が適切だと実装を自動導出できたりするので開発が楽になったり文字数」 / Twitter
田中ひさてるさんはTwitterを使っています 「@gakuzzzz ItemCode のほうがもっといい hashCode と equals を提供できる可能性もありますね。なんで良いのかわからず、自縄自縛のように独自型であるべきなんだで迷って仕事遅くなるより、とりあえず最初は言語標準の型で進めるのが健全かなと思ったのです」 / Twitter
がくぞさんはTwitterを使っています 「@tanakahisateru なんで良いのかわからずにべき論に従うのは型の話にしろ他の話にしろあまり良い結果にならなそうというのは同意です type aliasのようなものが使える言語であれば、最初にエイリアスで標準の型を指定しておいて、後から必要に応じて独自型に変えることで変更範囲を小さくするみたいな事もできますねー」 / Twitter
がくぞさんはTwitterを使っています 「全力で型で楽したい」 / Twitter
がくぞさんはTwitterを使っています 「型が適切にあると最近Goの標準でもβで入れだしたFuzzingのような事も非常にやりやすくなるですよ」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「色々文脈や背景があるのだろうと思うのでアレなんだけど、個人的にはあまり「原子から作っている」と言う感覚はないのだよなぁ。Userみたいな型もMoneyみたいな型もおしなべて同列というか…。」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「「商品には金額が設定されててユーザが商品をカートに入れると金額の合計分を支払う」みたいな要件を聞いたら自動的に頭の中で「商品型と金額型とユーザ型と商品のコンテナとしてのカート型があってカート型からは商品金額の合計が取れるのだろうな」となってその様に書くだけというか…。」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「MoneyやPriceみたいないうてたかだかintのラッパーみたいな型はオーバーエンジニアリングでは?みたいな感覚、分からんではないのだけど、言うて定義域の問題とか何とどういう演算が許されてるんだっけ?とか言うの往々にしてあるので型にしておくとそういう所で脳みそ使わなくて済むみたいなのある」 / Twitter
がくぞさんはTwitterを使っています 「依存型とか篩型とかもっとカジュアルにつかってこ」 / Twitter
がくぞさんはTwitterを使っています 「そうそうMoneyとかPriceなんて自分でがんばって作らないで整備されたライブラリ使えばいいんですよ https://t.co/uwPjxtFFBW」 / Twitter
typelevel/squants: The Scala API for Quantities, Units of Measure and Dimensional Analysis
がくぞさんはTwitterを使っています 「Dependent method types でドメイン層とインフラ層の実装をモナドとか難しいもの使わなくても簡単に分離できるよ、みたいな話は2年前にしましたね https://t.co/dLNXZmyl9C」 / Twitter
Dependent method types を利用した軽量Clean Architecture の紹介

幽霊型

κeenさんはTwitterを使っています 「PhantomDataを使った幽霊型の紹介。題材はnewtype patternを使った単位系の表現。 Phantom Types in Rust 👻 https://t.co/pbObfsd9MS」 / Twitter
Phantom Types in Rust 👻

histric-1

静的型付「き」言語(@seitekibot)さん | Twitter
Eijiro Sumiiさんのツイート: "@tenpoku1000 「静的に型付けされた言語」なら何の問題もないと思います"
市川 真一さんのツイート: "共立出版の「新しいプログラミング・パラダイム」1989 年初版1刷には「静的に型付けされた(statically typed)言語」と書かれているのですが、これは今は亡き bit 誌の連載を本にしたものです。少なくとも、この頃から「静的型付け言語」という訳語が存在していた模様です https://t.co/YHBdaSaUoH"
Eijiro Sumiiさんのツイート: "・「静的型付き言語」を誤って「静的型付け言語」という ・「部分適用」を誤って「カリー化」という の両方を踏んだ発表者が光の速さで(私より先に別の人から)つっこまれていた:-)"
まろ@関数型言語作曲機械学習勉強してないさんのツイート: "「型推論」だと型がないと思う人が出てきてしまうので、「自動バッチリ型決定機能」とかにした方が良いと思う"
Kota Mizushima(まったり)さんのツイート: "型推論をするなら動的言語という勘違いをまたひとつ、別件で検索していたら見つけてしまった。やはり、型を明記することと省略することと、型が静的/動的の区別は案外難しい、のかもしれない。あと、特にこの勘違いは、古い世代の人間に多く見られる気がする。"
Keisuke FUKUDAさんのツイート: "MicrosoftによるPythonの型チェッカー。node.jsで書かれていて、mypyより5倍高速で、常駐&インクリメンタル更新モードがあるらしい。https://t.co/tzxgoDuePF"
Microsoft/pyright: Static type checker for Python
米Microsoft、Python向けの高速な静的型チェッカー「Pyright」を公開 | OSDN Magazine
Shinji KonoさんはTwitterを使っています 「動的型付け静的型付けは、昔っから動的型付けを強力に罵る人が多くてうんざり。無限LISP地獄にでも落ちろ。そもそも型があってれば万々歳ってわけでもない。動作を規定するのは値であって型はあくまでも手助けだけ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ML系な人が静的型付けでないとみたいなこと言ってたので「その上でTuring Machine を書いたら、そのTMのプログラムには型は無力。ドメイン向けに何かを作るとだいたい同じようなことになる」と言ったら、険悪なムードになっちゃって。」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータでは型の話とエディタの話はケンカの元だからなー」 / Twitter
Miura HidekiさんはTwitterを使っています 「Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) https://t.co/UImWB5Kh5M Juliaのprimitive typeって何が嬉しいんだろう?って思って調べたら出てきた。なるほど、これは嬉しい」 / Twitter
Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) - Qiita
画力・博士号・油田さんはTwitterを使っています 「ところで “type inference” と呼ばれる問題も3種類ある: 1. * 入力: 型環境 Γ,項 M * 出力: ∃τ. Γ⊢M : τ か? 2. * 入力: 型環境 Γ,項 M * 出力: Γ⊢M : τ なる τ のうち主要型(存在すれば) 3. * 入力: 項 M * 出力: Γ⊢M : τ なる (Γ, τ) のうち主要型つけ(同上)」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「個人的にはこのうち 1 を “type inference” とか「型推論」と呼ぶのは若干違和感があるけれども,「X は型推論が決定可能」と言ったときは 1 の意味で使われていることも結構多い感じがある」 / Twitter
El Pin AlさんはTwitterを使っています 「1は型推論ではなく型付け可能性だと思っています (これ前にも言ったけど)」 / Twitter
κeenさんはTwitterを使っています 「型推論が決定可能よりも型システムが決定可能の方が言う気がする」 / Twitter
El Pin AlさんはTwitterを使っています 「必ずしも同意するわけではないし、普遍的な定義だとも思わないけど、[Rémy 2005]にこのような記述があるのを見つけた https://t.co/6fXXLc1IqB」 / Twitter
El Pin AlさんはTwitterを使っています 「Didier Rémy. Simple, partial type-inference for System F based on type-containment. ICFP 2005. https://t.co/39g8rMjJhv」 / Twitter
fml-icfp.pdf
El Pin AlさんはTwitterを使っています 「とちゅう https://t.co/JYqkAKwgLU」 / Twitter
画力・博士号さんはTwitterを使っています 「“型が嫌い” な人,「型という概念が “計算機の都合で仕方なく” 使われている」と思い込んでいる気がするので,「型とは “ヒトの直観を反映した不変条件の簡潔な記述” だ」という認識に上書きできたらML系言語と深く和解できるんじゃないかという豫感がする」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「思ったんだけど、静的型付き/動的型付き言語の区別は全ての表現式に静的型がつくかつかないかで決まるんだけど、むしろ、全ての値に実行時型情報がつくかどうかで決める区別もあって欲しい気がする。言語というより処理系の特性ではあるのだけど、多くの言語は言語仕様でだいたい決まるよね?たぶん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たしかに、その観点で分類するの面白そうだけど、実行時型情報が付かない言語って意外と少ない気がする。(DWARFがフルサポートされたC言語ってどっちになるだろう? &gt;RT」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 実行時型情報が全く付かない言語はML系とかCとかぐらいでしょうけど、「全ての値に実行時型情報が付いた」を満たさない言語は結構多いと思います。Javaのようにprimitiveな値がある言語は基本的に入ると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda デバッグ情報とかは考えないのですか?」 / Twitter
画力・博士号さんはTwitterを使っています 「ほぼ「型つきAlt​Erlangの処理系を実装したい」という動機だけでそれまであまり理解のなかったπ計算やsession typeについて半年弱くらいサーヴェイしたり自分で型システムを弄ったりしているの十分正気ではない気がしてきた」 / Twitter

Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@bd_gfngfn @a2uky 先行研究,はたまたライバル?こんなのがあります。 https://t.co/POjzybtn9O」 / Twitter
Hello, Gleam! - The Gleam Book
画力・博士号さんはTwitterを使っています 「@zacky1972 はい,Gleamの存在は認識していました.ただ現状だとメッセージの送受信に型をつける方法は言語機能そのものから提供されているわけではなかったり純粋な計算と非純粋な計算とが型で分離されたりはしていないという点で自分が欲しいものとはややギャップがありました」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn 凄い!既にFowlerの論文を辿ってご存知かもしれないのですが線形型とi/o型によるセッション型のエンコーディングは https://t.co/iKQaiHtNwL が良いです。なのでセッション型は言語から排除できるかも?OCaml での実装例は (線形型やサブタイピングは無いですが) JFP のhttps://t.co/SFdtNBsZjl とか。」 / Twitter
Session types revisited - ScienceDirect
A simple library implementation of binary sessions* | Journal of Functional Programming | Cambridge Core
画力・博士号さんはTwitterを使っています 「@keigoi はい,Fowlerの博士論文と Session types revisited は最近軽く目を通して読んでいました(ありがとうございます)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn GV系だとデッドロックフリーがあるのでいいですね。もっと古いのだと Pucella &amp; Tov の Haskell'08 https://t.co/JgDyrtFHVU の方法が単純でよいかもしれません。2つの型の duality の witness があれば特殊なエンコーディングは要らない(この論文では型クラスでwitnessを作っています)」 / Twitter
Haskell Session Types with (Almost) No Class
ホテルバルティック(クローン)@築26年さんはTwitterを使っています 「そういえば,情報系の人間が「数学は型を明示してほしい」って言うのをそこそこ観測してるんですけど,x in Xとかf:X-&gt;Yってのは彼らの言う型とは別なんですかね?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaでは何でも型があるから上限があるけど、集合には型がないからな。Agdaでは型を明示したpairしか作れないが、集合だと限定されないpairがクラスとして定義できて、それは集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの中で順序数を作って、それで議論するからそうなる。関数型言語の中でCを書いて、それでプログラミングするようなもの。Seg Vあり。」 / Twitter
N743327さんはTwitterを使っています 「いわゆる型とよばれるやつ、syntacticalなやつとsemanticalなやつとがあるんでは」 / Twitter
画力・博士号さんはTwitterを使っています 「プログラミング言語やプログラム検証の研究では「大体理論・手法ができてから実用上の認知度が上がるまでに20年くらいかかる」という謂れがあったりするけれども」 / Twitter
画力・博士号さんはTwitterを使っています 「それによるならそろそろ90年代半ば頃の研究成果が実用に供され始めていい頃なんだけどな,パッと思いつくものでは多段階計算とかsession typeとか」 / Twitter
画力・博士号さんはTwitterを使っています 「gradual typingとかは理論の提案から実用化が異様に早い気がする(提案が2006年で,2010年代前半のAltJS戦国時代みたいな頃にはもう実用化されていたんじゃなかったかな)」 / Twitter
4869さんはTwitterを使っています 「TypeScriptでバックエンド書くと型が間違ってても値が入ってくることを考慮しないといけない場面で急激に面倒になるな……」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcを作っていて思った。抽象実行で推定される型って人間の直感とは異なる型になるような気がする。特にエスケープ解析とかも含めてくると。これが将来は型宣言がドキュメント以上の意味が無くなると私が考える根拠の一つ」 / Twitter
Miura HidekiさんはTwitterを使っています 「あれ?ツイートが途中でぶった切れてた エスケープするかという情報は型に含めるべきか分からないけど、実装上は型に含めるのが何かと合理的にできる。たとえば、エスケープするしないでデータ構造が異なるから関数を変えなければならないけど、それはオーバーロードで対処できる」 / Twitter
たっくまんさんはTwitterを使っています 「TSで0-100の整数値なことを型で制約かけたいな〜って思ったけど、これ type T = 0|1|2|...|100 みたいに頭の悪い union type 以外でスマートにやる方法ないのかな」 / Twitter
Masaki HaraさんはTwitterを使っています 「そういう性質を型でちゃんと表現するのは無理筋なので、検査を通った整数だけが名乗れるbranded typeを作るのが次善策かなあ」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行ならその辺が出来る可能性があるな。TSも抽象実行モジュール持っているんじゃないかな?または、flowとかあるし」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmmcにはFixnumには負にならないことを保障する属性があります。配列のindexに使う時に正負を判別する処理が省けて便利です (隙あれば自分がたり」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「コンパイラ内部で使う最適化のヒントを無闇に型として表現するのは悪手だと思うんだけど、線形型なら分かりやすいしいける気がする」 / Twitter
令掛ベインさんはTwitterを使っています 「再帰的な型シノニム (type Ty = Tk * Ty list など) は名前付きのタプル型であると考えれば問題ないことに気づいた。同様に本体が(->)やlistのときもOKなはず #milone_lang」 / Twitter

Higher Kinded Types - herp-technote
でこれきさんはTwitterを使っています 「コンパイル元/先の言語の型システムによる気はする。CoqからOCamlを生成する場合はObj.magicがあるのでどうとでもなるけど、SMLをターゲットにしようとするとSML/NJはUnsafe.castがあるけど他の処理系はそうもいかないとか」 / Twitter
でこれきさんはTwitterを使っています 「Unsafe.castの有無は型システムというより実行モデルとか実行時表現とかによるか」 / Twitter
dif_engine@ワサラー団さんはTwitterを使っています 「プログラミングの際,型を「値の集まり」と認識するのはよい習慣.しかし数学でいう「集合」と違って型に対しては(型全体にわたる)和や冪がかならずしも取れない.したがって「正式に」話すときには型と集合は別のルールに従う系をなすと考えるべき.」 / Twitter
富谷@MLをつかう物理学者🐉🍕さんはTwitterを使っています 「数学における集合とプログラミングの型って似てると思うんだけど、どうなんですかね」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「数学者には、算数が苦手な人が多い。現実の問題を扱おうとしても、抽象化の階段を思いっきり上がってしまって降りてくるのが大変なのである。 https://t.co/oyHpHQifvm」 / Twitter
Why Are Mathematicians So Bad at Arithmetic? – Math with Bad Drawings
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「自分が計算機科学者だからといって、計算機で時間をつぶす必要はない」 - Edsger W. Dijkstra」 / Twitter

カリー=ハワード同型対応

木原 貴行 | 名古屋大学 | 大学院情報学研究科 | 数理情報学専攻
computation-fall1.pdf
カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
継続と反証はカリーハワード対応するか - Qiita
直観主義論理の「自然さ」(1) 自然演繹 - 再帰の反復blog
直観主義論理の「自然さ」(2) シーケント計算 - 再帰の反復blog
直観主義論理の「自然さ」(3)古典論理のシーケント計算と自然演繹 - 再帰の反復blog
直観主義論理のカリー・ハワード対応 - 再帰の反復blog
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
古典論理のカリー・ハワード対応のためのラムダ計算 - 再帰の反復blog
古典論理のカリー・ハワード対応での証明の書き換えと簡約 - 再帰の反復blog

hott 定理

その他

ProofSummit2014 : VSTでCの検証
Proof Summit 2014 Opensslの話 - Speaker Deck
Agdaを使った形式化の実例紹介

PDF

トポスと高階論理 - topos-and-hol.pdf
Homotopy Type Theory 入門 - hott-intro-ja.pdf
Grothendieck ファイブレーション - grothendieck-fibrations-ja.pdf
Functor Categories of a Locally Cartesian Closed Category - functor-categories-of-lccc.pdf
201406yamada.pdf
kaiho-115.pdf
YetAnotherAI - YetAnotherAI.pdf
27_kawasaki.pdf
(Microsoft Word - HoTT\202\306\214\227\230_\202\314\223N\212w\223I\227p\223r.docx) - 2013_a3-1.pdf
ppl5-1.pdf

cn

Types 如何编写(和调试)一个依赖于两个参数的应用程序apd2,并使用它来证明agda中此类ap的功能性?_Types_Agda_Dependent Type_Homotopy Type Theory - 多多扣
Coq 如何正确地将定义放入定理中?_Coq_Type Theory - Debug001
Coq 如何正确地将定义放入定理中?_Coq_Type Theory - 魔琴编程网
Types 关于Coq的HoTT变体语法的教程_Types_Coq_Homotopy Type Theory - 魔琴编程网
数学 - 收藏夹 - 知乎
請問如何入門同倫型別論(HoTT)?
同倫類型論:描述,歷史,定理證明,相關書籍,參見,_中文百科全書
$$\infty $$ ∞ -groupoids 的康托-施罗德-伯恩斯坦定理,Journal of Homotopy and Related Structures - X-MOL
同伦型理论和哥德尔不完备定理
同伦类型论_百科
全历史

The HoTT Book | Homotopy Type Theory
HoTT本入門
広がりゆくトポロジーの世界―言語としてのホモトピー論 | 玉木 大 |本 | 通販 | Amazon
定理証明リンク集 - The curse of λ
SICP - Computers-and-Mathematics
mod_poppoさんはTwitterを使っています 「定理証明をやろうとするとuniverseとか(strict?) positivityとか色々大変そうだ」 / Twitter
Taichi UemuraさんはTwitterを使っています 「昨日聞いた話だけど、1-トポスを∞-トポスに埋め込む標準的な方法があって、それを前層1-圏に適用しても前層∞-圏になるとは限らないとかいうのはある」 / Twitter
Taichi UemuraさんはTwitterを使っています 「lex site 上の層の1-トポスはごく自然に同じ site 上の∞-層の∞-トポスに埋め込めるらしいから安心して埋め込んでほしい」 / Twitter
Miura HidekiさんはTwitterを使っています 「継続は力なり という言葉はScheme信者か表示的意味論信者が洗脳のために作ったフレーズであることは有名な話」 / Twitter
HoTT/Coq 覚書
「型の理論」と証明支援システム -- COQの世界
ホモトピー型理論入門
トポロジー有名定理その1~ブラウワーの不動点定理~ | 数学・統計教室の和から株式会社
ジャンク定理とは何ですか?
14 表現可能関手|プログラマのための圏論 (執筆中)
Rustで自然数を作ってみた - Qiita
CoqとAwodeyの論文の平等
前提条件と「and」と連携するための戦術はありますか? -- coq フィールド と coq-tactic フィールド 関連 問題 -Are there any tactics to work with preconditions with “and”? Q&Aハウス
#TPP2014 高信頼な理論と実装のための定理証明および定理証明器 (3ページ目) - Togetter
FT定理はすごい! - Finite Groups Fun 有限群あるいはちょこっと計算ファンの日記
Coqと少しの圏論が分かる人向けのhomotopy type theory(その1) -
Coqと少しの圏論が分かる人向けのhomotopy type theory(その2) -
robert ghrist home page
GeometryC.pdf
Dimensions 1 Japanese - YouTube

Interaction Net, HVM

κeenさんはTwitterを使っています 「新しい計算モデルを採用して一部のコードの時間複雑性が変わるタイプの言語ランタイムですって Kindelia/HVM: A massively parallel, optimal functional runtime in Rust https://t.co/0qgvHUL8O5」 / Twitter
Kindelia/HVM: A massively parallel, optimal functional runtime in Rust
κeenさんはTwitterを使っています 「コード見たらいきなり6GiB確保してそれ使い果たしたらそのまま死ぬみたいなワイルドな仕様だった。一応GCの仕組み的にゴミが発生せずにコピーとその場での解法でメモリ管理してるみたいだからこれでも問題ないのかな。 https://t.co/51rXo4ndTe」 / Twitter
HVM/runtime.rs at master · Kindelia/HVM
ko0307.pdf
summer1.pdf
Proof net - Wikipedia
Linear logic - Wikipedia
線形論理 - Wikipedia
Ludics - Wikipedia
Geometry of interaction - Wikipedia
Coherent space - Wikipedia
Deep inference - Wikipedia
ドッグさんはTwitterを使っています 「純粋関数型な IR を持つコンパイルターゲット HVM.再帰で勝手に並列化できたり,指数オーダなコードを線形オーダに落としたりできて,既存の実装(GHC)よりかなり速くなるケースがある.IR は C にコンパイルされる | 'High-order Virtual Machine (HVM)' https://t.co/OgHvQczWFH」 / Twitter
Kindelia/HVM: A massively parallel, optimal functional runtime in Rust
ドッグさんはTwitterを使っています 「ここにコア言語の仕様と最適化手法の概要みたいなのが書いてあるな https://t.co/B5SigDnyeS」 / Twitter
HVM/HOW.md at master · Kindelia/HVM
ドッグさんはTwitterを使っています 「Interaction Nets という計算モデルを使ってるらしい https://t.co/fsEF3qRxIA この本読めば実装できると書いてある https://t.co/zGrhTGo6Zh」 / Twitter
Interaction nets - Wikipedia
The Optimal Implementation of Functional Programming Languages (Cambridge Tracts in Theoretical Computer Science, Series Number 45): Asperti, Andrea, Guerrini, Stefano: 9780060815424: Amazon.com: Books
Jean-Yves Girard 教授インフォーマルレクチャー / Prof. Jean-Yves Girard Informal Lectures
Geometry of Interaction Page
情報学広場:情報処理学会電子図書館
62_0621115.pdf
proofnet 線形論理 - Google 検索
証明網 - Google 検索
相互作用の幾何 - Google 検索
相互作用の幾何学 - Google 検索

PDF

Microsoft PowerPoint - esci.pub.ppt [互換モード] - e-sci111122-4.pdf
computer software Vol.22, No.2 - 22_2_22.pdf
untitled - 21_3.pdf
ppl2-2.pdf
hirai-thesis.pdf
26_doc3.pdf
CB-002.pdf
ambient-calculus.ppt - ambient-calculus.pdf
IPSJ-MGN270905.pdf
25_3_49.pdf
IPSJ-MGN300605.pdf
game_and_set_theory.pdf
現代論理学の諸問題 | 慶應OCW|
講義一覧 | 現代論理学の諸問題 | 慶應OCW|
JOKIHY-14_22117.pdf - 13_ishii.pdf
Formal languages and Pervin spaces - JEP.pdf
Agda 上でのZF集合論の構成
06gun_03hen_05.pdf
01gun_08hen_02.pdf
untitled - semantics.pdf
Microsoft PowerPoint - 04SyntaxSemantics.ppt - 04SyntaxSemantics.pdf
www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf
<4D6963726F736F667420576F7264202D20834D838A8356838395B68E9A82CC93C782DD95FB>
paper.dvi
170221_yoshizoe.pdf
26411.dvi - 26_462.pdf
chap13.pdf
コンパクト開位相と写像空間の位相
dd_nat_jp.pdf

H8-garrigue.pdf
lambda.pdf
THE KYOTO
THE KYOTO
cartesian closed category in nLab
排中律やPeirce’s lawの挙動: chiguriの生態
論理と圏論のオイシイ話 | | 数学・統計教室の和から株式会社
d.y.d.
26_2_3.pdf
20191109_C-3_resume(Tsunoda_Kentaro).pdf
Computersoftware 20-3 - 20_285.pdf
Kohei SuenagaさんはTwitterを使っています 「プログラミング言語処理系とは?OCaml の基礎や,高階関数型言語のインタプリタの書き方,型推論アルゴリズムの実装方法を解説!簡単なコンパイラの書き方や,字句解析や構文解析アルゴリズムもまとめてみました!https://t.co/dSZmD1KExq」 / Twitter
IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University.
Haskell/Denotational semantics - Wikibooks
120901fp key
mltext.pdf
Miura HidekiさんはTwitterを使っています 「面白いけど、Java, Python, RustでSymbolic Executionで検証できるだけの情報量を含んだ中間言語なんて作れるものなんだろうか?」 / Twitter
Viper – Programming Methodology Group | ETH Zurich
不完全性定理
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「証明プログラミング (proofgramming) 言語Kind。見た目は TypeScriptっぽいが中身は Haskellで、より純粋な型および依存型をサポートしている。そのためCoq, Idrisなどと同じような目的にも使えるが、通常のWebアプリなどを書くことも可能。 https://t.co/TyiA75HeAs」 / Twitter
uwu-tech/Kind: A modern proof language
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Haskell製の言語内DSLで仕様を記述・検証する。TLA+の置き換えを目指すらしい / 1件のコメント https://t.co/3wQEHto984 “Announcing Spectacle-A language for Writing &amp; Checking Formal Specifications in Haskell” https://t.co/BKMoXsGY1j」 / Twitter
Announcing Spectacle-A language for Writing & Checking Formal Specifications in Haskell
クリーニ代数入門

関数型プログラミング

その他

オブジェクトストレージ

yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「オブジェクトストレージに関しては一度ハッシュ値でファイル名がついたファイルを書き換えることはないため、あまりDB化のメリットはないと思われるが、その発想はなかった。興味深い」 / Twitter
˚ʚゆーちゃんɞ˚さんはTwitterを使っています 「SQLite を実体として、Git を再構築したら面白くないですか? つまり、リポジトリは単一のSQLite データベースになるから、オブジェクトストレージに格納できて、安価にホスティングできる。 #駆け出しエンジニアと繋がりたい」 / Twitter
˚ʚゆーちゃんɞ˚さんはTwitterを使っています 「@yasuo_ozu GitLab ブロックストレージの維持費が高いって聞いたからオブジェクトストレージに飛びついたけど、イミュータブルなのか。納得」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@fvqjtlvf ですね。」 / Twitter

名前付き引数

Fluent interface

Fluent interface

流れるようなインターフェース試行錯誤メモ - Qiita
Fluent interface - Wikipedia
流れるようなインタフェース
流れるようなインターフェース (Fluent Interface) とメソッドチェーン (Method Chain) - Neo's World
ジェネリクスを活用して、FluentなインターフェイスをC#で実装してみた - SE(たぶん)の雑感記
software1-1.pdf
Fluent Interface
FluentInterface
Method Chain と Fluent Interface - .NET 開発基盤部会 Wiki

がくぞさんはTwitterを使っています 「型はあくまで値の集合を表現するのでその点では問題は無いのだけど、理論上の集合概念を計算機上の型として表現する際にある種の切り捨てが発生してるよね、みたいな話かな?」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz はい。 そして、上手く切り捨てると、便利なんじゃないかっていう」 / Twitter
がくぞさんはTwitterを使っています 「完全に良くわかってないで書いてますが、制約を型で表現することは良く行われていて、制約の合成を union type や intersection type で表現する事も良くされてる気がします?」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz Javaのキャプチャで、inだけ許す、outだけ許す、みたいなとこに注目しています」 / Twitter
がくぞさんはTwitterを使っています 「@nagise ふむむむ。完全に僕が何も理解できてないという事が理解できました!」 / Twitter
ruimoさんはTwitterを使っています 「@gakuzzzz @nagise これのcopy()メソッドのところとかですかね。datはoutなので、TがStringだとすると、List&lt;Object&gt;にも格納できる的な。 https://t.co/jiadmbipTI」 / Twitter
Javaの道:ジェネリクス(3.ワイルドカード)
がくぞさんはTwitterを使っています 「@ruimo @nagise use-site variance notationを上手く活用してなんかしよう、という話なのか、use-site variance notationはあくまで一例で型システム上にそういった制約を表現するための新しい機構があるといいよね、という話なのかすら自分が正しく認識できていないという状態ですね」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「流れるようなインターフェイスのbuilderパターンで、生成に使うBuilderオブジェクトから、最後build()ってやって型を作ってるけど、検索に使うCriteriaとかだと同型でも問題ないやろか? immutableじゃないというのはあるけども」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「Criteriaを引数に渡すメソッドがあったとして、じゃあ引数に渡すCriteriaオブジェクト作りましょうって思ったときにnew出来なくてCriteriaBuilderクラスを起点にオブジェクトを構築しないといけない、みたいな野嫌なんですよね CriteriaはCriteriaなんだからBuilder兼ねてて良いような気もするなあ🤔」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「名前付き引数があればBuilderパターン要らないか?というと名前付き引数側もなんというか機能不足感もある」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「流れるようなインターフェースはIDEでの入力補完が気持ちいいんですよ」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「型を道標にコードを書いている」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「IDEの入力補完的にこういうインターフェイスがいい!みたいなの、オブジェクト指向としては邪道な気もしてきた(それはそう」 / Twitter
がくぞさんはTwitterを使っています 「@nagise Fluent Interfaceは必ずBuilderにしなければいけないという縛りがある訳ではないのでCriteriaの構築も普通にFluentで良い気がしますね。Criteriaの場合はand/orの選択があるからちょっと厄介ですが、通常のVOのwitherでメソッドチェーンするのと大差無いイメージ」 / Twitter
がくぞさんはTwitterを使っています 「@nagise SQLのCriteriaをイメージしてたので勝手にand/orを想像しちゃってましたが別にそんな前提は無かったですね。失礼しました><」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz いや、概ねシチュエーションはあってます。 検索条件によってはいろいろと複雑な排他条件があったりするのでしょうが、実行時バリデーションでエラー出すとかが妥協点かなぁ。 型システムで頑張っても勝手がいいわけでも無いですし」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 排他条件が絡むとJavaの表現力ではなかなか厳しいものがありますね…… 全てAnnotationで構築してAnnotation Processingで静的検査するとかも厳しいですしねぇ……」 / Twitter
がくぞさんはTwitterを使っています 「@nagise あとはFluentはあきらめてCriteriaをcomposableにするアプローチとかですかねー。Comparatorみたいな感じで構成するイメージ。排他になる条件は型を分けておくことで合成メソッド側で型が一致してないと使えないようにしておく、とか static &lt;C extends Criteria&gt; C and(C c1, C c2) みたいな」 / Twitter
がくぞさんはTwitterを使っています 「@nagise サブタイプにすると面倒だからPhantom Typeの方が便利かもしれません? static &lt;P&gt; Criteria&lt;P&gt; and(Criteria&lt;P&gt; c1, Criteria&lt;P&gt; c2) Bottom型が欲しくなって来ますね……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz ほほう。そういうアプローチもありますか」 / Twitter
がくぞさんはTwitterを使っています 「@nagise Fluent InterfaceほどIDEの入力支援を受けられないのが辛いとこではありますけどねー」 / Twitter
uharaqoさんはTwitterを使っています 「@nagise プロジェクト内で使う分には名前付き引数+コピーコンストラクタでほぼ問題ないですね。 けれど引数の追加が破壊的変更なので、公開するならやはりビルダーなのでは。」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@uharaqo あー。破壊的変更。 オーバーロード足すわけにもいかないか」 / Twitter
uharaqoさんはTwitterを使っています 「@nagise もちろんコンストラクタ追加すればよいのですが、引数追加を想定していなかったことがバレてダサいですよねw」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@uharaqo 確かにw」 / Twitter
非実在naka akiさんはTwitterを使っています 「@nagise 変な事をさせないよう縛り付ける力としては、Builderのほうがやや上でしょうねえ。」 / Twitter
Yuta SAWAさんはTwitterを使っています 「@nagise わかります。 名前付き引数自体の問題ではないと思うものの、多値とかをもうちょっとうまく扱えればいいのだけど。引数aから引数bとcが決定されるみたいな時とか。」 / Twitter
右近忠重さんはTwitterを使っています 「流れるようなインターフェースって ①視認性を良くする ②手続き (メソッド) の順序性や関係性を定義 (固定) する という2つのメリットがあって、共通部品を作る立場としては②のメリットが嬉しいと思ってる。 ちなみに SQL のビルダーは TYPO 防止くらいしか役に立たんやろって思ってる。」 / Twitter
右近忠重さんはTwitterを使っています 「@nagise そうですね。 それも含めて②に書いたつもりでしたが、利用者的に直接的に嬉しいのは IDE 補完ですねw」 / Twitter
右近忠重さんはTwitterを使っています 「嘘ついた。 SQL のビルダーは SQL インジェクション対策が一番のメリット。」 / Twitter
右近忠重さんはTwitterを使っています 「@nagise でも「変数名を省略するな」みたいな話もIDE補完を前提にしてるとこありますし、その言語でデファクトスタンダードになってる IDE を前提にするのは別に良いのでは? 10年後とかに IDE の主流が変わっている可能性は確かにありますが。。。」 / Twitter
右近忠重さんはTwitterを使っています 「@nagise 投稿後に気づきましたが、「オブジェクト指向としては」という部分を読み抜かしていた。。。😅」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@ukontadasige1 話題として「オブジェクト指向」の範疇ではないですよね、的な」 / Twitter
あるかなむJP・おっさんさんはTwitterを使っています 「流れるような〜というのを久々に見たんだけど当時、すごいと思ったと同時に、SQLとしての視認性ってなんか悪いよねってなってあんまり良いとは思わなくなった。実際にそれに似たORマッパ使ったプロジェクト、なんか苦労したなと。実際にはどうなんだったんだろ」 / Twitter

[Swift] 関数ラベルの使い方を学ぶ - YoheiM .NET
Swiftの関数のパラメータ【引数ラベルなどについてわかりやすく解説】 | 楽水
【Swift入門】ラベルについてまとめてみた - Qiita
Swiftにおける名前付き引数 - Qiita
[Swift 3.0] 関数ラベルのルールが変更になった話 | DevelopersIO
Swiftでいこう -- 引数ラベルなど。|donguri|note
Swiftの関数の基本的な取り扱い | Think IT(シンクイット)

Clang の musttail 属性

mod_poppoさんはTwitterを使っています 「Clangに実装されたmusttail属性が面白い。VMの実装が捗りそう。 / Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C https://t.co/Z3t1dFetQ5」 / Twitter
Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C
mod_poppoさんはTwitterを使っています 「wasm3はCコンパイラーによるTCOを期待するVMを書いているが、そういうのが恩恵を受けそう https://t.co/0u6CptOTKu https://t.co/SgQ2FX3TcS」 / Twitter
WASM3の末尾呼び出しVMがかしこい - Qiita

構造的部分型付け

構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
TypeScript: 異なる2つの型システム「公称型」と「構造的部分型」 - Qiita
構造的部分型について - Qiita
「名前的型システムと構造的型システムの違い」加筆案 - 西尾泰和のScrapbox
general6-1.pdf
Typescript(構造的型付け) - 駆け足エンジニアの記録
TypeScriptの型の互換性について - よちよち開発の日々
ダック・タイピング - Wikipedia
型の互換性 | TypeScript 日本語ハンドブック | js STUDIO
RustのTraitsが、近年主流である構造的部分型ではなくて明示的な宣言が必要な公称型なのは何故ですか?どのような設計判断があったのでしょうか?個人的にはRustの最大の不満点です。 - Quora
がくぞさんはTwitterを使っています 「構造的部分型で型クラス的な抽象化って可能なのかな?」 / Twitter
がくぞさんはTwitterを使っています 「やっぱ Nominal Typing と Structural Typing の両取りできる言語で」 / Twitter
がくぞさんはTwitterを使っています 「構造のカプセル化について、OOP のパラダイムが Opaque type とかに比べてアドバンテージがあるのかどうかはちょっと疑問があったりするのですが、この辺どっかに研究論文とかあったりするんでしょうか?」 / Twitter
田中ひさてるさんはTwitterを使っています 「構造のカプセル化と DIP のオートワイヤリングについては、OOP ほど無駄なくかつ裾野の広いパラダイムはない、逆に言えば OOP がとくに活躍するのはその領域だけだと考えています。他の領域にとって OOP はメンタルマッピング負荷があるパラダイムだとさえ」 / Twitter
田中ひさてるさんはTwitterを使っています 「ポリモーフィズムは?: アルゴリズムのためのポリモーフィズムはサブタイプでも型クラスでもできるけど、モジュール交換によるメンテナンスのためのポリモーフィズムは DIP のカプセル差し替えってことで、そっちに含んだ」 / Twitter

Refinement Types (篩型)・依存型

Go など

がくぞさんはTwitterを使っています 「わかりみがある。みんなもっとカジュアルに依存型とか篩型とか使っていきましょ https://t.co/Ri7GPG0u0C」 / Twitter
Go を2年くらい書いた感想: 意図をエンコードしきれない感じは消えず - blog.8-p.info
がくぞさんはTwitterを使っています 「共感するなー。自分だとたぶんシステム寄りのところはRustにするかもだけれど。単一の言語で全部何でもやろうとするより、作るものの要件に合わせて適切に選択できるようにしていたいですね」 / Twitter
yuuki takezawa@ytakeさんはTwitterを使っています 「何年もやってるのもあるけど自分の中でGoの棲み分けみたいなのは完全にできていてやはりシステムに近いものだったり、通信の変換だったりそういうところはGoにしていて、ドメインモデルを表現するアプリケーションにはScala/Kotlinになってる。要するに一つの言語でなんでもやろうとしていないです」 / Twitter
yuuki takezawa@ytakeさんはTwitterを使っています 「この辺りはPHPを長くやっていたからっていうのもあるかもしれない。もちろんコスト低めで早く動かしたいかどうかでGoにするかどうかもある。 一つの言語でなんでもやることもできるけど、やはり適材適所だし、組織的に言語を決めるみたいな思想とあまり合わないのはそういうところだったりする」 / Twitter
zakuroさんはTwitterを使っています 「Go にあれがなくて不便というの、わかる意見も多いんだけど、Go は増やした機能は減らせないから安易に機能を増やさないという方針のはずで、逆に言えば十分に議論された機能は入る。ジェネリクスもあれだけ入れなかったのに入れるのはそういうこと」 / Twitter
zakuroさんはTwitterを使っています 「なので、Go に〇〇がないから不便というのは正しくても、その不便さを解消するために安易に機能を輸入することはない。」 / Twitter
zakuroさんはTwitterを使っています 「便利な機能があると、頭のいい人はこれくらいわかるでしょって頭のいいコードを(しばしば無意識に)書き始めるんですよ。」 / Twitter
zakuroさんはTwitterを使っています 「そうはいっても map くらい入れても大したことないでしょとは思うけど、そういうことの繰り返しでどんどん複雑になる」 / Twitter
zakuroさんはTwitterを使っています 「Go がジェネリクス入れたのも個人的には評価保留というスタンス。ちょっと賢すぎる気がする」 / Twitter
zakuroさんはTwitterを使っています 「mapがあれば意図がわかりやすいというのもそんなに賛同できない。Go において map的な処理というのはせいぜい数行で、ある程度慣れていれば見たらすぐわかる。それより複雑なら、関数にして名前をつければ良い」 / Twitter
zakuroさんはTwitterを使っています 「まあ map に関してはジェネリクス入るし解決だと思うけど、ちょっとした不便さの解決のために、いちいち新機能を追加というアプローチを取らないスタンスなのは間違いない」 / Twitter
zakuroさんはTwitterを使っています 「Go 言語を書いていて楽しいかというと、そんなわけないに決まってるじゃん。ほかの言語のほうが絶対楽しい。ただ、楽しさは犠牲になってるけどその分得ているものは大きい」 / Twitter
zakuroさんはTwitterを使っています 「Go 言語、書いてるうちに楽しくなっちゃってめちゃくちゃ凝ったかっこいいコードを書くことに時間をかけてしまうということが一切ない。ruby とか使ってると黒魔術使いたくなってくるじゃないですか。」 / Twitter
zakuroさんはTwitterを使っています 「どんな言語も、大抵開発者が想定していなかった使い方が”発見”されるものなので、そういうことを防ぐためにも Go があれほど慎重なのは理解できる。」 / Twitter
zakuroさんはTwitterを使っています 「V言語でも、おそらく私しかやってないだろうなって使い方をしていて、大量のバグを踏んで苦労しました(だいたい直したけどところどころコメントに workaround とか V's bug とか書いてある)」 / Twitter
zakuroさんはTwitterを使っています 「Go 言語が優れていると思っている人にも、Go 言語があらゆる言語の中で書いてて一番楽しい言語ってひとは多分あんまりいないと思うな」 / Twitter
zakuroさんはTwitterを使っています 「Go言語が書いてて一番楽しい言語っていうのは正直理解できないので、そういう人がいたらぜひ理由を教えてほしさがある(純粋な興味)」 / Twitter
zakuroさんはTwitterを使っています 「自制心がある人は便利な機能も使わなければいいというのをやればいいと思うけど、私は自制心がないので、言語で表現可能な最大限のかっこいいコードを書くのに大量の時間をつかってしまう。Go だと大幅に減る(まあ go generate とか無駄に使おうとしたりはたまにするけど」 / Twitter

yicuiheng/yil
kodai 🕊🐧❄★さんはTwitterを使っています 「依存型か篩型採用したプログラミング言語もっと流行ってほしい」 / Twitter
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
Dependent Types と Refinement Types の違い - SevenColoured
Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
篩型 - mrsekut-p
依存型 - Wikipedia
main.pdf
なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
[B!] Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
Liquid Haskell で普通の型システムの上を行け #NGK2017B
HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
main.pdf
入門LiquidHaskell−篩型による静的コード解析− - Dodgson Labs - BOOTH
16-S.pdf
LiquidHaskell でハマった (MEMO)

Opaque type

Opaque type コンストラクタ 3つのAPI設計方針 - Qiita
Dotty で入る Opaque Type Aliases について見ていく - Qiita
Opaque Types — The Swift Programming Language (Swift 5.5)
DEVでフォームにおけるOpaque Typeの設計に関するシリーズを書いた - Runner in the High
Swiftでプログラミング- Opaque Types|donguri|note
Opaque data type - Wikipedia
Opaque Type Aliases
Opaque Type Aliases | Flow
type alias vs opaque type - elm-jp
Flow - 不透明なエイリアスタイプ - 不透明型エイリアスとは、定義されているファイルの外部からその基礎となる型にアクセスできないようにする型エイリアスです。 不透明な型のエイリアスは、通常の型のエイ - 日本語

Nominal Typing

Nominal Typing - TypeScript Deep Dive 日本語版
TypeScriptでNominal Typingを実現する4つの方法 - Qiita
TypeScript でも Nominal Typing がしたい - Qiita
TypeScript Playground - Nominal Typing
Nominal type system - Wikipedia
Nominal Typing, Structural Typing - namaozi's memo
TypeScriptでnominal typing - aereal-tech
Nominal & Structural Typing | Flow
Type Systems: Structural vs. Nominal typing explained | by Jamie Kyle | Medium
What is a nominal type? - Speaker Deck

Structural Typing

Typescript の Structural Subtyping - Qiita
構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
Structural type system - Wikipedia
ピックアップRoslyn 1/9: structural typing | ++C++; // 未確認飛行 C ブログ
TypeScript Playground - Structural Typing
TypeScript: Documentation - Type Compatibility

圏論・群論

wint 𝄆 揚げ出しエンジニアさんはTwitterを使っています 「圏は、ただの有向グラフの(必ず自己ループがあるという特殊な)サブクラスだよ。なにか問題でも?」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 群は特定の性質を満たしている集合と演算のペアを群と呼ぼうって感じのアレアレで圏はそっからさらに抽象化した感じのアレアレです」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz その程度の雑理解から先になかなか進めないので真面目に勉強しろ的なアレですね……」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 真面目な話、現在プログラミングで活用されている事例をなぞって使うだけならその程度の雑理解で十分なんですよね……僕も同程度の理解しかできてないですし。さらに現状まだ活用されてない概念をプログラミングに適用したり応用的な活用するためには先に進んだ方がいいんでしょうが……」 / Twitter

集合と演算の組み合わせ(群・環)

がくぞさんはTwitterを使っています 「むしろ数値や文字列だけじゃなく全ての半群の加算を + 演算子で実装しましょう」 / Twitter
がくぞさんはTwitterを使っています 「クラスという概念、集合と演算の組み合わせというものを表現しやすそうで群とか環とか表現しやすそうなのに単位元みたいなのが表せないのでアレアレ」 / Twitter
ruichiさんはTwitterを使っています 「積も結合的だから半群を成すのだけどそれも+になってしまいそう」 / Twitter
がくぞさんはTwitterを使っています 「掛け算するためには (Product(2) + Product(3)).value // 結果 6 しなきゃいけない言語不便すぎるw」 / Twitter
pxfnc(ぴくすふぁんく)さんはTwitterを使っています 「言語によってsemigroupの演算として&lt;&gt;を用意して、それとは別にSemiringが(+),(*)を提供してたりという設計があったり。PureScript最高や」 / Twitter
がくぞさんはTwitterを使っています 「言語標準でsemiring欲しいよね」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「@gakuzzzz purescriptやりましょう」 / Twitter
がくぞさんはTwitterを使っています 「@xuwei_k yes, purescriptいいよねという旨のついっとでした」 / Twitter
がくぞさんはTwitterを使っています 「モナドやれば嫌なこと(副作用とか状態管理とか)みんな忘れられるよ」 / Twitter
がくぞさんはTwitterを使っています 「演算子overloadの問題とimplicit conversionの問題をごっちゃにすると話がややこしくなりそう」 / Twitter
がくぞさんはTwitterを使っています 「Scala だと trait Semiring[A] extends Semigroup[A] で表現できるのでどちらも + でいけそう PureScript で class (Semigroup a) &lt;= Semiring a にしてないのは何か理由があったりするんですかね?」 / Twitter
CubbitさんはTwitterを使っています 「半群は &lt;&gt; 、半環の加算は + で抽象化していこう! https://t.co/FYKkpt5FCZ」 / Twitter
Data.Semigroup - purescript-prelude - Pursuit

写像・集合

mod_poppoさんはTwitterを使っています 「部分集合の記号についての話題を見たので」 / Twitter
mod_poppoさんはTwitterを使っています 「真部分集合よりも部分集合の方がよく使うし、真部分集合よりも部分集合の方が基本的な概念だから、部分集合の記号には真部分集合とかいうのに遠慮しないでなるべく書きやすいものを使いたい」 / Twitter
mod_poppoさんはTwitterを使っています 「「準同型写像」って「同型写像」よりも基本的な概念のはずなのに「準」みたいなパチモンみたいな名前なのはおかしいと思うんですよね。より基本的な概念にはより単純な名前や記号が割り当てられるべきだと思うんです(熱弁)(キメ顔)(ろくろ手で差をつけろ)」 / Twitter
mod_poppoさんはTwitterを使っています 「https://t.co/yJjfRUCiv3」 / Twitter
mod_poppoさんはTwitterを使っています 「「準同型は同型よりも基本的な概念なのに『準』をつけて呼んで紛い物扱いするのはおかしい」」 / Twitter
mod_poppoさんはTwitterを使っています 「そういえば学部1年の時に受けたS先生の抽象数学のなんとかっていう授業では、群の準同型のことを(圏の)射と呼んでいたなあ」 / Twitter
reroさんはTwitterを使っています 「@mod_poppo 準仮想化と完全仮想化とか、特殊相対性理論と一般相対性理論とか思い付いた。合ってるかはわからん。古典力学と量子力学とかもそうなのかな?あと、準チョコレートとか。」 / Twitter
ゲーン・マッサマンさんはTwitterを使っています 「@mod_poppo @morinomichi_311 homomorhismに対するmorhismで型写像ってどうだ!って思ったら 同型射に対して型射という言い方が既にあるようで、悔しい。」 / Twitter
jeeemaさんはTwitterを使っています 「2つの実数値関数の積とって積分したら内積になるの、やっぱ関数は成分が無限個あるベクトルなんやなあって感じでキモチいい」 / Twitter
jeeemaさんはTwitterを使っています 「まあ集合論ぽく考えたらベクトルとか数列も自然数から何かへの写像だから、むしろこっちが特殊なんかもしらんが」 / Twitter

二項関係の関係性と性質

Shuhei KadowakiさんはTwitterを使っています 「二項関係の関係性と性質について、これまでwikiを読んでぼんやり理解してただけだったけど、この記事でカジュアルな理解が深まった気がする。実際自前で定義した≤を使うような場面で、≤の性質をちゃんと理解してないと&lt;を誤って定義しちゃったりとかする。 https://t.co/BuwhrYZ29C」 / Twitter
半順序?弱順序?二項関係・順序関係まとめ - ぬぬろぐ
Shuhei KadowakiさんはTwitterを使っています 「したりするというか、つい昨日のことで: #Julia言語 のコンパイラのコード書いてて、既に定義されてるnon-strict partial order: ≤を使って、ぼやっとstrict partial order: a&lt;b = !(b≤a) を定義したら、≤が全順序じゃないとこれやっちゃダメだよって指摘された: https://t.co/hcx1ZXbiFK」 / Twitter
inference: form `PartialStruct` for extra type information propagation by aviatesk · Pull Request #42831 · JuliaLang/julia
Shuhei KadowakiさんはTwitterを使っています 「wiki読み返してみたら、"When referring to partial orders, ≤ should not be taken as the complement of &gt; (...) but &gt; is equal to the complement of ≤ iff ≤ is a total order"ってガッツリ書いてあった :P https://t.co/MJqOOAp34t 数学便利!」 / Twitter
Partially ordered set - Wikipedia

DDD

がくぞさんはTwitterを使っています 「エヴァンスさんのDDD本で書かれているSpecificationやServiceってその本質はただの関数で、他のオブジェクトのメソッドとするには不適切なので無理やりトップレベルのオブジェクトにするために本来必要のない概念を作り出しているように思える」 / Twitter
がくぞさんはTwitterを使っています 「なので最初からオブジェクトという概念を捨てて関数とデータ型とモジュールでモデリングした方が素直にモデリングできるのではないかという疑念が拭えない。 ぜひ、これこれこういう理由があるからモデリングを行うにはオブジェクトという概念があるべきなんだという主張が知りたい」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz Evans氏についてはわかりませんが、 Vernon氏はユビキタス言語を用いてホワイトボードに図を描きながら議論し、それをそのままコードで表現したいのかなという印象を持ちました。オブジェクト指向の文学的な側面を重視しているというか。実装に技術的な説得力はあまり感じませんでした。」 / Twitter
がくぞさんはTwitterを使っています 「@uharaqo なるほど。当時のオブジェクトモデリング全盛時代の時代背景からの要請であって、オブジェクト指向の何かしらの特性が必要不可欠という訳じゃないんですねー」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz 私の質問「戦略的パターンが普遍的に重要ならEvansやあなたはなぜ陳腐化する戦術的パターンも含めたのでしょう」 に対してVernon氏は03年に開発者に使ってもらうならOOだろ、と。 「OOである必然性は?例えばFPは?」に対して明白な回答はなく彼は異教徒を見るようにちょっとイラっとして見えました。」 / Twitter
がくぞさんはTwitterを使っています 「@uharaqo なるほど語順!!日本語だと英語ほど同等の恩恵は得にくそうですね……ありがとうございます」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz DDDの主眼はBiz/Devが協働すること。コミュニケーションによってドメインの理解を深め、それをオブジェクトに蓄えよう、それがビジネスにも反映され…的な。 英語というよりユビキタス言語の使われ方に沿って書く…みたいな感じみたいです。 (あくまでDDD非実践者の私がWorkshopを受講しての感想)」 / Twitter
がくぞさんはTwitterを使っています 「@uharaqo あ、はい補足ありがとうございます!そこの認識は自分も一致していて、ユビキタス言語が基本的に自然言語上に構築されたEmbeded DSLであるという前提でした。なのでユビキタス言語のホスト言語によって結構影響を受けるなーと。ホスト言語が自然言語ではなく数式とかであればその辺やりやすそうですね」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz 素直に上手くいくならいいけれど、結局90年代のオブジェクト指向設計の変奏では?というのが正直な感想でした(s/名詞動詞/ユビキタス言語/g)。理解不足かもしれませんが。 個人的には実装に関しては他の方も勧めていたDomain Modeling Made Functionalの方が実利があって説得力があると感じました。」 / Twitter
CubbitさんはTwitterを使っています 「「オブジェクト指向の多態で条件分岐を減らす」っていうのありますけど、別に条件分岐そのものは悪いものじゃないし、多態で表面上隠すことはできても実際には分岐は起きてると考えたほうがいいと思うんですよね」 / Twitter
medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「DDDは「オブジェクト指向ができることを上手く使った設計方針」なので、オブジェクト指向じゃなくてもできるじゃんっていうのは順番が逆って感じ」 / Twitter
がくぞさんはTwitterを使っています 「@zehnpaard なるほどー。Domain Modeling made Functionalまだ読めてないのですがやっぱ早く読んだほうが良さそうな気配ですね」 / Twitter
zehnpaardさんはTwitterを使っています 「@gakuzzzz F#でDDDをやるDomain Modeling made Functionalという本でも「むしろ代数的データ型のほうが適している」という主張でした」 / Twitter
がくぞさんはTwitterを使っています 「@saka1_p P103に「本質的に活動や行動であって、物事でないものもあるが、我々のモデリングパラダイムはオブジェクトなので、とにかくオブジェクトに当てはめてみよう」とあって、ご指摘の記述からの流れも「エンティティ等に押し付けると歪めるので独立したオブジェクトにしよう的な意味に読めてしまいました…」 / Twitter
saka1さんはTwitterを使っています 「@gakuzzzz これはサービスに関しての一節でした(104ページ)」 / Twitter
がくぞさんはTwitterを使っています 「@saka1_p おお、なるほど?その記載の記憶が飛んでましたね、ちょっと読み直してみます。ありがとうございます!」 / Twitter
saka1さんはTwitterを使っています 「@gakuzzzz Evansはどう実装するかにそこまで焦点置いてない(関数でもよい)と思ってたんですが、ダメみたいな話になってるんですか? "ドメインから生まれる概念の中には、オブジェクトとしてモデル化すると不自然なものもある。" みたいに、むしろ強引にオブジェクトにしなくてもいいと言ってるような」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz 同じことを実践DDD著者のVernon氏に聞いたら「空疎な設計論ではなく当時の開発者が実際に使えるものだと示したかったのでは、そしてだからこそ受け入れられたと思う」と言っていました。 オブジェクト指向である必然性を聞いたところ、現場の課題を解決できるものを使えばいい、みたいな感じでした。」 / Twitter
uharaqoさんはTwitterを使っています 「@gakuzzzz Evans氏についてはわかりませんが、 Vernon氏はユビキタス言語を用いてホワイトボードに図を描きながら議論し、それをそのままコードで表現したいのかなという印象を持ちました。オブジェクト指向の文学的な側面を重視しているというか。実装に技術的な説得力はあまり感じませんでした。」 / Twitter
がくぞさんはTwitterを使っています 「値クラス、凝集度あげるのに有用だし実際ぼくも多用するけど、直接プリミティブな型を並べて使うより関連の深い値同士を積極的にグルーピングして型を導入しようぜ、的な話でクラスのある言語でもクラスの無い言語でもどちらでも使える設計指針になる気がする。けど抽象的すぎて伝わらなくなる……」 / Twitter
がくぞさんはTwitterを使っています 「同感です。HaskellのIOとかも同様に、問題を生みやすい内容をコード上に記述するプログラマの責務から処理系の責務へと移すことによって問題の発生を抑制する働きをしている、という認識をしています」 / Twitter

OOP

がくぞさんはTwitterを使っています 「オブジェクト指向で得られ非オブジェクト指向では得られない特性を正しく理解してオブジェクト指向を使いたいのだけど、TLに流れる言説は歴史的経緯に始終していたり主観的な感想だったり、たまに特性について語っていても非オブジェクト指向でも得られるものだったりで、OO何もわからない」 / Twitter
がくぞさんはTwitterを使っています 「僕が知っている特性は今の所open recursionなのだけど、この特性が活きるシーンは自分の業務範囲だとあまり多くないので重要度としては高くない」 / Twitter
がくぞさんはTwitterを使っています 「Haskellのobjectiveライブラリのモチベーションを見ると状態の数が多い時に有用とのことなので、オブジェクト指向では、状態の数Nに対して複雑度をC(2^N)からC(N)に変えられる特性がある、みたいな話が読みたい」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「そういえばFragile base class problemというopen recursionに起因するやつがあったけど、open recursionこそがOOが提供する利点なのならそれからこの「問題」が出てくるのはなんとも皮肉な話だなみたいな気持ちがある」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「もしかして:単にopen recursionが人類に早すぎる」 / Twitter
トデス子'\さんはTwitterを使っています 「今までオブジェクト指向プログラミングの便利さだと思ってたものの大部分はデータ型ごとに分かれた名前空間および型クラスで代替可能で、動的ディスパッチはほとんど要らんなという学びが……(たまには要る)」 / Twitter
トデス子'\さんはTwitterを使っています 「代替にはADTも必要ですね」 / Twitter

拡張メソッド・Factory

がくぞさんはTwitterを使っています 「Extension MethodもIDEがちゃんと補完してくれる言語を使えばその呪縛から解き放たれるのでみんなで幸せになりましょう」 / Twitter
がくぞさんはTwitterを使っています 「まぁJavaで interface Foo&lt;A&gt; { &lt;B super A&gt; Foo&lt;B&gt; bar(); } みたいな下限境界ができるようになればわざわざ拡張メソッドでみたいな事考えなくて済むのだけど……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz んー。 拡張メソッドなあ……🤔」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 拡張メソッドもそれはそれでドキュメント追い辛いよねみたいなのもありつつ。JavaのGenericsの範囲だとインスタンスメソッドではAPIの柔軟性を確保し辛い部分があるので一部staticメソッドにせざるを得ないみたいな所があるんですが、その辺を拡張メソッドにすると補完効くようになって嬉しい的な」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz そういうのもあるでしょうね。 ただ、元ツイは、引数に渡すオブジェクトを生成するためのbuilderクラス分からん!みたいなモノを念頭においてるので、そのあたりは解決仕切れなさそうだな、みたいな感覚もあります」 / Twitter
がくぞさんはTwitterを使っています 「@nagise オブジェクトの生成は最初のレシーバになるべきオブジェクトが存在しないからその辺は確かにアレゲですね……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz 起点がなんとかなれば、そこから補完、補完でいけるんですけどね。 最初の起点がわからんくなってるやん、みたいなのがbuilderにはあって。 newだとまあ分かりやすくはあるんですが」 / Twitter
がくぞさんはTwitterを使っています 「@nagise その辺はfactory methodも同様の問題を抱えてますよねー そういう意味だとデータコンストラクタやスマートコンストラクタが他の関数と区別つけ辛い言語勢だとどうやって解決してるんでしょうね? HaskellとかOCamlとかはデータコンストラクタが大文字から始まるからその辺で区別している……?」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz コンストラクタ、該当型を生成するという強い文脈を持っていますが、staticメソッドや、builder等から調達してくるみたいなときに、何らかの補完のヒントがあれば……というのが安直な解決策なんですよね ライブラリ側で誘導できるならそれで十分なのかもしれません。 今だとドキュメントで誘導ですね」 / Twitter
がくぞさんはTwitterを使っています 「@nagise builder生成メソッドやfactoryメソッドに 🍥Construct アノテーションつけておくと new TypeName って入力したときにIDEがサジェストしてくれるとかなら実現可能な範囲かもしれません?」 / Twitter
uharaqoさんはTwitterを使っています 「@nagise @gakuzzzz 最近の流行りは、エントリーポイントとなるクラスを一つ定義してfactoryやbuilderをstaticメソッドで提供する感じだと思います。HttpClient.newBuilder()...みたいな。あとは流れるようにw https://t.co/MarV9ggZot」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@uharaqo @gakuzzzz そのエントリーポイントが分かりにくいというか。 まあ、そこは型じゃなくてドキュメントで誘導になってるな、と。」 / Twitter
がくぞさんはTwitterを使っています 「@nagise @uharaqo Rubyみたく通常のコンストラクタが TypeName . new なのが基本だと TypeName.newBuilder は補完が効かせやすそうなんですけどねー。KotlinやScala3のように TypeName(...)でnew キーワードすら使わないのがデフォルトの場合、ファクトリメソッドとコンストラクタの区別をつけなくて良かったりしますが」 / Twitter

nullをやめてOptionalを使う

κeenさんはTwitterを使っています 「nullをやめてOptionalを使った方がいいと言われるけどパフォーマンスの影響はどうなの?ということで計測した記事。Javaは(予想に反して)最適化が不十分で遅くなる。Rustはzero costだった Overhead of Returning Optional Values in Java and Rust | Piotr Kołaczkowski https://t.co/v1EmQsDqY7」 / Twitter
Overhead of Returning Optional Values in Java and Rust | Piotr Kołaczkowski
みさわさんはTwitterを使っています 「Java には OptionalLong というものもあってだなと思ったけれど、OptionalLong でもあまり変わらないらしい。そして自分で実装しなおした OptionalLong の方が(このテストでは)かなり早いとか。 https://t.co/mOFFDxG3bu &gt; https://t.co/Jq6FyhvezC」 / Twitter
Rust Option 30x more efficient to return than Java Optional : rust

メタサーキュラーインタプリタ

itp-interpreter.pdf
自己反映計算 (計算機科学) - Wikipedia
S8
メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
basic data types in LISP.pdf
- no title specified

infoQ

価格とパフォーマンスの比率が向上するAWS Graviton2 プロセッサを使用したAWS Lambda関数
SlackにおけるAPI設計の原則とプロセス

スライド

Walk around functional web frontend programming - Speaker Deck
関数型言語作成のチュートリアルをやってみる - Google スライド
形式検証の視点から再確認したいMaybe/Option型からnull許容データベースへのデータ変換
関数型とはなにか? - 第二回関数型プログラミング(仮)の会 - Google スライド

blog

函数論理プログラミング言語 Curry - Ryusei’s Notes (a.k.a. M59のブログ)
数学全然わからないけどElixirでApplicativeを作ってみる - やわらかテック
【JavaScriptで解説】部分適用って何?カリー化との違いは? - やわらかテック
Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ
2021年現在、かなり強い開発手法〜ルール駆動開発 - 赤帽エンジニアブログ

Twitter

高階型

GATs(Rust)

Rustでモナド
RustでFunctor書いてみる - Qiita
Rustでのモデル駆動設計について - Chatwork Creator's Note
Hideyuki TanakaさんはTwitterを使っています 「RustにGATsが入るとこういうダミーのstructにたいしてimpl実装することで、Haskellの型クラスみたいに高階型を疑似的にtraitのインスタンスにすることができなくもない感じになるっぽいけど、RustのいうところのHKTを入れるのは無理なんか? https://t.co/u1MI1bnFHc」 / Twitter
Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself

がくぞさんはTwitterを使っています 「主題とは異なるのだけど、JavaでこうやってAPIをインターフェイスで閉じてるとAPIの利用側が実際のデータ型が何なのか意識しないし、複数のデータ型(ArrayListとemptyListとか)が混在するのも普通なんですよね。なので混在しても問題が起きないようにインターフェイスとしてlawが定められている(続」 / Twitter
いろふさんはTwitterを使っています 「順序関係ないCollectionでなくてもList使うよねぇ、って話から読み返すなど。 / ArrayListじゃなくListを使うという話 - 日々常々 https://t.co/QXn2MTIfGI」 / Twitter
ArrayListじゃなくListを使うという話 - 日々常々
がくぞさんはTwitterを使っています 「ところがHaskellとかだと、APIは抽象化されていても具体のデータ型に何を使うかはAPI利用側が指定する感じなのですよね。なのでデータ型が混在する事があまり無い。 この辺の特性の違いについて整理すると面白そうなのだけど上手く言語化ができないのだよなー」 / Twitter
がくぞさんはTwitterを使っています 「JavaにはHKTが無いから戻り値同型の原則をImmutableにやろうとすると非常に難しいのだよなー」 / Twitter
RustのHigher-Kinded type Trait | κeenのHappy Hacκing Blog
[Rust]HKTに対して関数定義 - Qiita
Rustでの関数型プログラミング - teruuuのブログ
TypeScriptで高カインド型(Higher kinded types) | Tkr Blog
TypeScriptとHigher Kinded Type(高階型) - These Walls
Lightweight Higher-kinded Polymorphism - herp-technote
Higher Kinded Types - herp-technote
TypeScriptの高次タイプ関数?
Monad in TypeScript - DEV Community

数学の話題

SODA NoriyukiさんはTwitterを使っています 「高校の数学で習う集合の話(必要十分条件とかド・モルガンの法則とかあのあたり)はプログラミングでめっちゃ使ってるなあ。 そんなの習わなくても(数学の上での名称を知らなくても)分かってるよっていう人がいっぱいいるのは知ってる。自分も中学の時には本を読んで身につけてたし…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「少数派の意見かもしれないけど、プログラミングしてるときはでっかいピタゴラ装置を作ってるみたいな感じで、数学が関係ある感じがあんまりしない。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「プログラミングに数学は要るか論争、「数学」で想定する範囲に差があって議論百出だけど、「問題を分割して再帰できたらステップ数は対数関数」「いくつかの可能性のあるものを繰り返したら総組み合わせは指数関数」くらいはいつかかならず出会うので高校数学の途中くらいまでは回避不可な気がする」 / Twitter
Shiro KawaiさんはTwitterを使っています 「実際に要るのは式の操作よりも関数の振る舞いの感覚なんだけど。身についてる人にとっては自然なことなのでそれをいちいち数学とは思わないかもしれない https://t.co/Up2DoEgBnh」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@rui314 ピタゴラ装置って、物理をある程度内面化してないと作れなさそう(厳密に計算しないでも、これを動かすにはこのくらいの重さがこの速さで当たらないと、みたいな感覚)。それと似た数的感覚というのは要る気がする。これするとO(n^2)でやばそう、とか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@anohana それはあるかもしれませんねぇ。ただ数的感覚なので数学とはちょっと違うかもですけど。数的感覚だけだと人に説明するときは大変そう。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@rui314 私も全然厳密に考えてなくて感覚的にやってるんですが、さてその感覚をどう身につけたかと考えるに、一度は辛抱してステップを追いかけたことで身についたのかなあって気がするんですよね。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqの証明もピタゴラ装置っぽいし、そもそも数学の証明自体もピタゴラ装置なのでは?」 / Twitter
解答略さんはTwitterを使っています 「あんまり考えたことなかった。普通に数学で ∀ a∈X ; P(a) のことを for all a in X; P(a) と発音するのと同じノリかと思っていた」 / Twitter
やぱったーさんはTwitterを使っています 「アドカレで書こうと思いつつ最終日に書くのとも何か違うと思って取っておいた記事の放流 はてなブログに投稿しました #はてなブログ for文のforはなぜforなのか? - yapattaのブログ https://t.co/8oXIKPUkf2」 / Twitter
for文のforはなぜforなのか? - yapattaのブログ

ぶんちょうさんはTwitterを使っています 「OCaml+cargo+goruntime+型クラス→顧客が本当に欲しかったもの」 / Twitter
ねっけつさんはTwitterを使っています 「@yutopp 型クラスの代わりに module とファンクタじゃ駄目ですか」 / Twitter
チェシャ猫さんはTwitterを使っています 「対象を定義する、定式化する、特徴付ける、記述する、分類する、といった問題設定は自分がナイーブに考えていたほど普遍的なものではないらしく、理学系(※諸説あります)以外の人と話すとき、内容以前にそれが Research Question として成立し得ること自体がうまく伝わらなかったりする。」 / Twitter
チェシャ猫さんはTwitterを使っています 「なんていうか、例えて言うならオートマトンの理論の話をしたのにおすすめの正規表現ライブラリについて訊かれるような感じ。無関係とまでは言わないけど、研究の主眼というか、興味があるところはそこじゃない感。」 / Twitter
kinabaさんはTwitterを使っています 「お、これは確かに本質的にはそういう話な気がする。 (今https://t.co/jSY5PvMJdj などを読みながら勉強している) 多相型のデータ構造のどこに居るかindexできるだけの情報を全部ぶち込めればそれより大きい型を見ても仕方がない」 / Twitter
Representable Functors |   Bartosz Milewski's Programming Cafe
mod_poppoさんはTwitterを使っています 「VMのgetChar/putCharを好きなモナドで定義しておいてContTをうまく使ったら「関数を呼び出す感じで入力を与える」形に変形できんかな、と思ったけどそもそもHaskell製VMが遅すぎて実用的じゃなさそう」 / Twitter
El Pin AlさんはTwitterを使っています 「Semantic signatureを使わないことがいいことかは微妙なところではあります(avoidance problemや、型健全性の証明の難しさなど)」 / Twitter
画力・博士号さんはTwitterを使っています 「A syntactic type system for recursive modules [Im, Nakata, Garrigue &amp; Park 2011] を7割方読みました,別にsemantic signatureとか考えずに構文的対象で完結して再帰モジュール扱えるでという内容で面白い」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「ちなみに所謂関数型言語でもリストは扱いにくいのですが、これはシステム言語とは異なりimmutable性に全振りしているためですね。」 / Twitter
🍊🍀💉💉さんはTwitterを使っています 「GroovyだとExclusiveが..&lt; でInclusiveが.. だな」 / Twitter
がくぞさんはTwitterを使っています 「range operators 統一して…… https://t.co/sCC5cYGMXk」 / Twitter
ytakanoさんはTwitterを使っています 「チャネルを使っても容易にデッドロックになる。マルチパーティセッション型が必要だ。」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellerが本当に欲しかったのはsingletonsじゃなくてDependent Haskell,みたいなのもありそう」 / Twitter
画力・博士号さんはTwitterを使っています 「理論を実際的な課題に適用するとき, - 理論が理想的な強い前提を仮定しており実際の課題では成り立たないので適切に緩和する - 理論の一般性の高さゆえに単に理論を適用するよりも課題の特殊性を使ってより良い結果が出るかもしれないと吟味する という非自明さがあるよなとはよく思うようになった」 / Twitter
画力・博士号さんはTwitterを使っています 「その意味では別に “理論的結果を精密に把握していること” は重要ではなく “いざとなれば理論が導出された過程を追って自分用に加工できる” ことが重要だろうし,多分研究者が「勉強モード入っちゃダメですよ」と言うのはこういう旨に近いように感じる」 / Twitter
mod_poppoさんはTwitterを使っています 「何番煎じかは知らないがStandard MLでパーサーコンビネーターを書いた https://t.co/uH3X65qzDS」 / Twitter
mod_poppoさんはTwitterを使っています 「書いてみた感想。SMLでは関数しか再帰的になれない、演算子の右側にfnを書く場合はカッコが必要、do記法がない、などでHaskellとは結構書き味が違う(違う言語なんだからそりゃそうだ)」 / Twitter
ytakanoさんはTwitterを使っています 「自動検証、証明はしなくていいけど、左辺に-1したら検証が通らなくて、代わりに右辺に+1したら通るとかがあって難しいな。」 / Twitter
El Pin AlさんはTwitterを使っています 「Noam Zeilberger. Fibrational views on typing, proving, and parsing. 2021. https://t.co/JC2ZTL6iCB」 / Twitter
mfps.2021.08.31.pdf
El Pin AlさんはTwitterを使っています 「William J. Bowman. Compilation as Multi-Language Semantics. LFCS Seminar, 2021. https://t.co/idhY0rL8g9 https://t.co/CUjnA6m8mx」 / Twitter
Compilation as Multi-Language Semantics - wjb2021-lfcs-talk-multi-lang-comp.pdf
がくぞさんはTwitterを使っています 「Immutableを推すのは良いんですが、現代的なImmutableを支える技術(LensとかMonadとかTraverseとかとかとかとか)についても一緒に紹介して欲しいですね」 / Twitter
RyuseiさんはTwitterを使っています 「ifやforのブロック省略すんな問題、そもそも副作用に頼ってプログラム書くから制御構造が壊れていても気づかないという話なんで、副作用を使わないプログラミングスタイルだと型エラーでだいたいわかるじゃんっていう温度感(まあみんな副作用使うんだけど)」 / Twitter

数学における「自明」の意味|さのたけと|note
関数型言語の実装のチュートリアル - prog-lang-sys-ja
Category:関数型プログラミング - Wikipedia
関数型プログラミング – OCaml
Curryで関数論理型言語を体験してみた - Qiita
nobsun/fpday2021
Toy Machine Simulator
https://arowm.github.io/domain-specific-library-example/
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@mo_naqa (左右にオペランドを敗する)二項演算子じゃないと左右結合は関係ない気がするのですが。優先順位は確かに関数型言語の適用順とかで一般化できそうですね」 / Twitter

関数型

mumumuさんはTwitterを使っています 「関数型言語のめっちゃ基本的な疑問でどなたか教えて欲しいのですが,一般論として 副作用がない ⇔ 純粋 は正しいですか? それとも,文脈におけるそれぞれのタームの定義に依存する話ですか?」 / Twitter
mumumuさんはTwitterを使っています 「&gt; 文脈におけるそれぞれのタームの定義に依存する話ですか? というのは,「純粋」とか「副作用がない」というのは厳密な定義ができない,みたいなニュアンスです」 / Twitter
mumumuさんはTwitterを使っています 「自分の理解では,そもそも純粋であることの定義が「参照等価性がある」ということだったのですが,これも文脈依存なのでしょうか...?」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm あ、というか副作用+参照透過性=純粋なのかと思っていました。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm もとい、副作用なし、の意です。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm で、おそらく嘘なので無視してください。参照透過で副作用あり、というのは参照透過性の定義を逸脱しているような気がしてきました。」 / Twitter
mumumuさんはTwitterを使っています 「独自定義と厳密定義が混じり合ってる気がしていますわね」 / Twitter
mumumuさんはTwitterを使っています 「定義が文脈によって変わる系の話かもしれない」 / Twitter
mumumuさんはTwitterを使っています 「@buri17 本でかじっただけですが,「純粋 = 参照等価性」という定義が存在することは間違いなさそうです. しかし,そもそも世間では色々な定義が混在しているのかもしれなくて困っている,という感じです...!」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm たとえば乱数を返す関数は参照透過ではないけど副作用がないという立場もありそうですが、乱数を返す環境に影響を与えているという立場ならありとみなすような気がするので文脈依存といえばその通りなきがしています。」 / Twitter
とりさん@腹筋が弱いさんはTwitterを使っています 「式は値を返せば良くて,それ以外の環境を変化させるような余計な振る舞いは全部*副作用*だから.(過激派」 / Twitter
mumumuさんはTwitterを使っています 「みんなが使ってる副作用にも広義、狭義みたいな話がありそうで、もはや関数型言語がアカデミアだけのおもちゃでないことを考えると、厳密な定義を求めないで文脈ごとに定義を明示するべきであるという結論に達してしまった」 / Twitter
mumumuさんはTwitterを使っています 「(ちなみに、自分の理解では「副作用=プログラムの任意の状態変化」だったので、副作用はもっと緩い定義をすることもあるという事を知れただけでも収穫)」 / Twitter
timelerさんはTwitterを使っています 「高階関数のないプログラミング言語だとこういうの多く作られがち😰 https://t.co/7Ji9uMJs8Z」 / Twitter
プログラムを勉強している人の毒舌な妹さんはTwitterを使っています 「お兄ちゃん、なんで8割方同じ内容の関数が3つも4つもあるの?」 / Twitter
きしもとさんはTwitterを使っています 「@TakaoOzaki そんなことはないでしょう。必要なのは高階関数というよりも、関数(ないし手続き)がファーストクラスでないという制限のために、コードの複製が多発しやすい、というのが元のツイートの言っていることの要点ではないかと思います」 / Twitter
尾崎隆大さんはTwitterを使っています 「@ksmakoto % Prolog 'なるほど。高階関数を使うという話ではなくて、高階関数が存在しないようなクラスの言語ではと、読むべきだと。'.」 / Twitter
水無麻那さんはTwitterを使っています 「関数型は第一級関数を先取りしててすごいという言説を聞くが、オブジェクト指向もオブジェクトにより高階関数が自然な形でエミュレート出来るの、十分すごいし綺麗だと思う」 / Twitter
島鉄雄さんはTwitterを使っています 「Lispで (let ((a hoge)) ...) と書くべき所を (let (a hoge) ...) と書いてしまうとハマる… Cの if (a = hoge) ...; と同じレベルの落とし穴がLispにもある。 (ちなみに後者は、(let ((a nil) (hoge nil)) ...) と同じ)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これ論文のどこにも書かずに10年経ってしまった (実装してすぐITPLに就職してしまった) 誰かが理論にしてるのかも知れないけどまだ見たことがない。安直な方法ではある」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn Haskell'08はunsafeCoerceを使ってるのがアレですが、うまいことやれば型安全なエンコーディング(かつRevisitedのようなチャネル渡しを伴わない)も可能です(例えば https://t.co/qQrv9rj3ZL のように一つのセッションチャネルを複数の単純型付きチャネル(ここではIOモナド)の列で実現するとか」 / Twitter
betty-book-haskell-sessions/Types.hs at master · dorchard/betty-book-haskell-sessions
El Pin AlさんはTwitterを使っています 「MacQueen "Modules for Standard ML"の1985年版(functorと言う用語が初めて出てくる)、入手困難かと思っていましたが、 https://t.co/l14H7pKBaB から入手できる(72 MBのPDF)と知りました」 / Twitter
Full page fax print - Polymorphism Vol II, No 2.pdf
El Pin AlさんはTwitterを使っています 「https://t.co/dVjE4eDFTr」 / Twitter
伊津野 英克さんはTwitterを使っています 「関数型プログラミング、早期リターンができないのがつらいんだということに気付きはじめた。Rust は結構、関数型押しなんだけど、Try演算子も入ってほとんど普通の言語と同じように扱えるんだけど、Kotlinのinlineクロージャがないから、そこだけ早期リターンができない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「逆方向のリストは和田先生もなんか言ってたが、ほんと再帰で扱いにくい。順方向と対称にならない。coinductionするべきかもしれない。 a . (b . (c . ... と ((((a . b) . c ) ... の差。なぜか、Agdaの演算が後者で…」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLのリストは再帰で書いてるが本質的にはループ。ループの最大値と途中の値がすべてあることを確認できれば良い。」 / Twitter
ニャーニャーとなくどうぶつさんはTwitterを使っています 「分かりみ。Immutable は大抵の言語でやろうと思えば出来るだろうけど、Immutable コレクションや 所謂 copy メソッド等、言語がそれを推してるかでやり易さ変わってくるよなぁと思ったり。複雑なドメインで値オブジェクト等やって行くのが重要なら実装方法云々の前に言語の選定も重要よねと思ったり」 / Twitter

クロージャ

実装から理解するクロージャ | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp だとクロージャが何なのかより分かり易いと思う。 この画像の連想リスト(alist)の ((count . 0) t) が、いわゆる環境で、メタファーでなくて実際に本物の連想リストを保持している。 で、setq がこの中身を直接書き換えてる。 実際に書き換わってるのが分かると思う。 Emacs は勉強になるな… https://t.co/No7IoW1GOy"
島鉄雄さんのツイート: "ちなみに、これはバイトコンパイルされてない関数の場合で、バイトコンパイルされると、クロージャの持ち方は全然別物になる。 へーそうなんだと言う感じだけど、近々バイトコード完全解説記事を公開予定なので、少々お待ちを…"
Kota Mizushima (on a diet)さんはTwitterを使っています 「オブジェクト指向言語でオブジェクトを渡すのは、実質的に高階関数を渡している(そういうオブジェクトは固有のメソッドを持つので)のであって、OOPL使っている皆さん、すでに高階関数使っているのだ。クラス使わずに1メソッドだけのオブジェクト便利に渡せると思えばいいのでは。」 / Twitter

末尾再帰

Tanaka AkiraさんはTwitterを使っています 「OCaml での tail recursive な map (逆順にもならず、無駄にメモリを確保しないやつ) https://t.co/jPix5aoHiK」 / Twitter
天泣記
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr f内で継続捕まえて後で再起動すると破壊がばれるやつですね」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@anohana Lisp と書くか Scheme と書くか迷ったけど、Lisp と書いてよかった」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr :-) あとCheney on the M.T.A.方式 (スタックをnurseryとみなす)だと普通に再帰しても頑張って工夫してアロケートするのとあんまり変わりませんね。Scheme以外の言語で同方式の実装ってあるのだろうか」 / Twitter
κeenさんはTwitterを使っています 「Lispでtconcって呼ばれるテクニックだ。Obj.magic使えばできるんだ。」 / Twitter

再帰とループ

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ソースを幅優先探索で読む人は再帰が理解しやすく、深さ優先探索で読む人はループが理解しやすそう説。本当にそうかは知らない。」 / Twitter
ichimalさんはTwitterを使っています 「数学的帰納法でわかりやすく定式化出来る計算ならむしろ再帰の方が「見た感じ」簡単のように思うけど、一般的かは謎。 そも、再帰関数は原理的に単純なループより複雑な事ができる(例:アッカーマン関数)わけだが、そういうのも関係あるだろうか。」 / Twitter
pokarimさんはTwitterを使っています 「ループはかんたんだけど再帰はむずかしいってなる理由についてあらためて考えてみたけど、再帰呼び出しがつくる任意の深さの入れ子構造というものが認識に負担をかけるようなところがあるのかもしれない。ループならあくまでフラット。」 / Twitter
KojimaさんはTwitterを使っています 「手続き型言語に慣れていて関数型言語に慣れてない人の「ループしたいだけなのになんで再帰を書かないといけないのか」に対する違和感をうまく表現できないでいたんだけど、「あなたは総和を求めたいのではなく部分和の値をレジスタに書き込むことを繰り返したいのですか」とかいう感じかもしれない」 / Twitter
ぽんこつ@Z6/Z7さんはTwitterを使っています 「関数型言語でも再帰書いたら負けっていう派閥なんですが」 / Twitter
ぽんこつ@Z6/Z7さんはTwitterを使っています 「@haruo31 末尾再帰最適化前提でコード書けるの、Haskellぐらいしかなくね、みたいなイメージだった。Scalaも末尾再帰最適化失敗でコンパイル失敗させられるから一応入れてもいいかもしれないけど」 / Twitter

末尾呼び出し最適化

FUJI GoroさんはTwitterを使っています 「こういう経緯だったのか。暗黙のTCOはダメだよなーと常々思っていたけど、Syntactic Tail Callだったらいいと思う。 / “末尾呼び出し最適化とJavaScript - Speaker Deck” https://t.co/qljvqhVju9」 / Twitter
末尾呼び出し最適化とJavaScript - Speaker Deck
FUJI GoroさんはTwitterを使っています 「JavaScript、かなり浅いはずの再帰でも実ブラウザ環境では "Maximum call stack size exceeded" が発生しうるので、再帰は使うべきでないんだけど、再帰で書くほうが素直に書けることも多いし、STCがあれば解決できる。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptのTCO事情、そんなことになってたのか / 末尾呼び出し最適化とJavaScript https://t.co/5QRvbrChnH」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptみたいに「コンパイル先」として使われる言語はTCOがないと関数型言語が辛い」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaのTCOの話はこの辺か? https://t.co/9C965yfZQB」 / Twitter
TailCalls - TailCalls - OpenJDK Wiki
尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であると何がうれしいのかというと、 末尾の節の最後へ来て再帰のpが呼ばれる時に、 q1,q2, ... ,qn の情報が必要なくなる。もしスタックに積まれているとすれば、その情報はなかったことにして、上書きしても大丈夫。従ってスタックが伸びない。オーバーフローが起きなくなる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であるかどうかの見分け方。引数は捨象して、 p. p :- q1,q2, ... ,qn,p. ・このようにpゴールが述語の最後の節の最後のゴールとなっている。 ・q1,q2, ... ,qn, が実行時に全て決定性(もう次の選択肢がない)になっている。 このような述語は末尾再帰であるという。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '小説が「大菩薩峠」とか「徳川家康」だったとしたら、末尾再帰版を使ったほうが無難。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版 少し重くなった。 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/rvbSxfpmeg').」 / Twitter
nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_2_utf8.html
尾崎隆大さんはTwitterを使っています 「% Prolog 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/MUq1bEVKqR').」 / Twitter
nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_utf8.html
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologの述語は基本、非決定性に作るので、q1,q2, ... ,qn が決定性に終了しているという状態を求め難い。それでスタックオーバーフローの危険があるため末尾再帰にしたい場合は、q1, 以降の述語をカット等を駆使して決定性に終了させるという課題に挑むとことになる。'.」 / Twitter
NaruTo@うなぎ食べない教さんはTwitterを使っています 「手続き型言語に於いて、 「末尾再帰は繰り返しに置き換えられる」 って話がある。」 / Twitter
尾崎隆大さんはTwitterを使っています 「@KAZAMAI_NaruTo % Prolog 'スタックに積むより、固定枠に変数を代入して繰り返す方が速い。できればそうしたい。ところがPrologではゴールが決定性に終了したかは実行時でないと解らない。それでスタックに積む。 結局、Prologのプログラムに於いては、この積み方が速い遅いよりも遥かに大問題となっている。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイル時に繰り返しに変換できるような末尾再帰はないのかというとそうではない。末尾に至るまでのゴール全てが決定性であることが明白ならできる。単にn回繰り返す為の制御の再帰とか。これはゴールが決定性のis/2しか出てこない場合があり、この場合繰り返しに変換できる。'.」 / Twitter
Miura HidekiさんはTwitterを使っています 「Prologの静的解析ってどのくらい出来るのかしらん?カットを自動で入れるくらいのこと出来るのかな?」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miura1729 % Prolog p(X) :- q1(X). p(X) :- \+q1(X),q2(X). p(X) :- \+q1(X),\+q2(X),q3(X). 'これを p(X) :- q1(X),!. p(X) :- q2(X),!. p(X) :- q3(X). に書き換える課題は面白そう。'.」 / Twitter
mod_poppoさんはTwitterを使っています 「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要!(素振り)」 / Twitter
mod_poppoさんはTwitterを使っています 「伸びているようなのでマジレスするとJVMやJavaScriptをターゲットとする一部の関数型言語はTCOが部分的にしか実装されてなかったりするので、あまり「関数型言語にはTCOが必要!」みたいなことは大声で言わない方が良いかも。末尾再帰くらいは必須扱いしても良いかもね」 / Twitter
Miura HidekiさんはTwitterを使っています 「末尾呼び出しを厳密に実装しようとすると、スタックGC前提とか実装の自由度がかなり制限されそう」 / Twitter

multi-stage programming (多段階計算)

multi-stage programming (多段階計算)

Twitter

κeenさんはTwitterを使っています 「多段階計算ってとりあえずこれ読んどきゃいい? Multi-stage programming: axiomatization and type safety | SpringerLink https://t.co/pmNSOOAbTE」 / Twitter
ほたてさんはTwitterを使っています 「@blackenedgold 基礎的な部分であれば https://t.co/iXdQbL0G48 と https://t.co/1bqFCZWpBn が参考になると思います。前者は時相計算、後者は様相計算を多段階計算の文脈で論じてます。」 / Twitter
A Temporal Logic Approach to Binding-Time Analysis | Journal of the ACM
A modal analysis of staged computation | Journal of the ACM
がくぞさんはTwitterを使っています 「@nobkz それを多段階でできるイメージですね。 https://t.co/DXPdRzU8Zv」 / Twitter
Runtime Multi-Stage Programming
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「他段階計算って、確か、事前計算にも型検査して、吐き出されたコードにも型が付いて型計算するやつだっけ??」 / Twitter
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「s/型計算/型検査」 / Twitter
がくぞさんはTwitterを使っています 「静的型付言語でのメタプログラミング、結局メタプログラム上のどの実行タイミングで静的検査を行うかというのがキモになってくるので、Multi Stage Programming に」 / Twitter
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「静的型付けの言語で、メタプログラミングやると、毎回微妙な気分になるのなんなんだろう。」 / Twitter
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「いや、まぁ、メタプログラミングなんだけも、私がやりたいLispのそれとは違うというかね....」 / Twitter

Multi-stage programming - Wikipedia
科学的に美しいプログラムを追及するプログラミング科学リサーチユニット – COTRE(コトリ)|COmmunity of Tsukuba REsearchers
28_1_217.pdf
general7-2.pdf
Multi-Stage Programming、そして脆弱性レジリエンス × Clean Architecture 〜 ScalaMatsuri2020 登壇者インタビュー - Visional Engineering Blog
scalamatsuri2020/intro-msp-with-dotty.pdf at master · knih/scalamatsuri2020
Runtime Multi-Stage Programming
download
A Gentle Introduction to Multi-stage Programming | SpringerLink
Multi-stage programming with explicit annotations | Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
(PDF) A Gentle Introduction to Multi-stage Programming.
ppl7-2.pdf
ppl3-4.pdf
多段階計算 - mrsekut-p
lambdaCB-PPL05.pdf
BER MetaOCamlで始めるメタプログラミング(MSP) - Qiita
25280020 研究成果報告書 - kaken.nii.ac.jp_25280020seika.pdf
亀山 幸義(カメヤマ ユキヨシ; Kameyama, Yukiyoshi) | TRIOS

ステージング 多段階計算

ステージング 多段階計算 - Google 検索
多段階計算 - Google 検索
多段階計算 - Google Scholar
多段階プログラミング - Google Scholar
その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
多段階計算の型システムの基礎
julia入門で多段階計算 - ::Eldesh a b = LEFT a | RIGHT b
Juliaコンパイラ開発レポート | Advanced Technology Lab
多段階法 [JSME Mechanical Engineering Dictionary]
SATySFiに多段階計算を入れる構想 · gfngfn/SATySFi Wiki
SATySFiコード中で整数を16進数で書きたい - Qiita
BER MetaOCamlで始めるメタプログラミング(MSP) - Qiita
[OCaml] MetaOCaml で IDE (Merlin) を使う方法と簡単な紹介 - Qiita
(PDF) MetaOCamlによるGPGPUプログラミング
lambdaCB-PPL05.pdf
asai14.pdf
ppl3-2.pdf
ppl3-4.pdf
PPL6-3.pdf
ppl7-2.pdf
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「多段階計算も互換性壊さないし、新しい moduleも大丈夫そうなので、SATySFiも意外と互換性問題に強い? (ただどこかのバージョンで一気に破壊的変更を加えるとアナウンスされているが)」 / Twitter

組み込み関数

だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系を作るにあたって、組み込み関数はどういう風に定義するのがいいのかな」 / Twitter
画力・博士号さんはTwitterを使っています 「@mod_poppo “特定の識別子(或いはそれをモジュールでくるんだもの)だけ最初から型環境に入っている” という方式が自然な気がします」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn その「型環境に入れる」のをメタ言語のコードとしていちいち書いていると面倒だなあと思っているのです」 / Twitter
画力・博士号さんはTwitterを使っています 「@mod_poppo どうしても “オブジェクト言語で書けるように外部化したい” 場合は external "foo" のような構文をオブジェクト言語に加えて「この識別子はターゲット言語の "foo" にコンパイルする」というFFIを与える方法はある気がします(拙作のSesterlでも似たことをやっています: https://t.co/QIjF0Axeus )」 / Twitter
Sesterl/list.sest at 6e61703a1090c6b65d3ecf111f682cfc8ab945e4 · gfngfn/Sesterl
だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn やはりそうなりますか。ありがとうございます」 / Twitter
El Pin AlさんはTwitterを使っています 「こういうの、メタ言語が多段階計算をサポートしていれば解決できそうだと思ったりもします」 / Twitter

マクロ

Scheme 入門 15. 構文の定義
Rustは構文解析をしてからマクロを展開する - 簡潔なQ
talk.key - JSSST2016_slides.pdf
Weird Languages
Keigo ImaiさんはTwitterを使っています 「マクロでリフレクションの話。 [Chiba, OOPSLA'95], [Tatsubori, OORaSE'99]」 / Twitter
Keigo ImaiさんはTwitterを使っています 「Java 触ってて javassist-*.jar みたいなファイル名は昔からチラチラ目にしていたけど、それがプログラミング言語研究から出ているのを知ったのはわりと最近だったかもしれない」 / Twitter

Keigo ImaiさんはTwitterを使っています 「Multi-stage Programming in the Large with Staged Classes https://t.co/op1s9KaDtm Scala のメタプログラミングライブラリ Squid の staged class 拡張. メタプログラミングで Programming in Large. SQL の DDL からクラス群を生成し、さらにSELECT文から効率のよいクエリを生成する(ポスターより」 / Twitter
Multi-stage Programming in the Large with Staged Classes (GPCE 2020 - - 19th International Conference on Generative Programming: Concepts & Experiences) - GPCE 2020
Keigo ImaiさんはTwitterを使っています 「https://t.co/Z4Lr7ehvb6 まだ Github にこの拡張は来ていないということだったと思う」 / Twitter
epfldata/squid: Squid – type-safe metaprogramming and compilation framework for Scala
Keigo ImaiさんはTwitterを使っています 「C++メタプログラミングは沢山使われているのにマルチステージプログラミングは研究以外で使われないよね…→ Staged Classes! という流れがよかった」 / Twitter
κeenさんはTwitterを使っています 「Scalaで多段階計算でクエリからC吐くやつの関連か?って思ったけどこれはSQLからScalaだから方向逆か」 / Twitter
κeenさんはTwitterを使っています 「自分が言ってるのはこれね https://t.co/gnRmfs2C6S」 / Twitter
Building efficient query engines in a high-level language | Proceedings of the VLDB Endowment

パターンマッチとガード

fold

帰国RTAさんはTwitterを使っています 「パターンマッチと関数型言語なんも関係なくないですか?(単純に構造化されたデータをスッとケース分けできる機能としてパターンマッチが欲しい)」 / Twitter
帰国RTAさんはTwitterを使っています 「ケース分けが本質かと言われると微妙で、変数に束縛もして欲しいので、「ケース分けしたうえで内部のデータをすぐに取り出すまでセットになった構文が欲しい」に集約されそう」 / Twitter
kisaragiさんはTwitterを使っています 「@Kory__3 structual binding」 / Twitter
帰国RTAさんはTwitterを使っています 「@ksrg_tech ネストした構造へのパターンマッチは例えばKotlinのwhen-is分岐とstructural bindingではそのままは実現できないはずです(ネストが深くなればなるほど分岐のネストが深くなってしまう)」 / Twitter
ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 https://t.co/g1eSFrFOch 関係ないと思うけど、より向いてるかなとは感じてる」 / Twitter
ABAB↑↓BAさんはTwitterを使っています 「つまり関数型プログラミング言語かどうかよりも再帰が最適化されるかどうか? だけど関数内に副作用の無いほうが好ましいので、関数型プログラミング向きの機能ではあるのかな」 / Twitter
帰国RTAさんはTwitterを使っています 「@ababupdownba ん~、再帰と組み合わせるのはパターンマッチの応用例の一つであるだけで、そこにパターンマッチは必要無いと思うんですよね(実際データ型側にfoldさえあれば等価なコードは書けるわけですし…) 単に直和型のデータを操作するための構文だと思っています」 / Twitter
ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 foldって再帰前提だと思ってた()」 / Twitter
帰国RTAさんはTwitterを使っています 「@ababupdownba そんなことは全くないです(例: scala.Option#fold)」 / Twitter
ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 なるほど確かに。 まあ再帰しないとパターンマッチ全然使えないよとは思ってないすけども 応用例というよりは基本例くらいの恩恵何じゃないかなかくらいの感覚でした」 / Twitter
はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@Kory__3 私の中では、「代数的データ型」と「パターンマッチ」が対の概念なのかな、というイメージになってきました。」 / Twitter

ADT + 素直にパターンマッチの方が…

Kota Mizushima (on a diet)さんはTwitterを使っています 「クラスベースOOPLであることと、多重ディスパッチがないことも実のところ関係ない。たとえば、199xに出たNice https://t.co/XuA9162vj1 はクラスベースかつ多重ディスパッチ(マルチメソッド)を持った言語。」 / Twitter
The Nice programming language
Kota Mizushima (on a diet)さんはTwitterを使っています 「そんなこんなで、Expression Problem解決出来る言語機構に憧れたり試してみたりしたけど、これ、ADT + 素直にパターンマッチの方がよほどメンテ楽だしいいんじゃね?←イマココ という心情です。なんか、The real expression problemみたいな感じで、新しく面白そうな例が出てくるといいんかもですが。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、NiceのASTのルートクラスはこんなんです。buildScopeとかresolveScopingとかtypeResolve()とかなんか、処理系のフェーズぽいものがASTに生えてる。 でもって、式のルートクラスである(はず)https://t.co/70TSmCRCQx 見ると、void computeType();とか生えてる。 ↓ https://t.co/0LvUvyzx48」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「規模の大きな処理系でInterpreterパターンやられるとめっちゃ読みにくくなる&(たぶん)メンテもめちゃくちゃ大変というパターン。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、Interpreterパターン使ったそれなりに大きな言語(処理系)の一つがNiceで、構文木ノードに compileとかいうメソッド生えてるので滅茶苦茶読みにくかった(興味がある人は、https://t.co/yn63oJU5wQ からソースダウンロードして、 src/gnu/expr/* 辺り読んでみるといいです)。 ↓」 / Twitter
The Nice programming language
Kota Mizushima (on a diet)さんはTwitterを使っています 「あ、ちょいミスです。 src/bossa/syntax/*.nice の方です(src/gnu/expr/* の方は、中間表現の方だったぽい)。構文木にそれはもう色々な処理が書かれてて、ぐんにょりでした」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「たぶん、10年以上前に、Niceのソースコードに興味を持って読んだ覚えがあるんだけど、その時も、compile処理が各構文木ノードに散逸しているのに嫌気がさして、「拡張性があればいいというものではないんだな」と思った記憶。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、知る限り、Scalaは比較的早期から、Expression Problem「も」解決出来るような言語として開発されていたけど、e.g. https://t.co/0knLtm2MmC じゃあ、abstract typeがこういう用途に使われているかというと、多くのケースでtype alias代わりにしか使われてない。」 / Twitter
Independently Extensible Solutions to the Expression Problem - IC_TECH_REPORT_200433.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「Expression Problemは、かなり前から何度となく関連する記事、実装、論文とか見た覚えがあるんだけど、一方で、Expression Problemを解決できる言語機構って意外にも活用されてない(たとえば、Scalaにおける https://t.co/G9W2uZ68YB とか)の見るに、現実的にはあんまし要らない気がしてる。 ↓」 / Twitter
Scalaによる Expression Problemの解決 (Visitor編) - kmizuの日記
Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、言語処理系を構成する2大パターン(?)のInterpreterとVisitorの内、(経験上)後者が圧倒的なのも、処理系のフェーズを追加したいことはあっても(たとえば、ある種の最適化)、ASTの種類を外から追加出来てもしょーじき微妙ってところに由来してるんじゃないかと思ったりする。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「現実にASTを追加したいって要求って、言語仕様拡張したいってタイミングがほとんどなわけで、処理系の都合で最適化をかけたいって要求に比べれば圧倒的に少なそうとおもう。」 / Twitter

タプルとパターンマッチ

Aruneko@OSC21doさんはTwitterを使っています 「React Hooks の返り値ってどうして配列になってるんだろう🤔」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「型さえ合ってれば名前は何でも良いよねっていう思想なんだろうかね」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「いやでもあれじゃん、TSってタプルのサポートが微妙だからアンパックするときに事故起こる可能性もあるじゃん。」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「タプルとパターンマッチが使える言語ならアレで全然いいと思うんだけど」 / Twitter

でこれきさんはTwitterを使っています 「Standard MLのrefは参照の同一性いなるのか - ref 1 = ref 1; val it = false : bool - let val x = ref 0 in x = x end; val it = true : bool」 / Twitter
でこれきさんはTwitterを使っています 「同一性に」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
mod_poppoさんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
ytakanoさんはTwitterを使っています 「パターンマッチ、過去に自作の多相型言語に実装してみたけれど、参考資料がまったく無くて、バックトラッキングで実装したなあ。 https://t.co/M0eJtwAh52」 / Twitter
BLisp: Lispっぽい静的型付け言語
パターンマッチの網羅性検査
コンパイル技法: パターンマッチ
mod_poppoさんはTwitterを使っています 「前半部分はn月刊ラムダノートのやつの再掲ということだけど、当該n月刊ラムダノートを積んだまま読んでいなかったという事実を突きつけられている」 / Twitter
mod_poppoさんはTwitterを使っています 「04より &gt; SMLでは、SundayやMondayのように、コンストラクタの先頭を大文字にします。 SMLの文法には(Haskellと異なり)そういう制約はない。あるとしたらせいぜい「慣習」あるいは「ローカルルール」」 / Twitter
mod_poppoさんはTwitterを使っています 「04節、printPathnameの2回目の定義のDirectory (name, entries)の周囲の括弧が抜けている。」 / Twitter
mod_poppoさんはTwitterを使っています 「05節より &gt; いま、以下のようなSMLの式を考えます。 &gt; case x of &gt; Empty =&gt; 0 + 1 &gt; Full _ =&gt; 1 + 1 Fullの前の | が抜けている」 / Twitter
mod_poppoさんはTwitterを使っています 「08節 enumのコンパイル結果のWHITEの定義の右辺の " が閉じられていない。 recordの例のEmpty()の後のinterfaceはimplementsの間違い?」 / Twitter
mod_poppoさんはTwitterを使っています 「後半は後で読む」 / Twitter
mod_poppoさんはTwitterを使っています 「11節、 ・「式のデータ表現」ではboolを大文字始まりTrue | Falseとしているがそれ以後は小文字? ・「式のデータ表現」xorの例に(True, True)が2回出現して(False, False)が抜けている ・s/descriminant/discriminant/g ・「上記で登場した、」の段落、「れに対応した〜」→「こ」か「そ」が抜けてる」 / Twitter
mod_poppoさんはTwitterを使っています 「14節、caseのコンパイル。condの計算のコンパイル後の(switch言語の)コード、other := tmpはother := condのことか?」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「pattern synonyms や view patterns でも足りなくて第一級パターンがほしくなって Template Haskell に手を出してるし、もういっそ Racket という気分すらある」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「局所的なパターンマッチだけでプログラミングされる機械としての Turing 機械」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLではdatatypeとsharingを使うことによって矛盾するsignature(いかなるstructureにも当てはまらないsignature)を作れるけど、矛盾したdatatypeに対するパターンマッチはどうなるのか確認してみた https://t.co/Y0ICZZpZ3U」 / Twitter
mod_poppoさんはTwitterを使っています 「MLton: 警告なし、SML/NJ: redundantでエラー、HaMLet: redundantで警告、Poly/ML: redundantで警告」 / Twitter
mod_poppoさんはTwitterを使っています 「SML#はHomebrewでのビルドエラーの確認のために消したんだった……と思ったけどその問題は自前で修正したんだった。SML#は矛盾したsignature自体に対してエラーを出すらしい」 / Twitter
mod_poppoさんはTwitterを使っています 「パターンマッチをちゃんとコンパイルする時にこういうやつの扱いをどうするべきか考えたいんだけど矛盾したsignatureを受け取るfunctorという時点でunreachableだからコード生成しなくていいな?」 / Twitter
mod_poppoさんはTwitterを使っています 「自作SML処理系のパターンマッチ、真面目にやるならどうするのがいいのかな。現状のターゲットであるLuaにはgotoはあるがswitchはない(他のターゲットでは逆かもしれない)。Successor MLもサポートするならor patternやguardもある。exceptionのマッチはswitchは意味なくてifの羅列でやるしかないか?」 / Twitter
mod_poppoさんはTwitterを使っています 「第7節:JavaScriptでパターンマッチするライブラリーがあるのか……。あと、パターンマッチは「マッチさせる式」と「パターン」「マッチした場合の処理」の3つの構成要素があると思うんだけど、それも二項演算として解釈するのか」 / Twitter

Lazy K

Lazy K - Wikipedia
Church encoding - Wikipedia
Lazyk
cormoran's note - Lazy K 〜インタープリタの導入〜  (Mac)
cormoran's note - LazyK HelloWorldを目指す
λ計算から始める Lazy K

高階関数

Kota Mizushima (on a diet)さんはTwitterを使っています 「私の知る限りでは、引数/返り値の両方を含めるのが標準的かなと思います。cf. https://t.co/QZenBn3RGI し、そもそも、引数で関数を受け取るもののみをそう呼ぶのは非対象ですし。 ↓」 / Twitter
Higher-order function - Wikipedia
がくぞさんはTwitterを使っています 「逆に後者を含めずに引数にだけ限定して呼ぶ流派があることにびっくりしました。どこかでそういう定義がされてたりするんでしょうかね? 自分の観測範囲だと後者も含めた定義しか見たことなかったので新鮮ですねー」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「業務で高階関数の話をしていて、関数を引数に受け取る関数だけでなく関数を返す関数のことを高階関数と呼ぶ流派があることにしぬほどびっくりした。しかもWikipediaやそれ以外の複数の情報源にそう書いてあるんだ(?)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あえて、引数に限定した「定義」をしてもいいのですが、高階関数でのメリットや、その時のみ発生する問題を論じる上であんまりメリットがない気がします。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、そもそも、カリー化というテクニックが、 (A, B) -&gt; C ==&gt; A -&gt; (B -&gt; C) に変換するといった感じで、基本的には「返り値が関数になる」という意味での高階関数を利用しているので、これを含めないとしたら、議論がややこしくなる気も。」 / Twitter
なたがわさんはTwitterを使っています 「@_marony 少なくとも単純型付ラムダ計算の文脈では陽に定義があって (https://t.co/YjgNFvmaaE) それなりに意味のある値なんですが、(少なくともこのあたりの分野では) これが2以上であることを higher-order と呼びます。」 / Twitter
Simply typed lambda calculus - Wikipedia
Kota Mizushima (on a diet)さんはTwitterを使っています 「なるほど。単純型付きラムダ計算(とその拡張)でorderの定義が、 https://t.co/gfkk4bKKoW なのは以前見た気がした。ただ、K山先生の講義資料にも https://t.co/S4qyDc7soS "および、返り値が関数である関数*1を総称して" とあるし、論文で高階関数を扱うときは両者を総称する事が多い気が。」 / Twitter
Simply typed lambda calculus - Wikipedia
7.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「(おそらく)狭義には、(A -&gt; B) - &gt;C のような形のみを高階関数と言うらしい(?)。K山先生とかはその辺り知らないわけではないにも、A -&gt; (B -&gt; C)みたいなのも高階関数と説明してるのは、学部生への便宜上なのか、慣用法として既にどっちも高階関数になってるのか。どうなんだろう。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、高階関数のある言語である種の検査が難しくなる、という時に、返り値に関数が出てくるケースも想定しているような気がするんだけど、勘違いしてたりするだろうか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「CSにおける高階関数ってどの辺りが初出なのかなあと調べてたけど、とりあえず1972の論文では"higher-order function"が「普通に」出てくるな。 https://t.co/Yqy3WQufzC それ以前でも出てくるけど、数学関係の論文が多い感じが。数学における"higher-order function"を調べた方がいい?」 / Twitter
Definitional interpreters for higher-order programming languages | Proceedings of the ACM annual conference - Volume 2

モノイドや半群の概念

モノイドや半群の概念

がくぞさんはTwitterを使っています 「あなたの書いたそのコード、加算で説明できますよ!的なやつエンタメコンテンツとして成り立たないかな?」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz チューリング完全みたいな話?」 / Twitter
がくぞさんはTwitterを使っています 「@nagise そこまで行かねども多くの操作が半群やモノイド操作で表現できちゃうよーみたいな紹介ですね https://t.co/bw0PDYPNwi」 / Twitter
がくぞさんはTwitterを使っています 「ぎょむに自分の手で書く範囲だとだいたい群とか環とか体っぽい概念で整理できちゃうから四則演算だけと言われても、それはそうってなっちゃう……なんならほぼ加算だけまである……モナディックな合成も加算やろみたいな」 / Twitter
きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz ぎょむコードで代数的データ型は定義してもそこに代数的構造を見つけられたことがないのですが、例えばどんな代数的データ型に構造を付けられますか?」 / Twitter
がくぞさんはTwitterを使っています 「@curelemonade2 モナディックな合成もリストの変換も文字列の結合も全部加算やろ的な雑なアレです」 / Twitter
きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz IO { println("なるほど") }」 / Twitter
きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz 例えば動画のエンコード状態を wait / running / success / feiler みたいに定義したとして、こういうのに当てはまる代数的構造ってあるのでしょうか?」 / Twitter
がくぞさんはTwitterを使っています 「@curelemonade2 基本的に群とか環とかは集合と演算の組なので、エンコード状態を集合とした時にどういう操作に対して構造を求めるのかみたいな話ですかね? 状態に対しての操作というのがあまりイメージつかないので何ともですが……」 / Twitter
きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz んー。例えばエンコードの状態はwait -&gt; runnnig, running -&gt; success, running -&gt; feiler に しか操作できないとかですかね?代数的構造というよりグラフ構造?なんですかね」 / Twitter
がくぞさんはTwitterを使っています 「@curelemonade2 すみません、ちょっときゅあれもねーどさんが求めてる事を僕が掴めてない感じっぽいです……」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz 現実には「うるせー!」って殴られるやつだw」 / Twitter
がくぞさんはTwitterを使っています 「@nagise そうそうwなので雑学的なエンタメ方向ですね。 (実際的にはHadoop/MapReduceを上手く使えるようになるとかあったりしますが)」 / Twitter

${jndi:ldap://ytakano.com}さんはTwitterを使っています 「リストが自由モノイドで、リストに合同関係を定義したのが表示にあるモノイドか。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「同値類の集合が商集合というのすぐ忘れるな。なんで商なんだ。」 / Twitter
ytakanoさんはTwitterを使っています 「リストは自由モノイドで、状態機械は有限集合に対する自由モノイドの作用。なるほどとも思うが、だから何だという感もある。」 / Twitter
がくぞさんはTwitterを使っています 「Scala使うのに無理にFPごりごりに倒す必要は無いよね。 それはそれとしてFPとか関係なくモノイドや半群の概念とかを把握しているとJavaでもKotlinでもRubyでもPythonでもPHPでもTypeScriptでも他の言語でも楽に書ける処理が増えたりするよ」 / Twitter
がくぞさんはTwitterを使っています 「具体的に言うとこういう応用が効くようになるよ https://t.co/qX7prYqVlO」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「知っていると「あっ、これ...!」ってなる瞬間あるよね。SemigroupやMonoidこそデザインパターンじゃなかろうか &gt;RT」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「本当にものすごく的確にMonoidの性質を応用した例としてはこれが面白かった。結合則を満たすから並列に実行した結果をどの順番で足し算しても問題ないように計算を分割していく例 https://t.co/idYRlXihsP」 / Twitter
Beating C with 80 lines of Haskell: wc
がくぞさんはTwitterを使っています 「この例だと入力がフラットなだけじゃなく順序に強い制約があるので、確かにスタック積んでループ回す方が読みやすいかもですね ただ、foldMap知ってるとこちら問題 https://t.co/82uH6jn6M5 も全く同じ構造の問題として捉える事ができて同様にして解けるんですよね https://t.co/ouoDVWDsXK なので(続」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#JavaScript こういうフラットな配列から木構造を作るのってどうやったらいいんだろう? https://t.co/upGEJK5Wxi」 / Twitter
NAKAMURA AtsushiさんはTwitterを使っています 「ひどいLINQコードを書いてしまった。 でも、できるだけイミュータブルにしようとするとこうせざるを得ない。元のデータが悪いんだよなあ。 https://t.co/xVh9QdGckc」 / Twitter
https://twitter.com/matarillo/status/1302048512771645440 フラットなデータ集合からネストしたグルーピングするのに foldMap が便利だよというお話
がくぞさんはTwitterを使っています 「なので問題を見て進○ゼミでやったところだ!的に簡単に解ける問題だと認識が広がるのでお勧めですよ的な事が言いたかった感じですね。 副次的効果として入力の列が長い場合に並列化して実行効率があげられたりしますし(入力列が短いと単純にループした方が効率いい場合多いでしょうが)」 / Twitter
がくぞさんはTwitterを使っています 「最近Foldable/Traversableが(僕のTLで)話題になりましたが、これも典型的な foldMap で楽に書ける問題ですね。残念ながらTSだと標準で foldMap 無いので map().reduce() で代替してますが発想は同じです https://t.co/SdOOVIeT2m」 / Twitter
TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
がくぞさんはTwitterを使っています 「不要なchildrenは除去する必要がありましたね https://t.co/jOrEFmeXKT」 / Twitter
TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
がくぞさんはTwitterを使っています 「https://t.co/xlu8HMF5Wx」 / Twitter
まろ@関数型言語作曲機械学習勉強してないさんはTwitterを使っています 「関数言語が得意な人は本当にこの木構造のレベル合わせるTypeScriptのコードが読みやすい(コードの綺麗汚いではなくすんなり頭に入る)のですか? 読めるけどmap, fold(reduce)よりもループと再帰で書いた方がわかりやすくないですか?」 / Twitter
がくぞさんはTwitterを使っています 「なるほどmergeSortを二項演算としてモノイドを定義できるのか https://t.co/zTaHMyoF5e」 / Twitter
Monoidal Sorting
taklさんはTwitterを使っています 「業務システム開発では四則演算しか使わないということは、業務システムは体として抽象化できるのでは。」 / Twitter
mod_poppoさんはTwitterを使っています 「モノイドとしてのmin/maxの話はこっちに書いた https://t.co/If7llOfCfG」 / Twitter
Haskellerのためのモノイド完全ガイド | 雑記帳
ytakanoさんはTwitterを使っています 「今日は、モノイド準同形をやった。」 / Twitter
がくぞさんはTwitterを使っています 「これは自分も最初に仕様を知った時は戸惑ったものですねー JavaScriptに限らず大抵の言語ではこの仕様ですが。 Math.max()が-Infinityを返すのと同様に、every等もFoldableの関数の典型例で、foldMapで実装できる事を把握すると自然に思えてくるのですよね。やはり皆Monoidを知ると便利なのでお勧め」 / Twitter
こーじ@何かを1日1褒めさんはTwitterを使っています 「JavaScript嫌いやわぁ。。。 こんなんだからTypeScriptも嫌いなんだよ。。。 https://t.co/IseczPlK8D」 / Twitter
がくぞさんはTwitterを使っています 「minやmaxも典型的なFoldableの関数で、MonoidとfoldMapで実装できる事を把握してると、空引数のときにInfinityや-Infinityが返る事も自然に思えるよね」 / Twitter
がくぞさんはTwitterを使っています 「https://t.co/sVRipKNtin」 / Twitter
がくぞさんはTwitterを使っています 「沢山の要素がある集まりから - 合計を求めたり - 件数を数えたり - 最大値/最小値を求めたり - グルーピングしたり するのを全部同じ処理でできるようになるし、何ならそれらを組み合わせて合計と最大値とグルーピングを同時に求める、みたいな事も簡単になるのでモノイドはいいぞ」 / Twitter
がくぞさんはTwitterを使っています 「ReaderもStateもContも実体は全部Function1みたいな」 / Twitter

集合論

Shinji KonoさんはTwitterを使っています 「ブール値に値を持つ論理の代わりにトポスに値を持つ集合論とか書いてたが、トポスはSubobject classifierで論理値を決めるので、結局はその問題になるはず。CCCで良いやんと思うと∨がある場合(biproduct)は命題論理以外は矛盾してしまう。なので工夫が必要らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CCCはGraphで力尽きてて、biproductの矛盾まではやってなかった。CCCと演繹定理はクライスリ圏を使うのだけやるべきだった。圏の圏はAgdaだとレベルの問題が出るってのを発見したのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Toposもやるべきだな。Osius先生の集合論とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はチコノフもやってみたい。選択公理やりまくったし、チコノフは選択公理と同値なので面白いだろう。基底の存在が選択公理と同値とかもできそうではある。HODな集合論が手に入ったのでいろいろできる。と言っても、色々残ってるのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「残してるのは、濃度を定義する時のベルンシュタイン。ℵが冪集合で上がるやつ。Generic Filter。それから強制法だが… Toposの方が良さそう。聞き逃したの残念だったな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合とはなんですかという質問に対して今は割と明確に答えられる。無限のモデルとして自然数を二次元にした順序数が考えられる。この部分集合を集合だとしたい。でも、それでは集合が循環論法になってしまう。そこで順序数方程式(OD)を考える。その解のうち最大値を持つもの(HOD)を集合と定義する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODの要素は順序数で集合(HOD)ではないが、HODはゲーデル数的に順序数に対応すると考えられる。簡単のためにこれを仮定すると、集合を要素に持つ集合を定義できる。順序数がメモリで、そのアドレスが個々の集合。つまりCの*と&amp;のように集合と順序数の対応がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この時に集合HODは順序数としての順序を持つが、順序数と違って全順序にはならない。これは古典論理的には矛盾してるが直観主義論理ならば整合する。集合には∈からでる自明な順序があるが、それを対応する順序数の大小から導出することはできない。∈ならば順序数の順序はそれに従う必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つまりHODは自明な順序を持つので整列定理は成り立っているが、排中律がない状況では、それを選択公理(この場合は空でなければ要素が取れる)に対応させることはできないというわけ。排中律があれば選択公理=整列定理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「実際に反例を構築するためには選択公理を否定したモデルを構築する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値を持たない順序数方程式の解はProper class、つまり集合ではない集りになる。順序数は自分自身を含むので、それを集合Sとすると、class全体はその中で集合になる。もちろんSは、そのclassには含まれない。つまり、Sはclassの中にない集合ということになる。out of memoryだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、順序数を含むHOD(可算順序数を考えれば具体的構成できる)をモデルとする集合論がある。これはHODでは順序数が自身を含むことから自明。古典集合論だと割と面倒な条件になる。Sの要素の冪集合がSに含まれるとか正則だとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「VとLはHOD内で超限帰納法を用いて定義できるが、Lは定義可能集合を冪集合の部分集合として与える必要がある。ODは定義可能なのだが、そのうちのad-hocな定義可能集合があるとする感じ。いやODだろとするとV=Lとなる。 https://t.co/YIn5bE5luE」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b VL.agda
Shinji KonoさんはTwitterを使っています 「実際にV≠Lな集合論のモデルを作るためには整合的な Df : Definitions → (x : HOD) → HOD Df D x = Power x ∩ Definition D x を具体的に作る必要がある。元の順序数が非可算だとできないらしいんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODに最大値が必要な理由は「集合は階層的な無限を構成してほしい」というのと「集合を要素とする集合」を定義したからだな。最大値のないODが集合の要素になると階層的な無限にならない。冬のプロシンではそこまで気が付いてなかった。なので、そこに突っ込まれると面白かった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値がないとすると矛盾になるので超気まずい。数学者がいたら確実につっこまれたと思われる。まだ、間違いがある可能性もある。ODに全順序があると思ってた時期もあって、それだとODは順序数になってしまう。だいたい一週間くらいでリカバリしてるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値があるというHODの定義は古典集合論の HOD = { x | TC x ⊆ OD } とは異なる。なので違う名前の方が良いだろうな。おそらく同じものだが。 TCは推移閉包。古典集合論だとxは集合なので意味がある。うちの場合だと自明であまり意味がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「たぶん、bounded OD」 / Twitter
Shinji KonoさんはTwitterを使っています 「ClassがBoundedなら集合だってのはどっかにあったような。ZFでの集合は公理から生成されるものなのでBoundedなはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Classの定義は「単なる論理式」ってことらしい。でも、ほとんど集合と同じように使えるので共通のシンタックスを使うのでややこしくなってる。Agdaの場合はODとHODなので明解。型が違うって良いよね。V αが集合でVはOD。」 / Twitter
Shinji KonoさんはTwitterを使っています 「古典集合論だとなんかclass(条件)持ってきて「集合とは限らない」とかやるのでいらっとする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFの公理は導出できるので、集合論の別公理ってことね。ブール値モデルとかToposだと公理化はしないみたいなんだけど。なんでかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序が準同型になるってのは古典論理ではなくて、直観主義論理だから可能。もちろん、これは圏論的な概念だな。なんかそういう名前があるんだろうか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエンモデルでは順序を持つ可算モデルから、順序を持たない可算モデルを生成してるので、そんなもんらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルは直観主義論理は知ってたのかな。40年くらい差があるのか。知っていておかしくない。この頃はまだ記号論理は確立されてないが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルの晩年にはラッセルホワイトヘッドのあれが出てたのだが、ラッセルに会うことはできなかったのか。ラッセルは集合論を救った人なので会いたかったろうな。ただ、ラッセルの多層型理論は複雑。でも、まぁ、だいたい今のAgdaと同じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントールの生涯は英語版と日本語版では量が全然違う。クロネッカーがカントールをネチネチいじめた的に書いてあるが… クロネッカーは構成主義的な立場だったらしい。カントールはむしろ非構成的な数学の重要性を確立した人なんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODとODは、もちろん同時に知ったのだがHODがさっぱりわからなくて。Bounded ODだとわかったのは今年になってから。推移閉包とBoundedの関係はなんか書けるとは思うが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序の準同型っていう言い方はおかしいよな。AからBは順序が保存するが、逆は決定できない。なので半準同型みたいな感じ。」 / Twitter

データフロー指向

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「個人的には記法の問題だと思う。テキストで制御構造を「上から下に流れる」「インデントでネスト構造」の表現力と比較可能なレベルで、データフローのグラフ構造を表現可能な記法がない。図法だとスケールしない。テキストだとグラフの接続関係を把握できない。(ああわが青春のPARTS Workbench https://t.co/d5WzhDxH2C」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
Miura HidekiさんはTwitterを使っています 「@tomooda たしかに。木構造以上の複雑なグラフ構造をテキストで表現するの急に難易度が上がりますよね」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 プログラムで扱う時にも木構造からDAGで一気に難易度が上がるので、単純にニンゲンの脳ミソの特性というだけでなく、やはり木とDAGでは問題そのものの難易度に本質的な差があるんじゃないかなーと思います。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 制約プログラミングになると依存関係がDAGに収まらないのでちょっと難しくなります。ただドメインに合うとむしろ可読性が上がるわけで、例えばiOSのGUIレイアウトに使われているAutolayoutはDeltablue以来の歴史を持つ制約解消系の実用例です。」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 識者じゃないし、答えでもないけど、関数型言語ってある意味データフロー指向のようにも思えますが、そういうのじゃないんですね!? (データフローコンピュータが何故あまり一般化…というと、また別の回答になると思いますが)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@nfunato たしかに。このあたりは定義がはっきりしないのですが、引数が非同期に決まってくるってのが暗黙の条件に入るのかなって思っています。そうすると、Haskellが微妙です。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 最近FRPをやっている経験からは、ドメインを上手く限定すれば、テキストでも図式でもDAGに収まっている限りはそれほど難しくはならない気がします。そうでなければMatlab/Simulinkなんてこんなに使われていません。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @nfunato 関数リアクティブプログラミング(FRP)はデータフロープログラミングの再来みたいなものですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo @nfunato FRPはあまり知らなかったのですが、調べてみたら確かにデータフロープログラミングですね。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 Elixirは実質的にデータフロー指向の言語だと思っています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 そしてこの性質によりSIMDアーキテクチャによる最適化が抜群に効きます。」 / Twitter

OCamlのlet recの変数の再帰使用の制限

kinabaさんはTwitterを使っています 「POPL'21論文リスト見てる。OCamlのlet recの変数の再帰使用の制限を以前までのad-hocな規則じゃなくて、型システム的にちゃんと定めるというの言われてみればなるほどだけどそりゃこうあるべきだなあ、と面白かった。 https://t.co/sp1vgdOPB3」 / Twitter
A Practical Mode System for Recursive Definitions (POPL 2021 - Research Papers) - POPL 2021
kinabaさんはTwitterを使っています 「以前の規則 https://t.co/2ze6KCnKrJ 見てても、まあそりゃそんなもんかーと思って深く考えてなかったもんなあ自分」 / Twitter
Chapter 7  Language extensions

Haskell

多相関数のデバッグ

いろはす∈ますらばさんはTwitterを使っています 「「Haskellの関数は副作用がないからデバッグしやすい」っていう人がいるんだけど,どうやったらその境地に達せられるのかが分からない・・・ printfデバッグするのに関数のシグネチャいじらなきゃいけないとかマジで無理なんだが」 / Twitter
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debag.Trace.trace を使えばシグネチャーを変えずに print デバッグができます https://t.co/f2yFF9EqAv」 / Twitter
Debug.Trace
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debug.Trace モジュールは base パッケージに入っているので追加パッケージのインストールなしに使えますよ👍」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの多相関数のprintfデバッグが辛い問題は最近出た https://t.co/bfQ3PWScgJ が一つの解決策にならないかな(まだ試してない)」 / Twitter
recover-rtti: Recover run-time type information from the GHC heap
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell でのデバッグ手法あれこれ https://t.co/6kjw7gQ9XT の内容を改訂しようとしてるけどdebugパッケージが依存の関係でそのままだとGHC 8.10で動かないな。Hoedをgitリポジトリから引っ張ってくれば動きそう」 / Twitter
Haskell でのデバッグ手法あれこれ | 雑記帳
だめぽラボ@技術書典9さんはTwitterを使っています 「動いたのはいいけど、ローカル変数が見えなくなってる……」 / Twitter

orkronさんはTwitterを使っています 「Haskellアロー記法の図はストリング図だった? 改めて見るとモノイド圏(デカルト圏)に見える。 https://t.co/dTQNRmGo2n https://t.co/eOAHg66wit」 / Twitter
Arrow syntax
orkronさんはTwitterを使っています 「以前に見かけたときは良く分からなかったけど、 今ならこれらの記事の意味が理解できそうだ。 https://t.co/1fgte423nr」 / Twitter
Haskell カテゴリーの記事一覧 - PS
みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)🎯さんはTwitterを使っています 「Haskellちゃんは強い静的型付けとか純粋な関数とかでがんばった努力をガバガバな例外処理が全部台無しにするところが好き(きらい)」 / Twitter
lotzさんはTwitterを使っています 「2021年こそ Haskell を始めてみようという人! 日本語のチュートリアルがたくさん集まっている便利なWebサイトがありますよー https://t.co/iPWK35wR5b でも環境構築が面倒くさいーという人! このリンクを開けばオンラインのREPLですぐに書き始めることができますよー https://t.co/M7EX5Nmisu」 / Twitter
Haskell入門 | haskell
Repl.it - Haskell Online Compiler & Interpreter
lotzさんはTwitterを使っています 「型推論、型クラス、Lens組み合わせると最強で、ただのJSON文字列に対してまるでちゃんとしたデータ構造かのように(実際中ではそう)アクセスできるし、ネストしててもJSON文字列のまま中身を更新したりできる #Haskell https://t.co/PfXkFj7yYO」 / Twitter
lotzさんはTwitterを使っています 「https://t.co/yQsLnw0zM4」 / Twitter
Lens.Micro.Aeson
電波猫さんはTwitterを使っています 「リスト型やオプション型のようなものが作れる言語の中で、モナド則が成り立たないと困る言語がHaskellくらいしか思い浮かばなくて、モナドってプログラミングに必要なんだろうかという思いは強くなる。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「副作用のある計算」を扱うのに専用の型(IO)が必要なのがHaskellくらいしかないからなあ」 / Twitter
トデス子'\さんはTwitterを使っています 「モナドはエラー処理に役立つが、その用途には?で充分だったという説が出てきてしまった。」 / Twitter
トデス子'\さんはTwitterを使っています 「さまざまな制御構造を汎用的に扱える単一の仕組み vs エラーと非同期処理だけあれば困らなくないっすか で後者を選ぶ言語が多い印象……」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)なんでモナドでいいのに、わざわざ汎用性を減らした?が必要なんですか?僕はいぶかしんだ・・・。」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「エラー処理もモナドだったら、async/awaitもモナドのフレームワークで済んでたはずだ(知らんけど)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「うーん、でもまあ、なんか型の表現力が全然足らん気がするし、そういうのが満足にできるような型システムと、ライフタイムがちゃんとかみ合うのかどうかとか、だいぶ型システムのチャレンジングなチャレンジな気がしてきたな(´・_・`)・・・。」 / Twitter
エヌユルさんはTwitterを使っています 「Monadが良い理由の一つとして 言語の標準ライブラリにあってみんなこれを使っているのでこれに対応すればMonadを実装してる型全てに対応出来るというのがあるので 「この言語でも工夫すればMonadが定義できてこのライブラリに実装が…」 とかは微妙 Scalaz Catsぐらい徹底的にやってるなら良さげ」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「Free MonadというかEffを多用した場合の知見として、DSL自体をかなり上手に設計しないと、あるいはInterpreter側に主要ロジックが寄ってしまうと、まずテスト用Interpreter作るの自体がダルいし、それでテストしても本当に効果的なテストになっているのかが謎、」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「という状態に陥る可能性があると思うのですが、同じような問題意識や、解決(改善)案を持っている人・・・🤔 まぁその問題があっても、べつに使う効果がないわけではないが、Interpreterを超柔軟に自由に切替可能は原理的にはそうなのだが、ん〜」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「この辺の問題意識はあって、Freerとか命令セットしか記述しないから解釈がマジで定まらないのはそれはそうなので、interpreterを適切にパラメータ化するしかテストする方法無いよなぁみたいな気持ちはある」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「これはinterpreterのテストになりそうだけど、DSLをテストすると言った時は何を確認したいんでしょうか(問題意識がズレてる可能性がある)」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「別にモナドは純粋関数型言語でなくてもメリットありますよ デザインパターンなんで」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「モナドはデザインパターンなのでまず便利だし、デザインパターン上の抽象(F[_]: Monad)を許すのでさらに便利」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「まぁ後者は言語によりそう 前者だけできる言語はいっぱいありそう」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「モナド、言語が厚くサポートしてるから便利なのであってそうでない言語に無理やりモナド持ち込んでも別に美味しくないって誰か言ってたね」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「Haskellヤクザが言ってた」 / Twitter
らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp そういえば、 C#にはクエリ式というのがあって、 微妙にモナドの恩恵を受けられたりする。」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 あれはモナドと呼んで良いんだろうか、確かにモナド的な気もするが」 / Twitter
らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp map=Select bind=SelectMany となるので、モナドを作ると自然とクエリ式も適用できてしまう。 クエリ式自体はモナドではない。」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 &gt;モナドを作ると 理解」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「いや、そんなこと全然ないと思っていて、ElmとかRustとかのパーサコンビネータ見た時に「monadic compositionできる関数無いかな 絶対あるやろ あったわ」を3秒くらいでできるのは普通にアドだと思っている」 / Twitter
がくぞさんはTwitterを使っています 「具象モナドインスタンスが便利に使えることと、モナドをモナドとして抽象化して扱えることと、みんな違ってみんな良い」 / Twitter
がくぞさんはTwitterを使っています 「みんな大好きtraverseもモナドまで要らないけどApplicativeをApplicativeとして抽象化して扱える必要があるからなー」 / Twitter

Listの結合

なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「Geckoもたいがいやけど、Blinkも複雑なブロック間をまたぐselectionの削除の動作は一貫性が無くてバグりまくってる感じがある。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox すごく分かる・・・ やっぱ依存性の整理が難しい処理なんだろうなぁ・・・」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap ネストしたリスト同士の結合とか何が正解かさっぱり分かりませんわ。リストのタイプが違うとなおさら。テストケースをなんぼ書いてもカバレッジが不十分と思える強迫性障害に陥りそうです(実際、足らん訳ですが)。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox なんかその辺もしかしたら仕組みそのものが更新される必要があるかもですね。 ネスト構造の明確なルール化(明確に1次元化し、かつ戻せる)とか。」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap 問題はそういう細かい互換性に最大手のGoogleは興味が無いという……」 / Twitter
エヌユルさんはTwitterを使っています 「@d_toybox @beepcap Listの結合とかは純粋なデータ構造ですらMonad(Monoid?)の教本とかでも「複数の自然な実装がある…」とかしれっと書かれるぐらいなので自然な方法が分からなくても当然な気もしますね あっしまった釈迦にセポーしてしまいましたね」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@ncaq @beepcap いや、泣きたい話です(別にこれを専門にやってきた訳ではないので」 / Twitter

パーサコンビネータ

パーサコンビネータ

κeenさんはTwitterを使っています 「これへーってなった Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳 https://t.co/Tmf8t4UdMc」 / Twitter
Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳
Shiro KawaiさんはTwitterを使っています 「@blackenedgold モナドでやってると最初のvが失敗したら次のmany vには行かないと思うんですが、Applicativeだけどモナドにしないパターンがある?」 / Twitter
κeenさんはTwitterを使っています 「@anohana これはリストに対する操作のsome/manyじゃなくてパーサコンビネータのsome/manyなので失敗したらパース打ち切りで正しい動作だと思います」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@blackenedgold はい、なので some v = do { x &lt;- v; xs &lt;- many v; x:xs }なら正格でも無限ループしないと思うんですが、vの結果を待たずにmany vの評価に行っちゃうのってどういう時かなと。」 / Twitter
κeenさんはTwitterを使っています 「@anohana むむっ、確かに言われてみればそうですね。実際PureScriptのパーサコンビネータライブラリでdo記法で実装しているものもありました。Haskellだとapplicativeの方がすっきりしてるから使ってるけどpurescriptに移植するときにあまり深く考えず字面を似せたとかですかねー。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@blackenedgold あっそうか。Applicativeの表記を無意識にモナドに置き換えて読んでたんですが、&lt;$&gt;が正格評価だと単純な置き換えになりませんね。」 / Twitter
κeenさんはTwitterを使っています 「@anohana はい。モナド使うと順序が保証されちゃうんで効率まで考えると一般には&lt;$&gt;と&lt;*&gt;を単純にdo記法(bind)に置き換えられないはずです。」 / Twitter
ドッグさんはTwitterを使っています 「このコンパイルエラーメッセージ用ライブラリの表示かっこいいな… 手元で試してみた | 'zesterer/ariadne' https://t.co/dMXQ7ti06A https://t.co/fCYBBq58Rc」 / Twitter
zesterer/ariadne: A fancy diagnostics & error reporting crate
ドッグさんはTwitterを使っています 「ちなみに chumsky というパーサコンビネータライブラリのエラー表示に使うために実装したっぽい https://t.co/fLzzX17qHI」 / Twitter
zesterer/chumsky: A friendly parser combinator crate
megaparsec: Monadic parser combinators
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「パーサコンビネータで式の処理ってどう書くんだろう。再帰下降パーサのノリで書くとパーサが無限に入れ子になってしまう。。。」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「そういう時のために、 rust combine には parser! {} というマクロが用意されているらしい どういう仕組みなのだろう」 / Twitter
Winter GuysさんはTwitterを使っています 「@yasuo_ozu パーサーの生成そのものを遅延するコンビネータがあります」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@raviqqe なるほど..複雑なことをしてるんですね...」 / Twitter

エラーメッセージ

mod_poppoさんはTwitterを使っています 「パーサーコンビネーターで良い感じのエラーメッセージを出す方法 [検索]」 / Twitter
mod_poppoさんはTwitterを使っています 「parsecをパk……参考にするか」 / Twitter
mod_poppoさんはTwitterを使っています 「ソースの位置情報もどうにかしないとな」 / Twitter
アッキーだよ✨さんはTwitterを使っています 「@mod_poppo 手前味噌ですが Parsec のパ……参考にしたのあります https://t.co/hi8MyZwe3g」 / Twitter
kirisaki/prototype-B
mod_poppoさんはTwitterを使っています 「@A_kirisaki ありがとうございます」 / Twitter

Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
Java パーサコンビネータ 超入門 - Qiita
パーサコンビネータで構文解析をより身近なものにする | mediba Creator × Engineer Blog
Java - パーサコンビネータとは、何なのでしょうか|teratail
パーサジェネレータ - Wikipedia
第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
Chapter4.pdf
Parser Combinators in Swift
Scalaのパーサコンビネータにふれる - Uzabase Tech
パーサコンビネータ - mrsekut-p
ytakanoさんはTwitterを使っています 「Rustでポーランド記法の計算機作った。すぐできた。」 / Twitter
ytakanoさんはTwitterを使っています 「パーサコンビネーター、ADT、rustylineのおかげ。」 / Twitter
rustyline - Google 検索
ytakanoさんはTwitterを使っています 「ストリームもパーサコンビネーターでパースできるってすごいよ。昔C++でやろうとしてだいぶ苦労した。」 / Twitter
パーサコンビネータ - tasuwo's notes
面倒くさいパーサの実装もDSLで書くだけ!そう、Scalaならね - Qiita
論理式パーサをscala-parser-combinatorsで楽々実装 - Qiita
otajisan/scala-parser-combinator: パーサーコンビネータの学習

モナディック・パーサー

知我麻社さんはTwitterを使っています 「モナディックパーサでパーサ書いたら「手続き型の言語なんて二度使うかよ~~! な~にがポインタだクソくらえ~~!」ってなる(個人の感想です)」 / Twitter
モナディック・パーサー - あどけない話
『ふつうのHaskellプログラミング』サポートページ
4702.pdf
状態モナド遊び - あどけない話
お気楽 Haskell プログラミング入門
続くといいな日記 – 遅延評価でデバッグが困難になる状況
kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「パーサを綺麗に実装することだけを考える本です 最終的には F# でモナディック・パーサコンビネータを実装します」 / Twitter
[B! haskell] モナディック・パーサー - あどけない話
[B! F#] F#でモナディックパーサコンビネータを書いた | a posse ad esse
Megaparsec tutorial from IH book (翻訳)
haskell/parser.md at master · lotz84/haskell
pearl.pdf
Happy ユーザーガイド(Happy User Guide) - Pac Learner
sec-monads.html - Pac Learner
実例によるPureScript

モナド(Unix Shell)

ひさてるさんさんはTwitterを使っています 「Unix のコマンドはモノイド (cat | grep | more は cat | grep を more しても cat を grep | more しても同じだし、パイプしても結果に影響しないコマンドもありえる) なのでこの対象となる標準入出力はモナドだし、シェルは自己関手の圏 ← 乱暴な解釈」 / Twitter
wint 𝄆 9月病 𝄇さんはTwitterを使っています 「@tanakahisateru 自分もファイルの圏はいけるのか考えてみましたが、識者によるとそのままモナドに対応付けられるようです: https://t.co/NoTP6bidlK」 / Twitter
UNIX pipes as IO monads
ひさてるさんさんはTwitterを使っています 「@wint7 とりあえずエラー出そうとビルドしたら一発でコンパイル通ったときの気持ちです」 / Twitter

遅延評価(log)

Kazuho OkuさんはTwitterを使っています 「Cの場合は if で囲まれたコードを出力するマクロ書きますねぇ」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「コレ、logger あるあるで、正格評価しか無い場合はどうにかして全体を if で囲んだり、無理矢理 closure に押し込んで渡したり」 / Twitter
山本和彦さんはTwitterを使っています 「うぉー! 遅延評価が本当に役に立つ事例をもう一つ発見したぞ! ロギングだ! 正格評価だと、ログを記録しないログ関数を指定しても、引数のロギングの文字列を生成しちゃう!」 / Twitter
https://twitter.com/objectxplosive/status/1301363081939791874
How do I implement assertions?
Kazuho OkuさんはTwitterを使っています 「dtrace とかでも、probe には必ず同名の probe_enabled って関数があって、実際に probe がアクティブな場合だけ引数構築ができるようになってる」 / Twitter

Miranda

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すごい!Mirandaのソースが公開!! https://t.co/55Etgo6hIP」 / Twitter
Edward KmettさんはTwitterを使っています 「Over the last couple months, David Turner's Miranda source code has been released! https://t.co/z9c4iUUgpm Miranda first tried the cookies 'n cream combo that is type inference and laziness, and shaped Haskell. For those interested in compiling to combinators, it's a goldmine.」 / Twitter
Miranda homepage

bright-ml

El Pin AlさんはTwitterを使っています 「言語作ってます。割と動く https://t.co/vcW7v9bs5S https://t.co/hQOJO5rGQn」 / Twitter
elpinal/bright-ml: A statically-typed programming language based on "F-ing modules"
El Pin AlさんはTwitterを使っています 「Moscow MLの再帰モジュールをふんだんに利用して実装しています」 / Twitter
El Pin AlさんはTwitterを使っています 「ああ、あとlexer / parserは、Karl CraryのHygienic Source-Code Generation Using Functors (2018)を試しに使っています 基本的にyaccだけどfunctorが生成される https://t.co/9j5Qvu74jd」 / Twitter
cmtool.pdf

ネットワーク越しの型情報

同型判定

Miura HidekiさんはTwitterを使っています 「プログラミングで究極に難しいのは2つのオブジェクトが同じであることを出来るだけ高速に判定することではないだろうか? (今それで悩んでいる」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 まずは相手が同じクラスであることを前提にできるかどうかで静的に決定できる部分が大きく異なるので、それを宣言する仕組みがあれば大きなヒントになるでしょうね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda もっと細かく言うと、抽象実行の結果の型が同じであるかの判定です。型に細かい属性がついていて(例えば整数で負にならないフラグとか)、状況によってそのフラグを無視するか無視しないかと言うのが変わるって感じです。静的に決定できる所もありますが余りなさそうです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 型をLispのSymbolでinternするみたいにユニークなオブジェクトにしてポインタ比較のみで判定できるようにするのがいいのかなとか考えています。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 hash関数の設計がかなり重要になりそうですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda ですね。これでオブジェクトの数が爆発しないかっていう見切りも必要でしょうけど。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 オブジェクト数の見積もり、重要ですね。intern poolのサイズ拡張は結構なオーバーヘッドになりそうですし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda intern poolっていうより型オブジェクトのfactoryでユニークな物を返すって感じになると思います。結局何らかのテーブルが必要になるわけですが」 / Twitter

樅山 (Mutsuha Asada)さんはTwitterを使っています 「仮に人類がJavaScriptを捨てるとしたら、ブラウザに乗せる言語は何がいいんだろう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Scheme + 総称関数ベースのオブジェクト指向システム だろうね &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「当然ながら静的型付け推しの意見が多いけど、ネットワーク越しにライブラリを動的にダウンロードする場合にどうやって型仕様を読みこむのかという問題がありそう。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 MS の ActiveX にタイプ ライブラリという型情報が付いてるのですが、COM IDL をコンパイルしたバイナリだと思います: ActiveX コントロールの構成要素 - RAD Studio https://t.co/ibjpzHaWUQ」 / Twitter
ActiveX コントロールの構成要素 - RAD Studio
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、ActiveX。この手の型情報をネットからダウンロードすると名前空間の管理が煩雑だなって思うのですが、ActiveXのようにUUIDでしょうかね。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 たぶん名前空間に、人力で名前を付けると大変だし、機械で自動で名前を付けると不自然になりそうな気がします。ただ、UUID でも新たな仕様が出てきてるので、どこかで決定しておかないといけませんが」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 Javaのような名前空間も個人だと大変だと思いますし。githubのアカウントって現実的にはよい気もする (もちろん企業にロックオンされるような規格は認められないと思いますが」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 WebAssembly にも、モジュールに export された関数の名前と型が付いてきますが、ダウンロード元の場所は自由ですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 よく分かっていないのですが、WebAssemblyってユーザ定義の型とかクラスって使えるのでしょうか?単純に組み込み型しか使えない引数と戻り値のシグネチャーであれば色々やりようは考えられます。名前は衝突したらユーザの責任っぽいですね。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 最新の仕様は見ていませんが、初期の仕様なら組み込み型しか使えないと思います。C のコードをコンパイルすると、構造体の引数はポインタ(組み込みの整数型)としてコンパイルされます。ユーザ定義のセクションが使えるので、独自の型情報を付加することは可能だと思います」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 可能なのは分かるのですが、そうすると構造が非常に複雑になって(他のサイトにあるライブラリで定義されているクラスなり型を使っているならなおさら)、事実上きちんとした名前空間が無ければ使いものにならないと思います。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 C++ の namespace 構文みたいに、import する側のコードで名前空間を決定するというのも思いつきますが、まあダメですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 この問題についてはActiveXのようにUUIDを割り振る実装とかJavaのようにサイトのURIを名前空間にする実装とか考えられるわけですが、Javascriptがプロトタイプベースの型無しオブジェクト指向であることは実は結構考えた末の結論ではないかと思うのです。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 JavaScript の隠された型を DB に格納して、対応するコードとともに世代管理したくなります」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 JSのプロトタイプベースの言語仕様のせいで処理系凄く苦労していますものね。Rubyもクラスベースの振りして実はプロトタイプベースに近いので気持ちはよくわかります。全てのインスタンス変数はinitializeメソッドで初期化してくれって思います。」 / Twitter
k9694.pdf
Keigo ImaiさんはTwitterを使っています 「フォールトトレランス以外にもマルチパーティセッション型には改善できるところがまだいくつかあり、それを解決すれば並行プログラミングでもぐっと使いやすくなると信じて理論と実装をやっています」 / Twitter
Keigo ImaiさんはTwitterを使っています 「セッション型を用いたプロセス間の安全な通信プロトコルの設計と実装👀 https://t.co/XFmVkaIOJU」 / Twitter
研究会 - セッション型を用いたプロセス間の安全な通信プロトコルの設計と実装
Go製マイクロサービスのAPI仕様をSwaggerで作成、管理する | Money Forward Engineers' Blog

分散プログラミング言語

冪等性

新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
冪等性とは「同じ操作を何度繰り返しても、同じ結果が得られる性質」のこと - Qiita
サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
冪等性 (べきとうせい) を理解して設計・実装するために役立つ記事まとめ - CodeNote
第2回「システムを作るコンピューター」 | NTTデータ先端技術株式会社
RESTにおけるべき等とは何を意味するのだろうか?
冪等性(べきとうせい)というフレーズのメモ
Idempotent (べき等) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
冪等性(べきとうせい)とは? - 会社辞めてニートになった元プログラマーの雑記帳

Tail Latency

Tail Latencyについて - CubicLouve
tail latency - Nodewww
Tail Latencyに関する論文読み - 勘と経験と読経
Tail Latency Might Matter More Than You Think - Marc's Blog
IPSJ-OS18142003.pdf
Storage: How ‘tail latency’ impacts customer-facing applications
Preventing Long Tail Latency | Section
srecon19apac_slides_plenz.pdf
What the heck is tail latency? | Virtual Storage Zone
mumumuさんはTwitterを使っています 「一般に1/1000程度のTail Latencyの原因特定ってどうやるんだ.Tailって測定誤差が大きそうだから,条件変えて計測して間接的に原因調べるしか無いのかな.」 / Twitter

タイムトラベル

Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝も散歩してたのですが、凄まじく暑くて、湯だった頭で「タイムスリップ出来るプログラミング言語とかってどうだろう」とかどうでもいい事考えてました。 頭がおかしくなったわけではなく、1秒ごとにプロセスのスナップショットを取って、後から過去に戻れるようにしておく。で、 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「time_slip(1 hours ago) { debug_print(point.x) // 1時間前のpoint.xが取れる point.x = 20; // 1時間前のpoint.xを20にして、1時間前のスナップショットのスレッドを開始。現在のスレッドは破棄 } みたいなセマンティクスを持った言語は(凄く重いけど)作れそうだなと。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「結果的には、一昔前流行った可逆デバッガを言語に組み込んだぽいものになりそうですけど、時間だけじゃなくて、s1 = snapshot() で言語レベルで特定のスナップショットに戻れるとかすると、デバッグの役に立たないかなあとか。いや、元々は暑さで「タイムスリップ……プログラミング言語……」とか ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「タイムスリップというセマンティクスを持ったプログラミング言語を実装して、親なんとかのパラドックスを実行してみたらどうなるかなとかどうでもいいこと考えてたんですが。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、ナイーヴな実装だと、子どもが過去に戻って親をdestroyすると、リンクしてる子のスナップショットが全部連鎖的にdestroyされて、全部メモリ空間から消滅するだけでパラドックスにならないですね。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝考えていた「タイムスリップ」言語、どっちかというと「タイムリープ」言語な気がしてきました。 何度やり直しても、とある条件を満たさないと過去へのタイムリープを繰り返さざるを得ないSF風味を作れそうな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「変数の値も含めてタイムスリップできるのが Prolog のバックトラックなんだよな。SQL だとトランザクションのロールバックがタイムスリップ出来るものだな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「高度なリフレクションがあると任意の言語で可能になるんだよな。タイムワープアルゴリズムで検索」 / Twitter
Miura HidekiさんはTwitterを使っています 「ググってみたけど、タイムワープアルゴリズムってマイナーなんだな、私の書いた日記が上位に来ていた」 / Twitter
Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、とてもエレガントで実在するほとんどの言語で実装困難なんだけど、私が説明するのはおこがましすぎる」 / Twitter
Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、面白いのに説明がないのは人類の損失だから賢者による説明が求められる (他力本願(多分元の意味)」 / Twitter
タイムワープアルゴリズム - miura1729の日記

Thunk

Hidemoto NakadaさんはTwitterを使っています 「juliaの分散周りのコードを読んでいたら、thunkという変数名をクロージャに対して使っている。普通の辞書にはそれっぽい意味がないので、ぐぐったらこんな記事を見つけた。なんとAlgol 60にまで遡る由緒正しいジャーゴンだったとは。。 https://t.co/J5vk7Vit38」 / Twitter
S.F. Blog:thunk(サンク)というものについて
Hidemoto NakadaさんはTwitterを使っています 「SICPにもでてくるらしい。確かに当時もなんだコレ、と思ったような。」 / Twitter
寺田 実さんはTwitterを使っています 「@hidemotoNakada Knuth を逆綴りにした、っていうあれですよね。はるか昔の理解では、ややこしい変数(名前呼びとか?)アクセスのために、アクセスの時に呼び出すコードのことだったような記憶が。」 / Twitter
Hidemoto NakadaさんはTwitterを使っています 「@miterada wikipediaの記事を教えていただきました。かなり多方面でちょっとずつ違う意味で使われているようです。 https://t.co/GDGyCHEuUf Algol発祥なのは多分確かで、そこから派生していったということなのでしょう。。 https://t.co/zKzT0mUXDj」 / Twitter
Thunk - Wikipedia
Thunks: a way of compiling procedure statements with some comments on procedure declarations: Communications of the ACM: Vol 4, No 1

Acute: high-level programming language design for distributed computation: ACM SIGPLAN Notices: Vol 40, No 9
Acute Programming Language
HashCaml
Scribble
Specifying Systems
book-02-08-08.pdf
[TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO
handout.dvi - lecture09ModelChecking.pdf
Jolie - 分散アプリケーションのためのサービス指向プログラミング言語
物理クロック 論理クロック - CubicLouve
TLA+チートシート
SODA NoriyukiさんはTwitterを使っています 「Gfarmでの知見を元にCHFSという別の分散ファイルシステムを開発している ・メタデータサーバなし ・逐次処理なし ・ノードローカルな不揮発性ストレージで構成した分散キーバリューストアを基盤 #gfarm2021」 / Twitter
Cloudflare、分散したCDNエッジ間でも強い一貫性を提供する「Durable Objects」正式リリース。ステートフルな分散アプリが容易に - Publickey
ytakanoさんはTwitterを使っています 「TLA+で『並行プログラミング入門』にある再帰ロックの検証はこんな感じかな。デッドロックは起きないのは検証できた。 https://t.co/VOvGJDNLLu」 / Twitter
ytakanoさんはTwitterを使っています 「PlusCal書きやすい」 / Twitter
ytakanoさんはTwitterを使っています 「『並行プログラミング入門』にある再帰ロックのTLA+での検証done。デッドロックしない、クリティカルセクション実行中のプロセスは最大1というのを、一部out-of-order実行を模擬して検証。 https://t.co/tY4oylKLY0」 / Twitter
ytakanoさんはTwitterを使っています 「RWlockはAlloyでも検証済みだけど、TLA+でもやってみるかな。」 / Twitter
ytakanoさんはTwitterを使っています 「TLA+で食事する哲学者問題のデッドロック検知 https://t.co/9jzGBHXa06」 / Twitter
ytakanoさんはTwitterを使っています 「PlusCalが簡単すぎてどんどん検証できそう。」 / Twitter
TLA+に再挑戦(2021.09) - yujioramaの日記
The TLA+ Home Page
TLA+に再挑戦(2021.10) - yujioramaの日記
TLA+に再挑戦(2021.11) - yujioramaの日記
TLA+に再挑戦(2021.12) - yujioramaの日記
ytakanoさんはTwitterを使っています 「色々やってみたけれど、型システム以外だとTLA+のPlusCalが1番しっくりくるな。」 / Twitter
ytakanoさんはTwitterを使っています 「もうちょいRustに近づけたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「HaskellってTime-Warpアルゴリズムの分散シミュレーションのためのライブラリなんてあるのね。ありそうだなって思ってググったらやっぱりあった。https://t.co/fep6qLWiH8」 / Twitter
time-warp: Distributed systems execution emulation
Miura HidekiさんはTwitterを使っています 「Time-Warpアルゴリズム、何らかの特別な言語支援が無ければ書くことが最高に難しいアルゴリズムの1つだと思う」 / Twitter

NUE/TAO/ELIS

Multi-Paradigm Language TAO
#:g1: (41)NUE/TAO/ELISのOS的側面(1984)
CiNii 論文 -  NUE/TAO/ELISのOS的側面

がくぞさんはTwitterを使っています 「DSLがS式でよければLispは最強感ある。とはいえ一定以上の静的型付言語ならDSLのADTをFunctorにするだけでfree-monadやfree-applicativeで合成可能なDSLが作れてしまうけれども……」 / Twitter
焼肉系インフルエンサーさんはTwitterを使っています 「あとはまあ、個人的にはだけど、メタプロというか内部DSLの作りやすさは結構大事にしてて、その観点のみで言えば動的型のほうが有利なことが多い気がする。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@gakuzzzz S式だと具象構文考えないで良い分楽ですよね。とはいえ、S式で書いてもらえるケースがそれほど多くなさそうなのがネックかもです。」 / Twitter
がくぞさんはTwitterを使っています 「なるほど。 まずはFunctorからはじめて、次にFoldableでcatamorphismをやり、そこからparamorphismに拡張した上で、Traversalにたどり着く、と。ネタで翻訳したけどわりと現実的にアリな気がする?」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「プログラム組めるという人でもAPI叩けるだけでロジック組めない人がわりといるので、ロジックが組めるようになるための学習パスとしてforeachで要素ごとの処理-&gt;reduce要るやつ-&gt;隣の要素に用事があるやつ-&gt;状態管理いるやつ-&gt;スタックいるやつ-&gt;再帰-&gt;分割統治-&gt;DPみたいなのを考えている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 MinCamlのようにif式は最後まで残ってもいいのかもしれませんがどうなのでしょうね? 少なくともネストした式は展開された形にしたほうがいいでしょう。 SSA形式はレジスタがimmutableな形式になるので関数プログラミングに近くなりますね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 基本ブロックを基本としたコードフロー以外の形式ですと、継続渡し形式の関数によるコードフロー表現は可能です。gotoの代わりに関数呼び出しでそれぞれが自由変数を持たない或いは同じ環境を共有する形で表現できますよね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 生存解析をして生きている変数を継続する関数呼び出しにすれば環境を共有しない形になる。一方でファイ関数を挿入する代わりに関数引数を挿入して1つの関数群は同じ環境を共有すれば無駄な生存解析なしでSSA形式をCPS形式に変換できるはずです。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「イラストでわかる圏論入門。集合論から始めて関数、圏、モノイドを解説し、実際的な例として命題論理を圏論の枠組みで説明している。 https://t.co/lUKaDkyZXE」 / Twitter
Category Theory Illustrated - index
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「とくに興味ぶかい部分: 「科学や数学の世界では、物事の関係を説明するのに図を使うことがよくある。圏論はこの図による表示をさらに抽象化・定式化して、あらゆる概念を説明できる言語を作り上げたものなのである」」 / Twitter

ラムダ計算

コンビネータ論理

コンビネータ論理 - Wikipedia
SKIコンビネータ計算 - Wikipedia
SKI combinator calculus - Wikipedia
d.y.d.
カリー=ハワード同型対応 - Wikipedia
Haskell/カリー=ハワード同型 - Wikibooks
B,C,K,Wシステム - Wikipedia
モーダスポネンス - Wikipedia
直観主義論理 - Wikipedia
¥³¥ó¥Ó¥Í¡¼¥¿ÏÀÍý - 20180620.pdf
lambda2.pdf
4.pdf
IPSJ-TPRO4416006.pdf
The SKI Combinator Calculus a universal formal system
Urbit - Chapter 2 : Crash course in Nock
Combinator Birds
To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
お勧めの数理論理の本を2冊+新刊の予告 - hiroyukikojima’s blog
ronri-part.pdf
現代数理論理学序説読んでる
vatscy/CLwCalculator: 【数理論理学】体系CLwにおける式の正規化を行なう
ラムダ計算 - Wikipedia
コンビネータ論理 - Wikipedia

Y, Zコンビネータ

06gun_03hen_02.pdf
5-3. Recusive Functions
lambda2.pdf
不動点コンビネータ - Wikipedia
コンビネータ論理 - Wikipedia
不動点コンビネータを用いた無名再帰関数の実行(C#, F#) - Qiita
TypeScriptで不動点コンビネータに型をつける - Qiita
RubyでYコンビネーターとZコンビネーター - Qiita
不動点コンビネータで無名相互再帰 - Qiita
誰得UNIX: Schemer のための「すぐ理解できるYコンビネータ」
Scheme:初心者の質問箱
不動点と不動点コンビネータ | 黒曜の吹き溜まり
ネタ記録庫/不動点コンビネータ - ocaml-nagoya
コンビネータ - mrsekut-p
techlunch1.md
Haskell+タグレスな型付きDSLで楽々!C言語コード生成 - keigoiの日記
不動点とfix演算子 - 一歩前進
YコンビネータとZコンビネータ(Ruby) - Camera Obscura
Haskell Language - ファンクタ | haskell Tutorial
プログラミング言語 - 型なしラムダ計算で量化子を定義できるか|teratail
哲学
F#入門
ブロックチェーンの新たな言語 Simplicityの論文を読む −Core Simplicity編− | GMOインターネット 次世代システム研究室
第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
Z - コンビネータ : tnomuraのブログ
2009-04-09
型システム入門 5章のメモ
Combinatory Logic 0
C++でラムダ式を再帰させる – 日和見荘404号室
楽しいプログラミング
🙂コンピュータサイエンスと魔法のYコンビネータ
yコンビネータ 型 - Google 検索
Zコンビネータ - Google 検索

型消去

Simply typed lambda calculus - Wikipedia
Type erasure - Wikipedia
type erasure typed lambda - Google 検索
type erasure - Google 検索
LangSpec2.8-ja_JP.pdf
types23.pdf
TaPL9

ラムダ計算・書き換え

Lambda calculus - Wikipedia
How is Lambda Calculus a specific type of Term Writing system? - Theoretical Computer Science Stack Exchange
REWRITE SYSTEMS AND LAMBDA-CALCULUS
() - 1208.0515.pdf
[0904.4120] On Constructor Rewrite Systems and the Lambda-Calculus (Long Version)
On Constructor Rewrite Systems and the Lambda-Calculus | SpringerLink
final.dvi - open-final.pdf
Term rewriting systems | Programming languages and applied logic | Cambridge University Press
The Origins of lambda-calculus and term rewriting systems - Inria
The Lambda Calculus, General Term Rewriting and Food Nutrition | Beckman Meijer Overdrive | Channel 9
Rewriting - Wikipedia
lambda_en.pdf
syntax.pdf
hor-fct.pdf
LNCS 4098 - A Terminating and Confluent Linear Lambda Calculus - rta06.pdf
148675853.pdf
PII: S0304-3975(96)00173-9 - 82509885.pdf
lambda.pdf
syntax.pdf
H8-garrigue.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf
CoffeeScriptで理解する『ラムダ計算入門』 - slow living in the sky

項書き換え系

HexirpさんはTwitterを使っています 「TeX 、有名な言語の中では唯一の、項書き換えシステムをベースとしている言語だと思っている」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「謎のプログラミング言語TeXをやっていくか…(本当に謎)」 / Twitter
HexirpさんはTwitterを使っています 「\expandafter を知ってから、こう思っている https://t.co/nGk7ljPxkm」 / Twitter
徹底解説! \expandafter 活用術(キホン編) - Qiita
ppl2-3.pdf
26_2_76.pdf
32_1_179.pdf
KJ00003124054.pdf
クヌース・ベンディックス完備化アルゴリズム - Wikipedia
proof_completion.pdf
Knuth-Bendixの完備化アルゴリズム
Knuth-Bendixの完備化手続きとその応用
C++でKnuth-Bendixの完備化アルゴリズムを頑張って実装した話 - Qiita
IEICE Conferences Archives - 多重Knuth-Bendix完備化における危険対除去手法の導入
CiNii 論文 -  Knuth-Bendix の完備化手続きとその応用
表現系工学特論第3回 - 11JTEXT.pdf

意味論

d.y.d.
katsumata.pdf
並列論理和の続き - sumiiのブログ
並列論理和 - sumiiのブログ

位相・領域理論

チェシャ猫さんはTwitterを使っています 「位相を定義するとは即ち収束を定義することなので、むしろ数値計算なんかとは近しい関係にある。その昔、初めて p 進数体に出会ったとき、センセーに「君は Q_p を何か抽象的なものだと思っているようだが、プログラミングできるような極めて具体的な対象である」と言われてなるほどと思った記憶。」 / Twitter
チェシャ猫さんはTwitterを使っています 「特に p 進数体はもともとの出自がそこで、「有理数体、うかつに極限取るわけにもいかんし何もわからん…」「とりあえず近似計算できるように完備化した体の性質でも調べたろ…」「あれ、でも実は局所的な情報から元の有理数の情報が復元できるんじゃね?」「天才!」というのが代数的整数論(暴論)」 / Twitter
lotzさんはTwitterを使っています 「線形代数もそうだけど「位相空間論」も現代数学では大事って、そうは言ってもデータ分析とか数学に興味のあるプログラマーからしたら実際にプログラムで計算できない位相は手を出しにくいよなーと一瞬思ったけど、そんなこと無かったわデータ分析にもプログラミングにも使われてるわ位相。やっぱり大事」 / Twitter
等しいことが判定できなさそうで判定できる関数の実装
さのたけと’さんはTwitterを使っています 「@lotz84_ 具体的にはどのように?」 / Twitter
lotzさんはTwitterを使っています 「@taketo1024_2 この人のTLを見てもらえれば分かります! @taketo1024_2 それは冗談として😅(逆に一番お話を聞きたいですw)計算ホモロジーについてはシャカセツなので置いておいて… 位相を応用するという意味でパッと思いついたのはデータ分析についてはTDAでプログラミングについては領域理論ですかね👀」 / Twitter
さのたけと’さんはTwitterを使っています 「@lotz84_ いやいや、知らないので質問しました😂 TDA で位相空間論を直接使う印象はあまりありませんでした。むしろ組み合わせ論的な議論が多そうな。 領域理論については聞いたこともありませんでした👂」 / Twitter
Hiroyuki MiyoshiさんはTwitterを使っています 「@taketo1024_2 @lotz84_ 領域理論はT2より弱い位相の話なので普通の数学の人は知らなくても無理ないですが、荒っぽく言えばデータに計算の進行が収束に対応するような位相を導入すると、関数の連続性と計算可能性が対応するといった話ですね。連続関数だけ考えるのでD ≅[D→D]が言えて関数も普通のデータとして扱えるとか。」 / Twitter
lotzさんはTwitterを使っています 「@metaphusika @taketo1024_2 TDAに関しては確かに計算に直接使うというよりかは概念として出てくるって感じかもですね😅 (離散モース理論の講義動画見たいと思いながら積んでるます…) @metaphusika 分かりやすい簡潔な説明ありがとうございます😭神🙏」 / Twitter
lotzさんはTwitterを使っています 「@metaphusika @taketo1024_2 位相のプログラムへの応用という意味では、領域理論に関連する話で、(有限とは限らない)データ構造のコンパクト性から停止が保証される関数みたいなのを見て面白かったです👀 https://t.co/Pm0E7x3aHR」 / Twitter
Hiroyuki MiyoshiさんはTwitterを使っています 「@lotz84_ @taketo1024_2 コンパクト性というのはある種の有限性を保証する性質なので、停止性の証明と関係するのは自然といえば自然ですね。」 / Twitter
さのたけと’さんはTwitterを使っています 「@metaphusika @lotz84_ っほー…! 全く知りませんでしたが、こちらは位相空間論を直接使いそうな雰囲気ですね。いずれ勉強したいことリストに(心の中で)追加しておきます🙏」 / Twitter
Hiroyuki MiyoshiさんはTwitterを使っています 「@lotz84_ classical general topologyならhttps://t.co/T7bSY8FuOR… 辺りの解説が欲しいとかですかね。」 / Twitter
coq-community
lotzさんはTwitterを使っています 「@metaphusika おおお、Coqで位相を直接扱えるんですね、これは面白そう👀ありがとうございます!まずはCoq読めるようにならないと…😇」 / Twitter

ラムダ計算・System F

ラムダ計算

Prologでラムダ計算

Koromo/Prolog-lambda: ラムダ計算のインタプリタみたいなの
prologでラムダ計算 - 計算機と戯れる日々
Prolog Advent Calendar 2016 - Qiita
Prologよいよ - Qiita
TAPL5-3. 型無しラムダ計算(λ) - Qiita
_pdf
ラムダ計算はHOAS - Google 検索
インタプリタ · shiatsumat/wiwinwlh-jp Wiki

証明木・ラムダ計算

ahuさんはTwitterを使っています: 「論理式が型ってのはわかるけど、証明がプログラムってののイメージがわかない」 / Twitter
gentzen-NK.pdf
sakurai10.pdf
20191109_C-3_resume(Tsunoda_Kentaro).pdf
ppl3-4.pdf
ch.pdf
ppl1-3.pdf
パースの法則 - Google 検索
Glivenko の定理の代数的証明 - 論理とか計算機とか数学とか
パースの法則 - Wikipedia
排中律、二重否定の除去、パースの法則 - Qiita
命題論理の自然演繹 : 定理 [数学についてのwebノート]
パースの法則 - Skinerrian's blog
3. Peirce - airoboの日記
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
Introduction_to_Modal_Logic.pdf
継続 | haskell
vol1.indb
84jGENP2.pdf

項書き換え・ラムダ計算

98ss_intro_trs.pdf
agora-2005s-cd-b.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf
ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
正規化 (項書き換え) - Wikipedia
Jacques Garrigue : Home Page
lambda.pdf
H8-garrigue.pdf
trs.pdf
23_3_35.pdf
51237311.pdf
IPSJ-MGN240207.pdf
クヌース・ベンディックス完備化アルゴリズム - Wikipedia
合流性 - Wikipedia
コンビネータ論理 - Wikipedia
SKIコンビネータ計算 - Wikipedia
04mm004.pdf
agora-2005s-cd-b.pdf
研究の紹介

項書き換え・操作的意味

3aa6257094ed385200cd3c7cd7f1a277622a.pdf
ppltut.pdf
116_103.pdf

形式仕様 操作的意味

Miura HidekiさんはTwitterを使っています 「本来はアプリケーションごとにDSLが作られてその上でアプリケーションが作られるべき」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そしてDSL毎にそのための言語VMとIDEが作られて然るべきなのですキリリ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda さすがにこの辺は自動生成にしてほしい...」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 でしょ?カタログから命令セットを選択して、少数のカスタム命令の動作を MUL reg1, reg2, reg3 : reg3 ← reg1 * reg2みたく操作的意味を書いたら、各命令の前提が相互矛盾しないかとか、定義に穴がないかチェックした上で、自動的にVMを生成して欲しいでしょ?で、現状それに近いのって、形式仕様。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。 * の操作的意味って自明じゃない気がしますが、どうなんでしょうか?」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そうなんですよ。*は仕様記述言語側の意味論に帰着させるわけですが、bignumとかしんどいわけですよ。さらに割り算で泥沼ですよ。VMが提供する他の操作セットによって最適な定義もきっと変わるので、色々な*の操作的定義が必要になるかもしれません。こういう体験を積み上げている途中なんです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 割り算は泥沼ですね。CPUの定義によるでは形式的な検査もあったもんじゃないでしょうし。確かに、このあたりの最適解は机上では分からないでしょうね。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 何度Nan-boxing教に入信しようと思ったことか。実際、IEEE754なfloatをVDMのrealに帰着させて定義したので、比較的簡単にNan-boxingな仕様を書けるはずです。そのうちこれもやりたい。いろんな数表現をポチリと選択してVM合成できるようにしたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 数のビットパターンもそうですけど、割り算だと負の場合の丸め方とか言語によって仕様が違うところをどうするのか気になります」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 ので、仕様記述言語が定義する演算を組み合わせてそのDSLでの割り算を一意に定義し、それを実行する命令を実装を生成するという皮算用です。もちろんホストCPUやホスト言語が提供する割り算によって最適な実装は異なるので、適切なものを自動的に導出可能にする、または選択可能にする必要があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。なかなか茨を感じますが面白そうです」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 autoconfのようにネイティブ/ホスト言語の演算のセマンティクスを自動検出できたら面白いかなと、今思いました。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda それいい研究テーマかも」 / Twitter

λ-lifting

Lambda lifting - Wikipedia
ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null)
Lambda lifting とは – 計算機科学Word
Implicitly-Typed Deadlock-Free Process Calculus
ヒビルテ(2006-09-12)
amylase/コンパイラ課題メモ - IS2011 Wiki

Twitter

muratakさんはTwitterを使っています 「Curry-Howard 同型対応、「論理と計算の間に対応がある」という説明をされると非常に非自明なことだけど、たとえば核となる(と思われる) 単純型付きラムダ計算と直観主義命題論理の間の対応は、シンプルすぎて当たり前というか、単にデカルト閉圏の具体例を2つあげただけという気もするんですよね。」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算を導入するためにラムダ計算を書いたのか」 / Twitter
🌙さんはTwitterを使っています 「あ、あと無名再帰のためによく使われるYコンビネータですが、再帰型の概念のない単純型付きラムダ計算では型付け不可能でしたねやっぱり」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算が正規化可能(停止性が保証されている)ってのはすごかった」 / Twitter
🌙さんはTwitterを使っています 「というか、単純型付きラムダ計算だと再帰関数が定義できないわけで、再代入もなければループすらかけないのだから停止性保証はある意味当たり前だわな」 / Twitter
かすてらふぃさんはTwitterを使っています 「実は単純な型付きラムダ計算みたいな簡単な言語だと関数の引数の型だけ書けば良かったりするんだけど、型システムを拡張すると完璧な型推論は計算不能な問題になってしまうらしい」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「研究室合宿で那須塩原に来ている。今年はゲーデルの不完全性定理、型付きラムダ計算の停止性、シーケント計算の証明探索の三本立て。」 / Twitter
h_sakuraiさんはTwitterを使っています 「e(Γ,i)::=integer|e(Γ,i)+e(Γ,i)|e(Γ,i)*e(Γ,i). e(Γ,b)::=true|false|e(Γ,i)&lt;e(Γ,i). e(Γ,T)::=if(e(Γ,b),e(Γ,T),e(Γ,T)) | λ(x:e([x:T1,Γ],T2)),{T=T1-&gt;T2} | x,{x:T∈Γ} | e(Γ,T1-&gt;T) $ e(Γ,T1). と単純型付きラムダ計算の文法及び型付け規則を記述可能だ。」 / Twitter
粗製伍長さんはTwitterを使っています 「純粋な型付きラムダ計算 GCありきだし参照としてのポインタを剥き出しにすると阿鼻叫喚の地獄絵図になりそうという気づき」 / Twitter
gatetogoさんはTwitterを使っています 「一階論理で量化子のドメインが非空であるとみなしてよくて(i.e. 「(∀x. P) → P」が導出可能)、一階論理を表現できるはずの依存型付きラムダ計算でそうみなせないのはどういうこと?」 / Twitter
あわねずみさんはTwitterを使っています 「wikipediaにλPωのことλΠωって書いてあったが依存型付きラムダ計算のPってΠ(Pi)のことだったのか 前から気になってた」 / Twitter
watcherさんはTwitterを使っています 「やべこれ「Lispは値渡しが基本なものの、 quoteマクロで名前渡しを実現しています。違いは何でしょうか」で済む話でしたorz 50年代にラムダ計算をモデルに実用言語として拡張されたLispと、 80〜90年代、型付きラムダ計算や純関数型言語の重要性が認識された後の、ラムダ計算処理系は何が違うんだっけ」 / Twitter
小林聡@京都産業大学さんはTwitterを使っています 「ほほう、命題論理の implicational fragment の話か、それとも単純型付きラムダ計算の話なのかな(なんでやねん」 / Twitter
kannkyoさんはTwitterを使っています 「昔勉強したカリー・ハワードの対応と型付きラムダ計算がここに来て役立つ日が来るとは・・。 JavaScriptのカリー化について味見してみる https://t.co/AcYz1vun6x #Qiita」 / Twitter
kentoさんはTwitterを使っています 「ソフトウェアの基礎では単純型付きラムダ計算が実装されてるんですが、依存型を追加するにはどうすればいいかわからない…」 / Twitter
kentoさんはTwitterを使っています 「具体的には 単純型付きラムダ計算→ソフトウェアの基礎で定義されているのでパクる 依存型→がんばる 単純型付きラムダ計算の型チェックの関数→ソフトウェアの基礎で定義されているので、各規則にわけてパクる 依存型の型チェックの規則たち→↑の関数を参考にしてがんばる」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn primitive type algorithmっていうなら単相型の型付きラムダ計算に(メタ的に)多相性を導入できることを指しますから、その言い方は誤解がある気がします…」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn えーと、型注釈なしの単純型付きラムダ計算においてtypableなラムダ式につけうる型(これは無数にある)のうち、出現するatomic typeに他のtypeを代入することでつけうる全ての型を表現できるものをprincipal typeとして、これを先に言った構文木の解析(とunification)で求めるものを指しています」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn これが可能な事は、単純型付きラムダ計算が明示的には単相であるにも関わらず、型注釈がない場合にはメタ側からはあたかもオーバーロードしているかのように見える、ということなのかと思っていました」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn ちょっと復習かねて時間取ってました。やはりその言い方は語弊があるのでは?(少なくとも(単相な)単純型付きラムダ計算の元では)aをconcrete typeとして具体化したらもう他の型として具体化できないですよね?それだと恒等関数を表現できていないのでは?」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn それは同名の関数が同じ型をもつとは限らないというだけでは? そもそもラムダ計算には名前をつける文法はないので名前はあくまで略記であって、「ラムダ式の略記」と「型付きラムダ式の略記」を別々に用意しておけば問題はなさそうです?」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 考えてみましたが、やはり無理なような。型推論をしようが、単純型付きラムダ計算上の型式だと適切な型を与えられないと言うか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 示唆する、というのは明確ではないですが、単純には無理というしかないような。ちょっとここから先は実際の型付きラムダ計算の体系と、その上の特定のラムダ式を例にして議論した方がいいような気がしてきました…(Twitter上だとつらひですが)。」 / Twitter
黒澤亮二さんはTwitterを使っています 「「プログラムの実行と定理の証明が対応する」というカリーハワード対応を理解したかったが、最後の章の内容で全然到達しなかった。とりあえず「圏論の歩き方」も読んでカルテシアン閉圏と型付きラムダ計算が対応するという事がわかったつもりになれたのでいいことにしたい・・・」 / Twitter
kentoさんはTwitterを使っています 「実は論理式として型付きラムダ計算の型が使えるんだけど、なんで使えるかはカリー・ハワード同型対応でググってネ!と言ってしまえば証明論の話も回避できるので便利(?)」 / Twitter
ayustateさんはTwitterを使っています 「ラムダ計算に型付きから入門した人は「プログラムをラムダ式で表現してラムダ抽象式は関数だから関数型A→Bを持つということにして関数適用はA→Bの型を持つ式とAという型を持つ式との間でしかできないとすると、そういったプログラムは必ず停止する」ことの感動を味わえないという煽りを思いついた。」 / Twitter
ayustateさんはTwitterを使っています 「今は「ラムダ計算の入門書は何がよいですか?」という質問にTAPLとか大堀本とかが答えに挙がるんだなぁ。そんなに最初から型付きがよいのだろうか。昔は(世界の多くの人がイエローブックやクリーニ本で勉強している一方)母語が日本語である偶然に感謝して高橋本を読めといったものだが。」 / Twitter
緑に戻りたい!さんはTwitterを使っています 「@_Iwancof 型の安全性の照明とかに使われるらしい。 例えば型付きラムダ計算を理解すると一定の条件下で無限ループ判定が出来るので無限ループをしないソースコードをかける」 / Twitter
ねこむらこねこさんはTwitterを使っています 「@_nabbe 単純にS x T x U → Vという型は、単一の引数しか扱わない(扱えるとしたら、それはカリー化しているから)型付きラムダ計算では取り扱えないでしょ。 だから、単純に理論上の取り扱いが楽になるからS x T x U → VとS → T → U → Vを同一視して欲しい。 さらにプログラマーも部分適用できるおまけつき」 / Twitter
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「ラムダ計算のチャーチエンコーディングされた整数は全部型が違うから型付きラムダ計算では使えないのか」 / Twitter
重城良国さんはTwitterを使っています 「HaskellのCore言語は、だいたいSystem FCだということ。僕はいまのところ(数学的にではなく感覚的に)untypedなラムダ計算は、わかる。つぎは単純型付きラムダ計算を学び、多相性を取り込んだSystem Fを学び、さらに「型変換をあらわす型」を明示的に引数にとるSystem FCを学ぶ必要がある。」 / Twitter
重城良国さんはTwitterを使っています 「あ、あと(たぶん)単純型付きラムダ計算だと再帰が表現できなかったと思うのだけど、そのあたりはSystem FCだと解決されているのだろうか。」 / Twitter

ユーザーブログ:Hexirp/(2020-05-03) 計算可能関数と型付きラムダ計算 | 巨大数研究 Wiki | Fandom
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
ラムダ計算 述語論理 - Google 検索
項書き換え系 述語論理 - Google 検索
ラムダ計算 文字列 - Google 検索
チャーチ数 sub - Google 検索

resume4-rev.pdf
resume5.pdf
resume6.pdf
main.pdf
de bruijn ラムダ - Google 検索
alpha 変換 ラムダ - Google 検索

不動点コンビネータ

std::variantと不動点演算子 - in neuro
In C++, how to make a variant that can contain a vector of of same variant? - Stack Overflow
不動点コンビネータ - Wikipedia
コンビネータ論理 - Google 検索
TypeScriptで不動点コンビネータに型をつける - Qiita
d.y.d.
不動点コンビネータで無名再帰を作る流れをおさらい - 無駄と文化

PDF

8_1_34.pdf
lambda.pdf
5.pdf
cs2019muroya.pdf
sou19.pdf
66_0661078.pdf
MSJ20120328Fujita.dvi - MSJ20120328Fujita.pdf
IPSJ-SE93097013.pdf
stlc.pdf
sakaue.pdf

私を SKI に連れてって
TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
cormoran's note - LazyK HelloWorldを目指す
SKIコンビネータ AGAIN
combinatory logic in nLab
画力・博士号さんはTwitterを使っています 「値呼びの型なしラムダ項をTeX言語コードにコンパイルし,それをTeX言語上に構築したVMで完全展開で評価できるようになった: https://t.co/OKy0aEYXXC 1枚目: 入力 2枚目: 処理の様子 3枚目: 出力コード 4枚目: LaTeXで処理した結果出てくるPDF https://t.co/Ufm4L1A0RX」 / Twitter
完全展開形 ラムダ - Google 検索
ラムダ計算インタープリタ : tnomuraのブログ
ラムダ計算 : tnomuraのブログ
カテゴリー理論とプログラミング : カルテシアン閉カテゴリー
メタリックはんぺんさんはTwitterを使っています 「カリーハワード同型の基本的なアイデアは「型付きλ計算の型の推論規則と直観主義論理の推論規則は対応関係が付くから実質『同じ』だよね」で、後半第五回の課題は「与えられた命題の証明木を見ればそっから与えられた型のλ式が作れるよね」っていう話だったはず」 / Twitter
mod_poppoさんはTwitterを使っています 「F-ing modules, 型レベルのラムダが要るのか」 / Twitter
mod_poppoさんはTwitterを使っています 「週末を使って自作SML処理系にopaque constraintを実装しようと思ったんだけどなかなか難儀だな」 / Twitter
mod_poppoさんはTwitterを使っています 「まだFωの型検査を実装してるわけでもないし型レベルラムダの追加は3秒で終わった」 / Twitter
El Pin AlさんはTwitterを使っています 「@mod_poppo Standard MLの範疇でしたら不要ですよ😀(必要になるのはapplicative functorがあるときだけ)」 / Twitter
mod_poppoさんはTwitterを使っています 「@elpin1al そうなんですか。論文読み直します……」 / Twitter
Lessons learned building a toy compiler

継続・CPS・Algebraic Effects

fiber

Qiita

coroutineとasync/awaitのあれこれ - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(3) - Qiita

Coroutine - Wikipedia
future - Wikipedia
Stackless vs. Stackful Coroutines - Varun Ramesh's Blog
stackfulness of coroutines - lilyum ensemble
async/awaitと合成可能性 | κeenのHappy Hacκing Blog
(ネタ)ユーザー空間だけでプリエンプションする - livaの雑記帳
コルーチンプログラミング - 増井俊之
pro2019-01.pdf
Ryou Ezoeさんのツイート: "すごい、ファイバーのコンテキストスイッチのコストとかを示すためにWandboxが使われている。 https://t.co/WXNeFk8A99 https://t.co/IJzj8EyiKG"
Ryou Ezoeさんのツイート: "Fiber(stackful coroutine)は歴史上何度も試みられてきたがパフォーマンス上の恩恵が全くないのでやめておけ。今まともに使っているのはGOだけだがペナルティが大きい。 https://t.co/WXNeFk8A99"
p1364r0.pdf
p0866r0.pdf
p1520r0.pdf
技術書典6・う38 デダルス・ユメノさんのツイート: "OSスレッドの切り替えには大量のレジスタ退避、復帰処理が必要だが、goroutineの切り替えはプログラムカウンタ、スタックポインタ、DX(多分RDXレジスタのこと)だけで済むらしい。協調マルチタスクの強みやな。 https://t.co/B8eQ4T7NyD"
How Goroutines Work · Krishna's words
技術書典6・う38 デダルス・ユメノさんのツイート: "どうやら,context registerと呼ばれる役割らしい https://t.co/gPKnrPIaDX… "
go - What is a context register in golang? - Stack Overflow
Could JavaScript/Node.js be written without application-level callbacks, like if every program was wrapped inside a big goroutine? There’s no need for async-await, all I/O calls would just have that functionality builtin, and remains single-threaded. - Quora
You can get deadlocks in stackless coroutines too. The reason node.js won't dead... | Hacker News
I think stackful coroutines will always have their fans but the industry is head... | Hacker News
c++ - How do stackless coroutines differ from stackful coroutines? - Stack Overflow
ntaooさんはTwitterを使っています 「DartのIsolate (Actor Model) の基盤の上での、Single thread event loop モデルは、やはり扱いやすくていいなと思います。適切に高い抽象度でプロセスとスレッドを扱えますので... https://t.co/mQS6zLF8oA」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@ntaoo 割り切りとしてとても良い落し所ですよね。パフォーマンスオタクからすると言いたいことはあるんでしょうけど、そういう人たちは、Platform/Dart ffiの方に案内すればいいですからね。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Kotlinもさ、正直、コルーチンとかも良さげに見えて素人には罠だらけだと思うんだ。やっぱりマルチスレッドは常人には無理だよ。」 / Twitter
ntaooさんはTwitterを使っています 「@espresso3389 そうですね。割り切って真にパフォーマンスが必要なごく少数の箇所はネイティブに移譲しつつ、クライアントサイドアプリケーションプログラミングの事情に沿ったIsolateの設計だと思います。もっとメニーコアになって対応が必要な時代になったら、ErlangのActorのアプローチを参考に進化するでしょうし」 / Twitter
FadisさんはTwitterを使っています 「Boost.ContextからBoost依存を排除した、Deboost.Contextなるライブラリが存在する事を知った。Boost.ContextはWindowsのFibreや新しいスタックの確保とスタックポインタの書き換えを使って、ユーザ空間の単一スレッド上で複数のタスクを切り替えて実行する仕組みを提供する https://t.co/GZCAxn7bpw」 / Twitter
septag/deboost.context: "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms.

非同期・ノンブロッキング・CPS

非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
update a content · KeenS/KeenS.github.io@d46dad5
How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
channel - go routine blocking the others one - Stack Overflow
「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
Future パターン - Wikipedia
Futures and promises - Wikipedia
Overview of Blocking vs Non-Blocking | Node.js

CPS変換

κeenさんはTwitterを使っています 「CPSしてる部分をIsoみたいに同型で抽象化できないかなって思ったけどあんま意味ないか」 / Twitter
データ型のCPS変換について - Just $ A sandbox
κeenさんはTwitterを使っています 「type (-'s, +'t) fn = {f: 'r. 's -&gt; ('t -&gt; 'r) -&gt; 'r} type (-'s, +'t, +'a, -'b) t = ('a, 'b) fn -&gt; ('s, 't) fn としとくとeta展開なしで書けはする。app, (&gt;&gt;), idまで特有でそれ以降は同じコードで動く(多分)」 / Twitter
κeenさんはTwitterを使っています 「(&gt;&gt;), id はむしろ -&gt; をそのまま -&gt; として使えるので普通の(&gt;&gt;), idと言った方がいいかも」 / Twitter
BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - yhara.jp
κeenさんはTwitterを使っています 「ナイーブなCPS変換するときに元の式にはない簡約基ができるんだけどそのせいで変換前と変換後で同じ簡約が進むみたいなことが言いづらい。CPS変換のルールを複雑にして余計な簡約基が発生しないようにするのがよくある手法だけど、やっぱ複雑なルールの証明もつらいってことで多分みんな欲しかったやつ」 / Twitter
κeenさんはTwitterを使っています 「思ったより理論寄りだった。reductionを保存しない変換でsemantic preservationを証明するときとかに使えるフレームワークらしい。で、例題としてCPSの正当性を証明してる。 Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021 https://t.co/UQL5IV9wEi」 / Twitter
Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021

限定継続・CPS・EPS・停止性

浅井研

sakaue09.pdf
masuko09.pdf
kitani09.pdf
kitani10.pdf
ppl10.dvi
tsushima10.pdf
ueda10.pdf
masuko13.pdf
kaneko13.pdf
sou14.pdf
ueda15.pdf
sou15.pdf
sou17.pdf
ishio18.pdf
CPS 変換の正当性の Agda による証明
sou18.pdf
sou19.pdf
uehara17.pdf
ishio19.pdf
hirota13.pdf
限定継続処理の抽象機械導出のためのプログラム変換
情報学広場:情報処理学会電子図書館
限定継続命令をもつ依存型付き言語の設計
sou18.pdf

typedlmd.pdf
研究会 - 継続渡しスタイルの関数型プログラミング言語における分散処理の記述
CB-002.pdf
Implicitly-Typed Deadlock-Free Process Calculus
技術者/プログラマのためのラムダ計算、論理、圏 第3回に行ってきた
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
構造化プログラミングと データ抽象
_pdf
d.y.d.
Asai Laboratory, Ochanomizu University
shift/reset と control/prompt の違い - まめめも

限定継続

限定継続 | κeenのHappy Hacκing Blog
examples/README.md at master · krdlab/examples
限定継続でモナドを後付けする - Qiita
sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
SMLで継続を使ってprintf/scanf | κeenのHappy Hacκing Blog
36_2_47.pdf
Keigo ImaiさんはTwitterを使っています 「限定継続を取るときに、 if b then ここ else そこ のような分岐構文から2つ継続を取り出したい。そして個別に answer type modification をしたい。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「クロージャを使えば似たようなことはできるんですがヒープに何かを確保したくない。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「cf. Multi-return Function Call https://t.co/SsTKCm9qMz」 / Twitter
mrlc-jfp.pdf

型付きラムダ計算・CPS

型付きラムダ計算 CPS - Google 検索
sou17.pdf
sou19.pdf
B-021.pdf
ppl5-3.pdf
KAKEN — 研究課題をさがす | λμ計算の表示的意味論に関する研究 (KAKENHI-PROJECT-14540119)
1569jabstract.pdf
jssst2000.pdf
ラムダ計算 - herp-technote
ppl2005.pdf
_pdf
MSJ20120328Fujita.dvi
0992-24.pdf
saika_21_3-nakazawa-takuji.pdf
PPL 2019カテゴリ1,2,4採択論文・発表リスト
Suzuki.pdf
マイポータル - researchmap
プログラミング言語理論・設計|法政大学シラバス
「計算論」を(中途半端に)読んだ
d.y.d.
継続とかの話題サーベイ | κeenのHappy Hacκing Blog
「ソフトウェア基礎論」講義計画 佐藤、亀山 - Programming Logic Group

CPS・再帰

【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
継続渡しスタイル - Wikipedia
再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
6-3. Continuation Passing Style
ppl8-2.pdf
なんでも継続
evaluatorの再帰実装→CPS化→Continuationのde-functionalize→ループ化 - ラシウラ
Javaでフィボナッチ数を求める関数を末尾再帰最適化する
Asai Laboratory, Ochanomizu University

CPS・並列

Continuation Passing Style 並列処理 - Google 検索
コールバック不要:Javascript に逐次プログラミングを取り戻す StratifiedJS
Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする) - 主に言語とシステム開発に関して
継続渡しスタイル - Wikipedia
CPS - mrsekut-p
非同期と継続と私 - 技術日記@kiwanami
JSDeferred Sample
JSDeferred -> Promise 置き換え方法 | tech - 氾濫原
JSDeferredで,面倒な非同期処理とサヨナラ:特集|gihyo.jp … 技術評論社
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
Scheme 入門 16. 継続
並行プログラミングと継続モナド
CB-002.pdf
B-021.pdf
cps.pdf
6J-05.pdf
ppl8-2.pdf

CPS

継続渡しスタイル - Wikipedia
継続渡し形式(CPS)
PHP で継続渡し - Sarabande.jp
データ型のCPS変換について - Just $ A sandbox
CPS というプログラミングスタイルの導入の話 - ゆずとみかんといちご
お気楽 Scheme プログラミング入門
なんでも継続
cps.pdf
CPS.pdf
時の羅針盤@blog: CPS変換
情報科学実験II資料 (4) CPS変換のアルゴリズム
CPS変換と二重否定のカリーハワード対応の話 - Togetterまとめ
Haskell で継続渡しスタイル (CPS) | すぐに忘れる脳みそのためのメモ
非同期処理の「その後」の話。goto、継続、限定継続、CPS、そしてコールバック地獄。 | κeenのHappy Hacκing Blog
CPS変換 カテゴリーの記事一覧 - にわとり小屋でのプログラミング ブログ
トランポリン化でStackOverflowの回避 - Qiita
BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - 近&況
chikoskiさんのツイート: "https://t.co/J93pxgLT47 「CPSとはコールバックのファンシーな呼び名だ」"
RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
hatsugai@PRINCIPIAさんはTwitterを使っています: 「並行 amb を実装した.amb に出会うと引数の分だけ VM が分裂して並行に実行する(かっこいい).(amb) に出会った VM は消滅する(かっこいい).これだと CPS 変換は必要ない(以前作ったものは CPS 変換してスレッド化した). https://t.co/jRsberSc3z」 / Twitter
hatsugai/Finesse: Tiny Scheme implementation
hatsugai@PRINCIPIAさんはTwitterを使っています: 「最近 LISP 成分が不足ぎみだったので作った.例はいつもの N-Queens.VM の足並みがそろうのですべての解が出る(たまたま).まー実質コンパイラが CPS 変換相当のことをしているじゃないかという話もなくもない…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドをサポートし call/cc で取得した継続を別スレッドからも起動できるようにして(ここポイント高い),並行 amb をマクロ,call/cc,スレッドで実装する形にした.よりかっこよく整理された(amb 専用命令は廃止).apply や call/cc はトランポリンで対応できるけど thread-exit はいまいち.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「amb を手続きにすれば apply できてうれしこともあるけど,別に並列オペレータがなくて簡便に並列化したい場合はこの方がいいかな.そもそも目的はなんだって話だけど.書いてたら並列オペレータ作ればいっかという気持ちになってきた…」 / Twitter
ジェネレーターを簡易的にCPS変換してみた - Qiita
kontlang-shift-reset-lisp - Speaker Deck
zehnpaard/kontlang: Language with Clojure-like syntax and semantics based on EoPL + Shift/Reset
継続モナドについて - Qiita
CPS変換はじめてみた - Arantium Maestum

Algebraic Effects

ワンショット代数的効果から 非対称コルーチンへの変換 - pro2019-01-slide.pdf
コルーチンを用いた代数的効果の新しい実装方法の提案 - master_thesis.pdf
28_1_217.pdf
2021-03B-furudono.pdf
Algebraic Effects 自習用資料まとめ. Web記事、論文、発表資料、コード、言語など | by Yuki Kodama | Medium
我々向けの Algebraic Effects 入門 — Overreacted
効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合
HERP TechHub - びしょ〜じょ
Algebraic Effectsであそぼう / lilyum ensemble
Yosuke FURUKAWAさんのツイート: "Facebook の人は3年くらい前からどうやって Algebraic EffectをJSで書くか検討してたみたいなんだよなー / “one-shot-delimited-continuations-with-effect-ha…” https://t.co/RKWE8n20CL"
One-shot Delimited Continuations with Effect Handlers

CbC

Kono's paper list
継続を基本とした言語CbCのgcc上の実装
Continuation based Cを試す - Qiita
Shinji KonoさんはTwitterを使っています 「CbCは巨大なswitch文として実装する方法もあり得るので、当時やるならそれだったかもな。ただ、今でもプログラミングには苦労してるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「先祖返りなんだよな。今までの方法論が使えないっていうか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Susman はHewittのActorを見て「Lispじゃん」で片付けたらしい。もっとも、その時に並列処理のいろいろがどうなるのかはよくわかってなくて…」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあでも、Smalltalkの実装を見てる時にもLispじゃんと思ったので、そんなもん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CbCは a → ( b → t ) → t の形のみでプログラミングする言語だとも言える。これはCurry Howard対応的には否定に相当するような構造らしい。Actorの並列化で欲しかったのはそれってこと。自動的に並列処理を抜き出すみたいなのとは相性はよろしくない。まったく優しくない。」 / Twitter
Monad と OS
Shinji KonoさんはTwitterを使っています 「@wtakuo @miura1729 Apertosには入れなかったんじゃないかなぁ。なのでApertosのドキュメントはないかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Muse/ApertosをやるはずでソニーCSLにいたのだが、まぁ、あんまり手伝えず。T先生が「CS界で相対性理論に相当するようなものを発表したい」というので考え出したのがCFMだった。そういうの嫌いじゃないし、そういうのを期待されていたのだろうし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その時には今のCbCの基本はあったのでメタ計算的な感じで計算場みたいなものがあるのだろうなという感じ。その頃はまだクラウドはなかったのだが… 90年でしょ? ノートPCクラスタみたいなの作ってた人もいたし、それほどはずれではなかったのだが… まぁ、残念な方向に。」 / Twitter

StackThreads

Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages | Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
PowerPoint Presentation - DNaward.talk.jp.final.pdf
StackThreads
Top
spaghetti stack - Google 検索
ppl5-1.pdf

Wikipedia

継続 - Wikipedia
クロージャ - Wikipedia
アクターモデル - Wikipedia
無名関数 - Wikipedia

Twitter

Shiro KawaiさんはTwitterを使っています: 「@hatsugai GaucheはSchemeスタックがCスタックと別管理なので、「CからSchemeを呼び出している」箇所に戻らない限りは別スレッドでの継続起動は可能です。ネイティブスタックを共用する実装だと厳しそうですね。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Chez scheme 9.5.2 で,call/cc で取得した継続を fork-thread で 起動したスレッドから呼び出したらなにやらおかしくなった.最近どこかで実装についての解説を見かけたが,スレッドをまたぐのは難しそうな作りだと思ったっけ.他の処理系はどうなんだろ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Gauche で call/cc とスレッドを使った並列 amb を作ってみた.今回は手続きとして実装したので apply が使える. https://t.co/D1leRJfUxY」 / Twitter
parallel-amb-callcc.scm
hatsugai@PRINCIPIAさんはTwitterを使っています: 「手続きということは eager 評価になるので,以下のような書き方はできない. (define (req p) (if (not p) (amb))) (define (an-element-of items) (req (not (null? items))) (amb (car items) (an-element-of (cdr items))))」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「@anohana ありがとうございます.やってみました. https://t.co/q8Qmip3JUA」 / Twitter
Miura HidekiさんはTwitterを使っています: 「https://t.co/wkfp0gEcK8 懐かしい、修論で作った言語がこんな感じで実装した。当時は、トランポリンを apply like functionって呼んでいた。こうすると、継続が常に取れるので軽いグリーンスレッドを作るのに有利で、これで並列オブジェクト指向言語を実装した。」 / Twitter
Niyarin's blog
Toru HisaiさんはTwitterを使っています 「https://t.co/SwdVuy6QDn Scheme で継続を使って非同期の API を同期呼び出しっぽくするラッパーを書いてみた。」 / Twitter
async.scm
monochromeさんはTwitterを使っています 「async/await、コルーチン、継続、ジェネレータ、統一的に概念を理解したい」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の方では Skolem化のところで継続を使うと良かった。いろいろ発見があって面白い。」 / Twitter
https://twitter.com/shinji_kono/status/1308052561576906753
https://twitter.com/shinji_kono/status/1308052219183247362
ふ''れいすさんはTwitterを使っています 「akkaというかactor modelはつまるところ継続だな、となったので取っつきやすかった。そういうたぐいの解説を読んだ記憶がないんだけど、みんなactor modelはどう理解しているんだろう。ステートマシン?」 / Twitter
ふ''れいすさんはTwitterを使っています 「CSPというかgoroutine/channelはアレは結局よくわからん。いくつかイディオムちっくなものを覚えれば応用もできるようになるんだけど、actor modelのように腑に落ちる何かではないんだよなぁ」 / Twitter

めざそう言語処理系の沼 カテゴリーの記事一覧 - Arantium Maestum
第2回 「単一代入」と「末尾再帰」 | 日経クロステック(xTECH)
chap11.pdf
chap12.pdf
D_Ugawa_Tomoharu.pdf
25_1_167.pdf
SLACS98 program
athos))))))))さんはTwitterを使っています 「継続渡しスタイル、理解するのに結構苦労した覚えがあるけど、CPS版mapとかCPSで二分木をトラバースする(なんでも継続に解説がある)あたりのコードがそらで書けるようになると悟りが開ける認識。モナドでいうStateモナド的な位置付けのイメージ。」 / Twitter
Swift async/await を支えるモナド、継続、コルーチン / iOSDC Japan 2021 - Speaker Deck
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「fn myfunc(a: i32, b: i32, c: i32) -&gt; i32 { .. } let num = pa!{ 1 |&gt; (myfunc 2 3 $ myfunc 4 5 6 ) }; みたいな感じでRust中で使える部分適用がほしい」 / Twitter
yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「Rustでパーサを書いているけど、部分適用や継続演算子のような関数型言語の機能を使いたくなるが、Rust上でOCamlのような文法を使えるマクロを提供すれば解決するのでは?と思った」 / Twitter

並列・並行

awk 的な言語で並列処理

κeenさんはTwitterを使っています 「Rust製のAWK(っぽい言語)の実装。型推論してJITしたり並列化したりSIMDで高速化頑張ってたりするらしい ezrosent/frawk: an efficient awk-like language https://t.co/LbWgvlTsOj」 / Twitter
ezrosent/frawk: an efficient awk-like language
Miura HidekiさんはTwitterを使っています 「Rustでどうやってパーサー書くんだろう?(Cみたいにgetchar/ugetcがないっぽい)って悩んでいたけど、分かった。ありがたい https://t.co/vKPnrNLB8L」 / Twitter
frawk/src at master · ezrosent/frawk
Miura HidekiさんはTwitterを使っています 「結局、プログラム全体をがばっと文字列で読みこんでおいて、部分文字列を見ていけばいいだけか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/fK45utrZZe awkで並列処理って意味あるのかな?って思ったけど意味大ありだな。賢い」 / Twitter
frawk/parallelism.md at master · ezrosent/frawk
Shiro KawaiさんはTwitterを使っています 「@miura1729 こういう粒度での並列処理あんまり考えたことなかったな。なるほど…」 / Twitter

非同期など

Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C#の非同期プログラミングにおける「やっていいこと・いけないこと」一覧: https://t.co/2akbhgZ2QI」 / Twitter
AspNetCoreDiagnosticScenarios/AsyncGuidance.md at master · davidfowl/AspNetCoreDiagnosticScenarios
chikoskiさんのツイート: "そうか。パターンマッチが、メソッドの代わりになるのか。"
κeenさんのツイート: "「エラー処理もエラートークンとして表われる」 #compiler_study"
INADA Naokiさんのツイート: "monoでasync/await多用したコードのプロファイル結果を見てるんだけど、やっぱりスタックトレースが ThreadPool や Task を起点とする短いものが大量にあって、アプリケーション視点のスタックトレースが見えにくくなってるので、 Go の方が分かりやすいなぁ。"
INADA Naokiさんのツイート: "見た目上は async / await でスッキリ書けると言っても、実際には細切れに分割された無名の関数がスレッドプールでコールバックされまくってるだけなので、デバッグしたりプロファイルしたりするときはコード上のわかりやすさが消える。 https://t.co/D0sy2dFOMV"
.NET/.NET Coreのスタックトレースを洗練
渋川よしきさんのツイート: "Go言語がシンプルに書けるのは、同期APIを非同期に扱ったり、ブロッキングをノンブロッキングにしたり、入力側と出力側のプロトコル変換が容易で、インピーダンスを合わせるのが超絶楽、というのがコアにある気がすごいしてる。"
なかのん&マジックさんのツイート: "ブラウザのエンジンの非同期化の何が難しいかって、入力との同期何だよな。例えば、APZは、wheelイベントのリスナがカーソルの下にある時は非同期描画を行わない。preventDefault()でキャンセルされるかもしれないから。 #もずでぶ"
chikoskiさんのツイート: "SPAの人たちって、リンクやURLについてどう思ってらっしゃるんだろう。とサイトをみていて思う。アプリ育ちの人たちにとっては、別タブで開くってありえない(もしくは、させたくない)操作なのかしら。"
chikoskiさんのツイート: "状態とリソースの区別が難しいとは思う。ゲームの途中状態みたいなものへはリンクできる必要はないと思う。Twitterのタイムラインのように、DBのエントリーを一覧表示し、操作で各エントリの詳細を表示する場合は、それぞれのエントリに対してリンクできるべきだと思う。前者は状態、後者はリソース。"
chikoskiさんのツイート: "node.jsの非同期処理について厳密な定義が読みたい人は、こちらをどうぞ https://t.co/lSL4m75rg6 #wejs"
Semantics of Asynchronous JavaScriptTechnical report, 2017-07-26
なかのん&マジックさんのツイート: "がんばって誰が問題のイベントの複製をやっているのか突き止めたかったけど、スタックトレースからは分からなかった。イベントキューに放り込まれてて、そのキューからの取り出し以降しか見えないから。"
κeenさんはTwitterを使っています 「面白かった。Actorモデルは表現力が足りないという仮説の下mutationなどを入れたモデルを開発。メッセージパッシングにsesstion type、mutationにseparation logicを使ってる。結果、actorにrefを渡してmutateするプログラムのreasoningができる。実装はIris。 https://t.co/Ul29XkcJj2」 / Twitter
κeenさんはTwitterを使っています 「ところで並行プログラムのモデル、おおまかにメッセージパッシングとメモリ共有の2種類があって、reasoningのしやすさからここのところはメッセージパッシングが優勢だったという認識なんだけど今回のモデルみたいにメッセージパッシングに部分的にメモリ共有を混ぜたやつはどこまで戦えるんだろう。」 / Twitter
RyuseiさんはTwitterを使っています 「async/awaitは、「Promise を使った非同期処理を平易に記述するための糖衣構文」ではなく、「古典的な制御構造を非同期処理に埋め込むための構文」と捉えるべきではないかと思います。」 / Twitter
RyuseiさんはTwitterを使っています 「async/awaitと言うから、こいつらが重要に思えてしまうけど、本当に重要なのは、async関数に埋め込まれたlet文だとかwhile文だとかfor文とかtry/catch文の方です。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに、この間訳あって脱糖しようとしたらやっぱforの翻訳がめんどくさかった... &gt;RT」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Pythonのasync/awaitで、簡単にスレッドで実行できて感心した。スレッドだと速度は速くならないけれど、ブロッキングするコードも書ける。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/awaitも使ってみないと。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitでブロッキングしないように頑張るなら、Erlangで良いんじゃ無いのかって気もするが。」 / Twitter
Future と Promise | Scala Documentation
ES2020 確定した機能セット
ytakanoさんはTwitterを使っています 「GoroutineはCSPやπ計算の流れをくむ並行プロセスで、コルーチンは中断再開可能な関数なので、出生を考えると別物に思う。 なお、コルーチンは並行プログラミング入門の5.2章で、π計算は8.4章で扱ってます!(ダイレクトマーケティング)」 / Twitter
ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
ytakanoさんはTwitterを使っています 「Futureの実現にコルーチンが必要な都合上、RustのFutureトレイトにはコルーチンと同等なインターフェースが定義されている都合上、難しいですね。pollがコルーチンの低レベルインターフェースで、async/awaitで利用するとFutureと抽象化される認識です。」 / Twitter
legokichiさんはTwitterを使っています 「並行プログラミング入門、Futureのことをコルーチンと読んでる箇所があってもにょる」 / Twitter
ytakanoさんはTwitterを使っています 「これも難しくて、コルーチンを使って抽象化したモノ(Futureなど)は同じくコルーチンと呼ぶべきなのかという問題だと認識しています。全体は部分の総和なのか。主義主張によると思いますが、自分は別物かなと。」 / Twitter
legokichiさんはTwitterを使っています 「Rustにコルーチンはない、ことはなくてasync blockはコルーチン以外の何物でもない気がするがこの辺の解説大変そう(こなみ」 / Twitter
PHPで書いて覚える非同期処理 / php-async-programming - Speaker Deck
JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー
JavaScriptの非同期処理をじっくり理解する (2) Promise
🈚️うひょ🤪✒📘さんはTwitterを使っています 「&gt; つまりタイミング管理上 yield と yield undefined は同等ですが、 return と return undefined は違うということになります。 じつに楽しい言語だ。これだからやめられない(?) / JavaScriptの非同期処理をじっくり理解する (3) async/await|Masaki Hara https://t.co/CPWrV4yX8P #zenn」 / Twitter
JavaScriptの非同期処理をじっくり理解する (3) async/await
κeenさんはTwitterを使っています 「へー。(非同期処理をしない)非同期関数とランタイムの組み合わせしだいではコンパイラが非同期の部分を完全に消せるんだ。これを利用してトレイトを非同期に寄せといて必要に応じて同期APIでラップできる。 Rust async can truly be zero-cost https://t.co/IqpLClTLW8」 / Twitter
Rust async can truly be zero-cost
こー1@趣味のアプリエンジニアさんはTwitterを使っています 「Kotlinコルーチンによる非同期処理とその例外の対処が理解不足だな🤔 あと、ViewModelのライフサイクルもちゃんと意識できてない🤔 動くだけなら作れるけど、安全な実装をするのはちゃんとした理解が必要だなー。 こういうのは一番公式ドキュメントが詳しく書いてある。」 / Twitter

○○がモナドではない

がくぞさんはTwitterを使っています 「「○○がモナドではない」と言われる場合、大抵は○○とそれが標準で提供する操作の組み合わせがlawを満たしていない、という意味かと思います。Promiseとthenとresolveの組がlawを満たさない例は https://t.co/x0VzN3Re72 とかで書かれてますね(続」 / Twitter
javascript - Why are Promises Monads? - Stack Overflow
Masaki HaraさんはTwitterを使っています 「Promiseがモナドではないっていうのは ・Thenableかどうかで分岐が入ってる ・thenを打つたびに必ず1 microtask分待つ あたりから来てる主張かな? これだけならちょっと定義を頑張れば何とかモナドにすることはできそうな気もする。」 / Twitter
がくぞさんはTwitterを使っています 「Promise&lt;{value: T}&gt; とそれに対応するpure/bind的な操作を提供することでlawを満たす組を定義する事はできる気はしますが、それが定義できる事とPromise(とthenとresolveの組)がモナドである、と言う事は別の主張かと思われます」 / Twitter
Masaki HaraさんはTwitterを使っています 「前者はPromise&lt;T&gt;のかわりに Promise&lt;{ value: T }&gt; を使う、後者はタイミング差を吸収するように同値性を定義するでいい気がしている」 / Twitter
もるさんはTwitterを使っています 「@qnighy タイミング差を無視してしまうとpromiseの持っている特性が失われてindentityモナドになってしまいますね。無理にモナドに押し込めるよりタイミング差で順序付けた ⊒ でモナド則を緩めて捉えるのがいいですよ」 / Twitter
Masaki HaraさんはTwitterを使っています 「@eomole 非同期プログラミングでやりたいことは同期プログラミングでやりたいことと同じなので、その意味では「Identityモナドになってしまう (?)」というのは正しいのでは?」 / Twitter
もるさんはTwitterを使っています 「@qnighy (JSのpromiseの利用例を考えてもこの仮定が真であるかはかなり疑問がありますが)非同期プログラミングと同期プログラミングでやりたいことが同じであれば、identityモナドとして抽象化する際に捨象した部分に価値がないので、おっしゃるとおり妥当な抽象化でしょう」 / Twitter
もるさんはTwitterを使っています 「@qnighy 一方identityモナドであるとわかったからと言えることは自明なことだけなのでわざわざモナドとみなすことで得られる旨味はなさそうです。カッコを付け替えたときにタイミング差がどうなるかなど非同期プログラミングの挙動を盛り込んだ抽象化の方が利用価値がありますね。目的次第ですが」 / Twitter

依存関係グラフ

LMNtal

CSLMNtal (仮) チュートリアル
Research Areas of UEDA Lab.
LMNtal - LMNtal PukiWiki
jssst2002-dklic.pdf
_pdf

PDF

26_3_109.pdf
t-kanemt_sigss.pdf - t-kanemt_sigss2.pdf
__ォ__e_杏M_本 - A_4.PDF
1093-40.pdf
doctoral.dvi - doctoral.pdf
Ito.pdf
description_ja.pdf
SE-171-11.pdf
223208578.pdf

Makefile でファイルの依存関係をグラフ化する - Qiita
データフローと依存関係グラフの並列化
プログラム依存グラフを利用した 情報漏洩解析手法の提案と実現 - ppt download
CiNii 論文 -  プログラム依存グラフ可視化ツールの開発
プログラム依存グラフを用いたリファクタリング候補の特定と可視化 : 2010-12|書誌詳細|国立国会図書館サーチ
佐々木 晃 (Akira Sasaki) - プログラム依存グラフを用いた機能性によるソースコードの分類 - 講演・口頭発表等 - researchmap
PDG (プログラム依存グラフ) : R-Study
依存関係グラフ
依存関係フローグラフの例
Understand 5の新機能・改善点 | テクマトリックス株式会社
依存関係 | Understand
Understand Blog: グラフィカルビュー - 依存関係グラフ
依存グラフの解決を行うオブジェクトが必要な理由 #CodePiece
クラスの依存関係グラフ 4 - 超ウィザード級ハッカーのたのしみ
algorithm - トポロジカルソートの依存グラフのエッジ方向? - 初心者向けチュートリアル
SQLスクリプト上でのテーブルや共通テーブル式の依存関係を可視化する|Dentsu Digital Tech Blog|note
Pythonコードの依存グラフ生成 - Zaike Yuki Blog
pythonの依存関係解析ツール、pydepsを使う - Techブログ - MNTSQ, Ltd.
phpを使って簡単な依存グラフを可視化する方法は?

await 境界を超えて値を保持できないようにする警告

Takashi KawasakiさんはTwitterを使っています 「これは他の言語にも欲しい。」 / Twitter
ドッグさんはTwitterを使っています 「await 境界を超えて値を保持できないようにする警告 #[must_not_suspend] 属性が rustc に実装されてる.例えば mutex など await 超えて長期間保持し続けるのが適切でない値の型に使う RFC: https://t.co/UDPLPL9Qld 実装: https://t.co/lBcFnQ0NHX」 / Twitter
rfcs/3014-must-not-suspend-lint.md at master · rust-lang/rfcs
Implement `#[must_not_suspend]` by guswynn · Pull Request #88865 · rust-lang/rust
ドッグさんはTwitterを使っています 「s/mutex/mutex のロック/」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「というか、静的解析でも比較的簡単に実装できそうだよな。」 / Twitter

Swift

がくぞさんはTwitterを使っています 「これやるにはflatMapだけじゃなくてsequence/traverse的な操作も必要そうですね。for await 使うのに Async Sequences にする必要がありそうみたいな話ですかね?」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「Swiftのasync/awaitについて同僚に解説してもらった。複数のデータを1つのAPIからバルクで取得して、要素ひとつひとつを別のAPIの引数にするみたいなN + 1的なコードをflatMapで書きたいのに型を合わせられない😇 https://t.co/E8Mk18dts4」 / Twitter
flatMap(_:) | Apple Developer Documentation
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@gakuzzzz そうですね。まさにtraverseがあればいいScala的な直感では思います!」 / Twitter
がくぞさんはTwitterを使っています 「@_yyu_ ですよねー」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@gakuzzzz for awaitは回す対象のコレクション的なものを逐次的に進めることしかできないと思っていて、コレクションの順を無視してどんどん進んでくれ🙏みたいな感じというかそういうことを書きたいですね。」 / Twitter
がくぞさんはTwitterを使っています 「@_yyu_ あー なるほど、、、、、、」 / Twitter
がくぞさんはTwitterを使っています 「async/await たしかに単体だと判りやすいんだけど、ループ中の使い方とかが言語によって色々違ってたりして、御託はいいからApplicativeとTraverse持ってこい!みたいな感情になるときあるよね」 / Twitter

Twitter

分散処理に詳しいオタクさんはTwitterを使っています 「"平行性"って英語だと"parallelism"なんだけど、"parallelism"を(計算機の文脈で)和訳すると"並列性"になるのどっかでバグってると思う。まぁ並行性と平行性はそもそも全然別の話なんじゃが。」 / Twitter
こば(右)- Koba as a DB engineerさんはTwitterを使っています 「@kumagi 並行性をconcurrencyと訳したりもしますね。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「@tzkb ちなみに僕はごっちゃになった時はparallelという単語は縦線が多いから同じく縦線の多い"列"と紐づけ、concurrentという単語はそれに比べると横線が多いので"行"と紐付けることで、並行・並列とconcurrent・parallelの混乱を解決しています。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「僕の感覚では 並行: 朝ご飯を食べながらニュースを見る、のように複数の作業を手段はどうあれ時系列的にオーバーラップした状態でやること 並列:白米を咀嚼して嚥下しつつ目がニュースの映像を解釈して理解する、のように実際の動作が同時に行われる事。仕事の種類は関係ない https://t.co/7CMRYQGNgl」 / Twitter
君たちの「並行」の理解は間違ってる
分散処理に詳しいオタクさんはTwitterを使っています 「ご飯時にテレビをつけてさえいれば、ニュース鑑賞と食事を実際は交互にやっていてもそれは並行作業とは呼べる。目的が複数あれば並行。 それの効率化として咀嚼する間に暇な目と脳をニュースに向けるのなら並列作業。目的の数に依らず独立したアクチュエーターが複数あれば並列。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「つまり並行・並列ってのはラベルを付けるレイヤーが違うので、並行かつ並列という状況もありうるし、例えば両手に箸を持つ事により倍のスループットで白米を口に運ぶというのならそれは並列と呼べる。計算処理にDMAをオーバーラップさせるのも複数のアクチュエータを同時に動かすので並列処理。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「普段のCPUもメモリコントローラーとALUが同時に動いとるやんけみたいなクソリプを無限につければ何でも並列処理とは呼べるんだけど、まともな文脈において並列処理ってのは「複数のアクチュエータを同時に駆動させる事による高速化」を縮めて言ってるだけなので高速化とは関係のない文脈では使わない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「並行に関して言うと concurrent が con-current じゃなくて concur-ent なのは罠だと思う。register 的なアレ」 / Twitter
KOBA789さんはTwitterを使っています 「これは定義ではないけれど、並列化はそれらのタスクを直列に実行したときよりも完了までの時間が短くなることをしばしば期待するよね」 / Twitter
KOBA789さんはTwitterを使っています 「下のレイヤーの詳細を知らずに速いソフトウェアを作れるわけなかったわ。大変失礼しました」 / Twitter
_ko1さんはTwitterを使っています 「@KOBA789 下回りの詳細を知らないと速くできないCSの敗北」 / Twitter
KOBA789さんはTwitterを使っています 「@_ko1 leaky abstraction に勝ちたい」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「concurrentとparallelについては昔@kumagiさんとやらかしたことがあったなあ(ぉぃ 「concurrentとparallelの違い説明会」 https://t.co/M3TT95Lgm2 個別の事例に対しこれは concurrent? これはparallel?って判断すれば意見はほぼ一致すると思うんだけど、一般的に説明しようとなんか紛糾する?」 / Twitter
concurrentとparallelの違い説明会 - Togetter
Toshio HirotsuさんはTwitterを使っています 「@hidemotoNakada @_ko1 昔、殆どの環境が (physical に) single thread だった時代には、論理的に同時に走る (incl. time slicing) を並行(Concurrent)、物理的に同時に走るを並列(Parallel)と呼んでいた時代もあったような。」 / Twitter
_ko1さんはTwitterを使っています 「なお、私の理解: (走らせれば終わる)複数のタスクについて、 並行:待ってればいつか全部終わること(論理的に同時) 並列:並列計算機において、物理的に同時に走ること」 / Twitter
_ko1さんはTwitterを使っています 「@t_hrt @hidemotoNakada 昔ブックオフで買った情報処理大辞典というのを見てみました。 並列は物理的に同時っぽく書いてありますが、並行処理はあんまり論理的じゃなかったようです。 https://t.co/bc1ukJrWnF」 / Twitter
yohさんはTwitterを使っています 「並行/並列の"厳格な"定義はハナから無いと考えたほうが気楽なのかもしれず 文脈依存説」 / Twitter
yohさんはTwitterを使っています 「といいつつ 個人な感覚では タスク記述の論理的な分離性が主眼=並行(concurrent)/タスク処理の物理的な高速化が目的=並列(parallel) 派」 / Twitter
画力・博士号さんはTwitterを使っています 「「並行処理に対してユニットテストを走らせる」ということ自体がナンセンスな気もするんよな,こういうところこそbisimulationの証明手法や(higher-order) model checkingが活かせる対象なんじゃないかなと思える」 / Twitter
画力・博士号さんはTwitterを使っています 「「活かせる」はここでは特に「産業的にも要請されやすい」の意です」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「雑なテストだけど、Big Sur だと TaskGroup でいっぱい Task つくると作っただけ Thread ができるけど、同じコードを Monterey で実行するとCPUの数(M1なら8個)までしか Thread ができない。Swift concurrency: Behind the scenes のプレゼンで言ってた通りの挙動してる。 https://t.co/VdnOdaoHUv」 / Twitter
thread.swift
mod_poppoさんはTwitterを使っています 「production-qualityやproduction-readyが「量産型」と訳されているらしい」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「自作言語処理系でコルーチンを実装してみた。といっても、アセンブラの力を借りてるんですけどね。これを言語組み込みの機能として実装してみたい。 https://t.co/yRTG79i3UD」 / Twitter
令掛ベインさんはTwitterを使っています 「並行で動作するステートマシンを渡したらランタイムがスレッドとかを使って並行計算をしてくれる、というプリミティブを用意してる。チャネルの読み書きやタスクの生成などの副作用をランタイム側に隠すため #milone_lang / https://t.co/wLkDPBLFw2」 / Twitter
milone-lang/FSharpOnly.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
令掛ベインさんはTwitterを使っています 「並行処理ではコマンドの処理が完了してアクションが生成される順番が非決定的なので、consumerはactionの順番に依存しない必要がある (可換性)。結果をソートとかで標準化して、決定性を取り戻してもいい #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「使用側: ソースファイルを並行にパースしてる。パースした結果の構文木に含まれるopen宣言から新たな依存しているモジュールが見つかる、というのがちょっと厄介 / https://t.co/inODypHBZl #milone_lang」 / Twitter
milone-lang/AstBundle.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「Rustのstd::task::Contextは型じゃなくてトレイトにすべきだったのではないだろうか。 これがトレイトなら、スケジューラが独自のSleep機能を有するFutureを提供しやすくなるし」 / Twitter

satさんはTwitterを使っています 「スレッドの説明に必要なのは - 概要 - ネイティブスレッド - グリーンスレッド - つらいところ - PythonのGILとかRubyのGVLとか - スレッドの概念の隠蔽(goroutineとか) とかかなあ。あるいは概要だけ書いてお茶を濁す」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi ・スレッド間で共有されるリソースとその制御 ・スレッドのリソース制御 ・スレッドとNUMA ・スレッド間通信 ・スレッドを区別したりしなかったりするsignalとかprocfsとか古い統計情報とか古いユーティリティ群の各OSおよびバージョン別の状況と、それらを使おうとするユーザを説得する(文字数」 / Twitter
新しい並列for構文のご提案
できる!並列・並行プログラミング
κeenさんはTwitterを使っています 「コンパイラの処理を1段階ずつ適用していきながらasync/awaitがどう変換されていくかを追う記事 lowering async await in rust - wiki https://t.co/Fsuinoj0rH」 / Twitter
lowering async await in rust - wiki
Unhandled Rejection の考え方 - from scratch
kateinoigakukunさんはTwitterを使っています 「@miura1729 これは継続ではなくコルーチンですが、LLVM IR上でresumeやsuspendのマーカーを配置して、専用のパスで低レベルな表現に降下する機能がありますね。 https://t.co/BFh3hMD085」 / Twitter
Coroutines in LLVM — LLVM 13 documentation
JavaScript のスレッド並列実行環境
エクサスケール・コンピューティングの鍵を握るLLVM | HPCwire Japan
自作Goコンパイラでマルチスレッドが動くようにするまで
Stream API並列実行スレッドプールを明示指定 - yohhoyの日記
paraphrase_langさんはTwitterを使っています 「Paraphrase の並列処理のベンチマークとして使用しているメルセンヌ素数の探索プログラムでは、2^5000-1 までを確認する。 M1 mac だと数秒で終わるので、2^10000-1 まで計算=22 番目まで計算させてみた。1963 年に発見されたものまでなら 10 秒程度で計算できる (^^b https://t.co/0RABze90a6」 / Twitter
メルセンヌ数 - Wikipedia
近況 2021-09-30 - ベインのブログ
kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「なるほど、ROSの本質は通信だからベースにCSPやアクターモデルの思想があるErlang(Elixir)を利用するっていうのは理にかなっているな #func_party」 / Twitter
アクターモデルのサポート状況について
関数型っぽくROSロボットプログラミング
rclex/rclex: Rclex: ROS 2 Client Library for Elixir
Hyman's Code
Certifying Derivation of State Machines from Coroutines (POPL 2022 - POPL Research Papers) - POPL 2022
がくぞさんはTwitterを使っています 「async/await 確かにFutureと比べるとifとかの制御構造と混ぜて使いやすいのだけど、 for await of とか他の制御構造と混ぜた時に間違えやすかったり誤った使い方してることも多いので、Futureとtraverse/sequenceでよくな~~い?って思う事もある」 / Twitter
がくぞさんはTwitterを使っています 「for await ... of とか map(async ...) とか async/await を使う上で専用のアレコレを把握する必要があるけど、traverse/sequence は Future に限った概念じゃないし一つ覚えればいくらでも他に応用が効くあたりがまーいいよね的な」 / Twitter
golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin
Golangのスケジューラあたりの話 - Qiita
ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
The Go netpoller - Morsing's blog
The Go scheduler - Morsing's blog
JEP draft: Virtual Threads (Preview)
ぽんこつさんはTwitterを使っています 「AwaitされてないFutureを探すという苦行をしている(本当に苦行」 / Twitter

defer 遅延評価

C に defer

mattnさんはTwitterを使っています 「C言語に defer が欲しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「C言語版のdefer、移植性を無視すれば、return addressと変数の内容をクローズしたクロージャーを作って、スタック上のreturn addressをそのクロージャのアドレスに書き換えることで実装は可能な気がする」 / Twitter
Miura HidekiさんはTwitterを使っています 「GCCの拡張機能を駆使すれば分からないけど、基本的にC言語そのものでは無理だと思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「setjmpとかやられると無理か。setjmp半端ないって。あいつスタック無視してジャンプしまくるし。そんなのできひんやん普通!」 / Twitter

Goメモ-18 (遅延呼び出し, Defer, Tour of Go) - いろいろ備忘録日記
Go言語のdeferを正しく理解する | How defer in Golang works - Qiita
【Go入門】deferによる遅延処理とランタイムパニック
メタ太郎: "goのdeferはそれ自体は遅延評価だけどdeferで呼ぶ関数の引数は即時評価されるという罠にハマ…" - マストドン丼部
お気楽 Go 言語プログラミング入門
Go言語のdefer,panic,recoverについて | エンジニアへの道
非同期と継続と私 - 技術日記@kiwanami
Rubyで遅延評価を実行する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
A Tour of Go
遅延実行とレイジー評価 - LINQ to XML | Microsoft Docs
エヌユルさんはTwitterを使っています 「Data.Text.Lazyとか何の役に立つんだと思ってたけどよく考えてみると無限の可能性のあるデータ型をshowしたものを出力するとかには普通に役立つ」 / Twitter

構文

Kota Mizushima (on a diet)さんはTwitterを使っています 「最近の言語は、値を返さないものも返すものも「関数」として一緒の構文で定義するのが主流ですが、VBとかPascalみたいに別構文の方が多少構文複雑になっても認知的負荷は下がるんではという仮説を考えてる。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「procedure next() だったら、先頭1トークン読んだ時点で、副作用起こすのだけが目的なのがわかるけど、function next(): Unit だと、型の部分を見て、さらにそれがUnitである事まで確認してようやくわかるんですよね。 構文が単純である事だけを重視したデザインって人間に優しいのだろうか。」 / Twitter
市川 真一さんはTwitterを使っています 「@kmizu ナント、C のような型を前置するような言語だと、早期に procedure か function か確認できるんです」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@tenpoku1000 一理ありますね。ただ、前置の型宣言はそれを考慮してもジェネリクスとか関数ポインタ(関数型)とか色々入れると解釈がめんどくさいとかいう問題があるので、最近の言語は軒並み後置の型宣言になってる気がします。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういう意外とよくあるケースのために簡潔に遅延評価するための糖衣構文みたいなのがほしくなるなぁ https://t.co/dESjEGMIwN」 / Twitter
Remove some uses of `foo.expect(&format!(...))` anti-pattern by fitzgen · Pull Request #3472 · bytecodealliance/wasmtime
for文のforはなぜforなのか? - yapattaのブログ

式指向・行指向

monaqaさんはTwitterを使っています 「Vim script 書いてると式指向で書けるエディタが羨ましくなるよね」 / Twitter
きりえさんはTwitterを使っています 「式指向言語と文指向言語。式は値を持ち、文は何かを行う。Rust は式指向言語で、すべての文が式であり値を返す」 / Twitter
式指向構文が言語処理系にもたらす複雑性 - ベインのブログ
関数型プログラミング言語の構文は「すべてが式」ではない - ベインのブログ
近況 2019-04-30 - ベインのブログ
HSP3 でスクリプト言語の処理系を書く - ベインのブログ
Pattern Matching - p1371r3.pdf
Rustの文でセミコロンを省略してよい条件 - 簡潔なQ
式指向プログラミング言語
LISP - Wikipedia

open recursion・expression problem

open recursion - Google 検索
expression problem - Google 検索
がくぞさんはTwitterを使っています 「なるほろなー class Functor t =&gt; Traversable t where traverse :: Applicative m =&gt; (a -&gt; m b) -&gt; t a -&gt; m (t b) class Functor t =&gt; Compos t where compos :: Applicative m =&gt; (t a -&gt; m (t b)) -&gt; t a -&gt; m (t b)」 / Twitter
病気の美少女さんはTwitterを使っています 「@gakuzzzz どっちが internal visitor 相当で、どっちが external visitor 相当でしょうか😈」 / Twitter
がくぞさんはTwitterを使っています 「@lyrical_logical TraversableがinternalでComposがexternalでは」 / Twitter
病気の美少女さんはTwitterを使っています 「手前味噌ですが、Object Algebras については過去にごくごく初歩的な部分だけを紹介した記事を書いているのでそちらへのリンクも貼っておきます。論文読んだほうが早い気もしますが。しかし九年前かあ… https://t.co/yKqW4QaLhP」 / Twitter
2012年に読んだ面白論文を紹介する会 - ろじかるんるんものがたり
病気の美少女さんはTwitterを使っています 「related work で所謂 open recursion の話。サブクラスのメソッド呼べるので open で強いけど結局クラスが first class じゃないと微妙と。first class traits なら十全に力を発揮できる。多分これは javascript に型付けする論文が流行ってた頃とかには触れられていただろうけれど。」 / Twitter
病気の美少女さんはTwitterを使っています 「open recursion すごい!→いやでもそんなにあってよかったーってことなくない?→ウーン確かに…となるのは、ぶっちゃけそこまで抽象的なプログラムが書かれてないのと、そもそもクラス関係が静的に決まる言語だとあんまり強くないよね、と。」 / Twitter
画力・博士号さんはTwitterを使っています 「open recursionがあると嬉しい場面,所謂expression problemが顕著ではある」 / Twitter
Yasuhiro InamiさんはTwitterを使っています 「この本質部分だけに注目すれば、関数型プログラミングでいう「コモナド」のことじゃないか、というのがすぐ分かる。」 / Twitter
Yasuhiro InamiさんはTwitterを使っています 「ちなみに個人的な「オブジェクトの定義」は 「コモナド+可変参照」なので、副作用も若干絡んできます。 副作用の境界をカジュアルに持ち込んですぐ不純粋化するのが、オブジェクト指向プログラミングの個人的な印象。 https://t.co/vSwOA7AFVl」 / Twitter
SwiftUI時代のFunctional iOS Architecture / iOSDC Japan 2020 - Speaker Deck
がくぞさんはTwitterを使っています 「オブジェクト指向がまた盛り上がっているがopen recursionやexpression problemに言及する人はまだまだ少ない様だ……」 / Twitter
zehnpaardさんはTwitterを使っています 「StroustrupはOpen RecursionがOOPの本質(抽象データ型に対する優位性)だと明確に認識していたようだ」 / Twitter
がくぞさんはTwitterを使っています 「僕もかつて同様に思っていたのですが、r.f(x) と f(r, x) はopen recursionという性質を見ると差分が存在している感じですね」 / Twitter
かとじゅんさんはTwitterを使っています 「"関数とデータ"とオブジェクトの境界が曖昧なところは確かにある。最近Go, Rustやってて思うが、r.f(x); と f(r, c); は字面が違うだけで同じ意味だと思う。関数でいい、オブジェクトでいいはどちらでも成り立つのではないか。」 / Twitter
かとじゅんさんはTwitterを使っています 「確かに差分ありそう。」 / Twitter
かとじゅんさんはTwitterを使っています 「f(r, c); → f(r, x);」 / Twitter
かとじゅんさんはTwitterを使っています 「@gakuzzzz そうか、thisかselfが遅延束縛されているということですかね。」 / Twitter
がくぞさんはTwitterを使っています 「@j5ik2o ですです。より言うと遅延かどうか(動的か静的か)よりもopenかどうか(後から差し替える事ができるか)がより重要な感じしますね」 / Twitter
かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。その辺の知識を得るには、文献はどのあたりあたるとよいですかねー?もしご存知なら教えてください。」 / Twitter
かとじゅんさんはTwitterを使っています 「@gakuzzzz TaPLかな?」 / Twitter
がくぞさんはTwitterを使っています 「@j5ik2o 僕もこの辺は文献から学習できたわけでもなくりりろじさんとかkmizuさんとか人に教えて頂いたみたいな所があり。まとまってると資料欲しいですよねー」 / Twitter
かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。欲しいですねー」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「実アプリケーションでopen recursionが無ければ死んでた!って状況に出会ったことがあんまりないんだよな… そこの振る舞い差し替えるんならcompositionで明示的にやったほうが良くない?って言って全部compositionに切り替えちゃう」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 それofそれ」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz うーむ…」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 性質としての明確な差分としてopen recursionは存在するけども、じゃあその性質をそんなに活用するかというと現実あまり活用してないので重要度は高くない。であればオブジェクトじゃなくて良くない?って話になるよなーという整理をしてます」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz なるほどなるほど」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 逆に言うとopen recursion以外の明確な性質の差分が存在するのならそれを知りたいのですが、そういった性質についての議論をあまり目撃しないのが寂しいなーと」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz たし🦀(fixによるopen recursionにJavaのコードをそのままトランスパイルしてみて起こる問題などを考えれば良さそう?)」 / Twitter
がくぞさんはTwitterを使っています 「@Kory__3 (そのアプローチはそのアプローチでとても有効そうですね。とはいえ例えばEPで言われたような「構造を追加するのは容易だが操作を追加するのは困難」みたいな性質はそのアプローチで導くの難しそうだなーという思いもあり)」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「以前 @gakuzzzz さんとopen recursionって結局いつ使うんだろう?みたいな話をしていましたけど、初めてこれはちょっと便利かも?という例に出くわした: - use-site: https://t.co/7ApqYjdIyH - declaration-site(TreeMap) https://t.co/1yq1In0c9l」 / Twitter
dotty/Quotes.scala at 7e0689996e0fd62012ba4982a4a6aefa23518c66 · lampepfl/dotty
s2mc-test/GenByteDecode.scala at 59e025711068d899ada8e605af18f29399655a3a · kory33/s2mc-test
ぱそこんわからんねこさんはTwitterを使っています 「TreeMapは構文木を再帰的に書き換えるための仕組みで、デフォルトだと何もせずに構文木を渡り歩くような実装がされており、これを一部のメソッドの一部caseをoverrideして、他をすべてsuperに投げなおすことで「すべてのTypeIdent(型変数参照)を置き換える」を少ないボイラープレートで書けてる」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「疑問1. (僕はデザインパターンに関しては超初心者なんですが)このパターンに何らかの名前はついているのか? 疑問2. デフォルト節をほぼ書かずに構文木の一部分のみを変更するような仕組みは遅延束縛無しだとどのようにうまく書けるか?このような問題に対処する一般的な機構はあるか?」 / Twitter

deepEquals

オブジェクトの比較

Satoshi ImaiさんはTwitterを使っています 「オブジェクトを===で比較できないというツイートを見て、equalで比較できる、そうCommon Lispならね。 と書こうと思ったが、ベクタとかが入るとダメになるから簡単ではなかった https://t.co/XVYhxR3ist」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 equalp では?」 / Twitter
Satoshi ImaiさんはTwitterを使っています 「@nfunato equalpもありましたね。ほとんど使わないから忘れていました・・・ equalp、文字列の比較がcase-insensitiveだったりと色々余計なこともやってくれますね。 https://t.co/OvLRnHrUTM」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 我々は case-insensitive な未来の国から来たのですよ (^^) ちなみに、取引先の士業の方にファイル名が全角/半角insensitive な人がいて「こいつ、進化形やな」と思ったことあります。」 / Twitter

INA LintaroさんはTwitterを使っています 「JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはどうやっても一致する(観測上は同じに見える)やつを同じとすべき? とか。」 / Twitter
INA LintaroさんはTwitterを使っています 「なんか昔その辺も含めた同値性判定のメソッドを(趣味で)実装しようとしてこれとかを参考にした記憶がある: https://t.co/oP6Uoc880t」 / Twitter
[PDF] Deep Equality Revisited | Semantic Scholar
INA LintaroさんはTwitterを使っています 「補足しとくと、x = { a: { a: x } } と x = { a: x } は同じか、みたいなやつ。(同じでいいとおもうがそれをちゃんと判定できるか。)」 / Twitter
Miura HidekiさんはTwitterを使っています 「少なくともRubyはそうだが、ある程度複雑な構造のオブジェクトを扱える言語ではパフォーマンスのボトルネックは究極的にはオブジェクトの同値性の判定にある気がする」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyでのオブジェクトの同値のパフォーマンスを上げるのがほんと大変 (現在 Arrat#__cmp_eqのインライン化コードを書いている。バグあり」 / Twitter
Miura HidekiさんはTwitterを使っています 「ある程度高性能なJITコンパイラを書いてその上で単なるベンチマークじゃないプログラムを動かしてプロファイリングを取ると、大抵 オブジェクトの同値判定かオブジェクトの生成に費やしている気がする (mrubyのJITでmmcを動かしたプロファイリングがそんな感じ」 / Twitter
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「そこで宣言型言語の出番ですよ.」 / Twitter
mattnさんはTwitterを使っています 「処理系そのものが deepEquals を持ってないのがそもそもイカンのじゃ。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「Schemeのequal?は「循環をunfoldして(無限に続くかも知れない)木として比較した場合に一致すること」という定義ですね。(equal? '#0=(a . #0#) '#1=(a a . #1#)) ⇒ #t https://t.co/ISWkt4vwo1」 / Twitter
再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
Shiro KawaiさんはTwitterを使っています 「GaucheはAdams&amp;Dybvigのアルゴリズムを使ってます https://t.co/KpFG8qzufu union-findでDFAとしての等価性を見るんですが、真面目にやると遅いので、一定の深さまで素直に再帰してからunion-findを使うように。」 / Twitter
equal.pdf
ytakanoさんはTwitterを使っています 「記事中にもあるけれど、「ある2つのプロセスが同じか?」と言う問題はπ計算やらを使って双模倣性と言う概念を定義すると答える事が出来る。 https://t.co/768dx35NdY」 / Twitter
再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
ytakanoさんはTwitterを使っています 「これやるとあまりに数学っぽくなるので、並行プログラミング入門では削ったトピックのひとつ。」 / Twitter
ytakanoさんはTwitterを使っています 「プロセスの双模倣性が、循環オブジェクトの同値性判定になるのは面白いですね。」 / Twitter

エラー処理

エラーメッセージ

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「設定ファイルが解析できません」「権限がありません」等のログほどイラつくものはない。どの設定ファイル? 何の権限だ? よいエラーメッセージは以下を表示すべし: - エラーが起きた文脈 (例: 設定ファイルのパス名) - エラーの種類 (例: 問題を起こしたトークン) - 解決方法 https://t.co/eVA0DhcXSt」 / Twitter
What's in a Good Error Message? - Gunnar Morling
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Redditのコメント: "ORA-00942: 表またはビューが存在しません。" おいこら、どの表なんだよ、ラリー?? https://t.co/O7kiaJv0lg」 / Twitter
What's in a Good Error Message? : programming
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ほかにもいくつか興味深い提案がされている: (ライブラリ・フレームワークの場合) - エラーメッセージはローカライズしないほうがよい - 用語、時制は統一せよ - エラーメッセージをAPI規約に含めるな - 秘密の情報を表示しないように注意せよ - エラーか例外発生のどちらかにせよ、両方は不要」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「昔の MPW (Apple純正Mac開発環境) Cコンパイラが本当に出していたエラーメッセージ...らしい: 「ここでtypedef名が出るとは驚きだね」 「この関数はもうやったよ」 「ハア?」 「シンボルテーブルに空きがありません - お近くのApple販売店からRAMをお買い求めください」 https://t.co/PdYqryhLd6」 / Twitter
https://www.cs.cmu.edu/~jasonh/personal/humor/compile.html

井山梃子歴史館さんはTwitterを使っています 「SQLiteっぽい https://t.co/b2Xt7k5Uq6」 / Twitter
The Use Of assert() In SQLite
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「assert にも同様の濫用があって「クラッシュは仕様」と「クラッシュしたらバグ」が混在していて、その辺りは昔ブログに書いた: https://t.co/gagW3ixhT3 &gt; つまり、あらゆる assert は、プログラムが完全に想定 (仕様) 通りに動いたとするなら全く存在しなくても構わないように使うべきである。」 / Twitter
Panic を恐れるべからず - 何とは言わない天然水飲みたさ
井山梃子歴史館さんはTwitterを使っています 「SQLiteはテストで条件分岐をフルにカバーするとこまで含めての話でもある」 / Twitter
ドッグさんはTwitterを使っています 「自分はロジック上失敗しない(はず)なら .unwrap() でやってるな.そこでエラーになるのは実装上の理由なので,ユーザが見て分かるメッセージが出せないし,実装者が分かれば十分なら理由はコードコメントで十分で,あとはクラッシュした時のバックトレースが知れれば良い」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これは文脈次第だと思っていて、「クラッシュする可能性がある (何かあったときクラッシュするのが仕様である)」場合はエラーとなった理由を書くし、「クラッシュしえない (クラッシュしたら実装のバグである)」場合はエラーになりえない理由を書くようにしている」 / Twitter
ドッグさんはTwitterを使っています 「Result::expect の引数ってエラーになった理由を書くもんだと思ってる」 / Twitter
ふみ a.k.a. DJ MonadさんはTwitterを使っています 「Rustでunwrapからのパニックを出すライブラリを見るとキレそうになるが、Haskellは実行時エラーを出す関数の数々が言語仕様レベルで決められているので人のことを言えなかった」 / Twitter
ytakanoさんはTwitterを使っています 「Rustのパーサコンビネータのnomを使ってVerboseError使ったら、Rustコンパイラっぽいエラーを出せるのか。便利すぎる。 https://t.co/akPnA4LsFS」 / Twitter
Masanao IgarashiさんはTwitterを使っています 「エラー処理、いちいちnilチェックするのか面倒とかイケてないって評してる人は、実は今までそんなにいちいちエラーのこと考えながらコード書いてこなかっただけだったりしない?いちいちエラー処理したほうがいいよ?どの言語使っても。optionとかresultでも。」 / Twitter
Miura HidekiさんはTwitterを使っています 「エラーチェックして結局メッセージ出してexitするだけなら、デフォルトのエラーハンドラを用意するのも考え方だと思うけどな。そもそも、printfの戻り値とかチェックしないでしょ? (printfの戻り値もチェックするのであれば何も言えません)」 / Twitter
Miura HidekiさんはTwitterを使っています 「後、組み込み、これはチェックしないといけないわね。もっともメッセージ出して終了なんて甘いエラー処理は許されないけど。」 / Twitter
Inada NaokiさんはTwitterを使っています 「Goは好きだけど、この擁護の仕方にはあんまり同意できない。 大元でcatchしてエラーログとスタックトレースをログに書いて、Webアプリなら500 Internal Server Error返す、バッチならメールかslackに報告して終了するでいいケースは多い。 それはするべきエラー処理をサボってるわけでは無い。」 / Twitter
Inada NaokiさんはTwitterを使っています 「逆に、ちゃんとした回復処理がある場合を除いて、処理するべきではない。 場合によってはエラーを書き換えること(低レベルエラーから高レベルエラーにする)もあるけど、多用するべきではない。」 / Twitter
伊津野 英克さんはTwitterを使っています 「全くそのとおり。Webアプリならむしろ個別にエラー処理しないことが推奨される。」 / Twitter
コンパイラでのエラーの扱い - ベインのブログ
エラーハンドリング - tasuwo's notes
Takashi KawasakiさんはTwitterを使っています 「Goのjson-goldというライブラリの中でpanicしちゃって勝手に死のうとしてくれるんだが、recoverっていうのを使えばこういうのは回避できるの?キャストで死んでるのは良くわかるんだが、この程度で死なないでほしいんだよなぁ。 https://t.co/caPbH2gh2v」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「recoverっていうのはdeferと組み合わせて使うのか。例外時のRAIIのデストラクタって感じだな。そういう仕組みだから、戻り値には関与できず、戻り値は、型に合わせた既定値(このケースだと、"", nil)が返るのか。なるほど。 https://t.co/wQIBEHXGoJ」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Goのrecoverはchannelとセットで使えば良いという理解をした。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「基本、こういう風に使えば、jsのPromise reject的な感じで使える感じだな。ちゃんと使うなら string じゃなくて、もっとまともな型を作るべきだが。 https://t.co/9MONFh1YDn」 / Twitter

null安全

null安全でない言語は、もはやレガシー言語だ - Qiita
null安全を誤解している人達へのメッセージ - Qiita
「null安全」とは――Javaプログラマーが血と汗と涙を流さなくてすむ理由:Android Studioで始めるKotlin入門(3)(1/2 ページ) - @IT
null安全 :: やり直しJava
Null安全がすごい - 騒音のない世界 BLOG
C# 8.0 の null 安全はいろんな意味で革命だった - 翔星 Be ランド日記
Null安全 - Kotlin入門
プログラミング言語「Dart」が“null安全”に ~テクニカルプレビュー版がリリース - 窓の杜
Null の始末は「誰」がするのか
Unity 2020.2で利用できるC#のnull許容参照型について理解する | Yucchiy's Note
新規開発でnull安全が既定になった「Dart 2.13」「Flutter 2.2」 - 窓の杜

blog

その他

Egison - ブログ
Nervesの新機能mix firmware.patchの(偏った観点からの)ご紹介 / An Introduction to mix firmware.patch from my own view point - Speaker Deck
またまたまがる: どうして Julia を作ったか
7594591200220899443さんはTwitterを使っています 「Rubyみたいな古い言語が嫌われるのは当然ですよね(それは劣っているからというよりも古いからだ)、という話。定量評価つき https://t.co/0uyHfoVubq」 / Twitter
Green Vs. Brown Programming Languages - Earthly Blog
ブログ: 継承はパフォーマンス・ハックとして発明された
Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Networks Research & Development
Sawzall (programming language) - Wikipedia
本の虫: うっかりチューリング完全になっちゃったもの
関数型プログラミングとは結局何なのか | 黒曜の吹き溜まり
形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
競技プログラミングの問題を自動で解きたい - うさぎ小屋
AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape
システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase Tech
[WIP] 処理系Slackのミートアップに参加しました - yhara.jp
「さよなら Flaky 。不安定なテストの探し方」というお話 - Cybozu Inside Out | サイボウズエンジニアのブログ
プログラミング言語処理系の作り方 (競プロer向け) - うさぎ小屋
眼力 玉壱號さんはTwitterを使っています 「https://t.co/POTxocHqtR ほぼほぼ普段考えてる事と同じだた… コメント書いて情報量が増えるなら書く、増えないなら書かない。コメントは常にコードとの乖離の危険をはらむので書かずに済むのなら書かない方を選ぶ(i.e. code 側を理解しやすい様工夫する)」 / Twitter
Best practices for writing code comments - Stack Overflow Blog
リーダブルなコードを書く習慣の身に付け方・実践の仕方 - 2021-09-22 - ククログ
mod_poppoさんはTwitterを使っています 「一般受けする言語を作りたかったらC言語ライクな波括弧ベースの文法にして関数呼び出しには括弧を強制するようにしてメソッドをドットで呼び出せる構文をつけた方が良さそう(偏見)」 / Twitter
mod_poppoさんはTwitterを使っています 「配列にアクセスするためのシンタックスシュガーもあると良いですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「nullは「10億ドル規模の損失をもたらす過ち」と言われるの、NaNでも同じこと言われてるんだろうか? それとも浮動小数扱う能力がある人には問題ないんだろうか。どうナンだろう? cf. https://t.co/o42ORrxFJc」 / Twitter
nullが生まれた背景と現在のnullの問題点 ― null参照問題(前編) - Build Insider
続くといいな日記 – ptera 式 PEG パーサ生成法

κeenのHappy Hacκing Blog

自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
マクロやコンパイラプラグインの実装方法色々 | κeenのHappy Hacκing Blog
新しいコンパイラバックエンドcretonne | κeenのHappy Hacκing Blog
Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「Standard MLのwithtypeの挙動 https://t.co/tv2kGfi26c」 / Twitter
Standard MLのwithtypeの挙動
Summary of proposed changes · SMLFamily/Successor-ML Wiki
F-ing Modules, yabaitech.tokyo vol.5
κeenさんはTwitterを使っています 「Erlangの歴史を紐解きつつJIT導入への道程を示している。過去に高速化の話はいくつかあったがそれぞれ問題を抱えていた The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP. https://t.co/f1z09Cijsk」 / Twitter
The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP.
シャドイングの嬉しさ | κeenのHappy Hacκing Blog
【プログラミング言語速度比較】Collatz数列ベンチマークを言語別比較しよー! - 関数型言語で競プロ精進!
論文メモ:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
2020年振り返り | κeenのHappy Hacκing Blog
2021年抱負 | κeenのHappy Hacκing Blog
プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
今さら聞けないアヴィウムプルヌス入門 | κeenのHappy Hacκing Blog
今さら聞けないアヴィウムプルヌス入門のタネ明かし | κeenのHappy Hacκing Blog
論文メモの続き:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog

井山梃子歴史館

『トポスと高階論理』を読んでいる - 井山梃子歴史館
どうしようもなくnaive realism - 井山梃子歴史館
数学に正解は一つしかないのか? - 井山梃子歴史館

Message Passing

Message Passingという内輪のブログ的な何かを始めた | なーんだ、ただの水たまりじゃないか
バグのはなし - Message Passing
言語のはなし - Message Passing
Re: Re: Re: 言語のはなし - Message Passing

FPGA開発日記

コンパイラのための新しい中間表現 MLIR の論文を読む - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(2. MLIRに関するコード生成を試す) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(4. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(6. MLIRに関する発表資料を読む) - FPGA開発日記
QEMUが分岐命令を処理する仕組み(Relocationによるラベルの解決) - FPGA開発日記

Sine Lite Dies

Computing/Orphosの実装Mullosを支える予定の技術 - Sine Lite Dies
Computing/Orphosの実装Mullosを支える予定の技術 - Sine Lite Dies
Computing/Orphosの実装Mullosを支えつつある技術 - Sine Lite Dies
Computing/Orphosの実装Mullosを支えつつある技術 - Sine Lite Dies
Computing/Truffle言語の実装例KinokoMLをつくった - Sine Lite Dies
Computing/Truffle言語の実装例KinokoMLをつくった - Sine Lite Dies

ゆびてく

関数型つまみ食い: 関数型とはプログラミング言語ではなく、プログラムデザインの問題であることに気づく – ゆびてく
関数型つまみ食い: 関数型プログラミングの何が嬉しいのか? – ゆびてく
関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ – ゆびてく
オブジェクト指向とは何だったのか? – ゆびてく

本の虫

本の虫: また初心者にプログラミングを教える機会があった
本の虫: Erlangについて思うところ

ベインのブログ

HSP3 でスクリプト言語の処理系を書く - ベインのブログ
nullはポインタだがリファレンスではない - ベインのブログ
値とストレージの区別 - ベインのブログ
近況 2021-10-31 - ベインのブログ
リンクのための型エイリアス - ベインのブログ
近況 2021-12-31 - ベインのブログ

クックパッド開発者ブログ

Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ
Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ
プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
ruby/NEWS.md at v3_0_0 · ruby/ruby
プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ
プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ
Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
ISMM 2019 で発表してきました - クックパッド開発者ブログ
コード生成を用いたiOSアプリマルチモジュール化のための依存解決 - クックパッド開発者ブログ

Publickey

マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供 - Publickey
Ruby 3.0.0RC1が登場、型の記述や静的型推論ツールなど新機能。12月25日の正式リリースに向け - Publickey
Ruby 3.0正式版リリース。「Ruby 2の3倍速」到達、型の記述、スレッドセーフな並列処理など新機能 - Publickey
Node.jsの新LTS版となる「Node.js 16」正式リリース。Apple M1チップ対応、JavaScriptエンジン「V8 9.0」搭載など新機能 - Publickey
マルチプラットフォーム対応が進むKotlin。「Jetpack Compose for Web」登場、Webアプリ対応のUIフレームワーク - Publickey
JavaScriptツールチェインの統一を目指す「Rome」開発チームが起業、「Rome Tools, Inc.」を立ち上げ - Publickey
Rome Toolchain
マテリアルデザインを簡潔に記述できる「Jetpack Compose」がバージョン1.0に到達、本番環境で安心して利用可能に - Publickey
KotlinでAndroid/Web/DesktopアプリのUI開発を統一するフレームワーク「Compose Multiplatform」がアルファ版に - Publickey

はてなブログ

その他

histric-1

Pony言語を触ってみよう前編 - 虎の穴開発室ブログ
新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だったのか?』の草稿を公開します - まめめも
一緒に学ぼう,Rustで作る単相型システム - Explore cs in depth!
Big bag of pagesで型情報を節約する - 思考録++
compilium v2 (in progress)の工夫点 - /var/log/hikalium
仕様を変えられる言語bittnのメモ - Re:t0kが知ったこと
詳説コンピュテーション式 - ぐるぐる~
メタ関数のカリー化 - yaito3014のブログ
ループを使わず配列の和をとる方法 (日本語解説) - MoreBeerMorePower
自作プログラミング言語Malgoがかなりそれっぽくなってきた - ギークもどきの日記帳
世の中間言語を集める - ギークもどきの日記帳
多相からプログラミング言語を見る - 趣味はデバッグ……
Hanson & SussmanのSoftware Design for Flexibilityを読み始めた - Arantium Maestum
クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
NODE_MASGN / 多重代入 - ひとり勉強会
Deforestation で強連結成分分解を改善する - fetburner.core
nameofの罠 - ぐるぐる~
Notions of Computations and Effects - Just $ A sandbox
Call-by-needを採用した言語のインタプリタの実装 - fetburner.core
LLVMのAttributorというパス - 日記
monadからeffectへ - Just $ A sandbox
『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
Concurrent Cプログラミング言語―並行プログラミング入門 - hidemonのブログ
mRPC - mikutter blog
3imp ヒープ・ベース・コンパイラ/VM と CEK マシンの関係 (2) - Tociyuki::Diary
シンボル集合のリストによる安直実装 - Tociyuki::Diary
配列のスライスで cdr - Tociyuki::Diary
proper-list? 手続きのアセンブリ記述 - Tociyuki::Diary

Malgo開発記録:型シノニムとimport - 星にゃーんの日記帳
C++でファイルを後ろ向きに読み込むときはバッファリングに気をつけようって話 - Kampersanda's Blog
JavaScriptでパーサコンビネータのコンセプトを理解する(「正規表現だけに頼ってはいけない」の続き) - id:anatooのブログ
Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
jicchoさんはTwitterを使っています 「&gt; GPUのコア1つで256スレッド扱えるため、スレッド数は256から増やすとどんどん高速化できそうだ。 コア1つで256スレッド扱える?🤔」 / Twitter
arutema47さんはTwitterを使っています 「公開しました。おまたせしました。。 https://t.co/WJl1rQdARB」 / Twitter
CPUとGPUのマルチスレッディングの違いについて - arutema47's blog
jicchoさんはTwitterを使っています 「そんなに詳しくないけど、CPUのとこもよく分からん記述になってる気がする。 GPUのとこは明らかにおかしいので書き直してほしいね。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「ちなみにTPUは「NNの行列演算に特化するならそもそも複数のスレッド(プログラムカウンタ)要らなくね?」って発想で、数万個の演算器を数珠つなぎして演算途中のメモリアクセスもばっさり無くした巨大なシングルスレッド構成。 https://t.co/rvmEVWkR7d」 / Twitter

PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
SATySFiで数式を生成する ~ラムダ計算編~ - * *scrap*
小さなlisp処理系を作った - in neuro
Idrisとはじめる型駆動開発 - console.log( ME );
タイガーブックを読む:LR(0)構文解析は先読みするのか - uchan note
【Linux】JVM系言語以外でも暖気運転は効果があるのかの考察(修正版的な感じ) - 地方エンジニアの学習日記
LLVMベースの難読化ツールoLLVMの調査 - FPGA開発日記
LLVMベースの難読化ツールoLLVMの調査 (2. 生成CFGの調査) - FPGA開発日記
パーサコンビネータとPEGの違いについて - kmizuの日記
論文メモ: Towards a Theory of Type Structureを読もうとして挫折した話 - Arantium Maestum

note

定理証明支援系とは何か、何ができるのか|森北出版|note
Ractorで並列処理を試みる|グロービスデジタルプロダクト開発組織|note
Rが好きすぎてRでJVMを実装したnoteエンジニアに話を聞いてみた|note株式会社

Medium

Ruby 3.0 JIT and beyond | by k0kubun | Dec, 2020 | Medium
OCaml でコンパイラに入門するための2冊. この記事は言語実装 Advent Calendar… | by zenwerk | Medium
任天堂 NPNS における Erlang/OTP. Erlang & Elixir Fest 2019… | by V | Medium
Erlang/OTP と ejabberd を活用した Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」の 開発事例 - Speaker Deck

ロジックを書くときは抽象度を揃えるように気を付けている話 - がんばるぞ

PDF

Homepage of Kazushige TERUI
五十嵐 淳 (Atsushi IGARASHI)
famc.pdf
module_patterns.pdf
Exception Handling and Classical Logic - PPDP19.pdf
Tronso_35_16.pdf
階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
Strong normalizability of the non-deterministic catch/throw calculi - ScienceDirect
simple_ml_modules.pdf
LR構文解析の原理
情報学広場:情報処理学会電子図書館
配信講義 計算科学技術特論A (2019)(4月11日~7月25日) | 理化学研究所 計算科学研究センター(R-CCS)
整数の不思議(その1) - prog_languages2.pdf
06gun_04hen_07.pdf
名称未設定 - part2.pdf
超限帰納法
超限帰納法 - transfinite-induction-20210725.pdf
slpj-book-1987.djvu - slpj-book-1987-small.pdf
tfp12.pdf

スライド

実行時のデータ型の表現手法
20210530-meetup-unno - Google スライド
Kmkm プログラミング言語処理系が好きな人の集まり 定期ミートアップ 第5回 2021.07.25 - Google スライド
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
ET-IoT2021-SEPA9thJa
プログラミング言語Cyanの紹介
自前言語を仕事に使う話

infoQ

GitHubがすばやく安全にリリースを行うためにどのようにフィーチャーフラグを利用しているか
Crystal言語がRuby構文リリース1.0でCパフォーマンスを目指す
「Align-Define-Design-Refine」を使ったAPI設計ファーストプロセス
ゼロバグポリシを使ってバグを解決する
SOLID原則は最新のソフトウエアアーキテクチャでも重要か?

GIGAZINE

情報理論の父と呼ばれるクロード・シャノンの功績とは? - GIGAZINE
「良いコード」を書くための10のポイントとは? - GIGAZINE

POSTD

開発者が知っておくべきSOLIDの原則 | POSTD
13年分の未熟なゲームのコード | POSTD

GitHub

定理証明支援系

こたつがめさんはTwitterを使っています 「できた。とりあえず、正しくて単純な証明をやらせようとすると動く。 https://t.co/k5eUB8p0Jh」 / Twitter
kotatsugame/proof_assistant
kimiyuki@うさぎ🐇さんはTwitterを使っています 「定理証明支援系を書くの、いいよね」 / Twitter

Jikka

kimiyuki@うさぎ🐇さんはTwitterを使っています 「競プロの問題を自動で解いてくれるソルバ Jikka を作っています https://t.co/gwZuWGCdbu」 / Twitter
kmyk/Jikka: an automated solver for problems of competitive programming
kimiyuki@うさぎ🐇さんはTwitterを使っています 「「競プロの問題を自動で解く」にも様々な形がありますが、この問題を「プログラムを入力として受け取り、これを最適化して時間計算量を落としたプログラムを出力する」という問題へと整理し、Jikka はこれを解きます 競技プログラミングの問題を自動で解きたい - うさぎ小屋 https://t.co/WMmYRK6QMB」 / Twitter
競技プログラミングの問題を自動で解きたい - うさぎ小屋
kimiyuki@うさぎ🐇さんはTwitterを使っています 「具体的には、Jikka はかなり aggressive に計算量レベルの最適化をする Python から C++ へのトランスパイラになっています。ただしその Python 部分は競プロで問題にならない範囲でいくらか制限されていて、静的型付き純粋関数型プログラミング言語となっています」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「たとえば Fibonacci 数を求める愚直 O(N) の Python コードを行列累乗 O(log N) の C++ コードに変換してくれます https://t.co/XYulILOxpk」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「自動でセグメント木も貼ってくれます。愚直 O(N^2) が勝手に O(N log N) になります https://t.co/vBO9bUqzDM」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「もちろんなんでも解けるわけではなくて、解ける問題と解けない問題とがあります。具体的にはいわゆる「実家 DP」のあたりが得意です 行ってくれる最適化の一覧は docs/optimization.ja.md にあります https://t.co/2262Fn4NNm」 / Twitter
Jikka/optimization.ja.md at master · kmyk/Jikka

Sorbet Compiler

Miura HidekiさんはTwitterを使っています 「Rubyは静的型付け言語、そう言う処理系が作れたのだから間違いない &gt;RT」 / Twitter
Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
Miura HidekiさんはTwitterを使っています 「https://t.co/o5E1Ypvew7 パーサーもバイトコードを解析する部分も見つからなくて、悩んだけど説明見たらsorbetの解析結果が型情報つきの特製IRとあってなるほどと思った。」 / Twitter
sorbet/compiler at master · sorbet/sorbet
Miura HidekiさんはTwitterを使っています 「Rubyで単純に機械語やLLVM IRに変換しても余り速くなる気がしないのだが、Sorbetだと静的型情報を持っているわけなのでこれがどう効いてくるのか興味がある」 / Twitter

histric-1

ein-lang/ein: The functional programming language for scalable development
raviqqe/ssf: Structurally-typed strict functional core language
raviqqe/fmm
nikosai/lambda-friends: Web上で動作するラムダ計算のインタプリタ「らむだフレンズ」
セルフホスト可能なCコンパイラを書く – GitHub 出張所 – プログラム関係のブログはここに
自作コンパイラ基盤の内部構造を書くところ - uint256_t's blog
日刊Coroutines(0) コルーチンのおさらいと近年の動向(若干) - lilyum ensemble
先読み付き正規表現の微分について
ELVM Scratch 3.0 backend | Reinventing Square Wheels - algon's blog
Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの? - lilyum ensemble
ML Advent Calendar 2020 20日目
GitHub - miura1729/mruby-meta-circular: mruby by mruby
yuk1ty/learning-systems-programming-in-rust: 「Rustならわかるシステムプログラミング」
ab25cq (DAISUKE MINATO)
maekawatoshiki (uint256_t)
mir/MIR.md at master · vnmakarov/mir
手を動かせばできるLLVMバックエンド チュートリアル
TypeScriptでカリー=ハワード同型対応(?)
aalhour/awesome-compilers: Curated list of awesome resources on Compilers, Interpreters and Runtimes
Alternative names · coq/coq Wiki
kousoz80 ( スーザン・キャルヴィン)
Program Analysis Resources (WIP draft)
hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
OpeLa Register Assignment · osdev-jp/osdev-jp.github.io Wiki
jonsequitur/dotnet-repl
Standard MLと型生成性
Yosuke FurukawaさんはTwitterを使っています 「最高かよ... Rust のライフタイムと所有権のメカニズムを可視化して見せてくれる本 / “GitHub - rustviz/rustviz: Interactively Visualizing Ownership and Borrowing” https://t.co/0fYBUNJtg6」 / Twitter
rustviz/rustviz: Interactively Visualizing Ownership and Borrowing

ytakano/baremetalisp
kspalaiologos/malbolge-lisp: A lightweight (150MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.
daem0nc0reさんはTwitterを使っています 「Reverse Engineeringの無料教材。x86系だけじゃなくて、ARM系も含まれています。 https://t.co/aRGAcGCM9b」 / Twitter
mytechnotalent/Reverse-Engineering: A FREE comprehensive reverse engineering course covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
Go FujitaさんはTwitterを使っています 「『Pharo by Examples』はPharo Smalltalkのテキスト。 現行バージョン(9.0)対応の文章が少しずつ公開されているので、それを毎週追いかけています。 2018年版(ver 5対応)はひと通りよみましたが、その差分から学ぶことも多いと感じ」 / Twitter
Release Release v1.7.5 · guillep/PharoBootstrap
malbolge - Google 検索
Malbolge

Qiita

その他

Hello World くらいしかできない言語のアセンブラをつくる - Qiita
OneLang32の話でも - Qiita
Qiitaでたぶんもっとも参考にしてはいけないPythonの導入方法 - Qiita
「HTMLはプログラミング言語か」問題に終止符を打つ - Qiita
素朴な自作言語Pricのコンパイラをセルフホストした - Qiita
Pangaea言語のプロトタイプチェーンについて - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、ストラウストラップも書いてた説だけど(=例外でfree漏れが嫌ならクラス化しろ)、個人的には全く賛同できないなぁ。 小さな後始末のために、クラス名を考える/作るの面倒すぎる。 ---- 「 C++ でのより良い設計は後始末をデストラクタに押し込めるべき」 https://t.co/lFxlloNi8N」 / Twitter
defer っぽいもの - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(プログラミングにおいて、「名前を考える」コストって、もっと意識されて良いのになぁ、と思うことある)」 / Twitter

スケーラブルな開発のための新しいプログラミング言語:Pen - Qiita
プログラミング言語 Palan v0.4 リファレン ス - Qiita
表示的意味論がわからないので簡単な例を翻訳してみた。 - Qiita
2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
C++やPythonのいいとこ取りをしたいなら必ず考えるべきこと。 - Qiita
Linuxカーネルにおけるstrn系関数の挙動のまとめ - Qiita
デバッグは「うまく動かないピタゴラ装置の原因調査」だと考えてみよう - Qiita
DI って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
プログラマーを惑わせる3種類の委譲(委譲・Delegation/転送・Forwarding/.NET Delegates) - Qiita
形式言語理論における3つの『密』概念 - Qiita
コンパイラの中間表現いろいろ - Qiita
宣言型プログラミングとは何かをJavaとElmで考えてみる(前編) - Qiita
関数型言語のウソとホント - Qiita
CPS/DS変換 - Qiita
120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita
Coq/SSReflect/MathCompの資料 - Qiita
Coq/SSReflect/MathCompの資料 - Qiita
ラムダ式プログラミング一時間体験講座(Python/Ruby/JavaScript同時並行版) - Qiita
10行LISP評価器の実装例(各言語まとめ) - Qiita
スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
共変戻り値と反変引数 - Qiita
無名相互再帰の記述例(各言語まとめ) - Qiita
AWSにおける形式手法 - masateruk’s blog
Parallel Commits: An Atomic Commit Protocol For Globally Distributed Transactions
PGConf.Online 2021 - Consensus, Postgres, Multimaster
「形式手法はなぜ流行っていないのか」に対する異論 - interdb’s blog
000005272.pdf
000045158.pdf
swest13-S3-b.pdf
形式手法はなぜ流行っていないのか - Qiita
大学の数学の入試問題を量化子消去でサッと解く - Qiita
TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
最近見つけたおもしろ自作言語の紹介 - Qiita
25年前の未来の言語の話 - Qiita
Swiftコンパイラで採用されているパターンマッチの網羅性チェックの理論と実装 - Qiita
ウワサのBlawnを触ってみた - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「これはテーブル定義含めて1時間っていう想定なのかな。テーブルの定義もまたすごく大変だけど... / 1件のコメント https://t.co/fawNL99DX7 “もうAPIを自分で開発するのは古い?Hasuraの強烈な有効性について紹介する - Qiita” https://t.co/rv9yHhQSse」 / Twitter
もうAPIを自分で開発するのは古い?Hasuraの強烈な有効性について紹介する - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「文脈が明確で1カ所しか使わないなら敢えて定数にしない、ってのは確かにそうだなぁ。 / 他5件のコメント https://t.co/rTe0uOhbG3 “マジックナンバー使うな? どんどん使え! - Qiita” https://t.co/nhLIVGUJ7u」 / Twitter
マジックナンバー使うな? どんどん使え! - Qiita
ifとswitchどっちがいいのか問題 - Qiita
yoh2さんはTwitterを使っています 「わかる。デバッガによってはステップ実行がメソッドチェインのメソッド単位で進んだり、最後の呼び出しの戻り値を表示できたりする場合もあるけど標準的というほどじゃない。」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「変数に束縛せずにメソッドチェインするやり方、読みやすいんだけどなんかバグった時にデバッガで追いづらいんよな」 / Twitter
【C++】メソッドチェーンにおける未定義動作 - Qiita
関数型プログラミングが『銀の弾丸』であるという非常識な常識2022 - Google 検索
「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita

Zenn

ZennとClassmethod | Cat Knows
静的型付けスクリプト言語「kirl」
サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 2 - 新機能と変更点の総まとめ
Language Server Protocol に対応したミニ言語処理系を作る
複雑なアニメーションをプログラムする 〜Reanimate入門〜
Prattパーサであらゆる演算子をパースする
re2c の使い方
クラスメソッド、技術情報共有サービス「Zenn」の買収に関する契約を締結〜誰かのために、自分のために知見を共有するプラットフォームの開発を加速〜 | ニュース | クラスメソッド
Only My Rails Way
Miura HidekiさんはTwitterを使っています 「Only My Rails Way|yukito ohira https://t.co/uGGI1qHVC9 #zenn 大部分は分からいけど、「最初の記述と矛盾するようだが基本的にRubyは遅くないしRailsも遅くない。遅いのは99%自分が書いたIOかSQL」だけはものすごく同意した」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyは遅くない、良く分かっているのだが、それでもマイクロベンチマークを数倍速くすると言う余り意味の無いことに貴重な余暇時間を溶かしてしまう性を持っているアカウントがこちらになります」 / Twitter
プログラミング書籍を10年ぶりに改訂して気がついたこと
自作言語
Intel oneAPIのIntelコンパイラやDPC++についてちょっと調べた
Intel oneAPIを入れるとClangが死ぬかもしれない
静的型付けスクリプト言語 Cotowali

Wikipedia

論理

第五世代コンピュータ - Wikipedia
Guarded Horn Clauses - Wikipedia
KL1 - Wikipedia
Concurrent Prolog - Wikipedia
並行論理プログラミング - Wikipedia
論理プログラミング - Wikipedia
カリー=ハワード同型対応 - Wikipedia
コンビネータ論理 - Wikipedia
ゲーデルの完全性定理 - Wikipedia
述語論理 - Wikipedia
様相論理 - Wikipedia
古典論理 - Wikipedia
非古典論理 - Wikipedia
様相論理 - Wikipedia
時相論理 - Wikipedia
計算木論理 - Wikipedia
線形時相論理 - Wikipedia
義務論理 - Wikipedia
直観主義論理 - Wikipedia
ゲルハルト・ゲンツェン - Wikipedia
Gerhard Gentzen - Wikipedia
論理記号の一覧 - Wikipedia
Microsoft PowerPoint - HITproplogic.ppt - HITproplogic.pdf
量化 - Wikipedia
存在記号 - Wikipedia
全称記号 - Wikipedia
パースの法則 - Wikipedia
ボトム型 - Wikipedia
垂直記号 - Wikipedia

言語

Rust (プログラミング言語) - Wikipedia
LISPマシン - Wikipedia
シンボリックス - Wikipedia
Rust (programming language) - Wikipedia
Julia (プログラミング言語) - Wikipedia
Julia (programming language) - Wikipedia
TLA+ - Wikipedia
弱い参照 - Wikipedia
CLU - Wikipedia
CLU (programming language) - Wikipedia

チャーチ=チューリングのテーゼ

チャーチ=チューリングのテーゼ - Wikipedia
Church–Turing thesis - Wikipedia
決定可能性 - Wikipedia
Decidability (logic) - Wikipedia

宣言型プログラミング - Wikipedia
制約プログラミング - Wikipedia
項書き換え - Wikipedia
Haskell/Denotational semantics - Wikibooks
自明性 (数学) - Wikipedia
プロセス計算 - Wikipedia
アクターモデル - Wikipedia
セル・オートマトン - Wikipedia
コラッツの問題 - Wikipedia
決定問題 - Wikipedia
コンパクト性定理 - Wikipedia
クワイン (プログラミング) - Wikipedia
値 (情報工学) - Wikipedia
無限降下法 - Wikipedia
数学的帰納法 - Wikipedia
契約プログラミング - Wikipedia
ボイラープレートコード - Wikipedia
ALTQ - Wikipedia
形式科学 - Wikipedia
Formal science - Wikipedia
スペースカデットキーボード - Wikipedia
PAL (programming language) - Wikipedia
Pattern matching - Wikipedia
Functional programming - Wikipedia
メモ化 - Wikipedia
Memoization - Wikipedia
ソフトウェアファクトリー - Wikipedia

Twitter

その他

tagged type (branded type), opaque type alias

phenanさんはTwitterを使っています 「本当に欲しかったものは単なる type alias ではなくScala3 の opaque type alias だった」 / Twitter
がくぞさんはTwitterを使っています 「@phenan それofそれ」 / Twitter
がくぞさんはTwitterを使っています 「もしくは tagged type (branded type) みたいな」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「型エイリアス欲しい」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 本当に欲しいのは abstract type members ではないですか!?」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz エスケープ済のStringと未エスケープのStringを区別したい程度の要求なので……」 / Twitter
がくぞさんはTwitterを使っています 「@nagise その用途ですとますます型エイリアスだと危なそうな?(人間の視認による区別しか働かず、コンパイラが区別できないので」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz じゃあ駄目か」 / Twitter
がくぞさんはTwitterを使っています 「@nagise 人間への説明として「この文脈ではこの型をこういう意味として使ってるよ」みたいな時に型エイリアスは有用かと思いますが、混ぜるな危険!みたく異なるものを区別したいみたいなケースなら型自体を分けたほうが人間のミスを防ぎやすいのでお勧め感ありますねー」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz エグいジェネリクスを簡易に書くみたいなのにしか使えないか。型エイリアス」 / Twitter

型変換やオブジェクト変換の関数/メソッドに対する習慣や知見

Shiro KawaiさんはTwitterを使っています 「メソッドはクラスに帰属しない、というマルチメソッド派だけど、動的型付けだと戻り値の型でディスパッチするのはやりにくいので、引数の型 (a) でディスパッチし、名前でbを表す、って感じですね。 (define-method x->b ((from a)) ...)」 / Twitter
Shiro KawaiさんはTwitterを使っています 「これだと x->b というジェネリック関数に属してるから、感覚的には b に属するってことになるのかなあ。でもコード書くときにaのモジュール中に含めるかbのモジュール中に含めるかはケースバイケースって気がする。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「言語仕様によると思う。 たとえば a の実行時の型による動的ディスパッチ(とコンパイルエラー検出)ができるなら、それを使うべきだけど(https://t.co/mmfENQUNY5_b)、別クラスのインスタンスメソッドを生やせない言語もある(Java/C++とか)ので…」 / Twitter
山本和彦さんはTwitterを使っています 「オブジェクトでも型でもいいんですが、aからbへ変換するa2bという関数/メソッドは、オブジェクトに帰属させる場合、a側に置くのか、b側に置くのか、慣習とか知見はあるんでしょうか?」 / Twitter
山本和彦さんはTwitterを使っています 「まとめました。 https://t.co/qLmSmkTe4x」 / Twitter
型変換やオブジェクト変換の関数/メソッドに対する習慣や知見 - Togetter
Noriyuki OHKAWAさんはTwitterを使っています 「@kazu_yamamoto 個人の意見ですが https://t.co/FxyYZ9ErdM」 / Twitter
山本和彦さんはTwitterを使っています 「@notogawa OHKAWAさんのその意見は、存じ上げてますよ!」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazu_yamamoto aとbの型のどちらがその変換アルゴリズムを知っているべきかによると思います。 例えば文字列型と日付型の場合、文字列型の方がより一般的な型なので、文字列と日付の変換は日付型が知っているべきです。」 / Twitter
島鉄雄さんはTwitterを使っています 「@kazu_yamamoto bが新しくインスタンスを生成する場合は、 b = new B(a); b = B::create_from(a); の様に、新しくインスタンスを生成する事を明確にすべきで、単に内部で変換されるだけなら、 b = a.change2B(); // 戻り値は自分自身でメモリは消費せず とかな気がする。」 / Twitter
増田 亨.さんはTwitterを使っています 「@kazu_yamamoto aがbを知っているのが自然なら、aに置く。 bがaを知っているのが自然なら、bに置く。 aもbもお互いを知らないほうが自然なら、cを作って、cだけがaとbを知っているようにする。 私がクラスを設計する時には、こんな感じで考えますね。 「知っているのが自然」というのが悩ましい時もありますが...」 / Twitter

形式仕様

mumumuさんはTwitterを使っています 「すべての仕様を形式的に記述して,バグが無いシステムの実装を試みている Deep specification が近いかもしれない.ドキュメントには仕様以外も含まれているかもだけど. https://t.co/yh80HzwpDs」 / Twitter
Yale FLINT Group: DSCAL
hikaliumさんはTwitterを使っています 「ソースコードに対してはユニットテストが書けるのに、ドキュメントには書けないので言行不一致を見過ごしがち(みんな機械可読な言語でドキュメントを書けばいいのに…(それを人はソースコードと呼ぶ))。」 / Twitter
isooさんはTwitterを使っています 「@hikalium ソースコードにも色々と…。versionNoって変数がbool型だったりします。もう滅びろって思った。」 / Twitter
mumumuさんはTwitterを使っています 「これをOSのレイヤに適用した例としてmCertiKOSある. https://t.co/D9688DFsZ0」 / Twitter
The Science of Deep Specification

単位元

mod_poppoさんはTwitterを使っています 「JavaScriptのMath.max()が-Infinityを返すことにキレる人は空配列に対するeveryがtrueなことにもキレそうだしx**0が1なことにもキレてそう(偏見)」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これの例も min > max もそうだけど、人々って意外と単位元に無頓着なの?」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「たとえば別の言語だけど Scheme でも (and) って true だし (or) って false だしそれ自体は自然で、 every と any なんて and と or みたいなものよね」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「and や every が対象の項がない場合 true でも false でもなく intermediate 的なものを返すべきだという話なら、まあそれはそれで一理あるけど。」 / Twitter
mod_poppoさんはTwitterを使っています 「去年の暮れに悪名を轟かせた某記事もreduceに単位元(初期値)を与えない使い方をしていたなあ」 / Twitter
mod_poppoさんはTwitterを使っています 「a.every(f) && b.every(f) は [...a, ...b].every(f) と等価であって欲しくて、そのためには空配列に対するeveryはtrueを返すべき」 / Twitter

ハードリアルタイム・ソフトリアルタイム

Miura HidekiさんはTwitterを使っています 「私が知る限りRustがハードリアルタイムのための言語仕様を聞いたことが無い(GCを起こさないようにするメモリ管理はハードリアルタイムのためと言われれば否定できないけど)、一方Adaはハードリアルタイムなターゲットのための言語と聞くが具体的にそれが何なのかは知らない」 / Twitter
κeenさんはTwitterを使っています 「航空機みたいに安全性と応答性両方が求められる場面ではAdaが使われてると聞いたことあるしRustが対立候補には挙がるのかもしれない。しかし今Adaで動いてるのにRustに乗り換えるモチベーションはあるんだろうか。」 / Twitter
κeenさんはTwitterを使っています 「RustとAdaを組み合わせようって話じゃなくて会社と会社のコラボレーションだからそういう安全性が求められる領域での商売を一緒にやっていこうってことだろうし、あんまAdaがとかRustがとかは関係ないか。」 / Twitter
dalanceさんはTwitterを使っています 「@blackenedgold 最近の戦闘機はAdaからC++に移行したのでそういう人たちはRustに興味あるかもしれません。あとAdaCore側のリリースを見ると、Ada/Rustのbinding generatorとか相互運用性にも言及がありますね(できたらいいね、レベルの話ですが)」 / Twitter
κeenさんはTwitterを使っています 「@dalance1982 C++移行で不安定になったみたいな話ききました(本当かどうかは知りませんが)。そういう人にはRust刺さりそうですね。Ada/Rustの相互運用…できたら面白そうですね。AdaCoreがgnatのLLVMバックエンドも持ってるみたいなのでできなくはなさそう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「いつの時代も(私の分かるここ30年くらいのスパン)、ハードリアルタイムは難しい問題であり続けたけどこれをターゲットにするプログラミング言語ってあまりないよな。ソフトリアルタイムは研究用なら沢山あるけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「JAISTでハードリアルタイムとソフトリアルタイムの違いを学んだが、流石にハードリアルタイムのための言語は手を出したいとは思わない。ソフトリアルタイムだと面白そうだけど、いっぱいあるしな」 / Twitter

データ依存関係

Miura HidekiさんはTwitterを使っています 「プログラムをもっと一般的なグラフとして扱うと得られるものがありそう。ただし、時間とメモリは無限にあるとする」 / Twitter
Shinya KatoさんはTwitterを使っています 「プログラムはそれ自体が木構造なので仕事で毎日のように木構造を構築しているという主張 (知らんけど)」 / Twitter
Miura HidekiさんはTwitterを使っています 「例えばデータの参照関係とかもプログラムとして含めるとグラフになるわけだけどそれを顧慮した処理系がどうなるのかは実際に試したことがるからよくわかる。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 FRP言語や同期言語、データフロー言語の場合、データの依存関係が有向グラフ(多くの場合DAG)となり、プログラムの構造もそれを表す形になりますね。といっても構文は木ですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo Rubyを抽象解釈する処理系を書いた時はデータの依存関係が思いっきりループを含んで結構苦労しました。ループを含むか含まないかは雲泥の差がありますね」 / Twitter

skip

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「1度計算した値は2度計算しない」という原理にもとづくプログラミング言語Skip。手続き型だが、どの関数の値がキャッシュ可能かを (連鎖反応も考慮して) 言語レベルで自動的に判定する。静的型付け。LLVMにコンパイル可能。 https://t.co/PhqOSEN6YH」 / Twitter
skip · A programming language to skip the things you have already computed
Miura HidekiさんはTwitterを使っています 「https://t.co/Z9kx6EkMVQ なるほど副作用を徹底的に追跡して影響範囲を求めるのか。よく分かっていないがRustが目指したものを別のアプローチで行うって感じだな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「こんなことがブートストラップ可能なレベルで可能なんだな」 / Twitter
Miura HidekiさんはTwitterを使っています 「skipってFacebook謹製なのか。本気でRustと置き換えるのを狙っているのかもな」 / Twitter
Miura HidekiさんはTwitterを使っています 「skip面白いなと思ったけど、ずいぶん更新されていないのか。何が問題だったんだろう?むしろなぜこのアプローチでここまでできたのだろう?かもしれないが https://t.co/Z2Y7fHCCkG」 / Twitter
skiplang/skip: A programming language to skip the things you have already computed

users

その他

その他

histric-1

phenanさんはTwitterを使っています 「構文解析で印象深いのは * Adaptive LL(*): 先読みテーブルを実行時に作ればテーブルサイズが発散しないという神の発想。目から鱗だった。 * Valiant parsing: CYK parsing って行列積の冪乗だよねから始まり、最終的には行列積の計算量まで落としてしまう変態アルゴリズム。騙された気持ちになる」 / Twitter
すぱすぱさんはTwitterを使っています 「第一段階できた感 #mercari_intern https://t.co/wXvBj9jOMZ」 / Twitter
わいさわ 澤 良弘さんはTwitterを使っています 「Pythonいいなと思う点は、標準で集合(set)を実装していることかなって最近思う。差集合 {1,2,3} - {3,4} =&gt; {1,2} が数学で使うリテラルと演算子だけで定義されているだけで素晴らしい。そして、適切に使うことで条件式や繰り返しが減るし読みやすい。」 / Twitter
AzubnerさんはTwitterを使っています: 「母からのLINE。 卒論の研究でナンプレを扱っていた私が言えることはこれしかない。 「空いてるマスに変数x₁, x₂,...を対応させて、変数が満たすべき条件から連立方程式を構成し、各方程式の右辺を0としたときの左辺の多項式が生成するイデアルのグレブナー基底を求めればできるよ!」 https://t.co/5ARtN8qoXX」 / Twitter
白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「インターフェイスは継承して良い、データ構造は継承してはいけない、データ構造の継承に相当する処理はデリファレンスで実装しても良い なんだRustじゃん」 / Twitter
ラジオ2さんはTwitterを使っています 「任意の密着空間への写像は自動的に連続写像であり、連続写像は当然写像なので、忘却(位相空間→集合)と密着位相(集合→位相空間)は互いにそれぞれ左随伴と右随伴 https://t.co/a98TeSYaxL」 / Twitter
トデス子'\さんはTwitterを使っています 「TypeScriptの異様なときめきがある型システムがデファクトな選択肢として受け入れられている状況が直感に反するというのはある。ああいうことしてもユーザはついてくるという事実に勇気づけられる」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「純粋関数型言語が並列化に向いてるってのはどこから出てきた話なんだろう?(密結合になりがちなので雑に考えても難しそうなんだけどな)」 / Twitter
水無麻那さんはTwitterを使っています 「Haskell、データ依存でしか実行順序を制御できないわけで、IO アクションとか実行順序を明示的に制御したくなると困るわけだが、そこで phantom data の State 使ってデータ依存入れたら実行順序制御できるやんってなるの、何度見ても賢いなあってなる」 / Twitter
Hiroki FukagawaさんはTwitterを使っています 「数学を知っていると、数学に悩まないので、何かを勉強する時に障害が少ないってことかな。それと、それぞれの領域には、それぞれの考え方があり、数学にならない部分がある。それをそれとして学べることが重要で、定義がどうのこうのとか言っているようではダメ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「わかる。数学にならない部分があるかどうかは証明できないので、数学になってない部分、かな(すぐに数学っぽくしたがる、だめ)」 / Twitter
mumumuさんはTwitterを使っています 「Lightweight Preemptible Functions [OSDI '20] Thread等より軽量に厳密なTimeout処理を実行できるように,Preemptible(Promiseのようにcooperativeではない)なユーザランドのライブラリを実装.launch/resume/cancelがIF.実はプ言語に詳しくなくて,十分理解できていないので,今度再挑戦したいわね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t Elixirはtry catchよりも戻り値で:ok, :errorを返すか,プロセスごと落として再起動するという方針です。」 / Twitter
エヌユルさんはTwitterを使っています 「MLのことは知らないけどHaskellでトップレベルに型書かなくてもHaddockでドキュメントにした時には推論した型を出すから矛盾してないと思うよ まあ普通警告されるからGHCの提出する型を問題なさ… 続きは質問箱へ #Peing #質問箱 https://t.co/GMg2WmtgcN」 / Twitter
OSSタダ乗りおじさんさんはTwitterを使っています 「プログラミングやってて思うのは、すべてを副作用ありのStateと捉えてる人と、不変性を基礎においてる人の溝が大きすぎる」 / Twitter
弩.netさんはTwitterを使っています 「@mizchi 僕も似たようなことを感じることがあります。 やりたいことを処理の流れでとらえる人と、瞬間瞬間を切り出してとらえる人がいるようです。 脳内で動画を再生しているのか四コマを再生しているのかの違いといえるかもしれません。」 / Twitter
入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「抽象化手法、継承とかミックスインとかインターフェースとか構造的部分型とか沢山あるけど、結局型クラス(Rustでいうトレイト)だけで良かったんだっていろんな言語を触って思うなどしている。 3年したら変わるかもしれないけど今はこれが一番だなー」 / Twitter
kaorutさんはTwitterを使っています 「かつて情報系学徒だったので、さまざまなプログラミングパラダイムが存在するのは承知しているけど、でも結局は最も低い層で機械語の「命令」を逐次実行しているだけやん・・・とも思ってしまう。」 / Twitter
Kazuki MoriyamaさんはTwitterを使っています 「Applicative Functor(2008)やExtensible Effects(2015)は関数型の近年の発展と言っていいのでは」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「数学的ゾンビ:定義とステートメントが与えられると証明支援系を動かして証明はできるが,これらのお気持ちは分からない者のこと.」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「C++から半年ぐらい離れてErlangをやっている。いつ戻ってこれるかな。とりあえずC++にはネイティブtupleリテラルとパターンマッチがほしい。」 / Twitter
ICHIRO SATOHさんはTwitterを使っています 「pi-calculus自体は同期通信ですが、メッセージをプロセスでモデル化すると非同期メッセージも書けます。ただpi-calculus自体は副作用あります。基本的に名前渡し通信というのはポインタと同じなので。@ashigeru 同期やメッセージング関係を直感的に書けると言うのは…」 / Twitter
nemさんはTwitterを使っています 「数学書読んでてCoqで形式化したいときに集合論を自分で形式化していないと不便なので今日から夜は松坂集合位相を形式化をしていきたい。」 / Twitter
retrageさんはTwitterを使っています 「Rust、Cほどではないにしろstructとかがどう配置されるか想像しやすいし、値の参照とコピーが明示的なのでどこでコピーがされるかがわかるのでやっぱりシステムプログラミングに向いている」 / Twitter
7594591200220899443さんはTwitterを使っています 「Rubyではまさにその処理の名前が決まらずに4年くらいも名前で揉めた結果ごくごく最近になってtallyという名前で採用者された https://t.co/i8PC7V13xl」 / Twitter
高卒工員プログラマーさんはTwitterを使っています 「数学の弊害は数式の記述法と10進数かな もし数式が16進数逆ポーランド記述だったら数式=操作だからプログラム言語の制御構造と数式の違和感がなくなったという妄想。」 / Twitter
ぽんこつさんはTwitterを使っています 「再帰が問題なのは読みづらいではなく末尾最適化されなかったときに、意図せずStackOverflowする可能性がある方で、そこでScalaのtailrecでコンパイラに末尾最適化を保証させる手法が(単なるScalaのステマ」 / Twitter
mr-csceさんはTwitterを使っています 「偶にPrivateの関数をテストしたい時があるけど(テストがないコードのリファクタリング中に、ある関数の振る舞いを変えていないか確認したいなど)、Clojureなら#'付けるだけで良いのでこれもちょうどいい感じ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「.@EzoeRyou 氏がJulia民の逆鱗に触れておるgkbr (Juliaは数学・数値計算方面が大ユーザなので添え字の下限が 0 じゃなくて 1 の方が自然」 / Twitter

histric-2

tabasconianさんはTwitterを使っています 「oO(以前社内で使った形式仕様記述についての資料の焼き直しを晒しておこう・・・ https://t.co/7whT8Y21iU)」 / Twitter
yksym.github.io/memo.md at master · yksym/yksym.github.io
29さんはTwitterを使っています 「Promiseについて、端的な解説をみつけた。 https://t.co/jwm29dvU5R https://t.co/byS58dc6GE」 / Twitter
Promiseを使う - JavaScript | MDN
yutakang_jpさんはTwitterを使っています 「帰納法の自動化についての論文をTACAS2021へ提出しました。原稿はarXivで入手可能です。大雑把に説明すると、FMCAD2020で発表したソフトウェアと比べ、精度を90%向上させつつ、しかも計算に必要な時間が62%短縮できました。https://t.co/VMwi96gngJ https://t.co/IRvqUGIXME」 / Twitter
[2009.09215] Faster Smarter Induction in Isabelle/HOL
msyksphinz_devさんはTwitterを使っています 「除算が乗算に置き換わる話、LLVMを勉強したときに出てきた。b%12をllcが 0x2AAAAAABの乗算とシフト演算に置き換えたときは本当に頭が狂いそうになった。https://t.co/C0WeVzHRYS」 / Twitter
Arithmetic and logic instructions — Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
fumieval/urgeopts: getopts (shell) replacement
ふみ(𓆑𓅱 𓅓𓏭𓇌𓅱𓄿𓂋)さんはTwitterを使っています 「コマンドラインオプションの定義をYAML形式で読み込んで与えられた引数をパースし、シェルスクリプト向けにevalできる形で出力する、単体で動作するclapのラッパーを作った(要するに超豪華なgetopts) https://t.co/POoZ8bP1UP #Rust https://t.co/Odg4tW2hRd」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/0NWgVox1bo λ計算の式を、値のレベルでなく型をとって型を返す的な型レベルの計算だと抽象解釈的に無理矢理解釈しちゃって最後まで計算できたら型チェック完了!!ってするスタイルと、普通のλの型システムとの等価性証明を、既知のプログラム変換7つに分解して完全理解する論文結構好き」 / Twitter
type-reduction-ipl12.pdf
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「PFDS 5.2 章の刹那的純粋関数的キューを Haskell で GHC の線形型を使って実装してみた。値を複数回使うと償却計算量 O(1) が成立しなくなるので、線形型を使ってそれをできなくできたはず。 https://t.co/kNeIYgcMoX https://t.co/AfiP1u18k1」 / Twitter
ephemeral-linear-data/Ephemeral.hs at 998b768f27560fc1134685b14726de855c568465 · kakkun61/ephemeral-linear-data
ガラスボーさんはTwitterを使っています 「Rustが本当にメモリ安全性を高めているのかをCVEから分析するという論文。ちゃんとした会議に出したものではないっぽいけど、おもしろそう https://t.co/IhrfDkGc1J」 / Twitter
[2003.03296] Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs
mugiさんはTwitterを使っています 「自分が使いたくてRBSからTypeScriptの型定義に変換するgemを作ってるんだけど、超基本的な変換はできるようになった https://t.co/zdbfowngDo https://t.co/iIPu7YGn0C」 / Twitter
rbs2ts | RubyGems.org | コミュニティのGemホスティングサービス
艮 鮟鱇/うしとら あんこうさんはTwitterを使っています 「そういやLLVMバックエンドのチュートリアル記事を書く書くいいながら1ミリも書いていませんが、卒論が終わったらLLVM 11に対応させて書く計画があります。あとLLVM 9時代の下書きはすでに公開してあります。 https://t.co/y3eRf4w0kW」 / Twitter
ushitora-anqou/write-your-llvm-backend: 手を動かせばできるLLVMバックエンド チュートリアル(WIP)
akiraさんはTwitterを使っています 「ニューラルネットワーク(NN)は確率的にモデルのフィッティングを行うが、決定木系は決定論的にフィッティングを行う。画像のように0/1で表現できないものや自然言語のように曖昧で例外が多いものはNNが強いが、多くの事象はYes/Noで処理できるため決定木系が強い、と提議 https://t.co/P9c9odkGxA」 / Twitter
When and Why Tree-Based Models (Often) Outperform Neural Networks | by Andre Ye | Towards Data Science
α改さんはTwitterを使っています 「setjmp/longjmpでユーザーコンテキストを切り替えるのうまく行かなかったけど、ucontext_tと{get,make,swap}contextをつかったらうまいこと実現できた。 https://t.co/LFy8OTWfGV」 / Twitter
context switching using ucontext_t and context family functions
ruichiさんはTwitterを使っています 「“borrowシステムはその性質上、あるvが関数fによってborrowされていたら、fが処理を終えるまでvを保持しないといけない。そのため、tail-call eliminationができない” へえ / “HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG” https://t.co/YZwUwg0dro」 / Twitter
HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG
GHCの線形型プロトタイプを試すだけ - syocy’s diary
城戸 (Legalscape)さんはTwitterを使っています 「厳格に法を記述できるプログラミング言語を作った研究。F*を使った証明付きで、実際にフランスの税法関連のソフトウェアに法と食い違いがあるバグを発見できた。著者らはINRIAとMSR。 "[2103.03198] Catala: A Programming Language for the Law - https://t.co/gEZV4hZd7N" #みてる https://t.co/QZpzt9azqN」 / Twitter
[2103.03198] Catala: A Programming Language for the Law
ノーンさんはTwitterを使っています 「完全に決定論的に意識を計算できたら、 - 初期値を宣言する - 時間発展を宣言する であとは数学的帰納法によって、意識が任意の時間計算されたことになるので、宇宙の熱的死を回避(?)することができる。(イーガンの塵理論)」 / Twitter

入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「オブジェクト指向はモジュール設計ぐらいにしか思ってないし、関数型はイミュータブルプログラミングぐらいにしか思ってないので人生がめっちゃ楽」 / Twitter
みんな大好き🐐ヤギのさくらちゃん🎯さんはTwitterを使っています 「@lambda_funtaro 一方は巨視的な設計手法で、もう一方は局所的な要素技術なのに、なぜか両立できないと思ってる人が多いですよね」 / Twitter
令掛ベインさんはTwitterを使っています 「可変性を捨てるとメモ化がめんどい。メモ化対象の関数を呼ぶたびに状態変更を持って回る必要がある。do記法があれば楽か #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「閉路のあるグラフを扱うのは難しいから、木っぽいところを取り出して木で扱って、失われた辺はマップを外付けすることで補うプログラミングパターン」 / Twitter

@qnighy

Masaki HaraさんはTwitterを使っています 「システムの正しさを還元主義的な部分と量的な部分に分けるという見方は重要そう。たとえばループなら不変条件とループ変量の2つの道具に分けられる。量的な問題として他にわかりやすいのはメモリリソース(スタックを使い切らないこと、ヒープを使い切らないこと)」 / Twitter
Masaki HaraさんはTwitterを使っています 「前者は余帰納的な証明、後者は帰納的な証明と対応してるとか考えられそう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「RustコンパイラはそもそもノードにID振ってHashMap&lt;NodeId, RefCell&lt;SomethingResolved&gt;&gt; みたいなmapをそこかしこに持つという構造になっていて、構文木を純粋データとして扱う気がさらさらない感じでやっている」 / Twitter
Masaki HaraさんはTwitterを使っています 「なので、型推論とかでも制約作る段階でNodeIdに型変数のID紐付けといてあとで全部展開みたいな感じでできるはず」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Rustのジェネリクスの文法 struct Point&lt;T&gt; { x: T, y: T, } let point = Point::&lt;i32&gt;{x:1, y:2}; なんでPoint&lt;i32&gt;じゃなくてPoint::&lt;i32&gt;ていう気持ち悪い感じになってるの?」 / Twitter
Hoshi NyanさんはTwitterを使っています 「@uchan_nos https://t.co/B76t5Jgc3i (f&lt;t,u&gt;(a))みたいなケースで曖昧になっちゃうから、らしいです」 / Twitter
Rustのturbofishを理解する | κeenのHappy Hacκing Blog
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@takoeight0821 @uint256_t さんからもその記事を教えてもらいました。(f&lt;t,u&gt;(a))は、2つのboolを持つタプル型なのか、t,uという型で具体化したジェネリック関数fの呼び出しなのかが分からないということですよね。ただ、fが値なら前者、型名か関数なら後者、と確定するような気がしますが。」 / Twitter
Hoshi NyanさんはTwitterを使っています 「@uchan_nos @uint256_t その通りです。ただ、それを許すと、意味解析をするまでASTが確定しないので、パーサを書くのがとても大変になります(実際、C++のパーサはかなり大変なことになってるはずです) このスレッドが参考になるかも:https://t.co/XiaSZgvsq5」 / Twitter
Turbofish operator `::<>`, why is it ambiguous? - help - The Rust Programming Language Forum
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@nishio 先読みが面倒というのはその通りだと思うのですが、しかしRustは関数を定義する前に使うのが合法なので、結局先読みしてるんですよね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「「関数を定義するより前に使える」は2パスというだけで構文的な先読みではないからなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「あと曖昧な例として ( A &lt; B , C &gt; ( D ) ) が知られている」 / Twitter
Masaki HaraさんはTwitterを使っています 「コンパイラのアーキテクチャの話ってこういう「なぜ◯◯を実装しないのか」の理解に結構ダイレクトに役に立つんだなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「実例ベースだとC++とかいう力技の塊によって誤解を生んでしまうという……」 / Twitter
🍣さんはTwitterを使っています 「これ、逆にTypeScriptとかはなんでターボフィッシュなしでパースできてるんだよと思うようになった(実際めっちゃ大変そう)」 / Twitter
Masaki HaraさんはTwitterを使っています 「少し前にTypeScriptのBNF書こうとしたときにあの辺りが行きあたりばったりすぎて、宣言的に条件を書くのは厳しいなと思った」 / Twitter
Masaki HaraさんはTwitterを使っています 「これも出てくる例は同じで ( A &lt; B , C &gt; ( D ) ) やその亜種なんですが、ジェネリクスを持つことと比較演算の対象になることが両立することはほぼないので実際に動く曖昧なコードを構成するのは難しそうだなと思った」 / Twitter
Masaki HaraさんはTwitterを使っています 「修正って言ったけど「TSがJSの上位互換になっていない」ことが修正されたわけではない」 / Twitter
Masaki HaraさんはTwitterを使っています 「Rustコンパイラの &lt;&lt;, &gt;&gt;, &amp;&amp;, || などの分割処理はアドホックだけど、確かproc-macroのAPIでは独立したトークンにしておいて空白情報を保持するようになってたような記憶がある (これで貪欲な字句解析の振る舞いを再現するの大変そうだけどどうしてるんだろう)」 / Twitter
Masaki HaraさんはTwitterを使っています 「あの辺りは実際厳密にはJSの上位互換になっていない点があって、最近のTypeScriptで修正がありましたね (.js のときはJSのルールに忠実にパースする)」 / Twitter
Masaki HaraさんはTwitterを使っています 「https://t.co/pyO3cTPaQo」 / Twitter
Announcing TypeScript 4.2 | TypeScript
Masaki HaraさんはTwitterを使っています 「パーサーの先読み云々というのは実装の複雑性よりは仕様の複雑性の話だと思っていて、仕様を複雑化することのメリットよりも単純に保つメリットを取るという設計判断に対して無能って言ってしまうのは理解不足だと思う」 / Twitter
Masaki HaraさんはTwitterを使っています 「普通は「常に f&lt;T&gt; のほうが単純じゃない?」ってなりそうだけど、それで単純になるのはユーザーマニュアルであって仕様ではない。もちろんユーザーマニュアルが単純であるに越したことはないけどそこにはトレードオフがある」 / Twitter
Masaki HaraさんはTwitterを使っています 「少なくともRustの場合、ユーザーにより親切なエラーメッセージを出すために実装上は先読みをしていたと記憶している。これなら言語仕様の複雑性には影響しないので。」 / Twitter
kinabaさんはTwitterを使っています 「これはまあその通りだと思うんだけど、しかし人類の総体として考えてみると。自然にこうあって欲しいと思うような文法を定めると仕様が複雑になってしまうのは、現在の人類の持つ文法や構文解析記述のパラダイム(CFGとか)の無能感がすごいと思わなくはない。」 / Twitter
kinabaさんはTwitterを使っています 「形式的な記述言語(プログラミング言語とか)を人類に作らせると、なんかゆるく木構造を作りつつ、その木の親子構造に沿って宣言とか属性とかを伝搬させつつ、木の末端近くではその属性とかを大いに使って多少複雑な記述をする、みたいなものが自然と発生しがちなのであるが、」 / Twitter
kinabaさんはTwitterを使っています 「チョムスキーとかがいわゆる"""自然言語"""を分析したみたいに、"人類が設計しがち言語"をちゃんと分析して統一した理論にするみたいな話」 / Twitter
yukiさんはTwitterを使っています 「Turbofishはrustcのtestのところに物語が書いてあって面白いです。その名もBastion of the Turbofish(Turbofishの砦)。ある人が::&lt;&gt;を&lt;&gt;にしようとしたけど、結局こてんぱんにされてPRを閉じたので、後世の人が同じ過ちをしないように書いた、みたいな感じらしい(?) https://t.co/w5iXSekbVa」 / Twitter
rust/bastion-of-the-turbofish.rs at master · rust-lang/rust
FadisさんはTwitterを使っています 「テンプレート引数のカッコに&lt;&gt;を使うと演算子かどうか判断するのが難しくなる問題の解決に真面目に取り組んだD言語のことを覚えている人は居るだろうか」 / Twitter

@takoeight0821

Hoshi NyanさんはTwitterを使っています 「カリー化された関数や型は、あまり変わらない引数を前に、よく変わる引数を後ろにすると便利」 / Twitter
Hoshi NyanさんはTwitterを使っています 「カリー化されてないなら逆の方が直感的」 / Twitter
Hoshi NyanさんはTwitterを使っています 「でもprintfとかは前者だしな…」 / Twitter
Hoshi NyanさんはTwitterを使っています 「Q:なぜ? A:部分適用を多用するから」 / Twitter

@__pandaman64__

2020

2020-11-20

井山梃子歴史館さんはTwitterを使っています 「今回はMLスタイルの関数適用をバックトラック無しで書くことに成功したのでパーサが完全にpredictiveかつ線型時間になりました」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Rust Analyzerのinlay hints(型推論結果が見えるやつ)のフォントが小さく見やすくなってキュートだね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こんな感じで変数の型とか引数名が分かる.メソッドチェインの途中型も分かったりする https://t.co/lF9lGKTeXM」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こういう表示があれば型推論の問題とかキーワード引数欲しい!というのも低減されるよね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/OFHgCq7GTy」 / Twitter
pratt/lib.rs at 80e9bd67295602da91489ec18ddd34815ba442fb · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「空白の扱いでLL(2)かな」 / Twitter

2020-11-26

井山梃子歴史館さんはTwitterを使っています 「パーサのイベントとしてalternateイベントを吐く」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「パーサコンビネータのalt, とりあえず全部動かしきってからエラーの度合いでどれ選ぶか選択すればいいな」 / Twitter

2020-12-06

井山梃子歴史館さんはTwitterを使っています 「JITパーサコンビネーター発明してしまったかもしれん」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「これ筑波で研究してるやつっぽいな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/YMJdWEyLaM これかもしれん」 / Twitter
ry08-4.pdf

2020-12-18

井山梃子歴史館さんはTwitterを使っています 「証明はテストを代替できないね」 / Twitter
ノーンさんはTwitterを使っています 「@__pandaman64__ やっぱり実行時エラーの可能性ですか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@nkowne63 間違っている可能性が高いものに証明を与えるのはムズい 実用的にも重めのlinterぐらい(アノテーション無し、健全でなくてもok)じゃないとなあ」 / Twitter
ノーンさんはTwitterを使っています 「@__pandaman64__ 確かに、何でも証明できるほど人類は賢くないですもんね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「proptestか精々モデル検査ぐらいじゃない?」 / Twitter
proptest - Google 検索

2020-12-22

井山梃子歴史館さんはTwitterを使っています 「型システムとか実はいかに「ゆるい」かが重要なんじゃないかと最近思っている」 / Twitter

2020-12-23

井山梃子歴史館さんはTwitterを使っています 「参照カウンタを全く使わないBoxの方がRc/Arcよりも使われている Box: https://t.co/MlHhR5L0ib Rc + Arc: https://t.co/sZELuSyx2t」 / Twitter
YutakaAokiさんはTwitterを使っています 「@a4lg Heapから確保するメモリーの自動解放は、Rustでは参照カウンタで行っているだけで、所有権は余り役立っていません。所有権や(Rust独自の)ライフタイムなど、Rust独自の機構が役立っているのはローカルオート変数の参照型の危険防止にほぼ限定されていると私は思っています。」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「所有権システムは決定的なリソース確保・開放を提供する(PythonのwithやC#のusingを見よ) メモリに対して所有権を考えることによってGCレスのメモリ管理が可能となるので,所有権がGCを取り除くための重要なコンポーネントであるとはいえるだろう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「参照のライフタイム解析と可変・不変参照のエイリアス制限を組み合わせることによってデータレースおよびイテレータ無効化といった難しい問題(JavaやGoでは扱えていない)を解決しているという点も忘れてはならない」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「VecやStringも当然参照カウンタ(部分的な所有権)を使わずにメモリの自動解放を実現しており,Rustにおいて主要な部分は単一の所有権に基づいている」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ここでの話題はunique_ptrとshared_ptrのどっちがメジャーなのか(そしてC++ではshared_ptrの方が良く使われていることも多いでしょう)(C++の参照は弱いからね)なので」 / Twitter

2021

2021-01-01

井山梃子歴史館さんはTwitterを使っています 「Linear Haskellでin-placeな変更?ができてるっぽいのどういう理屈なのかきになる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「RGAやCausal Tree, GHCに導入されたCompact Normal Formっぽいな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Linear Haskell論文にLinear functionでmutationをやる話があるっぽい」 / Twitter

2021-01-02

井山梃子歴史館さんはTwitterを使っています 「Isabelleのwf, inductionで直に定義されてるな」 / Twitter

2021-01-08

井山梃子歴史館さんはTwitterを使っています 「プログラミング言語の設計はトレードオフの集まりなので,デザインパターンは言語の欠点というよりも相補的な存在と捉えるのが良いと思うな. 例えばRustはxxx()とxxx_mut()の両方を実装する「パターン」を要求するけどこれも型システムをシンプルにして推論をtractableにするという利点もあるわけで」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「それはそれとして優れていることが知られてる言語設計(代数的データ型の採用とか)入れろや!!!となるのも最もとは思う」 / Twitter

2021-01-24

井山梃子歴史館さんはTwitterを使っています 「証明ではなくrefinementはいかが」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「開発コミュニティがデカくてモダンな環境の方がええ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「LeanかCoqやっとけ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「反例チェッカがとりあえず食い違うケースだけ探索するとか面白そう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ちなみに定理証明支援系(あとPony)では1/0=0だけどそれは利便性のためで人間の数学とは関係ないからね https://t.co/JzwzKbhBAx」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Irisには複製できる命題あったな」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「機械学習ってやつで証明の「惜しさ」みたいのがわかんないかな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ポインタに対する様々な操作(キャスト,オフセット)を許容したまま最適化と組み合わせるとコーナーケースで爆発するのじゃ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「反証可能性は科学理論の必要条件でも十分条件でも無いよ(よさを見積もる指標ではある)」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「「機能が正しいこと」のwitnessってどんなものなんだろう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「今日のIsabelle: definitionの等号がイコール2つ(==)を使うべき.イコール1つ(=)だとなぜか型がboolに推論されて物故割れる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「簡約がいつまで経っても終わらない…STLCは停止性が証明されてるはずでは…?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「定式化に対するロックインなる概念,初めて目にした」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Thus we are led to conclude that, although everything mathematical is formalisable, it is nevertheless impossible to formalise all of mathematics in a single formal system, a fact that intuitionism has asserted all along. とのこと」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「妄想が止まらなくて本業に支障をきたすので封印です https://t.co/c21ocd1wYR」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ぜひ作ってみてね ぼくがやるならまずRacketと継続触るとことからかなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「vtableとfat pointer, あとdirectory passingとかか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Dictionary」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「手書きパーサでML-style function application(f x)をパースするときの王道って何なのか気になる 今は式パースしたあともう一回式パースしてみて駄目だったらバックトラックしてる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「MinCamlは引数に来れる式の形を制限してた」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「webml/parser.rs at master · KeenS/webml https://t.co/KFl2JLAPed やっぱ手モナに回帰するのか…」 / Twitter
webml/parser.rs at master · KeenS/webml
井山梃子歴史館さんはTwitterを使っています 「Intrusive list(という名前)広く知られてないんだなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ところで正則性が成り立つ、って証明はどこにもないよね やっぱ論理学における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「論理体系を考えるの一種の実験科学だと思ってるからね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「いやーバックトラックが必要ならもうLRに逃げちゃおかな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Haskellのundefinedはある意味矛盾を導入してるけどIsabelle/HOLのundefinedは無矛盾なの面白いな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「GCがない言語ではasync/awaitはただの糖衣構文以上の意味を持つのじゃ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンパイルエラーをチャンネルで集めてるのはエラーが発生しても中断したくないからじゃないかなあ(エラーは一度に出てほしいので) https://t.co/hH2pfry7cp」 / Twitter
Go コンパイラのコードを読んでみよう | ebiebievidence.com
井山梃子歴史館さんはTwitterを使っています 「関数を返す関数の階数が高くなるとカリー化と組み合わせたときにill-definedにならない? 例: int -&gt; int -&gt; intの階数は1っぽいがint -&gt; (int -&gt; int)の階数が2になる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「カリー化しない言語ならいいが…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「今でも判然としないな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「まあでもβ簡約でも保たれないしな」 / Twitter

@yhara

yhara (Yutaka HARA)さんはTwitterを使っています 「バックエンドはRubyでフロントはTypeScriptだけど、データの型はどっちから触る場合も同じなので共通のチェックをしたい。ということですね。なるほどなあ。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「@tenpoku1000 そうですね、それがやりたいんですが、種類別にスタックを分けてしまったのでできなくなったなあという話でした。経緯→ https://t.co/SoFaN932M6 別の書き方をするとスタック分けなくて済みそうなのでちょっと試してみます。」 / Twitter
a.md
yhara (Yutaka HARA)さんはTwitterを使っています 「Rust、こんなに書き換えに厳しいのに、structの要素が全部書き換え可能なのはなんでなんだろう?ここも「mut付けない限りreadonly」で良かったんじゃないか。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「・モナドを実装するには高階多相(かそれに代わるもの)が要る ・F#のコンピュテーション式ではモナドを実装できるらしい ということはF#には高階多相がある?と思ったんですが、どうやら無いっぽいんだよな。どうなってるんだろう。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「Crystalがクロージャに対応するllvm funcの名前に「どのメソッドにあったか」みたいな情報を含めてるの、ふーんと思って見てたけど、含めないとデバッグの時に泣くことがわかったので #shiika もそうした https://t.co/unfQoowYSC」 / Twitter

@nalsh

成瀬さんはTwitterを使っています 「アランケイの「オブジェクト指向」は現代でいう「マイクロサービス」のこと定期」 / Twitter
みょうがさんはTwitterを使っています 「@nalsh アクターは?」 / Twitter
成瀬さんはTwitterを使っています 「@mrkn 確かにアクターと言ってもよいですね」 / Twitter
成瀬さんはTwitterを使っています 「オブジェクト指向プログラミング言語も「オブジェクト指向」の後に出来ているので、逆かはあんまり論点じゃなくて、アランケイの「オブジェクト指向」に合致するものは何かという問いに対して、マイクロサービスやアクターは該当するけど、OOPのオブジェクトは違うよねというおはなし」 / Twitter
天重誠二さんはTwitterを使っています 「「Smalltalkのオブジェクトはコンピュータの可能性全体の再帰」といっているので、彼の考える "Object" というのはコンピューティングリソースをメモリやらCPUやらに分解しないで「コンピュータ」という形に統合したときの全体性とその可能性のことを指している https://t.co/AgU5MlkAc1」 / Twitter
The Early History Of Smalltalk
天重誠二さんはTwitterを使っています 「&gt; Instead of dividing "computer stuff" into things each less strong than the whole—like data structures, procedures, and functions which are the usual paraphernalia of programming languages—each Smalltalk object is a recursion on the entire possibilities of the computer.」 / Twitter
天重誠二さんはTwitterを使っています 「このあたりの発言とマクルーハンからの影響などを考えたときに、彼の考えるコンピュータとは他のメディアをシミュレートするようなメタメディウムであり(これが「コンピュータの可能性全体」)、これに観念としてつけられた名前こそが"Object"だとおもう。」 / Twitter
天重誠二さんはTwitterを使っています 「メタ・メディウム特性をもった"Object"はおそらくコンピュータ以外にもいくつか考えることができ、それが彼のたとえで出てくる「細胞」であるとか「レゴブロック」であるとかだろう。このあたりが「オブジェクト指向」という観念の形成に影響しているだろうことはわかる。」 / Twitter

@bd_gfngfn

画力・博士号さんはTwitterを使っています 「OCamlのように高級に書く “モード” もあるしRustのように安全性を保証されて低級に書く “モード” もあるような計算機言語が創りたいような気もしてきた」 / Twitter
画力・博士号さんはTwitterを使っています 「モジュールごとに高級か低級かのモードが選べて,高級側から低級側を見るとインターフェイスとしては所有権など低級側の実装の都合による註釈が漏れていないことが保証されるような言語のイメージ」 / Twitter
Jun InoueさんはTwitterを使っています 「モジュール単位で切り替えだと、単にFFIが便利な二つの言語を使う感じになってしまいそうな気がする。 Staging的なインターフェースで低級層のメタプロを高級層からできるとすごく便利そう」 / Twitter
画力・博士号さんはTwitterを使っています 「ああーなるほど,やはり多段階計算最強伝説」 / Twitter
Jun InoueさんはTwitterを使っています 「@bd_gfngfn 結構挑戦した人はいるけど、大体中途半端で終わっちゃってます。あんまよく知らないけど、 二階層とも違う言語(heterogeneous staging)→型設計・FFI的部分の設計が大変+学習曲線が鬼畜に 二階層とも同じ言語(homogeneous staging)→被生成コードが低級層に上手くマッピングしない みたいです」 / Twitter
画力・博士号さんはTwitterを使っています 「@jun0inoue 情報ありがとうございます,現実的に使いやすい言語になるか以前に理論的にも型システムの「FFI的部分の設計」はかなり手間を要しそうだなと想像します」 / Twitter
Jun InoueさんはTwitterを使っています 「@bd_gfngfn そうですね。大体みんなEDSLにするような方向に進むんですけど(例: ETHのlightweight modular staging)、Haskellのモナドプログラミングみたいな煩雑さがつきまとってしまって、どうも上手くない。」 / Twitter
画力・博士号さんはTwitterを使っています 「OCamlでも低級に書く手段があることは把握しているけれども,あまり本格的に使ったことがないので “安全” なのかについては個人的に知見が足りてない」 / Twitter
画力・博士号さんはTwitterを使っています 「“複数の目的意識の言語が混合できる” 体系,少し前にこういうのを見つけていたんだった(まだ途中までしか読んでない): FabULous interoperability for ML and a linear language [Scherer, New, Rioux &amp; Ahmed 2018] https://t.co/XDVC3FKdBO」 / Twitter
[1707.04984] FabULous Interoperability for ML and a Linear Language
κeenさんはTwitterを使っています 「低級と高級を使い分ける話だとCommon Lisp最強ってずっと言ってる(gotoがある)(マクロでラップしてloop式とか提供できる)。安全かどうかは君の目で確かめてくれ!」 / Twitter
Miura HidekiさんはTwitterを使っています 「私も、「低級と高級を使い分ける話だとCommon Lisp最強」だと思うけど、その理由はコンパイラマクロとMOPだと思っている」 / Twitter

@blackenedgold

κeenさんはTwitterを使っています 「Rustで型レベルペアノ数からの証明。そうか、const proof: Type1 = Option::&lt;Type2&gt;::None;で Type1 == Type2が表現できるんだ。 Proving that 1 + 1 = 2 in Rust https://t.co/orBRi4KywG」 / Twitter
Proving that 1 + 1 = 2 in Rust
κeenさんはTwitterを使っています 「ん、違う。 const proof: Option&lt;Type1&gt; = ...だ。」 / Twitter
κeenさんはTwitterを使っています 「継続的にRustコンパイラを高速化してそのレポートブログを書いてきたNicholas Nethercote氏がMozillaの体制変更でブログを書く時間がとれなくなるからと、いままでの総括を書いてる。 How to speed up the Rust compiler one last time – Nicholas Nethercote https://t.co/pbs3CzbyFT」 / Twitter
How to speed up the Rust compiler one last time – Nicholas Nethercote
κeenさんはTwitterを使っています 「どのツールを使ってどういう変更をしたかとかのコンパイラに限らない高速化一般の知見がまとまってるのですごく参考になる」 / Twitter
κeenさんはTwitterを使っています 「propertyテストの表明をそのままsymbolic executionエンジンに食わせて証明できるよねって話。こういうのやってる人いるんだ。symbolic executionエンジンはLLVMのSEエンジンのKLEE。 Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google https://t.co/BzQgfwNeYa」 / Twitter
Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google
κeenさんはTwitterを使っています 「&gt; 興味を持った方はぜひこの命題の逆「(¬a)∧(¬b)⟹¬(a∨b)(¬a)∧(¬b)⟹¬(a∨b)」を証明してみてください。 鬼かな? Idris で理解するカリー・ハワード対応 - Qiita https://t.co/BMDHYxuU4Z」 / Twitter
Idris で理解するカリー・ハワード対応 - Qiita
κeenさんはTwitterを使っています 「排中律を仮定すれば em: {a: Type} -&gt; Either a (a -&gt; Void) em = assert_unreachable」 / Twitter
κeenさんはTwitterを使っています 「証明できる deMorganAnd : {a, b: Type} -&gt; ((a, b) -&gt; Void) -&gt; Either (a -&gt; Void) (b -&gt; Void) deMorganAnd {a} {b} h = case (em {a = a}, em {a = b}) of (Left pa , Left pb) =&gt; void $ h (pa, pb) (Right pa, _) =&gt; Left pa (_ , Right pb) =&gt; Right pb」 / Twitter
κeenさんはTwitterを使っています 「ブログ書いてるときのκeen「依存型使うと誤りがないことを保証できるんですよ、便利でしょう」 コード書いてるときのκeen「なんでベクタを操作したいだけなのに証明書かなきゃいけないの!」」 / Twitter
κeenさんはTwitterを使っています 「あー、plus n (minus m n) = mって成り立たないのか(m &lt; nのときminus m n = 0で定義されているため)」 / Twitter
κeenさんはTwitterを使っています 「うおー、悩んだ証明めちゃくちゃ簡単だった。定理がないと思ったらby definitionだった。定義はちゃんと確認しましょうね。」 / Twitter
κeenさんはTwitterを使っています 「あ、ステートメント勘違いしてた。普通に直観主義で証明できわ。 deMorganOrRev : (Pair (a -&gt; Void) (b -&gt; Void)) -&gt; ((Either a b) -&gt; Void) deMorganOrRev (na, _) (Left a) = na a deMorganOrRev (_, nb) (Right b) = nb b」 / Twitter
κeenさんはTwitterを使っています 「すわIdrisのバグか?と思った挙動を色々調べていったらautoの指定が抜けてた。」 / Twitter
κeenさんはTwitterを使っています 「n + (m - n) は成り立つ。何故なら m - nはn &lt; mの証明を要求するから。」 / Twitter

2020-12-06

κeenさんはTwitterを使っています 「自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2 https://t.co/m84SHZc44l」 / Twitter
自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2
κeenさんはTwitterを使っています 「xだけの分岐と再帰で証明できるね comm : (x, y : Nat) -&gt; x + y = y + x comm Z y = rewrite plusZeroRightNeutral y in Refl comm (S x) y = rewrite sym $ plusSuccRightSucc y x in rewrite comm x y in Refl」 / Twitter
κeenさんはTwitterを使っています 「標準ライブラリの証明も同じ方針。 https://t.co/Ro97lHgzkK」 / Twitter
Idris-dev/Nat.idr at master · idris-lang/Idris-dev

κeenさんはTwitterを使っています 「Idris面白機能:if then elseはオーバーロード可能 ifThenElse: Maybe a -&gt; (a -&gt; b) -&gt; b -&gt; b ifThenElse (Just a) f _ = f a ifThenElse Nothing _ b = b λΠ&gt; if Just 1 then (+1) else -1 2 : Integer λΠ&gt; if Nothing then (+1) else -1 -1 : Integer」 / Twitter

2020-12-24

κeenさんはTwitterを使っています 「すごく丁寧。DSTとかtransparentとかのメモリ表現もだけど、一通り使えるものを作るのに必要なプラクティスがまとまってるのって中々ないよね。 Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ https://t.co/sYzYFYNKym」 / Twitter
Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ
κeenさんはTwitterを使っています 「Tokio 1.0に対応したhyper 0.14もリリース。hyperもRustのデファクトといっていい(基礎的な)HTTPライブラリ。 hyperの方はまだやることが残っているので1.0ではないが、1.0へのロードマップは立てているとのこと hyper v0.14 - seanmonstar https://t.co/bHcDinZ5fk」 / Twitter
hyper v0.14 - seanmonstar
κeenさんはTwitterを使っています 「Rustのデファクトといっていい非同期ランタイムのTokioが1.0をリリースした 🎉 向こう3年は2.0のリリースはしないし、5年は1.0のメンテナンスを続けると約束。 来年はStreamやio_uring、トレーシング、Tokio周辺のエコシステムに取り組むらしい Announcing Tokio 1.0 | Tokio https://t.co/AwOJIKOI7V」 / Twitter
Announcing Tokio 1.0 | Tokio
κeenさんはTwitterを使っています 「Tokioは今のところネットワークIOを非同期化するのがメインで、ファイルIOについては裏でIOスレッドを作って動作し、それっぽく動いているだけだった。io_uringを使えばOSサポートによるファイルIOの非同期化ができる」 / Twitter
κeenさんはTwitterを使っています 「赤黒木が速いのでよく使われるとは聞くけど現実のライブラリではあんまみないなぁ。Rustはキャッシュパフォーマンス意識してB木だしOCamlはAVL木。Haskellもサイズベースの平衡木らしい。SMLのcmlibに入ってるくらい?」 / Twitter
κeenさんはTwitterを使っています 「Idrisは2-3木だった。これはギリ赤黒木判定していいのでは」 / Twitter
そすうぽよ(カス)さんはTwitterを使っています 「@blackenedgold C++の標準ライブラリの実装で使われていたりしますね 規格の制約上、B木を採用するのが難しいのが主な理由だと思います。」 / Twitter
k0kubunさんはTwitterを使っています 「@blackenedgold 🤔 https://t.co/pXsOihoOle」 / Twitter
Search · red-black
κeenさんはTwitterを使っています 「C++は知らないから仕方ないとして、Javaの実装に気づかなかったの草」 / Twitter
ぐらふぃさんはTwitterを使っています 「@blackenedgold https://t.co/lVD7BGQFG2 メジャーな C++ ライブラリの Abseil ではほぼ drop-in で使える B-tree があって、大体 std::map よりも速かったりはするみたいです」 / Twitter
abseil / Abseil Containers
あめ玉/もわもわさんはTwitterを使っています 「興味あったので調べてみただけですが、Linux KernelのComplete Fair Schedulerとか https://t.co/Z4g7Y2dzCD」 / Twitter
What are some real-world applications of Red-Black trees today? - Quora
あめ玉/もわもわさんはTwitterを使っています 「レーザプリンタだそうです。手元のアルゴリズム本では「2色木」となってました。 https://t.co/eXpByqtOlt」 / Twitter
Red–black tree - Wikipedia

κeenさんはTwitterを使っています 「パラドックスという言葉、理論的には正しいんだけど直感に反するものにも、理論的に正しくないんだけどマズいところをわかりにくくして上手くペテンしてるやつにも、直感に反するけど証明も反証もされてない未解決問題にも使われててカオス」 / Twitter
κeenさんはTwitterを使っています 「SMLのbefore演算子はe1 before e2のように書いて、e1を計算したあとe2の処理をして、e1の結果を返すんだけどこれOCamlだと定義できないことに気付いた。SMLは引数の評価順序保証があるけどOCamlはないからダメだ。」 / Twitter
κeenさんはTwitterを使っています 「「無名」オブジェクトをデバッグプリントすると名前が表示される話?」 / Twitter
κeenさんはTwitterを使っています 「個人的に数学の記号の過剰なオーバーロード、一文字変数/一文字関数、上付き/下付きのパラメータあたりはやめてほしいと思ってる」 / Twitter
κeenさんはTwitterを使っています 「AndroidプロジェクトがRustを採用へ。メモリ関連のバグや脆弱性を抑えるのが目的。バグは新規コードに多いので既存のコードはそのままで新規コードをRustにシフトしていくよう。 Google Online Security Blog: Rust in the Android platform https://t.co/KmlU4RuY7d」 / Twitter
Google Online Security Blog: Rust in the Android platform

@ytakanoster

2021-01-02

꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitだいぶわかった気がした。コンパイラが状態機械に変換してる操作どうやってんねんこれとは思った。変換アルゴリズムつくるの大変そう。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンあれば簡単だろうけど、無いためにすごく頑張っている。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「カーネル内async/awaitを使うにはスケジューラと処理系を自前で作らないとダメそう」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「スケジューラを作るにはロックフリーキューかRCUから必要かな。めんどくさすぎる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「継続かコルーチンがあれば楽なのに」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/await、コルーチンもGCも無くて所有権という言う縛りプレイで良くつくったな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンが 1958年で、promise、futureが1976、1977年か」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「asyncがFutureのモナド でawaitがbindって感じかな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitのexecuterと非同期関数を作ってみたけれど、コルーチンが無いとやっぱり面倒だった。 https://t.co/tmXOTlG1e8」 / Twitter

@shinji_kono

2020-10

2020-10-26

Shinji KonoさんはTwitterを使っています 「田中先生の公理的集合論で学んだのに、あの頃は順序数定義可能集合の重要性に気がつかなかった。残念過ぎる話。自然演繹も学んでいたのに…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODは今でもあんまり納得してないけどさ。bounded ODとして扱ってるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairからordered pairを導出するのは煩雑なのだが、Agdaは割とそのまま形式化できる。当時は、その必然性が良くわかってなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部生の頃は数学をまったくわかってなかったと思うよ。そして、それは集合論の古典的な構成ではわからないのが当然だとも思う。推移集合モデルで理解したのもかなりあと。VでもUnionとか使うので怪しいんだよな。それは公理で保証されていると言われても。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ガロア理論の五次対称群の交換子群が三次対称群を含むってのもアルティンあるいは他の本でも、わりとさらっと書いてあってさ。でも実際にはそれなりの計算が必要。まぁ、手で計算しなかったのがあほだったが。ガロアも計算しまくってたはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論も登場する概念のレベル合わせがかなり大変。多分、証明しまくってるうちに頭にAgda的な回路ができる感じ。教科書見てても、そういう記号的な処理、特に、Unifucationが導入されてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「合同則 x ≡ y → f x ≡ f y はSets以外では自明ではなくて、証明が必要とかはAgdaでないとわからない。これは選択公理にも関係してて、同値類が自明に取れるなら不要になる。なので、選択公理や同値類の構成に疑問を持ってると、そこで落ちてしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部の数学(数学科のって意味だが)でも落ちる要素はたくさんある。チコノフの定理、まだ、片付けてないし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数や機械学習にはそういう集合論的、証明論的な問題はない。なので、そっちからやるのが良いね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論的アプローチというよりは、直観主義論理で数学を構築していけば、選択公理や集合論は不要で、排中律や二重否定に気を付けて、非構成的な仮定を明示して議論するだけになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうすると選択公理と集合論は廻り道に見える。もちろん、それは時代的に必要な廻り道だったわけだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「KunenにはODは極めて非構成的で得られるものがないと書いてある。田中先生の本ではODと順序数の準同型をゲーデル数を使って導入してるが、それは厳密にやる必要がある。まぁ、いろいろ面白い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも集合はUnionで上界を取ってこれるので、極めて非構成的。集合の選択には任意の方程式を使えるから… なのにODが非構成的と文句を言うのは面白い。シェーンフィールドもそうなんだけど、どうも、集合をかなり具体的な既に存在するモデルとして認識しているみたいなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「物理学者も数学者も普段は実在論者としてある方が便利だからそうなる。」 / Twitter

2020-10-27

Shinji KonoさんはTwitterを使っています 「これはちょっとあるな。何人かこのタイプを見た気がする。自分でないものになろうとしてる。コミュニケーションやコネクションを持ってる人がなりやすい感じ。プログラミングは極めて内向的な仕事なので… QT プログラマーになろうとしている時点で向いていない https://t.co/GJFYXN7TuD」 / Twitter
文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|note
Shinji KonoさんはTwitterを使っています 「プログラミングは操作的意味論を理解する作業があるのだが、それがなんなのかがわかってない。なにがプログラミング言語やAPIを理解する時のゴールなのかがわからない。そうすると、それらは無限に異なるものを覚える賽の河原になってしまう。そういう人がPythonを覚えてもすぐ使えなくなるとかいう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語の操作的意味論がわかれば、大抵の言語は皮層的に違うだけなので、すぐにわかる。そういう人が初心者から、わからないと言われても「なんでわからないの?」ってことになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、いっぱしのプログラマでもHaskell/Prologをやってみれば、その「操作的意味論がわかってないと、さっぱりわからない」感覚はわかるかも。1週間、触ったくらいでは、まったくの謎でしかない。そんな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが、その手の言語を学んだばかりの人から手解きを受けると、これが信じられないくらい高速に習得できる。ほげほげnativeな感じ。そして、その人は他の人がわからないのが何故かさっぱりわからない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングがまったくできない人に「まずなにをどういう手順でやるか日本語で書いてみて」といって、それをプログラミング言語に翻訳してみせる。ほとんどは関数に置き換えることになる。そうすると「あ、そういうことですか」ってことになる場合がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語は言語なのだが、それがわかってないわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellの操作論的に意味論を聞いてみると、ある人はβ簡約とか言い出すかも。僕は計算のきっかけはcase文による分解から始まるとかいうだろう。それを知らないでプログラミングするのはかなり難しいのだが、雰囲気でなんとかなることもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HaskellのMonadを自分で書いてみた時の「まったくわからない感じ」は久しぶりだったな。Haskellは表示できない項とかあるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは最初のネックはBacktrackとcutで、それから単一化による差分リストの嵐に突入する。無限に巨大なリストの一部だけをみてプログラミングやデバッグしていく感覚は手続き型とはかなり違う。Stream型なわけなのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologで、どこにバックトラックするか聞いてみて、最も最近のチョイスポイントと答えればわかってることになる。そして、 p :- q, !, r. で、r が失敗した時にqのチョイスポイントはどうなるというのに答えられれば。 めんどくさいから全部の選択肢に!を一つ付けるというのはプロっぽい。」 / Twitter

2020-10-30

Shinji KonoさんはTwitterを使っています 「(可算)無限個の集合のUnionは、実は集合論の公理にはない。クラス、つまり述語ではかける。なので、それが集合であるかどうか(=集合論の公理から構築できるかどうか)を調べる必要がある。例えば順序数全部のUnionは集合じゃない。それはVだから。ℵωまでなら集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上限が集合で抑えられれば集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このクラスで書いて集合かどうか調べるってのは集合論の本では良くある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合でないクラスはProper Classとかいうのだが、最初に上がる例は順序数全体かな。ODとかLも全体は集合じゃない。その要素は集合。」 / Twitter
Shinji KonoさんはTwitterを使っています 「クラスと集合の区別はOD(順序数方程式)で考えるとわかりやすい。解に上限があれば集合、なければProper class。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってわけなので集合論の本に{x| ...}と書いてあっても集合とは限らない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その部分にODを写像すると、ODはある順序数以下になるので集合になる。この時、外のODと中のODの二つがあるが、それはもちろん同型にできる。これが集合で作った集合論のモデルになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、非可算ちゃんとやってないので、その辺りで矛盾が出る可能性がほのかにあるな。可算順序数の中で非可算順序数を定義する的なことをするので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は公理的に定義して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微妙に順序数を公理的に扱うのを避けてるんだが意味不明。ここに出てくる性質を公理にして、可算順序数を構成してみせるので十分だと思うんだけど。ただ、注意しないと非可算を作れなくなるかも知れない。 https://t.co/ZBxpWyRbUa」 / Twitter
順序数 - Wikipedia
Shinji KonoさんはTwitterを使っています 「順序数は直後順序数ってのは出てくるんだが、直後極限順序数ってのは出てこない。いや、そういくのあるだろとは思うけど。直後順序数を無限個含む順序数があれば、それ以下の順序数は順序数の公理(性質)を満たす。なのて順序数の部分で順序数に対応するものがある。無限なんだからおかしくない。」 / Twitter

2020-11

2020-11-02

Shinji KonoさんはTwitterを使っています 「型検査はメタレベルでやるべきというしごく当たり前のことが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「構文に型を入れるなってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「スローガンとしては良いかも」 / Twitter

2020-11-05

Shinji KonoさんはTwitterを使っています 「超速って、超実数な速度だよな」 / Twitter
Shinji KonoさんはTwitterを使っています 「超実数は無限小と無限大だけではなくて、普通の実数+無限小とかもある。なんと .99999... と 1 を区別できる。見かけが違うから違うと主張できる。なので、普段見てる速度と超速な可能性が。いや、見てる分には実数と変わらんのだが。」 / Twitter

2020-11-07

解答略さんはTwitterを使っています 「代数構造を習った時はハイハイそういう議論はやるべきですよねって思ったし、順序構造もまぁせやなって感じやったけど、位相構造は極めて奇異なものに感じられた。開集合を決めるだけで、近さとか連続性とか収束の概念がええ感じに定まるというのが、どうにも非直感的に思えた。今も怪しいと思っとる」 / Twitter
Shinji KonoさんはTwitterを使っています 「位相構造ねぇ。基本的には極限の概念の延長だけど… 今は圏論的な理解の方が普通?」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono 結晶として対称性を論じるなら空間群の話になる。X線結晶構造解析はそのまま3次元逆フーリエ変換なんで超格子構造なんかは衛星反射として見える。まぁ位相構造だわなw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 固体は量子力学的な扱いもあるからなぁ。フォノンとかバンドとか。」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono BE凝縮とか近藤効果とかもねw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 力学と数学で位相空間がぜんぜん違うのなんとかして欲しいです」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinductionは全然勉強できなかった。構文的な問題だけだと思うんだが。Fresh Listには合うはずなんだが。」 / Twitter

2020-11-12

Shinji KonoさんはTwitterを使っています 「真偽にSetを使う方法、automaton はちょっと変くらいだったが、languageとNFAになって、level hellを食らってる。状態が Q → Set nなので levelが上がってしまうんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool でできるんだが、Bool 演算とその推論をいろいろ入れることになるのがあれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ証明の意味がわからない。DFA/NFAのtrace書かないとだめだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「automaton の trace (じゃないよな、状態の履歴)は一発で書けたが、NFA側が自明じゃないな。(Q → Set) → List Q が必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「trace が自明じゃないのは気まづい。間違ってるかも。」 / Twitter

2020-11-13

Shinji KonoさんはTwitterを使っています 「昼間の証明はあれで良いってのが降ってきた。Automatonの有限性は (Q → Set) → Set という決定性。NFAを Automaton に変換した時 ((Q → Set)→ Set) → Set になるんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は有限性をData.Finでやってたんだが、かなり煩雑。欲しいのはdecidabilityなので。で、→ Set を増やしても同じもので良いらしい。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか良くわからん。まだ、NFAのtraceが書けない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、そうか。subset construction して DFA として trace を出すのは簡単なんだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに出力は出たが、しかも正しそうだが、これはなんなの。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり逆順だな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そんなことはないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec を引数で持ち歩くってのが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで、できそうだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正確にはDecじゃないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「NFAのtraceはあともう少しだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「恥ずかしいことに、subset construction してtraceするコードをNFAに書き直した。だって、合わないんだもの。subset construction という言い方は正しくなくて、状態集合のautomatonへの変換だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あとは二重リストに変換すれば良いのだが、それにはDecが必要。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec やっぱり、微妙に合わないな。割と良くある。」 / Twitter

2020-11-14

Shinji KonoさんはTwitterを使っています 「かなり、型が合ってきた。結果は簡単なんじゃないかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だいぶ進んだ。しかし、まだ、どうすれば良いかわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinduction と違ってindictionは automaton のお尻から構築する感じになるのだが、traceは最初から辿る方が簡単。もっとも、まだ、Decが書けてない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一応、できた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Set にすると、状態をリストで表すには Dec を書かないとだめで、しかも、前の状態に依存するのでかなりしんどいことがわかった。 List (Q → Set) を見たいだけなのに。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、subset construction の正しさの証明が少し微妙。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このSetは実行時に指定してるので、それを工夫することができるかも。not empty な List Q とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「継続で書くと良いのかも。」 / Twitter

2020-11-15

Shinji KonoさんはTwitterを使っています 「NFAは教科書では Automaton を言語/正規表現の結合に対応できないという理由で導入してる。NFAが結合に対して閉じることの証明は去年やったのだが、Data.Finでやったので、かなり煩雑。今回はどうなんだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool ではなく、Q → Set なので、Data.Boolのめんどくささは消えてる。しかし、それはDecに押し付けられてる。Data.Finの代わりに (qs : Q → Set) → (q : Q ) → Dec ( qs q ) を定義する必要がある。Qが有限なら qs q の真偽を決定する手続きがある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年の証明だと、Aだけ、AとB混在、Bだけみたいな状態にわけてた。作るのは簡単なんだが、それが結合になってるのを示すのがしんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二つに分割する組み合わせを全部生成するのはData.Fin抜きでできる。NFAからData.Finを落とせたので、簡単になる可能性はある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「教科書ではNFAの結合が言語の結合に対応するのは自明扱いなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaのcoinduction はrecordの構成構文を使う。 p : AB → AB p ab = record { a = ? ; b = ? } の代わりに p : AB → AB a (p ab) = ? b (p ab) = ? という構文。」 / Twitter
Shinji KonoさんはTwitterを使っています 「induction だとデータ構造を分解して[]なったら終了。coinductionだと、[]から始めて、recordを大きくしていって、欲しい大きさで終わりな感じ。終了条件 Termination はAgdaの推論の外にあって、 あるデータ構造が常に小さくなってる なのだが、余帰納だと常に大きくなってるになるわけだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをFresh Listに使うって話なんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いきなり二重否定しか証明できない的な直観論理丸出しの話をもってきて欲しくはなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、一応、正規言語の結合に閉じるのは、少し簡単になるっぽい。でも、本質は変わらんな。そこそこ長い。しかし、かなり、わからなくてびびりました。Set で受けるのは良し悪しなんだよな。そこに触れないので、何か作るしかない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「予想通り、Bool 代数関連の細かい推論は全部吹っ飛ばせた。Data.Finも出てこない。素晴らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それを少し簡単になったというのは、あれだが、その分、個別の証明する自明なのが増えてるので… まだ、十分に複雑だしな。」 / Twitter

2020-11-16

Shinji KonoさんはTwitterを使っています 「terminatingで書いて、あとからterminationを付け加える方法があれば。」 / Twitter
Shinji KonoさんはTwitterを使っています 「こんな議論があるな https://t.co/yT86zAan9R」 / Twitter
functional programming - Assisting Agda's termination checker - Stack Overflow
Shinji KonoさんはTwitterを使っています 「やっぱりcoinduction 使え的な」 / Twitter
Shinji KonoさんはTwitterを使っています 「正規表現のderivativeは書けたが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「dfaからregexは「状態を一つとって」みたいなことをするんだよな。微分の逆だから積分できないの? accept dfa q [] を調べて accept dfa q t ⇔ regex t → ∀ x → accept dfa q (x :: t) ⇔ (add1 regex) (x :: t) で、無限にやるんだが、add1が変更なくなったら終わりとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「状態を取り除いていく方式は遷移関数を毎回手直しだからなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、結局、すべての状態についてやるので、おんなじようなものだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分は正規表現を状態とする automatonを作るが、積分はautomaton の状態に正規表現を付加していく感じか。 add1 : (Q → Rex) → (Q → Rex) かな。 sumup : (Q → Rex) → Q → Rex sumup f q with dec f (add1 f) ... | yes _ = f q ... | no _ = sumup (add1 f) q 停止が見えない。」 / Twitter

2020-11-17

Shinji KonoさんはTwitterを使っています 「DFAからRegex変換はあんなのではできないので、Regexで遷移するNFAにして状態減らす方式なのだろうな。手計算ではやったことがあるが… 状態をListにして減らしていくのが良さそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移先の一つを融合するのだが、遷移関数を新しく作ることになる。 q1 → a → q2 → b → q3 を q1 → ab → q3 するみたいな。 q1 → a → q2 → b → q1 だと (ab)* が出てくる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移条件がregexだから排他にはならないからNFAになる。でも状態は一つまで減らすので問題ない。遷移関数の書き換えのイメージがわかないが… (Q → Regex → Q →Set) → (Q → Regex → Q →Set) だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「隣でないとだめ、関係ないものを一緒にしてはいけないってのがあるが… どうせつながってる部分しか意味はないから。 t : ( Q → Regex → Q → Set ) → Q → Regex → Q → Set t qs q1 ( a * ) q2 = qs q1 a q3 みたいに直接書き換えできるように見える。でも、q1は変数になるから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「(Q → Regex → Q → Set) というdataを作るのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうではないな」 / Twitter

2020-11-18

Shinji KonoさんはTwitterを使っています 「え、それ? 資源管理と同期が見えないHaskellの並列処理は結構厳しい。 Haskellによる並列・並行プログラミング」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔書いたHaskell/MultiThreadなDB。今はどう書くんだろ。 https://t.co/xzca7Z4JeN」 / Twitter
Members/toma/Jungle-haskell: log
Shinji KonoさんはTwitterを使っています 「来週はNFA。」 / Twitter

2020-11-21

Shinji KonoさんはTwitterを使っています 「Boolで対角線論法やると面白いな。見つかった反例を加えて、もう一回とやりたくなるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「N→BoolはNのPower Setでℵ1なのだが、これと濃度が同じな順序数があると仮定する。Power Setは公理で存在が仮定されている。この二つの仮定には差がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、超実数のモデルをやりたい気分もある。選択公理仮定することになるので構成的ではないけど。Nat → Nat → Bool に順序を決定する公理を入れれば良いだけ。これは超自然数になるけど、小数点と考えれば0から1の超実数に同相なの? 集合的にはℵ2でしかないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は集合論散々やったので、だいぶわかった気になってる。ただ、標準的な方法とはだいぶずれてしまった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法やるには、双射をちゃんとしないとだめなんだな。散々やっただろと思うが… ℕ と ℕ → Bool の双射が矛盾することを示せば良いんでしょ。 ℕ → Set でもできるのかな。 これは集合の濃度の問題そのものだからな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ途中なんだよな。集合の濃度。 https://t.co/uoRLnPh2NA」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b cardinal.agda
Shinji KonoさんはTwitterを使っています 「AgdaのBijectionはPermutationでも使ってる。それとは別だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの標準のをそのまま使って問題ないはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「⟨$⟩ˡ とか inverseˡ を使うんだよな。上添字のrとlは厳しい。いや、標準を使うべきだというのはあるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Permutation で散々やったので、もはや問題ないと思われる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は可算モデルを持つので無矛盾なのはわかる。極限順序数ももちろん。そのrecord、つまり公理系で定義される数学的構造物が ℕ → Bool にBijection を持つというのは要請だが、Power Setがあるという公理があれば許される。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それは自分のだと、順序数内のSupの存在になる。もちろん、それは構成的なものではない。けど、それは可算順序数に埋め込まれるわけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算順序数自体はℕ→Boolを含むことはできない。含むのは公理的に定義された順序数で、しかもそれは仮定だ。順序数は超限帰納法を公理として持っていて、それは可算順序数モデルで恒真。なので無矛盾。それはℕの整合性の証明に使って良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ℕ→BoolはAgdaでは構成されるものだけを表す。それは可算なので可算順序数に含まれる。構成されないものは二重否定で言明できる。」 / Twitter

2020-11-22

Shinji KonoさんはTwitterを使っています 「で、レーベルハイムスコーレムはAgdaで書けるの? というか、Agda自体がレーベルハイムスコーレムの定理そのものなんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ (Bijection ℕ (ℕ → Bool))を示せば良いのだな。 Turing : (Σ : Set) → List Σ → Bool で Bijection ℕ (Turing Σ) はUTM Bijection ℕ (List Σ) は数え上げ で halt : Turing Σ → Bool が Turing Σ だとすると、停止問題になるはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「UTMはこれなんだが、入力が0/1なので、任意の入力文字を受け入れるようにしないと自分自身を食えない。 https://t.co/sEh1bELmRA」 / Twitter
Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/utm.agda
Shinji KonoさんはTwitterを使っています 「この辺りのTuring Machineの拡張は難しくはなくて、状態遷移を増やせば良いだけ。しかし、それを、証明する必要がある。この証明はHoare logicでやる必要がある。なので、継続形式にした方が良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけなので、Automaton は継続形式で書き直した方が良いんじゃないか説。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record Turing ( Q : Set ) ( Σ : Set ) : Set where field tδ : Q → Σ → Q × ( Write Σ ) × Move tend : Q → Bool なのだが、 tδ : {t : Set} → Q → Σ → ( Q × ( Write Σ ) × Move → t) → t みたいな感じで。」 / Twitter
Shinji KonoさんはTwitterを使っています 「fresh list を sized にするのは簡単だったが...」 / Twitter
Shinji KonoさんはTwitterを使っています 「あれ、別にsize いらないんじゃないの?」 / Twitter

2020-11-23

Shinji KonoさんはTwitterを使っています 「a &lt; a' を要求しているのに a' &lt; a が出てきて、そもそも a = a' ならしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「別な方をやって、問題点が別なことがわかった。取り尽くしたことを確認して⊥を返さないとダメなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「文系な人は、ちゃんとチェックすれば大丈夫みたいな信仰があるみたいなんだよな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限二分木で定義して、それを深さ優先で取り尽くすみたいな。間になかったらおかしい的な。」 / Twitter

2020-11-25

Shinji KonoさんはTwitterを使っています 「普通に作ってソートされて、間に割り込まれない。なので、全部入ってる。それを示したいだけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Natとのbijectionはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも問題なのはAnyの型変換なんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyなのにthereって書くと文句言ってくるのひどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「n で再帰ですか? すでにやったはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、0からnまで含んでることを示せば良いのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型の段階でhere/thereがわからないとだめってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二段に展開してるな。それか。」 / Twitter

2020-11-26

Shinji KonoさんはTwitterを使っています 「まだ、証明が終わってない部分があるけど、計算部分はできたから良いかな。(良くない) できる自信がないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、もっと劇的に簡単になるはず。CommutatorをFLで計算するとか。計算した結果をstaticに変換するとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyが簡単に示せないのも変なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「1234をPermutationしたのを見てFLを生成とかできないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLだけで群を作ってそこで計算する方が速いが、計算表を生成して、計算させないことはできるのか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ疑問はあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Fresh ListからAnyを作れない理由もよくわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLがCommの生成について閉じてるのを示すのはFLが群を構成してることをしめせばすむはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、もう時間切れなのでわからないままでいいか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、Anyが示せてないので、割と残念なことになってるのがなぁ…」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと、AnyのListを持ち歩くなんてのが降ってきたが… Anyを返す関数なら、まぁ。 x f&lt;?y → Any x L みたいな感じか。だから、時間切れなんだって。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLを順列として0123を置き換える関数のinjectionを示せば良いだけなんだ。それでFLから順列へのinjectionが一発ででる。しかし、簡単に示せるとは言ってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「しかも、それができてもAnyとは関係ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「五次はそこそこ時間かかった。五次が可解でないのをFLのListが不変から導出しても良い。良くわからないが可解でないという証明になる。不可解な証明だな。(ここ笑うところなので」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLからList N 割と簡単そうな気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、やってないとは考えにくいんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かにめんどうなみたいだな。」 / Twitter

2020-11-27

Shinji KonoさんはTwitterを使っています 「今までで一番まともな気がする。どうせ Any の型変換の問題はでるだろうが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一昨年のOS9は結構楽しかったが、今年のTL/1 Self Compiler は、盛り上がりに欠けるまま放置中。」 / Twitter
Shinji KonoさんはTwitterを使っています 「定義おかしいじゃんと直してみたら、元のが正しいことを確認して終わった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , h ] = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ h でしょ。 [ g , h ] [ i , j ] = g ⁻¹ ∙ (h ⁻¹ ∙ g ∙ h ∙ i ⁻¹ ∙ j ⁻¹ ∙ i) ∙ j = g ⁻¹ i ⁻(¹ j i h ⁻¹ g ⁻¹ ) h j = [ g , i ] [ j , h ] になるのか。でもそれでは足りないが…」 / Twitter

2020-11-28

Shinji KonoさんはTwitterを使っています 「[[a,b],[c,d]]は含まれてる。これは [b,a][d,c][a,b][c,d] のこと。これから前半を消すのは簡単だ。 [a,b][c,d]= [c,d][a,b][[a,b],[c,d]]ってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これでも足りんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[a,b][c,d]=[x,y]なx,yを見つけるのだが… 本見れば載ってるとは思う。対称群の場合をやれば良いけど、一般的に可能なのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , [h ,i]] = g ⁻¹ ∙ i ⁻¹ ∙ h ⁻¹ ∙ g ∙ h ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ h ⁻¹ ∙ g ∙ i ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ i か。交換子だからi ∙ i=i。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そういうことではないのか。欲しいのは [a,b][c,d]=e なので、[a,b]=[c,d]=eならそうなる。逆にその時に限るってのは必要なのか。いや、要らんのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことは手直しが必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、単純に積を落とせば良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「交換子群は積が必要なんだが、交換子群が単位元になるのを示すには積は不要ってことね。なるほど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、Any の型の問題にぶちあたった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、リストを最後まで取り尽くさないと何が戻ってくるのか確定しないのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので見つけた後も最後までたどる必要がある」 / Twitter

2020-12

2020-12-02

Shinji KonoさんはTwitterを使っています 「TMはUniversalityがあんまり自明じゃないんだが、もっと自明なものってあるのかな。あ、非構成的なものはかんべん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「むしろCPUの方が自明だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「LISP 1.5 もそれほど自明じゃない。SKIはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「これだな https://t.co/SecYyDYSJC」 / Twitter
不動点定理が結ぶ ラッセルの逆理とYコンビネータの関係 - Qiita
Shinji KonoさんはTwitterを使っています 「対角線論法、今回も少し挑戦したんだが、あんまりよろしくなく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIだとSKI食ってSKI返す感じか。Y combinator でいいの? Agdaで即座に書けそうだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Y combinatorはAgdaでは型が合わない。合うと矛盾をくらうので。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → SKI → Nat があるとY combinatorが構成できて矛盾みたいな感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIは大雑把にSystem Fなので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、そもそもAgdaのUniversalityが使えるはずだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → Set → Nat で良いってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、NFAのSetは諦めるべきだな。Bool の方がまし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Set で受けると、bool 代数のめんどくささは避けられるが、そのかわり、Dec の嵐が降ってくる。おそらく、bool 代数のめんどくささを避けつつ工夫するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法はできた。でも、List BoolとNatの対応は割とめんどいのだった。上位に1を足したバイナリで良いのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「たしか、finite作ったな。あれはList Boolだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Vec Bool n だな。ゲロゲロに複雑だ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「List はexp 計算してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。足し算を定義して、それから作ってるんだな。勉強になるな。自分が昔書いたものだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「isoも足し算でやってしまうのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをコピれば良い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
Shinji KonoさんはTwitterを使っています 「TMは数え上げができるのでNと一対一になるのだが、それは対角線論法には引っかからない。その中に、TMの白黒を全部識別できる奴がいると引っかかる。でも全部白とか黒なら引っかからない。Bijectionだと、その条件は要らないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法経由と自己参照経由と両方の証明があり、異なるのだが、対角線論法は自己参照から導出できる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltとutmからBijection示すの面倒そう…」 / Twitter
Shinji KonoさんはTwitterを使っています 「片方で良いかもしれん」 / Twitter
Shinji KonoさんはTwitterを使っています 「複雑なのは Fin からBoolへの関数を作る方だった。List Boolはそれほどでもない。」 / Twitter

2020-12-03

Shinji KonoさんはTwitterを使っています 「NFAのSetにいろいろ入れてって思うがうまくできない。やっぱり、継続かcoinductionなのだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Data.Fin は扱いがあれなので、Bijectionを使うのだが、∨とかBoolへの関数とかのを作るのが結構大変。まぁ、できてるので良いのだが。でも、Subset construction では使わない。UTMのはFinじゃない。安易に書いたらTerminationくらったが、なんとかならんのか、あれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Manna先生の本にdeductionがあって、Terminationばっかり書いてあった。そういえば実家に置いてきた。まだ、残ってるかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Size型の引数を追加して、それが単調減少していれば、止まるとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。 TM : List Bool → Bool tm utm : TM encode : TM → List Bool で utm (encode tm ++ x ) ≡ tm x は言えるんだが、encode (utm x) ≡ x にはならない。しかし、 halt : TM ∧ List Bool → Bool を入れると、その違いが吸収されてしまってBijectionになるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「というのをAgdaで、ちゃんと書こうという話」 / Twitter
Shinji KonoさんはTwitterを使っています 「x ─── + z x + y ってのを定義できるパーサってのが降ってきたが。(実在するらしい」 / Twitter

2020-12-04

Shinji KonoさんはTwitterを使っています 「あ、なんかFLinsertから始めるってのが降ってきたよ。」 / Twitter

2020-12-05

Shinji KonoさんはTwitterを使っています 「Coq はintros がかなり許せなくてな… まぁ、変数名考えなくて良いってのはあるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaはプログラミング言語なので良い。ホールも良いアイデアなんだが、いかんせん、それにあうUIがな。」 / Twitter

2020-12-06

Shinji KonoさんはTwitterを使っています 「Agda 、なんだこれ。 _430 != section of type」 / Twitter
Shinji KonoさんはTwitterを使っています 「なるほど。Any _ Q で there とかやる時には Q を cons に分解しないとだめっていうあれか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ということは、めどがついたってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか今のを片付けて、抽象化すると、もう一つも片付くらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zipは内積みたいなものだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか、片付いたと思ったが、かなり微妙な感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「くそ、独立に書き出してみたが、やっぱり通らないじゃん。 Cannot instantiate the metavariable _491 to solution section since it contains the variable section which is not in scope of the metavariable when checking that the inferred type of an application」 / Twitter
Shinji KonoさんはTwitterを使っています 「何言ってるんだか、わからないんですけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ相談すると、internal parametricity だと言われるパターンだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ほぼ同じなんだが、通る時と通らない時がある。入力の型を明確にするとむしろ通らない。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「workaround で良いんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとかなるのかな、これ。割と致命的なんですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いったん関数はさむと通ることがある」 / Twitter
Shinji KonoさんはTwitterを使っています 「この差か。 anyc07 : (x b : FL n) → (L : FList n) → Any (x ≡_ ) L → Any (x ≡_ ) (FLinsert b L) anyc07 a b L any = insAny L any anyc06 : (x y : FL n) → ( z : FList n ) → Any (_≡ x) z → Any (_≡ x) (FLinsert y z) anyc06 x y z anyz = insAny z anyz」 / Twitter
Shinji KonoさんはTwitterを使っています 「間違えてもいいのかと思ってたが、だめなのか。」 / Twitter

2020-12-07

Shinji KonoさんはTwitterを使っています 「57箇所以上なおしたところで力尽きてる。x ≡_ と書くのが正しいらしい。λ y → x ≡ y の意味。」 / Twitter
Shinji KonoさんはTwitterを使っています 「他に _≡_ x と ≡_ x の書き方があって、適当に書いてたので混在してた。一緒だろと思ったのが間違いだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「問題なく通るやん...」 / Twitter
Shinji KonoさんはTwitterを使っています 「順調だが、ここどうやるんだったかな。ちゃんと処理したはずだが。」 / Twitter

2020-12-08

Shinji KonoさんはTwitterを使っています 「また、振り出しに戻るをやってるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、劇的に簡単になった。どうせ、そんなこったろうと思ってましたよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここまで、一直線なはずなのに何故廻り道した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「今日は進捗した気がする」 / Twitter
Shinji KonoさんはTwitterを使っています 「あと、もう少しでてきるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、確かに A x B だとBの方が攻めとみえるな。加群でしょ。」 / Twitter

2020-12-09

Shinji KonoさんはTwitterを使っています 「三ヶ月もかかったが片付いた。ガロア理論、むしろ、正規拡大とかの方がAgdaでは楽かもね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この三ヶ月かかった話はオンラインのプロシンで話します。」 / Twitter

2020-12-10

Shinji KonoさんはTwitterを使っています 「Fresh List 、mapとappendはあったような。だったら、それで書けるんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか、All があれば append できるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any を作りたいので無意味だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、役に立たないらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そうとは限らんな。[]から作っていけるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の append は、すでに自分で書いたやつだな。そんなもん。書いてからライブラリにあることに気がつく。わからんし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ようするに、Any の前後に append しても Any の性質は保存されると。Any ってのは「これを満たすものはすべて入っている」みたいな意味だから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「map もAny/Allに対して定義されてるので役に立たない。っていうか、自力で証明した部分だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、任意のFLの組みから、全部のFLを導出することができるのか。もっと考えれば良かった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CommAny の問題に気がついたのは11/26なので、これを前に思いついてても、それほど時間の差はないな。でも9/13あたりに思いついてれば9月中に片付いてたかも。insert 書けた時にできたと思ったが、その後がな。ちゃんと考えろよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyのappendに気づいたのが11/30なので、やっぱり、理解度が足りてなかったってことだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、そもそも「これでできるな」と思ったのでプロシンに出したのだが、思ったより時間がかかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の append とかドキュメントとかは一応見てはいたんだが、それが何かには気がつかなかった。そんなもん。自分で必要になると自分で再発見してしまう。それが理解ということなので、まぁ、そういうもの。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これでわかれと言われても。 https://t.co/zx918v5Cxg」 / Twitter
Data.List.Fresh.Relation.Unary.Any
Shinji KonoさんはTwitterを使っています 「まぁ、親切なドキュメントだこと... https://t.co/6TfTz2wQLs」 / Twitter
agda-stdlib/README/Data/List at master · agda/agda-stdlib
Shinji KonoさんはTwitterを使っています 「Coq 側では Fresh List はどういう扱いなんだろう? うまくググれない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「交換子群の定義を data で書くのは瞬時だったんだが、書けた後、どう使うかしらばくわからなかった。Agdaはそういうところがある。 data C (P : Carrier → Set ) : (f : Cr) → Set ) where comm : {g h : Cr} → P g → P h → C P [ g , h ]」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、なんだかわからないよな。Cr から始めて交換子を作るのを繰り返すだけ。 deriving : ( i : ℕ ) → Cr → Set deriving 0 x = ⊤ deriving (suc i) x = C (deriving i) x」 / Twitter
Shinji KonoさんはTwitterを使っています 「これとか面白い。普通の述語論理だと気にしない部分だが、照明が必要。 comm-resp : {g h g1 h1 : Carrier } → g ≈ g1 → h ≈ h1 → [ g , h ] ≈ [ g1 , h1 ] comm-resp {g} {h} {g1} {h1} g=g1 h=h1 = ∙-cong (∙-cong (∙-cong (⁻¹-cong g=g1 ) (⁻¹-cong h=h1 )) g=g1 ) h=h1」 / Twitter
Shinji KonoさんはTwitterを使っています 「群の等号と同じは違うので自明には置き換えできない。適用した関数(この場合は交換子)が、等号を保存するとは限らないから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f とか意外に証明めんどくさい。equalizer 使わないとな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ h , g ] ≈ [ g , h ] ⁻¹ とかも証明したが使ってない。交換子群には必要なんだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可解の話には交換子群は必要ないってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一度できると、より良い方法が見えるようになるもの。もっとも、その前に見えるようになりたいものだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「実際にやってみると n を合わせるのが面倒。具体例を入れておくべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f f ⁻¹ ( f ⁻¹ ) ⁻¹ ≈ f ⁻¹ f ε ≈ ε で良いのだが、これは h f ≈ h g → f ≈ g を使っていて、これはequalizer。h ⁻¹ かければ良いだけだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かにできたが、ださい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record AnyFin (n : ℕ) : Set where field allFin : FList (suc n) anyF : {i : ℕ} → (i&lt;n : i &lt; suc n) → Any (fromℕ&lt; i&lt;n :: FL0 ≡_ ) allFin ではなくで anyF : (x : Fin n)→ Any (x :: FL0 ≡_ ) allFin で良い。なにしてんだか。おんなじことなんだが。」 / Twitter

2020-12-11

Shinji KonoさんはTwitterを使っています 「まぁ、少しましになった。行数減るのは正義。でも、使わなくても自然数関係の証明は取っておくべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ガロア理論関係は、多項式、代数的拡大、正規拡大体とかやってないのだが、その辺りは、まぁ良いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「All と append で書けるはずだが、まぁ、もう良いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Allとappendは練習するべきではあるんだが。もう疲れたよ、パトラッシュ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけで一段落。コンパイラやらないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Fresh.List に、appendとmapはあるが、insertはない不思議。型は書いてみたが、いろいろ謎だな。相互再帰で書くのは定番らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「any? : (xs : List# A R) → Dec (Any P xs) こんなのがあるな。まぁ、そうだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「(P? : Decidable P) みたいにするのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそもなんでガロア理論に手をつけたのかよくわからない。Twitterになんか書いてたかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「予告なくいきなり交換子書いたが出てくる。そう言うやつなんだよ。集合論の時も演繹定理から唐突に始めたし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかいまさら、置換を吸う時にしてからやると楽ってのが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっともPromiseは教えてないけど」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換がbijectionなのがやっかいなので、0123を食わせて数字にすると楽。injection あるから。perm →FLが厄介だったので、それが簡単になるとかなり簡単になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換を一旦数字に変換して上手くいくとわかるのは、injectionがあると知ってるからなんだよな。自明な気がするのと実際に証明を書くのとは別だから。この場合は排他律使えるから構成主義は関係ない。なのでできて当然。なので思い付かない方がダサい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「injection/equalizerの大切さがわかった課題だったな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「モンテカルロで速度かぁ。確かに乱数の精度に依存するけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、そういうものに依存するものって微妙」 / Twitter
Shinji KonoさんはTwitterを使っています 「乱数のベンチマークとして使えるってことか。実世界の乱数の性質は?」 / Twitter

2020-12-12

Shinji KonoさんはTwitterを使っています 「示す必要があるのはFLとPermutationのbijection。 NatのListはbijection にはならない。しかし perm → List N はinjection。 FL → perm → List Nat (1 FL ← List Nat ← perm (2 でなんとかしようって話。」 / Twitter
Shinji KonoさんはTwitterを使っています 「List Nat は制約されないと置換に対応しないので、常にFL/permから作るってのが肝だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おお、計算全然おわらね〜」 / Twitter
Shinji KonoさんはTwitterを使っています 「特定のプロセスが終わったことを通知するのはどうすれば良いんだろう? いや、まぁ、print するように書けば良いだけなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の証明を短くしたら計算は長くかかるようになった気がする。メモリは増えないんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「普通に計算すれば瞬時に終わるものなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「時間かかるのちょっと変なんだよな。証明は型検査だから実行時のoverheadにはならないはずなんだが。Fresh Listは余計な項を作るが、大したことはないはずなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「余計な項を生成しないFresh Listってのはありえるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「memonizationが有効だろうと思うが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、確かに組み合わせが二乗でFresh Listのinsertがnaiveなので二乗、合わせ技で4乗なんだが、たかだが5!だろ? 5. x! 120. x^y 4. = 207360000. ======================= あぁ、でも結構あるのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「4次だとこんなもん。 4. x! 24. x^y 4. = 331776.」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、insertをbinaryにしただけではダメでバランスさせる必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「計算結果は5!で抑えられるのでメモリが足りなくなることはないのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最低でも100時間は動かさないとダメだな。Haskell生成するか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、あんまり意味はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「こういうのなぁ。 https://t.co/n2b0w2IICV」 / Twitter
io - Agda: Reading a line of standard input as a String instead of a Costring - Stack Overflow
Shinji KonoさんはTwitterを使っています 「お、compile したら瞬時に終わった」 / Twitter
Shinji KonoさんはTwitterを使っています 「しばらく、AgdaのgetArgsと戦ったが動かないってことだけはわかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、List String までできてるから、いけるんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「getArgsはしばらく戦ったが、あきらめた。」 / Twitter

2020-12-13_直観主義論理

Shinji KonoさんはTwitterを使っています 「AgdaのgetArgsは IOがcoinduction なので変換が必要。Data.Text.Textの問題もあるが、それはStringにできる。 なので頑張ればできそうではある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はチコノフやるとか言ってたが、もうすぐ来年。位相の定義は有限と無限の微妙な違いを使う。結局は存在関数の問題になる。ついでに、基底の存在もやるべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは Haskell の getArgs の Polymorhphism のエラー • Couldn't match type ‘[Char]’ with ‘Data.Text.Text’ Actual type: IO [String] System.Environment.getArgs」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、なんだこれ。 MAlonzo/Code/Agda/Builtin/String.hs: = ((Data.Text.append) :: Data.Text.Text-&gt;Data.Text.Text-&gt;Data.Text.Text)」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agda 側が Data.Text.Text なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「動いた。 postulate getArgs : IO (List (List Char)) {-# FOREIGN GHC import qualified System.Environment #-} {-# COMPILE GHC getArgs = System.Environment.getArgs #-} main : IO ⊤ main = getArgs &gt;&gt;= (λ x → putStrLn $ toCostring $ sym5solvable $ getNumArg1 x )」 / Twitter
Shinji KonoさんはTwitterを使っています 「結論から言うと、Agda の IO String は実は Data.Text.Text なので、Haskell の getArgs は IO (List (List Char)) で受けろってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaでやってわかったのは、意味関数は本当に真理値を任意に割り振るってこと。なんとなく、公理を真にするものだけを考えがちだが、全部の組合せが入ってる。直観主義論理では証明のあるものだけが真なので楽。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もう一つは等号もあらゆる可能な項を含んでいるので否定を含めて巨大な無限だってこと。まぁ、たかだか可算無限だが。そして、その巨大なもの全部の組み合わせに対して真理値の組合せをすべて割り当ててるのが interpretation。これも構成論理だと避けられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然数が入るだけで一階述語論理がもうダメってのはそういうわけだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「節形式への変換も書いた。さらに不動点意味論とfinite failureまで出すことも可能だろうけど、だから何的なところはある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけなので、集合論を一階述語論理でやるのはよろしくない。構成主義論理でやるべき。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理は普通に非構成的な仮定を扱えるので問題ない。Agdaの能力的な問題もあるが、仮定すれば良いじゃんってのはある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、メタ的なものを扱うなら、たぶん、Toposが必要になると思われる。そこはまだよくわかってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Toposは圏にSubobject Classifierを入れただけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「メタ的といえばLambekは合流性もやるんだよな。ただ、等号はやらない。単一化は入ってない。真に面倒なのはそこだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「単一化を取り扱うには変数をメタ的に扱うわけだが、番号割り振るってのが普通。それってアドレスでやるのとあんまり変わらん… でも、System Fの正規化もそれでやらないとできない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologはnumbetvars持ってるからな。Agda Haskell compilerもおそらくはそうしてる。読んでみないとわからんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「すっかり直観主義論理シンパになってしまったが、もはや、大半の数学者は直観主義で、選択公理の使用には注意を払う感じ。実はもう少し広いのだが。」 / Twitter

2020-12-14

Shinji KonoさんはTwitterを使っています 「安易に書いたけど、普通、スコープは名前のスタックを使う。そんなの使ってないので、何か足りないかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あぁ、変数を同じ変数名の変数で置き換えるとよろしくないかも。でも、一階だから∀と∃の置き換えは値だし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあなんかおかしくなるかもしれん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あら、やっぱり、ここでxを保護しないとだめだな。 (∃ x =&gt; y) [ n / v ] = ∃ x =&gt; (y [ n / v ])」 / Twitter
Shinji KonoさんはTwitterを使っています 「同じ変数名ならskipするで良さそうだが…」 / Twitter

2020-12-16_時相論理

Shinji KonoさんはTwitterを使っています 「正規表現からDFAの微分法は、時相論理のタブローとほぼ同じ。部分項の組合せになるんだが、それが有限になるかどうかは論理あるいは正規表現をどれだけ拡張したかによる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaでの停止性の証明はreduction に落とす必要がある。この場合は部分項が増えるので向かない。でも、これもcoinduction にできるのかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「増える場合は決まってるので、それを構文として固定する方法が降ってきた。左再帰の処理に似てるな。A*Bみたいにするわけね。 A unitl B だな。逆にLTTLに変更するわけか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分した時にunitlのnestが起きなければ勝ちだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔のITLの実装はPrologなので停止性は自明じゃない。ITLはa;bという演算子一つだけでaは必ず単調減少するが、全体の論理的組合せは任意に増える。それは線形にしか増えないが、項に真偽が割り振られるので指数的になる。それは変数の2^nで抑えられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「平行プログラの検証の難しさは同期の変数の数の指数乗になるってことね。でもそんなにひどいことにはならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「LTTLでは部分項に真偽を割り振るという方法で検証が可能で多項式計算量になる。でも、所詮は変数に対する指数乗なので、まぁ、誤差みたいなもん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ITLはそれはできないのだが、部分項の指数乗で抑えられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあ、それは変数がintervalに依存しない場合で依存する場合は文脈依存文法になるので決定不能性になる。それが決定可能になる場合もあるってのがイギリスにいた時にやったことなんだが、まぁ、受けは悪かった。それを使ってプロセス代数方程式にしようって話。2ITLと呼んでいた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つまりintervalに依存する変数を命題ITLの二階の変数とみなせるという話。実際、CDGの充足性の問題になる。あんまり調べなかったが、その辺りの研究はやまほどあるんだろうな。finite interaction とかを考えてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「指数乗ってのは指を二進数的に使う数え方って意味」 / Twitter
Shinji KonoさんはTwitterを使っています 「このままだと停まらないのだが (Regex Σ ) until (Regex Σ ) にすると停まるんじゃないか。 https://t.co/Lz8yHduJLD」 / Twitter
Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/derive.agda
Shinji KonoさんはTwitterを使っています 「なんかemptyかどうかを気にする必要があるのだった。 https://t.co/T3JE9kNNJu」 / Twitter
正規表現の微分でサブマッチング - Qiita
Shinji KonoさんはTwitterを使っています 「実装する気になれないな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「一つは変換結果が正しいことを示すのが手間だからだな。concatが閉じてることの証明かなり面倒だった。というと、coinduction 使えってのが降ってくるのだが。どうなのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「しかし、Automaton 簡単しようと何かすると、裏目にでるな。」 / Twitter

2020-12-17

Shinji KonoさんはTwitterを使っています 「AnyでfiniteSetを作るってのが降ってきたが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「次はllvm版からsetjmp抜くのをやるか」 / Twitter
Shinji KonoさんはTwitterを使っています 「LLVMのsetjmpは何回かやぶれさってる。stack切り替えるだけなんだが、return valueを設定する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「setjmp除去はどっかにコードがあったはず」 / Twitter
Shinji KonoさんはTwitterを使っています 「ソースコードに直接コメントで書いたのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、専用のsetjmp/longjmpを作る方が簡単な気がする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CbCだとarchitecture に依存しないsetjmp/longjmpが書けるはずだと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「builtinにしてコード生成時になんとかする。llvmはアーキテクチャに依存しないコース生成できるから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCC側はnested function/closureを使ってるのでいじらない。LLVM/clangはnested function持ってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「llvm/clangでのbuiltinなアプローチもやったんだが… なんかで挫折した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「setjmpはsp/fpを構造体に入れるだけ。longjmpも基本的にはsp/fpを元に戻すだけ。ただ、そこでcaller/calleeの戻し値をちゃんと渡す必要がある。Cのreturnは複雑なのでcallerのreturnを使う必要があるが、値はcalleeにあり、sp/fpを消すとよろしくないことが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「builtinはなんかだめだった。llvm IR levelで処理しきれなかったはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、builtin 探し回った結論は、LLVM IR level では setjmp/longjmp は表現できないってことだんじゃないかな。10年くらいここを回ってるような気がする。」 / Twitter

2020-12-18_位相・集合・一階述語論理

Shinji KonoさんはTwitterを使っています 「ガロア理論一段落したので、位相空間論やりたくなってる。まず、開集合の定義からだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論でもできるけど、違う方法があると思われる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、集合論もそうなんだけど、位相空間論も集合論/一階述語論理べったりなので、適当に直す必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも位相空間論を圏論で再構築したのがすでにありそうな気がする。集合論でもToposのがあったんだが、モデル論的で「公理論的にもできる」としか書いてなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも集合論の公理が構成主義論理と合ってなくてさ。存在のみを公理化するべき。まぁ、自分で作ったのが合ってるとは限らない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「AgdaのTopology一つ見つけたが、Data.Finは残念な感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合は二つ集合の∩が開集合かつ、任意の開集合の集合の∪が開集合で良い。Data.Fin は要らない。まぁ、使うことになるかも知れんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFSet あるから、楽勝だな。 record Topology : Set where field OSet : ZFSet _o∩_ : {x y : ZFSet }→ OSet ∋ x → OSet ∋ y→ OSet ∋ (x ∩ y ) _o∪_ : {x y : ZFSet }→ OSet ⊇ x OSet ∋ Union x これをZFSet record下でやっても良いんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「フィルターの定義に似てるな。 Filter ( L : HOD ) : Set where field filter : HOD f⊆PL : filter ⊆ Power L filter1 : { p q : HOD } → q ⊆ L → filter ∋ p → p ⊆ q → filter ∋ q filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q)」 / Twitter
Shinji KonoさんはTwitterを使っています 「FilterはLatice 上で集合論抜きに書ける。集合演算をLaticeで定義してやれば良い。 _⊆_ : L → L → Set n _∩_ : L → L → L」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、束論で議論すれば良くて集合論要らないんじゃないの? あるいは同じだがBool代数上で議論する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の公理を振り回すより、HODの公理の方が直接的で楽。モデルが同じなので、HODで証明すれば、集合論側で否定されることはない。ただ、集合論側で証明があるかどうかはわからない。HODならZFの公理から構築できるってのを示さないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「できるような気がする。ここでいってるHODは上限が順序数で存在するので、そういうのがあれば集合だってのがなんかあった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それは証明するべきものだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも書き方がわからんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論だと集合xに属さない要素全部ってのは集合にならないのだが、ODだと両方ODになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「目標はチコノフなので Coverを定義する必要がある。 record _Covers_ (C A : HOD) : Set where field nei : ( x : HOD ) → A ∋ x → HOD cover∋nei : {x : HOD } → C ∋ nei x is-cover : ( x : HOD ) → A ∋ x → nei x ∋ x ぐらいかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開被覆はOSet∋Cで良いんだが… そもそも開集合って集合なんだっけ?」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合なみたいだな。で、有限部分被覆なんだが… ある自然数があってとやるしかない。finiteSet は既に定義したので、それを使うべきかもな。中にいろいろ便利なものがある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直積が面倒なんだが、ordered pairはある。でも、directに直積にしたいところ。面倒なのは直積が集合だってところだけなのでskipできるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「積位相がいるじゃん。 有限個の i に対してのみ Ui ≠ Xi である 何言ってるのか意味不明だな。あ、そうか、無限個の直積を考えてるからか。 先に無限を書くのは数学者のくせか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「単に射影の有限部分被覆を考えても凸集合しか出てこないからダメって話。形は無限に複雑になるのだが… 所詮は可算モデルだから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算無限なのに有限と無限の差が出るのは不思議」 / Twitter
Shinji KonoさんはTwitterを使っています 「元の空間がないとだめなんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、凹集合を数え上げる話になるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「任意の積位相による開被覆は、結局は、各射影の開集合から構成されてるはず。問題はむしろ、凹の含まれてない点にあるんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開基から生成ってのもやらないとだめなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ面倒だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合には穴の空いたのもあるわけだから、別に凹でも良いじゃんという気がするが。いや、射影の有限被覆からは作れないって話か。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開被覆の開集合の構成の各段階で有限被覆を確認すれば良いだけな気がするが… 構成をとって来れるのかな。いやでも、積位相の作り方からして、生成手順がないとあれだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それですむなら、かなり簡単なんだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、それは個々の開集合の話か。開被覆は無限個の開集合を含むから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限交叉でやるのが普通らしい」 / Twitter
Shinji KonoさんはTwitterを使っています 「チコノフはこれがわかりやすいんだが、極大フィルター使うと良いと書いてある。極大フィルターの存在には選択公理を使うはず。 https://t.co/IevZBJWnnt」 / Twitter
チコノフの定理の証明の概略 - 再帰の反復blog

2020-12-19

Shinji KonoさんはTwitterを使っています 「この操作は集合の上限と順序と排中律があればいける。追加するのは直積の任意の集合かな? QT 与えられた集合族Sに対して、有限交差性を満たすようにしながらどんどん集合を追加して、これ以上もう追加できない状態(有限交差性についての極大集合) S' にしておけく」 / Twitter
Shinji KonoさんはTwitterを使っています 「極大フィルターってのは超フィルターのことか。 Xはコンパクト ⇔ Xの超フィルターは必ず収束する。 確かにこっちの方が楽かも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超フィルターはこれ。収束と書いてあるが存在で良いんだろうな。 record ultra-filter { L : HOD } (P : Filter L) : Set where field proper : ¬ (filter P ∋ od∅) ultra : {p : HOD } → p ⊆ L → ( filter P ∋ p ) ∨ ( filter P ∋ ( L \ p) )」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、超フィルターの存在がコンパクトと同値で超フィルターがLnにあった時に、その直積に対して超フィルターを定義してやれば良いってこと?」 / Twitter
Shinji KonoさんはTwitterを使っています 「だったら、ZFの一部としてやるのが良いな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「お、確かに有限交叉性そのものな気がしてきた。なので、楽勝っぽいです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ということはフィルターの filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q) これは実は有限性に関する言明ってことなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合ではなくトポロジーと呼ぶ方が良い気がする。ある集合族が開集合であることを要求するのがトポロジーなんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFからここまで来たと思うと胸熱だな」 / Twitter
Shinji KonoさんはTwitterを使っています 「ならNatとか使わずにコンパクトを定義できるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「多分、有限交叉性の定義をフィルターに並行するように書いて、それが*普通*のコンパクトに同値だと証明するのが良さそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つうか、ultra filter が有限交叉性だってのを示せば良いのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは超フィルターの定義を書いた時に、これは有限交叉性だと一発で見抜けないとだめなケース」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合 X 上の集合族 S が有限交叉的とは T ⊂ S が有限族のとき ⋂T≠φ だと書いてあるがSはもちろんφを含まない。Sの要素二つの∩がSに含まれて、それがφにならないで良いのだな。Sから始めて∩とっていけば良いのかな。まぁ、そんな感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「数学科に聞くと「なんだ超フィルターが有限交叉性だって知らなかったの?」と笑われるパターンだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あら超フィルターが集積点を持つと書いてるな。なので超フィルターが直接、有限交叉性になるのではないのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに超フィルターはLか\Lがどちらかに含まれるだから、ちょっと違う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここで開集合が出てくるのか。 QT 位相空間 X の部分集合 S に対し、X の点 x が S の集積点であるとは、x を含む任意の開集合が少なくとも一つの x と異なる S の点を含むことを指す。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これはinitial objectってことか」 / Twitter
Shinji KonoさんはTwitterを使っています 「accumulation pointよりも、limit pointの方が直接的」 / Twitter
Shinji KonoさんはTwitterを使っています 「2011にも集合論とチコノフを復習してるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんでこの時期だったのかは不思議 https://t.co/QwZWYOKQ5e」 / Twitter
Seeker's eye: チコノフの定理
Shinji KonoさんはTwitterを使っています 「Programming Language Foundations in Agda https://t.co/btA0QXs4Fi」 / Twitter
Programming Language Foundations in Agda – Table of Contents
Shinji KonoさんはTwitterを使っています 「推論が繋がったら証明でしょ。なに言ってるの? 帰納推論と一緒にするな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ポパーの反証可能性とかも、推論と帰納推論の混同なんだよな。いや、偽の命題があったら無矛盾というあれなのかも知れんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁでも、だいたい、tweetした感じでできるっぽい。かなり量が多いがファイル一枚に収まりそう。チコノフの定理はだいたい2ページくらいのが多い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、Generic Filterとか放置してるものも多いので…」 / Twitter

2020-12-20

Shinji KonoさんはTwitterを使っています 「Generic Filter もかなりめんどくさくて。できそうではあるが、くらい。Cardinal の方を優先するべきだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「どうも5次元以上の多次元になると、幾何学が単純になってしまうらしく、それで時空が4次元って話があるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかGeneric Filterには部分関数は関係ないってのがわかった。反例ででてくるHω2は別ファイルが良くて、しかも、それがNat→2の部分関数であることを示す必要もないらしい。単にそういう性質を持つωの部分集合の集合であれば良いらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺り、今やるといろいろ簡単かもな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω→2は数え上げできないのだが、定義上限のある部分関数にすると数え上げできる。そういうトリックらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算モデルだと、中の非可算集合も結局は可算なのでωとのbijection がある。でも対角線論法があるので中の可算集合とのbijectionはありえない。問題は、そのbijection が集合かどうかだと思うんだが… 普通にbijection を定義するのではだめ。可算モデルの中でbijection を定義する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、でも普通のbijection で集合であることを要求するのが簡単そうに思える。pairでも、単なる順序数のpairではなくて、それが集合に対応することを要求してた。でも、なぜ集合である必要があるのかが謎だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の中がreal worldに対応するためには、そういうことが必要なのだというメタ公理みたいなものかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直接的には対角線論法と両立させるためか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「bijection が集合である時のみ、実世界のbijection と一致するみたいな感じか。これって、そういう言明は集合論ではあるのかな。まぁ、集合しかないから、それでやるしかないんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection はODでは書ける? そこでHODでないと矛盾するってのを出せるのか? 矛盾は出るが、ODで書けるのかって問題か。実世界ではBijection は常に存在するとは限らないってことだが。んー。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法 record Bijection (R S : Set): Set where field fun← : S → R fun→ : R → S fiso← : (x : R) → fun← ( fun→ x ) ≡ x fiso→ : (x : S ) → fun→ ( fun← x ) ≡ x diagonal : ¬ Bijection ℕ ( ℕ → Bool ) ってわけだが。(レベルが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODでのBijectionは、こんなふうに書くのか。(昔の自分に感心してる https://t.co/uoRLnOZrp0」 / Twitter
Members/kono/Proof/ZF-in-agda: 28c7be8f252c cardinal.agda
Shinji KonoさんはTwitterを使っています 「この方法だと、可算順序数だと無限集合は必ずBijection があるになってるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やはり何かいるな。可算モデルでのPower ωは歯抜けだが、公理はω→2が全部入ってると主張してる。Bijection は歯抜けに対して成立しているが、公理の主張からはBijection があると矛盾になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「普通はPower ωはHODではないになると思うんだが… そういう解決方法もある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律は絡んでいるのだが、選択公理下では使えるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論のBijection は普通のBijection より条件が多い。行き先が集合内にあるという限定がある。一度、順序数を経由するのでそうなる。Power ωだと、そこが乗り切れない感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで良いみたいだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω→2が可算順序数の部分集合で全部入ってないのがバレないのは、レーベンハイムスコーレム。対角線論法で実際に入ってないものが構成できるのだが、その入ってない範囲は内部のωであって、Power ωは値を指定せずに「その外にある順序数」を返す。構成できるものは可算なので問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection は中のωとの対応を要求するので矛盾するので存在しない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record Injection (A B : Ord ) : Set n where field i→ : (x : Ord ) → odef (* A) x → Ord iB : (x : Ord) → ( lt : odef (* A) x ) → odef (* B) ( i→ x lt ) iiso : (x y : Ord) → ( ltx : odef (* A) x ) ( lty : odef (* A) y ) → i→ x ltx ≡ i→ y lty → x ≡ y」 / Twitter
Shinji KonoさんはTwitterを使っています 「このiBの部分が相手の集合に乗ってるのことを要求するのだが、ω→2だと、それが示せない。できるとすると対角線論法に引っかかる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろヒヤヒヤするよな。でも当時の集合論を作った人たちも矛盾を踏まないかどうか心配してたはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この話は結局、可算モデルの中で非可算集合はどう定義されるかってことで、内部のωにInjectionがないって話に帰着するってこと。連続体仮説はInjection の制御の問題になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁでも、まだ証明を遂行してないので間違ってるかも知れん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのでbijection が集合かどうかとは関係なかった」 / Twitter
Shinji KonoさんはTwitterを使っています 「今のHODでは具体的な順序数の値を指摘できるのは空集合だけ。pairでさえどの値を持つのかわからない。ただ、一対一を仮定してるので詰められて入っていることになってる。まぁ、それはスカスカに対応させた後、詰めれば良いとも思えるんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「一対一はなんか変。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかもうありとあらゆるものが可算集合の中に入ってるので、それで良いんですかっていう気分。」 / Twitter

2020-12-21

Shinji KonoさんはTwitterを使っています 「ベルンシュタインとバーンスタインっておんなじだよな。ちゃんと証明しないとな。」 / Twitter

2020-12-23

Shinji KonoさんはTwitterを使っています 「今年は、ZF on Agdaで「しまった」の大逆転があったのが面白かった。安易な仮定を入れて解決したが… 6/24に見つけて7/5には片付けてる。そのあと、わりといろいろ進んだが放置中。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そのあと、群論に転んだ理由は不明。でも、おかげでFresh Listを学べた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換をコンビネータで書いて、具体的な有限減少数列FLに対応させるわけなんだが… もっと簡単な方法がある。01234に置換を適用して、それからFLを計算すれば良い。bijection をいじるのは難し過ぎ。逆も可能。まぁ、やってみないとわからんか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあ、でももうできてるし、今やる気はないな。変換したリストがbijection に対応するのを示す必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「割と簡単かも」 / Twitter
Shinji KonoさんはTwitterを使っています 「やろうとしたあとがあるな。やっぱり面倒なのかも。 ---FL→perm : {n : ℕ } → FL n → Permutation n n ---FL→perm x = plist→perm ( FL→plis x) -- perm→FL : {n : ℕ } → Permutation n n → FL n -- perm→FL p = plist→FL (plist p)」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は入力の長さで抑えられるので、ωオートマトンでなければ気にする必要はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限性を示す方法は決まった形しか出てこないで良いはずなんだが… やり方がわからんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は、元のsubtermのx &amp; y の形の部分集合になるので、 subterm x subterm → Bool でsubtermの有限性から出るらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法が正しく正規表現の意味を保存するかどうかは正規表現同士あるいは、さっきの subterm x subterm → Bool が元のに等しいかどうかの問題になる。split 使えるから意外に楽かも。そこからDFAまでは、まだ距離があるけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは院生時代にやったITLのtableau展開と同じで、いろいろ工夫すると速くなる。BDD使ったり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CFGとPDAはやったのだが、同等性の証明はやってない。CFGがリストとか使っててダサい。動いてはいるようだが。再帰下降法(+左再帰)で書いてやる方がAgda向きだろう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はTuring Machine 。対角線論法は書けたが、halt 問題がまだ。」 / Twitter

2020-12-24

Shinji KonoさんはTwitterを使っています 「halt 問題、いまいちうまくできないな。 List Bool → Bool と List Bool のBijection なはずだが。 TM : List Bool → Bool TME : TM → List Bool UTM : (tme i : List Bool)→ Bool halt : List Bool → Bool」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのだが、 (tm : TM) (i : List Bool) → halt (TME tm + i) ⇄ halt (TME (UTM (TME tm) + i TMEは元に戻らないのだが、haltが違いを吸収してしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、halt 問題難航してる… TM と List Bool のBijection halt : TM → Bool は仮定して良い。 halt tm ≡ halt (utm (encode tm)) は万能性からでる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そこで、TMに任意のList Bool→Boolが入っているとするとBijection Nat (Nat →Bool)になるという風にしたい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、halt と not halt でも良いのだが」 / Twitter
Shinji KonoさんはTwitterを使っています 「TMに任意のList Bool→Boolが入っているの否定は TMでないList Bool→Boolがあるか。実際それをnot haltで構築できるわけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「全部trueとかは自明にあるのでだめ。haltは自明でない例になってる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、 halt : TM → Bool だけでは足りないのだな。真実性の問題。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltはTMなのでencodingがある。この辺りを組合せて、List Bool → Bool とList Bool のBijection を作れるだろと思ったんだが、List Boolに戻すのにencodeを使うと元に戻らない。encodeのUnique 性を要求すると、そこで矛盾してしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Unique なのはTMなので、 TM → Bool と TM でやるべきかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「自己参照側をやってみるべきだな」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection ではなくて、injection でやれ説も。」 / Twitter
Shinji KonoさんはTwitterを使っています 「halt自体には大した意味はなくて、Bijection の反例なだけ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「injection でやるのが良いような気がしてきた」 / Twitter
Shinji KonoさんはTwitterを使っています 「インジェクションだとできないな」 / Twitter
Shinji KonoさんはTwitterを使っています 「非構成的にでも逆射を作れれば。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、わかってきたかも知れない...」 / Twitter

2020-12-25

Shinji KonoさんはTwitterを使っています 「なんか書けたような気がする。 halting : (halt : TM → List Bool → Bool ) → (z : TM) → ¬ ((x : TM) → tm z ≡ (λ y → halt x y ) )」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、微妙に違うか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「halt は∀じゃなくて、何か存在すれば良いから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltがTMの停止を見てるかどうかは関係なくて、TMからBoolへの写像なTMであることが矛盾なのだが、自明なものを排除する必要があると思うんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いい加減、AutomatonのAgdaと教材を整理して、問題を足さないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、直接的にhaltなTM的に書きたいんだが…」 / Twitter

2020-12-26

Shinji KonoさんはTwitterを使っています 「対角線論法、injection だけでもできるはずだが、逆射の構成が排中律なしにはできないっぽい。二重否定で記述すれば何とかなる可能性もある。まぁ、Bijection でやるんだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Turing MachineとList BoolとのBijection はUTMがあれば自明な気がするが、Agda特有の面倒なことはある。でも一応言える。これは、TMが List Bool → Bool を全部はカバーしてないってこと。halt は、その中の一つの関数に過ぎないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「知りたいのはhaltの特殊性が何かってことね」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection の構成はhalt 一つだけだと無理だよな。なので、たぶんInjection でやってる。つまり、排中律とかのなんか別な仮定がいると思われる。それは、まぁ、haltの特徴なのだろというわけなんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltを使ってBijection 書けるでしょってのが最初の目論見だったんだが… halt : TM →List Bool → Bool っだけ。常にtrueを返すとかだとだめなのはわかる。でTMが停まる時に停まらないってのは? そうか、そもそもTMが未定義を含むの忘れてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltの特殊性は停まらないことがないところにあるのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観論理的な二重否定表現を使ってしまった。知らんけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltが常にfalseを返したりしないってのは仮定にあるはずなんだが、明示的に書いてる証明はみたことない。それは理論の整合性、つまり、解釈が無矛盾なら偽を含むってやつなはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「√2が無理数だってのはn/mでn*nが奇数はありえない。で、偶数の時はどうするの? 互いに素を要求するのはなんだかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは割と良いが… https://t.co/Mhlwvobqfe」 / Twitter
√2が無理数であることの証明 | Fukusukeの数学めも
Shinji KonoさんはTwitterを使っています 「偶数x偶数が偶数なのは、偶数+偶数が偶数を使うと再帰で簡単に示せた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「2の因数の個数ってのは結構複雑な概念だよな。互いに素よりはましだが。 record Factor2 (x : Nat) : Set where field i : Nat j : Nat xis : x ≡ 2^i * j oj : odd j かな。 (fx : Factor2 (x * x) )→ even (i fx)」 / Twitter
Shinji KonoさんはTwitterを使っています 「互いに素を使うのとあまり変わりがない」 / Twitter
Shinji KonoさんはTwitterを使っています 「div : (x y : Nat) → Set div x y = div1 x x y y where div 1 1 _ _ = T div _ _ 1 1 = T div1 (suc x0) x (suc y0) y = div x0 x y0 y div1 0 x 0 y = ⊥ div1 0 x y0 y = div1 y0 y0 x x div1 x0 x 0 y = div1 x0 x0 y y くらい?」 / Twitter
Shinji KonoさんはTwitterを使っています 「どちらか1になるまでか。で、 even x → ¬ div x 2 div x y → ¬ (¬ div x 2 ∧ ¬ div y 2) これを示せば良いの? いや、割り切れる方を定義した方が良いな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「2*n*n≡m*m→ div n m となってよろしい。 record Rational : Set where i j : Nat dv : ¬ div i j だが、掛け算を定義すると約分が必要なのか…」 / Twitter

2020-12-27

Shinji KonoさんはTwitterを使っています 「√2は佳境にきたところで電池切れした。 残ってるのは gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → ¬ ( gcd n m ≡ 1) だけだが、再帰でやらないのかも。 全体に長くて汚い…」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcd を n|mの代わりに使うのはな。https://t.co/XPROOjRJAmにあるから、それを使う方が良さそう。素数が無限にあるやつとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → gcd n m ≡ 2 とは限らないのがな。gcd n mでnを減らすのはまずい戦略。gcd n 2なら2減らせるのだが。 再帰でないとするとなんだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDはまだできてないが、automaton の Agda の整理はなんとかできた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDは、間違ってる可能性もあるんだよな。(いまさら?」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDは引き算で互除法を実装していて、引数4つで回してる。引き算といっても一つ一つ引いていく。gcd n m でnがゼロになった時に同時に引いていた m に切り替えるのだが、gcd m 2 をgcd (m - n) 2に切り替える必要がある。結局、再帰を並行してたどれば良いだけなはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「終了条件はできてるのだから、あとはinduction stepだけなのだが。」 / Twitter

2020-12-28

Shinji KonoさんはTwitterを使っています 「GCDが通らない理由はバス停で降ってきた。型が違うから明示的なsubstが必要なんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここは今でもなれないな。値としては同じなのに。」 / Twitter

2020-12-29

Shinji KonoさんはTwitterを使っています 「gcd、まだ、よくわかってない。この辺りの証明技術は身につける必要があるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcdが片付くと、素数が無限にある証明もできるだろうな。有限ならn!+1が反例になるだけだから。ちょっと書こうとしたのだが、割り算がめんどくて…」 / Twitter

2020-12-31

Shinji KonoさんはTwitterを使っています 「結局、GCDについていろいろ証明する羽目になってる。詰将棋的。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCD、要するに複数の引き算を追いかければ良いのだが、めんどくさすぎる…」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、制約が足りないみたいだな。意外に固い…」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年はWindowsのくそと戦っていたらしい… 今年はGCDか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「初期条件から来る制約が書かれてないのが問題なのかな。それを明示的に証明するべきだな。これは、一種のHoare condition だ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「引数4つi,i0,j,j0だが、最初は i=i0, j=j0。さらに、 i≦i0,j≦j0,i0≦j0 くらいの制約が可能だな。示したいのはgcdは割り切れるなら1じゃないってだけ。 gcd261 : (n n0 m m0 i i0 : ℕ) → 1 &lt; n → 1 &lt; m0 → gcd1 n n0 i i0 ≡ m0 → ¬ ( gcd1 n n0 m m0 ≡ 1 ) 簡単なはずなんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaで集合論をやった結論の一つは 選択公理は排中律と同値 まぁ、ODなので集合に順序が最初から入ってるからそうなるわけなんだけど。でも、それで自分的には納得。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算順序数から作った実数が実世界に対応するかどうかは、また、別の話。それは一種のチャーチのテーゼではあるな。」 / Twitter

2021-01

2021-01-01

Shinji KonoさんはTwitterを使っています 「制約追加、意外に自明じゃない。順序入れ替えるだけではあるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと、制約増やすと止まらないのか。ありえんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「引数を増やして止まらなくなるのはおかしいだろ。でも、まぁ、仕方ないかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「制約を外部的に出す方が良いのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「うーん、ちょっと難しいな」 / Twitter
Shinji KonoさんはTwitterを使っています 「再帰のステップの一部だけ抜き出して証明するってのはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「停止条件の継承みたいな推論があると良いのだが。そうすると引数を安心して増やせる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、なんか降ってきた」 / Twitter
Shinji KonoさんはTwitterを使っています 「&lt;-cmp をはさむと止まらないのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いやだめだ。振り出しに戻る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと致命的な条件を忘れてたぜ」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、関係ありませんでした。」 / Twitter

histric-1

Shinji KonoさんはTwitterを使っています 「_⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set m _⊆_ A B {x} = A ∋ x → B ∋ x なので ⊆ の方が直観主義論理的に扱いやすい。真部分集合にすると等しくないという条件を追加する必要がある。フィルターの定義も⊆を使う方が自然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ホモロジーは学部のどっかで少しやった。が、集合論/位相空間論に自信のない頃だったから。数学科の同期に「どこで選択公理使ってるかわかる?」とか言われてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学部の頃のいくつかの本にも選択公理は非構成的な概念だと言われていたのだが、その頃はまだわかってなかった。チコノフの定理の証明の難しさは乗り切れてなかったし。でも、まさか排中律のことだとは思わないじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理抜きでやるのがどういうことかもよくわかってなかった。排中律なしの数学がどう言うものかは、やってみないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、当時も大学の数学の厄介さは、量化記号のスコープがはっきりしてないことだとは思ってた。今の学生はそこをプログラミング言語として突破できるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理から選択公理を導くのは排中律があればいけるのだが、使うのは一箇所じゃない。 ∀-imply-or : {A : Ordinal → Set n } {B : Set n } → ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B この微妙な命題に排中律がいる。避けられるかも。 https://t.co/khuE8t4kPf」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b LEMC.agda
Shinji KonoさんはTwitterを使っています 「OD baseだと、集合と順序数の対応は仮定してしまうので、選択公理から整列定理はやらない。排中律は選択公理から出るけど対応を使ってるので、それなしだと厳しい。選択公理から排中律抜きで整列定理が出るとは思えないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合の整列には∈と⊆の二種類の順序数が入る。片方にできると良いが… x と {x} の関係によるか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「∈と⊆の二種類の順序の調整は、なんかトライした記憶がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}がxの直後順序数に対応するってのを入れると⊇だけで良いらしい。こっちの方を公理にする方が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}は (x,x) なので構文的な問題でしかないのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「data/datum だから axia/axiom みたいにならないの? axioms って書いちゃったりするけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}とxの対応からはPower xとxの対応は出ないのでなんか仮定する必要がある。それが連続体仮説。少なくとも何かで抑えられるとしないとPower x自体が集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Power ω は集合ではないでも良いんだが世間が許してくれない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで可算順序数がPower ωを含むっていうあほなことになるわけで… 可算順序数の可算性は中からは見えないので問題ないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairを直後順序数にすると、そこに他のものが割り込めない。pairの上界と個々のpairの間には無限の隙間があるから、そこに順番に入ってしまうイメージだな。それは制限が強過ぎる気もするが問題ない気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、malloc的なイメージを持ってしまうので、型が違うものの配置が入り混じる方が自然な気がする。まぁ、あんまり関係ない。絶対アドレスはわからないから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lや連続体仮説あるいは選択公理は、集合と順序数の対応、そして集合の要素に対応する順序数の上界に帰着されるようなので、あんまり制限を入れたくない。Filter抜きでもいけそうな気がするんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Automaton 普通にSetを返すように書いて行ったら、バッチリ行き詰まった。いや定義は書けるんだが、acceptを証明にいかないとダメなので厳しい。acceptがBoolを返すようにする方が簡単だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TL/1 compiler はtranslator が思ったよりもめんどくさい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型整合はプログラムの正しさの一部でしかないのに、なんで偉そうにしてるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラムでヤコビ行列というとベクトル可算システムってのがあって、ペトリネットとかに使われてたが… 実用的かどうかと言うと。でも、今の深層学習はそういうものかも知れないな。」 / Twitter

Shinji KonoさんはTwitterを使っています 「掛け算の対称性を示すのに、長方形を縦に足しても横に足していっても同じってのがあるのだが、それらは記号論理的には別物。それが同じ値になることを示すのは容易なのだが、それでは対称性を示したことにはならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無無矛盾は、直観主義論理だと、無矛盾を構成的に証明できたら矛盾な意味になる。それはなんと証明可能なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可換環って、そんなにやることあったっけ。有限ならいろいろあるだろうけど。めんどくさいのは非可換で、さらに不定計量とか。いや、代数学、この前復習した時にも、いろいろあるなぁとは思った。」 / Twitter
shinji_kono 選択公理 - Twitter検索 / Twitter
Shinji KonoさんはTwitterを使っています 「cut eliminationは一通り追ったけど、証明は割と厄介。停止性がね。僕は重要性はいまだにピンと来てなくて。重要だという人は多いんだが。 理由はAgdaでトラブルのは推論よりも 単一化 だから。述語論理の問題はそっち。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カット除去は完全性の証明の一つなので、完全性証明したなら不要な気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「不完全性定理はいまだにうまくて定式化できてない。UTMは頑張ればなんとかなりそうな気もするが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹は必須だし理解しやすい。 証明とは何か 証明されたものが何故正しいのか がはっきりわかる。記号ゲームとして。なので論理学では、それを重視するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理とモデル論は、直観とかなりのずれがある。論理式の意味は あらゆる可能な変数と述語の意味の組合せ なので超巨大。そのうちのすべての公理が 正しいもの がモデルなのだが、さらに 意味付けと関係なく恒真な式 とかを受け入れるのは困難だと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「特に等式がな〜 等しいものを並べた無限個の式の集まりとか、なんとかならんの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理だと それは項の正規形が同じこと と主張できる。あるいは 勝手に定義した同値関係 だな。こっちの方が無限倍まし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無限個の等式の話を聞いたのはμ代数からだが、その時に言われたのは 別に普通ですよ おいおいおいおい。その感覚、おかしいだろ。合同性は数学の基礎なのに、そこに無限をいきなり持ってくるのかよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが正規化が有限かつ唯一なことを示すのは割と厄介でしかも 停止性には選択公理が必要 避けられそうな気もするが… なので直観主義論理の等式もたいがいではある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理が証明可能な論理式を問題にするように、観測可能なものだけを問題にして、それ以外の仮定を排除するようなものが必要なのかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直接的に自己参照矛盾を示しても良い。対角線論法は間接的な自己参照に相当する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルの構成可能集合Lは最小モデルなんだが、古典集合論での定義を見るとSAT使ってたりして、かなり複雑。ODも定義可能なのでHOD=Lとなりそうだが、そうでない場合がある。HODはODのSubsetなのだが自由度がある。一応、Lも書いたんだが、なんかズレてる感じもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「思い出した。このgalois理論の証明、地獄のように時間がかかる。それをネタにしようと思ったのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellに対するdebuggerを定義できないなら、関数型言語の良さってなんだよ。」 / Twitter

@sinya8282

2020-11-04

Ryoma Sin'yaさんはTwitterを使っています 「数理科学実験の第5回目が終わった... 正規言語(=左線形方程式の解)から文脈自由言語に一般化し、さらに講義内課題でいくつかの文脈自由文法を書かせた. 学生さんは文脈自由文法の定義を知らない状態から講義を受けて課題に挑戦しているので簡単ではないけど何人かは解けてて良かった. https://t.co/mt9cDNsJKi」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由文法はPyhtonでは「初期変数」と「書き換え規則の列」のタプルで定義できて、あとはこのフォーマットの文法を deriv 関数になげると各ステップの導出が見える感じ. https://t.co/TxOrKnOPIg」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分で与えられた文法から導出したり、文法を考えてみたりして文脈自由文法の感覚がわかってきたところで、先週の講義でガッツリやった「原始語」の全体の集合が文脈自由文法で書けるかどうか?問題が open である歴史を少しはなして終わり. 来週は無曖昧文脈自由文法から代数関数の話に入る.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「具体的には代数関数の定義をおさらいして、文法を可換化して関数方程式を作り、その解が(文法が無曖昧の場合は)言語の母関数となってることを説明していろいろありがたみを話して、SymPyで母関数を具体的に計算機で計算するってのをやる予定.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分が配布した文脈自由文法のプログラムの+アルファの部分(講義内では必要ない additional なコード)に素朴なバグが入ってたので恥ずかしいです...直します...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに最後の写真にある 「"a"と"b"が現れる回数が等しい(例:"baabab")語」 は私の痛恨のミスです😱 数が数えられないオートマトン人間なんで.......」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「{ w ∈ {a,b}^* | |w|_a = |w|_b } は regular language ではないけど、regular language の収束列の収束先ではあるので簡単(?) (cf. https://t.co/ENDkbclaBw」 / Twitter
Asymptotic Approximation by Regular Languages - measure.pdf
Ryoma Sin'yaさんはTwitterを使っています 「文脈依存言語と一般の生成文法の記述する言語の最小不動点的な特徴づけ、難しいのかな(いずれ読むか)? Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages https://t.co/q4RcFR49Qj」 / Twitter
Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages - ScienceDirect

2020-11-10

Ryoma Sin'yaさんはTwitterを使っています 「今朝は数学基礎論序説の輪講で∀∃理論のチャン-ウォッシュ-スシュコの定理をやったんだけど、頑張って初等部分構造の列を作っていって最後に初頭鎖定理で決めるの痛快でしたね. わかりやすく説明してくれた学生さんに感謝. https://t.co/sPxpLPt8c3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「間違いと真理: 解析学と集合論の場合」 https://t.co/HvMuKN3iYb」 / Twitter
間違いと真理: 解析学と集合論の場合 - susemi2018-x.pdf
Ryoma Sin'yaさんはTwitterを使っています 「正則環 1mm もわからん.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「諸事情あって3.3節(ホーン理論と約積)は私が担当することになったんだけど、フィルター大好きマンなのであっさり読めた(というか主定理の難しい方向の証明はomitされてたので技術的に楽な節だった)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「えっ正則環って色々あるの. https://t.co/SO1Q4cwED7」 / Twitter
ぴあのんさんはTwitterを使っています 「どの正則環だろう」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「基礎論序説に出てくる「正則環」は (可換ではない)環の公理 + ∀ x ∃ y xyx = x のモデルですね.」 / Twitter
ぴあのんさんはTwitterを使っています 「@sinya8282 https://t.co/KEQSQLzB2E https://t.co/2U9apmIcXQ」 / Twitter
Regular local ring - Wikipedia
Von Neumann regular ring - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「@piano2683 なるほどー. 基礎論序説に出てきたのは後者でした. んで私が1mmもわからんといったのは前者でした(ややこしい笑). 普通に「正則環」でググったら前者が出てきたので...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「正則という概念を比較不能な概念に変換する von Neumann とか言う接頭辞、強すぎん?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「可換環論と非可換環論で regular って言うとそれぞれ違う概念(regular/ von Neumann regular)を普通は思い浮かべるのかな.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「N上の超フィルターに思いを馳せることでRamseyの定理がスパッと出せるの気持ち良すぎるな?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「超フィルター  = なんか性質の良いデカいもんの集まり Ramseyの定理  = デカいもんの有限分割にはデカいもんがある なので両者には自明な深い関係がある(???)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群のStone-Cech完備化に思いを馳せることで(私の知る限りstate-of-the-artな) Hales-Jewettの定理までスパッと示せるらしくて完全に超filterジャンキーになりそう. 超filterキメたいぞ〜〜〜〜」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「10月から講義準備で忙しすぎて死んでるのでフィルターで組合せ論倒すやつ勉強できてない... https://t.co/99XcIua2V4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群論で習った正則半群はまさにこの定義(∀x ∃y. xyx = x)だったなそう言えば. https://t.co/q9B55LGtAb」 / Twitter
Regular semigroup - Wikipedia
ぴあのんさんはTwitterを使っています 「モデル理論の文脈だと、「vN正則環の理論」とその∀-Horn partである「冪零元を持たない可換環の理論」は共通のモデル随伴を持つけど、一般にはTがモデル随伴を持ったとしてもT_{∀H}がモデル随伴を持つとは限らない、とかの面白い話がある←ここでlattice-ordered groupが出てきて無事死亡」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「モデル随伴」の時点で死亡しました😭(勉強します...)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「さらにこの y を「一意に存在する」に強めたのが inverse semigroup さんです. https://t.co/cbp8orgwb6 自由 inverse semigroup さんの語の問題は微妙に非自明(自由群や自由モノイドの語の問題は自明)なところがちょっとおもしろかった.」 / Twitter
Inverse semigroup - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「Inverse semigroup だけで一冊の本が出てるので色々理論があるんでしょうね. https://t.co/Fakg3jwMb3」 / Twitter
Inverse Semigroups

2020-11-11

Ryoma Sin'yaさんはTwitterを使っています 「今日の数理科学実験では文法の曖昧性の話をして、ちょっと自然言語の例も出したりした. https://t.co/gqPfotcXT4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「この "people people people see see see" という例は私は金沢先生の形式言語のオンラインテキストから知りました. (こういう読みにくい英文があるとは!! 非正規!!!) https://t.co/RsShu5kwTY」 / Twitter
lecture1.pdf
Ryoma Sin'yaさんはTwitterを使っています 「んで Chomsky--Schutzenberger の定理を通じて文法から代数関数の話に行って、最後はプログラミングパート. SymPyで簡単な代数計算. https://t.co/lw1RIgPjxs」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「来週は SymPy でもっといろいろな計算をやる予定. 「意外と計算機でできることって多いんだ」と感じてもらえると嬉しいっすね(準備ぃ...).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに "people people people see see see." を DeepL に食わせると壊れます. _人人人人人_ > People <  ̄Y^Y^Y^Y^Y^ ̄ https://t.co/R7i91xkQsB」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「講義ツイに「イイね」押してもらえると素直に嬉しいしなんか準備ももっと頑張れる気がする(ありがとうございます😭)」 / Twitter
す (終了)さんはTwitterを使っています 「一瞬何言ってるのかぜんぜんわかんなかったのだが、people see が people にかかるのか。」 / Twitter
す (終了)さんはTwitterを使っています 「訳としては適切じゃないけど「お前を見る人が見る人が見る人が見る」みたいな…… people see ってあんま自然な日本語にならん気がするのは私が英語と日本語ヘタだから?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに日本語でこういう形の文章(すなわち X^n Y^n で XとYは日本語)の例が作れないか少し考えてみたんだけど作れませんでしたね... 良い例があれば皆さん教えて下さいm(_ _)m」 / Twitter
Chomsky--Schutzenberger の定理 - Google 検索

2020-11-13

Ryoma Sin'yaさんはTwitterを使っています 「コーディング開始してまだ2時間ぐらいだと思うけど、すでにThompon構成をほぼ書き終わらせてGraphviz形式で書き出してオートマトンの可視化とかもできてる人もいる. 良いペース. #seccamp #seccamp_z3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「才才才してるのでパズルっぽい基本定理であるところのGreenの定理が形式言語理論に役立つことを見抜いてしまったのだよな...  勉強した半群論が使えて気持ちいい〜〜〜 (cf. https://t.co/ENDkbclaBw https://t.co/PHaiUl1SkE」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「田中先生の本(p. 97)には(約積とホーン理論の対応の証明の直後に) 「では,直積を保存する文全体がどのようなものになるかというと,容易には記述できない.実際,それが計算不可能であるという結果がマコーバー(1960)によって得られている」 と書かれていました. https://t.co/YO5peY62Qj」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「マコーバーの論文に目を通してないので「計算不可能」の意味が1mmもわかってないんですが,有限の文の集合Tを入力として「Mod(T)が直積に閉じているかどうか」が決定不可能ってことを言ってるんですかね?よくわからん. (上の問題が決定不可能でも特徴づけが難しいってことの理由にはならない気も)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「こう,なんか,形式言語理論でもモデル理論でもそうなんですけど「演算XXXらで閉じている」っていう抽象的な性質が「YYYで定義できる」っていうより具体的な性質で書けるの気持ちよくない???」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「代数的言語理論とかのきれいな世界を知っちゃうと,有象無象にある閉包性の低い言語クラス(しかし応用上は重要)みたいなものをわりと軽視しちゃいガチな感じはたしかにある. とは言え変な言語クラスにも理論的に重要なものがあったりするのはママあるのでニュートラルな感性を持ちたい.」 / Twitter

Ryoma Sin'yaさんはTwitterを使っています 「正規表現の基本から教えて、オートマトンの作り方、バックトラックベースのマッチングの動作、バックトラックで実行が遅くなる例をみっちり紹介してReDoSの検出アルゴリズムを説明(これは藤浪さんが担当)して、と非常に濃い1日だった...  講義の構成上、多分初回が一番濃ゆい回な気がする.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ReDoSの原因となる正規表現の部分構造の検出、オートマトンの繊維関係に順序関係を入れた拡張を考えたり、オートマトンのリバースとか直積とか強連結成分分解とかある構造のサブグラフの探索とかやるのでフツーにめちゃめちゃ非自明&テクいんだよな. (論文になってるぐらいだからな)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「ReDoSの検出」というよりは正確には「ReDoSの対象になるような多項式・指数時間のマッチングがありえる正規表現」の検出だけど長いので省いた.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「強連結成分分解、Tarjanとか凝ったことしないで素朴に幅さ優先で到達可能関係を計算していく方針でやったら簡単に実装できるよね(それでもたかだか3乗オーダーとかじゃないか?).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「2乗オーダーも3乗オーダーもどっちも線形でない多項式、変わらへん変わらへん(炎上発言).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 せや DFS 2 回を 1 回にできるのが凝ったやつ、オーダーは変わらん」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany あ〜なるほど完全に理解.一回でできるってのが嬉しいのね. ってかグラフアルゴリズム界隈ぜんぜん知らんかったけど「線形」っていうと普通は辺の数で線形って意味なのか(点の数かと思ってた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 「入力サイズ」に対して線形ですね グラフは頂点も辺も入力なので、正確には O(|V| + |E|) です」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany まぁそりゃそうか(職業上、|V| &lt; |E|なグラフを常に考えているのでO(|V|+|E|) = O(|V|)的に無意識に考えていた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (何かがおかしい)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany |V|と|E|また間違ってしまった.」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 もちろん素朴に 2 点間の到達可能関係を全部ゼロから計算しても求まるけど、それはさすがに線形ではない」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany (最初のツイで私が言った「素朴な方法」はそっちだった笑)(素朴すぎた)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「適当なつぶやきするとプロから即座に指摘&指導してもらえる、それがツイッター(ありがたい).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 これ読んで勉強して https://t.co/DbbVZR5k4o」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「強連結成分分解のアルゴリズム、シンプルな魔法って感じがする https://t.co/W4ovNEW25T」 / Twitter
強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany サンキュー!高校数学やりなおすわ. (っていうか昔これ読んで勉強した記憶が笑)」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (さっきのツイートふぁぼられてたしな…)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany YYのツイート見て読んだかもそういえばw」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「みんな、どんどんオートマトン理論でテキトーなつぶやきしてくれよな!(優しく教えます)(まぁ全部観ることはできませんが)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「VもEも同じ1文字やし同じようなもん(???).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「は?????? 指数爆発DFA投げつけるぞ???? (優しく教えるとは)(Rabin–Scott並感やめろ) https://t.co/QoSKNvASR0」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「オートマトンとか決定性でも非決定性でも実質同じでしょ」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「今日のセキュキャンZ3(ReDoSの検出)の講義では、先週のかるいおさらいして「とりあえず正規表現からオートマトン作るコード書きましょうか」という感じ. JSの正規表現のパーサーはチューターの開発してるRere.jsを流用して、純粋にThompson構成を実装する感じ. https://t.co/nnupaquALy」 / Twitter
MakeNowJust/rerejs at 0c2ac95d0f13b7c5acfc75fc2e0db6239058eb07
Ryoma Sin'yaさんはTwitterを使っています 「ほんと,こんな単純なメカニズムで文脈自由文法は定式化されているのに普遍性が決定不能なのヤバいよな.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由言語、こういうふう(→を⊃)に書くと完全に代数やってる感じ. https://t.co/teGhe6QxrK」 / Twitter

@masahiro_sakai

2020-10-30

Masahiro SakaiさんはTwitterを使っています 「Compiling with Continuations, or without? Whatever. https://t.co/GzSpSU3YrZ CPSベースとdirect style + 明示的な合流点のIRの双方の利点を活かせるIRとして、FelleisenのC的な機構で継続へのアクセスを選択的に許しつつ、エスケープするかとリターンするかを型システムで扱うようなIRを提案。」 / Twitter
Compiling with continuations, or without? whatever. | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「恥ずかしながら "CFG-based IRs in SSA-form are isomorphic to CPS" って知らなかった(それはそう)。 エスケープすべきでない値がエスケープしないことの保証は、一級・二級の型付けを区別し、ラムダ抽象の本体に対して一級の型付けを要求するだけでよく、そんな簡単に出来るんだと思った。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「ちょうど ICFP 2016 での Sequent Core の話 https://t.co/yXzKPUhNWc や、その前の Haskell Day での SPJ の講演 "Into the Core Squeezing Haskell into nine constructors" の話を聞いたのを思い出して、ちょっと懐かしくなった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Sequent Calculus as as …: SPJがHaskellDay2016で言及して気になっていた発表。ラムダ計算の代わりにシーケント計算に基づいた中間言語。 "Continuations as Join Points" #ICFP2016 #hsd2016」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai GHCプラグインとして実装 https://t.co/FgMyu8IXoo ; Sequent Core と Core は相互に変換可能。 case-of-case とかの最適化の際にjoin pointであることを保つように。 #ICFP2016」 / Twitter
lukemaurer/sequent-core: Alternative Core language for GHC plugins
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai join point っぽい関数を見つけてjoin point化。 "Re-contification" ベンチマーク結果は大きく変わってるが、主な理由は(現在のCoreに合わせて調整されていた)inlinerの振舞の変化 #ICFP2016」 / Twitter

2020-11-18

Masahiro SakaiさんはTwitterを使っています 「Pure destination-passing style in Linear Haskell https://t.co/B2oVGyoHJo 書き込み先のバッファを渡して書いてもらうDPS(destination-passing style)に線形型を組み合わせると、純粋なコードのまま(fusionに依存せずに)低レベルな最適化までできて良いよという話。線形型いいなぁ。」 / Twitter
Tweag - Pure destination-passing style in Linear Haskell
Masahiro SakaiさんはTwitterを使っています 「DPSは以前に https://t.co/ZF07j2EC22 で紹介した関数型配列処理言語 F̃ で最適化を行うための中間表現とコード生成でも使われていたが、そういうのを表層言語で型安全に実現できる。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Efficient Differentiable Programming in a Functional Array-Processing Language https://t.co/FeSkAQjB7l ソースコード変換に基づく(スカラではなく)配列処理ベースのフォワードモード自動微分を備えた関数型DSLの提案。書き換え規則に基づく最適化で、リバースモードが得意なケースでも速い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Compact normal forms + linear types = efficient network communication https://t.co/3fz2eNSLPF 「コンパクトにシリアライズされた表現をデシリアライズせずにそのまま操作する」ようなコードを安全に書くための線形型の応用で、これも面白い。」 / Twitter
Tweag - Compact normal forms + linear types = efficient network communication

Masahiro SakaiさんはTwitterを使っています: 「Runtime Support for Multicore Haskell: a Retrospective https://t.co/T8ns3Rq7Ak ICFP’09の掲題論文のSIGPLAN ten-year most-influential paper award受賞を機とした振り返り。純粋関数型言語は並列化に向いていると思いきや色々難しい問題があり、その設計とエンジニアリングには当時感銘を受けた」 / Twitter
Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog

@KuniSuzaki

suzakiさんのツイート: "Concurrency二つ目。プログラミング言語GoではShared Memoryではなく、Communication (GoRoutine, Channel)を基本とするが、Concurrency Bugが起きやすい。この状況は調査されておらず、Goが使われているDocker, Kubernetes, gRPCを調べて171個のConcurrency Bug(Misusing Chanelなど)を見つけた。"
suzakiさんのツイート: "GoのConcurrency Bug調査のHP https://t.co/k9epibXBTT"
system-pclub/go-concurrency-bugs: Collected Concurrency Bugs in Our ASPLOS Paper
suzakiさんはTwitterを使っています 「形式検証がスケーラブルになることの論文 Scaling symbolic evaluation for automated verification of systems code with Serval [SOSP19] https://t.co/Y37WWQJyiY」 / Twitter
Scaling symbolic evaluation for automated verification of systems code with Serval - 3341301.3359641.pdf

@shima_tetsuo

島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
島鉄雄さんはTwitterを使っています: 「昔プログラミングが分からないって人が a = a + 1 がおかしい言ってて、=は等しいじゃなくて a ← a + 1 って事だよと言っても理解されなかった。 これは良く考えたら再代入だから、関数型言語では有り得ない事で、マシン語レベルの理解が無いと何が起きてるかは理解出来ない。 そういう事だったのか!」 / Twitter

@esumii

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/A2GeJ7CfzQ 抽象化はプログラム等価性。抽象化により実装が異なっていても等価になるので、その等価性が完全に保存(full abstraction)されない限り(されることは極めて稀)、チューリング同値な言語同士でも意味論は異なる。#いつもの我田引水だけど本当」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「あれ、「プログラミング言語はチューリング完全でも抽象化によって異なる意味論を持つので等価とは言えない」話をしたLL Futureのスライドがサイトごとなくなった?」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「なので「プログラミング言語はチューリング同値ならみんな等価」は(よくある)誤解。」 / Twitter

@yohhoy_@yoh2_sdj

yohさんはTwitterを使っています 「並列データ構造は本質的にテストできないと思うので 実装可能なテストだけ実施なのかなぁ 真面目にやるなら形式的検証を頑張るか あとはもう人力レビューなんじゃないかなー」 / Twitter
yoh2さんはTwitterを使っています 「上手い委譲の仕組みがあればホントに継承要らなくなってくるんだよなぁ (Lombok の @ Delegate を四苦八苦しつつ使いながら」 / Twitter

@kdwkshh

Shuhei KadowakiさんはTwitterを使っています 「仕事でScala書き始めてひと月くらい経つけど、やっぱりピンとこないや。 コード自体よりもビルドだの依存解決だの開発環境整備だのassemblyだので取られる時間の方が多くてモヤモヤする。あと静的型付け一般なのかもしれんけど、JSONとか扱う時型付けがアホくさくなる。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「2年前Javaでアルゴリズムの勉強してた時は静的型(というよりそのおかげでenhanceされたIDE機能)好きだったけど、だいぶ見方変わったな。」 / Twitter

@helloyuki_

yukiさんはTwitterを使っています 「すごい全部盛りだ😳 動画を見てみたけど、IOの有無を効果に基づいて制御して副作用のない関数のみ受け取れるよう工夫した言語になっていた。/Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ https://t.co/gtQSP39i6E」 / Twitter
Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
yukiさんはTwitterを使っています 「IOの制御が重要なのは、セキュアワールドにある機密情報を守るため、あるいはノーマルワールドへの不正アクセスから守りたいから。副作用を制御できると、ここを守ることができる。これを効果系を適用して解決している。」 / Twitter

@y_taka_23

チェシャ猫さんはTwitterを使っています 「今ふと思い付いたんだけど、configuration language のモジュール分割は最小カット問題として定式化できるんじゃないだろうか?」 / Twitter
チェシャ猫さんはTwitterを使っています 「世の中で言われる「コンピュータサイエンス」って異様に実装寄りな気がする。」 / Twitter

@MathWIllsOffice

MathWills運営事務局さんはTwitterを使っています 「位相空間って、学習したての頃は、こうやってお絵描きしながら学ぶもんなんだと思います。 そして、お絵描きして視覚的に理解できるというのが、現代数学を、集合論を基礎に組み立てる事の1つの大きな利点なんだと思います。 https://t.co/XRGNwGVkZE」 / Twitter
3元集合における29の位相 - MathWills

@Linda_pp

ドッグさんはTwitterを使っています 「Swift の並行性周りのロードマップが出てる.2段階で,まずは async/await や内部でキューを持って状態管理する actor class の導入.次にデータに特定の actor しかアクセスできないようにする actor isolation | 'Swift Concurrency Roadmap' https://t.co/C8cCzi5F5h」 / Twitter
Swift Concurrency Roadmap - Evolution / Discussion - Swift Forums
ドッグさんはTwitterを使っています 「一度だけしか呼べないメソッドつくりたい時,Rust だと self をムーブで取ってしまって返さなければ良いだけだから楽だな」 / Twitter
ドッグさんはTwitterを使っています 「テンプレートリテラル型がサポートされて,さらに型レベルのパーサが書きやすくなってるな… https://t.co/F5BMaSGowU」 / Twitter
Announcing TypeScript 4.2 Beta | TypeScript
ドッグさんはTwitterを使っています 「bool 以外の値が if の条件式に使えるのほんま要らんな… active というプロパティと activate というメソッドがあって,if (this.activate) ... とか書いてしまってた.まあ今回は条件文が恒真だったから lint が気付いてくれたけど」 / Twitter
ドッグさんはTwitterを使っています 「静的に1つの値しか取らないものを定数と呼ぶ勢 vs import 時に初期化されてそれ以降変更されないものを定数と呼ぶ勢」 / Twitter
ドッグさんはTwitterを使っています 「const PI = 3 as const; // これは定数 const ON_MAC = process.platform === 'darwin'; // これは定数?」 / Twitter
ドッグさんはTwitterを使っています 「JavaScript で複数のエラーを1つのエラーにまとめる AggregateError 知らなかった.Promise.any() で全ての promise が reject された時にエラーをひとまとめにするために定義されてるけど,汎用的にかなり便利そうだ https://t.co/Yd1NMCcQXp」 / Twitter
AggregateError() constructor - JavaScript | MDN
ドッグさんはTwitterを使っています 「Chrome で試してみた感じ,message プロパティは errors プロパティの中身を反映せず,トップレベルのエラーメッセージだけを出すのか.表示は自前でやらないといけないのちょっと微妙だな」 / Twitter
てらモス♋️さんはTwitterを使っています 「RefCell を使った事がほぼ無くて何も分からない…(´・ω・`)」 / Twitter
ドッグさんはTwitterを使っています 「同じくほぼ RefCell 使わないといけないケースになったことない.あれ必要なのかなり特殊なケースだと思うんだけど,どうして話に出ることが多いんだろう」 / Twitter
Booink🐽さんはTwitterを使っています 「@Linda_pp 私の場合だと、参照や借用の理解が甘くて上手く実装できない時にRefCellにたどり着いたりします。 ただ、理解が足りないので結局RefCellでも使いきれないんですが… 参照や借用のあたりでググると出てきてしまうので、とりあえず使いたくなってしまう病なのかもしれません。」 / Twitter
ドッグさんはTwitterを使っています 「@Booink4 なるほど.immutable reference は mutable reference よりかなり条件が緩いので,後者で怒られて前者で怒られなくなるため,解決したように見えるということかもしれないですね.実際には動的に borrow check するので,問題を実行時にすり替えてるだけだと思うのですが…」 / Twitter
Booink🐽さんはTwitterを使っています 「@Linda_pp そこまで理解して使えるのが理想ではありますが、よくわからないけど動きそうだから使ってみる、というのが私含め慣れない開発者の気持ちではあります。 もう少し使い込んで理解して「ああ、ここでは使うべきではないな」という感覚が身につくまで精進します…」 / Twitter
ドッグさんはTwitterを使っています 「もし RefCell を「borrow checker に怒られてどう直せば良いか分からないから RefCell 使って内部だけ可変にして表向き immutable ということにして回避しとこう」みたいな使い方をしてるなら考え直したほうが良いと思う」 / Twitter
ドッグさんはTwitterを使っています 「言語処理系でメモリ管理を実装したい場合はそもそも unsafe で GC 実装してしまう気がする.Rc でもパフォーマンス出るのかな…」 / Twitter
ドッグさんはTwitterを使っています 「あと Rc で単純にやると循環参照で死ぬよなぁ」 / Twitter
uint256_tさんはTwitterを使っています 「RefCellを使うような設計の時点で あまり好ましくないよね」 / Twitter
monochromeさんはTwitterを使っています 「確かにRefCell使うのってTLS使うときぐらいかなあ…」 / Twitter
monochromeさんはTwitterを使っています 「あちこちで参照するやつはid arenaにした方が局所参照性も上がって吉」 / Twitter
use ubnt_intrepid::prelude::*;さんはTwitterを使っています 「言語処理系みたいな木構造を扱う場合にRefCellが多用されるみたいな話を聞きますが、そもそも参照(あるいはRc&lt;RefCell&lt;T&gt;&gt;)を直接持ちまわろうとするのが良くなくてarena使ったほうが良いらしいです」 / Twitter
ドッグさんはTwitterを使っています 「Android では - 信頼できない入力を処理する - C, C++ で実装する - サンドボックス外で実行する のうち,2つまでしか同時に満たしてはいけないというルールがあり,現状では信頼できない入力を処理するときはメモリ安全でない言語(C, C++)で書くか,高価なサンドボックスで実行するしかない」 / Twitter

@miura1729

超高速インタープリタ案

IR

Miura HidekiさんはTwitterを使っています 「私も中間表現を設計しないとだけど、インタープリタ前提の中間表現ってどうやったらいいのか悩む」 / Twitter
Miura HidekiさんはTwitterを使っています 「久しぶりにこれを読むか。https://t.co/oNHcgOZ0Pa まあ、これだとエスケープ情報がないので拡張しないといけないけど、そうすると1命令64bitで収まらないわな」 / Twitter
LuaJIT 2.0 SSA IR
Miura HidekiさんはTwitterを使っています 「高速インタプリタのIRのフォーマット、色々考えているのだが、命令のオペコードをその出力の値を使う命令アドレス(相対指定)にするとどうだろうって考えている。」 / Twitter
Miura HidekiさんはTwitterを使っています 「こうするとデータフロー解析の依存グラフになっているので型解析やエスケープ解析がやりたすくなるかと。命令実行が1回メモリアクセスが増えるのでキャッシュするなど工夫が必要だけど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「出力側からのリンクも欲しいところなので、出力した値は1命令しか使えないこととし、複数の場所で必要ならマルチプレックス命令を挟むようにすればどうかなと思う。出力が1命令でしか使えないなら命令融合とかやりやすいわけだし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「犬の散歩をしながら続きを考えた。レジスタ割り当てや各種最適化をインタープテーション中にも可能にするようにバイトコードレベルでデータフローグラフがO(1)で得られるようなフォーマットを考えている」 / Twitter
Miura HidekiさんはTwitterを使っています 「今考えている超高速インタープリタ案はCRubyなりmrubyのバイトコードをこのシステムのIRに変換して放りこむと、抽象実行による型推定、低レイアIRの生成を経て高速実行可能な形に変換する。実行時も適度な型や値プロファイルを行いより高速な実行が出来るように低レイアIRを変形していく って漢字」 / Twitter
Miura HidekiさんはTwitterを使っています 「かと言って、ポインタが飛び交うバイトコードというか太ったASTでは(mmcでは使って使いやすくてよかったけど)、メモリもたくさん使うしインタープリタとしてはパフォーマンスが出にくい」 / Twitter
Miura HidekiさんはTwitterを使っています 「各種バイトコード命令の出力(dst)は原則として1つの命令しか使えないものとする。こうすることでバイトコード命令のdstはレジスタではなくそれを使う命令のアドレス(相対)を指定する。同様にsrcもその値を生成した命令を指定する。」 / Twitter
Miura HidekiさんはTwitterを使っています 「では出力を複数の場所で使いたい時はどうするのか?その為にマルチプレクサ命令を用意する。1つsrcを取って複数の命令を指定する。同様に複数の命令からの入力のうちどれかを選ぶ場合もある。これはSSAのphi命令とおなじなのでphi命令と呼ぶ」 / Twitter
Miura HidekiさんはTwitterを使っています 「問題はデータのやり取りをする命令間は小さいことが考えられるけど、そうじゃない場合もあり得ると言うこと。最悪に合わせると命令がものすごく大きくなる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「これを解決するためにマルチプレクサ命令を複数用意して遠い時はそれを使う。その代わり遠い所に届くマルチプレクサ命令は出力できる命令数が少なくなる。マルチプレクサ命令のカスケードも可能」 / Twitter
Miura HidekiさんはTwitterを使っています 「src側の指定が届かないことに気づいた。まあ、src近くにマルチプレクサ命令をおけばいいか。この辺は非常用であまりそうならない程度の命令フォーマットが必要」 / Twitter
Miura HidekiさんはTwitterを使っています 「命令間隔が8bit(-128~127)くらいあるといいかな?0が無駄だ」 / Twitter
Miura HidekiさんはTwitterを使っています 「実装の都合上、データはどこかに置いておかないといけないわけでその為に各命令には出力先のレジスタ番号も持っておく必要がある。これは実行に先だって適当にレジスタ割り当てをして入れておく。必要に応じて書き換えることも可能」 / Twitter
Miura HidekiさんはTwitterを使っています 「と、このくらい考えた」 / Twitter

Miura HidekiさんはTwitterを使っています 「@uint256_t フロントエンドで寿命解析のためにデータフロー解析しているならその情報が渡せた方が合理的かと思います。レイアとしてはこれまではバックエンドで解析すべき情報が渡ってきただけなので変わらないと思います。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 なるほど。(LLVM-IRにtbaa用のmetadataを付与できたりするので、それの延長線上にありそう)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t これは知りませんでした。ありがとうございます。確かにこの延長線上で何かできそうですね。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 (LLVM-IRは、metadataとかoperand bundleをいろんな用途に使い過ぎている感があるんですよねえ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t operand bundleも知りませんでした。ずいぶん複雑になってますね (私が知っているのは2.xとか大昔です)」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 おかげでllvm-irのパーサを書くだけでも一苦労です。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t 確かに。パースはLLVMに任せてASTで何とかするってわけにはいかないのですか?」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 LLVMの互換実装を趣味で作っているので... (https://t.co/QHN7alxsZv)」 / Twitter
maekawatoshiki/vicis: Manipulate LLVM-IR in Pure Rust (also aiming at creating a better LLVM)
Miura HidekiさんはTwitterを使っています 「@uint256_t なるほど、互換実装でLLVMを使っちゃいかんですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「今考えている超高速インタープリタ案はCRubyなりmrubyのバイトコードをこのシステムのIRに変換して放りこむと、抽象実行による型推定、低レイアIRの生成を経て高速実行可能な形に変換する。実行時も適度な型や値プロファイルを行いより高速な実行が出来るように低レイアIRを変形していく って漢字」 / Twitter
Miura HidekiさんはTwitterを使っています 「今考えているインタープリタの記述言語、RustのRCに当たる部分をgc管理にして長寿命のオブジェクトは自由に扱えるようにした一方、寿命解析を行って短寿命はきちんとリージョンを押さえるって感じのRustとRubyのいいとこどり、って思ったのだけど それってGoって言うのでは?って気づいた」 / Twitter
Miura HidekiさんはTwitterを使っています 「Go結構がんばってエスケープ解析するしな」 / Twitter

コンビネータ

Miura HidekiさんはTwitterを使っています 「SKIコンビネータでS演算はスタックの交換が無いと実装できないので(引数渡しをスタックで行う場合)、それは無いと思う。個人的にはスタックだけで完結していれば関数型言語、他の変数領域があれば手続き言語って所だと思う。」 / Twitter
Miura HidekiさんはTwitterを使っています 「というかYコンビネータみたいな奴は理論的に型がつけられないわね」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「おっと、Yコンビネータをそのままでは評価できないeagerな評価戦略な言語をdisるのはそこまでだ!」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 無名関数があるから、それを無名関数にすればいいだけじゃん (マジレス」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 Yコンビネータ(λf . (λx . f (x x)) (λx . f (x x)))はそのままだとcall by valueで評価すると無限ループになるので、Zコンビネータとかにせんといかんです。lazyな評価戦略ならYコンビネータのままでいいのですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda eagerに評価すると困る所にlambdaをかぶせればいいのでは?って思ったけど(Schemeのdelay/forceのように)それではこの場合はうまくいかないわけですね。この手の話の勉強不足が良くわかりました。ありがとうございます。」 / Twitter

抽象解釈

Miura HidekiさんはTwitterを使っています 「抽象解釈ベースの解析器について、抽象・具体のバランスをメタレベルでカスタマイズ出来るべきとかねがね考えていたが、それが実装されたようだ。とても興味深い「」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「(To. 界隈) 抽象解釈ベースでコード解析する時に、どれだけコードを具体化/抽象化するかを、コードに対するパターンマッチを使用して調整できるようにしてみました。これによってmacroだのframeworkの外部設定ファイルだのがどれだけあったとしても、設定次第で効率的な解析を行うことができます。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「JET.jl is a code analyzer that combines both concrete and abstract interpretations. Now it allows us to customize its "concretization strategy" using expression pattern matching (so we can configure it w/o any modification to the analyzed code itself !): https://t.co/M5J6YSX6Mb」 / Twitter
Configurations · JET.jl
Shuhei KadowakiさんはTwitterを使っています 「See attached documentation for more details if interested. --- Being able to configure how your code should be concretized/abstracted means that JET can analyze your code efficiently whatever your code is reflection heavy or relies on outside configurations, which are typical」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「which are typical obstacles to a static code analyzer for a program that involves complex/advanced language features. (needless to say there are so many useful and complex features in #julialang) The idea is heavily inspired by this paper: https://t.co/14zQaLushu」 / Twitter
Concerto: a framework for combined concrete and abstract interpretation | Proceedings of the ACM on Programming Languages
Miura HidekiさんはTwitterを使っています 「ここでいうメタレベルとは抽象解釈されるプログラムレベルの意。適当な言葉が思い浮かばなかったので暫定的に用いた」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyの抽象解釈ベースの型推定において、抽象・具体のバランスを指定する情報が有効なのか、全くわからない。試してみる価値がとてもある」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 ここで言う抽象 vs 具象というのは、クラス(もしくはそのunion)vs 値という意味ですか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 ですです。」 / Twitter

抽象実行による型解析

Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で精度と速度の両立を行う画期的なアイデアが思い浮かんだけど140文字では狭すぎる (嘘、次にその概要を書きます。まだ確かめたわけじゃないけど...」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で悩ましいのは単なる型(Symbol)と具体的な値(:Ruby, :Pythonなど)のどちらを保持すべきかという問題がある。具体的な値を保持していれば何かと便利だが負担も大きい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「この件に関して、具体的な値を欲する状況・メソッド(例えばkernel#sendメソッドやkernel#define_methodメソッド)とそうじゃないメソッドに分けられることに気づいた。」 / Twitter
Miura HidekiさんはTwitterを使っています 「つまり複数回抽象実行のトラバースを行うとして、初めのトラバースで具体的な値が必要なpathかを判定することで、具体的な値を集めるか、型のみでいいのかを決定できるのではないかと気付いたわけです。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@miura1729 Juliaの型推論でもそれに近しいことをしていますね。まずキャッシュのために定数なしで推論して、そのあとに定数伝播させるかは簡単なヒューリスティックにしたがって決定してます。メソッドボディのIR全体を解析するとか高等なことはしてないですが。 https://t.co/5JjZv1GIoL」 / Twitter
julia/abstractinterpretation.jl at 676ccf4eaa9b6e6c6a53f75abb4bf3e1a2457426 · JuliaLang/julia
Miura HidekiさんはTwitterを使っています 「@kdwkshh ソース読んでみました。よくわからない所も多いのですが、いろいろチェックして問題の無い所は型ではなく具体的な値を渡して関数を呼び出すというふうに読めました。コメントとか見るとまだ実験的な処理っぽくてこの手の話はこれからホットになるのかもしれませんね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行で型の代わりに値を用いるのを必要なメソッドで判定する問題 (長い)、通常の抽象実行とはルートが逆になるので思ったより大変と言うことが分かった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcではadd_sameで作られるレジスタの型に関する依存関係のグラフをトラバースすることで何とかなりそうだが、メソッドを超えるとうまくいかない。この辺を意識した再設計が必要なのかもしれない」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmc、define_method, sendの第1引数など、抽象実行時に値を分かっていることが必要な場合は、その値を生成する処理についてだけ、型をマージするときに違う値を抽象的な型にまとめるではなく常に別々の型として扱うようにした。 https://t.co/5WlTnowEb6」 / Twitter
Support selective value level abstract interpretation · miura1729/mruby-meta-circular@af12a12
Miura HidekiさんはTwitterを使っています 「これにより、 class A %w[a b].each {|str| define_method(str) { 0 } } end p https://t.co/4lLfLQhlK0.a + https://t.co/4lLfLQhlK0.b のようなプログラムがほかのプログラムの効率を落とすことなく正しく解析できる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「ここの部分が肝になる場所で、 https://t.co/hf0OhqF99i レジスタに対してset_use_valueとすると、レジスタの値の依存関係を逆に辿ってそのレジスタの値を生成するのに関係した全てのレジスタ(メソッド内外を問わない)にレジスタの型を決定するのに値は決してまとめないようになる。」 / Twitter
mruby-meta-circular/type_mrule.rb at master · miura1729/mruby-meta-circular
Miura HidekiさんはTwitterを使っています 「抽象実行、末端のメソッドやコンテクストからそれぞれのデータパスにおいて必要な抽象度を解析してから抽象実行するアプローチがかなり有望そうなので、その方針で新しく抽象実行器を作ってみたくなった。」 / Twitter

8進数

いそぢさんはTwitterを使っています 「8進数ってどこで使うんやろなあ」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「古いコンピュータで3の倍数ビットがわりと使われたらしい。 0始まりが8進数なのは少なくともB言語(C言語の始祖)には見られる言語仕様であるようだ」 / Twitter
Miura HidekiさんはTwitterを使っています 「12bitマイコン、東芝でしたっけ?たしか、MacLispも8進数ベースだったような。Common Lispで10進数ベースになったけど。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 IBM709が36bit wordで、(3bit tag + 15bit address) x 2 のコンスセルを1 wordに詰めたのがLISPでしたね。 ただ、LISP1.5の時点で整数リテラルは既に10進数です (8進数はQサフィックスをつける)」 / Twitter
zickさんはTwitterを使っています 「@anohana @miura1729 ふと思ったんですが、LISP 1.5の整数リテラルが10進数なのって、LISP Iが10進数表記の浮動小数点数しかサポートしてなかったのが原因だったりするんでしょうか。8進数をデフォルトに変えてしまうと過去のプログラムを移植するのが面倒そうだし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど。MacLispの8進数とはなんだったんだろう?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 fixnumの入出力がBASEで切り替えられますが、そのデフォルトが8だったのは、セルの中身をダンプしたりする時に見やすかったからかな? 想像ですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana CLtL2を紐解いたらわかりました。MacLispのリテラルの整数はデフォルトで8進数のようです。2章データ型の2.1.1整数の互換性への注に書いてあります。」 / Twitter

C

電子計算機の沼さんはTwitterを使っています 「ま、「XXはCと同じくらい速い」とか言われるけど我々はCコンパイラが出すコードにも全く満足してないんでね、、、、」 / Twitter
Miura HidekiさんはTwitterを使っています 「その一言が聞きたかった &gt;RT」 / Twitter
電子計算機の沼さんはTwitterを使っています 「最終的にはCがどうとかJuliaがどうとかでなく、望みのアセンブリをコンパイラに吐かせるゲームになるわけで、それが1番楽な方法を選ぶだけ」 / Twitter
Miura HidekiさんはTwitterを使っています 「「望みのアセンブリ」、それは時間をパラメータとする関数で適宜される物の気がする &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「「XXはCと同じくらい速い」と言う前にCでCが出せる効率のポテンシャルの50%を出せる人がどれだけいるのだろう?と言う話かもしれないけど、意味の無い話な気もする。よくわからん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンパイラ開発、想定していたプログラムが一通り動いて、さて高速化するかって検討する瞬間が一番幸せ。(高速化の作業はそれなりに不幸)」 / Twitter
電子計算機の沼さんはTwitterを使っています 「ほんとにこれで、コンパイラにプログラムのinputをいくつか与えてやったら勝手にトライアンドエラーして、一晩くらいほっといたら速くなってるオートチューンコンパイラ誰か早く作って」 / Twitter
uint256_tさんはTwitterを使っています 「PGOとOptunaとかで頑張れそう」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@uint256_t やれると思いますよね どう考えても個人が抱えられる沼を越えてそうだからやらないけど」 / Twitter
uint256_tさんはTwitterを使っています 「@Hishinuma_t そのうちやるかもしれません」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@uint256_t やりはじめたらgithub sponsorでコーヒー代くらい出します」 / Twitter

histric

histric-1

Miura HidekiさんはTwitterを使っています 「Juliaなら抽象解釈でデーターフローグラフが作ってあるだろうから、エスケープ解析もそんなに大変じゃないと思うんだけどな」 / Twitter
_ko1さんはTwitterを使っています 「@miura1729 再定義タイミングの話かな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@_ko1 いえ、変数をグローバル変数として定義されていても寿命解析してローカル変数のスコープだったらローカル変数として実装すると速いかな?って思いました」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@miura1729 @_ko1 1.) エスケープ解析が大変(evalされたりとかとか) &amp; 2.) どのような形であれグローバル変数が再定義されたタイミングでそれに依存するjit済みコードをコンパイルし直さないといけない という理由で(定数じゃない)グローバル変数は問答無用で最適化されないんですよね」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmc、例外処理が納得いくように出来た。抽象実行で例外オブジェクトの判定処理が潰れるので、ほぼたんなるsetjmpによるジャンプになる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言語がオブジェクト指向していると、ユーザプログラムが言語機能に対して拡張や変更することができる。新しい言語機能を追加することができる。言語機能を実行時に変更することができる。言語機能をコンパイル時だけでなく実行時にも利用可能になる。言語機能を再帰的に分解し再構成することができる。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 いや、どちらもDynabook系ではあるけど、MVCの原発明者はSmalltalk-80の実装は「チョット違う」とのことです。 https://t.co/kUDzJ7zABV」 / Twitter
Trygve/MVC
Miura HidekiさんはTwitterを使っています 「そりゃーリファレンスカウントも深いかもしれないけど(特にマルチコア周り)、GCはもっと深い」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「アランケイのオブジェクト指向って、オブジェクトをオブジェクトから構成するという辺りが特にチューリング完全に依拠していると思うのだけど、チューリング完全でないオブジェクトを組み合わせた総体としてのシステムをチューリング完全にできたら、各オブジェクトの構成がとても楽にならないかなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「純粋なアクターモデルってチューリング完全だったっけ?アクターの生成と他にメッセージを送るのとメッセージを受け取ったら反応することしかできないって奴」 / Twitter
Miura HidekiさんはTwitterを使っています 「Nimのmoveセマンティックスに基づくGCの軽減、画期的な話なのか、GCをサボるための言い訳なのか判断できないので後で読むためのリンク https://t.co/5zNAupwBpc (今酔っているし...」 / Twitter
Nim Destructors and Move Semantics
Miura HidekiさんはTwitterを使っています 「moveセマンティクスに基づくGCの軽減、Rubyでも出来そうだけど、プログラマがどこにアロケートされてどのタイミングで解放されるか知っているかを明示すべきかが分からない。明示するならなんらかの言語仕様の拡張か、コーディング規約が必要になる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「これ興味深い。getoptライブラリとシェルが連携する形で実現できないだろうか?コマンドラインの型情報はgetoptの設定情報として表現できそう。スクリプトを解析して設定情報を作ることも可能かもしれない &gt;RT」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「何がほしいかと言うと bashみたいに実行すべき外部プログラムと引数を指定して実行できる最もわかりやすい文法を備え 標準入出力を簡単に扱える文法を備え 変数、条件分岐やループなどはモダンな言語によくある見慣れた文法をサポート 数値や文字列は厳格に型チェックされる。」 / Twitter
画力・博士号さんはTwitterを使っています 「型つきシェルスクリプトは創りたいですねえ(特に可搬性のために sh にコンパイルできるとよい)」 / Twitter
でこれきさんはTwitterを使っています 「OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室 https://t.co/nPenGkzMyC とか思い出した」 / Twitter
OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室
Miura HidekiさんはTwitterを使っています 「型付シェルスクリプト、一言で型と言っても、スクリプトのレベルの型、コマンドラインで渡された文字列をパースする場合の型などいろいろなレベルの型が現れる気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 shell scriptって立ち位置からするとわざわざ型付きのものをshell内に実装するより別言語、かなぁ。POSIXのshellの仕様大きくするってのはいやん。(インタラクティブではcsh使ってるけどcsh scriptは書きません)」 / Twitter
Miura HidekiさんはTwitterを使っています 「確かに言語によって違うと感じることが多いけど、逆に一見全く違う言語で類似点を発見することがあって、それが言語の面白さだなと感じる。たとえば、Prologは末尾再帰を駆使すると手続型言語のように見えるし、不完全リストを使うことでストリーム指向の言語っぽくも見える。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '確かに、 IF文がない IF文しかない この両方が成立するような不思議な言語と映るのかな。'.」 / Twitter
Miura HidekiさんはTwitterを使っています 「パターンマッチベースの言語なら全部そうなりそうだけど、今の所Prolog以外だとEgisonくらいか?あとごく初期のAWK」 / Twitter

histric-2

Miura HidekiさんはTwitterを使っています 「年寄りなのでこれからは絶対これ!という物言いがそうでもない話をいろいろ見ている。例えば、マイクロカーネル、RISC、Java、そしてRuby on Rails。だから、今の静的型付けに基づくプログラミング言語が絶対正義だという感じの風潮はとても疑問」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータサイエンスについて、時代が変わっても絶対正しいことは無い(数学的に証明されているものは除いて)というのが唯一絶対正しいことな気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 というか、時代が変わって正解が変わるような部分ってのはscienceではなくてtechnologyなのでは...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki そうでもないっすよ。ニュートン力学から力学がどう変わったか考えると。いまでも1960年代で要求されるとうな問題なら構造化プログラミングが最適解と言う感じじゃないでしょうかね?」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 制約条件下の最適解を正解というのか問題かなぁ...」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 あるいは、むしろ、その時代にあってさえ「正しい」と確信できている答を出しているか、という話。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki まあ、Scienceはもともと真実を明らかにする学問であって、ある近似解についてどちらが正しいかを判断する学問じゃないですからね」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そういう意味で、制約条件下での「正解」をもとめるものをtechnologyと分類したわけっす。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど」 / Twitter
Miura HidekiさんはTwitterを使っています 「すげー、これこそアラン・ケイ氏やselfがやりたかったことじゃないの?」 / Twitter
任天堂株式会社さんはTwitterを使っています 「[任天堂HP]任天堂の開発室から生まれたプログラミングソフト『ナビつき! つくってわかる はじめてゲームプログラミング』の情報を公開しました。 #NintendoSwitch #はじめてゲームプログラミング」 / Twitter
ナビつき! つくってわかる はじめてゲームプログラミング | Nintendo Switch | 任天堂
Miura HidekiさんはTwitterを使っています 「どう見てもビジュアルプログラミングより、プロトタイプベースのオブジェクト指向に見える。特に障害物のくだり」 / Twitter
みさわさんはTwitterを使っています 「何度か言っているけれど、配列から [] を取り上げて () にして、代わりに [] を型に回すべきだと思うんだよな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「配列のindexに()を使うのは、FORTRANやBASICを思い出すから控えてほしいんだよな。[], {}をユーザのためにあえて未定義にしたCommon Lispの慧眼が光る &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあ、コアメンバーのGLSさんがやっていた*lispの並列構文との整合性みたいな理由なのかもしれないけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「でも、S式のパーサーって意外とめんどくさいんだよ (ungetcが必要だと思う)」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 構造エディタでしか編集できないようにしてしまえ(そうじゃない)」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング言語界隈、いいかげんREPLの次の開発者UXに進もうよ。Workspaceっていうんだけど、一度経験するともうREPLなんていう不自由なUIに戻れなくなるよ?(Smalltalkが70年代に通過した道」 / Twitter
Miura HidekiさんはTwitterを使っています 「Oberonのようにテキスト中に関数を書いておくとボタンになるっていうインタフェースどっかで実装しないかな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「Lispで楽しいのはrplaca./rplacdでリストを魔改造をすることだから、それを禁止している静的型付けの関数型言語はダメ (半分冗談」 / Twitter
zickさんはTwitterを使っています 「(rplaca (cadddr hoge) fuga) とか書いてるとちょっと楽しくなってくるので早くニートになりたい。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 (1) コンパイラへの最適化のヒントとして型注釈を与える は、structの定義やオブジェクトの生成時には有効ですが、函数の引数の型については意味がなくなります。さらに、 (2) コードを読み易くするために型注釈をつけること はJuliaでは多くの場合に有害になり、~続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「徹底的にコードを解析するコンパイラにとって型宣言ってまさに 下手な考え休むに似たり だと思うのだけど、型宣言のある言語って将来どういうポリシーを採るのか楽しみ。もちろん、コンパイラの実装とは別に言語の採用する型システムという面は独立して存在するのだけど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「分岐を取り扱う方法、PrologやSmalltalkのように特別扱いせずに自身の持つパラダイムの延長で実装できるような仕組みを私も考えたい」 / Twitter
Miura HidekiさんはTwitterを使っています 「機械語のコンディションコードってのも誰が考えたか知らんけど、画期的な発明だと思う。今時のCPUでは嫌われているけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「λ計算もある意味そうだね。あれコンピュータが無い時代に考えたの凄いよね。」 / Twitter

histric-3

大庭 慎一郎 / Shinichiro ObaさんはTwitterを使っています 「ノードベースのプログラミングは感覚がリアクティブプログラミングに近いと思ってはいたけど、レッスン5で出てきたワイヤーワープを変数として使う手法を取り入れるとよりそう感じる。左が元のプログラムで右がリファクタリング後。100倍わかりやすくなった。 #はじめてゲームプログラミング https://t.co/rbU676OgXG」 / Twitter
Miura HidekiさんはTwitterを使っています 「任天堂のこれの影響で一気にビジュアルプログラミングが進歩するって展開もありそうだな」 / Twitter
ニカイドウレンジさんはTwitterを使っています 「はじめてゲームプログラミング、人が作ったプログラムを読み解くのが難しすぎて参考にできない点もダメだと思った。 ・全てが1画面に収まっておりどこで何を処理してるか分からない ・コメントの量に制限がある ・検索ができず目的のオブジェクトが見つからない ・変数や定数に名前がつかない」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITのチューニングをしていて、コンパイルを始める実行回数の閾値はこれまで生成したバイナリのサイズやcaller/calleeのコンパイル状況とかでいい感じに変えるといい感じになるのではないかと思った」 / Twitter
Miura HidekiさんはTwitterを使っています 「とにかくホットスポットのコードは小さい範囲にまとまるようなコンパイルスケジュールが求められる」 / Twitter
Miura HidekiさんはTwitterを使っています 「マイクロベンチマークとは違う世界が広がっていることをmmcとmrubyのJITを作ったおかげで知ることが出来た。そうは言ってもmmcは1万行程度のものなんだけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJIT、メソッドの先頭で引数に型ガードを入れてメソッド内部はあたかも静的に型が分かっている如くのコードを出すようにしたのだが、mmcにはものすごく多様な型を引数にするメソッドがあってその方に特化したコード生成がボトルネックになっていた」 / Twitter
Miura HidekiさんはTwitterを使っています 「中間コード(IR)を機械語にコンパイルするようなJITコンパイラの場合、IRの命令の境界で何らかの処理を挟みこめるhookを用意するのは必須事項であるという知見をえた。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そんなに難しくないしね」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJITではこんな感じ void gen_call_fetch_hook(mrb_state *mrb, mrbjit_vmstatus *status, mrbjit_code_info *coi) { emit_push(mrb, coi, reg_tmp1); emit_push(mrb, coi, reg_tmp0); emit_cfunc_start(mrb, coi); //emit_arg_push(mrb, coi, 3, reg_regs);」 / Twitter
Miura HidekiさんはTwitterを使っています 「// load_vm_var_read(reg_tmp0, VMSOffsetOf(pc)); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status-&gt;pc))); emit_arg_push(mrb, coi, 2, reg_tmp0); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status-&gt;irep))); emit_arg_push(mrb, coi, 1, reg_tmp0);」 / Twitter
Miura HidekiさんはTwitterを使っています 「emit_arg_push(mrb, coi, 0, reg_mrb); emit_call(mrb, coi, (void *)mrb-&gt;code_fetch_hook); emit_cfunc_end(mrb, coi, sizeof(void *) * 4); emit_pop(mrb, coi, reg_tmp0); emit_pop(mrb, coi, reg_tmp1); }」 / Twitter
Miura HidekiさんはTwitterを使っています 「ネイティブコードを生成するようなコンパイラのデバッグではprintfデバッグは人的リソースを食いまくる贅沢品なわけですわね」 / Twitter
Miura HidekiさんはTwitterを使っています 「プログラムのデバッグ、HDLによるLSIの開発のように片っ端からログを取って専用のViewerで分析するスタイルになるべきだと思うけど、私が知る限りそうなっていない。私は、環境が貧乏なのでそんな富豪なことはできない」 / Twitter
酔漢📻@黙って食べよう、マスクをして話そうさんはTwitterを使っています 「@miura1729 RTOS分野は時間軸の解析をするためにそっちに進んでいますね。組み込みはモニターのバンド幅とログの量の戦いがどこでも厳しいようです。 私のミドルウェアは専用のビューアーとまでは行きませんが、Syslog機能をつけたのでいろいろと楽に開発できるようになりました。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「逆で、「論理型言語」という呼ばれ方が、Prologの応用を狭めてきたような気もする。何の根拠もない妄想だけど。ユニフィケーション言語とかのほうが良いような気がする。なんとなく。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Lispも人工知能言語というレッテルを外してから(Schemeとか)の方が面白くなった」 / Twitter
Miura HidekiさんはTwitterを使っています 「私もふざけた言語を考えてみようと思った。かねがね考えているのだが、アクターモデルを採用した言語で最低限の言語仕様ってどういうものかってのは深く考えたい。もちろん、チューリング完全なのが前提で」 / Twitter
Miura HidekiさんはTwitterを使っています 「元もとのアクターモデルってメッセージを受け取ったアクターが出来ることってアクターを作ることと、別のアクターにメッセージを送ることだけだった気がして、これでチューリング完全なら私が欲しいものが得ていると言う感じなのだが」 / Twitter
Miura HidekiさんはTwitterを使っています 「メッセージを送れるのはアドレスを知っているアクターだけね。アクターモデルってこれが本質な気がする」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 メッセージを受け取ったアクターは自分の状態を変えることもできます。状態を変えるというのは、次に同じメッセージを受け取った時に異なる反応ができることです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo ありがとうございます。その状態って有限でしょうか?(勉強不足ほんとうに反省しています」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 trivialでつまらないけれど、TMエミュレーションはこれの「副作用無しバージョン」をCPSにすればできそうな気がする https://t.co/G43dkp9QF7」 / Twitter
Scheme:Brainfuck
Miura HidekiさんはTwitterを使っています 「@anohana 確かにアクターが内部状態を持っているのでこれで出来ますよね。というか、SchemeがActorをクロージャーでモデル化するところから開発されていたのを忘れていました。」 / Twitter

histric-4

Masaki HaraさんはTwitterを使っています 「「デジタルの日」が制定された日本ではデジタルじゃない日は「12月14.35日の予定は〜」みたいな会話が行われる」 / Twitter
Miura HidekiさんはTwitterを使っています 「有理数なら結局デジタルで表せらるから、何らかの関数表記になるのではないだろうか? 1月√2日とか」 / Twitter
Miura HidekiさんはTwitterを使っています 「関数も関数をゲーデル数で表現すればデジタルで表せられるな。これは難しい問題ですよ」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @iruka3 {Re(z) | ζ(z) = 0} 、とか考えたけど、結局記述できるものはその記述をデジタル化できてしまうので、シンボルで記述し得ないものしか無理なのかも。」 / Twitter
Miura HidekiさんはTwitterを使っています 「犬の散歩をしながら、mrubyで最適なアロケータのアイデアを考えていたらよさげなものが思いついた」 / Twitter
Miura HidekiさんはTwitterを使っています 「忘れないようにメモ freeするごとにそのオブジェクトのクラスごとにリンクリストにつなげる。各freeされたメモリチャンクには世代を表すカウンタを設ける。リンクリストがいっぱいになったらリストの全要素をスキャンしてリンクリストのカウンタがある閾値になっていたら」 / Twitter
Miura HidekiさんはTwitterを使っています 「本当にfreeする。mallocの際にはそのクラスのリンクリストから適当なサイズのチャンクを切りだす。時々freeするのはmalloc時の切りだす検索時間を短くするため。より使用される頻度の高いチャンクが生き残ると期待できるし、上手く行くとワーキングセットを小さくすることも出来るのではないだろうか」 / Twitter
Miura HidekiさんはTwitterを使っています 「かねがねプログラムカウンタとメモリ空間が複数あることが言語の計算機モデルの言語が必要だと思っているのだけど、事実上CUDAくらいだろうか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「Occam、ちょっと過小評価され過ぎかもしれない」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあ、物理CPUの割り当てが手動でめんどくさいからな。仕方ないか」 / Twitter
_ko1さんはTwitterを使っています 「時々 prog1 が欲しい」 / Twitter
Miura HidekiさんはTwitterを使っています 「値を返すところでデバッグprintを入れたりする時だよね。私も欲しい時がある、というか値として無視しててと明示する構文」 / Twitter
Shinji KonoさんはTwitterを使っています 「なぜコンパイラよりもCPU内部での変換が良いのか。コンパイラは可能な実効すべてを列挙して最適化する必要があるが、実行時には特定の場合だけを最適化すれば良い。」 / Twitter
Miura HidekiさんはTwitterを使っています 「それ、普通に組み合わせ爆発するからね。組み合わせ爆発を上手に扱えるアルゴリズム(たとえばくりこみ理論みたいなかんじとかで)ないかなー」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/aZIcouFKzj ちょこちょこと読んでいるのだが、JITコンパイラの脱仮想化の部分が難しい。」 / Twitter
Performance Improvements in .NET 6 | .NET Blog
Miura HidekiさんはTwitterを使っています 「インライン化、効果があるしデメリットもあるからヒューリスティックに頑張るってのはわかりやすいし、ループになって何回も型チェックするの無駄だからループの外に型チェックを出すよってのも分かる。脱仮想化がわからん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、メソッドにbox化されていないデータ対応の物を用意するって話はサポートしていないようだ。(mmcはこれやってカオスと闘っている」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/JvHvVy93LS ソースコードを読みながら、シャンソンのナタリーが脳内再生されてつらい」 / Twitter
Natalie Programming Language
Miura HidekiさんはTwitterを使っています 「Natalie、ソース読んだ限りではC++に翻訳しやすいRubyのサブセットをC++に素直に翻訳しているって印象だけど、C++で書かれたランタイムがすごい https://t.co/bCq8cluGS3」 / Twitter
natalie/include/natalie at master · seven1m/natalie
Miura HidekiさんはTwitterを使っています 「処理系作るとクロージャーでたいたい苦労させられる。mmcでもクロージャーで単一代入の原則が崩れるので苦労した」 / Twitter

Miura HidekiさんはTwitterを使っています 「そう言えば、RMSさんがファントムスタックなるものの論文を書いているらしいが、どういったものなのか知らないので調べてみるか」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/57xCK77Sx7」 / Twitter
Phantom Stacks: If You Look Too Hard, They Aren't There

@mod_poppo

SML

だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系が字句・構文エラーを吐く際に従っておいた方が良い規約とかってあるのかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCもClangも &lt;file&gt;:&lt;line&gt;:&lt;column&gt;: のスタイルっぽいから真似しよう」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「カラム番号ってタブ文字が入ってたらどうすりゃいいの?まともな神経の奴ならタブ文字なんか使わないから考慮しなくてOK?了解!」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@mod_poppo goはインデントにタブを使うのを推奨してるのでgoがどうしてるか見ると良いかも知れません。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@igrep なるほど。Goではタブ文字は1文字扱いのようです」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「今日の作業ではパースエラーのところでソース位置を表示できるようになったので、次はASTにソース位置を持たせてその後の段階でもエラー位置を出せるようにしたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「モダンな言語処理系は親切なエラーメッセージを出すのが当然なので頑張っていきたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/JiGuVEJcly これによるとSuccessor MLでrecとtyvarseqの順番が入れ替わるのは意図的っぽいな。構文解析の難易度はそんなに違わないと思うのだが」 / Twitter
Simplifying val rec syntax - Successor ML
だめぽラボ@技術書典9さんはTwitterを使っています 「SML97では val SOME f = NONE みたいな定義は一般化の対象になって let val SOME f = NONE in f (); f “foo” end みたいなコードはコンパイルが通る(実行時にはもちろんエラーになる)が、これは仕様バグだとみなされており」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Successor MLでは左辺のパターンが網羅的でない場合は一般化の対象にならず上記のコードはコンパイルエラーになる。今作ってる処理系ではこの部分についてはSuccessor MLの仕様を採用する。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのexceptionは実行(?)ごとにfreshな例外を定義するのでソース中で同一のexceptionであっても呼び出しが違えばキャッチされない。なるほど……(以下のプログラムではキャッチされない例外が発生する) https://t.co/xaEZ3n6Obm」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLでval rec(脱糖後にval recになるものも含む)を使わずに再帰関数を書く例2つ。datatypeの定義で再帰ができるのでそれを使うと不動点コンビネーターに型がつくやつと、参照セルを使うやつ。 https://t.co/qBCwgjHQqJ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイラーを書くにあたってエフェクト推論とかで関数の停止性を(保守的に)判定できたら素敵だな〜〜と思うけど、停止性を扱うときはここに挙げたようなやつが正しく「発散する」と判定されなければならない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「エフェクト推論の参考にしようとKokaの論文を読んでたらその辺に言及されてて「面倒くさそ〜〜」と思った https://t.co/gVmuioDL2m」 / Twitter
Koka: Programming with Row Polymorphic Effect Types - Microsoft Research
川向薫さんはTwitterを使っています 「Inductive Rec (A : Type) := In : ((Rec A -&gt; A) -&gt; A) -&gt; Rec A. これがだめな理由若干わからないな。 直観的には contravariant の位置で再帰するのがダメって感じなんだけど。 (この場合は covariant)」 / Twitter
川向薫さんはTwitterを使っています 「やはり停止性を保証してかつ代数的データ型を導入するには、 Strictly positive を採用する必要がある……」 / Twitter
川向薫さんはTwitterを使っています 「けど、要するにこうだ。 論理では contravariance や covariance は negative や positive と呼ばれる。 再帰的な定義で、自分自身が positive な位置にのみ出現する場合、その定義は positive であるという。 しかし依存型のある言語では、 positive な定義でも矛盾が (cont.)」 / Twitter
川向薫さんはTwitterを使っています 「導かれてしまう場合がある。例: Inductive A : Type := | introA : ((A-&gt;Prop)-&gt;Prop) -&gt; A. そこで Coq や Agda では (positive より強い制限である) strictly positive という制限を課している。 ……ということらしい。」 / Twitter
川向薫さんはTwitterを使っています 「つまり依存型のある言語だと strictly positive が必要だけど、 System F レベルなら positive でいい……ってことらしいな。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ところで参照セルを使って書いたfix関数はvalOfという「例外を吐く可能性のある関数」を使っているわけだが、例外とかに頼らずに参照セルを使ったfix関数を定義することはできるのか?具体的な型のついた再帰関数だったらなんとかなるんだけど」 / Twitter

histric-1

だめぽラボ@技術書典9さんはTwitterを使っています 「真面目に依存型をやると大変だけど、サイズ不一致を全部コンパイル時に検出するのは諦めて「型レベル自然数の等価判定は実行時に行う」みたいないい感じに手を抜ける落としどころがあったりしないかな https://t.co/DVPa7XevGo」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「最近の言語は何らかの形で静的な型を持つのが当たり前になってきているし[要出典]、これからは「動的な配列・行列のサイズを型で管理できる」みたいなのがセールスポイントになる(ほんまか)」 / Twitter
uint256_tさんはTwitterを使っています 「N(符号付)がn bitで表現できるかってビット演算で確認できるんでしょうか」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「@uint256_t Nがすでにmビット整数として表現できている場合は、左にm-nビットシフトしてから右に同じ数だけ算術シフトしたものが元の数と一致するか確認する、でどうですかね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「その辺のプログラミング言語で無名関数/ラムダ抽象が「ラムダ式」と呼ばれるようになった経緯を調べようとしたときのログです https://t.co/Fflu2snbVy」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/VE8797qkKB」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「ラムダ式」問題、以前話題になった時に調べた感じでは「元ネタはScheme周辺で、Schemeの場合は無名関数の表記に "lambda" という文言を使うのでまだ正当性があった。後発の言語ではソースコード中に "lambda" が登場しないのに『ラムダ式』を名乗っているからダメ」という認識に至った」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptではFunctionExpressionに名前を与えられるので「無名関数」と呼ぶのはアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「キカイガクシューのエコシステムがPythonべったりなのは健全じゃないと思うけどじゃあどういう言語ならいいのと言われるとうーん(個人的にはshapeを型レベルで扱える言語を使いたいけど型システムが重い言語ってあまり流行らなさそう)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Pythonは型の問題の他に、「GILがあるので並列化しようとするとスレッド並列を飛ばしてプロセス並列にせざるを得ない」みたいな問題がある(うちの環境だとプロセスを跨いだGPUメモリの共有ができなくて詰んだ)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Coqで二項係数(帰納的に定義されているけど計算量が指数爆発しないやつ)を定義して漸化式を満たすことを証明した。適切に補題を切り出すのは大事。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの型と項を繋ぐものとして 型クラス:型制約から項を得られる GADTs:項から型制約を得られる という関係になっていて、双対というかなんというかなんかそんな感じのものを感じる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell/Rust/C++のジェネリクス/テンプレートについて、自分の認識 https://t.co/bMUneNCu66」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellで型制約を大量に書くとどうしても関数の型が「頭でっかち」になりがちなのに対して、Rustが型制約を後置できるのは進歩っぽいな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「型レベルプログラミングの題材としては型レベル自然数が動機付け的にも難易度的にも適切なんだけど、GHCで型レベル自然数というと中身がブラックボックスなGHC.TypeNats.Natがあるのでアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「なんか勘違いしてたけど、データ構築子に型制約を引っ付けるのってGADTsがなくてもExistentialQuantificationで十分なのか。GADTsがあると制約として等価性を使えるようになるっていうだけで。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「TypeFamilies + GADTSyntax + ExistentialQuantification ⇒ GADTs? https://t.co/80ukeuyyYY」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GADTsなんもわかってないことが判明してしまったので修行の旅に出ないといけない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GHC.Exts.Any ってどんなカインドにもなるのか。型レベル undefined じゃん」 / Twitter
gyu-donさんはTwitterを使っています 「そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな。」 / Twitter
トデス子'\さんはTwitterを使っています 「"そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな"、単に知識不足とも取れるが「お前ら静的チェック最強と言いつつLiquid typesすら普段使いしてねえだろ」という鋭い指摘の可能性もある」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ではここで強力な型システムを持つCoqでゼロ除算を実行してみましょう https://t.co/C6lIqTRbhF」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「形式的証明をやる上では演算はtotalに定義しておいて演算に関する命題を記述する段階で色々仮定(この場合は割る数が0ではないこと)した方が良い、みたいな話が前にTLに流れてきた気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ML系の不変な束縛で右辺が別の変数名の場合 let val a = b in exp end はexp中のaをbに置き換えてaを消去することができるけど、aが元々のソースコード中に現れる変数名でbが脱糖の過程で導入された変数名の場合はむしろbの定義を遡って変数名bをaに置き換えた方が良い気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイル先の形態がソースコードの場合は変数名についても単一化みたいなことを行うと良いのかもしれない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「タプルの要素に名前をつけられるようにして順序も変えられるようにしたのがレコードだとすれば、カリー化された関数にも引数に名前をつけて適用順を変えられるようにする拡張は割と自然な発想に思える」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLにせよHaskellにせよ数値リテラルの直後にアルファベットとかアンダースコアとかドットとかが並んでたら警告を出すべきだよ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SML ‘97では単項マイナスはreal/intについてオーバーロードされていることになっているけどその後のBasisの更新(?)でwordにも単項マイナスが使えるようになったらしい。なお ~0w0 と書くと整数リテラル ~0 と識別子 w0 の並びだと見做される模様」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「某所の話題を見て「関数を返す関数も高階関数と言うんだっけ?」って思ったけど型システム入門を確認したらそういう関数も高階関数とされていた。higer-rankと混同してたのかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「a → b → c みたいな関数は a×b → c と同型であって欲しくて、そうするとこれらの一方だけに当てはまる性質というのはあまり筋が良くない気がする(もちろんこれは純粋関数型言語での話で、関数が副作用を起こせると両者で違いが出てくるわけだが)」 / Twitter
mod_poppoさんはTwitterを使っています 「MLのabstract typeって他の言語にあるような実行時型情報と相性がよくない気がするな。 structure S = struct type t = int end :&gt; sig type t end のS.tの実行時型情報に割り当てられるべき値はintと同じか、freshな値か?」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellはこの点、抽象データ型を単にコンストラクターの可視性で実現しているのでこの問題はないし実際にTypeableがある。」 / Twitter
El Pin AlさんはTwitterを使っています 「@mod_poppo Rossbergがその辺やってますね〜 (Rossbergが関わっているAlice MLがdynamicさを売りにしているので) https://t.co/N3LrFCxkA1 / https://t.co/lcdkhe9YrB」 / Twitter
Rossberg - Generativity and Dynamic Opacity for Abstract Types.pdf
Rossberg - Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions.pdf
mod_poppoさんはTwitterを使っています 「自作SML処理系にvector式およびパターンを実装した。SML標準にはない拡張機能。 https://t.co/Q6d8MQYkbK」 / Twitter
mod_poppoさんはTwitterを使っています 「SMLにMONO_OPTIONみたいなやつがあればnullableみたいなやつをうまく表現できるかもしれない(そこまでするか?)」 / Twitter
mod_poppoさんはTwitterを使っています 「自作SML処理系、そろそろインライン化を実装したいが適当にやってたら再帰関数でコンパイラーが無限ループになってしまう」 / Twitter
mod_poppoさんはTwitterを使っています 「val recで定義されるやつはインライン化の対象から外すべきなんだろうけど、それを素朴にやってしまうとfunで定義した再帰していない関数がインライン化の対象から外れてしまうので、val recをなんかそれっぽいグラフ理論的アルゴリズムで分解してやる必要がありそう」 / Twitter
mod_poppoさんはTwitterを使っています 「自作SML処理系でSCCをやってval recを分解&非再帰の場合はvalに変換するようにした」 / Twitter
mod_poppoさんはTwitterを使っています 「これでfunで定義した関数もインライン化の対象になるようになった。インライン化自体はまだまだ未熟だが、 fun x before () = x fun ignore _ = () fun (f o g) x = f (g x) みたいなやつが(まだ最適なコードではないものの)インライン化されるようになったので嬉しい」 / Twitter
mod_poppoさんはTwitterを使っています 「前に言語処理系Slackで「トランスパイル基盤」みたいな話題が出てた気がするけど、基盤とまではいかなくても高級言語をターゲット言語とする場合のノウハウがどこかにあって欲しい(入力コード中の変数名をなるべく出力コード中に維持するコツとか)」 / Twitter
mod_poppoさんはTwitterを使っています 「昨日言ってた「pretty printする際に括弧の数をなるべく少なくしたい→showsPrecみたいに優先順位を表す値を持って回れば良い」というのもそういうノウハウに該当するかな」 / Twitter
mod_poppoさんはTwitterを使っています 「JavaScript界隈のsource mapもそういうノウハウに該当する気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「トランスパイラーもコンパイラーの一種ではあるけど、あえてトランスパイラーとコンパイラーの境目を挙げるとしたら、末尾呼び出し最適化のためのトランポリンみたいな変換をやりだしたら立派なコンパイラーだと言っていいと思う」 / Twitter

@kazuho

Kazuho OkuさんはTwitterを使っています 「演算子中置記法より、アラビア数字が気にくわんというか、桁数と最上位桁の数が重要なのに、末尾まで読まないとどちらも確定しないのウンコだと思ってる。ローマ数字や漢数字はこの問題抱えてないのに。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だから、逆ポーランド記法loveな人たちは数値表現も「42」ではなく「1m42」みたいな記法使ってると信じてる(指数のあとにmantissaを書くなら、小数点すら不要になるはず)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「指数のあとに仮数を書く数値表現で教育すれば、概数計算とか皆自然とできるようになるんじゃないの」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@kazuho Cの文字列が最後まで読まないと文字数が確定しないのが嫌で、最初に長さのフィールド付けろ、っていってたDJBの論法を思い出した。 https://t.co/n0BVj5xdks」 / Twitter
https://cr.yp.to/proto/netstrings.txt
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、大半のC言語使いが思うことじゃないかな。 (終端不明な形は計算コスト高いので、jsonでSIMD最適化みたいな技が出たりなど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「実際問題として、たとえばサーバプログラミングにおいてC言語を使うことの難しさはポインタにあるというより非同期処理を念頭に置いた言語じゃないという点にあると思うし、プログラミング言語を利用するドメインを意識せずにプログラミング言語の優劣を議論することは、あまり生産的ではないわけで」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GoはdeferあるしRustもCPS変換してくれるみたいで(実用性は知らないけど)、言語乗り換える魅力ってのはそのへんだと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「思い出したけど、h2o でコルーチン使わなかった理由は、パフォーマンスが多少落ちるであろうこと以外に、一本の接続上でストリーム多重化を行っているようなケースだと、どのみちストリームごとのイベントドリブンなコードかストリーム間同期が必要になり、どれだけメリットがあるか怪しいという点」 / Twitter

@ytakanoster

ytakanoさんはTwitterを使っています 「これ、やっぱりLiquid Haskellっぽい。予想が当たった。」 / Twitter
ytakanoさんはTwitterを使っています 「面白そう。 STORM: Refinement Types for Secure Web Applications https://t.co/5BB7dBVHKY」 / Twitter
STORM: Refinement Types for Secure Web Applications | USENIX
ytakanoさんはTwitterを使っています 「Refinement typeだとLiquid Haskellとか使うのかな。pre/post conditionぐらいならType Scriptにソルバ使えば行けるか?」 / Twitter
ytakanoさんはTwitterを使っています 「パフォーマンス評価が全く無さそう。これでいいんだなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「GoJournal: a verified, concurrent, crash-safe journaling system https://t.co/e9CpGNZ6Uf これはCoqを使っているっぽい。Coqで実装をちゃんと出来れば論文になりそうなんだがなあ。」 / Twitter
GoJournal: a verified, concurrent, crash-safe journaling system | USENIX
ytakanoさんはTwitterを使っています 「Iris + Coqだった。Irisもまた難しいんだよな。」 / Twitter
ytakanoさんはTwitterを使っています 「SOSPで発表したやつを使ってOSDIで応用を発表しているというやつだった。」 / Twitter
ytakanoさんはTwitterを使っています 「Perennialはこれか。 https://t.co/38tMeOMe0a」 / Twitter
Verifying concurrent, crash-safe systems with Perennial | Proceedings of the 27th ACM Symposium on Operating Systems Principles
ytakanoさんはTwitterを使っています 「基本はソルバやらで自動で解いて、解けないやつはCoq or 動的検査にフォールバックして欲しい。」 / Twitter
ytakanoさんはTwitterを使っています 「組み合わせたツールがあんまり無さそうなんだよなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「自作言語があるので組み込めという話か。」 / Twitter
ytakanoさんはTwitterを使っています 「LTLも使うだけなら簡単な気もする。裏側のアルゴリズムは良くわかってないけど。」 / Twitter

@keigoi

今井 敬吾
Keigo ImaiさんはTwitterを使っています 「非決定性オートマトンの determinization を遅延評価を使って Haskell で実装する Credit Card Transform という話がある。元は Oleg さんのメーリングリストの投稿 https://t.co/h7uBIFgwuY」 / Twitter
Tying the Knot - HaskellWiki
Keigo ImaiさんはTwitterを使っています 「これと同じものをCoqのCoinductiveで書けないだろうか?」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これ、SWI-Prolog での (co-facts の) 実装が公開されてます。この co-facts は coaxiom に相当するように見えます。coinduction を詳細にコントロールするのにcoaxiom/corule が使えます 実装: https://t.co/iysPAfMFNO 論文: https://t.co/1zel0zgxLB」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prolog より何かすごいのかもw」 / Twitter
Keigo ImaiさんはTwitterを使っています 「Corule で意味論をつくるのが楽しい https://t.co/1jMoEuWPHe」 / Twitter
DROPS - Modeling Infinite Behaviour by Corules
https://person.dibris.unige.it/ancona-davide/Software/cofacts.zip
[1709.04901v1] Extending Coinductive Logic Programming with Co-Facts
Keigo ImaiさんはTwitterを使っています 「グラフが扱えるのでオートマトンの決定化に使えないか。既にありそうだけど、 ε-NFA を決定化するときにε遷移を追いまくるとラベルなしで自分に戻ってくるケースがあり、そこの扱いに使う…とか?」 / Twitter
h_sakuraiさんはTwitterを使っています 「@keigoi coFJもあるんですね。 https://t.co/iQ6VSNTTnd ソースも https://t.co/BxQ6XwHodc」 / Twitter
Sound regular corecursion in coFJ - 2005.14085.pdf
h_sakuraiさんはTwitterを使っています 「@keigoi 人間にしかできないと思っていたようなことができちゃってそうw」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@h_sakurai regular な範囲ならループがあっても自動的に検出して止まってくれる…といいな…」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの左再帰な無限ループ回避できる子ルールを決めるとか何かして数学的帰納法的なところからなんかうまくいくっぽいw なんかってなに?って感じだけどw」 / Twitter
Keigo ImaiさんはTwitterを使っています 「何とかMLer向けにと気負ってしまい発表資料えらい苦戦したんですけど、そもそもセッション型 (のグローバルタイプ) は型付きのプロトコルDSLとしてギリギリ成立するかしないかの部分があって、DSLとコード生成系の中間でちょうど良い方法があるんじゃないかと感じる」 / Twitter
Keigo ImaiさんはTwitterを使っています 「I presented at ML workshop 2021: https://t.co/fOvFwgNjZt」 / Twitter
Verifying Multiparty Communication Protocols using ML Type Systems (ML 2021) - ICFP 2021

@elpin1al

El Pin AlさんはTwitterを使っています 「誰得文書を書きました 『実践Phase Separation』 https://t.co/5wMnZagG9Z みんなも高階ファンクタを静的部分と動的部分に分離しよう!」 / Twitter
practical_phase_separation.pdf
El Pin AlさんはTwitterを使っています 「Phase separationの訳語、フェーズ分離とかでいいのでは、という気持ち」 / Twitter
El Pin AlさんはTwitterを使っています 「phaseを「段階」としてしまうと多段階計算のstageと被るし......」 / Twitter
El Pin AlさんはTwitterを使っています 「4ページ目は、1枚目が間違いで2枚目が正解だった https://t.co/Ep9iZVRNID」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata, Akira Ito and Jacques Garrigue. Recursive object-oriented modules. FOOL, 2005. https://t.co/NvVQNtJPC1 モジュールとクラスを統合。 ファンクタは1階(多分applicative)。 topological sortでwell-founded recursionを保証」 / Twitter
fool_2005.pdf
El Pin AlさんはTwitterを使っています 「再帰モジュールの前方宣言にシグネチャ注釈を一切必要としないモジュールシステムだと、 1階のapplicative functorが存在するだけで型検査を決定不能にしてしまう。 このことを、そのようなモジュールシステムにTuring machineがencode可能であることから示す。」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata and Jacques Garrigue. Path resolution for recursive nested modules is undecidable. 9th International Workshop on Termination, 2007. https://t.co/SKM9Y2rfmk」 / Twitter
wst2007.pdf
El Pin AlさんはTwitterを使っています 「可変参照をgenerative functorとして入れることにした。各型ごとに新しいref型を生成するので、値制限(や、それに類するもの)を入れることなく可変参照を導入できる (その代わりちょっとcumbersomeになる) 1枚目はRefモジュールの定義で、 2枚目はその利用例 https://t.co/pDqTqBSztZ」 / Twitter
El Pin AlさんはTwitterを使っています 「モジュールシステムに様々な機能が入っているのはむしろ良いことだと思っています」 / Twitter
El Pin AlさんはTwitterを使っています 「モジュラリティに関係ない機能が入っているならまだしも、それぞれの機能は全てモジュラリティのために入っているので、それらが1つのモジュールシステムとして提供されることには実用上何も問題がないのでは」 / Twitter
El Pin AlさんはTwitterを使っています 「理論的にどう扱えばいいのかわからないと言う意味であれば、 ストラクチャ: 依存和 ファンクタ: 依存積 シグネチャのtranslucency: singleton kind sealing: computational effect (effect system / monad) という風になっています」 / Twitter
El Pin AlさんはTwitterを使っています 「[Crary 2019]も"In other words, modules confer no fundamental expressive power absent in the core. On the other hand, the fact that the definitions are rather baroque shows that modules are nevertheless a useful feature for a language to support."と言っている」 / Twitter
El Pin AlさんはTwitterを使っています 「もちろん適切に拡張されたコア言語の元で、ですが」 / Twitter
El Pin AlさんはTwitterを使っています 「あとはファンクタによる分割コンパイル・code reuseも」 / Twitter
水無麻那さんはTwitterを使っています 「まだ触れて数ヶ月ぐらいですが ML module の雑感として, * 複数要素を複合できる * subtyping * type で depend できる * abstraction の4つぐらいの主要機能があって,それぞれ微妙に関係してるけど割と独立した機能な気がしてて,その話をブログにまとめるかと思って,モンハンに吸われてしまった」 / Twitter
El Pin AlさんはTwitterを使っています 「型システムの健全性の証明をTwelfで書いています https://t.co/CsvfrzFnse」 / Twitter
elpinal/twelf-proofs: Type soundness proofs in Twelf
El Pin AlさんはTwitterを使っています 「LKTの型健全性の証明が簡単すぎてfocusing最高!となっています」 / Twitter
El Pin AlさんはTwitterを使っています 「今日のML Workshopの一推しはSterling &amp; Harperの"A metalanguage for multi-phase modularity"です https://t.co/ma3umhLrqb」 / Twitter
A metalanguage for multi-phase modularity (ML 2021) - ICFP 2021
El Pin AlさんはTwitterを使っています 「分割コンパイルとインライン化のジレンマを「データ抽象を破壊せずに」解決する方法や、デバッグ時にのみデータ抽象を貫通する方法などを示しています。まさに、Reynoldsの"levels of abstraction"が具現化されています」 / Twitter
画力・博士号さんはTwitterを使っています 「Sesterlの用途ではMixMLにstatic interpretationの機能を加えたようなものが欲しいけれども,既存研究あるだろうか」 / Twitter
El Pin AlさんはTwitterを使っています 「ありません(再帰モジュールは基本的に地獄なので)」 / Twitter
El Pin AlさんはTwitterを使っています 「というかstatic interpretationは、モジュールが非再帰という前提があるからこそ有限時間でファンクタ展開が可能」 / Twitter

@ytaki0801

滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,レキシカルスコープの #ラムダ式 だけで超循環評価器定義したことなかったなあ,ということで定義してみた.無名相互再帰がひたすら面倒だった.ある意味当たり前だけど,ダイナミックスコープのラムダ式は簡単だったなあ. #Scheme #LISP #lambda #programming https://t.co/e6myIVPgeb」 / Twitter
ytaki0801/mcescheme: Meta-Circular Evaluator in Scheme by using lambda with lexical scope, without define special form
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ただこれ,あまりスマートな定義じゃないのだよな.ユーティリティ関数セットを引数たらい回しがイケてない感じ.jmc.lispみたいなリファレンス実装ないかな.#CommonLisp でもいいんだけど(などとタグ付きで投下する).#LISP #programming」 / Twitter

@TakaoOzaki

尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性に解を得るので構わなければ、 '重複のあるデータ列が与えられた時に、データ名:個数のペアを得る'(_重複のあるデータ列,_データ名,_個数) :- bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数). 'これだとbagofが表に出てきます。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog だとここまで。 '重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える'(_重複のあるデータ列,_データ名_個数ならび) :- findall([_データ名,_個数],( bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数)),_データ名_個数ならび). https://t.co/BLPYNBBU2b」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは少し驚き。仕様が高階関数を要求するから高階関数を書くのではないのか。 Prologの場合は、論理学の中では高階述語を書く必要が出てくるが、日常的にはそんなこと人は考えないから、使うことはない。'. https://t.co/4XvKLpEHW8」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'しかも、実行時以前にコンパイルがなされるのだとすると、q1やq2が決定性に終了しているかどうか判断することは結構むずかしい。q2やq2が「決定性の述語」であると分かっているとは限らない。「非決定性の述語」が決定性に終了している場合だってある訳です。 コンパイルの難しさですね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイラが末尾再帰を繰り返しパターンの変換する場合はどんな要件は何か。 先程述べたq1とq2が共に決定性である必要がある、この点は同じの筈です。もし別解がありえたらどうなるか?この場合はやはりスタックに情報を積んでいく他ない。スタックに関する最適化はできません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの話は、所謂インタプリタ。実行時にProlog処理系のモニターが次に実行するべきGoalをスタックから取り出して、実行する際にモニターに付加的に存在しているロジックということになります。 コンパイラが末尾再帰を繰り返し手続きに変換するという話ではありません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、 p :- &lt;&lt;停止節&gt;&gt; p :- q1,q2,p. 末尾のpが実行される時に、スタックが延びなくなる(上書きされる)ためには、条件があります。それは、q1,q2が決定性で終了していること。q1かq2にまだ別解の可能性が残っている場合はここでの意味での最適化はできません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologに詳しくない方でもこれが末尾再帰であることは解ると思います。 p :- &lt;&lt;停止節&gt;&gt; p :- q1,q2,p. のようなパターンになっているのが末尾再帰です。第二節の本体の最後で自分自身を呼んでいる。このご利益は第一義的にはスタックオーバーフローの解消の可能性です。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog Wikipediaに 空積の規約のもと 0! = 1 と定義するとあり、やっぱり前のもダメ。 末尾再帰版階乗(0,1) :- !. 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). なら大丈夫.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'あ、これはいけません。バグですね。 ?- 末尾再帰版階乗(1,X). これは解が返らなくなってしまう。'. 末尾再帰版階乗(0,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). にすれば良いのかな.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). 'これだとスタックオーバーフローは起こりません。ただ、100000000000の階乗は時間が掛かりすぎて無理ですね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 階乗(1,1) :- !. 階乗(N,X) :- M is N - 1,階乗(M,Y),X is Y * N. 'このコードは末尾再帰ではありません。このコードで ?- 階乗(100000000000,X). のようなことをやると、スタックオーバーフローになるに違いない。余程コンパイラの類が頑張ってくれないと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「@dec9ue % Prolog 'Prologで再帰述語を書く時は、スタックオーバーフローを起こさないための最低限度の備えとして、末尾再帰にすることを考えます。そういう問題に拘ることが好ましいことかという疑問もありますが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'このプログラムではもうひとつの宣言的プログラムの小道具 select/3 が現れています。 これは非決定性の述語であり、その点で非手続き的な印象の強いものです。このように宣言的プログラミングの道具で固められたから、宣言的な印象の強いプログラムになるのではないか、と。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それは forall/2 の存在です。このメタ述語が宣言的であることははっきりしています。どこにも手続きらしいところがない。 実は、私が引っ掛かっていたこととは、宣言的であるのはforall/2のお陰ではないか。forall/2を使えば、どんな言い回しをしても宣言的になってしまうのではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さてここからが本題で、私はこのスレッドを % Prolog 宣言的プログラム? とのコメントから始めました。 何故、?を付けたのでしょうか。順序だって日本語の指示通りに解決されるから手続き的だと思ったのでしょうか。 そうではなくて、実は以前から引っ掛かっていることがありました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 述語集('スレッドとメッセージキューを使って全解を収集する'/3, 'https://t.co/P0Z9yll82q'). '何回目かのツイートで既に見たことがあり記憶に残っている人がいたら恐縮である。findall/3に相当する述語だが、threadとmessage、そしてPrologの書き方の例としては、分かりやすいと思う。'.」 / Twitter
nojiriko.asia/prolog/prolog/zenkai_wo_shuushuusuru_utf8.html

@fadis_

FadisさんはTwitterを使っています 「linuxカーネル、コードの1行を80文字以内に収めるコーディング規約を「強く推奨」から「推奨」に変更。1行80文字固定のターミナルを使っている開発者はもはや殆ど居らず、80文字に収めるために無理に改行する事でgrepabilityが低下する事の方が問題になっているとの判断から https://t.co/Y30xao4YoE」 / Twitter
The Linux Kernel Deprecates The 80 Character Line Coding Style - Phoronix
FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
Trojan Source Attacks

@igrep

重城良国さんはTwitterを使っています 「たとえばimmutableな話で、配列の一部を変更するような場合、もとの配列がGCされるような状況であれば、安全に「破壊的な変更」に置き換えることができるはずだし、それができればパフォーマンスが大きく向上すると思うのだけど、GHCとかでそういう最適化はあるのかな。あるいは技術的な困難があるか。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@YoshikuniJujo 線形型はまさにそれを確実にやるための機能ですよ。 「元の配列」を必ず一度しか使わない、という制限を加えることで実現しています。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「存在量型が欲しくなった時点で、あるいはもっと遡ってそもそも型クラスにしたくなった時点でrecord of functionで大概いいんじゃないかと考えるべきだと思うんだけど、確信を持って説得できない #haskell」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GHC、型エラーは慣れれば結構読めるけどパースエラーはエラーが発生したところからかなり離れた箇所が原因だったりするから難しいと個人的には思う。(型エラーも発生した箇所から離れた箇所が原因であることはしばしばあるけど、慣れかな...」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「今更気づいたんだけどasync/awaitやPromiseがなかった頃のNode.jsってある意味IO Monadがなかった頃のHaskellみたいだよね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「軽量なEither型って感じか。確かにHaskellと違ってearly returnすればネストが深くなる問題は免れるし、少々冗長だけどいい落とし所なのかも知れない(でも結局flatMapみたいな関数を自前で追加しちゃいそう) / “TypeScriptの異常系表現のいい感じの落とし所 | …” https://t.co/cH9MMDjf0P」 / Twitter
TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ところで追加したこの構文がわからない。単なる型エイリアスじゃなさそうだし... class Success&lt;T, E&gt; { ... type = 'success' as const // これ ...」 / Twitter
かたしんさんはTwitterを使っています 「@igrep インスタンスの type プロパティに文字列 ‘success’ を代入してて、as const をつけることで string 型じゃなくて ‘success’ 型になるようにしてますね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ktsn なるほど!ありがとうございます!」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@miura1729 昨今のサーバーレスの流れで、1秒でも計算時間を短くすれば課金額が減るので高速なアルゴリズムを求める、なんて話もあるらしいですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@igrep なんか、1980年代のメインフレームを時間貸ししていた時代を連想させますね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに...!時代が戻ってる感すらある &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「@igrep まあ、コンピュータ分野の技術は繰り返しなものばかりですからね。CPU/OSが複雑になるか・単純になるか、ソフトウエアでやるかハードウエアでやるか、型が動的か静的か などなど。どれも20~30年くらいの周期でしょうか」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「でもおかげでLift型クラスの意味がめっちゃよくわかった。こりゃ難しいわ」 / Twitter
Lift型クラス - Google 検索
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「JSXがどうしても好きになれないのでElmみたいにタグ名が付いた関数でReact.createElementするライブラリーがほしいんだけど、すでにないのかな。」 / Twitter
dyoshikawaさんはTwitterを使っています 「@igrep Elmが良い気がしましたが、JSならHyperAppとかどうでしょうか?」 / Twitter
λ🐇🐢.🐇さんはTwitterを使っています 「@igrep 概念としては hyperscript ないし hyperscript helpers という名前が付いてますね (ググりの手助けになれば)」 / Twitter

@s_isshiki1969

monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 私の理解ではErlang VMは,SMTごとにカーネルスレッドで,それぞれのカーネルスレッドでユーザースレッドのキューを持つ,負荷分散をするため適宜カーネルスレッド間をマイグレーションする,という感じです。どこかにドキュメントが。。。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 いや、僕もまるで詳しくないので嘘かもしれませんが、複数のユーザースレッドがあり、ランタイムのスケジューラが各々のスレッドを順次ネイティブスレッドに割り当てて実行していくというようなものと理解しています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 Erlang VM のポイントは,SMTにまたがるグローバルな同期排他制御を極力排除した点です。ドキュメントがインターネット上のどこかに転がっていたかと思うので,探して読んでみてください。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 @s_isshiki1969 横からごめんなさい。これのことでしょうか? https://t.co/EHo483q0mG とても面白いドキュメントだと思います。」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二重開放・開放済み領域の利用・開放漏れは防げそう。 オーバーフロー系は無理かな。 ポインタの代わりに「ポインタ+確保サイズ」をポインタ代わりに扱うCライブラリもあったっけ…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近の言語は、初期化時に開放コードを紐づけられて、早期returnしやすくなった。 (あと複数returnに「構造化違反」と言う人も居なくなった) 昔は複数リソース確保時は、goto END(ERR): みたいなのを作って開放処理を担わせる、とかよくあった。 (今もC言語とかでは良くある?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter
Ryuji FuchikamiさんはTwitterを使っています 「M並列でNサイクル計算するとMxNの計算ができる。 ある問題を解くとき、Mが固定でNが減るようにアルゴリズム(計算量)を改善するのが普通のプログラミング。 Nが固定されていてMが減るようにアルゴリズムを改善するのがリアルタイムプログラミング。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Ryuz88 Mをハードウェアで可能な最大値にするようにして,Nを減らすようにするのが並列プログラミング さらにNを減らすにあたってボトルネックになっているMを解消するようにするのが,ハードウェアによるアクセラレーション支援」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「フォーマットでなく、ソフトウェア設計でこんな話を思い出した。 B.メイヤー先生曰く、「データ構造こそ最も不変な要素(意訳:拡張はあるが既存実装が全無駄になる変更は滅多にない)。だからオブジェクト指向は、データ構造中心のパラダイム(手続きと並置ではない)」」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「元ネタは C vs C++なコンテキストだと思うけど、並列処理に関しては50歩100歩では感(笑) (最近のSTLにstd::threadやatomicが追加されたとはいえ、、、)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++テンプレートだと、新たな型と関数の組み合わせ時に、初めてコンパイルエラーになったりする…テンプレートの網羅的な事前テストは難しそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「安全(スレッド安全とかセキュリティとか)に作った筈のモジュールが、数年後、別の仕様拡張で、安全のための前提条件を満たさなくなる現象、たまにある。 こういう場合、問題が発現するまで気づかないことが多いのだけど、少なくともスレッド安全については自動検査するツールとか無いのかな?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「キャメルケースは CamelCase ではなく camelCase が本来で、前者は PascalCase と呼ぶ方が正確らしい…知らんかった。 https://t.co/7dmmRBpDhR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ところで、Upper/LowerCase はホントに写植の箱(Case)由来のはずだけど、CamelCase とかの Case って何だろう…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、型推論/検査のしっかりした言語で、ソース規模増加でコンパイル時間が無視できないくらい増加という話を聞いていたので、ちょっと興味 &gt;RT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonで簡単にワーカー関数呼ぶだけのワーカースレッド作りたい時、Threadingより_threadを使う方が楽と思う。 (使い捨て用途でも、クラス作成を強制する流儀はご勘弁)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(使い捨てや簡易用途で)関数に比べて、クラス作成の面倒臭さ感って、何に由来するのかしらん?」 / Twitter

@kmizu

Kota Mizushima (on a diet)さんはTwitterを使っています 「未だに、形式論理での証明が苦手だけど、(カリー=ハワード同型対応的に)型付きラムダ計算を使った「証明」だったら、多少はかけるのはなんでだろうと思う。日常の「論理」との混同が起きにくいので、すんなり頭に入ってくるんだろうか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「PEGにおいて、文字じゃなくてトークンが基本単位でもいい(そういう風に置き換えられる)、というのは元論文読めば誰でも思いつく話なんだけど、研究ではこっちのアプローチはあんまり盛んではなかったように思える。ただ、Pythonの実装見ると、このアプローチもっと真面目にやってもよさげ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ほとんどの(現代の)インタプリタは、ナイーヴなものでも、たいてい抽象構文木を解釈するものですよ。というのは、割とプログラマーに常識として広まって欲しいと本気で思っている。 たぶん、処理系の性能見積もり予測とかも、そういうナイーヴな実装を知るところから始まると思いますし。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「これを言わなきゃいかんのは、行単位で解釈し直すとか、下手したら、パーズし直すとか思ってる人とか、それを植え付けた一因とおぼしき「入門」本がほんとにたくさん、たくさん、並んでいるからなんですけど。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「この「最低限の理解」がないと、おそらく、プログラムのチューニングとか永遠にブラックボックスのままなのでは、とおもう事が多いのです。 コンパイラの場合は違うにせよ、今どきの処理系はハイブリッド(JITコンパイラ)が多いので、インタプリタ、つまり解釈系の事知っといた方がいいし。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、事前条件/事後条件(+不変条件)辺りの概念については、プログラマー必修にしてもいいのでは、と思いはじめている。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「というのは、これらの概念を明確に意識可能かどうかで、プログラムについての対話がスムーズに行くかが大幅に変わってくるんではという事例をよく見るからなんだけど。 例として、プログラムの事前条件/事後条件の一部は(普通のプログラミング言語でも)型として表現可能である、みたいな。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「カリー=ハワード同型対応までやるとかは必要ないにしても、対話相手がそういう概念を持っていない場合に、議論に困る、ってことは時々あるし。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、今まで理解できない言語にぶちあたったとき、大体その言語のミニ処理系だったり、関連する機能を持ったミニ処理系作って来た気がします。HaskellのIOモナドがしっくり来なかったら、IOモナド持ったプログラミング言語作ったり。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「その時に、「あー、(World, A) -&gt; Worldの関数としてとらえればいいのかー(Worldはたかだか1回しか使われない)」と妙にしっくり来たのを覚えています。」 / Twitter

@PG_MANA_

PG_MANA@帰省中さんはTwitterを使っています 「goto failより、Zenのdefer/errdefer の方がわかりやすくて良い(Cにもほしい)」 / Twitter
zen defer - Google 検索

@tanakh

Hideyuki TanakaさんはTwitterを使っています 「Rustは良い書籍がすでにあるけど、それらはネイティブ英語話者に対して書かれてるので、それ以外の人には難しい。今では多くの国の人たちがRustを勉強しているので、これはそういう人達に向けた単純な英語での入門書 / “GitHub - Dhghomon/easy_rust: Rust explained using…” https://t.co/JOj4osnqzr」 / Twitter
Dhghomon/easy_rust: Rust explained using easy English
Hideyuki TanakaさんはTwitterを使っています 「まあunsafeの中ではunsafeが呼べるってだけで、unsafeじゃないものが自動的にunsafeになるわけじゃないからな・・・(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「ダングリングポインタも、バッファーオーバーフローも、SEGVも、ヌルポアクセスも、データレースも、絶対にないことを保障してくれて、その上C言語と同じかそれ以上に速いプログラミング言語があるんですって!これは使うしかないですよね!?(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「いや、nimのcaseがパターンマッチ相当なのかもしれんが、見た感じ違うし、パターンマッチの本質はデータ構造の部分的な束縛だぞ・・・。」 / Twitter

@DQNEO

ドキュネオさんはTwitterを使っています 「Go言語のスライス、使う側としてはめちゃくちゃ便利だし、実は裏側のコンパイラ/ランタイム実装もわりと簡単なので(2-3日で作れる)、これぞイノベーションという感じがする。」 / Twitter
go スライス - Google 検索

@hatsugai

histric-1

hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器は形式手法の中でも入りやすいと思います: 1.モデルがプログラムに近い 2.仕様も状態遷移で書ける:モデル検査器は時相論理が難しい 3.検査は自動:モデル検査と同じ.証明は難しい 4.仕様と実装の差が反例として示されるのでわかりやすい:モデル検査の反例は難しい.証明はもっと難しい」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「形式手法」という言葉を使っているうちはまだまだということでしょう…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「…が使われているうちは…」と書くべきだった…すみません.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様はプログラムの動作を規定するもので,テストではプログラムの動作が仕様と整合しているか個別のケースごとに確認しているわけだから,仕様もコンピュータで処理できる形にして網羅的に比較するプログラムを書いてしまおうというセミナーです.正当性とは何かを改めて考える機会になるでしょう.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器というのは仕様と実装の設計モデルを比較するツールです。仕様に反するところがあればレポートが出ます。それを見て設計を修正できるわけです。トレース検査器はその一種です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 デッドロック発見器からはじまった作るセミナーシリーズの最終回。設計モデルが仕様を満たしているかどうかをトレースで網羅的に比較検査するツールを作ります。 https://t.co/ZHttN6rbOF」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様と実装を網羅的に比較して一致が確認できる、または違いを突きつけられるというのは結構強烈な体験だと思います。さらにそれが自分で作れるとなれば楽しくないわけがありません。アルゴリズムの骨子はグラフの探索です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器のことをトレース検査器って書いてしまった、あーあ。まいっか。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「ものを数えたり番号をつけたりするときに,常に 0 based を使うように気をつかっていたのに,ふと油断したときに「1,2,...」といってしまい友人に( ̄ー ̄)ニヤリと笑われたことを思い出してしまった.TeX の enumerate ですら 0 にしてたのにー! ところで仕様記述言語はどうして 1 based なんだろ…」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月23日(土) 自分の好きなプログラミング言語でプログラム検証器を作るハンズオンセミナーです。プログラムの正しさを証明する理論である Hoare 論理を解説します。SMT solver Z3 を使って証明を自動で行います。 https://t.co/BCzAL1dZtu」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass

histric-2

hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「自分で作らなくても既存のツールを使えばいいと言っている人を見かけた。適したツールを使うのはもちろんだ。でも理解のために作るというのもある。自分で作ってみると理解の深さが違う。わかってなければ作れない。いろいろ考えさせられて力がつく。記憶に残る。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「モデルもガンガン書いてみればいいわけで。間違いだろうが的外れだろうかかまわない。視覚的にフィードバックがかかるからあちこち変えてみたくなる。するとさらにいろいろ見えてくる。手を動かした分だけ知見が得られる。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「目的のためにフレームワークやライブラリで言語を選ぶ時代(?)。じゃあ遊びなら好きな言語でなんでも書いてみたらいいんじゃないか。ついでに言語も作って処理系も作ってしまえ。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「考え方を習得するのはいつも難しかった.距離・時間・速さの計算,分数の計算,方程式,幾何の証明,濃度の計算,微積,物理などなど.型を身につけるって感じだった.それがわかるのはわかったあとだけど.プログラミングにも型があるだろう.端的にいえるか?.プログラミングの型を持っているか?」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「BASIC を卒業したあとはわからないことだらけだったなー。再帰、レコード、ヒープ、マクロ、クロージャ、継続、仮想関数…。8080 の機械語から入ったからポインタでは苦労しなかった。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「何かを作ったり問題を解決したりするとき、まず考えることはゴールを明確にすることだけど、プログラミングのゴールを明確にするってなんだという話。過程もそうだし、表現も。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「形式手法を始めるなら、定理証明支援ツールを使いながら述語論理を勉強するところから始めるのがおすすめ。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールのライブラリを読んでいると数学の定義そのままに記述されていて、あたりまえなのだけど「ほんとにいいの?」という気持ちになる。少しの不安と圧倒的な力に対する感動が入り混じった感じ。そう感じるのプログラミング的な考え方が思考を制限しているのではとの不安もある。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「あまりにも長い時間プログラミングばかりしていたので、実現可能なことばかりを考える手続き脳になってしまっているのではないかと思う。実際、数学の問題を手続き的に考えていたことに気付かされたことが何度かあってショックを受けた。プログラミングでも対象の宣言的な性質に着目する必要があ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間的に変化するプログラムの状態を状態間の関係として記述するという形式仕様記述の考え方は、時間的に変化するものをどうやって静的に表現するかという問題への解の1つ。同様に時間的に変化する物体の運動を無限小時間の前後の関係として表現する運動方程式と同じ。運動が静的な関数で表せる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「じゃあプログラムって何?命令的なプログラムと関数的なものと Prolog みたいなものは何が違う?それらと仕様は何が違う?プログラムの"意味"って何?検証とかテストっていったい何?」と問いが進んで一周回ってくるとちょっと高いとこにいる感じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムが状態の時間的変化を記述しているんだったら、どうしてその表現形式なのか?それのどこがいいのか?もっといいものはないのか?という疑問がわく。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「大まかな話、対象としている問題領域によって何を状態とするのが適切かが異なり、その状態の形によって変化の形も違う。だから状態と変化の形に合わせた記述要素と組み合わせ方法のセットを選ぶ。これだけではまだ選択の余地があって、さらに他の要求から選択を進める。その要求とは設計論的なあ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「形式手法は汎用の技術で、各応用分野での技術とはほぼ直交するから組み合わせれば開発をブーストできる。独学もできるけど話を聞いた方が効率がいい。それ以上に話をするとブーストのヒントが得られたりアイデアが発火したりする。だから興味ある人にはセミナーに来て欲しいけど今は難しい状況な文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「システムの振る舞いは外部から観測可能なものに基づいて表現される。つまりシステムは"外見で判断"される。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器をトレース比較器に進化させた人で、さらに非決定性の識別ができるところまで作ってみたいという人はどれくらいいるだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様には様々な面があるけど、その中で振る舞いに関する仕様については十分に記述されることがほとんどない。記述した場合はプログラムと2度手間になっている感が強い。じゃあ不要かというとそんなことはない。仕様側の抽象度を上げることと、プログラムの被分析性を上げることがポイントだと思う。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「分散システムにおけるコンセンサスアルゴリズムの正当性証明 with Isabelle/HOL by Martin Kleppmann https://t.co/1jcO7O6FOM」 / Twitter
Consensus_Demo.thy
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Actor に近いモデルだけど、configuration の構成要素であるメッセージプールにはメッセージ溜めっぱなし。受信の際に削除しない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ギルドの扉を叩いた初心者冒険者は偶然 "Hoare Logic" という名の強力な魔力を宿した剣 "Isabelle" を手にしてしまう.ガイドの元,最大値・絶対値スライム討伐から訓練を始め,2分法のスキルを習得し,ラスボス2分探索に挑むって感じで,セミナーは参加型エンターテインメントなわけですよ.イタイ…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「本を読めばわかる人はそれでいいんじゃないですかね.あ,感じ悪いな…まあとにかく,自分自身を訓練する,自分に投資するという人,導入はガイドを雇って効率よく進めた方がいいという人に参加して欲しいと思います.ハイ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「(心が荒れててよくない…)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(並行合成器)を共有変数とメッセージ通信で両方作って見た人は違いがよくわかったんじゃないかな(といいな)。相互作用を決めると合成できるというのが面白い。メッセージ通信で共有変数を作れるのも面白い。物理的なメモリは実際そうだし。では逆は?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「アクターモデルが好きな人はそれを基本相互作用として並行合成器を作ることもできる。でもメッセージプールが無限に膨れ上がるのでシミュレーションはできるけどモデル検査はできない。振る舞い全体の可視化は一般には無理。定理証明支援ツール上でモデル化すれば無限でも扱えるので性質を調べられる。」 / Twitter

histric-3

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Alloy を使うときの考え方とプログラミングのときの考え方の何がどう違うのか、なぜ違うのか、どうやって橋渡しするのか、といったところを自分なりに整理しておきたい気持ちはある。あとの方は多分に認識・解釈の問題ではあるけれど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メモリ上でポインタでつないで作った構造をまとまりとして1つの値として考えるってことと対応づけると面白いかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様記述のメジャーな2つのスタイル(というと他の手法の人に怒られるけど)のうち、状態を中心に考える手法で、状態遷移を状態間の関係として記述する技術を必要としている人(自覚の有無にかかわらず)はいると思うので、紹介する機会を作りたいと思っている。問題はいつものように前提知識に文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もう1つの相互作用に着目する方は通信の時代で応用がたくさんあるのにマイナーな印象で残念。大きく2つの柱からなるので分けることもできるけどやはり一緒の方がいいと思う。そうすると並行システムっていう名前になるのでこれがスルーされる原因なのかも。改題するか。そういう問題か?目的のため文字」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「対象に合う表現形式を選ぶというごくあたりまえの話。よいものがなければ工夫するとか新しく作るとか。バランスをとるのは思ったより難しいのかも。自分はいまのとこ OCaml + 通信機構(CSP) でかなり快適だけど、うまく書けないものもある。たぶん自分が知らないだけ。O を使えばいいんだけど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信編はプロセス代数を食べやすく調理したものなんですよ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle は計算機科学の教科書、例えば型システム入門にある証明を形式化できるくらいを目標にすると、inductive_set あたりまでガイドできればいいんじゃないかと思うので、まっすぐそこを目指すことにする。独立性の高い記述要素やメソッド、定理、証明技術などはそのあと肉付けすればいっかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「昨日質問が出た事前条件と事後条件をつなぐ話。例えばインクリメントの場合 {x = C} x := x + 1 {x = C + 1} と表す。事前状態での変数 x の値を表すために導入する、プログラムには登場しない変数 C のことを仕様変数という。つまり仕様変数を使って事前条件と事後条件をつなぐ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「事後条件に着目すると x = C + 1 は x' = x + 1 という書き方に対応する。事前を x 事後を x' にする代わりに、事前を C 事後を x にしたってこと。つまり修飾なしの変数が事前を表すか事後を表すかという選択。事後を修飾なしで、事前を修飾するという流儀もある(e.g. VDM)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「いずれの流儀にせよ、事後条件は(名前に反して)事前状態・事後状態間の関係を表す。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば変数 x, y の値の交換 swap の仕様は、仕様変数 A, B を使って {x=A &amp; y=B} swap {x=B &amp; y=A} と書ける。例題でやったやつ。プログラム書いて証明してみると楽しい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数編とは独立したセミナーです。共有変数編からの続きではありません。共有変数編の続編はモデル検査器へのバージョンアップです。メッセージ通信編の続編ではマルチスレッドプログラム全体の振る舞いを仕様と比較するトレース比較器にバージョンアップします。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの正しさを証明するってことは数学を通してプログラムの性質を見るってことで、プログラミング言語で考えるのと合わせて2つの見方を手に入れるってこと。1つと2つは大違いで2つあると比較ができる。同じように次はマルチスレッドプログラムを状態遷移グラフで見る。これもまた強力なんですよ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「設計という行為には4つの要素が考えられる:(1)問題を定義する、(2)解を求める、(3)解を実現する、(4)解であることを確認する。人によってどれが設計に入るか異なるだろう。解の表現が実現性の点で少なくとも2種あるところがポイント。解は解の候補であることもある。以上の認識は共有されるだろうか?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信版デッドロック発見器の背景にはプロセス代数があるので、作るといつのまにかプロセス代数の考え方が理解できちゃう。しかも共有変数とか非同期通信のモデル化もできるので強力。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版でメッセージ通信する例は抽象モデルだったけど、メッセージ通信版で作る共有変数+同期機構は十分詳細なモデル。もちろん前者でもやればできるけど。共有変数+同期機構でメッセージ通信ライブラリ実装するのとほとんど同じ。加えて検査ができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合、本を読んで「証明完全に理解した」と思ったら、あと2回は「わかってなかった」→「こんどこそわかった」を繰り返すことになる。1度目は自分で証明を紙の上に再構成するとき、2度目は定理証明系で証明を形式化するとき。人に説明する機会があるときはさらに回数が増える。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援系の自動証明能力が向上してうれしい反面、理解していなくても証明できてしまうというおそろしい(?)ことも起こる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「そういうときは証明を"刻む"。自動証明機能を使わずに、定理と推論規則だけで証明を組み立てる。別のいい方をすると定理証明系を証明検査器としてのみ使う。これはまずわかってないとできない。でもガチャガチャやってたらできちゃったということもないわけではない…。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Hoare 論理と SMT solver Z3 を使ってプログラムの正当性を自動証明するプログラム検証器を作るセミナーを準備している.作ってみたらあまりに強力過ぎて笑ってしまった.Isabelle のセミナーで使った例がすべて自動で証明できてしまう.証明できない場合は反例が表示される.それを分析して修正できる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「土曜日はシステム開発で重要な次の点を解説する: (1) コンポーネントの振る舞いを明確に記述する記法と意味 (2) 明確に定義された基本相互作用によりコンポーネントの振る舞いを決めるとシステム全体の振る舞いが決まること (3) システムの振る舞いを期待する振る舞いと比較検証する方法(ツール)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「やはりこうして解説を書いてみても現状とのギャップは見えてこない。おそらくあたりまえとかすでにやっていることのように思われるのではないだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの振る舞いモデルをツールに入れると、全自動で振る舞い全体を網羅的に比較して、差分があればそれを教えてくれる。これを体験してもらうしかないかも。にわたま。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「並行システム」というと「関係ない」と思われてしまうのだろう。相互作用を考えるということは少なくとも2つの実行主体があるわけで、したがって並行システムなわけだけど、それは置いても、継続的に動作するシステムの検証とは何かというもう1つ重要なポイントがある。明確に語られるのを見ない。」 / Twitter

histric-4

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月2日(土)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです.2分探索の正当性を自動証明する能力があります. #FormalVerification #FormalMethods #形式手法 https://t.co/my0H7ECxMK」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「難しそうに見えるかもしれないけど、実は作ること自体は結構かんたんです.Scheme 版は 86 行しかありません.規則にしたがって計算するだけです.あとは SMT solver がやってくれます.自分で作って、いろいろな例で試しているうちに理解が進むという感じです。楽しいですよ。拡張もできるし。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle で正当性証明する前に反例がないかチェックしてみる、っていうくらい強力。セミナーで使う例題プログラムの正当性を Isabellle でチェックする前に自作検証器でチェックしている自分を発見した。Isabelle で散々試行錯誤してから実は仕様が間違ってたみたいなことを避けられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メソッド(ふつう論理学の教科書だと導入と除去の2つだけど Isabelle は3つ)の使い方を理解するのが最初の壁で,それを乗り越えた後はほぼパズルです.これがかなり楽しいのだけど人によるか.問題もたくさん用意した.否定(~でない)が入っているやつはなかなか手ごわい.ふっふっふ.」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「哲学者の食事(改):デッドロックのある回避策を入れたらライブロック(発散)が起こる例 #SyncStitch #FormalMethods #形式手法 https://t.co/MULx4UGxzZ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器が作りかけの人は、ぜひ続きをやってモデル検査器にバージョンアップしよう! 計算木という考え方はわかりやすくて役に立つし、検査のアルゴリズムも面白いです。効率よりも面白さ&amp;実装しやすさ優先で選んだ。2種類の不動点と関係がある。 https://t.co/AUJrJFgfgU」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「OS やプログラミング言語のいろいろな同期・通信機構をモデル化してモデルライブラリにしとくと便利だけど、誰かやってくれという気持ち。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「並行システムというととても狭い領域の話として受け取られることが多い印象だが実際は並行システムじゃないものを探す方がたいへんなくらい。その認識のギャップが課題。検証のしくみについても同様。おかしなものだと個人的には思うのだけど、歴史を見るとよくあることなのかもと思わなくもない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「だからプログラミング言語についての話を見かけるとなんともいえない気分になる。20年前、40年前のトレンドと、その頃の人たちが何を言っていたかを知ると。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「明日というかもう今日だけど、非同期通信モデルの説明をするので気合いがいる。非同期通信モデルは不安定仕掛かり中間状態が多いのでデッドロックに至る最短パスが長くなりがちで分析がたいへん。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマが自由に決められるのは各スレッドの振る舞いだけ。各スレッドの振る舞いを決めた時、合成(結合)した結果が想定どおりになっているかどうかは自明じゃない(巨大な状態遷移グラフ)。だから (1) 合成を計算する (2) 想定どおりかどうか検査する; という2ステップからなってる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「手続きを P0, P1, ... としてそれぞれ状態空間での遷移関係として仕様が与えられているとする。共有変数の参照・更新も手続きとみなす。ラフに考えると、相対的に (1) 非決定性が大きい (2) 依存関係(事前条件、遷移構造)が複雑 (3) 手続きのパラメータによって大きく関係がかわる;あたりから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「具体的な例を調べて精密化すればもう少し何かわかりそう」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月4日(月)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです。2分探索アルゴリズムの正当性を自動証明する能力があります。 https://t.co/G7m1euWOPS」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「SyncStitch 2 の資料を見返していたら、状態遷移図は描けるし、シーケンスチャートは出るし、見た目かっこいいし、並列検査で性能もいいし、S式だし、Scheme で実装だし、なんでこれやめちゃったんだっけという感想。 https://t.co/fd7e7N7dOM」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Version 3 で実装した fluent, CTL, LTL はそのうち version 4 にも移したいけど、広い意味での体力が… Version 1 のときは抽象状態とか表示マクロとかサブプロセスを指定して探査開始とか、もっと凝った機能もあった。はじめに複雑なものを作ってしまうの法則。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「例として数列の和を求めるプログラムを考える。ループのステップは s := s + c[i]; i := i + 1 これに対するループ不変条件は s = Σ_{0≤k&lt;i} c[k] と s + Σ_{i≤k&lt;n} c[k] = E という形が考えられる。後者はエネルギー保存型ループ不変条件。ループの進行にしたがって値が移っていくが和は一定。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「エネルギー保存型ループ不変条件の和の演算部分(T ⊕ V = E の演算 ⊕)は、集合だと和集合 ∪ になったりリストだと連結になったりする。そういう保存量を探すという考え方で事後条件を見ると、隠れている項が見えてくることがある。第一積分のように機械的に計算というわけにはいかないが…」 / Twitter

histric-5

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Z3 で sum を表現する例 https://t.co/sTSd3iS1Bo」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「model https://t.co/t7plFVemDi」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これは読めないので Gauche で評価してみるとたしかに累積和になっている: https://t.co/Krs4QSbjAC」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自動証明ができるので、候補になりそうな式を生成して片っ端から solver に投げるという荒っぽい戦略もとれる。ますます考えなくなる人間。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば事後条件が P &amp; Q &amp; R の形だったら 1. !P と Q&amp;R 2. !Q と P&amp;R 3. !R と P&amp;Q 4. !(P&amp;Q) と R 5. !(Q&amp;R) と P 6. !(P&amp;R) と Q を調べることができる(それぞれループ条件とループ不変条件)。 線型探索や平方根の問題はこれで解けてしまう。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つに場合分けする場合は p ∨ ¬p = true で網羅、p ∧ ¬p = false で排他。p ⇒ q = ¬p ∨ q で展開すると項が余る…さて?とここで一工夫必要。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A: (p ∧ q) ∨ (¬p ∧ r) と B: (p ⇒ q) ∧ (¬p ⇒ r) は同値」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「まず仕様を明確にする。日常的な意味じゃなくて数式で表す。ゴールは命令型のプログラムを書いて正当性を証明すること。段階的に進める。まず再帰を使って関数型プログラムを書き、仕様との一致を証明する。次に命令型のプログラムを書いて、関数型プログラムを利用して正当性を証明する。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様・プログラムの表現形式はA:論理式、B:関数、C:命令型プログラムと3つあって、Aはwhatに集中できるけど実行は(ふつう)できない。Cはhowで何をしているかは明らかではないけど実行可能。Bも実行可能でwhat/howは中間くらい。これらをうまく選んで使って正しさに確信が持てる結果を得る。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴールデンウィーク最後のセミナーは SyncStitch によるリアクティブシステムのモデル化と検証。通信システム、組込み、マルチスレッドなどに共通する性質を理解し開発上の課題を解決できるようになる。定理証明でもモデル検査でもない、知られざる技術を紹介する。6時間後には次元違いの超レベルUP!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「タイトルはわかりやすいようにマルチスレッドにしたけど実際にカバーする範囲はもっと広い。2つの独立した柱からなる。1つは相互作用を決定すると合成系の振る舞いが決まること。もう1つは相互作用を通じて観測できる振る舞いに基づいてシステムを検証する基準と方法:「振る舞いとは何か」」 / Twitter
PRINCIPIA Limited
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「紙の上で証明のアウトラインを組み立ててから定理証明支援系にのせる方が短くてきれいな証明になることが多いけど、それっぽくない証明にもなる。逆にまず定理証明支援系に入れてしまって、自動証明でできるだけ進めて、残ったゴールを見て考えるのも楽しい。補題を作って自動化を進めると気持ちいい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「第1回で論理学の教科書に出てくるような問題が証明できるようになります。これは計算機科学の基礎だし、仕様記述やプログラミングでも役に立ちます。 第2回までやると関数型プログラムの性質が証明できるようになります。再帰的に定義された関数の性質を数学的帰納法を使って証明します。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「オートマトンの知識を正規表現や字句解析にしか使わないのはもったいない。デッドロック発見器がおすすめ。またやるか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プロセス間相互作用について考える機会になる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器にプロセス優先度を導入してみた。左図:まず低 R が起きてロックを獲得、次に高 P が起きてロックしようとするができずwait。ここで中間 Q が起きて動きっぱなし。いわゆる優先順位逆転問題。これを優先度継承で解決したのが右図。P が waitした時点で優先度を R に継承して動作OK https://t.co/Eaj94JdXZW」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器で優先度および優先度継承をできるだけ楽して実現するには優先度も共有変数レコードに入れてしまえばいい。そうすればプロセスが自由に優先度を変えられる。あとは遷移を計算する関数が優先度を参照して低い方を計算しない(あるいは捨てる)だけ。作った人は改造にチャレンジ!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマはプログラミング言語の他にもう1つプログラムの性質を表す言語を持った方がいい。2つの異なる表現を作って比較すれば正しさを高められる。検算と同じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「あと検算の技術と道具。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メタスキルはとても価値があるんだけど習得は難しい。経験から学ぶのは難しい。本には書いてあるけど読むだけで理解したり実践したりするのは難しい。近くに実践してる人がいて、その人に指導してもらえるといちばんいい。ってむかし小熊くんがいってた。いってなかったかな…」 / Twitter

2020-12-09

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの性質を表現する技術を高める必要があるとますます思う。コードを書いているときに頭の中で考えていることを内省すると、欲しいものを思い浮かべつつ、よく知っている部品(言語要素やライブラリ要素)をどう組み合わせればいいかを考えている。これを整理・分析すれば改善ポイントがわかる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「B どんな部品があるかを知ることは難しくないように思うけど、それがどんな性質を持っているかを十分に理解することを含めていうと結構難しいし、思ったほどはできていない。どこまで知っていればいいかというバランスもそれほど明らかじゃない。[意味論]」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「C は部品の種類と関係してる[型]。D は改めていわれることがあまりない印象だけど、思いつくことは努力できないので支援が必要[パターン]。E は認識が薄いし結果を知ることも難しい[合成]。でも実行すればかなりわかる。実行でわかることしか見ていないという話もある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「F 流れ上「組み合わせた結果」と書いたけれど、組み合わせることとは独立していて、コードと欲しいものを比較するという話[検証]。この比較の基準と実際に比較する技術も弱い[テスト・形式検証]。F は A と E に依存している。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A どんな性質をどう表現するか。様々なプログラムについてどんな性質が問題になるか。逆に表現の型からプログラムを整理・分類すると何が見えるか。大きなプログラムは多面的に整理する必要があるのでどう構成すればいいか。などなど十分わかっているとはいえないことがたくさんある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A-F の関係でいうと、欲しい性質の表現の種類に応じてどんな検証技術が使えるか、とか、どういう表現だと検証が難しいとか簡単とかいろいろ知りたいことがある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ことの本質だけを抽出したモデルを作って性質を証明するのはかっこいい。ある例を見てて、ここまで削れるのかと驚いた。モデルを作って性質が示せたら、次はどこまで抽象化(要素や条件を削る)できるかといつでも考えるといいかも。性質がかわったり消えたりするあたりに本質があるのだろうから。」 / Twitter

2020-12-17

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「ある変換を通じて問題を別の世界に移すとそちらの世界では比較的容易に解が得られて、それを逆変換して元の世界での解を得る」というしくみはよくありますね。」 / Twitter
fujim2さんはTwitterを使っています 「@hatsugai それ聞いてなぜかフーリエ変換を思い出しました」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラミングの過程で必要な能力を自分なりに分解・整理してみたリスト。それぞれの項目で具体的にどんな知識やスキルを使っているか。他にはどんな選択肢があって pros/cons はどうか。1つずつチェックすると強化ポイントが見えてくる。 明後日のセミナーでは A, B, C, E, F について扱う。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「振り返ってみると、かつてはこういったものの価値を理解できなかった。極大に停滞してしまう人もよくみる。慣れた居心地の良い空間から外に出るのは不快だし。問題を解決することそのものではなく周辺のものに囚われてしまう人も多い。」 / Twitter

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書こうとしたときに初めて何を書こうとしていたのかを理解したり考えが足りていないことに気づいたりすることはよくある。あるいはコードを書き終えたあとでテストをしたら期待した結果にならず、その原因を探る過程で考えの誤りや考えていなかった点に気づくこともまたよくある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書く前に頭の中で考えていたときには十分見通しが立ってこれでいけると思っていた。でもそうじゃなかった。書いてわかる。表現にはそういう作用がある。でもコードは実行することを目的としているので、何が欲しいのかということを端的に表現する形式としていつでもベストというわけじゃない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「欲しいものが何であるかに集中して表現できる形式を持つと、コードよりも短い時間で表現を作ることができる。どのように結果を得るかという実行を考える部分を省略できるからだ。書いてわかるという作用は持っているので、誤りや考え不足の点を早い段階で気づけることになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「さらに加えて、欲しいものについて2つの表現を作ることができると、それらを比較することで考えの正しさを確かめることができる。書いたコードを見直すのもよいけど、別々の考え方で書いたものが一致することを確認する方が確からしさの度合いが高い。いわゆる検算と同じだ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの表現が表す内容が一致することを確認する方法は2つある。1つはテストだ。コードの他にもう1つ表現を作るのはコストが高いと思うかもしれないが、テストとして再利用できるので無駄にはならない。もう1つが形式検証で数学を使って2つの表現を比較検証することができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「この2つ目の表現はいわゆる仕様のことだ。表現形式として優れているものの1つは論理式だ。使えるようになるには練習が必要だけど、その分恩恵がある。熟練してくれば使いどころもわかってくるので、適切なバランスを選択できるようになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「表現しようとして気づく、テストして気づくに加えて、形式検証(証明)をしていて気づくという第3の機会も手に入る。表現形式の違いが考え方の違いになるように、プログラムの動作を実行を追って考えるという考え方の他に、検証の理論を使って動作を考えるという新しい視野を手に入れられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様というとコードの前に書くものだろうけど、検証という点に限ればもっと自由でよいという考え方もできる。時にコードは十分明解に欲しいものを表すことができる。一方で論理式が複雑になることもある。それでもかまわない。2つの異なる考え方で1つのものを表して比較できればいいのだから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「思考は表現されてはじめて明確になるので表現形式は大事だ。時には表現形式の範囲でしか思考できないことがある。だから表現形式を複数持てば思考を広げられる可能性がある。自分はプログラマなのでプログラミング言語"で"考えがちだけど、論理式も援用するとよりよく対象を理解できることが多い。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「このセミナーでは仕様を論理式で表現する方法と、それをコードと数学的に比較して検証する方法を紹介する。ほんの入り口だけだけど、実際の例を示し、その先に広がるものがイメージできるように構成を工夫したつもり。よかったら参加してください。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「コンパイラのようなプログラムは入力(ソース)と出力(オブジェクト)の関係で正しさを規定・判断することができる.では対話的なアプリケーションやサービスのように継続的に動作するプログラムの正しさはどう考えればいいか.アプローチの1つとしてトレースと模倣というものを紹介します.」 / Twitter
トレース比較器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 シナリオや仕様と設計・実装モデルの振る舞いを網羅的に比較するツールを作るハンズオンセミナーです. https://t.co/ZHttN6rbOF」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間とともに変化する動きを表すプログラムの性質を、時間のない世界に移して議論できるのはほんと不思議で面白いと改めて思う。しかも強力な武器になるわけで。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「理解できないことに出会った時、何なのかわからないけど、きっととても面白いものだという確信があり、それを知りたい・理解したいと思うこの感覚・衝動がたまらない。2つの武器を使って考え道筋を探る。調べて知識を得るのではなく、考えて仕組みを明らかにできるということも不思議で楽しい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「道具箱の中に「証明」も入ってて、必要な時には使えるというのでいい。要はバランスだと思うけど、まさにそのバランスを見たときに証明よりも証明の"管理"やコード化の部分で誤りが起こる度合いが高い場合も考えられるので、要求が高い場合は全体を通じて面倒を見てくれる統合的な環境がいい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「setq を実装したので不動点コンビネータを使わなくても再帰が書けるようになった。 https://t.co/etuQiP3pD2」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援ツール Isabelle で多重集合(multiset, bag)を表現するときは、要素から自然数(入っている個数)への関数を使ってる。関数の update f(a:=e) で追加・削除等の操作が表現できる。 f(a:=e)(a) = e f(a:=e)(x) = f(x) ... x≠a 空の多重集合は λx. 0」 / Twitter

@nullpo_head

ぬるぽへさんはTwitterを使っています 「障害って単体のソフトウェアのバグだけじゃなくて、むしろ全体のシステムのアーキテクチャの分散設計とかの負荷許容範囲越えで起きることも多いわけだけど、そこの部分をがんばって形式手法なり証明なりで保証する手法ってコストを度外視したとしても何かあるんだろうか」 / Twitter
ぬるぽへさんはTwitterを使っています 「単体ソフトウェアのバグは、お金が無限にあれば仕様を決めて全部coqで書けばまぁ理論上撲滅できそうだが、全体のシステムのアーキテクチャってなんかお金が無限にあっても無理そう」 / Twitter
ぬるぽへさんはTwitterを使っています 「量的な問題に関する手法何も知らねえ、素朴に空間計算量で抑えて保証する以外はどんな手法があるんだ」 / Twitter
ぬるぽへさんはTwitterを使っています 「そもそも定数も良くわからいしいい感じにリソースを見積もれる形式手法あるのかな」 / Twitter

@shibu_jp

渋川よしきさんはTwitterを使っています 「クロージャの変数束縛を明示的に書くC++と、他の言語では0番目の引数として内部処理されるレシーバーを明示的に書くPythonを書くと、オブジェクト指向も関数型も表記の違いだけでCPUの気持ちになるとどっちも大差ないのでは、という気がしてる」 / Twitter
渋川よしきさんはTwitterを使っています 「大体のフレームワーク、リクエストとレスポンスはオブジェクトだよね。 : 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ https://t.co/n1oZfhqzY1」 / Twitter
2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ
渋川よしきさんはTwitterを使っています 「ユーザーのコードを書く部分がテンプレートメソッドから、状態を持たない関数だったりトランザクションスクリプトになっただけで、オブジェクトは今でもそこにいるよ。」 / Twitter

histric

histric-0

꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「今日のハイライト 「Rustなどで低レイヤ触って定理証明や型システムもやっている人と一緒にやりたいんですけど、なかなかいなくて」 「その二つを同時にやっている人は居ないでしょうね、OSですら居ないのに(笑)」」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「無敵のエーアイってやつでお気持ちから形式的証明を錬成してくれ」 / Twitter
市川 真一さんはTwitterを使っています 「@s_isshiki1969 無限に並列・並行化するとかの、リソースを浪費するような一般化をしないようにすれば、手続き型じゃなくても OK なんじゃないかと思うんですよ。80 年代よりはマシンの性能も向上してますし、個人の PC で走らせる(ゲーム以外の)アプリに的を絞れば、あまり性能を求められない場合もあるでしょうから」 / Twitter
市川 真一さんはTwitterを使っています 「@s_isshiki1969 @zacky1972 そうですね。でも、私のやりたいパラダイムは最適化方面じゃなくて、停止性の検査とか簡易な形式検証なんです。C に変換するのは実用性を目的としている都合で。日本語で総合的な解説も見かけないので、個人的にまとめたいと思っています。誰かが先にやってるとしても」 / Twitter
水之人さんはTwitterを使っています 「@ponkotuy Haskellに詳しくないのであまり込み入って言及出来ないですが其の辺りは「immutablity の保証方針次第」な気もしないでもないような... 例えば「対象をコピーする事で必ずimmutable」とか「対象を常にreadonlyとする事でimmutable」とか 前者ならコピーが大量に生じますが後者ならそうでないので」 / Twitter
市川 真一さんはTwitterを使っています 「@ponkotuy 高頻度で更新する必要がある共有データがあるなら厳しそうな気がします。immutable にすると lock する必要がなくなって並列度を上げて高速化できるということなら、理解できなくもないです」 / Twitter
ТагсановさんはTwitterを使っています 「位相空間論の中で閉じた問題を解くのは苦手で未だに全然できないけど、そこで得られた開集合閉集合コンパクト連続性etcの直観は他の分野の数学を学ぶときに無くてはならないイメージ 頑張って結局まだ苦手意識強いけど、基礎として活きてるなというのはすごい実感する」 / Twitter
HenninggさんはTwitterを使っています 「オブジェクト指向でfirst classな関数をメソッドを一つもつクラスとして表現するの、最初に見たとき理にかなってるなあって思った覚えある」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「最近のプログラミング言語に求める事 1. 十分に強力な静的 null 検査 + null合体演算子 + null条件演算子 2. async / await 3. JSON 親和性 みたいな感じ。これらを備えてるかどうかでかなり使い勝手に差が出る。で、最初の2つはともかくJSON親和性によってもう TypeScript 一択みたいな事になる。」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@zacky1972 @n_soda @_ko1 Coq (の中の Gallina) は ML っぽい言語ですが停止性がありますね。普通のプログラムっぽい関数と証明項の両方に使われて、停止性がないとなんでも証明できる意味のないシステムになるからですが。」 / Twitter
停止性がない 何でも証明可能 - Google 検索
AzさんはTwitterを使っています 「call/cc が直観主義論理と古典論理の橋渡しになる理由を考えたが、停止しない計算を許す事で「計算できない」ものの証人を偽装できるからという理解になった」 / Twitter
てらモス♋️さんはTwitterを使っています 「テストはその性質上、網羅性を確保するのは不可能であって求めるべきでなく、少数のテストケースで致命的な破綻を検出できる事に専念するべきだが、それはドメイン知識と一体なので難しくなりがち…(´・ω・`)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Swift に限らず菱形継承とかの面倒臭さは周知されてるけれど、そこで構造体ってだけじゃなくてレシーバーみたいな仕組みだったり mix-in みたいな仕組みだったり、別の表現で多態が表現できるのでどちらにせよなんらかのモデリングはされるはずだけど、そのうれしさが素朴な比喩使われると伝わらず」 / Twitter
まちカドおるみんさんはTwitterを使っています 「いやまあ別に C で構造体でも継承ベースの多態は実現できるけれどもね……」 / Twitter
てらモス♋️さんはTwitterを使っています 「プロセス間で通信をするのにMPIは必要ないし、複数のスレッドを起動するのにOpenMPは必要ない、という当たり前のことをまとめないといけない…(´・ω・`)」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「OOPを型システムから見て何のメリットもないというのは当たり前の話で、だってOOPという概念を生み出した張本人が「型?まあ苦痛以外の何かを生むようになったら使ってもいいけど?」みたいなこと言ってるぐらい、OOPと型システムは全然関係ない話なので、そりゃ型システムを基準にすればOOPは空だろ。」 / Twitter
satさんはTwitterを使っています 「goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式ではないのでこれまたキツい すばらしい抽象化ともいえる」 / Twitter
goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式 - Google 検索
蒲地 輝尚さんはTwitterを使っています 「Windowsプログラミングしてた時代に散々目にした単語だけど、そんな由来だったとは。「夜中まで議論してて頭が働いてなかったのでthinkの過去形としてthunkという単語を作って名づけてしまった」」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「やりたいのは、USBドライバのコードの読みやすさ改善。USBデバイスの初期化って、USBデバイスに対するデータ送信、その応答が来たら解析し、またデータ送信、みたいに細切れになっていて、関数が呼ばれる順序が非常に分かりにくいので、コルーチンで直列に書けないかな、という。」 / Twitter
かずみん☆めい。さんはTwitterを使っています 「@rui314 コンピュータサイエンスの基本は数学. 整数論, 素数論, 離散数学, 有限体(ガロア体), 離散対数, 楕円関数, 計算量, シャノン定理, 乱数論, 待行列, 統計, 通信路モデル, 確率的アルゴリズム, アルゴリズム停止性.→基礎がないと誤り訂正符号/DCT圧縮/共通鍵暗号系/公開鍵暗号系/CDMA/の本質は理解不能」 / Twitter
lotzさんはTwitterを使っています 「すごい!HaskellのブロックUIプログラミングを試せるWebサイトがある❗️ Haskellは宣言的だからこういうのと相性良さそう👀 画像は不動点再帰を使った階乗計算w 今は動いてないみたいだけど変換されたテキストを見たら想定通りのコードになってたから多分動く😂 https://t.co/QfVZYMSdIh https://t.co/B0BfpUcxLc」 / Twitter
Blockly for Haskell
黒木玄 Gen KurokiさんはTwitterを使っています 「「なんでもかんでもクラスを作ろうとする」病はおそらく21世紀現代においてもクラスベースのOOPに留まっていることが原因で生じている。 #Julia言語 は最初からクラスベースのOOPを捨てて、Common Lisp譲りの多重ディスパッチを採用したので、エコシステムがそうならずに済んでいる。」 / Twitter
かめさんはTwitterを使っています 「これに関連してpythonやjuliaのようなパッケージシステムがある言語ならDIしたけりゃパッケージごと差し替えれば良くね?って疑問がある。なんでもかんでもクラスを作ろうとするのは理解できない。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「プログラミング言語が多重ディスパッチ(多重メソッド)にも対応しているだけだと不十分で、エコシステム全体が多重ディスパッチに基く設計になっていることがとても大事。 #Julia言語 は、クラスベースのOOPも言語的にサポートすることをせずに、多重ディスパッチでやって来たので大丈夫。」 / Twitter
貫通弾の撃てる双剣さんはTwitterを使っています 「連想配列が順番保持すると思っちゃう人がいる Ruby「そう思う人がいるならそういう挙動にしちゃおう」 Go「そう思う人がいなくなるように毎回ランダムにしちゃおう」 どちらが正しいとかじゃなくて色んな考えがあって好き」 / Twitter
開発コアメンバが語るRubyの今とこれから(後編) - @IT

histric-1

水無麻那さんはTwitterを使っています 「ところで,関数型プログラミング is ... (僕はいまだに手続型と関数型の違いが分からないんですが,Haskell で書くプログラムは関数型で良い?)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 個人的には、局所的なプログラミングスタイルとしてしかなくて、少なくともプログラミング言語の分類として使用するのはもはや無意味だとずっと思っています。対立するのが(昔の)JavaやCだったころならともかく、今や大抵の言語が局所的なプログラミングスタイルとしての「関数型」を支援しますし」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep そもそも『局所的なプログラミングスタイルとしての「関数型」』というのすらどういうものかあんまり分かってないんですが,これってどっかに定義がまとまってたりするんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 公式なものとかは知りませんが、 https://t.co/YvKE5eentP でなされている説明でいつも認識しています。」 / Twitter
関数型プログラミングは本当に難しいのか | 日経クロステック(xTECH)
水無麻那さんはTwitterを使っています 「@igrep つまり, &gt; プログラム中の記述のほとんどが「関数」で占められているスタイルを指す。 これでいいんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい。私はそう思っています。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep これって,OCaml の Printf.printf 使ったやつとかは関数型プログラミングの範疇には入らないってことなんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、だから「局所的なプログラミングスタイル」だと思っています。プログラム全体がそうなると言うことはなくてあくまでも純粋な計算で書ける部分は純粋な関数で書きましょうという話です。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep つまり,関数型プログラミングでの関数って,純粋な関数しかほんとに含んでないってことでいいんですかね? で,純粋な関数を割と自由に扱えたり定義したりしてたら,関数型プログラミング?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、純粋な関数を主に使えていれば関数型プログラミング」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep それって,つまりクロージャ相当の機能が無名関数の公文付きで入っていれば,大体関数型プログラミングと呼んでいいってことでいいんですかね?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana ええっと、もしかして関数型プログラミング「言語」の話をしている?私はあくまでもプログラムの「書き方」の話をしているんですけども。「言語」の方であればそうだと思います。今は多くのプログラミング言語がクロージャーも高階関数も取り入れたから「言語」をそう呼ぶ意味が減りました」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep つまり関数型プログラミングというのが純粋な関数を操作してると本人が思ってプログラムを書いてるなら関数型プログラミングと言えるのか?例えば,クロージャを C で実装して,それを使ってプログラミングしてるなら関数型プログラミングと言って良いのか?ってところが聞きたかったんですが」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep そうだということでいいんですよね?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、そう思います。さすがにCだとやりづらそうな気はしますが。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep C だとやりづらいというのは,クロージャみたいな機能が入ってなくて,クロージャの free とかも余計に必要だからって認識でいいんですかね? 後,ここら辺の本人が純粋な関数と捉えられるなら関数型プログラミングという話って,」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep どこかの文献に載ってたりするんでしょうか?数学的な関数といった場合には,記法とかそれが実際に純粋な関数にならない場面があるかによらず,本人が純粋な関数を使っていると思っていればそうというのは,さっきの記事からは読め取れませんでした (無料版しか見れてないですが,有料版の方にある?)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 文献を挙げるなら、元記事が言及しているスライドがあったはずなんですが見当たらない... 逆に言えばそれしかないです。 それとすみません、「本人がそう思っていれば」の件は言い過ぎでした。「実際に純粋な関数か」の方が重要です。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep 中野先生の「関数型プログラミング今昔」でしょうか? https://t.co/MaoeCXt6xS この話,後半は参考文献が載ってるんですが,前半は特に参考文献ないんですよね (中野先生自身,最初に個人的な見解と断り入れてますし)」 / Twitter
120901fp key
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana それです!」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep なるほど,ありがとうございます」 / Twitter
水無麻那さんはTwitterを使っています 「関数型プログラミングの定義,TL の反応見る限り,掘っても虚無になるだけな気がしてきたので,触れてはいけない話題なんだなあという感が出てきた.やはり,機械学習しつつ,話し相手の定義を慎重に探っていくしかないのか」 / Twitter

histric-2

HexirpさんはTwitterを使っています 「関数型プログラミング言語は、関数型プログラミングを推奨しているプログラミング言語であると、ウィキペディアでは定義されています(宣伝)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「俺「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要」 俺「横から失礼します。言語仕様ではTCOを規定しているが実際の実装の多くはそれに準拠していない(ので事実上使えない)という場合はどうなるのでしょう」 俺「うむむ」」 / Twitter
HexirpさんはTwitterを使っています 「もう一度: 関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
HexirpさんはTwitterを使っています 「https://t.co/KWas1Vaao6 この記事は、オブジェクト指向プログラミングの本質を、データとロジックを結び付けることであるとしている。そして、これを過剰に推し進めているか、あるいは言語仕様によって強制されているのが、現在のオブジェクト指向プログラミングの失敗であるとしている。」 / Twitter
Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。 – ゆびてく
HexirpさんはTwitterを使っています 「この問題を、データとロジックの結びつきを正しく管理することで解決しようとするのが、ドメイン駆動開発であるのかもしれない。データとロジックの結びつきを捨てることで解決しようとするのが、関数型プログラミングであるのかもしれない。」 / Twitter
HexirpさんはTwitterを使っています 「個人的には関数型プログラミングが好きだけど、これには限界があって、プロジェクトが巨大になると、情報を隠蔽する上手い仕組みが必要になることが分かっている。この段になってドメイン駆動開発を導入していけば良いのではないだろうか。」 / Twitter
HexirpさんはTwitterを使っています 「関数の性質を何でもかんでも保証したり、依存型を使って不正なプログラムを作れないようにするという方向性は、データとロジックを不要に結びつけてしまうという罠があるのではないだろうか。」 / Twitter
HexirpさんはTwitterを使っています 「という訳で、 Intheo 言語は二層にしようと思う。 Elm 言語に高級なモジュールシステムと多重度による線形型を足したものが第一層である。それに、さらに依存型や cubical なノーテーションを加えたものが第二層である。」 / Twitter
HexirpさんはTwitterを使っています 「第一層で書かれた定義は、第二層の定義として翻訳される。そして、その翻訳された定義に対して、第二層で停止性や性質などの証明を書くことができる。」 / Twitter
HexirpさんはTwitterを使っています 「関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「「極力イミュータブルにしてインスタンスの存在自体が状態を表す」てのは、まさにFPであって、FPとOOが直交していると言える根拠だとも思うんですよね。 しかし、普段これを自然に実践しないとわかりにくい感覚のような気もします。」 / Twitter
スマートコンさんはTwitterを使っています 「Haskell は Monad が注目されがちだけど、実用的・汎用的なプログラムを書いていくには、やっぱり Applicative や Semigroup, Monoid, Foldable, Traversable あたりの知識はあった方がよく、この辺のコンビネータを使ったり自前のデータ型に対して使ったりできるかが脱初心者の一つの基準といえそう」 / Twitter
kinabaさんはTwitterを使っています 「関数に==定義するの、RTした記事のように入力が有限(Bounded)の時に限定して全検査するしかないかと思いきや、位相空間に思いを馳せることで、たとえ無限でも (Integer→Bool)→Integer 同士の等価判定とかできるみたいな話があって面白いです https://t.co/dh4Kftznlp」 / Twitter
Topology for functional programming
d.y.d.
kinabaさんはTwitterを使っています 「https://t.co/JKnbKiq3yT 読んだ。α変換の下で同じなプログラムを同じ値に潰すハッシュ関数を書いたよという話。変数を名前文字列やde-Bruijn indexとかで表すのでなく、部分木中での出現位置がどこであるかを表す木であらわすと大体全部普通に木をハッシュする感じの作業に帰着される。」 / Twitter
Hashing Modulo Alpha-Equivalence - Microsoft Research
sumimさんはTwitterを使っています 「抽象データ型のスーパーセットのオブジェクト指向でも継承は(それ無しでは辛いけど^^;)要件ではなくなって久しいので(ある意味80年代のクックの言語機能としてのインターフェースの提案の時点で既に…)、今オブジェクト指向は抽象データ型はおろか「手続きを内包した構造体」で十分用は足りる状態」 / Twitter
sumimさんはTwitterを使っています 「そして、足りない部分は強力な型システムで補ってください…となっていて、関数型(これまた参照透明性という原義(?)から外れて、強力な型システム+αが本来みたいに語られがち)…と、なんだか区別が付かなくなってきているのが現状か。」 / Twitter

histric-3

滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,今日の講義で #LISP 評価器の構成について話をした時,その場のノリで『evalは制御装置(CU)でapplyは演算装置(ALU)みたいなもん』(そしてenvは主記憶装置やレジスタ)って言い方をしたんだけど,そういう対応付けって聞いたことないな.あながち間違いでもないとは思うのだけれども.」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「コンスセルとcar/cdr/cons/eq/atomの実装完了.コンスセルは #クロージャ で実現.あらためて #ラムダ式 万能説.#LISP #Excel #lambda #programming #プログラミング https://t.co/M3joGvuxQ7」 / Twitter
リスト処理関数(cons,car,cdr,eq,atom)実装例まとめ - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、関数型言語に対する恐怖と似てる…「状態保持は、引数/返値のみ」なので、頭の良い人だけ使えるジャグリングを頑張れ(=バカは状態の連結が作れない)みたいな(たぶん偏見)」 / Twitter
mizutaniさんはTwitterを使っています 「散々サーバレスアーキテクチャなアプリを作りまくってきた自分が言うのもだいぶなんですが「やっぱり巨大なサーバレスピタゴラスイッチを作ると辛いな!」という境地に至りました。こちらからは以上です。」 / Twitter
mizutaniさんはTwitterを使っています 「関連するLambda functionが片手で数えきれなくなったらサーバーレスは諦めましょう」 / Twitter
ken\dさんはTwitterを使っています 「@m_mizutani Step functionの自前実装はそれはそれで大変そうですけど、どうなんでしょう👀」 / Twitter
mizutaniさんはTwitterを使っています 「@ken5scal Step functionはテストが難しいのと状態遷移管理が辛くなってくるので、自分はここぞという時にしか使いたくない印象ですね…。あと細かいロジック処理は結局Lambdaを呼び出すことになるので、関数の数が増えると依存関係ムズイになりがちというのが難しいところです」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「処理系の中間言語を curry 化しています。target 言語は uncurried なので、いまは一度 curry 化したものをきれいに uncurry 化するのを書いてる」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「大昔に学んだ catamorphism とか融合変換とかそういうのを実装していて楽しさはあるんだけど、もう GHC の上に乗っかってその拡張のひとつとして実装した方が楽だった気もしてきている」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ああ,チャーチ真理値にすると条件分岐構文が要らなくなるなあ.#CharLISP に組み込めるかな?アレの場合,引数なし #ラムダ式 でくくるのはさほど煩雑ではないのだよな. #lambda #programming #プログラミング https://t.co/s2B5i7YZU3」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「というわけで #CharLISP 仕様変更.構文がラムダ式とquote相当のみに.quoteにしても数値演算特化にするならば要らないのだよな.car/cdr相当も.ただ,そこまですると #LISP じゃなくなって『CharLambda』とかに改名することに.んー.#lambda https://t.co/OlrYk0NRmq」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「更に仕様変更中.そういえばラムダ式も定義時はquote状態(?)だよなということを流用して文字列生成を関数実装.空リストも0で代用することにしたら,あら不思議,構文はラムダ式のみに(意図的).仕様もだいぶすっきりしたなー(そして勘違い).#LISP #lambda https://t.co/kjtsIvPM2L」 / Twitter
エヌユルさんはTwitterを使っています 「GitHub Copilotの必要性が今ひとつわからなかった理由が分かった 私がHaskell文化圏に属してるからだ Haskellでは既にボイラープレート的なコードの生成はGenericsやTemplate Haskellでやらせる でも多くの言語ではボイラープレートたくさん必要だからコード生成ツールが必要だったんですね」 / Twitter
エヌユルさんはTwitterを使っています 「Template Haskellを持ち出すまでいかなくても、HaskellやScalaのような高階関数が気軽に使える言語はコードを中に包み込ませるから不要に思えるんだよね」 / Twitter
エヌユルさんはTwitterを使っています 「どっちかと言うとHaskellにほしいものはプログラムからコメント生成定期 型で情報を管理しようとしてるから逆に型でキャッチできないデータ(部分関数などによる純粋関数の例外生成、遅延評価によるスペースリークの可能性、計算オーダーとか)は見えづらいんだよなあ」 / Twitter
関数型プログラミングの復活 - QCon Plusハイライト
水波ユキノ@岡山&Python勢&ごちうさ難民☕さんはTwitterを使っています 「@yasuo_ozu 見たところたしかSQLは宣言型だっけ? 何がしたいかを書いておいて実装は気にしなくてもいいって言う。(実装は場合によっては気にしたほうがいいし、詳細は見れるっぽい?)」 / Twitter
UkicodeさんはTwitterを使っています 「大体、論理型であるPrologがないとは何事か。Prologは手続き型か関数型、どちらに分類されるんですかね・・・?」 / Twitter
UkicodeさんはTwitterを使っています 「@ababupdownba https://t.co/33IhRQdKkc 一応誤解のないように言っとくとネタのもとはこれです。」 / Twitter
プログラミング言語を手続き型と関数型、静的型付けと動的型付けで4象限に分類する - Qiita
Miura HidekiさんはTwitterを使っています 「プログラミング言語にキャッチフレーズをつけたの大抵的外れだから無視していいと思う。 (LispのAI言語とかPrologの論理型言語とか)。無視していいのはキャッチフレーズで言語そのものではないのに注意」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「関数型言語の方が一般には扱いやすいんだけど、計算量に敏感なことをやろうとすると線形型がほしくなってきてしまうみたいで、手続き型言語とどちらがいいかは実は自明ではなかった気もしてきてるよ」 / Twitter
mod_poppoさんはTwitterを使っています 「プログラミング言語を 正格と非正格、純粋と非純粋 で4象限に分類する」 / Twitter

histric-4

こんばんわChern-Simons汎関数ですさんはTwitterを使っています 「生成消滅演算子とか昇降演算子思いついた人ほんとすごいわ」 / Twitter
こんばんわChern-Simons汎関数ですさんはTwitterを使っています 「作って減らして減らしたら増やしてとやってると神になった気持ちになれる」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「"if-then-else"という表現は発明だった。通常の英語では、elseを接続詞として使うことはできない。初期のプログラミング言語では "if not" とか "otherwise" などと書かれていたが、ALGOL60の時代には"else"が一般化していた。しかし最初に使いだした人物とその理由は不明。 https://t.co/TYJgdIIuip」 / Twitter
if-then-else/if-then-else.md at master · e-n-f/if-then-else
しいたけさんはTwitterを使っています 「forだろうがmap/filter/reduceだろうが、何の意図でそのコレクション操作してるのかが読み手にわかるようになってるコードであるかが大事だと思います map{}.filter{}.reduce{} ってつなげまくって書いた結果、本人しか理解出来ないコードとか山ほどあるし、自分もそういうのをたくさん生み出してきた」 / Twitter
KanatokoさんはTwitterを使っています 「go言語にmap/filterが無い理由、みなさんきちんと理解しましたか?僕はロブ・パイク先生の口からはっきりとききました。「forの方が速い(軽い)から。」現場からは以上です。」 / Twitter
KanatokoさんはTwitterを使っています 「Rubyなんかはコンピュータリソースよりプログラマの人的リソースの方が貴重、っていう考えでああなっているので、Ruby好きな人がgo言語好きになるわけないって話でしたね…」 / Twitter
KanatokoさんはTwitterを使っています 「go経由でRustにたどり着いた人がJavaを選ばなかった理由について一言。「メモリ喰いすぎ」。やっぱそこか〜w」 / Twitter
KanatokoさんはTwitterを使っています 「IoTみたいなのとかメモリ消費量を気にしたいケースだとRustが良いみたいね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「ところで現代のプログラミング言語はバグを出しづらく設計されるべきです。実行速度みたいなのはオマケ。バグが一番困るからバグを出さないべき。ただ普通の人はCoqでwebアプリが書けたりはしないわけで、バグさえ出なきゃ書きづらくてもいいかというとそれも極端。」 / Twitter
7594591200220899443さんはTwitterを使っています 「「普通にスラスラと書いたプログラムが自然とバグのないプログラムになっているプログラミング言語」が現時点での良いプログラミング言語であると言えよう。スラスラ書けないのはダメだがバグまみれなのもいかん。」 / Twitter
7594591200220899443さんはTwitterを使っています 「※JavaやらRubyは現代にカウントしてません。」 / Twitter
令掛ベインさんはTwitterを使っています 「木を巡回しながら配列やマップにデータを集めて最後に構築するという流れ (いわゆるWriter) は頻出なのに言語側でサポートがなく書きづらいという問題がある #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「次は型検査を並列化したい。メタ型ごとにserialを発行する部分があって、その数を事前に予測するのが難しい (モジュール内の関数に推論された型スキームに依存してるから)。メタ型のアイデンティティを (モジュールID, serial) にすればいけるか #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「並列化作業の意図: データ構造をイミュータブルに保つことで並列化しやすいという話を実際にやったことがないので試してる #milone_lang」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「良いOOPLには凄いパワフルな性質があるのに、それが顧みられないままFPL良い!というのはちょっと違うと思うのですよ(OOPが良い論とはまた別な事に注意)。 特にモジュールシステムという点でいうと、クラスとモジュールがある程度一致してるとかは便利な事多いと思うんですよ。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「逆にパワフル過ぎる故に使いづらいのではないかという疑いもあったりするのですが、それはそれとして。」 / Twitter
令掛ベインさんはTwitterを使っています 「「すべてのフィールドの型が比較可能なら判別共用体も比較可能」という判断をメモ化再帰によって行うとき、無限再帰を防ぐためにその型を比較可能と仮定してから処理を行うとすると、最終的に比較可能じゃなかったとき誤った記録がメモに残ることがありうる #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「ひとまずメモを毎回捨てると解決する。どこかの型で比較可能でないという判断が出たら、その時点でメモが不正になっても、最終結果も比較可能でないという判断にしかならないから問題ない #milone_lang」 / Twitter
令掛ベインさんはTwitterを使っています 「以前にこういうのはコールスタックを使うといいよみたいなペーパーをみたけどブックマークしてなかった……」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ビル・ゲイツとポール・アレンが開発した、Altair 8080用 BASICインタプリタの完全逆アセンブル+解説。入出力と数値演算を含めてもコードは4Kバイト弱しかない。 https://t.co/bYHAYDsXQ0」 / Twitter
Altair BASIC 3.2 (4K Edition)
Jun MakinoさんはTwitterを使っています 「ダイクストラの引用としては Programming in Basic causes brain damage というのをよくみるが、これは存在しないっぽい。実際にいってるのは次のでもっとひどい。」 / Twitter
Jun MakinoさんはTwitterを使っています 「引用: It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.」 / Twitter
Jun MakinoさんはTwitterを使っています 「あくまでも 1975年のBASICとか1975年のFORTRANなのでそこは注意。」 / Twitter
Azure Functions デプロイ スロット | Microsoft Docs
ボックス化とボックス化解除 - C# プログラミング ガイド | Microsoft Docs

histric-5

mod_poppoさんはTwitterを使っています 「ボックス化する言語実装だとタプルを多段にすると(使い方にもよるけど)効率落ちそう」 / Twitter
mod_poppoさんはTwitterを使っています 「ボックス化する言語で(a,b,c,d)を(a,(b,(c,(d,()))))にすると要するに単方向連結リストなのでaを参照するのとdを参照するので所要時間が変わる。2要素タプルの使い方を変えて((a,b),(c,d))みたいにバランスするようにすればマシになりそうだけどカンマに単純な結合性を与えられない」 / Twitter
mod_poppoさんはTwitterを使っています 「ちなみにF#のタプルは要素数が多い時に後ろの方を別のオブジェクトで表現するらしい」 / Twitter
κeenさんはTwitterを使っています 「タプル作る度ポンイタ挟むんでパフォーマンス気にしてる言語だと(a, (b, c))じゃなくて(a, b, c)の3要素タプル使いたいんですよ」 / Twitter
κeenさんはTwitterを使っています 「Rustは両者同じメモリ表現になるから(a, b, c)を(a, (b, c))とすることも出来たと思うけど多分特別扱いが増えるとか作者の好みとか色々な理由でnつ組ネイティブに入れてるんじゃないかな」 / Twitter
Masaki HaraさんはTwitterを使っています 「@blackenedgold (i16, i32, i16) だとならなくないですか」 / Twitter
κeenさんはTwitterを使っています 「@qnighy あれっ、タプルもpackするんでしたっけ(playgroundで確認したら8と12になったので正しそう)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@blackenedgold そうですね。nタプルはn要素のジェネリックな構造体とだいたい同じです。」 / Twitter
κeenさんはTwitterを使っています 「へー」 / Twitter
READPERMISSION Function (Record) - Dynamics NAV | Microsoft Docs
GET Function (Record) - Dynamics NAV | Microsoft Docs
mosss0321さんはTwitterを使っています 「たぶん多くのWeb屋が真に求めているのは、多少遅くてもいいからメモリ意識しなくてよいRust(もうそれはRustではない) OptionとResultとtraitとcargoとif式とパターンマッチとモジュールシステムとasync/awaitが欲しかったのよ...。」 / Twitter
timelerさんはTwitterを使っています 「Rustに関して言えば、メモリー管理機能がある意味剥き出しであることを無視できれば高級言語屋から見てもいい言語のように見える。 メモリー管理機能さえ気にしなければ…」 / Twitter
medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Cをゴリゴリやってきた低レイヤーがいう「Go/Rustって良いよね!」を高級言語しか知らないWebエンジニアが真に受けると大火傷するから気をつけて」 / Twitter
mosss0321さんはTwitterを使っています 「kotlinが結構近しい気がするけどjvmとide恐怖症なのでまだしっかり触らないでいる。」 / Twitter
冬はうどんさんはTwitterを使っています 「@mosss0321 つまりWebエンジニアが求めているのはF#なんですね!! #fsharp」 / Twitter
🍁🍇公共情報基盤に取り組む四弦/超越基底:いぶきさん.dart (佐藤陽花)さんはTwitterを使っています 「@mosss0321 Dartは現在後者2つは満たしている...」 / Twitter
mod_poppoさんはTwitterを使っています 「このツイート、関数型言語なら当てはまるのがいくつかありそうな気がするけど、ガチガチの関数型言語は除外したいとか暗黙の条件があるのかな」 / Twitter
mod_poppoさんはTwitterを使っています 「「モジュールシステム」って名前空間およびアクセス制御程度で良いのか、それともMLのようなリッチなモジュールシステムが欲しいのか、どっちだ」 / Twitter
令掛ベインさんはTwitterを使っています 「漠然とした考えとしてプログラムの外側をimperativeに作って内側をfunctionalに作るといい気がしているけど、外側と内側の境界がよく分からないし、その正当性もよく分からない」 / Twitter
KaboさんはTwitterを使っています 「Dart/FlutterでよくあるfromJson()、toJson()というメソッド名に違和感がある。 fromMap()、toMap()のほうがいいと思うんだけどな。」 / Twitter
kawasimaさんはTwitterを使っています 「Domain Modeling Made Functionalに載っているドメイン記述のためのミニ言語の書き方をまとめてみました。 https://t.co/CHBMmdxzKZ」 / Twitter
ドメイン記述ミニ言語 - kawasima
kinabaさんはTwitterを使っています 「https://t.co/Jrv27rIaOR nullable型を入れる話なんだけど「引数のどれかは非null」「こっちがnullじゃないならこっちも」的な暗黙はありがちなので、そういう複数の式間のnullable依存関係も扱える型推論システム。Bool論理式同士のunificationは解ける、というハンマーで釘を叩いて回ってる系論文?」 / Twitter
Relational nullable types with Boolean unification | Proceedings of the ACM on Programming Languages
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Robloxで使われていた言語Luauがオープンソース化された。Lua 5.1をベースに高速化したもので、APIのほとんどは互換性があり、加えて型検査機能がついている。Robloxのゲームはすべてこれで書かれており、Roblox Studioもこれで書かれているらしい。 https://t.co/k8wYhU1DHR」 / Twitter
Roblox/luau: A fast, small, safe, gradually typed embeddable scripting language derived from Lua

histric-6

mod_poppoさんはTwitterを使っています 「空配列を返すべき状況でNoneを返すな高校校歌 あぁ空配列を返すべき状況でNoneを返すな 俺の貴重な時間をそんなつまらんデバッグに割かせるな これだから静的型のない言語はダメなんだ(中指を突き立てる)」 / Twitter
mod_poppoさんはTwitterを使っています 「静的型があっても暗黙にnullableな言語だと同じようにダメ」 / Twitter
mod_poppoさんはTwitterを使っています 「Luaも5.4で擬似乱数アルゴリズム変えてるな(5.3まではC言語のrandのwrapperだったのが5.4でxoshiro256**に変わった)」 / Twitter
mod_poppoさんはTwitterを使っています 「再現性のある擬似乱数が必要なら言語実装のバージョンを固定するか自前で乱数生成器を持つ必要があると思ってるんだけどそうでない考えの人もいるのか…?」 / Twitter
エンジニア志望の学生100名が回答した、プログラミング言語トレンド発表:EdTechZine(エドテックジン)
io language
令掛ベインさんはTwitterを使っています 「宣言的な記述から探索するときはバックトラックの範囲をなるべく制限しておくとデバッグしやすいい。カットオペレーターとか、パーサーコンビネーターのattemptみたいな感じ」 / Twitter
retrageさんはTwitterを使っています 「基本的にスクリプト言語には適当に書けることを期待していて、速度は期待していない」 / Twitter
田中ひさてるさんはTwitterを使っています 「むかし UML を正しく書けばソフトウェアの設計を完了できるとされた幻の MDD 技術があったんですよ。具象の動作テストなしで UML を正しく書ければですが。ノーコード開発にコーディングと同じポテンシャルを求めるというのは、つまりそういう話なわけで」 / Twitter
Shiro KawaiさんはTwitterを使っています 「これはこの条件だけでは仕様が曖昧なので、Schemeでは引数でいくつかの解釈を指定できるようにしてますね https://t.co/g0veZpmsMK」 / Twitter
SRFI 152: String Library (reduced)
いわたさんはTwitterを使っています 「投票とってみるか。 「与えられた文字列をカンマでsplitした結果を配列で返す」というメソッドがあるとして、空文字列を指定した結果は」 / Twitter
渋川よしきさんはTwitterを使っています 「JavaとGoはモジュール⊇パッケージだが、PythonとNode.jsはパッケージ⊇モジュールである。」 / Twitter
ノーンさんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
uint256_tさんはTwitterを使っています 「vicisで関数作るの難しすぎる (builderを作っていないため; 今までIRをパースしてた)」 / Twitter
uint256_tさんはTwitterを使っています 「#vicis 比較的簡単にIRを生成できるようになりました。 https://t.co/qI3QGZqWPg」 / Twitter
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「プログラミング言語におけるラムダ式、ただのインライン関数(ラムダ式的に活用されてない)」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「Jikka が Haskell で書かれているのは、Haskell だと構文木をいじるプログラムがとても書きやすいためです。代数的データ型とやりたい放題できるパターンマッチ、あとモナドが... 続き→https://t.co/3JyTmbcjvd #マシュマロを投げ合おう」 / Twitter
JikkaのJissouにHaskellを用いている理由はありますか? | マシュマロ
Keigo ImaiさんはTwitterを使っています 「@yoriyuki 「続き」ってだけだと思います。無理矢理考えるとしたら、cbvやcbnや遅延評価のλ計算を埋め込む話がWalker&amp;Sangiorgiの最後の方に載っていて、そこではλ項をエンコードしたP自体を継続として扱うために名前kでk.Pみたいにプレフィックスする…みたいな話は出てきたような気はします」 / Twitter
Keigo ImaiさんはTwitterを使っています 「CCSとかπ計算 (とかセッションタイプ) の a.P の P も継続 (continuation) ってよく呼ぶんだけどプログラミングの話題にのぼる文脈では束縛できたり切り取れたりするアレのことを意識するので書くたびに「いけるかな…?」感ある」 / Twitter
yoriyukiさんはTwitterを使っています 「@keigoi 理論的に関係あったりするんでしょうか」 / Twitter
Miura HidekiさんはTwitterを使っています 「これを区別するために束縛出来たり切り取れたりするのは 1st class continuation とフルネームで呼ぶべきだろうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「正式には 1st class citizenかな?」 / Twitter
まりもさんはTwitterを使っています 「機械語やアセンブラでのコーディングが大変だからプログラム言語が作られたのに、プログラム言語に複雑で高度な概念や大量の規則を導入して再び大変にしてどうするのだろう」 / Twitter
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「関数型言語で x list list を扱うと頭がこんがらがるので、x listに対する処理を別モジュールXに切り分けてX.t listとして扱った方がいい」 / Twitter

histric-7

Akira Kawamata (川俣晶)さんはTwitterを使っています 「MINIMAL BASICとはECMA-55のことらしい。だったら、N-BASICでの"世界標準のMicrosoft BASIC"というのは何だったのか。よほどECMA準拠の方が世界標準に近いぞ。 https://t.co/MesDf8uwNQ」 / Twitter
ECMA-55 - Ecma International
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Node.js アプリでセキュリティを確保するためのチェックリスト。4つのレベル (アプリケーション、エラー処理、サーバおよびOS) において推奨されるパターンと、それを実現するためのライブラリについて解説している。 https://t.co/KZatP6UQTn」 / Twitter
Nodejs Security - OWASP Cheat Sheet Series
mod_poppoさんはTwitterを使っています 「C++のADLは引数→関数の方向だから関数の引数の名前空間を省略したいというのとは方向が逆な気がする。コンテキストから名前空間を推論するのはSwiftのenumがそれっぽい(けどSwiftのやつの詳細をよく知らない) #satysficonf」 / Twitter
mod_poppoさんはTwitterを使っています 「Pythonに限らず高級言語同士の接続はJVMみたいな共通基盤がない限り辛いのでプロセスごと分けてしまうのが筋が良いのではと思っている」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「コンパイラの文脈で zombie process ならぬ zombie pointer という言葉があると知った。」 / Twitter
zombie pointer - Google 検索
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 まさに。そして、今日にあるようなプログラミング言語で数学を使わずにプログラムが書けるように見えるとするならば、そのプログラミング言語がそうした「数学臭さ」を覆い隠すようなことを裏でたくさんやっているものが成功しているということに他ならない、という。」 / Twitter
hsjoihsさんはTwitterを使っています 「このコメントかなりいいな。乗算には、整数とアーベル群の要素を入力として受け取りアーベル群の要素を返す「足し算の繰り返し」と、アーベル群の自己準同型を二つ取ってアーベル群の自己準同型を返す「変換の合成」の二種類がある、という言語化。 https://t.co/BSnrsEEVPh」 / Twitter
real analysis - Is There a Natural Way to Extend Repeated Exponentiation Beyond Integers? - Mathematics Stack Exchange
a21_txt01 - essen-wiki
a21_txt02 - essen-wiki
Kazuho OkuさんはTwitterを使っています 「時折、レビューコメントで主張するんだけど、ロジックではなく型定義にコメントを奢るべきだと思ってる。名前ベース (nominal) な型定義を使うプログラミング言語においては、散在しがちなロジックと異なり、型定義は一回しかできないから、どこを見ればいいか(更新すればいいか)明確になる」 / Twitter
Yuta SAWAさんはTwitterを使っています 「@kazuho ロジックにつけるコメントはwhyで、型定義につけるコメントはwhatとかな気がします。」 / Twitter
ギャランドゥ14RさんはTwitterを使っています 「@kazuho コレはよく分かります。 大昔にテーブル(データ構造)が決まれば、処理は出来ていると言われた事を思い出します。 アルゴ重視のプログラム除きますが。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ソフトウェアにおける認可 (authorization) はなぜ難しいのか? 1. 決定を実際に守らせる (enforce) 箇所がプログラム中に複数存在している。 2. 許可に必要な情報がアプリケーションと一体化していて分離しにくい。 3. 何を許可する・しないというモデル化がそもそも難しい。 https://t.co/8PauE5FlNZ」 / Twitter
Why Authorization is Hard
渋川よしきさんはTwitterを使っています 「個人的にはマイクロサービスに慎重になれってのは技術が解決すると思っていて、Railsみたいなオールインワンなフレームワークで、KubernetesとかHelmまで内包していて、モノリスに書いているけどライブラリが勝手にコンテナに分割して非同期にしてくれて・・・みたいな時代は来ると期待してる」 / Twitter
渋川よしきさんはTwitterを使っています 「Javaのsynchronized、みたいな感じで、statelessってラベリングしたら勝手に処理系がインスタンス分けて欲しい。」 / Twitter
立派プログラマさんはTwitterを使っています 「だいたいno cost abstractionしようと思ったら現状分割コンパイルを諦めるしか無いんじゃ(cf, C++, Rust」 / Twitter
Miura HidekiさんはTwitterを使っています 「それ of それ。分割コンパイルに対する代案としてJITコンパイルがあるけどこれもno cost abstractionが制限されるしな」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcも色々分割コンパイルのやり方を考えたけど、思いつかなかった。」 / Twitter

KOBA789さんはTwitterを使っています 「REST API の仕様を読んだとき、メンタルモデルとしてオブジェクトグラフを構築し、次にそれらの API をどういう順序で呼び出すかを考える。REST API を使う場合はそれらの作業に多くの資源を費やす。理解を促すために自然言語による説明を追加し、さらに資源を費やす。GraphQL はこの悪習を止めた」 / Twitter
RihoさんはTwitterを使っています 「1人開発で0から開発しているプロジェクトあるんだけど、Railsでテーブルとモデル生成してGraphqQLのコマンドでQuery作成してAPI作成完了。GraphQL codegenでTypeScriptの型定義とリクエストコードを自動生成、Chakra UIでフロント実装してる。便利な世の中ですね…」 / Twitter
shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
成瀬さんはTwitterを使っています 「@shinh っ XSLT」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@nalsh はい。それは僕の世界観では、失敗作ですね。。もちろん、XSLTによってたくさんの研究が…みたいなことはあるんでしょうし、その価値を否定するものではありません。というかXSLT自体は良いと思います。ただまあ、使いやすいものではないですよね。僕が今欲しいのは使いやすいものなのです」 / Twitter
YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「XSLT を使えば、クライアントサイドで XML から HTML に変換できるよ」 エンジニア「サーバサイドでやれば良くない?」 〜 今 〜 エンジニア「Vue を使って、クライアントサイドで JSON から HTML に変換するよ!」 XML「解せぬ」」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLは、おっしゃる通りDDDではクエリモデルを扱うものという位置付けにするのが良いでしょう。(続) #Peing #質問箱 https://t.co/ei7KiT6D0k」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLを更新系に使用すると、DB構造を把握してかなり直接的に更新する形になります。そのような方法は、ドメインオブジェクトDB構造を意識させない形で実装して制約を表現する、という実装とは衝突してしまい、相性が悪いため、DDD前提であれば更新系には使用しない方が良いでしょう。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「一方、参照系としてはCQRSが必要になる参照系のパフォーマンス課題を解決する1つの方法としては検討可能です。ただし、少しでも複雑な内容が入ったら更新系と結合テストをして整合性が壊れないように気を使う必要があります。導入に時はテストをどうするかと言う点も考慮しましょう。」 / Twitter
FUJI GoroさんはTwitterを使っています 「これはむしろ逆だと思っていて、「サーバーサイドとクライアントサイドを協調しやすくして、クライアントサイドは徹底的に薄くする」ためのQUERYだったりGraphQLだったりだと思っています。」 / Twitter
おれきゅーさんはTwitterを使っています 「GraphQLとかHTTPのQUERY見てて思うんですけどフロントにそんなにデータ持ってきて加工する複雑さ持ち込みたいモチベ強くあるんです? UIのstate管理するの大変だからデータはサーバー側によしなに都合の良い形で返してきてほしいって気持ちのほうが強いと思ってたけど」 / Twitter
FUJI GoroさんはTwitterを使っています 「対局にあるのが「綺麗なRESTful API」で、APIがシンプルなぶん、クライアントサイドで並列リクエストや細かなエラーハンドリングなど画面ごとに複雑な処理が必要になってしまう。そして行き着く先は画面ごとのスーパーエンドポイントを作ることになり、サバクラ双方でアジリティが失われる。」 / Twitter
mattnさんはTwitterを使っています 「「生 SQL 書きたくねぇ」で ORM が出てきた様にいずれ「生 GraphQL 書きたくねぇ」って言われてライブラリ出てきてたら、正直それ REST で良かったって話になったりしない?」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou 生SQLを書きたくないのは、普及の要因のひとつではあるかもしれませんが、ORMが出てきた理由ではなかったような。そもそも初期のORM、生SQL書いてませんでした?実装を意識せずにすむようになるなら、より進化したことになるので良い事なのでは。」 / Twitter
mattnさんはTwitterを使っています 「@potimarimo @EzoeRyou そうすね。ORM にもクエリは生で書かせて fetch した物をオブジェクトで扱わせる物と、クエリジェネレータ持ってる物の両方ありますね。そうなった際には中身が GraphQL でも REST でも、なんなら gRPC でもなんでもいいんですけども。その為に HTTP QUERY が入るのは、なんか違うなぁと思った次第。」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou ORMがあったおかげで、NOSQLやらJSONやらと混ぜてもあまり混乱していないように、上手いこと実装を隠蔽できるように進歩していくといいですね。そうすると、プログラマーが直接叩くことを考えないで済む分よを速いプロトコルが流行るかもしれない。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Tokieda Yukinobuさんによる「forまたはwhileを使わずに1から10の合計を計算するプログラムを書くことは可能でしょうか?」への回答 https://t.co/twU3ctmfHh これ、末尾再帰じゃないですよってコメントを書いた方がいいのだろうか?コメントで末尾再帰について雄弁にかたっているので...  (こんわく」 / Twitter
forまたはwhileを使わずに1から10の合計を計算するプログラムを書くことは可能でしょうか?に対するTokieda Yukinobuさんの回答 - Quora
父さんはTwitterを使っています 「プログラミング適正の話 ・変数 ・関数 ・分岐 ・ループ ・コールバック ・再帰 といくつも壁があります。特にコールバックや再帰は、極端な話情報系の大学生でも分からない人は分からないです(マジで) 逆に、数学等で再帰的な考え方に慣れている人は一瞬で適応したりします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「この先だと  バックトラック  継続 あたりかな?並列処理だといろいろあるけど範囲が広すぎるし直交してる気がする」 / Twitter
Miura HidekiさんはTwitterを使っています 「人類に継続を完璧に理解できている人がいるとは思えないが、居るんだろうな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「構文木とか項の種類を表すとき最近まで直和型+パターンマッチ原理主義的だったんだけど木の部分集合(値とか)を考えるときは部分型の方が効くなあ〜となってScalaやKotlinのsealedの気持ちになるね」 / Twitter

コンパイラ

Compiler Explorer
WebAssembly Studio
WebAssembly/proposals: Tracking WebAssembly proposals
memory64/Overview.md at main · WebAssembly/memory64
FadisさんはTwitterを使っています 「gccでcall-used register wipingできるようになった話。call-used register wipingは関数からretする直前にその関数が使ったレジスタの値を消す処理を挿入する。ROPを難しくする効果と漏れてはいけない情報が関数の外に漏れるのを防ぐ効果があり、LLVMは以前から対応していた https://t.co/9uWZxg2ddJ」 / Twitter
The Missing Semester of Your CS Education (日本語版) · the missing semester of your cs education

error-tolerant parsing

Parsing Algorithms | Hacker News
井山梃子歴史館さんはTwitterを使っています 「Ungrammar( https://t.co/vSiuWSh6EC )の考え方は面白いと思っていて,これは言語定義におけるインターフェイスと実装の分離なんだよね」 / Twitter
Introducing Ungrammar
井山梃子歴史館さんはTwitterを使っています 「Lossless Syntax Tree構築できて盛り上がっている https://t.co/dtqrtUWGtQ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「∀y. (fun x -&gt; y) = fun z -&gt; y のパース結果」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「参考文献: https://t.co/ENSRkFmgZB https://t.co/6vwxnPwhlj」 / Twitter
rust-analyzer/architecture.md at master · rust-analyzer/rust-analyzer
Persistence, façades and Roslyn’s red-green trees | Fabulous adventures in coding
井山梃子歴史館さんはTwitterを使っています 「repo: https://t.co/4ofcm40Y8T」 / Twitter
pratt/lib.rs at abec6651daf21d2a081c3d9026b08bd0c44b3dd1 · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「error-tolerant parsingで盛り上がっていけ https://t.co/SJoiUI5XYO」 / Twitter
TypeProf for IDE: Enrich Development Experience without Annotations
.NET Compiler Platform SDK 構文モデルを使用する | Microsoft Docs
rust-analyzer/syntax.md at master · rust-analyzer/rust-analyzer
error-resilient - Google 検索
kateinoigakukunさんはTwitterを使っています 「世の中のほとんどパーサはIDEを書くのに向いてない。SwiftSyntaxは偉すぎる」 / Twitter
kateinoigakukunさんはTwitterを使っています 「error-resilientでトビリア付きのCSTを吐けるパーサジェネレータが必要」 / Twitter
おもちメタルさんはTwitterを使っています 「@kateinoigakukun 生成文法系のツールって正常系以外は知らんってなりがちな印象」 / Twitter
kateinoigakukunさんはTwitterを使っています 「@omochimetaru そうなんですよ。一応エラーリカバリも研究されてるんですけど、いかに少ない手数でパースできるようにできるかをメトリクスにしてるんですよね。 IDE的にはリカバリじゃなくて、明らかに壊れてたらコンテキストをクリアして次のトークンをパースして欲しいんですよ。」 / Twitter
おもちメタルさんはTwitterを使っています 「@kateinoigakukun 最小のエラーの解釈にするみたいな感じかな なんか文法定義文法自体を拡張してコンテキストのヒントみたいな概念をいれたりする方向が良さそうだなあ」 / Twitter
kateinoigakukunさんはTwitterを使っています 「@omochimetaru そんな感じになるんですかねぇ。 この辺はとっくの昔に研究され尽くされてると思ってたのに全然そんなことなかった。」 / Twitter
おもちメタルさんはTwitterを使っています 「@kateinoigakukun 未踏だからSwiftも手書きなんじゃないか 家庭くんの卒業研究で世界狙うのにちょうど良さそう」 / Twitter
kateinoigakukunさんはTwitterを使っています 「@omochimetaru 世界狙うか…」 / Twitter
おもちメタルさんはTwitterを使っています 「@kateinoigakukun 😲」 / Twitter
ぱそこんわからんねこさんはTwitterを使っています 「そういえばASTの文字列出力に詳しい有識者いませんかというやつがある(括弧が必要以上に多く出力されてしまい困っている) https://t.co/wXK1bBzdvy」 / Twitter
mod_poppoさんはTwitterを使っています 「HaskellのshowsPrecみたいに演算子の優先順位を表す整数を持って回ればいいのでは」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「ブロックを {} などの括弧で定義する言語、} が抜けたりするだけで、構文解析が失敗して、変数、関数の定義にたどり着けなくなったりするので、コーディング環境とは相性が悪い感じはある。その辺、インデントで構造定義する言語なら・・・と思ったりもするんだけど、ゴミしか残らないのが困りもの。」 / Twitter

API Call & Debugger

Debug

その他

Debug Adapter Protocol

Official page for Debug Adapter Protocol
Specification
vain0x/debug-adapter-examples: Examples of Debug Adapter Protocol (DAP) implementation
Debug Adapter Protocol
GraalVM
Debugger Extension | Visual Studio Code Extension API
なぜVisual Studio CodeでJavaの開発ができるのか? - Qiita
DAPとdlvでデバッグする
Rubyの新しいデバッガを試してみる - Qiita

インスペクタ - Google 検索
Miura HidekiさんはTwitterを使っています 「プログラム開発のツールでプロファイラとインスペクタはなぜか扱いが軽い印象だが、非常に重要だと思うんだよね。インスペクタが充実しているのは、Allegro Common LispとSmalltalkと言う印象」 / Twitter
svetlyak40wtさんはTwitterを使っています 「@miura1729 LispWorks too. For example, it has a GUI inspector showing the widgets tree of your application: https://t.co/wOdG48Az3G」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 smalltalk の inspectorで evalするとき、selfがそのオブジェクトになってるのは秀逸ですね。selfにメッセージを送ることで、自分がそのオブジェクトなんだよって気持ちを味わえる!?」 / Twitter
Intel Debug Technology
インライン値ビュー - 公式ヘルプ | CLion
IBM Knowledge Center - マルチスレッド・プログラム・デバッガーの開発
LLVM Project、次世代デバッガ「LLDB」を開発へ | OSDN Magazine
c - reference to external function in disassembly code - Stack Overflow
デバッグ - Security Akademeia
USDT probe - Google 検索
プログラマーの大敵“デバッグ”、AIで自動化へ向けてIntelが研究中 〜Intel、開発部門での研究成果発表イベント「Intel Labs Day 2020」 - PC Watch
QEMUのトレース機能でOSのデバッグを支援する - uchan note
FreeBSDのオンラインカーネルデバッグ with QEMU - うたもく
VirtualBoxのビルトインデバッガを使いたい | mrtska.net
Xamarin.Forms 5.0: デバッグ機能の改善、新機能、新しいコントロール
Program Paper-Slide-Show
blog/jit-debug.md at master · herumi/blog
Chrome DevTools 89の新機能
Angular公式のデバッグツール「Angular DevTools」、Googleが公開。有志による日本語ガイドも - Publickey
「Angular」公式の開発支援拡張「Angular DevTools」が公開 ~有志による日本語ガイドも - 窓の杜
「Google Chrome 96」が正式版に ~開発ツールに自動ダークテーマのエミュレート機能 - 窓の杜
「Google Chrome 97」が正式版に ~「Critical」1件を含む37件の脆弱性に対処 - 窓の杜
Google Chrome「バージョン97」公開。Critical 1件を含む計37件の脆弱性修正 - PC Watch
Google Chrome 96安定版がリリースされて「戻る」「進む」の動作が高速化・ただしTwitterやDiscordの表示に問題が発生するというバグ報告も - GIGAZINE

MS

その他

GFlags - Windows 10 hardware dev
ページヒープ (PageHeap) によるヒープオーバーランの検出 - Web/DB プログラミング徹底解説
PageHeap ユーザー ガイド
ダンプファイルに保存されたイベントログを取り出す – Japan WDK Support Blog
プロセスデバッガを作ってみる (1/2):CodeZine(コードジン)
スタックの取得(ネィテブデバッガを作る2) – code-lab.net
Win32デバッグ(11)・・・番外編: vanillaの日記
Windows Vista で local kernel debug を行う - NyaRuRuが地球にいたころ
Detecting debuggers by abusing a bad assumption within Windows
CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
CRT ライブラリを使用したメモリのリークを検出 - Visual Studio | Microsoft Docs
Visual Studio 2017 15.9プレビューではC++デバッグ機能が拡張された
IDA Support: Freeware Version
OllyDbg Q&A (Digital Travesia)
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
プログラムの実行内容を記録して再現する「タイムトラベルデバッグ」(Time Travel Debugging)機能、マイクロソフトがVisual Studioにプレビューで提供開始 - Publickey
Debug live ASP.NET Azure apps - Visual Studio | Microsoft Docs
ぬるぽへさんはTwitterを使っています 「考えたことがなかったけど配布にあたって確かにトレーサーは大事だなぁとなったうえで、それを突き詰めてMSがユーザーのダンプからバグ発生時まで巻き戻せるTTDを開発してたのを思い出した REPT: Reverse Debugging of Failures in Deployed Software | USENIX https://t.co/56FXkjdfdC」 / Twitter
REPT: Reverse Debugging of Failures in Deployed Software | USENIX
ぬるぽへさんはTwitterを使っています 「ちなみにこちらの手法は特許がとられており我々は使用することができません・・・」 / Twitter
ぬるぽへさんはTwitterを使っています 「@kazuho この手法はオーバーヘッドがかなり少ないのと、おそらく唯一のマルチスレッドプログラムにも適用できる手法なんですよね シングルスレッドでもいいならMozillaのrrが有名ですね」 / Twitter
NMIスイッチでWindowsのシステム・ダンプを取得 - KMCA
EnC Part 3 – The CLR – Shotgun Debugging
c++ - How does "Edit and continue" work in Visual Studio? - Stack Overflow
Speed up your .NET and C++ development with Hot Reload in Visual Studio 2022 | Visual Studio Blog

backtrace

C++ Windowsでスタックバックトレース | puarts.com
windows - Win32 - Backtrace from C code - Stack Overflow

CodeView

yasm/modules/dbgfmts/codeview at master · yasm/yasm
get function by filename and line number - primitive: blog
5.4 COFFシンボル テーブル
6.1.2 デバッグ タイプ
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
デバッガ
デバッガ:デバッグ情報

PDB

The PDB File Format

The PDB File Format — LLVM 6 documentation
Microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
The MSF File Format — LLVM 6 documentation
The PDB Info Stream (aka the PDB Stream) — LLVM 6 documentation
UuidCreate function (Windows)
IMAGE_DEBUG_DIRECTORY structure (Windows)
The PDB TPI Stream — LLVM 6 documentation
The PDB DBI (Debug Info) Stream — LLVM 6 documentation
CV_CPU_TYPE_e

== Microsoft PE/COFF Specification ==

Standard ECMA-335
The Module Information Stream — LLVM 6 documentation
The PDB Public Symbol Stream — LLVM 6 documentation
The PDB Global Symbol Stream — LLVM 6 documentation
The TPI & IPI Hash Streams — LLVM 6 documentation
CodeView Symbol Records — LLVM 6 documentation
CodeView Type Records — LLVM 6 documentation
CodeView.pdf

YAML

第1回 YAMLライブラリのしくみ:言語別 YAML用ライブラリ徹底解説|gihyo.jp … 技術評論社
YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita
YAML - Wikipedia
C++ から YAMLファイルを読み込む « Stop Making Sense
Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
Kazuho OkuさんはTwitterを使っています: "YAML でファイルincludeするなら、 <<: !include foo.yaml みたいな形が一番自然なのかな"
Kazuho OkuさんはTwitterを使っています: "“Includable YAML - r7kamura per second” https://t.co/LNy0XJ9flP"
RAML (software) - Wikipedia
h2o/yoml: YAML Object Model Layer - a DOM-like interface for YAML
YAML で静的データ管理
YAMLの概要 | backport
Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
YAMLのエイリアスでAnsibleファイルの重複を減らす | Developers.IO
YAMLに対応したAWS CloudFormation デザイナーを試してみた | Developers.IO
PyYAMLが非常に遅かった - ゲームエンジニアな日々
じゅげむさんはTwitterを使っています: 「YAML1.2からはYAMLはJSONの完全なスーパーセットになったと んで1.1と1.2でfloatの正規表現が異なる‥ https://t.co/EOKlHJTI12」 / Twitter
quoting strings composed of digits · Issue #98 · yaml/pyyaml
Rui UeyamaさんはTwitterを使っています 「I'm still writing a linker for macOS, and I wrote a YAML parser for it. macOS uses YAML files to describe shared object files. But I think YAML was a wrong choice. JSON would have been much easier to parse! https://t.co/jKDlIyl47N」 / Twitter
mold/yaml.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「I believe YAML is not LL(k). It's not even CFG? The spec (https://t.co/tIwfc61rW6) is too long and complicated.」 / Twitter
YAML Ain’t Markup Language (YAML™) revision 1.2.2

DIA SDK

Debug Interface Access SDK
はじめに (Debug Interface Access SDK)
関数 (Debug Interface Access SDK)
Debug Interface Access SDKを使って内部関数の名前解決を行う - るくすの日記 ~ Out_Of_Range ~
[Win32] [COM] How to read PDB Symbol file using DIA SDK | すなのかたまり

llvm-pdbutil - PDB File forensics and diagnostics — LLVM 6 documentation
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
LLVM Project Blog: LLVM on Windows now supports PDB Debug Info
LLVM、WindowsのPDBに対応 | TECH+
LLVMがPDBフォーマットのドキュメント化とYAMLへの変換を実現
Portable PDBの紹介
c++ - clang 5.0 pdb support as of 2017 - Stack Overflow
シンボル ファイルの作成と取得 | デバッグ テクニック
ペンギンさんのツイート: "PDBファイルを不要と言い張って作らないことを勧める人がいるとはたまげたなぁ・・・。 Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定 by @lainzero on @Qiita https://t.co/Nrm7wWVsOU"
ペンギンさんのツイート: "PDBファイルがない場合、万が一問題が起きた際に逆アセンブルしながらデバッグする羽目になるので、リリースビルドでも作成して手元には残しておくべき。作らない方向ではなく、PDBファイルに含まれる内容、そのリスクを踏まえてどう取り扱うべきなのかまとめてあると良さそう。"
ペンギンさんのツイート: "PDBファイルはビルド時に生成されるGUIDがEXEのDebug DirectoriesテーブルとPDBファイルに埋め込まれて一致しない場合VSやWinDbgで読めないので、後でビルドしなおせばよいというものでもないのが面倒。"
ペンギンさんのツイート: "リリースビルドでPDBは要らないという人は、作って捨てるアプリケーションしか開発したことがないと言ってるようなもの、というのは言い過ぎか・・・。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPプロセスにロードされた自作Win32DLL。 VC++でUWPプロセスへのアタッチはできるが、DLL用pdbが違うと言われてシンボルが取り込めない謎…何だろう?"
Understanding symbol files and Visual Studio’s symbol settings | Azure DevOps Blog

WinDbg

ライブデバッグ

ライブデバッグ - Security Akademeia
WinDBGを使ってnotepad.exeをデバッグする – PAYFORWARD
Windbg – Japan WDK Support Blog
wt : WinDbg のライブデバッグ時のトレースに使えるコマンド

Time Travel Debugging FAQ – Debugging Tools for Windows
User-mode memusage - NyaRuRuが地球にいたころ
Time Travel Debugging recording question – Debugging Tools for Windows
Text highlighting in WinDbg Preview – Debugging Tools for Windows
Time Travel Debugging queries – Debugging Tools for Windows
WinDBG. From A to Z!
WinDbg でスタックトレースを得るには | MDN
WinDbg Preview 1.1804.18003.0 Release Notes – Debugging Tools for Windows
ITプロ(非開発者)向けWindowsカーネルデバッグ事始め (1/2):山市良のうぃんどうず日記(125) - @IT
WinDbg Preview 1.1805.17002.0 Release Notes – Debugging Tools for Windows
TTD (Time Travel Debugging) を用いてアプリケーションクラッシュの原因を調査
WinDbg Preview 1.0.1807.11002 Release Notes – Debugging Tools for Windows
Time Travel Debugging (Preview) の Lab – Japan WDK Support Blog
WinDbg Preview 1.0.1810.2001 Release Notes – Debugging Tools for Windows
WinDbg Preview 1.0.1812.12001 and new extensibility interfaces – Debugging Tools for Windows
New C++ library for extending the debugger data model – Debugging Tools for Windows
Makoto Kato ︎︎さんのツイート: "ふとEdgeのgithubを覗いたら、WinDBGでv8をデバッグするためのWinDBG Extensionが存在してて笑った https://t.co/LUlVxfkHOt"
MicrosoftEdge/JsDbg: Debugging extensions for Microsoft Edge and other Chromium-based browsers
Makoto Kato ︎︎さんのツイート: "IE6やってるときにdumpファイルからHTMLツリーを生成するWinDBG拡張作ったりいろいろやったなぁ。辞める時に全部削除したけど (オレオレツールだったので)"
Best places to learn more about WinDbg – Debugging Tools for Windows
.gdb_index - Google 検索
Tim MisiakさんはTwitterを使っています 「New WinDbg Preview just released, version 1.2110.27001. Not too many visible improvements, but the latest version of the engine has a lot of stability improvements and better support for Linux coredumps, including support for ".gdb_index" for faster loading of DWARF symbols!」 / Twitter
WER を使って Dump を採取する | Japan Developer Support Core Team Blog
Dump ファイルの取得 | Japan Developer Support Core Team Blog
WinDbg で Dump ファイルを開く | Japan Developer Support Core Team Blog
WinDbg で EXE や DLL を Dump ファイルのように開く | Japan Developer Support Core Team Blog
YurikaさんはTwitterを使っています 「📝 みんな大好き WinDbg の中の人によるWinDbgの動作解説講座 が始まったよ https://t.co/ktNuxHMtJ3」 / Twitter
A first look into how WinDbg works - YouTube

x64dbg

x64dbg
x64dbg/x64dbg: An open-source x64/x32 debugger for windows.
x64dbg
x64dbg.pdf
Reverse Engineering Tips: An Introduction To x64dbg
klks/checksec: x64dbg plugin to check security settings
X64dbg Code search :: Add-ons for Firefox
セキュリティエンジニア向けツール(Windows編) - Qiita
x64dbg:デバッガの例
オープンソースのデバッガー x64_dbg を用いて、ソースコードを編集することなく、アプリにパッチを適用

MASM

C++ デバッグ構成のプロジェクト設定
/Z7、/Zi、/ZI (デバッグ情報の形式)
/DEBUG (デバッグ情報の生成)

SYMBOL_INFO structure (Windows)
IMAGEHLP_SYMBOL64 structure (Windows)
ICallFrame interface (COM)
Kleckner-CodeViewInLLVM.pdf
MSVC compatibility — Clang 6 documentation
Windows support — lld 5 documentation
Windows support — lld 6 documentation
KMC Staff Blog:LLVM/Clang 3.7.1をMSYS2でビルド
New Extensions and Samples GitHub Repo – Debugging Tools for Windows
入谷 優さんはTwitterを使っています 「ブレークポイントのドラッグ アンド ドロップって、有りそうで無かった機能なのですね。配信の問題も解決したようなので、早速更新しています。」 / Twitter
アプリケーション検証ツール - Windows drivers | Microsoft Docs
GFlags と PageHeap - Windows drivers | Microsoft Docs
シンボル ファイルと Visual Studio のシンボル設定を理解する | Japan Developer Support Core Team Blog

バイナリエディタ

binary.ninja : a reverse engineering platform
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
wxMEdit - クロスプラットフォームのテキスト/Hex エディタ
hltj/wxMEdit: wxMEdit, a cross-platform Text/Hex Editor, an improved version of MadEdit
Stirlingの詳細情報 : Vector ソフトを探す!
Veles - Binary Analysis Tool - CodiSec CodiSec
codilime/veles: Binary data analysis and visualization tool

Terminal

Jun Rekimoto : 暦本純一さんはTwitterを使っています 「@a_saitoh 勢い余ってEmacsのソースコード(Gosling版)も読んだが、これもHCI研究者になるに際して大きな資産となった.. シリアル回線で画面を最適に再描画するために動的計画法を使うみたいな悪魔度コードもあって楽しい。」 / Twitter
download
clever hack to efficiently update the screen · Issue #15 · dominictarr/hipster

ORC

Naoya HoriguchiさんはTwitterを使っています 「/proc/pid/wchan がしばらく前から壊れていて、どうやら ORC unwinding https://t.co/pyOpCwN34j というものが関係しているようなので、調べ始めた。こういう低レベル感ある話題に関われると勉強になってよい。」 / Twitter
9. ORC unwinder — The Linux Kernel documentation
Naoya HoriguchiさんはTwitterを使っています 「ORC data というのがカーネル独自のデバッグ情報だというのはわかるけど、ORC ってなんの略かなと思ったらファンタジーに出てくる獣的な意味のオークだった。ELF、DWARF ときて、ORC ということですな。」 / Twitter

DWARF

デバッグ情報の分離

Clang command line argument reference — Clang 13 documentation
Ways to Compile with Clang on Windows | Metric Panda Games
llvm-objdump - LLVM’s object file dumper — LLVM 13 documentation
Debugging Options (Using the GNU Compiler Collection (GCC))
GDB Internals - Table of Contents
objcopy(1) manページ
Gcc: ビルドターゲットの外部でgccデバッグシンボルを生成する方法は? | Code Hero
Files (Debugging with GDB)
Separate Debug Files (Debugging with GDB)
[gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

DWARF

DWARF 3.0 Standard
DWARF 4 Standard
DWARF 5 Standard
Download DWARF Standards
DWARF Git Repositories - dwarf-doc.git/summary
DWARF Extensions
DwarfExtensions - elfutils
yasm/modules/dbgfmts/dwarf2 at master · yasm/yasm
デバッグ用フォーマット、DWARF と STAB
DWARF - OSDev Wiki
LLVM: include/llvm/BinaryFormat/Dwarf.h Source File
DWARF debugging formatを利用する - Qiita
PE勉強会#3参加メモ - やる気のないはてだ(A boring diary)
PE勉強会ネタ帳 - 七誌の開発Wiki
objdump (GNU Binary Utilities)
objcopy (GNU Binary Utilities)
AMD Extending DWARF To Better Handle GPU Debugging, Continues Collaborating With GCC & LLVM - Phoronix

.gdb_index section

.gdb_index - Google 検索
Tim MisiakさんはTwitterを使っています 「New WinDbg Preview just released, version 1.2110.27001. Not too many visible improvements, but the latest version of the engine has a lot of stability improvements and better support for Linux coredumps, including support for ".gdb_index" for faster loading of DWARF symbols!」 / Twitter
Index Files (Debugging with GDB)
gdb-add-index(1) - Linux manual page
gdb-add-index man (Debugging with GDB)
Index Section Format (Debugging with GDB)

WebAssembly

WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
DWARF for WebAssembly

GAS 疑似命令

CFI

Using as: CFI directives
CFI with Abbrevs - Dwarf Wiki
ImperialViolet - CFI directives in assembly files
CFI support for GNU assembler (GAS)
Andreas Krebbel - [PATCH] Add .cfi_val_offset GAS command.
assembly - GAS: Объяснение .cfi_def_cfa_offset - Qaru
[PATCH] Unwinding CFI for x86_64 signal frame (__restore_rt)
F/OSS study : [DWARF] Call Frame Information
Anitha Boyapati - Testing Call frame information in .debug_frame section
Anitha Boyapati - Re: Testing Call frame information in .debug_frame section
CFI - Call Frame Information
[Resolved] CCS: Object file contains invalid call frame information at .debug_frame - Code Composer Forum - Code Composer Studio - TI E2E Community
CFI - Call Frame Information | AcronymFinder
How can I disable CFI directives on gas assembler output - Programming - Linux Tips
[llvm] r211272 - Emit DWARF3 call frame information when DWARF3+ debug info is requested
[llvm-dev] [cfe-dev] Call frame information query
Vineet Gupta - .debug_frame not generated by ARC gas
linux-2.6.33/CFI_ADJUST_CFA_OFFSET() - コグノスケ
Using as: Gnu Assembler(GAS) Directives CFI - godjesse - 博客园
Debugging with GDB: 21.3.13 CRIS
0xfee1dead

gccのアセンブル出力を解析する時は-gオプションが便利
定数を返すだけの関数のアセンブリコード – ゴミ箱
Using as
Loc_mark_labels - Using as
Loc - Using as
Section - Using as
CFI directives - Using as
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Byte - Using as
File - Using as
Global - Using as
Ident - Using as
Long - Using as
Size - Using as
Sleb128 - Using as
String - Using as
Text - Using as
Type - Using as
Uleb128 - Using as

Stack frame layout

GNU Compiler Collection (GCC) Internals: Frame Layout
Frame Layout - GNU Compiler Collection (GCC) Internals
Stack frame layout on x86-64 - Eli Bendersky's website
Stack layout

unwind

gcc _Unwind_Backtrace()の謎
LLVMと俺俺ランタイムで例外を実装する(その1) - yutopp's blog
Exception Frames
x86: undwarf unwinder [LWN.net]
Mark J. Wielaard » Blog Archive » Stack unwinding
libunwind LLVM Unwinder — libunwind 7.0 documentation
⚙ D38819 [libunwind] Add support for dwarf unwinding on windows on x86_64
⚙ D38900 libunwind: document tested FreeBSD configs and sort OS list
libunwindstack - platform/system/core - Git at Google

backtrace

[Linux][C/C++] backtrace取得方法まとめ - Qiita
c++ - gcc C ++アプリケーションがクラッシュしたときにスタックトレースを生成する方法crash | CODE Q&A [日本語]
C++で実行時エラーを追跡と特定します - Qiita
C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - アットウィキ
Google Japan Blog: C++ のプログラムのデバッグを楽にする方法
実行中でのコールスタックの取得と表示 - 千里霧中
普通のやつらの下を行け: C でバックトレース表示 - bkブログ

ELF

llvm-readobj - LLVM Object Reader — LLVM 6 documentation
melancholic afternoon
リンカーオプションの指定 - Oracle® Solaris 11.3 リンカーとライブラリガイド
特殊セクション - リンカーとライブラリ
Manpage of ELF
gcc
昔の最近の出来事(2016.02)
ヒープオーバーフローによるGOT overwriteをやってみる - ももいろテクノロジー

__user

Linux システム・コールを使用したカーネル・コマンド
copy_from_user - Linuxの備忘録とか・・・(目次へ)
sparse - 組み込み Linux 開発の手引き - アットウィキ
c - What are the implications of the linux __user macro? - Stack Overflow
__userってなんぞ? - syuu1228's blog
KMC Staff Blog:GCC の名前付きアドレス空間サポート
まさみさんは語りたいさんのツイート: "実は意外とData SegmentとCode SegmentとそれぞれのKernel/User Segmentがあるっていうことを知らない人が多いのでは。"
まさみさんは語りたいさんのツイート: "あと__user ってruntimeでは無意味なんだけど、これも知られていない気がする。実行時に渡されるアドレス情報には__userかどうかが無いので、実行時の値ではなく、コンテキストでしか判断できない。これはデバッグ情報の属性値にも付いていないはず。"
まさみさんは語りたいさんのツイート: "DWARF6とかで追加しないかなー。DW_AT_USER_DATAとか・・・。"
まさみさんは語りたいさんのツイート: "64bitの世の中ではsegmentなんて失われた技術だよねー、みたいに言ってはいけない。あるんだ、まだ。"
まさみさんは語りたいさんのツイート: "KERNEL_DS/USER_DSの話、x86-64でもarm/arm64でも問題にならなさそうなんだけど、そうするといつまでもバギーなコードが治らないっていうことか。"

普通のやつらの下を行け

普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す - bkブログ
普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
普通のやつらの下を行け: BFDでデバッグ情報の取得 - bkブログ
普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ
普通のやつらの下を行け: assert_caller() - bkブログ

KMC Staff Blog

KMC Staff Blog:DWARF
KMC Staff Blog:DWARF 一年生
KMC Staff Blog:DWARF と有限状態機械
KMC Staff Blog:DWARF と有限状態機械 (2)
KMC Staff Blog:DWARF と有限状態機械 (3)
KMC Staff Blog:DWARF 3 の対応言語
KMC Staff Blog:GCC でコンパイルした時のオプションをバイナリファイルから取得する

DSAS開発者の部屋

DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ ftrace で引数を表示する
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ デバッグ情報を得る

LLVM

LLVM Project Blog: LLDB is Coming to Windows
Source Level Debugging with LLVM — LLVM 6 documentation
Clang Compiler User’s Manual — Clang 6 documentation
llvm-dwarfdump - dump and verify DWARF debug information — LLVM 6 documentation
Clang command line argument reference — Clang 6 documentation
LLVM IRにデバッグ情報を埋め込むためにいろいろ調べたときのメモ - 単子葉類プログラマーのメモ
LLVMのデバッガ「LLDB」のWindows版、登場 | TECH+

PDF

_pdf
cbc-gcc.pdf
Debugging using DWARF

Stack Overflow

c++ - What do the CFI directives mean? (and some more questions) - Stack Overflow
debugging - Is there a simple DWARF CFI represenation for functions that set up a conventional frame pointer? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - GAS: Explanation of .cfi_def_cfa_offset - Stack Overflow
stack - In assembly code, how .cfi directive works? - Stack Overflow
What is .cfi and .LFE in assembly code produced by GCC from c++ program? - Stack Overflow
assembly - Why GCC compiled C program needs .eh_frame section? - Stack Overflow
dwarf - Getting value of stack pointer while stack unwinding with dwarf2 - Stack Overflow
x86 64 - Breaking a stack/call frame information chain on ELF/Linux? - Stack Overflow

OSDN

DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
DWARFって何? - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:CIE編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_arangesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_pubnames/.debug_pubtypesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN

Wikipedia

DWARF - Wikipedia
DWARF - Wikipedia

Qiita

デバッグ情報の歩き方 - Qiita
[gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
DWARF情報とpyelftoolsを使ってバックトレースする - Qiita
backtrace with gdb-python-pyelftools

Twitter

Urabe, Shyouheiさんのツイート: "コードの任意の領域に属性を横からつけるの、たぶん理論上はdwarfでできるといえばできると思うが、ちょっとdwarfに手を出す気にはなれないんだよな…"
shinichiro hamajiさんはTwitterを使っています: 「DWARFから型情報拾ってきてC/C++(ひょっとしたら他の言語も)の変数をダンプするというやつ、ちょっと話題になってひさびさに動かしてみたらいくつかバグがあったので修正しておいた: https://t.co/sKFz1f02mH」 / Twitter
shinh/dumper: A variable dumper for C/C++
shinichiro hamajiさんはTwitterを使っています: 「メインはどっちも関数ポインタ関係で、DWARF4で導入された新しいフォーマットをハンドルしてなくてエラーメッセージ出てたので、あとPIE対応されてなかったのと。今なら libdwarf とか使わないだろうなあ……というのが感想だった」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Initial DWARF support has landed in Chrome DevTools! It means that you can resolve stack traces, set breakpoints and step-in/-over source code in C/C++/Rust natively, without generating source maps. https://t.co/s3IwkJV6Tr」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Bear in mind that this should "just work" with native compilers, but on the tooling side DWARF support is still in progress. For example, Emscripten (Binaryen) and wasm-bindgen don't support updating DWARF after transformations, so they won't benefit from this integration yet.」 / Twitter
k0kubunさんはTwitterを使っています 「objdump --dwarf=decodedline の出力をパースするだけの簡単なスクリプトを書くつもりが、これは相対パスを出してくる (DW_AT_comp_dir を使った絶対パスへの変換をやってくれない) ので単体では役に立たないことに気付いてしまった」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun https://t.co/774KyiAKyg とかですかね」 / Twitter
k0kubunさんはTwitterを使っています 「@nalsh このスクリプトは多分、ビルドディレクトリで実行される (少なくとも IO.foreach('https://t.co/GJB4czCRee') が動かないといけないし、decodedlineから出る相対パスと #line がマッチしないといけない) ことを仮定することで僕が言及した問題を解決してる感じじゃないですかねえ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
_ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
_ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter

elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
デバッグ情報を探る 〜.cfi_xx命令の動作〜 - ばびろん's すたっく
Split DWARFを用いてデバッグ時間やメモリを節約 - ホワイトペーパーから - ローグウェーブソフトウェアのブログ
第5章 デバッグ - Red Hat Customer Portal
GNUウイーク - gccのC++化 / gdb7.5 - .mjtの日記復帰計画
k0kubun/dwarftree: A wrapper of objdump --dwarf=info to visualize an object's structure and show code size
はじめてのにき(2020-11-28)

GDB

rr

Kazuho OkuさんはTwitterを使っています 「むしろ時代はgdbでrrとかじゃないのかしら https://t.co/pLLc8yPIP9 https://t.co/i6LiheKfln」 / Twitter
rr: lightweight recording & deterministic debugging
SODA NoriyukiさんはTwitterを使っています 「@kazuho 再現率が低い奴、本番環境で条件に合致した場合にsyslogとかに詳しいログを出すっていう意味でのprintfデバッグなので、gdb仕掛けておくのはちょっと怖くてできません…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda あーすみません単にgdbでしか使えないナウい機能があるよという意味でした」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho いえいえ、record機能、はるか昔に新機能の紹介で見たもののずっと使わずじまいだったのでこれを機会に勉強します!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「トランスポートプロトコルスタック、バグ発現がタイミング依存だからデバッガで停止できないし、ステートリプレイでデバッグできるの神!!!! と思ってるけどまだ使ったことないんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白そう…昔のjockeyの最新版みたいな感じなのかしらん? https://t.co/80TZrdYakK https://t.co/Q23w78K5JJ」 / Twitter
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
SODA NoriyukiさんはTwitterを使っています 「僕はgdbも使ってるけどprintfデバッグでさえも使う老害なので世の趨勢の参考にはならないだろうなあ (再現率が低い奴はデバッガよりもprintfデバッグの方が楽なの…) https://t.co/bJz8gmQIPV」 / Twitter
Shinji KonoさんはTwitterを使っています 「LLVMのdebug用Buildが35GBあったり、Linux kernelが-gだと動かなかったりするのって、ソフトウェア工学的な敗北だと思うのだが もう誰もgdbでdebugなんかしてない 疑惑。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ん?CONFIG_DEBUGINFO=yにしたらデバッグ情報は普通につくと思うのですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@mhiramat 最適化切るとkernelは動作しなくて、最適化ありだと、-g付けても、ほとんどの変数は見えないんです。なのでレジスタ見てキャストで表示する感じ。一部だけ最適化を切るのもだめ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ああ、確かに最適化切ると動かないっていう報告は見た気がしますね…。コンパイラの問題のような気も。」 / Twitter

PEDA

longld/peda: PEDA - Python Exploit Development Assistance for GDB
Linux_Interactive_Exploit_Development_with_GDB_and_PEDA_Slides.pdf
CTFのための gdb/gdb-peda 頻出コマンドのメモ - teriyaki note
gdb-peda インストール for Ubuntu - miyagawNote
gdb-peda 使い方 コマンド一覧 - miyagawNote
ステップ1: Pwn とは|Tech Book Zone Manatee
PwnやReversingに使えそうなデバッガ紹介 - Pwn De Ring

GDB/MI

Debugging with GDB: GDB/MI
CDT デバッガーとのインターフェース: 第 2 回 Eclipse の CDT と MI を使って gdb にアクセスする
5.3.6. GDB の代替ユーザーインターフェース - Red Hat Customer Portal
Debugging with GDB - GDBの要約
Debugging with GDB - gdb/miインターフェイス
Debugging with GDB: 25.4 TUI固有のコマンド
GDB/Machine Interface library / Wiki / Home
GDB’s MI is not a Debug Protocol – Kichwa Coders
autozimu/gdb_mi: A gdb Machine Interface (MI) output parser and session manager.

blog

実践しながら学ぶ Android USBガジェットの仕組み(2):KGDBを使って、Android組み込みボードをリモートデバッグしよう!【前編】~KGDBの仕組みを理解する~ (1/3) - MONOist(モノイスト)
gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する - CubicLouve
gdbで初期設定をAT&T記法からIntel記法に変更する方法 | サラリーマンがハッカーを真剣に目指す
GDBのコマンド出力をファイルに保存する方法 - 技術日誌
objdumpによる逆アセンブルとgdbの命令形式表示の比較 - 技術日誌
実践的低レベルプログラミング
GDBでデバッグするなら-g3オプション - ククログ(2013-05-08)
gdbでデバッグするためのgccのデバッグ情報のオプション - C言語入門
debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
JOS から学ぶ GDB デバッグ手法
gdbの使い方のメモ - ももいろテクノロジー
gcc+gdbによるプログラムのデバッグ 第2回 変数の監視、バックトレース、その他のコマンド
本の虫: GDBがeBPFのデバッグをサポートした
Linuxカーネルのテスト実行とデバッグ (2) :GDB編 - Fixstars Tech Blog /proc/cpuinfo
時折飛んでくる原因不明な#GPをgdbで原因究明した備忘録 – Raphine Project
GDBの使い方メモ – GitHub 出張所 – プログラム関係のブログはここに
UEFIアプリケーションをデバッグする - 気まぐれ気紛れ草紙
mikanOSのデバッグの話 | tomiylab

OSDN

GDB/GDBserverによるクロスターゲットのリモートデバッグ | OSDN Magazine
リモートデバッガ/プロファイラを利用したデバッグ&性能解析 | OSDN Magazine
D言語にも対応、GNU Debugger 7.2リリース | OSDN Magazine
オープンソースのデバッガーGDB 7.4リリース、Pythonスクリプティング機能などで多くの改良が行われる | OSDN Magazine
Go言語サポートが新たに追加された「GDB 7.5」リリース | OSDN Magazine
64ビットARM版Linuxをサポートした「GDB 7.6」リリース | OSDN Magazine
新コマンド導入、Python強化などが特徴の「GDB 7.7」がリリース | OSDN Magazine
「GDB 7.8」がリリース、Guileスクリプティングをサポート | OSDN Magazine
「GDB 7.9」がリリース、PythonスクリプティングAPIの強化などが行われる | OSDN Magazine
「GDB 7.10」リリース | OSDN Magazine
「GDB 8.0」リリース | OSDN Magazine
RISC-Vサポートを強化した「GDB 8.3」リリース | OSDN Magazine
米Microsoft、Visual Studioのデバッガ拡張「MIEngine」を公開 | OSDN Magazine
「GDB 9.1」が公開 | OSDN Magazine
「GNU Debugger 11.1」が公開 | OSDN Magazine

Qiita

はじめてのgdb - Qiita
gdbで効率的にデバッグするためのTips - Qiita
gdbのDynamic Printfを使う - Qiita
Pythonでgdbを操作する。 - Qiita
makeとgccだけでOSを作ってみる - Qiita

Twitter

Fadisさんのツイート: "ヒープ上で範囲外参照してSegmentation Faultするなんて可愛いモンだ。スタック上で範囲外参照して範囲外から有効っぽい値を拾ってよくわからないところに飛んでいったコードをデバッグするのと比べれば"
Fadisさんのツイート: "x86_64でこういうのをデバッグするとき、稀によくgdbの逆アセンブル機能に「このアドレスが始点だったと思って逆アセしてくれ」が欲しくなる(もうあったりするのかな)"
れっくすさんのツイート: "x/i https://t.co/VuUC5BacEP"
rayfillさんのツイート: "https://t.co/j9URafEPDk disassemble start,end でできるように読めるんだけど・・・ https://t.co/gZae5eIpAf"
Debugging with GDB: Machine Code
れっくすさんのツイート: "examineなんでn命令見れて普通に便利ですね。あとCTFでよく使われるpeda/pwndbgあたりを入れると特定のアドレスでdisasする命令が増えた気がします… "
Fadisさんのツイート: "テンプレート引数が極めて長い関数をgdbでdisasしたら、ジャンプする度にアドレスの横に出てくる関数名で画面が埋まって厳しい事になってる"
herumiさんのツイート: "disassemble/rm $rip,+128 ならバイト列込みで逆アセンブルしてくれます。@_ko1 というかVisual Studio便利なんだけどなあ。 「Linux プロジェクトのデプロイ、実行、デバッグ」 https://t.co/XSdT5BSoQb"
Visual Studio で C++ Linux プロジェクトを配置、実行、デバッグする | Microsoft Docs
_ko1さんのツイート: "うお、すごい、gdbserver につなげられるんだ!… "
Fadisさんのツイート: "gdbでデバッグ中の箇所でC言語のコードをコンパイルして実行するために使われているライブラリ化されたgcc libcc1がC++に対応した模様。デバッガから挿入するコードをC++で書けるように https://t.co/iHKqz7HOUO"
FadisさんはTwitterを使っています: 「gdb 8.4からデバッグシンボルのロードをマルチスレッドで行えるようになるらしい。デバッグシンボルを読まないとしばしば人類に厳しいデバッグを強いられるけど、巨大なアプリケーションのギガいデバッグシンボルは読むだけで時間がかかる問題がこれで緩和される https://t.co/9rowszXJld」 / Twitter
GDB Adds Multi-Threaded Symbol Loading For Faster Debugging Performance - Phoronix
FadisさんはTwitterを使っています: 「デバッグシンボルがギガくなる大抵の原因はC++のマングルするととてつもなく長くなる型名なんだけど…」 / Twitter
FadisさんはTwitterを使っています: 「マングルが直接的な原因ではないな。C++erはETでカジュアルに100キロバイトオーダーの型名を生み出してしまうのである」 / Twitter
FadisさんはTwitterを使っています: 「Rustのマングリングルールに一種の可逆圧縮みたいなルールが備わってて、こいつC++(Itanium ABI)で辛かった所にしっかり対策入れてるなってなった」 / Twitter
FadisさんはTwitterを使っています 「gdbがdebuginfodに対応したらしい。debuginfodはhttpでソースコードとデバッグ情報を配るデーモン。デバッガはローカルにソースとデバッグ情報が無くてもバイナリに埋め込まれた情報を元にリモートのdebuginfodからそれらを得る事で人類に優しいデバッグ環境を提供できる https://t.co/meD6YqbLlj」 / Twitter
GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
uchanさんはTwitterを使っています 「GDBの条件付きブレークポイントの機能で,スタックポインタが16の倍数じゃないときにブレークする場合は condition &lt;bnum&gt; ((unsigned long)$rsp &amp; 0xf) != 0 とするといいみたい。」 / Twitter
uchanさんはTwitterを使っています 「ブレークポイントを作りつつ条件を設定するには break ... if &lt;cond&gt;」 / Twitter
Shiro Kawaiさんのツイート: "おお、最近のLinuxはデフォルトでデバッガがアタッチできるプロセスに制約があるのか。久々に刺さったプロセスに外からgdbをアタッチしようとして知った。 https://t.co/iiKXWwtfLP"
k0kubunさんはTwitterを使っています 「backtrace(3) がSEGVするような状況でもgdbは途中までbtを出せるのは何故なのか」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun どのアドレスを参照してよくて、どのアドレスを参照したら死ぬか知っているからですね。Linuxでも https://t.co/nUQFjeeakf を使えばそのへん制御できるかもしれませんが」 / Twitter
ruby/vm_dump.c at 229ba1215fa7c8181b9296dff22807fb17442c74 · ruby/ruby
k0kubunさんはTwitterを使っています 「@nalsh なるほど。見てるSEGVの再現率が絶望的に低いのでなかなか試せませんが、次簡単にヒットさせられる状態になったら試してみます」 / Twitter
FadisさんはTwitterを使っています 「Debianがdebuginfodのサーバを立てたらしい。debuginfodはデバッグ情報とソースをデバッガに提供するHTTPサーバで、対応するgdbを使用するとローカルにデバッグ情報がなくても快適なデバッグが可能になる。RedHatを中心に作られた為Fedoraでは以前から対応が進められていた https://t.co/pUdZEie1kO」 / Twitter
Debian Launches A Debuginfod Server For Smoother Debugging Experience - Phoronix
henrichさんはTwitterを使っています 「debianプロジェクト公式インフラではなく、Debian公式開発者の一人が立ててみたよ、という話ね」 / Twitter
2021年2月25日 よきデバッグライフのために ―Debian,開発者向けdebuginfodサーバをローンチ:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter

GDB Internals - Table of Contents
Debugging Output (Debugging with GDB)
debugging with GDB
GabrielMajeri/separate-symbols: How to separate debugging symbols from an ELF executable
https://www.kernel.org/doc/Documentation/security/Yama.txt
cyrus-and/gdb-dashboard: Modular visual interface for GDB in Python
I0608173.pdf
melancholic afternoon
GDB to LLDB command map — The LLDB Debugger
PermissionsDarwin - GDB Wiki
Releases/FeatureBuildId - Fedora Project Wiki
gdb remote protocol - Google 検索
lldbでLLVMプログラムをデバッグする - yhara.jp
assembly - How is effective address calculated with fs and gs registers - Stack Overflow
x86 - Using GDB to read MSRs - Stack Overflow
とみながたけひろさんはTwitterを使っています 「ところでARM linux上のgdb他で、デバッグ対象が起こしたセグフォがprefetch faultなのがdata abortなのか、みたいな詳細を取得するにはどうしたらいいのかわからんかった。ょゎぃ…だれかおしえて…」 / Twitter
デバッガとは何ぞや
gdb マルチプロセス デバッグ - Google 検索
gdb マルチスレッド デバッグ - Google 検索

rr

Julia

ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
Julia 1.5 Feature Preview: Time Traveling (Linux) Bug Reporting
ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
ドッグさんはTwitterを使っています 「ちなみに rr の仕組みやパフォーマンス評価の詳細について興味がある人は,この paper を読むと良さそう(PDF) | 'Engineering Record And Replay For Deployability Extended Technical Report' https://t.co/NBNmKvYbli」 / Twitter
1705.05937.pdf

MariaDB

Nayuta YanagisawaさんはTwitterを使っています 「"https://t.co/XzfU0PawTO --rr" とすると、rr を使ってテストを起動してくれるらしい。便利。 https://t.co/r9LRlSbtAH」 / Twitter
[MDEV-22179] rr(record and replay) support for mtr - Jira
Nayuta YanagisawaさんはTwitterを使っています 「rr (debugger)、一部の仮想環境では動かせないのか…」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「High precision timer 関連のエラーが出て rr が上手く動かない。この issue と同じエラーだが、同じ現象なのかは不明。https://t.co/f3GbgsPhgZ」 / Twitter
Assertion `ticks_now == trace_ticks' failed to hold. ticks mismatch for 'INSTRUCTION_TRAP'; on AMD CPU · Issue #2862 · rr-debugger/rr
Nayuta YanagisawaさんはTwitterを使っています 「仕事用の PC も個人開発機も Ryzen だから、rr が Intel CPU なら動くのかの確認ができない。1つぐらい Intel にしとくんだった。」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「苦闘の末、Ryzen9 3900 のビルドサーバーで rr が動作するようになった。OS すら入れ替えたから何がよかったかわからん。」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「これで地球の反対側にあるビルドサーバーとのレイテンシにイライラしなくてすむ。嬉しい。」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「Mozilla rr、最新のソースからビルドしないと、私の環境では上手く動かなかった。リリース版だと対応していない system call があるのかな?(よくわかってない)」 / Twitter

rr: lightweight recording & deterministic debugging
Robert O'CallahanさんはTwitterを使っています 「rr 5.4.0 released. The main new feature of this release is AMD Zen support. There is also experimental ARM Aarch64 support --- for platforms that don't use STREX. Plus tons of bug fixes and performance improvements as usual. https://t.co/yFEe9LsqZU」 / Twitter
Release 5.4.0 · mozilla/rr
ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting
ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
[1705.05937] Engineering Record And Replay For Deployability: Extended Technical Report
1705.05937.pdf
Firefoxにブラウザ上の動作を記録・再生可能な「リプレイ機能」が搭載される予定 - GIGAZINE
Replay Docs
FadisさんはTwitterを使っています 「C言語とC++の為の新しいデバッグツールrrについての話。-g付きの実行可能バイナリをrr recordで実行すると「どのように動いたか」が記録され、rr replayするとブレークポイントを張ったり特定のメモリを監視しながらrecord時と同じように動くプロセスを観察出来る https://t.co/1KeuuGlP6i」 / Twitter
Instant replay: Debugging C and C++ programs with rr - Red Hat Developer
FadisさんはTwitterを使っています 「ソフトウェアがクラッシュした時、従来のgdbではコアダンプでクラッシュ時の状態を見て「何でそんな値が入っているのか」を人間が考える必要があったが、rr recordでクラッシュまでを記録できた場合reverse-continueで「おかしな値を入れたやつ」の時点まで時を遡る、というデバッグが可能になる」 / Twitter
reroさんはTwitterを使っています 「@fadis_ 性能激落ちしそうだから、再現試験とかが前提ではあるんやろな。」 / Twitter
Tsukasa #01さんはTwitterを使っています 「2010年にこの方式 (Record and Replay) を VM で試していたが、当時ようやく広がりつつあったマルチコアの追跡に適用するのが厳しく開発を断念した。rr はどうしてるのか――と見てみたら、全スレッドを 1 コアで (つまりは並列させずに) 動作するというとんでもない方法を使っていた。」 / Twitter
Tsukasa #01さんはTwitterを使っています 「それこそ、Record and Replay は、私が実験していたときには OS を動かして (ほぼ無入力で) 1MB 程度のトレースだけで1秒、数億命令の実行履歴を再現できた。ただ、それはプロセッサが「大部分で決定論的に動作する」ということを前提にしたもので、マルチコア環境だとこの前提が大きく崩れるのだ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「roc大先生のrrの素晴らしいところは、record&amp;replay debuggerとして、圧倒的に速いってことですよ。速くなければ使い物にならないので https://t.co/fUGz2yt6FN」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WinDBG Previewもrecord&amp;replay debugger入ってるけど、遅いのが致命的なんだよな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「昔聞いたところによれば、rrを他のプラットフォームで実装するには、それ用のsystem callがあれば行けると思うよ的な話聞いてるけど、現状はLinux限定ではある。 なおrrに関してはUSENIX ATCのpaperがあるから、それを読むと面白いよ https://t.co/9lWaniZjdL」 / Twitter
atc17-o_callahan.pdf
Makoto Kato ︎︎さんはTwitterを使っています 「なお、Firefox devtoolsでrecord&amp;replayやってた人たちは、https://t.co/62UcrP6NA9 やってる」 / Twitter
Replay: Record and replay web applications
Makoto Kato ︎︎さんはTwitterを使っています 「RedHatのrrの記事では触れられてなかったけど、 https://t.co/Hmrk0UlrEm ってのをrocの会社で作ってる」 / Twitter
Pernosco
rr-debugger/rr: Record and Replay Framework
Wayback Machine
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ

Processor Trace

LibIPT – Intel Processor Trace Decoder Library | Firmware Security
01org/processor-trace: libipt - an Intel(R) Processor Trace decoder library
Intel® Platform Analysis Library-Overview | Intel® Developer Zone
Processor Tracing | Intel® Software
BlueHat, Airplanes and Intel Pt – AaLl86 Security Corner
linux/intel-pt.txt at master · torvalds/linux
Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでcmptraceを作ってみる - ももいろテクノロジー
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina …
Shirouzu Hiroaki(白水啓章)さんのツイート: "x86とx64、引数がスタックに見える分だけ、前者の方が多少解析しやすい印象がある。 (後者はx86で言うfastcallのようなレジスタ渡しが標準。ちなみにMSとLinuxで引数に使うレジスタが違う)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外発生命令の、直前の命令位置を保存したレジスタか何か欲しいなぁ。 (例えば、0番地にジャンプした後に例外ダンプをとっても、もう遅い)"
きしもとさんのツイート: "エミュレータだと何命令か過去のヒストリがある奴あるよねというか、今なら実ハードでもそれぐらい(どれくらい?)の面積は確保してくれても良さそうという気もするが"
市川 真一さんのツイート: "例が GDB なのでアレですが、最近の Intel CPU 限定だと以下のような機能もあるようです: Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo https://t.co/4hAfksgtmO… https://t.co/dur1hZ40Cq"
Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo
Shirouzu Hiroaki(白水啓章)さんのツイート: "ご紹介ありがとうございます。 今解析しているのはユーザ環境のダンプなのですが、これは、そういう環境でも使える可能性があるかな…あとで詳しく見ておきます。… "
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita
Perf tools support for Intel® Processor Trace - Perf Wiki

MAP, COD

MAP (file format) - Wikipedia
セクションとか.textとか
C言語のプロセスにおけるMAPファイルとは何ですか? - 思い浮か... - Yahoo!知恵袋
マップ デバッグ ファイル(*.map) - RAD Studio
/MAP (マップ ファイルの生成)
/MAPINFO (マップ ファイルに含める情報)
マップファイルを使用したデバッグ | code-lab
C言語のソースコードからどのようにメモリ領域を使用しているのかを図で説明してくれるソフト 回答数3 【OKWAVE】
static関数がmapファイルに載らない理由 - C言語・C++・C# 解決済 | 教えて!goo
JUNO通信: 不正落ちしたアドレスからエラー箇所を特定する

addr2line

addr2lineを使った調査方法 - Qiita
addr2lineを使ってスタックトレースから取得したアドレスをソースファイル名と行番号に変換する - Qiita
Man page of addr2line
Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
_ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
_ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Debianのperfはプロセス中のアドレス解決のためにaddr2lineコマンドを何万回も呼んでいる。これは非常に遅く、libbfdとリンクすれば60倍程度は速くなる。しかしそのバイナリはGPLv2とv3+の混合ライセンスとなりDebianでは配布できなくなってしまう。 https://t.co/n6qypg39cY」 / Twitter
~60x speed-up of Linux "perf" (eighty-twenty news)

libSegFault

普通のやつらの下を行け: C でバックトレース表示 - bkブログ
スタックトレースの吐出しファイル名 - Linux Square - @IT
windows - How can one grab a stack trace in C? - Stack Overflow
スタックトレース - Wikipedia
C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - atwiki(アットウィキ)
[Linux][C/C++] backtrace取得方法まとめ - Qiita

Sanitizer

AddressSanitizer(ASan)

KASAN

KASan - Kernel Address Sanitizer(kernel 4.0)は、コンパイル時に組込んで、シャドウメモリによるメモリ内容の検査を行う - つれづれ日記
KernelAddressSanitizer (KASan) による Linux のメモリ破壊問題の検出 - Qiita
Linux:面白そうなpatch(Address sanitizer for kernel)を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
The Kernel Address Sanitizer (KASAN) — The Linux Kernel documentation
Home · google/kasan Wiki
kasan.txt - kandamotohiro
社会人でもOSを作りたいさんはTwitterを使っています: 「KASan(カーネルアドレスサニタイザー)は,シャドウメモリと呼ばれる部分に,各メモリアドレスの状態(初期化済みであるかどうかなど)を記憶しており,メモリ読み書き命令が正当なものであるかをシャドウメモリの情報と照らし合わせて判定する。」 / Twitter

google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer · google/sanitizers Wiki
Home · google/sanitizers Wiki
google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer — Clang 7 documentation
AddressSanitizer - Wikipedia
Google Developers Japan: サニタイザーによる Android のバグ退治
Address Sanitizerで独自Frameworkのメモリエラーを検出する - Qiita
clang の AddressSanitizer を使って、バッファオーバーフロー/ヒープオーバーフローを検出する - Qiita
Address Sanitizerでメモリ不正アクセスを検知する - Qiita
clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
AddressSanitizerが思った以上に優秀 | Project Flora
AddressSanitizerを試す - cuspy diary
cormoran's note - clang のSanitizerについて
バグ #4270: StateMachine.hでheap-use-after-free - OpenRTM-aist (C++) - Redmine for OpenRTM-aist
Debian -- jessie の libasan0 パッケージに関する詳細
Debian -- jessie の libasan1-dbg パッケージに関する詳細
参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728) - るくすの日記 ~ Out_Of_Range ~
入力の検証とプロセス間通信
[iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた | Developers.IO
るくすさんのツイート: "ASan有効のWebKitビルドしたら、ビルド中に動くツールにメモリリークがあり、それをASanが検知してしまうため一生ビルドが完了しない。 キレそう"
るくすさんのツイート: "でもラップトップだとビルド通るんだよな 何もわからん"
c++ : Poisoning Memory with (or without) Address Sanitizer
AddressSanitizerManualPoisoning · google/sanitizers Wiki
Rockridgeさんのツイート: "Windows向け64bit版のビルド時にAddress Sanitizerと呼ばれるメモリエラーの検出ツールが働くようになった。参照:https://t.co/TSOKN3H8a7 https://t.co/I7KJVWTpa2 https://t.co/dDfe0RPHtE"
Introducing the ASan Nightly Project | Mozilla Security Blog
Kazuho OkuさんはTwitterを使っています 「clangのAsan/UBsanで、メモリの一部を未初期化であるとマークすることはできないんだろうか。たとえば自前のメモリアロケータを書いている場合とかに使いたい」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho API あるので poison/unpoisonすれば出来るんぢゃ?🧐」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@objectxplosive ASAN_POISON_MEMORY_REGION か!!!!あざます!」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho 辿り着けた様で… https://t.co/Oj49sc0xQg # ‘poison’ って単語が判れば割と一直線かな🤔」 / Twitter
AddressSanitizerManualPoisoning · google/sanitizers Wiki

LeakSanitizer

clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
LeakSanitizer — Clang 8 documentation
AddressSanitizerLeakSanitizer · google/sanitizers Wiki
LeakSanitizer - The Chromium Projects
c++ - LeakSanitizer: get run time leak reports? - Stack Overflow

MemorySanitizer

melancholic afternoon
MemorySanitizer — Clang 7 documentation
MemorySanitizer · google/sanitizers Wiki
Memory sanitizer
Memory Sanitizer - Mozilla | MDN
c++ - Memory Sanitizer - Stack Overflow

ThreadSanitizer(TSan)

ThreadSanitizer — Clang 8 documentation
ThreadSanitizerCppManual · google/sanitizers Wiki
Home · google/sanitizers Wiki
SwiftのAddress/Thread Sanitizer - Qiita
ThreadSanitizer: data race detection in practice
c++11 - Why does ThreadSanitizer report a race with this lock-free example? - Stack Overflow
ThreadSanitizer (TSan) v. 2 - The Chromium Projects
shinichiro hamajiさんのツイート: "#tcfm TSanまわりはいくつか論文読んだ記憶がある。ナイーブなeraserはくさんfalse-positiveが出て、例えばデカい配列作ってスレッドたくさん作ってjoin、みたいなやつだとワーカーとメインスレッドがraceとされちゃう。で、happens-beforeてのとのハイブリッドにしましたってのがTSanだという理解"

DataFlowSanitizer

DataFlowSanitizer — Clang 8 documentation
pannzh/dataflow-pass: A LLVM Pass with runtime dataflow sanitization
u1240976/dfsan_test: test llvm dataflow sanitizer
Address Sanitizer clashes with Dataflow Sanitizer - Google グループ
Clang Developers - Dataflow sanitizer memory mapping question
Oscar Forner's personal website
Engineering Secure Software and Systems: 9th International Symposium, ESSoS ... - Google ブックス
clang-sanitizers
Sanitizers.def source code [clang/include/clang/Basic/Sanitizers.def] - Woboq Code Browser

UndefinedBehaviorSanitizer(UBSan)

UndefinedBehaviorSanitizer — Clang 7 documentation
Google Developers Japan: サニタイザーによる Android のバグ退治
Linuxカーネル4.5リリース、細かな改善点が中心の小規模リリース | OSDN Magazine
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel documentation
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel 4.11.0-rc4-00191-g7de6e5d documentation
UndefinedBehaviorSanitizer (UBSan) - The Chromium Projects
Undefined Behavior Sanitizer | Apple Developer Documentation
GCC Undefined Behavior Sanitizer - ubsan - RHD Blog
c++ - UBSan And Asan usage with GCC 4.9.2 - Stack Overflow
GCC Undefined Behavior Sanitizer – ubsan (RH Developer Blog) [LWN.net]

LLVM Sanitizerを試す - FPGA開発日記

Intel Pin

Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでlivestringsを作ってみる - ももいろテクノロジー
Intel Pinを触る
アプリケーション インストルメンテーション - Pin によるアプリケーション分析
Intel PinにおけるNXの扱い | 一生あとで読んでろ
PinからPEMUへ | 一生あとで読んでろ

angr

angr例文集 書いて覚えるバイナリ自動解析技術 - Qiita
angrメモ - HackMD
angr+bingraphvisで実行パス差分ビューワを作ってみる - Qiita

最適化コードのデバッグ

IBM Knowledge Center - 最適化コードのデバッグ
方法 : 最適化されたコードをデバッグする

Source Map

Source Map Revision 3 Proposal - Google ドキュメント
mozilla/source-map: Parse and consume source maps.
Rockridgeさんのツイート: "Fx50:開発ツールのWebコンソールにソースマップ機能が実装された。デフォルトでは無効。 / “670002 – Use source maps in the web console” https://t.co/ehqBfbNvNj"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
各ブラウザでソースマップを確認する方法 - Qiita
[JavaScript] sourceMapの作り方 - Qiita
To Be "Soulful": gulp + Sourcemap + Uglify + Debug で気を付けるポイント
jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
Source Mapを扱う関連ライブラリのまとめ | Web Scratch
Source Mapsについて調べた - console.lealog();
Browserify を使ってみる 2 – Source Map – アカベコマイリ
なかのん&マジックさんのツイート: "普通のWebサイトも難読化してるところにペナルティを与えて欲しいと思えるぐらいに、最近のWebアプリがブラウザの何が非互換で動かないのか調べるのは難しい。 / Google、信頼できるChrome拡張にするための対策を発表 | スラド IT https://t.co/ykzZJhRTsu"
Google、信頼できるChrome拡張にするための対策を発表 | スラド
なかのん&マジックさんのツイート: "最小化は必要なんだろうけど、それを復元する、もしくはオリジナルにアクセスする手段が標準化・用意されていないのはなかなかにキッツい。"
なかのん&マジックさんのツイート: "各ブラウザの開発ツールが追加で読み込める、デバッグシンボルみたいなのあってて欲しい。"
市川 真一さんのツイート: "Source Map とソースコードを zip で固めたファイルなら、比較的簡単に実現しそうな気もしますが、外部の人間にソースコードを渡す企業は限られるという問題があると思います… "
なかのん&マジックさんのツイート: "もう、くれないところは逆にWebの仕様変更時にブラウザベンダのサポート受けられないよ、的なコンセンサス欲しいですわ。… "
市川 真一さんのツイート: "それ、いいですね。多くの日本企業が市場から退場しそう… "
Even better Source Maps with C++, WebAssembly and Cheerp | by Yuri Iozzelli | leaningtech | Medium

HAR ファイル

.har - Wikipedia
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
HAR ファイルの作成と Web リクエストの分析 - アトラシアン製品ドキュメント
Firefox の Firebug や Chrome のデベロッパーツールの Network の結果を HAR にエクスポートしたり PDF に印刷する方法 | ウェブル
harファイルをローカルで表示できる「HAR Viewer」|プログラミング
HARファイルの内容から指定URLの内容のみを抽出する方法 - Qiita
HARからファイルを抽出する - Qiita
JSONパーサーを作る - Qiita
HAR で Web ブラウザの動きを見よう! - 赤帽エンジニアブログ

blog

RogueWave

CodeDynamics

CodeDynamics 2015.09 初リリース - エンタープライズ向け 動的コード解析ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2015.11 リリース C++11対応と新しい検索ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.01 リリース - 高機能デバッガ wrap searchとブレークポイントハイライト - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化 - ローグウェーブソフトウェアのブログ
エンタープライズ領域におけるソフトウェア開発の進化 - ローグウェーブソフトウェアのブログ

分散環境におけるメモリエラー解析 - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
動的解析のエンジンを再構築した理由 - CodeBuzzから - ローグウェーブソフトウェアのブログ
並列デバッガ TotalViewの多様なインターフェースと使い方 - ローグウェーブソフトウェアのブログ
複雑なデバッグをシンプルに - TotalViewのTransformations機能 - CodeBuzzから - ローグウェーブソフトウェアのブログ
TotalViewのType Transformations機能 - ローグウェーブソフトウェアのブログ
TotalView 並列アプリケーションのデバッグ機能 - ローグウェーブソフトウェアのブログ
TotalViewのCUDA関連機能 - ローグウェーブソフトウェアのブログ
TotalView 新UIでのFortranデバッグとリバースデバッグの紹介動画 - ローグウェーブソフトウェアのブログ
TotalView Python C++混合デバッグ - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
TotalView 2017.0 リリース - ReplayEngine高速化、新UIにウォッチポイント、NVIDIA Tesla P100 - ローグウェーブソフトウェアのブログ
TotalView 2017.1リリース - Python混合デバッグ、リバースデバッグのブックマーク、Split DWARF - ローグウェーブソフトウェアのブログ
TotalView 2017.2ベータ版 - Python混合デバッグのサポート強化、バッチデバッグとリバースデバッグ - ローグウェーブソフトウェアのブログ
TotalView 2017.2リリース - バッチデバッグでReplayEngine利用可能に、PythonとC/C++混合デバッグ強化 - ローグウェーブソフトウェアのブログ

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

Linuxカーネルをgdbでデバッグ(またはディストリビューションのカーネルを使うときは当たってるパッチにも注意しよう) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux kernelをgdbでリモートデバッグするときはKASLRをoffにするのを忘れずに(´・ω・`) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
dynamic_debugはどのようにソースコードの行数、関数名などを読み取っているのか - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
libbfdのめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

NyaRuRuが地球にいたころ

日記を書いている途中にブラウザがハング・暴走したときするべきこと - NyaRuRuが地球にいたころ
Google Chrome をデバッグする (1) - NyaRuRuが地球にいたころ
Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ

脱力系日記

IDAの便利プラグイン3選!!! - 脱力系日記
IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた - 脱力系日記
PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた - 脱力系日記

MySQL/MariaDB

Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog
Debugging MySQL/MariaDB (2): DBUG and Trace - nayuta-yanagisawa's blog
Debugging MySQL/MariaDB (3): GDB Debugging - nayuta-yanagisawa's blog
実例で学ぶ MySQL/MariaDB デバッグ - nayuta-yanagisawa's blog

Project Zero

Project Zero: The story of Adobe Reader symbols
Project Zero: Part II: Returning to Adobe Reader symbols on macOS
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger

J’s Lab

OVMFをソースデバッグするお話 | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab

はてなブログ

わたしがprintf()デバッグをする理由 - 一人一党党
Binary Translation型エミュレータを作る(ステップ実行のサポート) - FPGA開発日記

Publickey

Chrome 97のDevToolsに新機能、Webブラウザ上の操作を記録、再実行、編集、保存。Puppeteerスクリプトへのエクスポートも - Publickey
DOMメモリリークのデバッグツール「Detached Element」、Microsoft EdgeのDevToolsに搭載 - Publickey

デバッガのための実行基盤の実装について
Linux ハードウェアブレークポイントを実装する - 株式会社Ninjastars 技術系ブログ
スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
本の虫: ラバーダックデバッグとは
プログラマーの理想と現実 - メモリ破壊バグをつきとめる | 株式会社創夢 — SOUM/misc
EternalRed0’s Unicorn Engine tutorial | Firmware Security
バイナリエディタを作りました! - プログラムモグモグ
ccov: printfデバッグを支援するツール | retrage.github.io
エクスプロイト可能なバグかの判断:REVEN を使用して NULL ポインタの参照先の値を取得
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
第16回「 kernel-debug ノススメ」 | NTTデータ先端技術株式会社
Bokken 1.8使ってみた - Twitterに書ききれないこと
(第15回)Ctrl-Cブレーク対応
mozregressionを使って、いつFirefoxの機能が壊れたのかを調べる - ククログ(2018-07-18)
デバッガ自作から学ぶ低レイヤー - Nao Technology
デバッガ自作から学ぶ低レイヤ2 - Nao Technology
OpenBSD in Stereo with Linux VFIO | joshua stein
アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
goroutine内のpanic handling | Money Forward Engineers' Blog
Valgrindでコード解析してみる - CADDi Tech Blog
Chrome DevToolsのRenderingタブを活用しよう | フロントエンドBlog | ミツエーリンクス

PDF

purify.pdf
tsushima12.pdf
tsushima13.pdf
ishii14.pdf
wakikawa18.pdf
doctoral.dvi - doctoral.pdf
general4-1.pdf
コンパイラの型推論を使用した型デバッガの提案
重み付き型エラースライスの提案
バイナリコードから脅威度を推定する 脆弱性検出ツールの実装と評価
おしぼりさんはTwitterを使っています 「面白かった。 普通のレジスタはVMEnterする時に全部退避するけど、VMMからゲストに(ハードウェア)ブレークポイント貼りたい時はデバッグレジスタは退避できないので攻撃者に値を読まれたり書き込まれたりされちゃうってことらしい。」 / Twitter
情報学広場:情報処理学会電子図書館

スライド

Reverse Debugging with radare2 - Speaker Deck
More efficient remote debugging with Thin Hypervisor - Speaker Deck
ゆるバグ
The Game is Over. Nintendo switch has been totally compromised - Speaker Deck
Python + GDB = Javaデバッガ

GitHub

WICG/devtools-protocol
gdabah/distorm: Powerful Disassembler Library For x86/AMD64
zydis | The ultimate X86 & X86-64 disassembler library
zyantific/zydis: Fast and lightweight x86/x86-64 disassembler library
PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
_ko1さんはTwitterを使っています 「こういうことやるために https://t.co/8jOhpESY5b を作って mri のログがこんな感じで見れる(けどドキュメントないから誰も知らない) ヘッダ表示どうしよかな」 / Twitter
ko1/kv: kv: A page viewer written in Ruby
athos))))))))さんはTwitterを使っています 「デバッグに必要な情報をデータとして集めて、後から必要に応じて切ったり貼ったりして整形して表示するデバッグテクニック、むちゃくちゃ素朴なわりにデバッガとかprintデバッグに比べて「全体として何が起きたのか」を俯瞰して把握しやすいので好き https://t.co/aOt1q9G0x1」 / Twitter
athos))))))))さんはTwitterを使っています 「デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になるので、どこまでも便利な解析ツールをカスタムで作り込んでいけて、デバッグ作業を気合いと根性で進めないといけないような状況に陥りにくい(デバッガのステップ実行をひたすら繰り返すとかデバッグログの目grepとか)」 / Twitter
masa matsuさんはTwitterを使っています 「@athos0220 &gt;デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になる まさにLispのメリット(ってことですよね?)」 / Twitter
athos))))))))さんはTwitterを使っています 「@MasMatsum Lispだけのメリットというつもりはないですが、REPLをヘビーに使うLispだととても効果的に使えるテクニックだとは思います」 / Twitter

infoQ

既にコンパイルされたアセンブリをデバッグできる.NET Reflector
ElasTestで実現するテスト時の可観測性
WebDriverIOバージョン6リリースは、ネイティブのChrome DevToolsオートメーションプロトコルを新たにサポート
New LiveRecorder for Java Enables Software Failure Replay
Chrome 83 DevToolsでは視覚障害とロケールをエミュレート
新しいChrome拡張機能で、C++ソースファイルをステップ実行してコンパイル済みWasmコードをデバッグ
Chrome 88 Devtoolsの新機能
Node-RED 2.0で新たにフローデバッガーとフローリンターを提供し、開発者エクスペリエンスを向上

Qiita

gdbのリモートデバッグのextended-remoteモードを試す(1) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(2) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(3) - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "chromeにデバッガがアタッチできなかった話は、保護プロセスが理由だった。https://t.co/GmoAFDpGGq そして「Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法」。勉強になった。 https://t.co/1VAkqHCmfA"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここ数週間、chromeのプチフリーズ(5-10秒)が頻発。 VS2015のデバッガでchromeプロセスにアタッチしようとするとリジェクトされてしまうのはなぜだろう。"
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに、Windows Defender の場合はデバッガをアタッチしても、書き込み権を落としたハンドルしか渡せないという防御もあり、そのためのフィルタコールバックを如何に無効化するかという話も。ハッカーすぎる(笑)"
curl は何をしているか #システムコール編 - Qiita
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
Linuxカーネルの起動時トレースの話 - Qiita
[Linux] coreファイルについて - Qiita
Linux シグナルの基本と仕組み (カーネル v5.5 時点) - Qiita
yoh2さんはTwitterを使っています 「わかる。デバッガによってはステップ実行がメソッドチェインのメソッド単位で進んだり、最後の呼び出しの戻り値を表示できたりする場合もあるけど標準的というほどじゃない。」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「変数に束縛せずにメソッドチェインするやり方、読みやすいんだけどなんかバグった時にデバッガで追いづらいんよな」 / Twitter
【C++】メソッドチェーンにおける未定義動作 - Qiita
C++入門者向けコード実行エディタをつくった話 - Qiita

Wikipedia

逆アセンブラ - Wikipedia
Disassembler - Wikipedia
逆コンパイラ - Wikipedia
Decompiler - Wikipedia
TotalView - Wikipedia
ラバーダック・デバッグ - Wikipedia
Rubber duck debugging - Wikipedia

Twitter

その他

SoC_デバッグ

Yuji IshikawaさんはTwitterを使っています: 「守秘義務は外すとして、ここのところ頭を悩ませていた案件に光明が見えてきた。aarch64のLinuxカーネルにプラットフォームデバイスを認識させる作業。 さくっとデバイスツリーを書いて、SoC固有のところをいじるだけなのだが、ムズい。意外と資料がない。指南書ほしい。指南書書きたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「だいぶやられた後に言いたいことは、有名なSoCと同じIPを使っているからと言って、やすやすとドライバが移植できると思うなよ!だった。合ってるのは公開レジスタセットの所だけで、ベンダ固有の謎のHWや、よくわからん感じにマルチプレクスされた割り込みが理不尽な振る舞いをする。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「ベンダ依存の少ないレジスタセットを使ったコアロジックは使い回せるので、ベンダ依存部分さえ直せば驚くほどすんなりドライバが動く。 まさに巨人の肩によじ登ったワンダー。 しかし重ねていうが、工数を安請け合いしてはならない。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「結局、pr_infoを仕掛けて回る、サブのプロセッサコアをLinuxの支配下に置かずにデバッグ用につかまえておいて、横からレジスタを覗いたり書き換えたりして反応を観る、という形でデバッグしてた。もっと良い方法を知りたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「@Tatsuro_Ueda こういうのが強い人って、本当に強いんですよ。私がハマっていた所なんて、タネが割れてしまえば本当に簡単なこと、数十行のハックで最低限の動作ができてしまう。 でも、最初に仕組みを見通すメンタルモデルを獲得するには、莫大な研鑽が必要。偉い人にわかってほしい。」 / Twitter

histric-1

Makoto Kato ︎︎さんのツイート: "10年前の時点で自分の環境用のデバッグツールで、IEのプロセスダンプから現在開いているURLを収集および表示してるHTMLをダンプするcdbエクステンションを持ってたけど、自分のやってたところまでサポートは追いついてないのか"
Hirochika Asaiさんのツイート: "実機だとOSの挙動がおかしくなる問題のデバッグにはCPU 0以外のコンテキストをダンプをする機能が必要。お行儀の良くない初期化しただけでこんなに影響出るものなのか…?"
Kazuho Okuさんのツイート: "えぇぇぇぇ gdb で C-x 1 って入れたらソースコード表示しながらデバッグできるの!!! 知らなかった / “CppCon 2015: Greg Law " Give me 15 minutes & I'll change…” https://t.co/XDazrCP2mN"
側転幼女おるみんちゃんさんのツイート: "gdb --tui でもできる機能ですね。 https://t.co/4Y1ntlpj3o"
ぺお(ozaki-r)さんのツイート: "DTraceをNetBSD/armに移植するときも未定義命令を使ったような記憶が… "
なかのん&マジックさんのツイート: "特定のメソッドから、任意の数遡った、可能なスタックを全て表示してくれるツールとかないんかな(´ρ`)"
yukiさんのツイート: "コードを書いていくとインタラクティブにアセンブリに直してくれるサービス.すごいのが,コードのどこがどのアセンブリに対応しているのか色付きで教えてくれるところ.勉強になる.もちろんRustもある! / Compiler Explorer https://t.co/9fppGUrHHG"
Compiler Explorer
Shirouzu Hiroaki(白水啓章)さんのツイート: "某大学の講義の感想で「(二分探索的な)printデバッグ時のコストが log2 N になる話が良く判らない」という感想が出たので、次回用にフォロー資料を書いてみたり。 再現性が良く、テストしやすいプログラムの場合、printデバッグは現代でも効率が良い問題究明方法。… https://t.co/M4FDQDATwG"
なかのん&マジックさんのツイート: "Linuxで他のモジュール内部も含んだスタックトレースってどうやってとったらええんかな。"
秀の介@柏さんのツイート: "Debianならデバッグシンボルパッケージをインストールすれば良いようです。 https://t.co/59tgzJ1q1T… "
Debian 9: デバッグシンボルのdbgsymでパッケージをデバッグする - Narrow Escape
なかのん&マジックさんのツイート: "おー、ありがとうございます。やってみます。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ワーカースレッドが多いとデバッガで見たいスレッドを発見するのが手間になっていく。 デバッガでコールスタック解析して、同じコールスタックで眠っているスレッドは除外するフィルタ等があるといいのだが。 (VSSDKで作れるのかな?)"
DrumatoさんはTwitterを使っています: 「自作バイナリに独自デバッグセクションを埋め込んで,それを解析するツールも実行プログラム基盤に埋め込めた!!! ・ユーザ空間に実装したローダ ・ --run オプション ・独自readelf ・ --relocs/-r オプション(これは一部) ・独自デバッグセクション ・独自readelfで解析可能 https://t.co/Qi4MMXf6Cs」 / Twitter
DrumatoさんはTwitterを使っています: 「ユーザが特定のフォーマットでコメントアウトした時.それをバイナリから参照できるようにしたいな. 新しくセクションを打って,ヘッダからそれを参照する. https://t.co/4yGJ3PofaI」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「マルチスレッドでタイミング依存、高負荷でのみ発生、最適化に依存(大半はコード側問題の顕在化&稀に最適化バグ)といった経験を経て大人になる…そしてprintf(リングバッファ的なロギング系含む)の侵入副作用の小ささと環境非依存に「再び鮒釣りに帰ってくる老人」みたいな心境に(笑) https://t.co/ASEQrrDhhk」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「永遠の初心者なのでprintf普通にします (gdbかました時だけ再現しない問題とか、普通に経験ある人多いんじゃないかなあ、。) https://t.co/rJoiNKKxEU」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全力動作でないと問題発生しない系に対して、ロギング用リングバッファを作ってメモリ上でトレース&問題検出と同時にダンプ。後は大量に出たログを眺めて動作を脳内シミュレート(と一連の作業のイテレーション)した人も多いのでは。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RS232C出力のコンソール画面だとフロー制御するので、stdout/stderr出力が固まるってありますね。 昔々、UNISYS WSで「システム動作が停止したぞ?」と大騒ぎになった時、誰かが画面電源をOFFにしていたオチ。(で画面ONにすると何事も無かったように動作再開…) https://t.co/sUzYc1gH5I」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「あるあるある、。RT そしてfflush(stdout)もセットになったりします(笑) stderrがシリアルコンソールに物理的にひもづいててリングバッファからのflushが異常遅延してとかそういう思い出があったようななかったような https://t.co/ZLiLfjy5qJ」 / Twitter
ryoさんはTwitterを使っています 「というかSMPでhardware watchpoint/breakpointを共有しないと使いものにならないというTODOを思い出した」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/bqgvd5sz7J ありましたね。 私が経験した中でレアなやつは コード整形しただけのはずなのに再起動するようになった(OSのバグ) gdbで起動するとgdbが落ちる実行バイナリ(gdbのバグ) 未定義命令で落ちる(VMのcpuidエミュレーションバグ) とか。そういうの集めてしゃべると楽しいかも。」 / Twitter
とみながたけひろさんはTwitterを使っています 「ログ出すとprintfがスタックをじわじわ使うのでそこで少しずつスタック拡張が起き、その次に呼ぶ関数でもスタックが使える ログなしだと該当関数がスタックを大量に確保していきなり前のほうを使うのだが、それをOSはスタック拡張と認識できず死ぬ というのがあったな…(光成さんも経験されてたような https://t.co/tjqpC7YVN8」 / Twitter
uchanさんはTwitterを使っています 「まてまてまてまて!なんだこの現象は。ログ出力を1行加えたら現象が治まったぞ!?(OS開発あるある)」 / Twitter
とみながたけひろさんはTwitterを使っています 「この現象に初めてはまった時は、リアルタイムOS厨だったので「スタックサイズ拡張なんて邪道だろ」とか思った記憶がある(中二病ぽい)」 / Twitter
ryoさんはTwitterを使っています 「PACのコード読み。なんとなく疑問点が氷解した。なぜPACがポインタ全体を暗号化せずにunused bitだけに認証コード埋め込むのかは、ポインタの値を拾いたい場合もあり得るからか。今のところlrだけなのでbacktraceくらいだけど。」 / Twitter
ryoさんはTwitterを使っています 「OpenBSDのRETGUARDはARM64 PACのソフト実装みたいな感じだが、こちらはspとreturn addressをxorしているので全bitが意味を為さなくなってポインタとしては扱えない。(が、db_traceでやってるみたいに自前でxorしなおせばいい)」 / Twitter

Kazuho OkuさんはTwitterを使っています 「printfデバッグ、二分検索を念頭において print 文を足していった結果、少ないステップ数で原因絞り込めると快感」 / Twitter
Rui UeyamaさんはTwitterを使っています 「すべてのCファイルをいったんgccでコンパイルして、そのあと1ファイルだけ自作コンパイラでコンパイルしてリンクするみたいな方法でミスコンパイルしている場所は比較的簡単に絞り込めるので、デバグはあんまり難しくない。」 / Twitter
ある🍄まじろう / 加来量一さんはTwitterを使っています 「printf() を挿入するとバグが止まることは本当によくあって、メモリ未初期化が収まるパターンとメモリ破壊がずれるパターンと、スレッドスケジュールが変わるパターンがある 特に最後のは気づきにくくて厄介」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「debuginfod (https://t.co/3WrAAVzHyn) を見ながら、やっとWiindows debuggerの世界の20年前に追いついたと。cdb/windbgだと20年前に出来たことだよな」 / Twitter
Introducing debuginfod, the elfutils debuginfo server - Red Hat Developer
Shinji KonoさんはTwitterを使っています 「結局、lldb 、Rust compilerに対して役に立ってない。デタラメに止めてstepくらいはできる。もう、debuggerの時代は終わりかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「アドレスが間違ってるので、nmの出力を解析できればアドレス直打ちで止められるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔と違ってgithub上でかなりいろいろできるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「gdb/lldbはコンパイラとの連携がそもそもダメ。Dwarf formatは言語非依存を目指したものだが、それ自体が時代遅れ。コンパイラ実装でも負担になるだけだし、表示は、その言語自体が行ないと無理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「サボってるのはgdb/lldb、あるいはソフトウェア工学そのものだな。なんか作るか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「OSのdebugger APIも古色蒼然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「lldb/gdbがうまくdebugできなくなってるのは、Rustだけじゃなくて、他の言語でもそう。C/C++でもだめ。」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「rustcに対してデバッガをかけたいというのは確かに大変そうだ…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「optimized binary + debug infoに対してどれぐらいデバッガが効くのかは分からないな」 / Twitter
κeenさんはTwitterを使っています 「そういうのなかったっけ?lspよろしくdebudder server protocolみたいなの。実装されてるかは知らないけど。」 / Twitter
κeenさんはTwitterを使っています 「MSのDebugger Adapter Protocolか。これ微妙だな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Rustc、一応、LLVMコード生成部分は捕まえられた。lldbは使い物にならなくて、gdbでもデータ表示はできない状態。40万行。」 / Twitter
mumumuさんはTwitterを使っています 「Reverse Debugging of Kernel Failures in Deployed Systems [ATC '20] 既存のPERTというAppのReverse DebuggingのツールをKernelに適用する.Kernel固有の問題として,system callはすべてのアプリケーションが呼び出すため,どのような単位でトレースするか,割り込みをどうするか等に対処している」 / Twitter
ぬるぽへさんはTwitterを使っています 「Logpoints, C/C++とかでもprintfと違って構造体をぶち込んで雑にログできて便利、という理想的な状態に反して実際は内容が省略されてしまう上に、表示がただのログアウトプットでブレークポイントと違ってインタラクティブなやつじゃないので中身をクリックして後から展開とかもできない」 / Twitter
ぬるぽへさんはTwitterを使っています 「理想的にはdev toolsのconsole.log状態になってほしいわね」 / Twitter
hsjoihsさんはTwitterを使っています 「@niw UTF-8 のデコードを覚えると Wikipedia とかのパーセントエンコードされた URL が読めるので実用的ですね。なお私は覚えてません」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「@hsjoihs ですねえ。デバッガとかでバイトそのまま読めたら便利だよなあと思った。」 / Twitter

bt

shinichiro hamajiさんはTwitterを使っています 「@nullpo_head @kazuho 僕は普段は backtrace 吐いて死ぬけど、環境変数セットしてあると getpid 表示して wait する、くらいが好みでした。これみたいな: https://t.co/88ubOcbLzH これだと /proc/&lt;pid&gt;/maps 見に行くとか、 gdb 以外のこともできますし」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ソフトウェアを配布するにあたっては、質の高いバグレポートをもらうというのは死活的に重要で、そのためには、きちんとしたバックトレーサを同梱しておくと良いので、僕は今のところ * backtrace_symbols_fd をシグナルハンドラで実行 * その出力をaddr2lineに噛ませるようなラッパーを予め起動」 / Twitter
Kazuho OkuさんはTwitterを使っています 「という方法をとってます。cf. https://t.co/cDGwQzIg57 https://t.co/e4i17DHQ3X」 / Twitter
h2o/main.c at 8ad43f45dd570e72e66cf2af70d8c6135c197776 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「これでだいたい行番号付きのバックトレースが送られてくる。ビルドされたgit commit idも入れるべきだな...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shinh @nullpo_head 実際のところシグナルハンドラ適用後に復帰する使い方ではないので、だいたいのケースで動けばそれでいいですね」 / Twitter

コールスタック

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「根の深い例外ダンプが送られてきた…起動時に作っているはずのメインObjのアドレスが0近傍になっている。 近傍=保持しているオブジェクト0でそのオフセット値という可能性高いも、何か合点がいかない感。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「類似状況を試したら、NTDLLを呼んでいる場合だけに現れる、一時的なコールスタック表示崩れの問題のようだ。 とはいえ、IP=0 でSEGV例外になった点は事実。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえばデバッガは、コールスタック途中のレジスタ復元どうやっているのだろう?(エピローグpushからスタック退避位置を推定?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「エピローグではなくプロローグ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「security cookie を有効のため、スタック破壊で0に飛ぶことは無い。 ということは、vtblの中身が破壊された?(obj ptrがnullの場合、vtblを引く操作でエラー=eipが0になる前に例外になるはず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ソースコードに bo_test() というコードを仕込んでいて、時折、有効化したビルドを行って、buffer overflow 時の挙動&ダンプの中身を確認している。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、今時のVC++は bo時の例外ハンドラ起動を許さないので、そのx86/x64コードにnopを動的に入れることで、自前ハンドラに飛ばすhackを行っている。 (良い子はマネしない方が良い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まあ年に数回であれば、ダンプを眺めるのは良い訓練。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たぶん判った。 これは特殊な条件で、OS/デバドラ側が非同期でスタックを壊しに来てる…うーむ、どうしたものやら。」 / Twitter

Custom section(WASM)

chikoskiさんのツイート: "custom sectionね。… "
chikoskiさんのツイート: "Custom section の仕様:https://t.co/JUTEAiTUjA"
Custom Sections — WebAssembly 1.0

int 3

histric-1

まさみさんは語りたいさんのツイート: "https://t.co/RL88Qp8eam デバッグレジスタを使ったメモリアクセストレース(所謂hwbreakpoint)の例外発生パターンが、一部の命令だけ違っていることを見落としていた話。ほぼ全ての命令ではメモリアクセス命令の直前で例外が発生するが、スタックセグメント(SS)レジスタのPOPとMOVだけ命令の直後。"
POP SS debug exception- CVE-2018-8897 [Moderate] & CVE-2018-1087 [Important] - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "基本的には全てメモリアクセス命令の直前で止まっていると思って処理をするため、例外発生アドレスが指す命令を記録してエミュレートする(あるいはDRを一時的にクリアしてシングルステップ実行?)ことになるけど、同じ処理をするとMOV SSとPOP SSだけ2度実行されることになる?"
まさみさんは語りたいさんのツイート: "うーん、なんかもっと深刻な酷さだぞ。何だこの酷い仕様。 the processor delivers pending interrupts and/or debug exceptions after the first instruction following when the stack switch is executed."
まさみさんは語りたいさんのツイート: "普通スタックの切り替えはセグメント切り替え+スタックポインタ復帰の2命令で行われる MOV SS, [RAX] MOV RSP, RBP なのでデバッグ例外は2つめの命令が実行されるのを待ってから行われると。 ところが単に命令数をカウントしているだけなので、MOV RSPではなくSYSENTERとかだと・・・"
まさみさんは語りたいさんのツイート: "MOV SS, [RAX] SYSENTER で、RAXの指すアドレスのリードアクセスをデバッグレジスタに指定すると、デバッグ例外がSYSENTERのハンドラ(ring0に変更済み)の先頭で発生する・・・? そうか、そうするとkaslrで移動させたアドレスがバレバレになるのか。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i んー??CVE-2018-8897は違う問題か?icebp(ICE breakpoint)っていう隠し命令があるという話。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebp、胸熱命令だな。int3はBP例外を発生させるけど、icebpはDB例外を発生させることのできる命令らしい。ICEが繋がっているとそちらからハンドリングできるソフトウェア命令と。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i 修正パッチが全く違うのは異なるCVE番号が付いているから。2つのCVEがあるという話らしい。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebpはint1か。linuxカーネルだとdo_debugでヒューリスティックにicebpではないかと推測して処理されるけど、kvmではvmxに明示的にフラグが立つので確実に処理できると。"
まさみさんは語りたいさんのツイート: "Loading the SS register with a MOV instruction inhibits all interrupts until after the execution of the next instruction. This operation allows a stack pointer to be loaded into the ESP register with the next instruction (MOV ESP, stack-pointer value) before an interrupt occurs."
まさみさんは語りたいさんのツイート: "If a code instruction breakpoint (for debug) is placed on an instruction located immediately after a MOV SS instruction, the breakpoint may not be triggered."
まさみさんは語りたいさんのツイート: "However, in a sequence of instructions that load the SS register, only the first instruction in the sequence is guaranteed to delay an interrupt."
まさみさんは語りたいさんのツイート: "In the following sequence, interrupts may be recognized before MOV ESP, EBP executes: MOV SS, EDX MOV SS, EAX MOV ESP, EBP えっ、なにそれ??"
まさみさんは語りたいさんのツイート: "本当に一命令だけ遅延させるんかwww"
まさみさんは語りたいさんのツイート: "あっ、これはIntelの聖典のMOV命令のところに書いてる。"
まさみさんは語りたいさんのツイート: "2018 MayのIntel SDMではICEBPという名前が見えるけど、一箇所だけ、脚注にあるだけっぽい。"

まさみさんは語りたいさんのツイート: "MOV SS/POP SSはシングルステップ実行のトラップも遅延させるぐらい強力なものなのか。kprobesの場合、MOV SS/POP SSは両方共booster対象なのでシングルステップ実行はしないけど、uprobesはヤバイんじゃないかな。"
まさみさんは語りたいさんのツイート: "https://t.co/JlzgRoXsYf Andyの書いたテストプログラムに酷い仕様が書かれている。MOV SSのあとにint3を挟むと、なんとint3の例外は発生せずdebug例外だけ起きるらしい。"
まさみさんは語りたいさんのツイート: "これからint3を入れるときには、事前に一つ前の命令を確認してmov ssではないことを確かめないといけないってことになるのでは。あるいはdo_debugで発生命令がint3だったときにはdo_int3を呼び出すとか。"
まさみさんは語りたいさんのツイート: "んー?int3とbreakpointが別れて書かれてるということは、このbreakpointはhw breakpointのことなのか。じゃあ大丈夫かな?"
まさみさんは語りたいさんのツイート: "最新のIntel SDMをダウンロードして、"MOV SS"で検索すると、凄いポピュラーな単語になっててワロタw"
るくすさんのツイート: "CVE-2018-8897ようやくちゃんと読んだんですが、これは結局Linuxだと MOV SS, [RAX] INT 3 とすると、INT 3を実行して#BP用のISTが切り替わった最中に1行目のwatchpointにより#DBが届いてしまい、同じISTを使おうとしてカーネルクラッシュ→DoS という認識で良いのかな"
るくすさんのツイート: "ただ一つ分からないのが、Linux以外で#DBにISTを使わずそのままカーネルスタックを使うような設計のOSだと"権限昇格"ができる可能性があると記述されているのだけど、これはどういう意味なんですかね..."
まさみさんは語りたいさんのツイート: "MOV SS; INT3の場合、BP例外ハンドラの先頭でDB例外が発生→処理されてからBP例外が継続、なのでこのケースは気にしなくてもいいっていうことだな。むしろMOV SSにINT3入れるとSingleStepが出来なくて死ぬ。"
るくすさんのツイート: "Linuxカーネル開発サイクルに関する一般的な質問なのですが、いくつかのパッチは、とりあえずマージせずにstable-queue(?)とかいうのに置いてあって、今回過去のパッチが脆弱性修正に繋がると判断したのでmainlineにマージしました、という認識であってますか?… https://t.co/WNYer77UF4"
まさみさんは語りたいさんのツイート: "というわけでkprobesとuprobesのパッチ作っているなう。"
まさみさんは語りたいさんのツイート: "mov hoge,%ssなんて見つかるわけ無いだろー?とか思ってたら案外_switch_toでさっくり見つかって驚いている。"
まさみさんは語りたいさんのツイート: "LSS使えってSDMに書いているのに、結構ポピュラーなんだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、実行される箇所はポピュラーだけど、実際にこれ以外にはsecondary_startup_64ぐらいでしか見つからないので、ポピュラーとはいえないか。"
まさみさんは語りたいさんのツイート: "arm64のpatch_textの実装確認したらstop_machine使ってた・・・まじか。"
まさみさんは語りたいさんのツイート: "stop_machineはかなり重い処理だから、余り使いたくない。特にコア数が増えるとものすごいジッタが発生するはず。IPI送って、それぞれのコアの待ち合わせを行った上で、処理をしてる間も止まってるわけだから。"
まさみさんは語りたいさんのツイート: "x86の場合はint3使って迂回路を生成して書き換えるっていうkprobes由来の方法が一般化されて利用されてる。さらにエイリアスページを使う念の入りよう。"
Kazuho Okuさんのツイート: "Linuxの USDT サポートが /proc/<pid>/mem を開いてフラグを書き換えたり、おそらく同時に NOP -> INT3 してることはわかったけど、INT3 受け取ったカーネル内での、デバッガ呼び出しと eBPF 呼び出しの切り分けはどうやってるんだろう"

@mhiramat

まさみさんは語りたいさんのツイート: "おっ、綺麗にスタックが出た!っとおもったら何故か PC is at _raw_spin_lock_irqsave+0x2c/0x6c これはひどい。(多分メモリ領域壊している)"
まさみさんは語りたいさんのツイート: "にわかには信じられないけど、この2つの関数の組み合わせだけで起きる。一つずつだと起きない。関連性が全く分からん。"
まさみさんは語りたいさんのツイート: "ウオオオわかった https://t.co/SVYRV1RS1v kprobe on arm、お前・・・未定義命令だったのか・・・"
まさみさんは語りたいさんのツイート: "いやそれはおいておいて、アセンブラを書く羽目になっている"
まさみさんは語りたいさんのツイート: "よし、本件についてはクローズしたとみなす。"
まさみさんは語りたいさんのツイート: "あちゃー、まずいな。ftraceとperfの両方がそれぞれ違うring_buffer構造体を作ってるんだけど(同じ名前で)、debug情報がこれをごっちゃにしているのが分かった。ftraceのring_bufferをダンプするとperfのring_bufferの型をつかってダンプしよる・・・。"
まさみさんは語りたいさんのツイート: "えっ、これgdbのバグ?binutilsのバグ?gccのバグ??"
まさみさんは語りたいさんのツイート: "IDA/radare2 というのを使って逆アセンブルする。radare2というのがベーシックブロック解析付きの逆アセンブラみたいな感じ? #kernelvm"

@fadis_

Fadisさんのツイート: "CPUを初期化ペリフェラルの初期化、DRAMの初期化をした後u-bootは自身をRAMにコピーしてそこにジャンプする。→ アドレスが変わるためgdbで追うのが辛い → relocateaddrを調べてgdbでadd-symbol-fileする #kernelvm"
Fadisさんのツイート: "書いたコードがSEGVで停止するのは幸運なケースだ。本当に面倒なバグは配列の範囲外だけど書き込み可能なページ内をしれっと書き換えていく"

Kazuho OkuさんはTwitterを使っています 「CI で asan だけコケてるの見て、これはなんか遅い場合だけ出るタイミング依存のバグかなーってんで考えて、テストコードいじって再現成功して、USDT probe 使って原因つきとめて、修正パッチ書けたから今日はいい日」 / Twitter
まさみさんは語りたいさんのツイート: "Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 #ldnews https://t.co/yRsSKYWcbX 面白い。メモリ断片化でフリーズって、昔はサーバの問題だったのに。"
Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 - ライブドアニュース
C++でOS自作 技術書典5 お05さんのツイート: "研究ではC#に対して実装してた。事前に対象プログラムにデバッグコードを埋め込むことで、ステートメント単位の実行、変数の値の取得などを行っていた。C++でやるとしたらLLVMでASTを取得して書き換えれば同じことができそう。"
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「実行時エラーのほうが具体的な実行コンテキストがある分、バグを潰しやすいと思う。なので、コンパイラがエラーを吐く時には、具体的にどんな実行コンテキストだとどのような実行時エラーにつながるかを例示して、実際にそのような実行トレースを生成してデバッガを起動して欲しい。」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「コンパイルエラーが厳しいって意見、しばしば見ますけど、それ実行時エラーのほうがいいですか……?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「面白い。けど処理の性質次第という気も。 木構造の制御に直接データが流れる場合、コンテキストの情報はスタックに乗ってるけど、高階関数を渡して制御グラフを組み立ててからデータを流すような処理の場合、実行時エラーが出た時には「組み立ての手順」はもう見えないことが多い。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「静的解析のサポートが欲しいのは後者のような場合で、「エラー時の実行環境を見れば分かる」ようなバグならあまり必要性は高くないとも言える。 あと後者で静的にエラーが出た場合は、そもそも「実行可能な組み合わせが作れない」ということだから実行時エラーを例示することも不可能だったり。」 / Twitter
DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
Debugging Go Code with GDB - The Go Programming Language
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザのconsoleの進んだ使い方。 console.log(width); ではなく console.log({width}); とすると変数名も含めて表示される、というのは初めて知った。 他にもログのグループ化や表形式、Live expressionによる値のライブ表示や VS Codeによるリモートデバッグの紹介。 https://t.co/UzP3NlJYRi」 / Twitter
Developer Tools secrets that shouldn’t be secrets | Christian Heilmann
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「デバッガで関数にブレークポイントを指定すると、通常は引数が見れるように関数prologueの直後で停止することが多い。しかしprologue位置の検出は結構大変である。これは言語によって異なるうえに、最適化によっても変わるためである。 https://t.co/0PDIyaoxpL」 / Twitter
Where Should the Debugger Set a Breakpoint?
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「DevToolsのデバッガー、ブレークポイントだけじゃなくて「この式通った」って印を残すだけの機能が欲しい。console.logを書けばいいんだけど、外部のライブラリーに手入れたくないし、ブレークポイントで止まってしまうと再開のためにマウスを放さなければならず、drag and dropとかが途切れちゃう」 / Twitter
Miura HidekiさんはTwitterを使っています 「@igrep gdbなら可能だけど、DevToolsだとどうだろう?って思って調べてみたらそれっぽいものがありそうです。頓珍漢だったら済みません https://t.co/RycsfcbXrX」 / Twitter
[小ネタ] ログポイント機能でChromeで表示中のページにロギングを挿入する | DevelopersIO
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@miura1729 おお、気付いてませんでした!ちゃんとFirefoxにもあるみたいですし、ありがとうございます! https://t.co/oC3REKHPOP」 / Twitter
Set a logpoint — Firefox Source Docs documentation

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
ぬるぽへさんはTwitterを使っています 「外部入力がデフォルトで分離されてて内部に非決定性の無いwasmは、実装がめっちゃ簡単なのでデバッガはtime travel debugできるのが標準になってほしい、そしてproxy-wasmとか組み込み環境にとってこそデバッガがタイツトラベルを標準サポートしてくれるとめっちゃ嬉しくない??」 / Twitter
Add wasminspect as source-level debugger by rhysd · Pull Request #1 · vshymanskyy/awesome-wasm-tools
Makoto Kato ︎︎さんはTwitterを使っています 「WindowsからLinuxがらみに戻ってきて、びっくりしたのは、カーネルデバッガとかカーネルダンプ取得がデフォルトで出来ないってところだった。なんだよ、kexecでの制約受けたり、パッチ当てないと出来ないだなんて、Linuxって開発者フレンドリーじゃないよねと。」 / Twitter

LLVM bugpoint

Miura HidekiさんはTwitterを使っています 「将棋みたいにデバッグのための操作をしたらそれがどのくらい有効か点数が出るAIがあるといいのに。」 / Twitter
Miura HidekiさんはTwitterを使っています 「いや、本当に有効なデバッグ方法は再現する最低限のプログラム・入力データを切りだすことって分かっているんですけどね...。この作業ははっきり言って面白くない。少なくともそれ以外のprintf/breakpointで試行錯誤するデバッグより」 / Twitter
LLVM Bugpoint | Logan's Note
LLVM bugpoint tool: design and usage — LLVM 13 documentation
llvm bugpoint - Google Scholar
Concolic testing - Wikipedia
QuickCheck - Google 検索
C-Reduce
csmith-project/creduce: C-Reduce, a C program reducer
Test-Case Reduction for C Compiler Bugs - pldi12-preprint.pdf
uint256_tさんはTwitterを使っています 「@tenpoku1000 @miura1729 https://t.co/OxQx1TyBUX コードを見ればわかりそうですね(大したことはやっていないように見える)」 / Twitter
llvm-project/llvm/tools/bugpoint at main · llvm/llvm-project

クラッシュダンプ

MS

その他

usskim / ワトソン博士
Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説
Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法 - Web/DB プログラミング徹底解説
「ReadProcessMemory 要求またはWriteProcessMemory 要求の一部だけを完了しました」と出てアップデートが出来ません - HASP
めもりーくりーなー 「ReadProcessMemory 要求または~」と出る?
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
Windows:Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法
NKY-TECH. ソフトウェア開発部: プロセス ダンプ(ユーザー ダンプ)の作成
デバッガを接続していないアプリが不正終了した時にミニダンプを作成する方法
「その場で」と「あとから」と成功体験 - NyaRuRuが地球にいたころ
他プロセスのメインモジュールのエントリーポイントアドレスを取得したい。 • C言語交流フォーラム ~ mixC++ ~
i4shamrock - きままに情報発信
メモリダンプから様々な情報を抽出するためのオープンソースのツール : volatility
IBM MustGather: Windows でのアプリケーションやシステムハングの診断情報収集について - Japan
DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows XP/7/8/10のセッションとプロセス
Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Docs

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "MiniDumpWriteDumpで特定の仮想アドレス範囲を除外したダンプを作るには、MiniDumpCallbackを用意して、ごにょごにょすれば可能なはずなのだが、どうも上手くいかないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsgで例外ダンプが送られてきて解析したのだが、ダンプから推測した範囲ではNICにIPアドレスを100個以上付与している環境らしかった。(例外発生はそれに起因) ともあれ、ミニダンプは解析にとても役立つ。 https://t.co/Q9gepzbHfG"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ログ(スタックのhexデータ)から手動で関数フレームを辿る計算をしていた時代に比べると、統合環境から解析できるようになったのは、徒歩から新幹線くらいの差がある…(稀に脱線して使えないときは、想像力+手計算が有効な場合も)"
Windowsで不要なデータを除いたダンプを作成する
Windowsで不要なデータを除いたダンプを作成する
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、delete [] p; のようなコードで例外発生していた。 ダンプ解析経験者なら皆ご存じの通り、メモリ開放中の例外は解析が困難なことが多い。(原因箇所よりも後で例外発生のため、原因箇所が確定しづらい) ただ幸い今回は原因箇所と例外発生が近かったため、比較的スムーズに解析できた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ヒープではなくスタック侵犯だと、カナリア検出で例外発生となるはずだが、関数フレームも壊れている可能性が高いため、解析はかなり困難になる。 (とはいえ、(カナリアなしで)存在しないメモリ番地に飛んで落ちるよりはマシで、命令アドレスは一応見える、はず)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみにVCライブラリのカナリア処理は、例外ハンドラ登録(SetUnhandledExceptionFilterで登録した関数)に遷移せずに強制終了するコードになっている。 (IPMsg/FastCopyではここにメモリ上でパッチを当ててダンプを出してから強制終了するようにしている)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "といったことを書くと、未だにメモリ管理で消耗してるの?とか煽られる時代になった気も…いや、それはそれで正しいんですが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Wine上で作成されたミニダンプがVisualStudioでそれなりに見える。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy v4系の初ダンプは、意図的なクラッシュルーチン発動だった。 どうも、特殊なファイルシステム(NFS経由?)を使っているらしく、FileAttributeが0でかつオープンに失敗するという謎の環境によるもの。 https://t.co/vGZsaGeCYE」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちなみに CRASH_WILLFULLY == __debugbreak() ≒ int 3) https://t.co/D3WhG606vu」 / Twitter
__debugbreak | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「相変わらず、XP以降で導入された mini-dump機構は便利。 (ただし取れるdmpデータの厳選&圧縮は必須)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「dump圧縮で、zlib最高圧縮より Win10 zipの方が圧縮率高い様子。」 / Twitter

Minidump Files (Windows)
MINIDUMP_TYPE enumeration (Windows)
ReadProcessMemory 関数
クラッシュ ダンプの分析
メモリ ダンプ ファイルを生成する方法について | Ask CORE
OCA ミニダンプ ファイルをデバッグする - Windows 10 hardware dev
Using WER (Windows)
クラッシュが発生した場合に、Windows によって作成された最小メモリ ダンプ ファイルを読み取る方法
Windows でシステム障害と回復のオプションを構成する方法
クラッシュ後 Windows でメモリ ダンプ ファイルが保存されない
Windows Server 2003 でカーネル ダンプ ファイルや完全メモリ ダンプ ファイルを生成する方法
シンボルを使用したデバッグ
Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター
Symbol Files (Windows)
DBG ファイル
Windows ベース システムでは、NMI を使用して、完全なクラッシュ ダンプ ファイルまたはカーネル クラッシュ ダンプ ファイルを生成する方法

ブルースクリーン

本の虫: Old New Thing: ブルースクリーンを書いた人間は、まあ、僕さ
クラッシュ・ダンプ - マイクロソフト系技術情報 Wiki
@IT:Windows TIPS -- Tips:障害調査用のメモリ・ダンプを無効にする
一方、ふうえんさんちでは… メモリ異常によるブルースクリーンの対処法
WinDbg
デバッグにあると便利なシンボルとは? - Web/DB プログラミング徹底解説
DBGファイルを活用する方法
なかのん&マジックさんのツイート: "とりあえず、BSODはドライバが原因の場合は、どれがクラッシュしたのかの情報を明示して欲しい。「最近、追加したハードウェア、または更新したソフト」みたいな文言は、自動アップデートが当たり前な昨今、ナンセンス。"
なかのん&マジックさんのツイート: "BSODの画面上デザインを変更するときに、なんで、根本的に分かり易いエラー内容表示にしようとしなかったのか、割と不思議に思ってる。"

マルチスレッド

Windows C++ マルチスレッドアプリケーション デバッグ法 | Wander Alone Like A Rhinoceros Horn
めんどうくさいSQL Serverのデバッグ (1/2):EnterpriseZine(エンタープライズジン)
gdbでのマルチスレッド処理のデバッグや制御について - 千里霧中
(第22回)GDBのスレッド対応(その5:スレッド切替えとまとめ)
Debugging with GDB: 5.4 マルチスレッドプログラムの実行停止と実行再開
Debugging with GDB - 停止と継続

マルチプロセス

Debugging with GDB - GDB配下でのプログラムの実行
Debugging with GDB: 4.11 forkするプログラムのデバッグ
既に起動しているプロセスをgdbで制御する:Geekなぺーじ
マルチプロセスデバッグと資源割り当てで思いを馳せる | Everyday Deadlock

kdump

kdumpでダンプを取得する方法
26.2.3. コマンドライン上で kdump の設定 - Red Hat Customer Portal
第26章 kdump クラッシュリカバリーサービス - Red Hat Customer Portal
第1回「 kdump ノススメ」 | NTTデータ先端技術株式会社
カーネルダンプ出力設定メモ - Qiita
kdump
CentOS 6 で kdump の設定をしてみた | 黒ぶちメガネのblog
◇Kdump(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
kdump (Linux) - Wikipedia
Kdump - ArchWiki

POSIX

Solarisでいきましょか? -クラッシュダンプ(PANIC)-
ダンプ解析講座 ~第3回 ダンプの構造~ | VA Linux Systems Japan株式会社
Executable and Linkable Format - Wikipedia
Tips ELFフォーマットその1 ELFフォーマットについて
gdb - ELF core file format - Stack Overflow
Anatomy of an ELF core file - /dev/posts/
A brief look into core dumps
Man page of CORE
core(5) - NetBSD Manual Pages
How to read/write memory in an external process
Microsoft/ProcDump-for-Linux: A Linux version of the ProcDump Sysinternals tool

Android

Crash Fast: Androidのクラッシュに対するSquareのアプローチ
Google – www.developer-plus.com
xuningjack/JCrash: Android自定义异常处理模块(Based on KSCrash)

Java

システムのクラッシュ
JVMのクラッシュ
ポストモーテム診断ツール

ストレートマップ

魔術師見習いのノート

Wikipedia

Memory corruption - Wikipedia
コアダンプ - Wikipedia
Core dump - Wikipedia
クラッシュ (コンピュータ) - Wikipedia
ブルースクリーン - Wikipedia
Blue Screen of Death - Wikipedia

GitHub

pd: process dump
glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.

Twitter

その他

Fadisさんのツイート: "Linuxカーネルにクラッシュしたとき代わりのカーネルを上げてデバッグする仕組み(kdmup)があるようにsystemd死んだら死んだとき用systemdが上がってくる必要がありそうなヤツだ…"
ぶんちょうさんのツイート: "次鳥小屋作るとしたら、どう考えてもwebサーバーがsandboxのwsサーバーのアドレスと認証キー返すようにして、ブラウザはそこに繋ぎに行くだけの設計にするんだよな"
メモリダンプと模様が見える男|kamezawa.hiroyuki|note
Makoto Kato ︎︎さんはTwitterを使っています 「MSのPermier Supportだと一日数本ダンプ解析の依頼来てたけど (今はしらない)、ジュニアなエンジニアに解析させると、わからないのに頑張って調査しようとするから、あれをジュニアな人たちにやらせるのはそんなに良くないんだよな。個人的にはダンプ解析なんてジグソーパズルみたいなものですよ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「NとかFとかHとかが中途半端に解析してきたログを見ると、半分以上見当違いな調査してて、まぁなんというか、センス問われる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「というかWindowsでもそうだったけど、論理的な原因理由がないとクラッシュダンプの痕跡だけだと、直さないの普通じゃない?日本のパートナー企業はそういうところで変なこと言い出して揉める印象」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「もちろん政治的に揉めた案件とか、信頼できる人からの修正リクエストだと、必ずリジェクトされることではないが。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ただダサすぎな例外もあって、組織として (WinDiv) 、クラッシュレート下げろっていう指令がトップダウンで落ちてした時なんて、よくわからないワークアラウンドコードが入ったりしてた」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "WinFsp(Windowsファイルシステムプロキシ)、Windows版Fuseの一種らしいが、実用レベルで使えている印象。 https://t.co/eNNuJ4AUF7 (ドイツから、FastCopyに例外が出るという連絡で知った)"
Main | WinFsp
billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダンプ解析したところ、WNetGetUniversalName が成功を返しているのにlpUniversalNameがNULLなのが原因。 WinFspの互換性が微妙に足りていないのか、WNet系に渡せないという意味で意図的にNULL?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ともあれ、こういう類の解析は嫌いじゃないなぁ。 次のバージョンから、ミニダンプも入れる予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「例外ダンプは無駄にスカスカなので、zlib圧縮化。 8MB -&gt; 0.9MBと約1/9くらいに。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「このバージョンから例外ダンプをzlib圧縮したので、1MB未満になることが多くなるはず。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「内部エラーが検出された時は、「内部エラーが発生しました」などを表示するより、安全にクラッシュさせてdumpを送ってもらった方が良いな。 (滅多にある話ではないけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラマーの特性として、クラッシュはつい禁忌しがちだけど、自前ダンプ機構を実装しているときは意識を変えたほうが良さそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「確実にクラッシュさせる方法についての議論。 Redisは *(char*)-1 = 'x'; らしい、、、正確には未定義かもだが、現実的なコードと。 https://t.co/1oQ24rkm74」 / Twitter
What is the easiest way to make a C++ program crash? - Stack Overflow
蒲地 輝尚さんはTwitterを使っています 「@shirouzu これほんとそうですね。例外をつかまえてエラーメッセージを表示するほうがユーザーにとっては親切かと思うんですが、クラッシュダンプがないと例外の本当の原因がわからないままになってしまう。そして開発者に通知されることもなくいつまでも残ってしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc そう思います。 Windowsだとダンプ出力の送付は、ユーザにおまかせ(メール等)という感じなのですが、Android/iOSは送信する仕組みがあるのでしたっけ。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu ユーザーが診断情報の提供に同意していれば、クラッシュ時の状況が自動送信されます。Androidはこれがないととてもデバッグしきれませんでした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc それいいですね。Windowsにも搭載して欲しい…」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu @tkmc 法人なら WER が使える可能性がありそうですが、書籍「Advanced Windows 第5版 下 第26章 エラー報告とアプリケーションの回復」に書かれています。利用経験がないので、今でも使えるのかは不明ですが: Windows Error Reporting - Win32 apps | Microsoft Docs https://t.co/KaOtfJd86g」 / Twitter
Windows Error Reporting - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tenpoku1000 @tkmc ありがとうございます。 あのレポートシステムは、MSしか使えないかと勘違いしてました。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu @tenpoku1000 これでデバッグが捗る! ^^」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ だと __debugbreak() を使うのが良いかも。 (例外コードが int3 ... 0x80000003 になり、SEGVの 0xC0000005 と間違わずに済む) https://t.co/tQf6IPaSEl」 / Twitter

@vyv03354

vyv03354さんのツイート: "@piro_or Cu.crashIfNotInAutomation(); で、Mozillaの自動テスト環境以外なら「安全に」(メモリ破壊を起こさず)クラッシュさせられます。"
vyv03354さんのツイート: "Firefox 62からabout:crashparentとabout:crashcontentが追加されて、さらにお手軽にクラッシュさせられるようになりました。 https://t.co/VqsGtkKKYQ… "

@rockridge07

Rockridgeさんのツイート: "Firefoxのクラッシュ率を分析・比較するMission Controlは、現在も開発中。2018年後半に正式版へ。参照:https://t.co/qXKKoCRgB0 / “Mission Control update” https://t.co/LLhyatSRac"
Rockridgeさんのツイート: "Mozillaが測定しているFirefoxのクラッシュ率は、検知したクラッシュ数をアクティブな利用時間で割って算出しているらしい。Android版は利用時間が少ないため、デスクトップ版と率を比べるのが困難だという。 / “Fir…” https://t.co/j9zbp45uKr"
Rockridgeさんのツイート: "Mozillaはユーザーからのデータ収集を必要最小限にとどめ、データを収集する場面ではユーザーに通知し、収集したデータはきちんと保護するという。 / “Lean Data Practices — Mozilla” https://t.co/R2QpFKzoGn"

@satoru_takeuchi

satさんのツイート: "「ハードが悪い」って、言葉にすると簡単なんですが、サポートからしたら重い言葉です。直接ハードが犯人である証拠は掴みづらいので、だいたいは「ソフトではありえない」という方法で証明する必要があります。これがかなりつらい"
satさんのツイート: "さらにハード屋さんに通じる言葉(たとえば論理CPU番号でなくLAPIC ID、とか)でボールを渡さなきゃいけない、とか。その後ハード交換しても再発したら交換したハードの原価と工賃をドブに捨てることになりますし、「おい、話が違うやんけ」となって泥沼"
satさんのツイート: "体感ではカーネルパニックの殆どはソフト(カーネル)バグで説明付きましたね。メモリを含む「ソフトではありえない。これはハードだな」ってケースはかなり珍しい"

@jeffi7

Taisuke 'Jeff' Inoueさんのツイート: "これが組み込みになると「ごめん、ハードやったわ、リメーク、リメーク。あ、ワークアラウンドこれね。」ってのがそこそこの頻度であるので(ry… "
Taisuke 'Jeff' Inoueさんのツイート: "スマホとか競争が激しくて先を争って新しいハードを積むやつは、チップセットもボードも、従ってBSPやドライバも、ほんでOSもみーんな新規だったりするので、枯れてるのはカーネルくらい。低レベルがおかしいってなったら、ハード屋とソフト屋ががーっと集まって一緒にデバッグしてましたね。… https://t.co/PsrMiMaTgX"

@d_toybox

sanonosa(インフラエンジニア)さんのツイート: "経験的に、OSのブルースクリーンやカーネルパニックはメモリ故障起因が多い。CPU使用率いきなり100%継続はストレージまわり起因。NIC link upがいきなり1Gbpsから10Mbpsとかに落ちるのはLANケーブル不良起因。この手の話しをうまく本に収めたいけどうまく書けなくてつらい。"
なかのん&マジックさんのツイート: "私の経験では、BSODはドライバのバグも多い。"
なかのん&マジックさんのツイート: "クラッシュしてる理由は納得だけど、nsIFrameのアドレスが全ビット1になってるの、どういう状況なんだっけ。 / [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report https://t.co/O2BygMnkGZ"
[@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report - Report ID: 1890d652-b339-4bf5-bfa9-b44560190605
Makoto Kato ︎︎さんのツイート: "ハードウェアエラーによるビット化けかUse After Freeかと… "
なかのん&マジックさんのツイート: "確かnsIFrameのインスタンスはPresShellが用意してる広大なエリア上に確保されるんで、delete時にわざわざビット立ててるかもしれないんですけど、そのコードをまだ発見していないんですよね(セキュリティのために元データを消してしまう話があったような)。… https://t.co/eClb9YWEoL"

@mhiramat

まさみさんは語りたいさんのツイート: "うッ・・・新人の時に最初に担当したカーネルロックアップ(しかもしばらくしたら復帰する)が、どうやって調べても当時最新技術だったHTが絡んでいたのではないかというトラウマが。(タイミングよく全スレッドでSpinlock取り合うと、関係ないロック同士でも動作がめちゃくちゃ遅くなる)"
まさみさんは語りたいさんのツイート: "まあ、あんなにハードウェア由来の問題だったのはあとIA64サーバで起きたロックアップ問題ぐらいだし、初物のハードウェアは老舗であっても問題が多いっていうことですね。"

障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | 開発手法・プロジェクト管理 | POSTD
Go言語のトラブルシューティング機能 // Speaker Deck
エラーレポートツール - LibreOffice Help
暗号屋から見たEメールの死について(EFAIL解説) - そんなことはさておいて
Webシステムへのアクセス集中時に処理要求を待ち行列で管理するWebアクセス制御システム「WebLobby」を発売|日立ソリューションズ((旧)日立システムアンドサービス)
iOS13にバグが多い理由、元Appleのソフトウェア技術者が語る - iPhone Mania
Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記
Linux 版の Sysinternals ProcDump を試す (2) - hibomaの日記
Windows の予期しない再起動が発生した原因について | Microsoft Docs
イベント ID 41 に関する高度なトラブルシューティング-"システムは、最初に正常に起動していない状態で再起動しました" | Microsoft Docs
メモリダンプの模様とはどのようなものなのか(入門編) - 覚書
第673回 カーネルのクラッシュ情報を取得する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第674回 カーネルのクラッシュ情報を解析する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
SODA NoriyukiさんはTwitterを使っています 「BSD系等ではまだ「ps -M /dev/mem」でカーネルメモリを直接読んで動いたり。 残ってる理由は-Mでkernel crash dump ファイルを指定して postmortem debug する用途がまだあるから。 あとBSDでは/procファイルシステムは必須じゃないので、psのデフォルトではsysctl(2)でプロセス情報を取得します。」 / Twitter
Apport ~Ubuntu のコアダンプ作成動作~ - VA Linux エンジニアブログ

SEH

MS

例外処理 (x64)

例外処理 (x64)

例外処理とデバッガー サポートのためのアンワインド データ

例外処理とデバッガー サポートのためのアンワインド データ
構造体 RUNTIME_FUNCTION
構造体 UNWIND_INFO
構造体 UNWIND_CODE
チェーン アンワインド情報の構造

アンワインド プロシージャ
言語固有のハンドラー

MASM のアンワインド ヘルパー

MASM のアンワインド ヘルパー
生の擬似演算
MASM マクロ
スタック割り当て
動的なパラメーター スタック領域の構成
関数の型
malloc アライメント
alloca

C でのアンワインド データの定義

Visual C++ での例外処理
C++ 例外処理
構造化例外処理 (C/C++)
Structured Exception Handling Functions (Windows)
Structured Exception Handling Structures (Windows)
RtlUnwindEx function (Windows)
Masaru IritaniさんはTwitterを使っています: 「今日は同僚の方に Stowed Exception について教えてもらいました。記録されたときにはもう居ない、幽霊のような例外ですね。運が良ければ手掛かりが掴めるかも、と…… https://t.co/mQ5hmLZ8KL」 / Twitter
Stowed Exception C000027B | Inside Show | Channel 9
__C_specific_handler 関数 (Wdm) - Win32 apps | Microsoft Docs
Structured Exception Handling (C/C++) | Microsoft Docs

x64

Vectored Exception Handling

Vectored Exception Handling (Windows)
Using a Vectored Exception Handler (Windows)
Windows ベクトル化例外処理 (ベクタ例外処理, VEH) - Web/DB プログラミング徹底解説
GCとか継続とか例外処理とか | 日々の反省1
W64.Shruggle.1318 | シマンテック 日本

Exploring the x64
www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
16.2. win64 Structured Exception Handling
X64 の TrapFrame は信用できない? - Beyond the Basics - Windows Debugging & Troubleshooting Blog - Site Home - TechNet Blogs
japanese.sugawara-systems.com/systemverilog/movement_to64.htm
X64 Deep Dive - moon-walker's tech blog
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Makoto Kato ︎︎さんのツイート: "dwarfいらず"

x86

SEHOP・EMET

Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – Security Research & Defense
SEHOP per-process opt-in support in Windows 7 – Security Research & Defense
SEH_Overwrite.pdf
EMETReport.pdf
Application Compatibility Database - Google 検索
www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~番外編SEHOP~ « 他人の空似
EMET 4.0/4.1のSEHOPおかしくね? - Togetter
Nothing but Programming: SEH and SEHOP 現在の疑問
SEH and SEHOP 現在の疑問 とりあえず解決? | JugglerShu.Net
WindowsでEMETを回避するシェルコードを書いてみる - ももいろテクノロジー
Microsoft、脆弱性緩和ツール「EMET」の開発を終了 - 窓の杜
EMET の新しいバージョン V.2.1 をリリースしました! – 日本のセキュリティチーム
EMET は Windows 10 Defender Exploitation Guard へ統合されます – 日本のセキュリティチーム
EMET II のさらに先へ – Windows Defender Exploit Guard – 日本のセキュリティチーム
Enhanced Mitigation Experience Toolkit - Wikipedia
How to enable Structured Exception Handling Overwrite Protection (SEHOP) in Windows operating systems
Bypassing SEHOP
Bypassing SEHOP

/SAFESEH (安全な例外ハンドラーがあるイメージ)
C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション - Glamenv-Septzen.net
15.2. win32: Safe Structured Exception Handling
Nothing But Programming - SEH
A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997

C++

C 関数を通過する例外

herumiさんのツイート: "yupo5656さんの記事は大昔読んだことあります。 でも何年か前に試したときは動くようになってました。 https://t.co/dlq1b8gKsS 今試したらyupo5656さんのコードも落ちないようです(gcc-7, clang-6.0)。 https://t.co/XH6ke51Hnr"
misc/cpp/throw_in_c at master · herumi/misc
yohさんのツイート: "#nakamecpp で @herumi さんが言及してたC関数を例外通過する件 https://t.co/htNaOeUAVO https://t.co/pNgUzZwXUe GCCでも明示的に-funwind-tables指定が要るような気はするけどどうだろう"
herumiさんのツイート: "Visual Studio 2017だと/EHaオプションでCの関数内で呼んだC++関数のthrowをcatchできました。"
herumiさんのツイート: "どの程度のcallbackを想定されていらっしゃるのかわかりませんが、 https://t.co/dlq1b8gKsS のu.cpp, v.c, w.cpp程度のcallbackは動きました。 https://t.co/mKqYU5BETm"
misc/cpp/throw_in_c at master · herumi/misc
にゃははー仙人さんのツイート: "動きましたというのはabortせずにということですよね?考えてたのはまさにextern "C"でリンクするのではなく、関数ポインタを渡すようなものです… "

Twitter

Fadisさんのツイート: "C言語のerrnoはその場で見なければ失敗が無視されるから拾っていなければ直ちに不具合だけど、C++の例外をその場で拾うべきかどうかは、その場で起こった問題からの回復が可能かどうかに依る。bad_allocする状況は多くの場合回復不能な状況だからそのままabortするしかないケースは少なくない"
Fadisさんのツイート: "あと、bad_allocを拾って標準出力にデバッグ情報を書こうとするマンは、メモリが全く確保できない状況でそれを行うと何が起こるかについて少し考えてみてほしい。bad_allocが飛んできた時にできることは本当に少ない"
Ryou Ezoeさんのツイート: "メモリ確保失敗したときにできるのは実質terminate()だけなんだからterminateしようぜ、メモリ解放とかはアロケーターに仕込んどくべきだろとウォルターブライトが言っていたな。… "
オスツ🍣さんのツイート: "うおおおお、2 週間ぐらい超悩んだ、なぜか C++ の例外が AArch64 で GCC 5/6 では動かなくて、7 では動くという問題。最終的に __builtin_eh_return が異常挙動という所まで追い詰めで、GCC のソース差分見て、7 では omit-frame-pointer 時でも強制的に fp を埋め込むというハックが入ったことを発見"
Ryou Ezoeさんのツイート: "例外を一部の場合にゼロオーバーヘッドにすりゃお前ら使うだろという提案。 https://t.co/2nH5hQlHyd"
p0709r1.pdf
Ryou Ezoeさんのツイート: "例外がゼロオーバーヘッドの原則を満たすようになれば無効化されないしみんな使うだろうという考えのもと、特別な整数型ならばreturnで戻してif文で比較するのと同じパフォーマンス特性にしてしまおうという提案。"

C++ 例外処理と構造化例外処理 (1) - Web/DB プログラミング徹底解説
C++ 例外処理と構造化例外処理 (2) - Web/DB プログラミング徹底解説
VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)
How a C++ compiler implements exception handling - CodeProject
LLVMで例外を実装するには - 近&況
Exception_basic_struct
本の虫: C++に提案されている静的例外

Wikipedia

Microsoft-specific exception handling mechanisms - Wikipedia
例外 - Wikipedia
コールスタック - Wikipedia
例外処理 - Wikipedia

Twitter

渋川よしきさんのツイート: "これ、昔から超思ってた。例外、存在自体が矛盾してるしてる。 https://t.co/9CqtCKFZWh"
渋川よしきさんのツイート: "例外を「設計」した段階でそれは「例外」ではなく「想定の範囲内」になってしまうという論理的矛盾。"
渋川よしきさんのツイート: "例外処理の説明の時に、だいたい「例外==想定外」とか書かれていることが多いのが良くない。正常ケース、非正常ケースなら分かる。"
渋川よしきさんのツイート: "例外について考えていたこと、例外のパラドックスという名前がついていた。 https://t.co/6ocDMQZx5f"
Fadisさんのツイート: "例外はその例外からの復帰が可能なレイヤーでcatchするんだよ。握り潰して失敗をなかった事にされても困るし、起こった問題から復帰させるべきレイヤーを超えて中の実装を知らないレイヤーに例外が届いても困る。本当に誰の手にもおえない例外が飛んだ場合は、そのままabortさせるのが多くの場合正しい"
Fadisさんのツイート: "あと正常系で例外が飛ぶような作りにしてるとgdbを使う時に発狂するから例外は文字通り例外的な状況で飛ぶようにしておいた方がいい"
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、VC6だとSEGV系もtry/catch出来ていた記憶があるのだが、少なくともVS2017では__try/__exceptを使ったWin32構造化例外を明示指定しないとキャッチできない様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SEGVが例外の枠組みで処理できるのは、一部状況ではとても助かる。 gccの場合、-fnon-call-exceptions で同様の動作が可能。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、try/catch + -fnon-call-exceptionsの場合、throw "sigsegv" 等を記述したsigfuncをSEGV等に紐づけておく必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017ではコンパイルオプションの /EHa、GUIだと「C++の例外を有効にする」を「はい - SEHの例外あり」を選べば良かったらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「一部状況」というのは、こちらの手出しできない、標準モジュール内SEGVに暫定対処したいとき。 (例えば、INetFwProductというOS標準COMモジュールの呼び出しが、稀な環境で内部SEGV発生とか)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2005以降だったか、スタック破壊を検出した場合、CRT(の __raise_securityfailure関数)で、登録ハンドラを意図的にキャンセル(例外ハンドラをNULLに再セット)して強制終了させている話ですね。… "
yoh2さんのツイート: "WindowsはスタックオーバーフローでC++の例外と統合された構造化例外すっ飛ばしたり、MFCのCStringがprintf系の %s に渡されても動いたり、thisがnullptrで非virtualなメンバ関数呼び出せたりとなかなかやりたい放題ですよねw"
yoh2さんのツイート: "Windowsのスタックオーバーフローで例外すっ飛ぶってやつから、スタックを消費する関数は決してnoexceptを付けられないんじゃないかという疑問もわきそうだけど、これに関する私の見解は以下の通り。 その例外を考慮したい: noexcept は諦めてね 考慮しない: SO時は未定義と覚悟してnoexcept付けよう"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これは g++ 等でも同じではないのかしらん? > thisがnullptrで非virtualなメンバ関数呼び出せたり"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、__raise_securityfailure(staticリンク)の一部に動的にnopを入れて、キャンセル動作を抑止している。(なお独自ハンドラはMiniDumpを吐いて終了するもの) https://t.co/nBDLF22Egp"
FastCopy/tmisc.cpp at 72655443c775af09a69cc2fd2aa6a602b4d987c9 · shirouzu/FastCopy

C#機能: Deferredエラー処理
構造化例外処理と UnhandledExceptionFilter - Web/DB プログラミング徹底解説
構造化例外処理 ~ 例外情報の取得 - Web/DB プログラミング徹底解説
Super Technique 講座~longjmpと例外
Center CLR Try!開発 #2 – kekyoの丼
Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
SHIROUZU Personal Log(2016-10-18)
won't fix: llvmとrustにおけるWindows/aarch64のサポート
スタックオーバーフローのハンドリング (Stack Overflow Handling)
構造化例外のフィルタ処理(C++) - RAD Studio
.NET非同期処理(async-await)と例外の制御 – kekyoの丼
Exception Handling in LLVM — LLVM 12 documentation
unwind-protect - Google 検索
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
7594591200220899443さんはTwitterを使っています 「https://t.co/llp4igzqlo 今時C++例外なんて時代遅れですよねーみたいな話。ABIがいけてないからunwindがマルチスレッドにできないとかへーそうなんだという感じ」 / Twitter
P2544R0: C++ exceptions are becoming more and more problematic
でちまるさん(実際かわいい)さんはTwitterを使っています 「C++例外は「自爆するしかねえ」ってときに遺言を残すために使うようであって,よその言語みたいにセーフlongjmpとして使おうとするのは誤りやろがい,という定番の話が久々に登場」 / Twitter
FadisさんはTwitterを使っています 「正常系のループの中でジャンプ目的で飛んでる例外をgdbが拾って発狂する経験を経て人は例外を正しく使おうという気持ちを身につける」 / Twitter
構造化例外処理 マルチスレッド - Google 検索

MS

x86

_alldiv ルーチン - Win32 apps | Microsoft Docs
_aulldiv ルーチン - Win32 apps | Microsoft Docs
_allmul ルーチン - Win32 apps | Microsoft Docs

Winternl - Win32 apps | Microsoft Docs
Calling Internal APIs - Win32 apps | Microsoft Docs
Getting the Active Console Session ID - Win32 apps | Microsoft Docs
Getting the Session ID of the Current Process - Win32 apps | Microsoft Docs
TlsGetValue function (Windows)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(なお、他のモダン言語から見れば「1つの戻り値」で、正常値とエラーを混在ゆえの問題ではある)」 / Twitter
TlsGetValue function (processthreadsapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「TlsGetValue API は戻り値が 0 の場合だけ、GetLastError(UNIXの errno相当) も 0 に書き換えられるので注意が必要。 (正しい値0なのか、エラーなのかの識別用) https://t.co/LFg77TNfm8」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「TlsGetValue API は戻り値が 0 の場合だけ」と書いたが、TlsGetValueの成功時は常に GetLastError() == 0 に書き換えられる、が正しかった。」 / Twitter
GetModuleHandleExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
LoadLibraryExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
GetProcAddress function (libloaderapi.h) - Win32 apps | Microsoft Docs
FreeLibrary function (libloaderapi.h) - Win32 apps | Microsoft Docs
x64 でのプロローグとエピローグ | Microsoft Docs
_chkstk ルーチン - Win32 apps | Microsoft Docs
Windows 7 DLL File Information - ntdll.dll
その他Low-Levelクライアント サポート - Win32 apps | Microsoft Docs
スタック オーバーフローのデバッグ - Windows drivers | Microsoft Docs

Thread Environment Block

Win32 Thread Information Block - Wikipedia
svchost.exe - Wikipedia
TEB (winternl.h) - Win32 apps | Microsoft Docs
Thread Environment Block (Debugging Notes) - Win32 apps | Microsoft Docs
PEB / TEB の覚書 - Windows 2000 Blog
Win32デバッグ(12)・・・SEH(Structured Exception Handling): vanillaの日記
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
WinDbg - マイクロソフト系技術情報 Wiki
デバッグメニュー デバッガ

Process Environment Block

PEB (winternl.h) - Win32 apps | Microsoft Docs
PEB_LDR_DATA (winternl.h) - Win32 apps | Microsoft Docs
Process Environment Block - Wikipedia
他プロセスのメモリを読む(C++編) - # riosu's memo
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
スライド 1 - MR201312_History and Current State of Heap Exploit_JPN.pdf
デバッガ検出技術:PEB.BeingDebuggedFlag:IsDebuggerPresent() - Log.i53
アンチアンチデバッギング #LT駆動

リバースエンジニアリング入門

シェルコードから始めるマルウェア解析 (1/2):リバースエンジニアリング入門(1) - @IT
コツ? 開発者の立場になって考えることさ! (1/2):リバースエンジニアリング入門(2) - @IT
シェルコード解析に必携の「5つ道具」 (1/3):リバースエンジニアリング入門(3) - @IT
Undocumentedなデータ構造体を知る (1/3):リバースエンジニアリング入門(4) - @IT
Undocumentedなデータ構造体を知る (2/3):リバースエンジニアリング入門(4) - @IT
Undocumentedなデータ構造体を知る (3/3):リバースエンジニアリング入門(4) - @IT
PEフォーマットを解釈せよ! (1/3):リバースエンジニアリング入門(5) - @IT
PEフォーマットを解釈せよ! (2/3):リバースエンジニアリング入門(5) - @IT
PEフォーマットを解釈せよ! (3/3):リバースエンジニアリング入門(5) - @IT
API名のハッシュ化テクニックを理解せよ! (1/3):リバースエンジニアリング入門(6) - @IT
API名のハッシュ化テクニックを理解せよ! (2/3):リバースエンジニアリング入門(6) - @IT
API名のハッシュ化テクニックを理解せよ! (3/3):リバースエンジニアリング入門(6) - @IT
SQL Slammerのコードを解析せよ! (1/3):リバースエンジニアリング入門(最終回) - @IT

ASCII.jp

ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)

Twitter

Kazuho OkuさんはTwitterを使っています 「Userspace DTrace だったり、一部命令を書き換えて動的にログ出力・解析するのが流行だと思ってる(自分がやってるだけ、とも言う)」 / Twitter
渋川よしきさんはTwitterを使っています 「printデバッグを「低レベルなデバッグ手法」みたいに扱うのはやめた方が良いというか、クラウドとか分散システムとかが増えてきて、適切なprintデバッグ手法の確立を進めた方が良い気がしている(GCP Cloud Debuggerとか、VSCodeのリモート開発みたいな変態技術はおいといて)」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「printfデバッグができるのは深い理解があってこそなんだよな。ビジュアルデバッガーは大量のシンプルなバグを直すには向くけど、そのせいで浅い理解に留まる傾向にあるように見える。もっともバグの大多数はシンプルなやつなのでそれで良いとも言えるけど。 まれにある複雑なのに手が出なくなる。」 / Twitter
渋川よしきさんはTwitterを使っています 「デバッグだけでなく、どの情報を出すかの選択とか、本番環境のログ設計にもシームレスに繋がるようなprintデバッグ道みたいなのがある気がしてる。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WindowsでAPIがないから実装できない機能をhttps://t.co/MAHFqQsz5cに登録したらWindowsでAPI実装してくれるか試したくて、登録してみた Issue 1270175: enterkeyhint should be supported in Widnows virtual keyboard https://t.co/Io4GbBZZOM」 / Twitter
Issues - chromium
1270175 - enterkeyhint should be supported in Widnows virtual keyboard - chromium

LIST_ENTRY の仕組みと利用方法 - Web/DB プログラミング徹底解説
LIST_ENTRY に関するデバッグコマンド - Web/DB プログラミング徹底解説
Windows の内部動作 - Web/DB プログラミング徹底解説
Reflective DLL Injection | すなのかたまり
msmania/procjack at 1.0
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windowsで電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
黒翼猫のコンピュータ日記 2nd Edition:2017年07月21日 - Windows 2000 Blog
CTF writeup 2|岸辺の旅
SHIROUZU Personal Log(2016-11-01)
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
kobaさんはTwitterを使っています 「@kotatsu_mi そんなとき -Og はいかがですか。デバッガに支障が出ない範囲で最適化するというものです。 gccのドキュメントではここ。clangでも同様のオプションがあるはずです。 https://t.co/dzahH8dQoE」 / Twitter
Optimize Options (Using the GNU Compiler Collection (GCC))
ReadApiSetSchema更新 « 他人の空似
VirtualDLLの仕組み « 他人の空似
daem0nc0reさんはTwitterを使っています 「惜しまれつつ開発を終了したdnSpyですが、やはり無いとリバースエンジニアリングでは困る人が多いからか、意欲ある技術者が開発を引き取ったようです。 やったね! https://t.co/NPJaxHNagK」 / Twitter
dnSpyEx/dnSpy: Revival of the well known .NET debugger and assembly editor, dnSpy
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「OneCore.lib はこれ1つリンクすれば、どのAPIを使っても、追加lib指定しなくてよいライブラリと。 実用的には Win10以降用アプリで使うのが良さそうかな。 (包括的ライブラリの原文は umbrella library) https://t.co/l92O8RimmZ https://t.co/FqQn4gJX54」 / Twitter
Windows の包括的ライブラリ - Win32 apps | Microsoft Docs
OneCore.lib/MinCore.libの紹介 – 他人の空似

証明書

その他

弱い公開鍵ペア - Google 検索
crt.sh | Certificate Search
情報セキュリティ入門 - PKI(前編)---公開鍵を安全にやり取りする:ITpro
インターネット10分講座:RFC5952 -IPv6アドレスの推奨表記 - JPNIC
DigiCert サーバ証明書技術情報
CA/ブラウザフォーラムで可決された「Baseline Requirements ver1.0」の和訳版公開およびGMOグローバルサイン社の対応について - GMOインターネット株式会社
WebTrust(ウェブトラスト)について | SSL・電子証明書ならGMOグローバルサイン
opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み:一般記事|gihyo.jp … 技術評論社
Symantec→DigiCertでSSL/TLS証明書はどうなる? 日本国内にも認証局構築へ、IoT機器市場も見据え - INTERNET Watch
パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE
Usage Statistics and Market Share of SSL Certificate Authorities for Websites, August 2017
23,000 HTTPS certs will be axed in next 24 hours after private keys leak • The Register
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2314-Ja.txt

一定の時間で処理を完了させる手法

BearSSL - Constant-Time Crypto
rust-timing-shield: comprehensive timing leak protection for Rust
Constant time arithmetics · mratsim/constantine Wiki
GCCのインラインアセンブラの構文について調査 - FPGA開発日記

OpenSSL

窓の杜

「OpenSSL 3.0.0」が公開 ~ライセンスは「Apache License 2.0」に - 窓の杜
「OpenSSL 3.0.0」の設計概要のドラフトが公開 - 窓の杜
「OpenSSL」のバージョンの付け方が変更 ~ライセンスは“Apache License 2.0”へ - 窓の杜

OSDN

Linux FoundationがCore Infrastructure Initiativeの下、OpenSSLのフルタイム開発者2人を支援 | OSDN Magazine
Linux Foundationが富士通、Google、Microsoftらとオープンソースプロジェクト向け基金を設立、まずはOpenSSLを支援へ | OSDN Magazine
セキュリティ警報:多数のシステムに影響を及ぼすDebian OpenSSLの不具合が発覚 | OSDN Magazine
TLS 1.3をサポートした「OpenSSL 1.1.1」リリース | OSDN Magazine
「OpenSSL 3.0」が公開、ライセンスはApache License 2に変更 | OSDN Magazine

Wikipedia

OpenSSL - Wikipedia
OpenSSL - Wikipedia
Comparison of TLS implementations - Wikipedia, the free encyclopedia

/index.html
OpenSSL 3.0 Has Been Released! - OpenSSL Blog
OpenSSL
OpenSSL BIGNUM
OpenSSL ライブラリを使ったハッシュ生成、暗号化(RSA, AES)、復号処理(RSA, AES)、署名生成(RSA)、署名検証(RSA) - Qiita
OpenSSLをSSL/TLSクライアントとして使ってみる | Siguniang's Blog
Kazuho's Weblog: SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)
Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
h2o/neverbleed: privilege separation engine for OpenSSL / LibreSSL
Shigeki Ohtsuさんのツイート: "OpenSSLを始め幅広い暗号ライブラリのECDSA実装に対するサイドチャネル攻撃(CVE-2018-0495)が公開されました。メモリアクセスの測定と格子アルゴリズムを組み合わせ同一ホスト上のVMから秘密鍵を取得できるとのこと。 https://t.co/CZAy0bgL6Z"
Technical Advisory: "ROHNP"- Key Extraction Side Channel in Multiple Crypto Libraries
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl の AES-NI 実装は Perlコードからasm(.S)を吐くような構造らしい。へぇ。 https://t.co/OeNXKbTVMu」 / Twitter
openssl/crypto/aes/asm at master · openssl/openssl
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、xxhash/xxh3 を行うコマンドラインツールも用意しよう…openssl は(暗号学的hashでないため)xxhash系はリストに無いのだよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl のアセンブラって、Perl で書かれてコードを吐く形なのだよな。 https://t.co/EDnhw52cQI」 / Twitter
openssl/sha256-mb-x86_64.pl at master · openssl/openssl
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sha256rnds2 で Illegal Instrucion …この命令は 10世代の Ice Lake からだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K上で Win32 CNG と OpenSSL で、SHA256が2倍違った。 (CNG は AES なら AES-NI 使ってるけど、SHA256 は SSE2系すら使わずに普通のC実装の速度のままというオチ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちなみに、openssl からもリンクされているビルド済みライブラリはどれも SSE系を使ってくれない。自前ビルドしないとダメだった…まさかの Perl を入れる羽目に)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、「まさかの Perl を入れる羽目に」というのは、openssl のビルドには Perl必須という話。 (asm部分が .pl で書かれていて、Perl で .asm を吐き出す形。さらに configure も Perl製)」 / Twitter
OpenSSL 3.0.0にアプリケーションの不正な動作につながる問題 | TECH+
FadisさんはTwitterを使っています 「CVE-2022-0778 : OpenSSLの関数BN_mod_sqrtの実装に問題があり、この関数を使う楕円曲線暗号の証明書の検証に細工された証明書が渡ると関数が返ってこなくなる。証明書は大抵の利用方法でリモートから与えられる為、リモートからOpenSSLを使うソフトウェアをハングさせられる https://t.co/l8KxRFSHsb」 / Twitter
FadisさんはTwitterを使っています 「現在セキュリティフィックスが継続されているすべてのOpenSSL(1.0.2, 1.1.1, 3.0)が対象で、それぞれ1.0.2zd、1.1.1n、3.0.2以上に上げる事で修正される。OpenSSL 1.0.2zdについては既に通常のLTSが終了している為Premium Level Supportを受けている顧客に対してのみ修正が提供される」 / Twitter

LibreSSL

OSDN

「Heartbleed」セキュリティ問題を受け、OpenBSDがOpenSSLフォークの「LibreSSL」を開発 | OSDN Magazine
OpenBSD、OpenSSLからフォークした「LibreSSL 2.0」のPortable版をリリース | OSDN Magazine
SSLv3やSHA-0サポートを削除した「LibreSSL 2.3」リリース | OSDN Magazine
TLS/SSLのオープンソース実装「LibreSSL 2.4」リリース | OSDN Magazine
開発版LibreSSLの新バージョン「LibreSSL 2.5」リリース、iOSを新たにサポート | OSDN Magazine

Qiita

LibreSSL の意義 - Qiita
LibreSSL の現在(2018年2月時点) - Qiita
libtls で TLS 通信プログラミング(クライアント編) - Qiita
LibreSSL を Visual Studio でビルドする - Qiita

Wikipedia

LibreSSL - Wikipedia
LibreSSL - Wikipedia, the free encyclopedia

libressl-portable/portable: LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.
Index of /pub/OpenBSD/LibreSSL/
libressl-portable/openbsd: Source code pulled from OpenBSD for LibreSSL - this includes most of the library and supporting code. The place to contribute to this code is via the OpenBSD CVS tree.
第55回 LibreSSL 2.4.0登場:BSD界隈四方山話|gihyo.jp … 技術評論社
OpenSSLに代わるLibreSSL, 最初の30日間
「LibreSSL 2.6.4」リリース | Think IT(シンクイット)
LibreSSL ‐ 通信用語の基礎知識

ルート証明書

Let's Encrypt

Let's Encryptの証明書の期限切れにより一部のMacやAndroidがWebサイトに接続できない問題が発生中 - ソフトアンテナブログ
YurikaさんはTwitterを使っています 「先日のLet's EncryptのCA証明書有効期限切れで、openSSLのエラーが出た話。 物語が面白すぎる でもこれは有効期限を超えたクロスルートという掟破りのために起きた? https://t.co/lojoqfKHS4」 / Twitter
Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
YurikaさんはTwitterを使っています 「単に旧Androidはルートの有効期限チェックしない動作を取ってたけどそれ以外は実装次第だからエラーになってもおかしくないってことに終結なのかな」 / Twitter
YurikaさんはTwitterを使っています 「そもそも、証文は(これまでは)本人いきてる間だけで、死んでも使えるってなかった。 しかし死後も使える、が、前提とならば…? 話がややこしすぎて何が問題なのか難しいな…」 / Twitter
Let's EncryptのDST Root X3ルート証明書の期限切れとOpenSSLの影響についていろいろ試してみた

Mozilla

Mozilla

Mozilla Security Blog

January 2018 CA Communication | Mozilla Security Blog
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Root Store Policy Updated | Mozilla Security Blog
Update on the Distrust of Symantec TLS Certificates | Mozilla Security Blog
【翻訳】CA Certificate Policy バージョン 2.4 リリース - Mozilla Security Blog 日本語版
September 2018 CA Communication | Mozilla Security Blog
Why Does Mozilla Maintain Our Own Root Certificate Store? | Mozilla Security Blog
Mozilla’s Common CA Database (CCADB) promotes Transparency and Collaboration | Mozilla Security Blog

MozillaWiki

CA:Information checklist - MozillaWiki
CA/BR Audit Guidance - MozillaWiki
NSS:Root certs - MozillaWiki
CA/Certificate Change Requests - MozillaWiki

Network Security Services | MDN
mozilla mozilla/security/nss/lib/ckfw/builtins/certdata.txt
CA Certificate Policy バージョン 2.4 リリース – mozilla-japan – Medium
Let's Encrypt Root to be Trusted by Mozilla - Let's Encrypt - Free SSL/TLS Certificates
Mozilla CA Policy 2.4 Published | Hacking for Christ
Mozilla Root Store Policy — Mozilla
pkipolicy/policy.md at 2.4 · mozilla/pkipolicy
Mozilla Root Store Policy — Mozilla

FreeBSD

FreeBSDのSSLのルート証明書のパッケージ ca_root_nss
/pub/FreeBSD/ports/amd64/packages-8.4-release/security/ のインデックス

Japan GPKI

政府認証基盤(GPKI)のホームページ
地方公共団体組織認証基盤(LGPKI)
高木浩光@自宅の日記 - 民間ブランドが行政機関には無益なのならVeriSign独占化を避けるべき, LGPKI Application CAに将来はあるのか
Rockridgeさんのツイート: "Firefox 54で政府認証基盤(GPKI)のルート証明書は削除されたが、政府認証基盤アプリケーション認証局2ルート証明書は現在も追加に向けた手続が進行中だ。参照:https://t.co/a9yqP3Hocz / “1268…” https://t.co/6AePdDrowg"
Rockridgeさんのツイート: "Mozillaは、政府認証基盤アプリケーション認証局2ルート証明書を受け入れるかどうか審査中だが、終盤になって雲行きが怪しくなってきた。いったん要請を拒絶して、手続をやり直すべきとの意見が出てきている。 / “Japan GPK…” https://t.co/EwwapLY2Jo"
Makoto Kato ︎︎さんのツイート: ""The Japanese Government PKI may submit a newly generated root and key-pair for inclusion, and this submission can be made using the existing bug" https://t.co/8wmmF2EaHa"
Makoto Kato ︎︎さんのツイート: "新しいCA Root作れば通りそうではあるので、担当の方と予算次第ですかね。今後は"
Shigeki Ohtsuさんのツイート: "GPKIは、やっぱりMozillaで却下かぁ。https://t.co/6FF31r6Pzk この返事が致命的だったような気がする。素直にlintエラーの証明書を直ちに全部revokeすると返事していれば状況変わったかもしれないのに。"
Shigeki Ohtsuさんのツイート: "Japan GPKI Root Renewal Request https://t.co/JPTlbVx0Xc 5年前にルート証明書署名、4年前にアセスメント、色々問題有り2017年1月に修正完了。その間ずっと証明書を発行だけど規約不適合でまだ有効な証明書多数。いっその事最初からやり直しにすべき(今ここ)"
Shigeki Ohtsuさんのツイート: "GPKI側から2017以前の証明書をrevokeさせるから判断変えてもらえるかと。さっさと失効させてから交渉したほうがいいのにと思うのは私だけ? https://t.co/NfupIEQTxM"
Makoto Kato ︎︎さんのツイート: "LGPKIのルート証明書がRoot 4になってるのを今日知った。というか(もうかかわってないけど)CRYPTRECからの質問状で「Mozillaに申請中」って嘘の返答を言ってたような団体なので、LGPKIは信用してないけどね"
Makoto Kato ︎︎さんのツイート: "CA Browser Forum的にはWebTrust for CAじゃなくて、WebTrust for BRがほぼ必須になるんだけど、for CAとってますって書いてる自体、ホントLGPKIは分かってない"
Makoto Kato ︎︎さんのツイート: "bugzillaみればわかるとは思うけど、(今もめてる)GPKIでさえfor CAレベルからfor BRレベルにするのに1年以上かかったので、まぁね。。。"
Makoto Kato ︎︎さんのツイート: "CAプログラムはどういう団体であっても平等であるべきだよねと。どこの会社のCAプログラムとは言わないけどね"
Makoto Kato ︎︎さんのツイート: "MozillaのCAプログラム通らないってことはAndroidにGPKIのルートCAは入らないってことだからね。わかってない人おおそうだけど。Googleがポリシー変えれば別だけど"
GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
スラきちさんのツイート: "寝る前にGPKI@Mozillaのその後を見たが、「あなたCA要件4.9.1.1(9)満たせないって分かったから結論代わりません」と見事に蹴られてる。 該当要件は「4.9.1.1 CAは以下の状態になった証明書を24時間以内に失効させなければならない…(9)CP/CPS等に従わなくなった証明書」 行政庁で24時間は無理ゲー…?"
dynamis (でゅなみす)さんのツイート: "GPKI終わったのか。 担当者が悪いと言うよりは認証局としての最低要件を満たせるだけの(英語力、セキュリティ意識、業界動向の理解及び権限を持つ)スタッフを確保できない運用計画と予算で立ち上げた計画側の責任でしょうね。 https://t.co/J48F8sYh3w"
dynamis (でゅなみす)さんのツイート: "そう言えばHTTPサイトで証明書配ってるお笑い認証局も医療従事者向けに運用されてるな。 それに比べればGPKIはまだマシかも知れんが、今の日本のエンジニア軽視姿勢でまともな認証局運用できる日はこなさそうですね。"
Makoto Kato ︎︎さんのツイート: "外野向けに見える部分で色々GPKIのこと書かれているのは色々読んだけど、まぁ自分が担当者だったとしたらみんなCAプログラムパスできる自信あるのかなぁと"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、担当者がというよりも予算ですね、あれの場合。なので担当者の問題というより政治の問題かと思う。特に国なので透明性が必要だからプロセスに時間もかかる"
Makoto Kato ︎︎さんのツイート: "なので総務省はWoTとかIoTとかに予算割り振る前にe-GOVに対してちゃんと予算振り分けて欲しかったというのが、内情を知る人間としてのGPKI の総括ですね"
Makoto Kato ︎︎さんのツイート: "行政管理局がもしまだやる気であれば、Application Root 3作って、WebTrust for BR通してって話になるし、また入札必要だろうからまぁ1年コースかと"
Makoto Kato ︎︎さんのツイート: "https://t.co/Vzbdv3znvY 記者さんってなんでWindowsな視点しかないんだろ。Mobileの視点がないと見え方が違うと思うんだ"
Firefoxが政府認証基盤のルート証明書を認めず、「ユーザーのセキュリティを害する」 | 日経 xTECH(クロステック)
KIMATA RobertHisasiさんのツイート: "MozillaがGPKIを認めなかった件。調べれば調べるほど「Microsoftは認めんなよ」感が"
Makoto Kato ︎︎さんのツイート: "GPKIについてみんな勘違いしているのは、昔 GPKI Application Root 1はちゃんとMozilla CA RootとしてApprovalされた (そのときの基準では)。その後SHA256なGPKI Application Root 2で置き換えるためにあのBugがあって、それがWontfixになったってこと"
Makoto Kato ︎︎さんのツイート: "ここ数年、CAに関してはとんでもないインシデントが多かったために許可基準が非常に上がってる"
Makoto Kato ︎︎さんのツイート: "MozillaのCA Policyのはバージョン上がるために基準が上がってってるんだけど、Microsoftは政府案件だといろいろ違うらしいってことがあるっぽくて、まぁ日本マイクロソフトの社長室かパブセクかはしらないけど、まぁ彼らが絡むとセキュアなんてないのではって思ってる"
Rockridgeさんのツイート: "Mozillaは、米国時間の2018年2月27日、政府認証基盤(GPKI)アプリケーション認証局2ルート証明書を受け入れないことを決めた。参照:https://t.co/vwlvWwY553 / “870185 - Add Re…” https://t.co/PDYdOhA7OK"
Makoto Kato ︎︎さんはTwitterを使っています 「GPKIはああだけど、LGPKIがどうにかならないのもだめ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ああいう、総務省なりいろんな省庁で持ってる (彼らも専門家でもない) 案件をデジタル庁へ移管して (or そもそも廃止) とかしてるとは思うけど、まぁ大変そうですね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「LGPKIはとある会議の回答で嘘返答してたくらいの組織だから、まぁ自分としてはなくすなり、デ庁へ移管すべきと思ってるけどね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「EVだってOVだって、設計思想は同意するのだけど、結局まともに運用されなかったから、もうWebブラウザとして必要性がなくなったわけで、GPKIも2000年だったらちゃんと立て直すべきだけど、2020年だったら、Let's Encryptでいいじゃんって思うだけ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「認証局が駄目になったのは、大概その監査をするはずの監査法人が適当な報告書だしてるだけだからじゃないのと感じてる。日本のGPKIも韓国のGPKIもそんな感じ。韓国の事例ひどいけど (他のドメインの証明書発行してて失効してなかった)」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「認証局に関しては、昔JPNICでDavid W. Chadwick先生の講演聞いたときに、まぁ最終的にはGiant Tech Companyが強い権限持ってしまうのではと思ったけど、予想通りだなぁと https://t.co/xTdxheMp2Q」 / Twitter
won't fix: David W. Chadwick先生のPKIの講演を聞いてきた

korea GPKI

Makoto Kato ︎︎さんのツイート: "みなさん知らないかもしれないけど、お隣の韓国のGPKIもRejectされてるからな https://t.co/SP67i880hG https://t.co/2Wm1XvRxJr"
Makoto Kato ︎︎さんのツイート: "韓国のGPKI、*.or.krを発行してたりして面白すぎなんですが、MSやChrome的にはなんのお咎めがないんですよねー https://t.co/mH0VpgmlZR"

Twitter

Rockridgeさんのツイート: "Mozillaのルートストアポリシーがバージョン2.5に改訂され、認証機関はネットワークのセキュリティに関する業界のベストプラクティスを実践することが求められるようになった。 / “Mozilla Releases Versio…” https://t.co/umzXruNNlY"
Mozilla Releases Version 2.5 of Root Store Policy | Mozilla Security Blog
Rockridgeさんのツイート: "Let’s Encryptのルートキー(ISRG Root X1)がFirefox 50においてデフォルトで信頼されることになる見込み。既存の認証局であるIdenTrustと提携することで早期に実現した。参照:… https://t.co/gsLgM6iXRG"
Jxckさんのツイート: "Firefox50 に先行して Let's Encrypt 自身の証明書が入るらしい。でもルートとして正式に認定されてない証明書入れるのってどうなんだろう。。 / “Let's Encrypt Root to be Trust…” https://t.co/SDEaymqosm"
Rockridgeさんのツイート: "Fx57:ルートCAモジュールの読み込みが非同期化された。起動速度の向上が期待できる。参照:https://t.co/ePDJWKjLST / “1372656 - load loadable roots on a backgr…” https://t.co/6qf6ul3j0P"
the root CA module now loads asynchronously - Google グループ
Rockridgeさんのツイート: "DigiCertがSymantecの認証機関ビジネスを買収したことで自動的に信用が回復することはなく、Mozillaが示す各種懸念事項に解決策を示す必要があるという話。 / “Statement on DigiCert’s Pr…” https://t.co/GHyUJDKv7u"
Rockridgeさんのツイート: "Fx59:セコム電子認証サービスのルート証明書が削除された。Fx58で無効化済み。参照:https://t.co/Qzdr85qfxm https://t.co/4GCbSbwSax / “1410544 - Remove "S…” https://t.co/hmSrIm3Avi"
Rockridgeさんのツイート: "「Firefox の 今後の信頼無効化措置 は Google Chrome と歩調を合わせており、GeoTrust、RapidSSL、Thawte、Verisign といったすべての Symantec ブランドに適用されます。」 https://t.co/CxvYlcqJ8l"
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Rockridgeさんのツイート: "Symantecから発行された証明書の信頼無効化措置は、Firefox Nightly 60で有効化されたが、Betaチャンネルへの投入については、Chromeの動向を見てから決める模様。 / “1442075 - Enforc…” https://t.co/JdDEcKKseM"
Rockridgeさんのツイート: "Mozillaの調査によれば、Symantecから発行された証明書の信頼無効化措置により、現在、トップ100万サイトのうちの約1%で、接続が安全でない旨のメッセージが出て閲覧が一時的に遮断される状況となっている。 / “Dist…” https://t.co/UAJGQLjgJm"
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaの調べによると、Symantecの証明書を排除した場合、上位1万のWebサイトでエラーが出るケースは、2018年2月23日時点では299件だったが、同年3月16日時点では86件にまで減少した。 / “TLS Can…” https://t.co/F1vYvkNJR9"
Makoto Kato ︎︎さんのツイート: "Korean GPKIもなんかいろいろやらかしてる https://t.co/dLa69TsKdO https://t.co/IQrWNwChU9"
Rockridgeさんのツイート: "Fx63:Mac版でもsecurity.enterprise_roots.enabledをtrueに設定すると、OS側で信頼されたルート証明書を利用できるようになった。 / “1300420 - macOS (Mac OS X)…” https://t.co/v3NLtXSyqq"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、Symantecから発行されたすべての既存TLSサーバ証明書への信頼が取り消された。2018年10月23日にはリリース版でも同様の措置が執られる。参照:… https://t.co/297FL5Ltx5"

Overview of WebTrust Services | Chartered Professional Accountants of Canada
Principles and Criteria | Chartered Professional Accountants of Canada
Baseline Requirements Documents - CAB Forum
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Mozilla、Symantec証明書の信頼を段階的に削除 ~具体的なスケジュールをアナウンス - 窓の杜
10月公開の「Firefox 63」、シマンテック発行の証明書を完全に無効化へ--モジラが警告 - ZDNet Japan
「Firefox 63」でSymantec発行のTLS証明書が無効に ~トップ100万サイトの3.5%に影響 - 窓の杜

MS

Microsoft Trusted Root Program Requirements - TechNet Articles - United States (English) - TechNet Wiki
Microsoft 信頼されたルート証明書プログラム:証明機関の監査要件
より信頼できる証明書利用環境へ向けて~ Internet Explorer 11 SmartScreen 証明書評価 - 日本のセキュリティチーム - Site Home - TechNet Blogs
Rockridgeさんのツイート: "2018年7月末、Let's Encryptのルート証明書がMicrosoftのルート証明書プログラムにおいて信頼されるに至った。既にGoogle/Apple/Mozilla/Oracle/Blackberryからは信頼済みだとい… https://t.co/XUWFTtfkHq"
幼女 @mine02c4@mstdn.jpさんのツイート: "理屈上はDNSのレスポンスを書き換えて画面を返す用のサーバーのIPにすれば警告画面表示はHTTPでできる。これは普通の話。 でもですね、相手は日本政府なんですよ。彼らには「Windowsに信頼されたルート認証局」というのを持っているので、TLS証明書を発行できる立場にいます。"
ふたば@四葉技研さんのツイート: "政府による通信の監視で 通信速度が遅くなったらキレる"
tkrさんのツイート: "政府であろうと改ざんされてないことの証明なんだから認証局持ってること悪用したらだめでしょ。。"
Shigeki OhtsuさんはTwitterを使っています: 「Microsoftのルート証明書がMozillaに申請され最終レビュー段階に。Googleに続いてブラウザベンダが認証局を兼ねるとは。 / “Googleグループ” https://t.co/h3V9HC1sKd」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「Windowsには以前から当然入っていたけど、Mozillaに入れば ca-certificate に入るからAndroidやNodeでも使えるようになるのよね。」 / Twitter
2020年末に期限切れになるルート証明書。「削除しないで」とMicrosoft - PC Watch

Apple

Root Certificate Program - Apple

Google

Root Certificate Policy - The Chromium Projects
Google Online Security Blog: Distrust of the Symantec PKI: Immediate action needed by site operators
旧Symantec系SSL/TLS証明書、3月15日以降順次、Google Chromeで失効 - INTERNET Watch
Rockridgeさんのツイート: "Google Chromeの開発チームがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除する方針を表明。Extended Validation(EV)のステータスは無視され、Chrome 59から64まで… https://t.co/hC19kG6VAy"
Google ChromeでSymantecが発行したSSL証明書の有効期限短縮やEVステータス無効化が提案される | スラド セキュリティ
Symantec発行のSSL/TLS証明書、Google Chromeで段階的な期限短縮案 -INTERNET Watch
Symantecが再びGoogleの信頼を失った件についてのメモ - Technically, technophobic.
Google Developers Japan: Symantec の PKI の無効化について: 要対応確認
GoogleとMozillaが独裁国家の認証するルート証明書をブロックすると発表 - GIGAZINE
Google、自社向けのルート認証局「Google Trust Services」を開設 -INTERNET Watch
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ふと google のオレオレ証明感…とか思ったり(笑) (GTS = Google Trust Services) https://t.co/8iv3vUnTeR https://t.co/Q6JFizGu6g」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「googleの証明書には、130件の「サブジェクト代替名」が含まれていた。すごいな。 https://t.co/KNyVScqiE6」 / Twitter

Amazon

Shigeki Ohtsuさんのツイート: "うわぁ、Amazon Root CAがの4種(RSA/ECC)がFirefoxに登録されるわ。EV発行も 可能だ。 現在無料のACMから本格的なAmazon認証局サービスの提供に向かうのか。強いなぁ。 / “NSS 3.28.1…” https://t.co/YZ0MlfZPUT"
NSS 3.28.1 release notes - Mozilla | MDN
Shigeki Ohtsuさんのツイート: "Amazon Trust Services という別会社がAmazon Root CAを運用するのね。 https://t.co/eVYDVS10L0"
Amazon Trust Services LLC

Wget - きまぐれ手記
Certificate Authority Certificates
JVNVU#99936709: Savitech 製 USB オーディオドライバがルート CA 証明書を許可なくインストールする問題
渋川よしきさんのツイート: "CertUtil.exe -viewstore ROOTで、信頼されたルート証明書一覧を取り込みたいのだけど、GUIウインドウが立ち上がってしまう"
渋川よしきさんのツイート: "-viewstoreじゃなくて-storeならコンソールに出るっぽいが・・・日本語か・・・"
渋川よしきさんのツイート: "CertUtil.exeで-storeで保存されている証明書類を書き出しても30個ぐらいしかない。Macだとシステムのルート証明書で176個ある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ESETをはじめインターネット防御を謳うソフトは、自前ルート証明書をPCにインストールしてhttpsの中身を監視するんですよね。 万一ESET側がクラッカーの手に落ちると、安全なhttpsサーバ相手でも被害を受ける可能性が出るという…ESETを信用するか、httpsサーバを信用するか?というジレンマに(笑)… https://t.co/THV4HtvHkx"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "GPKIは大変なことになってるけど、一方LGPKIはセコムすることになって、自治体にはインターネット側でも使いやすくなって朗報。 / “総合行政ネットワーク No. 185 1 第四次LGPKI移行の背景と その概要  第四次L…” https://t.co/36TNZprspT"
LGWAN-H3003.pdf
自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ)
Kazuho Okuさんのツイート: "想定された挙動のはずです。例えばウェブブラウザは、ユーザ定義ルート証明書を検出した場合は HPKP を無視します… "
Vさんのツイート: "ローカルで MITM やるのありえないと思うんだけど、そう思うの自分だけ?"
Kazuho Okuさんのツイート: "アンチウイルス以外にもペアレンタルコントロール、コンプライアンス上の理由等によって通信のモニタリングが求められるケースはあるし、それはエンドポイント内でAPIを提供していく方向だと理解してる。現状のMITMはプロトコル実装の品質と硬直化の問題があるのでry"
Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
古いAndroidスマホで2021年9月以降、一部サイトが閲覧不能に - PC Watch
GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
Google・Mozilla・Apple・Microsoftが「政府が国民にインストールを強制したルート証明書」をブロック - GIGAZINE
数百万のHTTPSサイトが利用するLet’s Encryptのルート証明書が期限切れ間近、古いデバイスやOSは要注意 | TechCrunch Japan
Makoto Kato ︎︎さんはTwitterを使っています 「政府系証明書に関しては正しくないと思う。AppleとかMicrosoftはね "Webブラウザは新しい認証局が信頼に足るものであるかを審査し、それには長い時間がかかると考えられている" https://t.co/wk9tJjThJz」 / Twitter
ロシア、証明書の更新停止を受け独自のTLS認証局立ち上げ | TECH+

クロスルート証明書

Kazuho Okuさんのツイート: "新しいルート証明書が普及するまで使われるクロスルート証明書では? より長い鍵長のルート証明書へ移行する際にも使われてきた伝統ある技術かと / “自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - lived…” https://t.co/LvNTjMaIIo"
自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)
[EV SSL] クロスルートとは何ですか。 | SSL・電子証明書ならGMOグローバルサイン
クロスルート証明書について | Symantec
クロスルート設定用証明書の設定について、どのような対応が必要でしょうか? | Symantec
SSLの中間証明書・クロスルート方式について | cloudpack.media
SureServer[2048bit] 用クロスルート方式について|Cybertrust.ne.jp
ルート・中間CA証明書のダウンロード|Cybertrust.ne.jp
クロスルート証明書って何? - [2013/02/11]
今更!理解するクロスルート証明書 - 農業生活を目指すシステムエンジニア
クロスルート設定用証明書ダウンロード|SSLサーバ証明書 ジオトラスト
シマンテックSSL証明書におけるクロスルート証明書についてのご注意 « - ValueSSL
オレオレクロスルート証明書 - Qiita

ワイルドカード証明書

Hiroki KUNIIさんはTwitterを使っています 「ワイルドカード証明書を利用したALPACAテクニックによるExploit。なんでもOverTLSだったり一つのワイルドカード証明書で色々やったりする弊害なんですかね。」 / Twitter
monoさんはTwitterを使っています 「未対応でもまだ許容されてたみたいだけど、2022年1月31日以降必須に( ´・‿・`) Account deletion within apps required starting January 31 https://t.co/GGawykZpXk」 / Twitter
Hiroki KUNIIさんはTwitterを使っています 「ワイルドカード証明書を利用したALPACAテクニックによるExploit。なんでもOverTLSだったり一つのワイルドカード証明書で色々やったりする弊害なんですかね。」 / Twitter
NSA CyberさんはTwitterを使っています 「Wildcard certificates #authenticate multiple servers to simplify credential management. But, when poorly scoped, your servers could be at risk of exploitation via the ALPACA technique. View our latest #cybersecurity guidance for more: https://t.co/Hdm5vo35go https://t.co/dcX5ER0cVx」 / Twitter
Avoid Dangers of Wildcard TLS Certificates, the ALPACA Technique > National Security Agency/Central Security Service > Article
Hiroki KUNIIさんはTwitterを使っています 「詳細 https://t.co/J6heILYFci 元論文 https://t.co/aqT17kb4S6」 / Twitter
CSI_AVOID DANGERS OF WILDCARD TLS CERTIFICATES AND THE ALPACA TECHNIQUE_211007.PDF
ALPACA.pdf

コードサイニング証明書

Twitter

@openlibsys

hiyohiyoさんのツイート: "コードサイニング証明書更新しました。 あと2年間はグローバルサインな証明書が使えます。 更なる更新はできないので、猶予期間中に移行先を決めないと・・・。 法人格がないとホント不自由な世の中になってしまいました。EVコードサイニング証明書欲しい・・・。"
hiyohiyoさんのツイート: "SHA-1 なコードサイニング証明書を取得するのも最後だろうなぁ・・・。 証明書の有効期限である2021/3/3以降にリリースするソフトは、7以降対応かぁ。2年後ぐらいに XP/Vista 向け最終版リリースかな。"
hiyohiyoさんのツイート: "コードサイニング証明書をUSB Tokenに格納することが必須となってしまい、コード署名するためにパスワードの入力が必要となってしまった・・・。 リリース作業が煩雑になってしまう。… "
hiyohiyoさんのツイート: "とりあえず、SHA-1とSHA-2両方の証明書でサインすることに成功。SHA-2な証明書でハッシュアルゴリズムをsha1とsha256の両方でやろうと思ったのですがどういうわけか失敗するのでsha256だけで実施。 Microsoft製exe/dllも2パターンでしか署名されていないので良いとするか。"
hiyohiyoさんのツイート: "SHA1とSHA2の証明書を明示的に選択するためには、/i を使いました。 for SHA-1 signtool.exe sign /v /a /n "Name" /tr https://t.co/PvnwuWmgfn /i "GlobalSign CodeSigning CA - G3" %1 for SHA-2 signtool sign /v /a /n "Name" /tr https://t.co/NaFzR2n2nU /fd sha256 /td sha256 /as %1"
hiyohiyoさんのツイート: "新しいコードサイニング証明書情報を追記しました。 https://t.co/riy9SxVZV0 次に公開するソフトから新しいコードサイニング証明書になります。"
デジタル署名 – Crystal Dew World
hiyohiyoさんのツイート: "EV証明書ではないので、しばらくはこんな感じで Windows Defender SmartScreen が発動しちゃいますorz… "

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsでコード署名をしても、すぐには警告が消えるわけではないが、署名の実績が溜まることで、新しいビルドでも警告が消えるようになるらしい。 これなら、コード署名を入れる価値がありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "signtoolでオレオレ署名をしてみたが、サインは末尾に付与される様子。 ビルドしたexeに追加データを付与しても、問題なく署名可能だった。(PEヘッダ・セクションを真面目に解析していない?) また、オレオレ署名でもタイムスタンプサーバに https://t.co/wbOzVI25sJ が使えた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今、コード署名取得に必要な DUNS番号を申請中。 コード署名を付ければ、しばらくして(コード署名の)評価値が上がってきて、新リリースでも誤検出されなくなる…はず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号を無事取得したので、コード署名をsslstore(米国)で取得中だが、購入後にcomodoへの登録内容アップロードで、Internal Server error が起きるぞ…やむなく英語チャット中。(現地時間は超早朝のはずだが…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事通過。あとはコモドからの電話確認だけになった。 ちなみに英語チャットで聞いた範囲では、コモドの電話確認は自動電話で番号を一方的に伝え、その番号をメールで返信する、というものらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号がコモド側の使うDBから見えないらしい…数日待ってくれとのこと。 東京商工リサーチの登録からデータが伝搬する経路に、何らかのバッチ処理とか人手とかが介在しているのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sslstore(米国, thesslstore)だと、コード署名(comodo)3年間で248ドルだった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コモドからの検証用電話コールバック、意外と日本語の選択肢もあったが、「あなたの確認暗証番号は、です。XXXXXX」というSVO順の謎日本語だった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、コモドから、"Your Code Signing Certificate has been issued." というメールが来た。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、SignTool でインストーラにコード署名完了! (これで数ヶ月後に、アンチウイルス系のヒューリスティック誤検出が無くなると良いのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(いくつかの発行ベンダが書いている資料と違い)、XP/Vistaでは、sha256コード署名が(非ドライバでも)上手く認識できないようだ。 とはいえ、コード署名はアンチウイルス誤検出に効果があれば十分なので、sha256を使う予定。(副署名をsha256にするhackもあるようだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "取得したコード署名、今日のお昼から、実践投入(某社で使われているIPMsg特別版に適用)する予定。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、コード署名をWindows証明書コンテナにインストールすると、exe/dll(SignTool)以外に、Office系全般とAdobe Reader(Acrobatでなくとも)でも署名可能に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これにsymantec/comodo等のタイムサーバを加えれば、法人向けに領収書などの電子化に使えてもいいはずだが、日本ではそのあたりは総務省管轄の家元商売になっていて、そこの専用の枠組みを使う必要がある、と。 https://t.co/U4Bg2tQAcl https://t.co/ESrYms2BGq"
認定タイムスタンプを利用する事業者に関する登録制度 | JADAC
申請料金 | 申請方法 | タイムビジネス認定センター
Shirouzu Hiroaki(白水啓章)さんのツイート: "まあ、SSL証明書も家元商売と言えなくもないが、一応、競争原理は働いているように見える。(コード署名はニーズが少ないせいか、海外と国内で3~5倍価格が違うとか、大した審査でもないのに年2-6万とか家元商売と化している感あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messenger v4.94リリース。 Windowsコード署名を付与(今後アンチウイルスの誤検出が徐々に減るはず)、ログビューア改良等。 https://t.co/wDjue1IdtK #ipmsg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SmartScreenにブロックされないことを確認。 (念のため、kasperskyとesetにホワイトリスト登録実施済)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名、Firefoxはsha1のみ、Chromeは主sha1 + 副sha2の二重署名。 IPMsgのsha2のみ署名はちょっと勇み足だったかな…XP/Vistaだと、ブラウザから直接実行できず、保存してから実行する必要。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sha1 + sha2 に変更した場合、SmartScreenでsha2でのレピュテーションは引き継がれるのだろうか?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方で、サポート切れとなっている Vista/XP対応を残すのも如何なものか、という気もしたり。 サイトアクセスから推測すると、XP比率は1.0~1.2%、Vistaは0.2%。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラ等にコード署名を付与を始めて1ヵ月経過。そろそろ、カスペルスキー等へのホワイトリスト登録はしなくても良いかな。 (SmartScreenだと、初めての署名から数日で充分なレピュテーションを獲得した様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ノートンさん、ホワイトリスト申請制度を止めてしまったんだよなぁ… (カスペルスキーとESETは制度があるので、バージョンアップのたびに申請している)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名が無くなると、(UAC表示が変わる以前に)、リリースの度に、SmartScreen/アンチウイルス系に誤検出される羽目になりやすい。… "
窓の杜さんのツイート: "コードサイニング証明書がなくなることの影響として、UAC ダイアログの表示が変わります( digicert https://t.co/GGRZaJ56se より) https://t.co/Mf7aY5NbrJ… "
「Notepad++」v7.6.4が公開 ~EUのバグ報奨金プログラムで発見された脆弱性を修正 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名用メールアドレスに spamが届き始めた。 世の多くの例に倣って、コード署名にメールアドレスは付与しない方が良かったかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、Explorerの電子署名のプロパティ。 MSはメールアドレスを付与していない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名を付与した自前インストーラに、事後に何か情報を付与したい場合、ファイル名にベリファイ付き情報を付加するくらいしか、有効な方法は無さそう。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「リリースから1週間経過しても、まだ新コード署名証明書の功徳が足りないらしい。 https://t.co/dXnoh6RizQ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS SmartScreen の警告から逃れるには、古い署名済みの動的ダウンロード形式インストーラを使いまわす(or EVコード署名を買う)くらいしか手が無いと。 https://t.co/8ihcBqEX37」 / Twitter
How to preserve reputation with the SmartScreen Filter in Windows 10 after previous code-signing certificate renewal? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、MSに「SmartScreenの誤検出だよ」と送ってみたが、「お使いの署名は功徳がまだ十分でないので」と予想通りの返し(笑) https://t.co/Acf5LfSrrf https://t.co/AJstK5Sy4z」 / Twitter
Submit a file for malware analysis - Microsoft Security Intelligence
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やっと新コード署名に功徳がたまったらしく、SmartScreen の警告が出なくなった様子。 功徳満了に必要な期間は 8-9日間だった。」 / Twitter

ゆきさんのツイート: "ACME End User Client and Code Signing Certificates https://t.co/WR6sLBVYnX ACMEでクライアント証明書やコード署名証明書やコードサイニング証明書を発行する提案仕様 #yuki_id"
draft-moriarty-acme-client-01 - ACME Client Extension
Kazuho OkuさんはTwitterを使っています 「コード署名の検証手法としては、そもそも不適です。CRLや、その発展技術であるCRLite, CRLSet の使用がより適しているかと思います。」 / Twitter

コードサイニング証明書を個人にも発行!! – Crystal Dew Blog
デジタル署名のまとめ(Vista x64対応) – Crystal Dew Blog
個人ソフト作者にとってのデジタル署名とは
個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた
最も安い?コード署名証明書の取得(&使い方)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今回のコード署名証明書取得では(3年前と違い)、openssl で CSR を作成する必要があった。 https://t.co/aGp5h8a5mN」 / Twitter
[CertCentral] コードサイニング証明書のCSR 生成/PKCS#12ファイルの生成 (openssl)
SHIROUZU Personal Log(2018-10-15)
コードサイニング証明書を買う前に (山崎はるかのメモ)
個人事業主として EV コードサイニング証明書を取得してみた | エレン・イーストのブログ
個人でコードサイニング証明書を取得してみた | エレン・イーストのブログ
「WinRAR」のWindows 10へのインストールが一時的に不可能な状態に - GIGAZINE
Linux Foundation Sigstoreがコード署名の暗号化を目指す
Microsoftが「署名拒否」を競合製品対策の戦術にしていると開発者が主張 - GIGAZINE
Microsoftのデジタル署名入りルートキット「FiveSys」がネトゲを標的に拡散中 - GIGAZINE
Windowsネイティブアプリにコードサイニング証明書をつける - Qiita
NVIDIAのコードサイニング証明書がマルウェアとして偽装される、先週からの同社への攻撃の一部か - 自作ユーザーが解説するゲーミングPCガイド
sigstoreによるコンテナイメージやソフトウェアの署名 - knqyf263's blog

証明書失効

OCSP

Kazuho OkuさんはTwitterを使っています 「「OCSPはプライバシーの点で壊れてるのでstaplingでしか使われなくなりました」」 / Twitter
Yasuhiro MorishitaさんはTwitterを使っています 「【募】「証明書に書かれているCRLやOCSPのURLはなぜhttpsではなくhttpなのか」を人に説明したい時、参考にできる情報。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「x509証明書を平文で流すのが問題だと考えるようになったの、スノーデンとかiOSのnotificationのトラッキングとか、2010年代になってからだから、それ以前の証明書関連プロトコルが平文なのは自然だと思う」 / Twitter
Shigeki OhtsuさんはTwitterを使っています 「これですね。IAB Statement on OCSP Stapling https://t.co/0RwY5a2d1q」 / Twitter
IAB Statement on OCSP Stapling | Internet Architecture Board
Kazuho Okuさんのツイート: "単にOCSPレスポンダ内部でのバリデーションがクロスルートに対応してなかったんじゃないの? > 「クロスルート証明書を失効させるつもりが、同じ subject で同じ鍵である Root(R1) の証明書の方を失効扱いにしてしまった」 https://t.co/iQbrPncS5I"
Kazuho Okuさんのツイート: "証明書チェインのクロスルート検証がうまく動かない問題昔からいろいろあるし、CAが運用するOCSPレスポンダみたいな更新が難しいソフトにその問題が残っててもちっとも意外じゃない"
Kazuho Okuさんのツイート: "証明書チェインを検証するために辿るキーはDNとpublic keyだけなので、状況とも符合する"
Kazuho Okuさんのツイート: "たとえばopensslの1.0.1系列を使ったocspレスポンダを、古い中間CAが登録された状態で動かしてたら当該の挙動になるんじゃないかなぁ"
【翻訳】Firefox における OCSP Stapling - Mozilla Security Blog 日本語版
【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書 - Mozilla Security Blog 日本語版
Online Certificate Status Protocol - Wikipedia
Online Certificate Status Protocol - OCSP
https://tools.ietf.org/rfc/rfc6277.txt
https://tools.ietf.org/rfc/rfc2560.txt
https://tools.ietf.org/rfc/rfc6960.txt
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、OCSPレスポンスを取得する対象をEV証明書に限定。また、EV証明書についてもタイムアウトの設定を2秒から1秒に短縮した。参照:https://t.co/S2rMKSy6bF / “1366…” https://t.co/uumZYZAfk4"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、OCSPレスポンスを取得する対象にDV証明書を再度追加した。 / “1390688 - re-enable OCSP fetching for DV certificates in Nigh…” https://t.co/OkyKbQxtnH"
MicrosoftのWebサイトを「Firefox」で開けない現象が発生中 - 窓の杜
MicrosoftのWebサイトを開けない不具合を修正した「Firefox 95.0.1」が公開 - 窓の杜

モジラ、グーグルと同様の証明書失効チェック方法を採用へ - ZDNet Japan
Google Chrome、SSL証明書のオンライン失効チェックを無効に - ITmedia エンタープライズ
CA:RevocationPlan - MozillaWiki
証明書失効リスト - Wikipedia
CRLSets - The Chromium Projects
Rockridgeさんのツイート: "Fx50:証明書のブロックリスト(OneCRL)にKintoを用いる仕組みがリリースチャンネルでも有効化された。 / “1265008 – Enable the Kinto.js OneCRL client for releas…” https://t.co/RgkgoFeJEQ"
【翻訳】中間証明書の失効確認: OneCRL の導入 - Mozilla Security Blog 日本語版
GodaddyのSSL証明書にドメイン認証の脆弱性があり8850件の証明書が失効された | 徳丸浩の日記
障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可について(第一報) - JPNIC
サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告 - JPNIC
Rockridgeさんのツイート: "Fx52:証明書のブロックリスト(OneCRL)の対象となるのは、TLSサーバ証明書のみとなった。Thunderbirdが扱うS/MIMEは対象外となる。 / “1312827 – make OneCRL only apply …” https://t.co/yqCnhUoUUa"
Kazuho Okuさんのツイート: "なんか、割と皆、サーバ証明書かルート証明書の失効問題だと考えてるみたいだけど、中間証明書やコードサイニング証明書がらみの問題でないという判断の根拠はあるのかしら"
Kazuho Okuさんのツイート: "テスト環境ではトラストチェインの検証時に、テストクライアントにあるより新しい中間証明書が自動的に使われていたが運用環境ではそれがなかった、みたいな可能性もありうると思うけど"
Shigeki Ohtsuさんのツイート: "めちゃ議論が白熱してたから追っかけられなかったけど結局DarkMatterのルートを入れず中間証明書も失効させることになったのか。Mozillaは漢だ。 / “Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan” https://t.co/geOGUkAs3N"
Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan
Shigeki OhtsuさんはTwitterを使っています: 「Googleのトーゴドメイン(https://t.co/AeIs0BgWED)の証明書がまた不正発行されてた(2年ぶり2回目)。CRLで失効されているけどOCSPまだGoodだ。レジストラがまたやられたか。 https://t.co/8QIIHeZahZ」 / Twitter
ゆきさんはTwitterを使っています: 「MozillaとGoogleは、カザフスタン政府により中間者攻撃を可能とする政府発行の証明書をブロックすると https://t.co/A5ZcXZwQdg」 / Twitter
Kazuho OkuさんはTwitterを使っています 「証明書の期限なんて短くていいんだよ。7日とか、CRLやOCSPの有効期限並に短くすれば、CRLとかOCSPとかややこしい仕組みが不要になる。そこまでどう持っていくか、の問題」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、コード署名は「実行時の期限切れ」は問題としないポリシーだな。(少なくともWindowsでは) これ、CRL入りすると実行時でもエラーになるのかな?」 / Twitter

証明書ブロック

Symantec

Google

Symantec、同社発行のSSL/TLS証明書を信頼してもらうための対策をGoogleに提案 | スラド セキュリティ
Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(メモ) - ASnoKaze blog
Google Developers Japan: Chrome が Symantec の証明書に対する信頼を破棄する予定について
Google、Symantec証明書に対する信頼を段階的に削減。「Google Chrome 70」で完全削除 - 窓の杜
Rockridgeさんのツイート: "2018年10月23日からの週にリリース予定のChrome 70では、Symantec発行のルート証明書と結びつけられたほとんどすべての証明書が失効することになるという。 / “Google Online Security Bl…” https://t.co/tN62wZRVwT"

Mozilla

Mozilla、Symantecが発行した証明書の信頼性回復に関する議論に参戦 | スラド IT
Rockridgeさんのツイート: "FirefoxがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除していくスケジュールは、Chromeとおおむね一致する。リリース日の違いから数週間ずれる程度。 / “Final Decision by …” https://t.co/uHXwTO39Ey"
Rockridgeさんのツイート: "2018年5月のFirefox 60以降、Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書をWebサイトが使用する場合、信頼できない接続である旨が表示される。2018年10月のFiref… https://t.co/R3D7FNtw8o"
Rockridgeさんのツイート: "Fx60:Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書を失効させるが、互換性問題に備えて復旧用の設定を実装する模様。参照:https://t.co/6em1Yh9xSW / “14…” https://t.co/LSTU24RdmQ"
Shigeki Ohtsuさんのツイート: "トップ100万ドメインの1%強がまだSymantec証明書を利用しているので、MozillaがSymantec Distrustを1リリース延期するとのこと / “Delaying Further Symantec TLS Ce…” https://t.co/IWhB9OclEJ"
Delaying Further Symantec TLS Certificate Distrust | Mozilla Security Blog
信頼性の低いシマンテック証明書の置き換えが予想以上に遅いとMozillaが嘆き - GIGAZINE

Symantec系列CAの証明書がエラーになったりするのは少なくとも「2017年8月8日」からではないっぽい - Technically, technophobic.
Rockridgeさんのツイート: "2017年8月2日、Symantecが米DigiCert社にWebsite Securityおよび関連するPKIソリューション事業を売却すると発表した。Symantecは対価として約9億5000万ドルとDigiCertの株式の約3… https://t.co/X8Bu0SKLUp"
Shigeki Ohtsuさんのツイート: "シマンテックがPKIビジネスをDegiCertに売却しちゃった。 / “DigiCert to Acquire Symantec's Website Security Business” https://t.co/aT7fOLoRla"
DigiCert to Acquire Symantec's Website Security Business
Shigeki Ohtsuさんのツイート: "Symantecはシェア3位の14%, DigiCertは6位の2.2%。合わせても16.2%の3位のまま。独禁的にも問題ないのか。 / “Usage Statistics and Market Share of SSL Cer…” https://t.co/Z0M4zzS05s"
そのSSL/TLS証明書は大丈夫? Google Chromeからhttpsサイトとして信頼してもらえなくなる場合も!? - INTERNET Watch
旧SymantecのSSL/TLS証明書問題、DigiCertが対応ほぼ完了宣言、次はいよいよIoTセキュリティへ前進 - INTERNET Watch

WoSign/StartCom

Mozilla

Rockridgeさんのツイート: "2016年10月21日以降に発行されたデジタル証明書に関し、StartComおよびWoSignが発行したものは、Mozillaのルート証明書ストアにおいて信頼されない取扱いとなることが決まった。参照:… https://t.co/OfjasBepmH"
Shigeki Ohtsuさんのツイート: "Mozillaからの WoSign/StarCom へのペナルティ(6/21以降に発行された証明書は不正と判定し、現行のrootCAを将来的に削除する)が正式に決まりました。 / “Distrusting New WoSign …” https://t.co/Y83wWhfPYa"
Distrusting New WoSign and StartCom Certificates | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "WoSignからのMozillaの決定を受け入れるとのアナウンス。なんと有効な中間証明書を 1つ持つらしい。2017年6月から再申請をするとのこと。中国国内で50%のシェア持ってるのか。 / “Announcement abou…” https://t.co/62JBl9xk4h"
Announcement about Mozilla Action-WoSign SSL Certificates!
Rockridgeさんのツイート: "MozillaがWoSign/StartComのデジタル証明書に関する対策を発表。2016年10月21日以降に発行されたものにつき信頼しない措置は、Firefox 51から適用。将来的にWoSign/StartComのルート証明書… https://t.co/qOFfgGA2hv"
【翻訳】WoSign と StartCom による今後の証明書は拒否します - Mozilla Security Blog 日本語版
Rockridgeさんのツイート: "2018年1月リリース予定のFirefox 58で、WoSign/StartCom発行のルート証明書はMozillaのルート証明書ストアから排除される。 / “Removing Disabled WoSign and Start…” https://t.co/qH9fJNE8mf"
WoSign/StartComのルート証明書が「Firefox 58」から削除 - 窓の杜

Google

Google、Chrome 61以降でWoSignの証明書をブロックへ | スラド セキュリティ

MS

マイクロソフト、不正が指摘されていた中国CAの証明書を無効に - ZDNet Japan

Makoto Kato ︎︎さんのツイート: "はてなってRaidSSL使ってるから、あれChromeのCanaryとかFirefox Nightlyだともう無効な証明書として認識されちゃってて、せっかく常時HTTPS化したけどそもそもアクセスできなくなってるね。。。"
Makoto Kato ︎︎さんのツイート: "*.hatelabo.jpどうするんでしょ、あれ。ずっと証明書直さないけど"
IE11とEdgeでもついにSHA-1証明書使用サイトをブロックへ | スラド セキュリティ

EV証明書

Extended Validation Certificate - Wikipedia, the free encyclopedia
Extended Validation 証明書 - Wikipedia
メモ:EV証明書でブラウザのURLバーを緑色にするのもうやめない?という話 - Technically, technophobic.
Rockridgeさんのツイート: "EV証明書の取扱いについて熱心な議論が交わされている。どうやらMozillaの開発者たちは、アドレスバーの表示について、EV証明書を特別扱いしない方向に持っていきたいらしい。 / “On the value of EV” https://t.co/xmYbGb2DT2"
Rockridgeさんのツイート: "Fx63:DocuSignのルート証明書はEV SSL証明書として扱わない。 / “1476473 - Disable EV treatment for DocuSign roots” https://t.co/V0b92QmC0t"
「Google Chrome 57」にSymantec社のEV SSL証明書を正常に扱えない不具合 - 窓の杜
〔三菱UFJダイレクト〕銀行名変更にともなうサーバ証明書の切替について | 三菱UFJ銀行
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行のEV証明書の件。Baltimoreへのクロス証明書を使えばRootCAがないのはWindows XP SP3より前しかなさそうだから、それだけ古いの使っているユーザを心配しているんじゃないですかね。 https://t.co/i40iQxafwa"
DigiCert Root Compatibility
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行がBaltimoreへのクロス証明書を使わない運用だとJRE 1.4.2_17とFirefox1が影響受けそう。でも Mixed SHA256 EV hierarchy with a cross root under Baltimore Rootの構成ならほとんど大丈夫でしょ。 https://t.co/i40iQxafwa"
個人でEV SSL証明書が欲しい話 - Speaker Deck
FirefoxでオレオレEVSSL証明書 - Qiita
Yasuhiro Morishitaさんのツイート: "私は「CHromeによって選ばれた人」だったようです。EV証明書のサイトを開いてF12を押すと、コンソールにこんな表示が。 "As part of an experiment, Chrome temporarily shows only the lock icon in the address bar. Your SSL certificate with Extended Validation is still valid."… https://t.co/7FMKo2Z5ke"
Yasuhiro Morishitaさんのツイート: "私のGoogle Chrome、EV証明書でも組織名が出なくなってしまったのですが、何が悪いんでしょうか。ちなみにバージョンはWindows版の「69.0.3497.81(Official Build) (64 ビット)」。… "
Yasuhiro Morishitaさんのツイート: "(こういう表示をA/Bテストでして来るということは、Googleは将来、EV証明書の組織名表示をなくしたいと思っているということなんだな)"
Shigeki Ohtsuさんのツイート: "とうとう Google が ChromeでEVの組織表示をなくす FieldTrial を始めたようです。 https://t.co/vSF91Cj0x6"
Mitsuru SHIMAMURAさんのツイート: "これ、CA屋は大反発じゃないんですかね?Googleが強行するんですかね… "
Shigeki Ohtsuさんのツイート: "既に脅しをかけられてたので、一部 CA が anti-phishing の London Protocol を立ち上げてる途中だったんですけど… Digicertが抜けたりとあまりうまくいってないので、Gがさらに脅しをかけているのかもしれません。… "
Mitsuru SHIMAMURAさんのツイート: "ほー…。区別しないようにするというのはphising由来だったんですか… "
Shigeki Ohtsuさんのツイート: "FieldTrial にビンゴしてたようですね。 chrome://flags/#simplify-https-indicator で戻すことができると思います。… "
Yasuhiro Morishitaさんのツイート: "「Googleがブチ切れる先にある未来」という名言を思い出します😅… "
Shigeki Ohtsuさんのツイート: "AppleもSafariでのEV証明書の組織表示をやめるみたい。iOS12からなのか? https://t.co/4FsvWhapqc… "
201806AppleCABF.key
Shigeki Ohtsuさんのツイート: "iOS12のSafariで、EV証明書の組織表示がなくなったのが確認できました。padlock(鍵)マークとURLが緑色なので、まだOV/DV証明書との区別はできています。… "
Shigeki Ohtsuさんのツイート: "PayPalがクロス証明書を入れたらWindowでVerisign側のチェーンで評価され、ルートのOIDが変わりEV証明書と評価されなくなっていると。これ、ユーザが気づかなかったら実はPayPalにEV要らないかと。 / “Wh…” https://t.co/pAkQFSwRDw"
Rockridgeさんのツイート: "FirefoxがSSL証明書のEVステータスを評価するプロセスについて(公式)。 / “CA/EV Processing for CAs - MozillaWiki” https://t.co/E2HFqNYKnr"
CA/EV Processing for CAs - MozillaWiki
北河拓士 KITAGAWA,Takujiさんのツイート: "また、同名の会社を設立すればEV証明書を取得できてしまう。実際にセキュリティ専門家のIan Carroll氏が決済会社「Stripe Inc」と同名の会社を設立しEV証明書が取得できることを実証している。https://t.co/AhHtkDf8DI 費用は会社設立に100ドル、証明書取得に77ドルのみ。"
Brian SmithさんはTwitterを使っています: 「Chrome joins FirefoxOS &amp; Safari/iOS in dropping the EV indicator in primary browser UI. Nice! Looking forward to all browsers dropping all support for EV &amp; maybe even all certificate policies. Here's webpki's entire implementation of policies: https://t.co/UYJsX2qVTq ;) https://t.co/UOCnQ9q2BU」 / Twitter
webpki/src/cert.rs at 0573c1ec3fa4da14d74b9c6ee52087b80dadf16e · briansmith/webpki
Ryan HurstさんはTwitterを使っています: 「All our mistakes sooner or later surely come home to roost. - https://t.co/VS7iPn6zkB」 / Twitter
Upcoming Change to Chrome's Identity Indicators - Google グループ
Google Chrome EV表示の終焉 - ぼちぼち日記
Shigeki OhtsuさんはTwitterを使っています: 「Mozillaも、2019年10月22日リリース予定のFirefox70から、URLバーからEV表示を削除するとのことです。 / “Google Groups” https://t.co/nV3aTqPtpE」 / Twitter
Intent to Ship: Move Extended Validation Information out of the URL bar - Google Groups
Makoto Kato ︎︎さんはTwitterを使っています: 「当事者ではないので個人的な感触ですが、EVの件は、CA/Browser Forum (https://t.co/YTHViQCmPn) でAppleとかGoogleのEVに対しての話に対して、CA側が有効な解決策・回答がでなかったことの結論としか思えないんだけど」 / Twitter
CA/Browser Forum - CAB Forum
「Extended Validation 証明書」表示がChromeとFirefoxから消滅へ - GIGAZINE
Shigeki OhtsuさんはTwitterを使っています: 「SECOMさんが緊急メンテでテストEV証明書を誤発行してしまった件。既に全部失効させて対策案提示したけど、ドメイン認証してないのって突っ込まれている。無事収束してほしいな。 / “1576133 - SECOM: Mis-issued EV Certificates” https://t.co/Hmyyz57Ler」 / Twitter
1576133 - SECOM: Mis-issued EV Certificates
「Firefox」もアドレスバーのEV証明書発行元表示を廃止 ~鍵・盾アイコンの仕様も変更 - 窓の杜

CT

Certificate Transparency について|サイバートラスト
Certificate Transparency | ブログ | SSL・電子証明書ならGMOグローバルサイン
Certificate Transparency(透かし入り証明書)とは | シマンテック SSL
Certificate Transparency:業界レポート:セキュリティ編 - GMOインターネット株式会社
Certificate Transparency(透かし入り証明書)|製品・価格一覧|SSLサーバ証明書 ジオトラスト
自堕落な技術者の日記 : SSL証明書 - livedoor Blog(ブログ)
自堕落な技術者の日記 : Certificate TransparencyでわかったというThawteによるgoogle.com証明書の不正発行??? - livedoor Blog(ブログ)
自堕落な技術者の日記 : Deep Inside Certificate Transparency (その1) - livedoor Blog(ブログ)
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Rockridgeさんのツイート: "Certificate Transparencyは「認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組み」。Googleが提唱し、RFC6962としてRFC化された証明書の誤発行を防ぐ新たな技術。 https://t.co/AoCuhCeZmk"
Rockridgeさんのツイート: "Chromeには既にCertificate Transparency(CT)の検証機能が導入されており、SSLサーバ証明書がCTに準拠している(=Proofが登録されている)かどうかを表示できる。Firefoxでも同様の検証機能が… https://t.co/qs8BeRF7wT"
CT対応を示すExpect-CTヘッダとは - ASnoKaze blog
Certificate Transparency
Shigeki Ohtsuさんのツイート: "去年の誤発行のペナルティで6月以降にSymantecが発行した全証明書にSCTがないとエラーにする制限がChromeに入りました。マジやるのか、Google恐し。 / “Issue 2109913004: Require Cer…” https://t.co/ysX34FlTd3"
https://tools.ietf.org/rfc/rfc6962.txt
Certificate Transparency の仕組みと HPKP から Expect-CT への移行 | blog.jxck.io
Shigeki Ohtsuさんのツイート: "おぉ、Googleに続いてAppleも2018年10月15日以降に発行される全証明書にSCT求めるCT Enforcementを行うと。 / “Certificate Transparency policy - Apple Su…” https://t.co/trtGhYv53e"
letsencrypt/ct-woodpecker: A tool to monitor a CT log for operational problems
Shigeki OhtsuさんはTwitterを使っています 「先月末に公表された構成管理ツールSaltStackの深刻な脆弱性によってDigiCertのCTLog2サーバを管理するmasterが攻撃されたようです。CT署名する秘密鍵が危殆化したという初めての事態になってしまった。 https://t.co/Xiyvktzgxl」 / Twitter
CT2 Log Compromised via Salt Vulnerability - Google グループ
Googleが開発した「改ざん不可能なログシステム」を構築できる「Trillian」とは? - GIGAZINE
サーバ証明書の不正発行に対するSCT Auditing - ASnoKaze blog

DANE

情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
DNS-based Authentication of Named Entities(DANE) | GMOグローバルサインブログ

DNS CAA

DNS Certification Authority Authorization (CAA) | GMOグローバルサインブログ
DNS CAA とは:SSL | DigiCert
DNSサーバのCAA設定 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
DNSのCAAリソース・レコード、使っていますか? | スラド IT
DNS CAA を設定した - @znz blog
Certification Authority Authorization (CAA) | Symantec
Qualysの SSL Server TestでA+評価を取得した設定例(2017-01-15時点, CentOS7 + Apache HTTPD 2.4.6) - Qiita

暗号

その他

blog

整数多項式が有限個の素数しか生成しない場合 | yasuokaの日記 | スラド
Kazuho OkuさんはTwitterを使っています 「いい記事。ソルトはbruteforceに対しては効果薄いしソルト使ってても公開したらダメ。sha256の方が速いのは暗号通貨向けの最適化考えると納得感ある / https://t.co/5NxsRbCtFe」 / Twitter
メールアドレスをハッシュ化したものを公開してもよいのか - しまたろさんの掃き溜め
Kazuho OkuさんはTwitterを使っています 「ソルトは解析対象がN個あるときのコストをO(N)に引き上げるものだけど(その極端な差がrainbow table)、今回の話はNが小さい場合なので」 / Twitter
メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
虚数乗法論 (2):楕円曲線の由来 - tsujimotterのノートブック
虚数乗法論 (1):イントロ - tsujimotterのノートブック

PDF

000055177.pdf
000090943.pdf
暗号鍵管理ガイドライン:IPA 独立行政法人 情報処理推進機構
セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
楕円曲線の理論的及び実用的可能性
applied-quantum-safe-security_J.pdf

スライド

ブロックチェーン系プロジェクトで着目される暗号技術
BLS署名の実装とその応用
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
高速な暗号実装のためにしてきたこと
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明

infoQ

Tink - クラウド、Android、iOSに対応するGoogleの暗号化ライブラリ
Adiantumによりローエンドのスマートフォンでディスク暗号化が可能に
ポスト量子暗号とは - Jean-Philippe Aumasson氏に聞く
Googleが完全準同型暗号トランスパイラーをオープンソース化

News

ブロックチェーンの秘密鍵、生体認証で生成 日立が新技術 - ITmedia NEWS
Google、社内サービスに利用する暗号ライブラリ「Tink」をオープンソースに | OSDN Magazine
Intelが完全準同型暗号に関するDARPAのプログラムでMicrosoftと協業することを発表 - GIGAZINE

情報処理推進機構:情報セキュリティ:セキュリティ関連 RFC
エンドツーエンド暗号化 - Wikipedia
google/tink: Tink is a multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
キーペア (*.pfx) から秘密鍵のエクスポート - Web/DB プログラミング徹底解説
SSLサーバ証明書 : opensslで秘密鍵のパスフレーズを解除する方法 | DigiCert
Fadisさんのツイート: "RC4、最初にRC4と呼ばれる暗号を作ったRSAはアルゴリズムを公開していないけど等価な計算を行う方法が他所から公開されて、RSAはアルゴリズムを公開していないけどWebの標準の地位を確立して、RSAはアルゴリズムを公開していないけどこの暗号は弱いから使うのをやめよう、という話になってるの面白い"
[2107.04940] You Really Shouldn't Roll Your Own Crypto: An Empirical Study of Vulnerabilities in Cryptographic Libraries

秘密計算

秘密計算の発展
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「秘密計算がWalletに使われているようなのでメモ --- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings https://t.co/0ZRtpbWO8V」 / Twitter
Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
暗号化したまま計算できる暗号技術とOSS開発による広がり
秘密計算エンジニアを始めて1年が経った。 - Qiita
秘密計算エンジニアを始めて2年半が経った。 - Qiita

CRYPTREC

CRYPTREC | トップページ
CRYPTREC - Wikipedia
電子行政:キーワード - CRYPTREC暗号リスト:ITpro
情報処理推進機構:情報セキュリティ : CRYPTREC
CRYPTRECとは|Cryptography Research and Evaluation Committees - 意味 / 定義 : IT用語辞典
Shigeki Ohtsuさんのツイート: "へぇ、CREPTRECも進めるのか。/ ポスト量子暗号の代表的な方式について調査を行っており、調査結果を2019年末までに公表予定。 / “耐量子計算機暗号の標準化動向” https://t.co/eQtZDVvuAT"
ref4_takagi.pdf
Makoto Kato ︎︎さんのツイート: "2年位前にCRYPTRECで出したSSLサーバー管理のPDFにGPKIとかの証明書を手動インストールする話を入れるかどうかをあの文書作ってる時議論したけど、そもそも手動で入れるってことを許可する自体セキュアじゃないって結論になって最終的に削除した"
Shigeki Ohtsuさんのツイート: "CRYPTRECはChaCha20だけじゃなくx25519(ECDHE, 253bits)も認めないのかぁ。こりゃOpenSSL-1.1.x系をそのまま導入するとガイドライン違反になっちゃうよ。https://t.co/wn8GVeavEy"
CRYPTREC | トピックス
Shigeki Ohtsuさんのツイート: "ちょっ、GPKI発行の証明書でサイト運営しているCRYPTRECさん、ガイドライン満たしてよw… "
Makoto Kato ︎︎さんのツイート: "私は、新しい版は関わってないですが、高木さんとか島岡さんとかも関わってなくなっているので、いろいろダメな感じになってますね。 https://t.co/kC7Xje31ks"
Makoto Kato ︎︎さんのツイート: "SSL設定ガイドラインの1.0のところはサーバー側の面倒なところって、高木さんが書いてたとかあるし、証明書のところって島岡さんとかだから、2.0がダメダメなのは、まぁあの新しい委員が時代背景わかってないだけですね。これ。 https://t.co/21erXOccXG"
SSL/TLS暗号設定ガイドライン
Shigeki Ohtsuさんのツイート: "そこまでダメ感は感じないんですが、幾つか気になる点があるので、今まとめています。Changelogがほとんど書いてなく、今回の改訂のせいなのかちょっとわからないのが辛いですが。… "
Makoto Kato ︎︎さんのツイート: "それよりもだな、CRYPTRECのサイトがGPKI使ってるけど、Baseline Requirementみたしてない(監査法人がまともに仕事してない)のは、MozillaでRejectされてるのでわかってるんだけど、それを使うのはいかがなものなかなって思ってる"
Makoto Kato ︎︎さんのツイート: "1.0を作る際、数年おきに更新するようにしたいと言ってた話がちゃんと実行されているのは素晴らしいのですが、今回はいろいろ突っ込みたいところがあるので、次を作る時はもう少し人材を選んだ方がいいのではとは思うんですよ… "
Makoto Kato ︎︎さんのツイート: "2018年にもなって、SSL3.0を優先するのが望ましいとか、それだめでしょ。SSL3.0も基本無効しかあり得ないと思うんだが。そんなクライアント使ってることが問題なのではと思うんだが。"
Shigeki Ohtsuさんのツイート: "次は「0-RTT抜きでTLS1.3使え、以上」になるので、人材はいらないのではw そしたらCame***も…(以下自粛)… "
Makoto Kato ︎︎さんのツイート: "https://t.co/9LR0nQ3YJQ を作る時も、いろんな理由にかこつけて、カメなんとか以外の国産暗号を排除してるだけにしか見えないから、まぁ。。。"
CRYPTREC | 注意喚起情報
ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応
CRYPTREC | CRYPTREC Report 2020

FIPS

連邦情報処理標準 - Wikipedia
FIPS 140 - Wikipedia
用語解説辞典|【公式】NTTPC
FIPSとは|連邦情報処理標準|Federal Information Processing Standards - 意味 / 定義 : IT用語辞典
NIST.gov - Computer Security Division - Computer Security Resource Center
FIPS – アマゾン ウェブ サービス (AWS)
7594591200220899443さんのツイート: "そういう系の話でいうとFIPS 140-2にも似たような話がある。OpenSSLのFIPS認証はOpenSSLをアップデートしてしまうと無効になるため、新しいcypher suiteに移行するなどといったことができない。https://t.co/EBAVcoIQJM "Criticism" の項… https://t.co/IzBx4YNM7m"
FIPS 140 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: 「NISTからCurve25519/448とEdDSA(ed25519/448)のドラフトが出たぞ(SP 800-186, FIPS 186-5)。米国政府がdjbを認めることになるのはなんか象徴的だ。 https://t.co/p5YQ5OT8lp https://t.co/3fXKKMV8Ol」 / Twitter
FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC

ARIA

Shigeki Ohtsuさんのツイート: "韓国の暗号ARIA(RFC5794)がOpenSSLに入った。default不可。Oracle DBがOpenSSLを使うかららしい。GCM対応してないのでTLSでは使えません。 / “Implementation of the…” https://t.co/voIQNeRgPV"
Shigeki Ohtsuさんのツイート: "ARIAのベンチ取ったけどasm対応もしてないからめちゃ遅い。これ、ホント Oracle DBで使うのか? 単に調達要件対応のためだけかもしれないなぁ。"

特権分離

Kazuho's Weblog: Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)
Kazuho OkuさんはTwitterを使っています: "blogged / “Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話” http://t.co/L69ZcPqcRM"
U+4E0A U+6797さんはTwitterを使っています: "Heartbleedの後 SSLの特権分離を速攻実装したの OpenBSDのrelaydなんだけど 言及されていないのか<neverbleed"

鍵交換

DHE

ディフィー・ヘルマン鍵共有 - Wikipedia
Fadisさんのツイート: "TLSの鍵交換はかつてはサーバ証明書にくっ付いた公開鍵を使ってRSAで行われていた。この方法には通信内容を丸ごと記録している第三者が居た場合、後から秘密鍵が漏れると通信内容が全部解読されるという問題があったが、そんな大掛かりな手を使う奴はいないだろうと思われていた。実際に現れるまでは"
Fadisさんのツイート: "で、その結果、教科書に書かれてるけどどこで使われているのか知らない物ランキング上位を狙えそうだったDiffie-Hellman鍵共有が「鍵共有の過程が見えていても鍵が分からない」という利点を買われて一躍TLSに欠かせないアルゴリズムになった"
FadisさんはTwitterを使っています: 「鍵共有に使う鍵は毎回変えないと後から秘密鍵拾ったマンに解読されるけど、鍵が変わると相手が本物かわからないから、相手を確認する公開鍵と共通鍵を作るための公開鍵が別で必要で、しかも両者の持ち主が同一である事が保証されなければならない。だから今日の多くの安全な通信路は2段階のDHを行う」 / Twitter
FadisさんはTwitterを使っています: 「という背景がわかるとWireGuardのアレが最高にcoolな通信プロトコルなのがわかる」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ DH(鍵交換)は一回でもう一回は署名とその検証かと」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho そうですね。安全な通信路の定番TLSがその方式なのに「多くの安全な通信路」は大げさでした」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ ええ。というより、FSを実現するためには、長期鍵を暗号化に使ってはダメなんです」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho 長期鍵は共通鍵の素の全てになっていてはいけませんが、共通鍵に至る過程の一部になることはできます。例えば長期鍵でDHしたFSでない通信路で一時鍵DHを行う事でFSは得られると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ そのような例では、長期鍵で確立した通信路が生きている期間をひとつのセッションとして扱うように思いました」 / Twitter
angel as ㌵㌤の猫さんはTwitterを使っています: 「@fadis_ @kazuho DH+DHでFSを確保する実例は知りませんが、RSA暗号+RSA暗号であれば、SSHv1で使ってますね。 ※ただプロトコル自体に脆弱性があるのと、RSA短期鍵がどうしても使いづらいので、今実用にはならないでしょうが」 / Twitter

ECDHE(x25519)

楕円曲線上の離散対数問題に対するアプローチ(Baby-step giant-stepとPollard's rho algorithm) - sonickun.log
Pari/GPで楕円曲線離散対数を計算してみる - ももいろテクノロジー
楕円曲線暗号の超簡単な理論の紹介 - Qiita
楕円曲線ディフィー・ヘルマン鍵共有 - Wikipedia
WebCrypto APIでECDH鍵交換を用いた暗号化を使ってみる - Qiita
クラウド時代の暗号化技術論(3):鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 (1/3) - @IT
暗号スイートの暗号強度と、公開鍵のビット数の設定、及びRSAとECDHEでサーバ負荷の比較 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
自堕落な技術者の日記 : ECDHE - livedoor Blog(ブログ)

認証

RSA

RSA

SageMathを使ってCoppersmith's Attackをやってみる - ももいろテクノロジー
plain RSAに対する攻撃手法を実装してみる - ももいろテクノロジー
RSAに対する適応的選択暗号文攻撃とパディング方式 - ももいろテクノロジー
Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA) - ももいろテクノロジー
RSA暗号運用でやってはいけない n のこと #ssmjp
Kazuho Okuさんのツイート: "良い。これならoaepとか特定のpadding推奨した方が良いのでは? / “RSA暗号運用でやってはいけない n のこと #ssmjp” https://t.co/fHDTsmoIFF"
Hironobu SUZUKIさんのツイート: "@knok gniibe先生は、RSAの計算時にあったサイドチャネルアタックの対応のために、計算コードを書き換えたのはその通り。ほぼそっくり入れ替えたんじゃないかな。しかもオリジナルより計算速度が上がったというオマケ付きで。"
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2313-Ja.txt
Shigeki Ohtsuさんのツイート: "djb がやったのは libgcrypt のRSA実装に対するサイドチャネル攻撃(CVE-2017-7526)で’RSA自体を破ったわけじゃないよね。 https://t.co/bYB7ABLrDi"
Hideyuki Tanakaさんのツイート: "もっともらしい雑誌とかにも、スパコンは早晩時代遅れになる技術であるから、量子コンピューターじゃないと意味がないし、量子コンピューターができればRSAのあらゆる鍵は数秒で分解できてしまうから、今の暗号は意味をなさなくなるとか、ため息しか出ないクソ記事乗ってるし、どうすればいいのか。"
Hideyuki Tanakaさんのツイート: "てかそれを論外のクソ記事だと判断できる人がそんなにいないものなのか。それなのにそれを信用できる人が多いのはどうしてなんだ。世の中困難なことが多すぎる(´・_・`)"
Hideyuki Tanakaさんのツイート: "量子コンピューターができるのを早晩とかいう人にとっては数十年が早晩なんだねとか、今のRSA暗号のビット数何ビットあるかわかっとる?とかショアのアルゴリズムはビット数の3乗に比例する時間がかかることとか、わかっとる?とかさあ(´・_・`)"
Hideyuki Tanakaさんのツイート: "ゲート型量子コンピューター、そもそも数千ビットまでスケールできるのか自体わかってないじゃん。そりゃいつかはできるのかもしれんけど、少なくともブレイクスルーがまだまだ必要だろうし、ブレイクスルー待ちのものが「早晩」できるとかいうのはさすがに楽観的過ぎるわなあと。"
Rui Ueyamaさんのツイート: "お、RSAをよく理解してない実装のせいで中国のQQブラウザがまったくインセキュアになっているっていう事例紹介、今月の話か。暗号の授業はタイムリーで面白いな。 https://t.co/XD8HYHtrIF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RSAのオレオレ実装、20年近く前の初代MagicConnect実装でも似た話があったかも(笑) (多倍長演算も含めて、完全自作RSAだった時代。今はパブリックなSSL実装に移行しているはず) https://t.co/PNUXropPDM… https://t.co/QFuj7i1OqH"
RSA 暗号がようやく分かった気がしたのでまとめてみる - tsujimotterのノートブック
RSA公開鍵暗号アルゴリズムを理解する
RSAが公開鍵暗号アルゴリズムをパブリック・ドメインに | 日経 xTECH(クロステック)
RSA暗号運用でやってはいけない n のこと #ssmjp
はじめに – まいとう情報通信研究会
Makoto Kato ︎︎さんはTwitterを使っています 「これ、OpenSSL/BoringSSLとNSSとCoreCryptoのaarch64上のベンチしてるだけなんだけど、RSAは愚直にアセンブラでmpi的なの書いてあるかどうかなだけかと。あとx86だとまた結果変わると思う https://t.co/qZ8wj6piLU」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「いまさらRSA速くしても意味がそんなにないから最適化コード書く理由はブラウザ的にはそんなに意味ない」 / Twitter
ブラウザのW3C Web Cryptography APIのRSA鍵処理の速度比較をしてみた

ECDSA

Pari/GPでECDH鍵交換、ECDSA署名をやってみる - ももいろテクノロジー
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ECDSAは、nonce漏洩・再利用・低品質乱数で秘密鍵復元の可能性があるので、EdDSA/Ed25519を使いましょうという話。(Pythonコード例あり) yubikeyのRNGで、ECDSA用nonce 256bitのうち80bitが予測可能なバグとかすごいな、、、 https://t.co/GNUW9UPasS」 / Twitter
ECDSA: Handle with Care | Trail of Bits Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IPAでも2011年にECDSA+nonce問題のレポートあり。 ただこの時点での想定より、もっと積極的に「ECDSAは使わない方がいい」という印象あるな、、、 https://t.co/AZMQNh3KQ4」 / Twitter
情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそも、nonceが漏洩したらダメという条件ってECDSAくらいしか知らないなぁ…普通IVやnonceは再利用ダメだけど、公開前提なのが多い印象。」 / Twitter
電子署名DSA/ECDSAの数的構造(1/2) - Qiita
FUJI GoroさんはTwitterを使っています 「偉業 of 偉業だ…。証明書をRSAからECDSAに変えるだけで目に見えるほどの効果があるのかー。 / “数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog” https://t.co/l5YxsdJN5T」 / Twitter
数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog

Ed25519

sshでed25519鍵を使うようにした - @znz blog
OpenBSD、デジタル署名付きパッケージシステムに | マイナビニュース
signify - sign and verify
七誌さんのツイート: "暗号とか以前に楕円曲線は難し過ぎて取り付く島がないと思っていたけど、Edwards曲線は高校数学でも扱えるような素性の良いものだそうです。 https://t.co/UQ74WzUdnN"
Shigeki Ohtsuさんのツイート: "OpenSSLでed25519の実装が入りそう。現在curdleで仕様策定中のed25519署名の証明書サポートまで入るとは驚き。 / “WIP: Ed25519 support by snhenson · Pull Reque…” https://t.co/EOf2LUuFNU"
Shigeki Ohtsuさんのツイート: "OpenSSLに Ed25519 が入ったでござるよ。 https://t.co/rx8rbTnLjS"
Add Ed25519 algorithm. · openssl/openssl@06c6d05
Shigeki Ohtsuさんのツイート: "ハッシュ計算中に電圧変化をかけて異なる署名を出力させてEd25519を破る技か。よく考えつくよなぁ。 / “How to defeat Ed25519 and EdDSA using faults” https://t.co/OgPN1Ne6xJ"
How to defeat Ed25519 and EdDSA using faults
kudelskisecurity/EdDSA-fault-attack: Fault attack agaisnt EdDSA demonstrated on an Arduino Nano board, allowing for partial key recovery and fake signatures.
https://tools.ietf.org/rfc/rfc6979.txt
https://tools.ietf.org/rfc/rfc8032.txt
Shigeki Ohtsuさんのツイート: "乱数を使わないEdDSAのメリットが逆に狙われちゃってるのね。署名が決定的なのはやっぱり辛い部分もあるんか。"
Shigeki Ohtsuさんのツイート: "おぉ、 djbのcurve25519, curve448(RFC7748)がNIST標準として採用されるのか。 / “Transition Plans for Key Establishment Schemes using Pu…” https://t.co/J3WBy3fs22"
Fadisさんのツイート: "Curve25519は素数2^255-19を使う楕円曲線だからこう名付けられてるけど、この命名規則には19の部分が小さい整数でないと名前が長くなるという欠陥があって、2^448-2^224-1を使う楕円曲線は2^224-1を名前にそのまま書く事を断念してCurve448と名付けられた。結果Ed25519よりEd448の方が安全になった…"
Fadisさんのツイート: "Curve25519と同じ命名規則で書くとCurve448はCurve44826959946667150639794667015087019630673637144422540572481103610249215"
Fadisさんのツイート: "コードがでかいほどバグを作りやすくなるから、Curve25519を出来るだけ小さく実装してみたよ、という論文。読めるコードで18ツイート(英文でも140文字だった時代の論文なので1ツイート=140文字)、人間に厳しい書き方をすれば12ツイートで実装できた、としている https://t.co/A5aPGPNCl9"
Wesley_Janssen___4037332___Curve25519_in_18_tweets.pdf

SSH

RSA公開鍵のファイル形式とfingerprint - Qiita
SSH 鍵 - ArchWiki
ssh公開鍵認証方式で接続 | server-memo.net
Fadisさんのツイート: "OpenSSHが自前のchacha20-poly1305とed25519を使ってOpenSSLなしで動くようになったのはOpenSSLのHeartbleedがあった後で、一見するとアレがきっかけで独自で暗号アルゴリズムを実装したように見えるんだけど、よく見るとchacha20-poly1305がOpenSSHに実装されたの、それより前なんだよな"

代数幾何学

ồu🍆chí🍆minhさんはTwitterを使っています 「代数幾何なんて工学部では使わんやろと思っていた僕が馬鹿でした.マジで勉強しないといけない気がしてきた.」 / Twitter
🦝❄いなむのみたまのかみ🦊🌸さんはTwitterを使っています 「@kkZ3kTRT 代数幾何学なんてどこで使うんだ」 / Twitter
ồu🍆chí🍆minhさんはTwitterを使っています 「@mitama_rs 楕円曲線暗号とかですね.情報工学科で暗号理論やってる時点でおかしいのかもしれない.🤔」 / Twitter
🦝❄いなむのみたまのかみ🦊🌸さんはTwitterを使っています 「@kkZ3kTRT ヴァイエルシュトラス」 / Twitter

楕円曲線

C言語で楕円曲線の勉強(1.有限体)
楕円曲線暗号をプログラムしたらこうなった – Euniclus
楕円曲線暗号の実装をしていました - プログラマのつれづれなるままに
23-5.pdf
ss2017_x1a - NTSS_25_01_03_Page043to068.pdf
2019115-154319-386.pdf
paper.pdf
楕円曲線と楕円曲線暗号 - Qiita
楕円曲線の数論について - 自分でも少しプログラムを組んで計算... - Yahoo!知恵袋
楕円曲線暗号の(比較的理解しやすい)入門書
ecc_rev30r.pdf
伊豆 哲也 (Tetsuya Izu) - 資料公開 - researchmap
楕円曲線暗号の超簡単な理論の紹介 - Qiita
IPSJ-MGN561108.pdf
lecture7.pdf
技術勉強会(楕円曲線暗号)資料
自堕落な技術者の日記 : (小ネタ)楕円曲線暗号をなんとなく理解した気になるオススメのリンク4選 - livedoor Blog(ブログ)
Microsoft Word - citp_report2017_akane_20180822b.docx - CITP_report2017_05_akane.pdf

楕円曲線はなぜ豊かな性質を持つのか

村上友哉さんはTwitterを使っています 「「楕円曲線はなぜ豊かな性質を持つのか?」というのは大変興味深い問いだと思います。 「穴の数が1個だから」という答えが僕の理解です。 例えば楕円曲線が持つ豊かな性質として、その幾何学と非常にマッチした「群構造」があります。ℂ/(格子) という構造を持つと言い換えても良いです。」 / Twitter
平田朋義さんはTwitterを使っています 「数学詳しい人に聞きたいけど、楕円曲線ってなんで豊かな性質を持つのですか?もっと高次式の曲線考えたらそれも楕円曲線みたいに豊かな性質持ちますか?」 / Twitter
平田朋義さんはTwitterを使っています 「人類はまだ高次の曲線の性質を知らないから楕円曲線の研究をやってるのか、もうすでにいろいろ分かった上で楕円曲線が特別に面白いのかどっちなんだろ。」 / Twitter
putStrさんはTwitterを使っています 「@tomo3141592653 (ガチの代数勢でないので詳しくは知らないですが、)昔見た動画。 https://t.co/3bFMwyOiq1」 / Twitter
楕円曲線はなぜ特別か? @第10回日曜数学会 - ニコニコ動画
村上友哉さんはTwitterを使っています 「こういう性質は「穴の数が1」だから成り立つことです。 というのも、一般に穴の数がg個の「曲線」(正確に言うと代数曲線やリーマン面)はℂ^g/(格子)の部分集合とみなせることが知られています。 ここでℂ^g/(格子)は次元がgで群構造も持ちます。 これはg=1のときだけ1次元、つまり「曲線」になり、」 / Twitter
村上友哉さんはTwitterを使っています 「元々考えていた「曲線」に一致することが分かります。 そういう訳で「穴の数が1」というのはとても特別なことです。」 / Twitter
村上友哉さんはTwitterを使っています 「では穴の数gが2以上だとどうでしょうか。 このとき元の曲線自体は楕円曲線のような群構造を持ちませんが、代わりに上で取り上げたℂ^g/(格子)は群構造を持つのでした。 なので楕円曲線の性質を一般化するなら元の曲線よりもℂ^g/(格子)に対して行う方が筋が良さそうです。 このℂ^g/(格子)という対象は」 / Twitter
村上友哉さんはTwitterを使っています 「ヤコビ多様体やアーベル多様体と呼ばれる対象で、楕円曲線の拡張概念としてたくさん研究されています。」 / Twitter
村上友哉さんはTwitterを使っています 「上の話をまとめると、楕円曲線が持つ様々な性質のうち群構造については 穴の数が多い曲線に対しては一般化できず、代わりにℂ^g/(格子)に一般化できる ということです。 となると群構造以外の他の性質はどうかが気になりますが、どうやらあまり研究が進んでおらず未解明の部分が多いような気がします。」 / Twitter
村上友哉さんはTwitterを使っています 「例えば、楕円曲線が持つ豊かな理論の一つに楕円関数論がありますが、これを他の曲線に拡張する研究は他分野ほどは進んでいない印象があります。 (※楕円関数論の拡張については、岩手大学の大西良博先生が大変興味深い研究を精力的にされております。参考: https://t.co/t0b5n2Q4vi)」 / Twitter
06onishi.pdf
村上友哉さんはTwitterを使っています 「……というような事情から、 「高次式の曲線も楕円曲線のように豊かな性質を持つか?」 という元ツイ2番目の問いに対しては ・元の曲線は持たないがℂ^g/(格子)が持つ性質もある ・持つかどうか未解明な性質もたくさんある というのが私の持ちうる答えになります。」 / Twitter
村上友哉さんはTwitterを使っています 「※ここで「高次式の曲線」と「穴の数が多い曲線」を同一視して話をしています。一般に曲線の定義方程式の次数が上がると穴の数も上がります。」 / Twitter
村上友哉さんはTwitterを使っています 「ここで 「楕円曲線が豊かな性質を持つのは穴の数が1だからだ」 という最初の話に立ち返ってみたいと思います。 これは逆に言うと 「曲線の穴の数が1なら豊かな性質を持つ」 と言ってしまえそうです。 ※対偶ではないので論理的には間違っています」 / Twitter
村上友哉さんはTwitterを使っています 「そこで、抽象度の高い数学の理論では 「穴の数が1の曲線を楕円曲線と呼ぶ」 としてしまうのです! ※数学ではこういう逆転現象がよく起こります」 / Twitter
村上友哉さんはTwitterを使っています 「実際のところ、この定義は元々の楕円曲線の定義と等価であることが分かります。 ※楕円曲線の通常の定義は y^2 = ax^3 + bx^2 + cx + d という定義方程式を持つ曲線だ、というものです」 / Twitter
村上友哉さんはTwitterを使っています 「「穴の数が1の曲線を楕円曲線と呼ぶ」 という定義を採用することのメリットは、適切な高次元化の方向性を考えやすくなるということです。 この方向性での高次元化としてカラビ・ヤウ多様体というものが考えられ、現在非常に活発に研究されています。 ※1次元カラビ・ヤウ多様体が楕円曲線」 / Twitter
村上友哉さんはTwitterを使っています 「まとめると、 「楕円曲線はなぜ豊かな性質を持つのか?」 という問いは 「楕円曲線の穴の数が1だから」 と答えることができ、しかもこの答えを掘り下げることで現在最前線で研究されている概念(カラビ・ヤウ多様体)に到達できる、ということになります。 元の問いの重要性が分かると思います。」 / Twitter
村上友哉さんはTwitterを使っています 「ここで書いたことは脇道に面白い話題がとてもたくさん転がっていて、本当はそれも話したいのですが、思っていたよりずっと分量が長くなってしまったのでここで打ち切ります。 この話題で僕が大好きなモジュラー曲線について触れないのは僕にとって有り得ないことなのですが、ぐっとこらえました(笑)」 / Twitter
南泰裕さんはTwitterを使っています 「@MurakamiMath これは興味深いですね。 楕円と言えば建築ではバロックですが、施工上の技術的課題から、厳密なので楕円ではないものも多いのが、また興味をそそります。 サイクロイドについても、建築でときどき議論になりますが、むしろこっちの方が実例があげやすいかも。」 / Twitter
村上友哉さんはTwitterを使っています 「@yas_minami ご興味を持って頂けて嬉しいです。 建築と数学の関係というのは素人ながら大変興味をそそられます。 バロック建築で楕円形が用いられるのは知りませんでした。画像検索してみましたがどれも美しいですね。 なお、ここで書いた「楕円曲線」は「楕円」とは完全に別の概念なのです。」 / Twitter
村上友哉さんはTwitterを使っています 「@yas_minami ややこしいので本当は別の用語を充てるべきなのですが、既に定着してしまって今更変えるわけにもいかないという事情があります。 ここで書いた「楕円曲線」は「楕円」というよりむしろドーナツ形やドーナツを輪切りにした時に出てくる図形に概念的には近いものになっています。」 / Twitter
南泰裕さんはTwitterを使っています 「@MurakamiMath なるほど、そうなんですね。 ご教示ありがとうございます。 私たち専門外の者には、なかなか理解が難しいですが、非常に興味深いです。 今度、幾何学専門の先生に、いろいろ教えてもらう予定です。どこまで理解できるか、心配ですが。」 / Twitter

楕円曲線暗号アルゴリズムを理解する
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題は1971年にSteve Cookによって提案された。あれから50年、P vs NP問題は依然として最も重要な問題のひとつである。アルゴリズムの進展により、最近ではP≠NPであってもそれなりの答えが出せるようになった。だがもしP=NPだった場合、公開鍵暗号は不可能になる。 https://t.co/wzPRQ9Po9o」 / Twitter
Fifty Years of P vs. NP and the Possibility of the Impossible | January 2022 | Communications of the ACM
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「ふと気になってOpenSSLのspeedコマンドでCurve25519やCurve448って測定できるのかな?と思ってやってみた。 ついでなのでメジャーなところの楕円曲線別の性能は以下のとおりです。 Prime521が劇的に遅い笑 ここまで遅いと心配になる。 https://t.co/eM85Z9vuXM」 / Twitter
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「実施コマンドはこんな感じです。 ./openssl speed ecdhp256 ecdhp521 ecdhx25519 ecdhx448」 / Twitter
SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか? - GIGAZINE
14年間気づかれなかった暗号の脆弱性を発見、焦りと戦ったNECの若手研究者 | 日経クロステック(xTECH)
デジタル署名: 数学弱者のためのDSAの原理 - Qiita
herumiさんはTwitterを使っています 「「公開鍵暗号」は秘匿化のための「公開鍵で暗号化して秘密鍵で復号する」暗号方式PKE(Public Key Encryption)と、PKEの他に鍵共有や署名などの「公開情報と秘密情報を組み合わせて使う」暗号技術全般を指すPKC(PK Cryptography)の二重の意味で使われると理解するのが重要。 https://t.co/snBSDs9jmK https://t.co/pyLxHT1HZD」 / Twitter
herumiさんはTwitterを使っています 「この意味を混用して説明するとよく分からない、または間違ったことになる。で、ビットコインやTLS1.3などではPKEは登場しない(楕円曲線暗号ECCもPKEの意味は使われない)、ということを次回以降で説明します。 https://t.co/bamX88xxw5」 / Twitter
Airbnbのオープンソース Ottr: サーバレス公開鍵インフラストラクチャーフレームワーク
コミさんさんはTwitterを使っています 「アドベントカレンダー書いた! Rustで楕円曲線暗号を作った! 読んでね! https://t.co/BDxfLGpALV」 / Twitter
Rustで作る公開鍵暗号 - hey Product Blog
mod_poppoさんはTwitterを使っています 「RTした記事のFieldElement<T>の乗算、もうちょっとどうにかならんのか感がある(素性のわからない型Tをベースにしていてprimeのビット数を制限しなかったらそうならざるを得ないのか)」 / Twitter
mod_poppoさんはTwitterを使っています 「図示されている楕円曲線の例の中に楕円曲線じゃないやつが混じってる気がしてWikipediaを見に行った」 / Twitter

対称暗号

AES

AES-NI

マスターIT/暗号技術:第3回 AES暗号化 - @IT
インテル® AES New Instructions (インテル® AES-NI) | iSUS
インテル® AES New Instructions およびインテル® セキュアキーによるインテル® データ・プロテクション・テクノロジー
AES-NI - Wikipedia
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「Roccaの処理速度はAES-GCMの4.5倍だとぅ...。 爆速ですな...。 性能比較を確認すると、RoccaはAES-NIで利用できる命令セットも利用できるように設計されているのかな? 気になりますっ!! #Beyond5G #6G #Authenticated_Encryption」 / Twitter
ITmedia NEWSさんはTwitterを使っています 「KDDI総研ら、世界最速の暗号アルゴリズム開発 6G時代見据え https://t.co/KCmM4cDK6M https://t.co/rYhurXjXIh」 / Twitter
KDDI総研ら、世界最速の暗号アルゴリズム開発 6G時代見据え - ITmedia NEWS
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「中身はこれですねっ! ---- 2E3-2: AES-NIを用いたBeyond 5G向け認証暗号Roccaのラウンド関数の最適性の検証 ◎ 竹内 信幸 (兵庫県立大学), 阪本 光星 (兵庫県立大学), 五十部 孝典 (兵庫県立大学/国立研究開発法人情報通信研究機構/国立研究開発法人科学技術振興機構) https://t.co/TZjSf5t4GD」 / Twitter
コンピュータセキュリティシンポジウム2021(CSS2021)
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「FSE2022の論文はコレか〜。 Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G, https://t.co/ihV7pdY0IJ」 / Twitter
Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G | IACR Transactions on Symmetric Cryptology

libtom/libtomcrypt: LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
kokke/tiny-AES128-C: Small portable AES128 in C
jhjin/OpenAES: OpenAES library exported from
AES implementations - Crypto Wiki - Wikia
Rijndael Encryption Algorithm
Poly1305-AES: a state-of-the-art message-authentication code
BRG Main SIte
BrianGladman/AES: AES code
License Library - Brian Gladman License
License Library - Brian Gladman Dual BSD-GPL
5100d_answer.pdf
Advanced Encryption Standard - Wikipedia
Shigeki Ohtsuさんのツイート: "GCM で使う Intel CPU命令 PCLMULQDQ です。 https://t.co/Brr9cwj375 #html5j_e"
CLMUL instruction set - Wikipedia
AESで不正な鍵で復号した時に何が起きるか - Qiita
「katagaitai CTF勉強会 - 関東|hard」の復習(脆弱なAES暗号の攻撃法) - Qiita
AESを使ってみる - Qiita
Rockridgeさんのツイート: "Fx56:AES-GCMアルゴリズムの処理パフォーマンスが、Mac版やLinux 32bit版、Intel AVXをサポートしない環境などで大幅に向上した。TLS暗号として頻繁に用いられるアルゴリズムだという。 / “Impro…” https://t.co/Ekkq7UG8RV"
Improving AES-GCM Performance | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "AESだけなら鍵長を増やせば対策できるがGCMが破られるのか。CCMならいけるが性能が出ないんだよなぁ。 / “量子コンピュータが共通鍵暗号の安全性に与える影響” https://t.co/0pHvQw8txT"
量子コンピュータが共通鍵暗号の安全性に与える影響
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、AES128よりAES256の方が攻撃しやすいパターンがある、という話題が出ていたが、結局、AES256の方が多数派になりつつある印象。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いや、少なくともwebサイト暗号化に関してはそんなことは無かった。 google/amazon/facebookなどは、TLS1.3に対応しつつ、AES128GCMを使っている様子。」 / Twitter
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (2/2)
OpenSSLでAES暗号したときのPadding
なぜ1億台のSamsung端末にセキュリティ上の欠陥が存在したのか - GIGAZINE

ChaCha20

Kazuho OkuさんはTwitterを使っています: "「暗号計算にかかる時間が鍵によって異なってはならない」ってのセキュリティ要件ですよ"
GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた - sonickun.log
RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
Salsa20 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: "@voluntas AES-NIが使えない環境でこそメリットが出ます。仕組みが単純なのでAES-GCMと同等かそれ以上の速度が出ます。BoringSSLだとARM用のasmがあるので3倍ぐらい速いです。アンドロイドChromeはChaCha20を優先してCipher出してます。"
Nginxでchacha20 poly1305を有効にする - ASnoKaze blog
FadisさんはTwitterを使っています 「昨日カーネル/VMの懇親会でchacha20(salsa20)がpaperの段階でARMを意識してる話したけど、実際のpaper読み返してみたらARMとは明言してなくて、乗算が値によってサイクル数が変わるプロセッサがあって、そういうところに実装するときタイミングリークを防ぐのが辛いから乗算やだって言ってた」 / Twitter
Ryoma ItoさんはTwitterを使っています 「ePrintに出しました。TLSで用いられているストリーム暗号ChaChaに対する安全性評価についてまとめた論文です🧐」 / Twitter
IACRさんはTwitterを使っています 「#ePrint PNB-based Differential Cryptanalysis of ChaCha Stream Cipher: S Miyashita, R Ito, A Miyaji https://t.co/MEKOEXzPyn」 / Twitter
Cryptology ePrint Archive: Report 2021/1537 - PNB-based Differential Cryptanalysis of ChaCha Stream Cipher

Rocca

Kazuho OkuさんはTwitterを使っています 「「PCやスマートフォンのCPUで高速に処理可能な演算(AES-NIを含む)を主な構成要素とし、それらを効率よく並列処理することで高速性を実現。AESがAES-NIを利用した場合でも約4.5倍の高速化を達成」 / https://t.co/EErlW8MIQS」 / Twitter
世界最速 Beyond 5G/6Gに向けた超高速暗号アルゴリズム「Rocca」を開発 | 株式会社KDDI総合研究所
Kazuho OkuさんはTwitterを使っています 「どういうことだろう? 比較対象になってるOpenSSLのAES-GCM実装は現実的なレコードサイズにおいてAES-NIの理論限界値の70%程度の速度は出してくるから、この説明は良く分からない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチコア向けの最適化が入ってるという話かな。OpenSSLの実装はシングルスレッド前提だから、複数コアで並列処理すれば速度上がるというのはありそう。AES-GCMでも複数レコードを同時に暗号化すればいい気はするけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「まあそのへん、L2だと低レイテンシかつ高スループット要求から複数レコード並列暗号化じゃダメなユースケースとかはありうるんだろうなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ありがとうございます。論文が出てるんですね、見てコメントすべきでした。256 bitにつきaesencを6回だから、128 bitにつき14回のaes256よりずっと軽いですね。なるほどこういう構造が提案されているのか… https://t.co/sDfOdGb1H7」 / Twitter
View of Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G
Takamichi Saito, 齋藤孝道さんはTwitterを使っています 「推察ですが、アルゴリズムが、AES265のラウンド数14に比べRoccaは1回?というストリームミング暗号方式なので安全性が確認されば圧倒的に早そうです。Roccaラウンド関数で、SubBytes等の処理をAES-NI命令で置き換え可能という仕組みのようなので、同条件で並列化したらAESより早そうではありますね」 / Twitter
Takamichi Saito, 齋藤孝道さんはTwitterを使っています 「現状、TLS1.3で利用可能なAEADストリーミング暗号はCHACHA20-POLY13だけなので、この後、Roccaは期待値が高まりそう」 / Twitter

3DESの扱いが変わってきた - 生存報告
Microsoft、IE11とMicrosoft EdgeのRC4暗号を計画より4か月遅れて無効化 | スラド セキュリティ
Kazuho OkuさんはTwitterを使っています 「暗号ライブラリ自前実装してはならぬ論よくわからないというか、暗号アルゴリズムを自作してはいけない、は正しいし、公開鍵暗号の安全な自前実装が難しいのもそうなんだけど、ブロック暗号はそんなに難しくないと思うのよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho それはkazuhoさんだから言えるセリフで、僕はたとえ正しいアルゴリズムが目の前にあっても、side channel attackその他に耐性のある実装をできる自信はないです…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda 最近の共通鍵暗号、テーブルも分岐も使わなくてすむように設計されてると思うんですよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho 安全だと判断できる十分な知識を自分が持っているという確信がないので躊躇してしまいます。 データの値に依存して実行時間の変わる演算を行っていないかは判断できそうな気はするんですが、値によって消費電力が観測可能なレベルで微妙に変わったりしないかはそもそも知らないですし…」 / Twitter
成瀬さんはTwitterを使っています 「「ブロック暗号は簡単!」って言いながらECBモードで NULパディングする未来しか見えない」 / Twitter
daem0nc0reさんはTwitterを使っています 「RC4とSalsa20がアルゴリズムからしっかり勉強できるリバースエンジニアリングの記事 https://t.co/SIsrVWB3sd」 / Twitter
Reverse Engineering Crypto Functions: RC4 and Salsa20 | GoggleHeadedHacker

メッセージ認証

Poly1305

Poly1305 - Wikipedia
Poly1305-AES: a state-of-the-art message-authentication code
floodyberry/poly1305-donna: Implementations of a fast Message-Authentication Code

メッセージ認証符号 - Wikipedia
HMAC - Wikipedia

署名

QR-UOV署名

菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「NIST PQCコンテストの3rd Round ファイナリストなデジタル署名アルゴリズム Rainbow と比較して、公開鍵サイズを削減した方式が 東大&九大&NTTからAsiacrypt 2021で発表された模様! ちょー素敵!」 / Twitter
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「Asiacrypt2021に採択された論文は以下のとおり。 ---- A New Variant of Unbalanced Oil and Vinegar Using Quotient Ring: QR-UOV Hiroki Furue, Yasuhiko Ikematsu, Yutaro Kiyomura, Tsuyoshi Takagi The University of Tokyo, Kyushu University, NTT Social Informatics Laboratories」 / Twitter
ITmedia NEWSさんはTwitterを使っています 「量子コンピュータでも解読できない暗号技術、東大らが開発 https://t.co/AxTo08hTxJ https://t.co/vWkDeu4HUi」 / Twitter
量子コンピュータでも解読できない暗号技術、東大らが開発 - ITmedia NEWS
エリー号さんはTwitterを使っています 「@itmedia_news 素人なのでよく分かりませんが、原理的に考えると ・量子側の解読が総当り制として ・公開鍵の候補数が天文学的な大きさで ・公開鍵のファイルサイズが小さい という事なのかな」 / Twitter
小原美香子さんはTwitterを使っています 「@itmedia_news 与えられた数字の山から『ある数字Xで割ったあまりがY』になる条件を満たす物を抽出しなさいという話かな。こーれは素因数分解するより難しい。」 / Twitter
ランゲルハンスさんはTwitterを使っています 「@alen_bluebee @itmedia_news ほんとに素因数分解より難しいでしょうか?」 / Twitter

菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「PQCな署名アルゴリズムについて、検討してくれていてありがたいです。 自分たちでも評価してみたいけど、社員の皆の衆...いかがお過ごしですか? https://t.co/aptprtWpue」 / Twitter
Sizing Up Post-Quantum Signatures
VさんはTwitterを使っています 「@satorukanno おー、面白そうですね。」 / Twitter
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「@voluntas 実際にプロトコルへ組み込むと、現在使われている暗号技術と鍵のデータサイズや暗号文サイズが異なるので見直さないといけないところはありそうなんですよね。 なので、暗号プリミティブだけでもさまざまな観点から計測して眺めてみると面白いかなと思ってみたりしています笑笑」 / Twitter
herumiさんはTwitterを使っています 「後の勉強会でも触れるつもりですが、TLSの文脈では楕円ElGamalだけでなく公開鍵暗号PKE全般が前方秘匿性と相性がよくないから使われなさそう。署名は署名鍵が漏洩しても、それまでの検証が無駄になるわけではない。だからECDH鍵共有+署名+AEADの流れなんじゃないかと。 https://t.co/gCCnRv8PTw」 / Twitter
署名方法や仕組みから知る、電子契約サービスの選び方 | GMOグローバルサインカレッジ

ハッシュ

SHA-1

Google Online Security Blog: Announcing the first SHA1 collision
GoogleとCWI、SHA-1衝突に成功、ハッシュ値が同じ2つのPDFを公開 -INTERNET Watch
Googleら、暗号学的ハッシュ関数SHA-1の衝突攻撃に成功 〜異なるファイルに同一ハッシュを持たせてなりすまし - PC Watch
GoogleのSHA-1のはなし
SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」 | スラド セキュリティ
【翻訳】ウェブの世界における SHA-1 の廃止 - Mozilla Security Blog 日本語版
IIJ Security Diary: SHAttered attack (SHA-1コリジョン発見)
Rockridgeさんのツイート: "Firefox 51以降、SHA-1証明書を用いた場合は安全でない接続と判断される。この設定が適用されるユーザーは、リリース後に段階を追って増えていく。ただし企業ユーザーがルート証明書をインポートした場合は例外となる。 / “P…” https://t.co/WQd5TRabbr"
Google Developers Japan: SHA1 が初めて衝突
GitHub Enterprise、SHA-1衝突を実行不能にするパッチを適用へ -INTERNET Watch
Kazuho Okuさんのツイート: "sha1のコリジョンって、いったいどんだけデータためてたんだろ。2^64とかでもまだ1/2^40くらいの確率じゃないの? truncateしてたわけじゃないよね? データが同一だったわけでもないよね?"
Kazuho Okuさんのツイート: "で、2^60個のsha1ハッシュ値の間でコリジョンを検出するためには、2^64バイト以上のストレージが必要なわけで"
Kazuho Okuさんのツイート: "spares bit array使えばもうちょっと小さくなるかな"
Shigeki Ohtsuさんのツイート: "あーぁ、SHA-1のChosen-Prefix衝突攻撃がおよそ1000万円以下程度のコストで可能になったとの論文。これでSHA-1証明書は完全に終わりです。 / “Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1” https://t.co/vpoSwrW7K8"
Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1
Shigeki Ohtsuさんのツイート: "あっ論文には詳しく書いていないですが2^63.4まで絞れたようです。https://t.co/TCcgMzyFPY > With some additional improvements that we are currently working on, we evaluate that one can find a chosen-prefix collision for SHA-1 with a budget of less than 100K US$… https://t.co/igcIjofPh6"
Archive

SHA-2

Shigeki Ohtsuさんのツイート: "SHA-256 の衝突って f(x) = x の固定点のやつじゃないのかい?"
This is not a vulnerability, or worlds first · Issue #1 · laie/WorldsFirstSha2Vulnerability
アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「実際に動かしながら見れるSHA-256の計算アルゴリズム。各ステップの解説つき。 https://t.co/nxf3o5dFzX」 / Twitter
Sha256 Algorithm Explained

SHA-3

Shigeki Ohtsuさんのツイート: "OpenSSLに SHA3 が来るのね。 AVX2/AVX512やらarmv4/v8など各種CPUのasm対応済 。どの程度性能が出るのかな。 / “Wire SHA3 to EVP. by dot-asm · Pull Req…” https://t.co/MJA0tXRlaR"
Wire SHA3 to EVP. by dot-asm · Pull Request #3943 · openssl/openssl

BLAKE3

FadisさんはTwitterを使っています 「BLAKE3のリファレンス実装の最初の安定版BLAKE3 1.0がリリースされるらしい。BLAKE3は流行りの暗号学的ハッシュアルゴリズムBLAKE2の後継で、計算手順をSIMD命令を使って並列化しやすい物にする事で、BLAKE2bと比較して3倍から6倍、BLAKE2bp比で2倍から4倍程高速に計算できる https://t.co/hgKaVbjsmJ」 / Twitter
BLAKE3 Cryptographic Hash Implementation Preparing For v1.0 Release - Phoronix
FadisさんはTwitterを使っています 「BLAKE3を巡っては、SIMDでスケールするというBLAKE3の特徴を活かして、GPUで爆速でハッシュ計算しようぜ、という試みもなされている https://t.co/OQ6KSOENoU」 / Twitter
BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation - Phoronix
ドッグさんはTwitterを使っています: 「暗号学的ハッシュ関数 BLAKE3.MD5, SHA-*, BLAKE2 より遥かに高速で,MD5 や SHA-1 と違い安全.任意の並列度(マルチコアや SIMD)で計算できる.SHA-2 や BLAKE2 と違い,1つのアルゴリズムで全ての platform で高いパフォーマンスが出せる | 'BLAKE3' https://t.co/6iN7yDMtI8」 / Twitter
BLAKE3-team/BLAKE3: The BLAKE3 cryptographic hash function
暗号学的ハッシュ関数「BLAKE3 1.0」が公開 | OSDN Magazine

本の虫: GPGPU時代のハッシュアルゴリズム
Kazuho Okuさんのツイート: "電話番号入れたら登録済かどうかわかるんだろうし、10^9とか総当たりで解けちゃうレベルでは? > 「暗号鍵と共に不可逆暗号化(ハッシュ化)して保存されている為、運営者サイドでも電話番号はわかりません」 / “キャンセルDB” https://t.co/nLrEmtmS9F"
Kazuho Okuさんのツイート: "今はAESNIよりも、TLS 1.3等で多用されてるHKDFがIntel SHA Extensionsでどれだけ高速化されるかが気になってる"
HKDF - Wikipedia
HMACを利用した安全なAPIキーの送受信 | yohgaki's blog
ハッシュ(HMAC)を使って弱い鍵を強い鍵に変える方法 | yohgaki's blog
暗号学的ハッシュを安全に使うには? – yohgaki's blog
SHA_Performance_Review_In_UEFI: UEFI SHA1/SHA256 perf tests with C (and asm) | Firmware Security
FadisさんはTwitterを使っています 「digestpp: C++暗号学的ハッシュ関数ライブラリ。header-onlyで実装されたクラスにrangeやstreamを食べさせるとハッシュになって出てくる。md5 sha256といった定番の関数の他、blake2 sha3 skeinといったナウめの関数や、streebogのような変わり種の関数も備える https://t.co/jDAvmKvqtH」 / Twitter
kerukuro/digestpp: C++11 header-only message digest library
総当たり攻撃時のパスワード最大解読時間の表(by 上野宣)について分析した - Qiita
CRYPTO2004 レポート ハッシュの厄日 – とりあえずノートがわりに書いてます

Key Transparency

Google Developers Japan: 透過性によるセキュリティ - Key Transparency
google/keytransparency: A transparent and secure way to look up public keys.

KMIP

クラウド利用における複数拠点の課題と「KMIP」という潮流 - IT、IT製品の情報なら【キーマンズネット】
shindo.pdf
OASIS Key Management Interoperability Protocol (KMIP) TC | OASIS
Key Management Interoperability Protocol - Wikipedia
IBM Knowledge Center - Key Management Interoperability Protocol を使用した鍵管理
自堕落な技術者の日記 : OASIS KMIP 鍵管理プロトコル - livedoor Blog(ブログ)
ニュース - HP,RSA,IBMなど,暗号鍵管理仕様「KMIP」を標準化団体OASISに提出:ITpro

mcl

herumi/mcl
ペアリング暗号ライブラリmclを使ってみる - Qiita
ペアリングの双線形性をmclを用いて確認する - Qiita
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
加法準同型暗号を用いて暗号化したまま画像のエッジ検出をする - Qiita

HACL*

Rockridgeさんのツイート: "Firefox 57には暗号プリミティブが公式に検証済みであるHACL*暗号ライブラリが導入される。これによりTLSの鍵交換に用いられるCurve25519アルゴリズムをサポートし、セキュリティの強化と高速化の両立が可能になった。 https://t.co/oQQFfUwXLN"
Verified cryptography for Firefox 57 | Mozilla Security Blog
mitls/hacl-star: HACL*, a formally verified cryptographic library written in F*

zk-SNARK

Rui UeyamaさんはTwitterを使っています: 「暗号通貨の授業かなり興味深くなってきた。ゼロ知識証明を使って、公開情報から送金記録の正しさ(だけ)を誰でも確認できるのに、誰が誰にいくら送ったのかは全然わからないZCashというものの仕組みを学ぶみたいな。こういうのはちょっと痺れる。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 zk-SNARKですね。数年前の提案者たちによる実装では、私のライブラリが使われていたりしました。 https://t.co/ym3QOVCgrK 和書だと今年発売された岡本龍明さんの『現代暗号の誕生と発展』が詳しいです。」 / Twitter
scipr-lab/libsnark: C++ library for zkSNARKs
Rui UeyamaさんはTwitterを使っています: 「@herumi まさにそうです。ここらへん、概念だけは知っていたようなものが見事にうまく組み合わされて、一見矛盾しているような要件をちゃんと満たしているシステムが作られていてかなり楽しいですね。あとnon-interactiveなゼロ知識証明というのがあるのはそもそも知りませんでしたが・・。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 パズルみたいで楽しいですね。 私の去年の勉強会の資料 https://t.co/Jb3ngtSGmm やOsukeさんの https://t.co/YuJyVeVOa3 なども参考になるかもしれません。」 / Twitter
Privacy on Blockchain - Speaker Deck

blog

How Firefox Sync keeps your secrets if TLS fails – Mozilla Tech – Medium
RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog
本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール
「月を入力すると日を返す多項式」と中国剰余定理 - tsujimotterのノートブック
認証付き暗号の鍵利用上限について - ASnoKaze blog

News

グーグルが耐量子計算機暗号の実験を開始 - ZDNet Japan
世界で誰にも解読されていない暗号問題を初めて解読! | 株式会社KDDI研究所
NICT NEWS
量子コンピュータでも解読が困難な新暗号方式が国内で開発 - PC Watch
NTT、世界最高性能の耐量子公開鍵暗号を実現する新手法 ~CCA安全性を付与して量子コンピュータでも改竄不可能に - PC Watch
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「既に把握済のNSA「…NEC許すまじ」とか思ってたりして。 https://t.co/acgT9LbZFp ちなみに、OCB2は初めて知った…後で勉強。 ECB/CBC/OFB/CFB までは古典、定番がCBCだったが脆弱報告が増えるにつれCTRに交代、さらに進化したGCMがメジャーに、という印象。 あとファイル暗号専用でXTXあたり。」 / Twitter
NEC、共通鍵暗号化方式OCB2に脆弱性を発見 - 週刊アスキー

POSTD

JOSEは、絶対に避けるべき悪い標準規格である | プログラミング | POSTD

GitHub

LoupVaillant/Monocypher: An easy to use, easy to deploy crypto library
B-Con/crypto-algorithms: Basic implementations of standard cryptography algorithms, like AES and SHA-1.
skeeto/enchive: Encrypted personal archives
Keccak Team
gvanas/KeccakTools: KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「素敵な講義資料〜。 暗号技術の標準化について知ることができてよき。 IETFがたくさん出てくるのでテンションが上がるっっ https://t.co/T8phpLg69K」 / Twitter
junkurihara/lecture-security_engineering

Qiita

準同型暗号の最前線1(入門編) - Qiita
準同型暗号の最前線2(原理編) - Qiita
準同型暗号の最前線3(理論編) - Qiita
2つの公開鍵暗号(公開鍵暗号の基礎知識) - Qiita
中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita

Twitter

TLS 1.3

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、DH や ECDH で共有される値の性質(何らかの偏りが起きてないか等)の研究ってあるのかな…?」 / Twitter
herumiさんはTwitterを使っています 「ゆるい記事ではあるけどTLSの知識が古くなってないか是非確認してほしい。 >静的RSA(共通鍵暗号用の秘密情報をRSA暗号で暗号化)やAES-CBCは廃止され、楕円曲線は暗号化ではなく鍵共有や署名として使われ、ブロック暗号AESはストリーム暗号の擬似乱数生成器として使われる。 https://t.co/SXoybUNpxC」 / Twitter
herumiさんはTwitterを使っています 「「イラストで正しく理解するTLS 1.3の暗号技術」というゆるい記事を書いてみました。Zennデビュー。 https://t.co/FNSL93xiU4 #暗認本」 / Twitter
イラストで正しく理解するTLS 1.3の暗号技術
herumiさんはTwitterを使っています 「@shirouzu ECDHは0以外の全ての巡回群の値をとりますが、楕円曲線の点はFp^2の全ての値を取れるわけではありません。鍵導出関数HKDFはエントロピーはあるけど一様ランダムとは限らないIKM(Input Keying Material)をとり、十分ランダムな出力をするよう考慮されています。https://t.co/Q7BjAlE9kD」 / Twitter
RFC 5869 - HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@herumi おぉ、ありがとうございます! 一様でない点に関しては、鍵導出関数側で配慮していると。」 / Twitter
Android端末のルート権限を一瞬で奪取するムービーが公開される、Linuxの脆弱性「Dirty Pipe」を用いた攻撃が現実的に - GIGAZINE

@herumi

herumiさんのツイート: "1回だけ乗算可能な加法準同型暗号の論文「Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly」がASIACCS 2018に採択された。 https://t.co/Vaz2msN9dd 解説と実装はこちら https://t.co/2Ou4m5sh5G https://t.co/C58377CxZj"
ACM ASIACCS2018 Program – ASIACCS 2018
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
she-wasm | Two-level homomorphic encryption for Node.js by WebAssembly
herumiさんのツイート: ".@hikalium 帰り話した暗号化したままテーブル引きのデモはこちら。https://t.co/ONiAYWLRBD 数字をいれて[問い合わせる]で入力値を暗号化してサーバに送り、サーバは暗号化したまま対応する桁の円周率のテーブル引きをして暗号文を返し、クライアントでそれを復号します。https://t.co/y8dpLaZcOO"
紛失通信デモ
herumiさんのツイート: "CSS2018最優秀デモンストレーション賞受賞しました。ありがとうございます。 デモの一つ、紛失通信による円周率100万桁の問い合わせのソースコードはこちら。 https://t.co/dsWf1WuJkQ https://t.co/xZSQP3DBsn"
herumi/ot-by-l2he: Oblivious Transfer demo by L2-HE
herumiさんのツイート: "CSS2018の発表資料「レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明」を公開しました。 https://t.co/6nO9tikJiY https://t.co/GCHTSvNEht"
herumiさんのツイート: "今年のラボユースは暗号系3人とOS系一人担当。 AESを一から実装したい人には有限体や拡大体の解説などから始めました。もう一人は楕円曲線暗号をやりたいので射影座標やC++の解説など。最後は完全準同型暗号を実装したいガチな方。格子暗号は実装したことないので私も一緒に勉強させてもらおう。"
herumiさんはTwitterを使っています: 「SCIS2020 2C3 「ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用」の発表資料を置きました。 https://t.co/bmJIlvcEsu Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts https://t.co/62904XwYbX」 / Twitter
Cryptology ePrint Archive: Report 2019/1233 - Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts

@jovi0608

Shigeki Ohtsuさんのツイート: "Googleによる耐量子コンピュータの鍵交換暗号方式 CECPQ1が本格実験開始。 / “Google Online Security Blog: Experimenting with Post-Quantum Cryptogr…” https://t.co/I6quQhtuQU"
Shigeki Ohtsuさんのツイート: "予想通りGoogleは CECPQ2 に djb の NTRU Prime を使う予定か。IP周りの問題は解消してるのかな。"
Shigeki Ohtsuさんのツイート: "おぉ!n=60のLWEの格子暗号が解読されたか。60〜40までの殿堂入りは全部このチーム。GoogleのNewHopeはring-LWEでn=1024、将来的にどうなるか。 / “世界で誰にも解読されていない暗号問題を初めて解読…” https://t.co/gX9ujnCI6r"
Shigeki Ohtsuさんのツイート: "EdDSA証明書を規定する仕様(curdle-pkix)がIESG承認されました。これでTLS1.2におけるDJB三部作(ChaCha20-Poly1305, X25519, Ed25519)の完成です。 https://t.co/5thG1tuXUP"
[Curdle] Protocol Action: 'Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure' to Proposed Standard (draft-ietf-curdle-pkix-10.txt)
Shigeki Ohtsuさんのツイート: "TLSより先にOpenPGP,S/MIMEでCBC/CFBがやられちゃったのかぁ。 / “EFAIL” https://t.co/IOJMsvjvCH"
EFAIL
Shigeki Ohtsuさんのツイート: "S/MIME、簡単に署名削除できちゃうって意味ないやん。CBCで偽造されても文句言えないわ。 "Every S/MIME signature can easily be removed from the multipart/signed mail body" https://t.co/QCgDUHRb0P"
efail-attack-paper.pdf
Shigeki Ohtsuさんのツイート: "GnuPGPはMDC(Modification Detection Code Packet)による完全性チェック機能があるけど、ちゃんとエラーチェックしてなかったり、パケット型を完全性確保のないやつに変えられたりできちゃうと。圧縮機能が入っている分S/MIMEより平文取得が難しいと。"
Shigeki Ohtsuさんのツイート: "最終的にはAES-SIVを使うとかちゃんと認証付き暗号をサポートするような仕様にしなさいと。まぁ真っ当な流れだけど、これからどうするんだろう。"
Shigeki Ohtsuさんのツイート: "10年以上前にAES-GCMをCMSで使うRFC5084が発行されていたのに、S/MIMEで使うような動きはなかったと、はぁ。 https://t.co/C6E6hp1wtg"
OpenPGPとS/MIMEに脆弱性、暗号化メールを平文で取得可能に - INTERNET Watch
暗号化メールの内容が平文で漏洩する“EFAIL”脆弱性、欧州の研究者グループが発表 - 窓の杜
PGPとS/MIMEによる暗号化メールに、Efail攻撃に対する脆弱性が見つかる
Shigeki Ohtsuさんのツイート: "X25519はECDH(E)の鍵交換でed25519はEdDSAの署名。curdle-pkixで規定されたばかりのEdDSA証明書が出回らない以上EdDSAをガイドラインで使えるようにと求めてないのだが。あえて言及を避けているのか、本当に理解していないのか… https://t.co/SkM6IS342p https://t.co/2KaFKlD3Cj"
Makoto Kato ︎︎さんのツイート: "CRYPTRECはNISTを参考にする組織なので、NISTのお墨付きがあればあのCRYPTRECのリストに入るけど、EdDSAってNIST的にお墨付きつけたんでしたっけ?EdDSAの背景がNISTが信用できないというところからはいったし。 (最近暗号関係追っかけてないから知らない)"
Makoto Kato ︎︎さんのツイート: "HTTP/2、TLS1.3の時代になるんだから、そろそろ (NTTへの配慮があるにしろ) Camelliaをあの設定ガイドに入れるもはどうかなぁとは思ってはいる。ハードウェアで最適化できているものではないしね"
Shigeki Ohtsuさんのツイート: "近い内に出るNIST SP 800-186で採用される予定です。https://t.co/WpfOswyv4j 今TLS関連のNIST更新はTLS1.3のRFC発行待ち状態な感じです。… "
Makoto Kato ︎︎さんのツイート: "なるほど。それだったら、おそらく2019年 or 2020年のCRYPTRECの推奨リストにおそらく含まれることになるので、次?のTLSサーバー設定ガイドラインに入るんじゃないですかね。神田さん次第か… "
Shigeki Ohtsuさんのツイート: "EdDSA証明書を発行するCAがないので特にガイドラインに入っていなくても問題ないと思います。RSA-PSSの証明書もまだ全然発行されていないし。CRYPTRECは署名方式だけ評価して楕円曲線自体の評価をせず、中途半端にNISTを参考にしているからこうなるわけで。… https://t.co/mY9RcOScf7"
Shigeki OhtsuさんはTwitterを使っています: 「openssl ciphersでTLS1.3のCCMがリストされない理由は属性がNON_DEFAULTに指定されているから(あまり使われていないしそもそも性能悪い)。明示的にオプション指定で登録すれば表示されます。https://t.co/to3sMOLdJC / “SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/T…” https://t.co/VjT17vo5ck」 / Twitter
SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/TLSのお話 〜 2回目 〜 TLS1.3 HTTP/2 のお話 | さくらのナレッジ
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas ストリーム処理ができないのでGCMやPoly1305より性能悪いんす。当初TLS1.3のcipherから外れていたんですがAEADなのに仲間外れはアカンということで入れられました。無線通信ではCCMが結構使われているようですね。」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas wikipedia見ただけですが、WPA2とかBluetoothLEに使われているようです。 https://t.co/OyutxMruhx 理由はよくわかりませんが、GCMより単純なのでLow Deviceでもちゃんと実装できるからじゃないですかねぇ。」 / Twitter
CCM mode - Wikipedia

@fadis_

Fadisさんのツイート: "SPDYはTLSの圧縮を使っていたが、HTTP/2ではこの機能の使用は禁止され、TLS 1.3では圧縮が廃止された。ユーザが任意のデータをコンテンツに埋められる場合、圧縮後のサイズから暗号化されたコンテンツの内容が予測できる為である https://t.co/BFGVHuK4Lx"
CVE - CVE-2012-4929
Fadisさんのツイート: "「圧縮後のサイズで何圧縮したかバレるぞ」と「圧縮に要した時間で何圧縮したかバレるぞ」は暗号化と圧縮が一緒に出てくる状況で簡単に踏むから常に気に掛けておきたい"
Fadisさんのツイート: "気が付いたらブラウザのサンドボックスでx86バイナリを動かす技術の事じゃなくてナウい手法を実装した暗号ライブラリの事になっていたNaClさん"
Fadisさんのツイート: "EFAIL: PGP等で暗号化されたメールを経路上で悪意ある第三者が改竄できる時に、暗号化されたパートの上下に「<img src="ほげほげ/」と「">」を加えてmultipart/mixedで合体させるメールに改竄すると、受信者が暗号化されたパートを復号した結果に上下のパートをくっ付けて出来たURLにアクセスしてくる"
Fadisさんのツイート: "更にEFAILではOpenPGPがCBC modeを使っていて、しかも先頭のブロックが常にContent-type: multipart/signedである事を利用して、暗号化されたメッセージに<img src="を挿入できるCBC gadgetを作る。こちらの方法の場合mixedの結合が雑でないクライアントでも復号したメッセージを攻撃者に送ってしまう"
Fadisさんのツイート: "暗号を効果的に使うのは難しいなぁ"
Fadisさんのツイート: "RFC7693「BLAKE2は特別なHMAC関数を使わずにHMAC出来る」→HMAC1号 RFC5246「TLSでHMACする時はSHA-256以上の強度のハッシュをHMAC関数に通す事」 TLSの実装「仕方ないからBLAKE2をHMAC関数に通すよ」→HMAC2号 問題: TLSと無関係な規格がBLAKE2でHMACと言っている場合、その実装はどちらの事か"
Fadisさんのツイート: "暗号屋さんの論文、 右辺と左辺のバイト列を結合する っていう意味の演算子として || がよく登場するんだけど、よく脳内で勝手にlogical orと解釈されて3行くらい読み進めたところで型が合わなくなって ??? ってなる"
Fadisさんのツイート: "WireGuardの作者がLinuxカーネルに新しい暗号API Zincを提案している。曰く、既存のカーネルの暗号APIは高レイヤー過ぎて特定の暗号技術を部品として使いたい場合に使い辛いから、よりプリミティブでコンポーザブルな暗号APIを作った、とのこと https://t.co/zezc1YHowb"
Zinc: The New Crypto Library Being Worked On As Part Of WireGuard - Phoronix
Fadisさんのツイート: "オリジナルのWireGuardはカーネルのcrypto/ガン無視で独自で暗号を実装してるから、バニラカーネルに入れるのにあたって、なぜカーネルの標準の暗号APIを使わないのかという部分に説明が必要になったんだろうな"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "「楕円曲線暗号の鍵長に512bitがなく521bitがある理由」 メルセンヌ素数だと演算量が少なく、2^512付近だと2^521-1が該当、という話。 RSAで公開鍵の指数を2^16+1にすることで、べき乗の演算量を減らす工夫を思い出した。(2進数で1になっている桁だけ計算すれば良い) https://t.co/sP7bZfbInB"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、RSAの公開鍵指数で、2^16+1 = 65537 以外の実装ってあるのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "共通鍵暗号のCTRモードだと、暗号部のみ必要で復号部は不要…なのでHashで共通鍵暗号が作れる。 大昔、Pythonに共通鍵Libが無く、sha1+CTRを使った共通鍵暗号を作ったことがあるが、お話しにならないくらい遅かった(笑) ただ、xxHashに128bitが出来ると、AES-CTRとどちらが速くなるか興味がある。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「curve25519-sha256 と curve25519-sha256@libssh.org って、何が違うのだっけ…? https://t.co/pEbps6fjm0」 / Twitter
sshd_config(5) - Linux manual page
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「openssl ファイル暗号化」で検索すると、AESに鍵をそのまま渡すパターンばかりだったが、実用的には PBKDF2等を使った方が良さそう。 (公開鍵を指定するのも良いけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「WindowsのCNG(Cryptography API Next Generation)だと、AESのブロックモードはCTRが無くGCMが使えるみたいなのだけど、最後のブロックを捨てれば同等になるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(あとCTRとGCMだとカウンタが1つずれてるのを意識したほうが良さそう)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近はAES-NIとかハードウェアサポートで、下手なハッシュ系の乱数ストリームより、AESの方が速かったりするのだよなぁ。 (xxHash3 とはさらに高速だけど、これは非暗号学的)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号モードの GCM/CTR は、暗号も復号もベースとなる暗号は「暗号化ルーチン」しか使わない(=乱数ストリームとして使う、疑似ワンタイムパッド)。 GCM/CTR のみの使用を想定した、AESより高速&高セキュアな暗号方式の研究はあるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CNGじゃないと、AES-NI使ってくれないのだよな、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AESをリファレンスC言語実装からCNG(bcrypt)に変えると、約8倍高速化。(256MB/s -&gt; 2GB/s。1GB領域に対して) (AES-NI効果だが、ECB呼び出し+自前CTR計算のためこの程度。GCM呼び出しだと3GB/sに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ElGamalとか暗号値のまま2倍にすると、復号値も2倍になるという、大昔は「改竄に弱い(ただしGCM等で防御可)」と微妙な目で見られた、準同形な性質を活用と。 なおDB&検索語を暗号化したまま検索=秘匿検索暗号はまた別かな? https://t.co/TVvDwgoYQS」 / Twitter
Googleが世界初となるFHEの汎用トランスパイラーをオープンソース化 ~暗号データを復号せずにそのまま処理 - 窓の杜

@kazuho

Kazuho OkuさんはTwitterを使っています 「SSLShader の crypto offload 部分、OSSだったのか。しかしスループットはともかくレイテンシみると使いづらそう https://t.co/Jt3OdGdPK0 https://t.co/X31ZrhIlsS」 / Twitter
lwakefield/libgpucrypto
SSLShader - GPU-accelerated SSL Proxy
Kazuho OkuさんはTwitterを使っています 「約10年前のデータなので、レイテンシが1/10になってれば、ありなのかもしれないけど」 / Twitter

Rockridgeさんのツイート: "民主・共和両党の議員で構成される米国議会暗号化ワーキンググループは、2016年末の報告の中で、「暗号化を弱めるいかなる手段も国益に反する」と述べた。FBIが求めるバックドアには反対ということ。 / “Bipartisan Con…” https://t.co/58wxxHcs2E"
Rockridgeさんのツイート: "Firefoxアカウントではパスワードを元に認証キーと暗号キーを生成し、認証キーのみをサーバに送る。ユーザーのデータは暗号キーにより暗号化済みであり、認証キーが漏洩してもデータの復号はできない。 / “How Firefox S…” https://t.co/h8cvuv9QSi"
黒木玄 Gen Kurokiさんのツイート: "#数楽 楕円曲線暗号に応用されているEdwards曲線の加法公式はヤコビの楕円函数(cd t, sn t)=(cn t/dn t, sn t)の加法公式に一致する。ヤコビさんは約200年後に自分の名のついた楕円函数の加法公式がこんな形で応用されるとは思って無かっただろう。"
Rui Ueyamaさんのツイート: "授業で教授がAES暗号の仕組みを解説しているのだが、実装するの簡単じゃんと思っても、素人実装は絶対に微妙な穴ができるから、授業を受ける前に決して自分では実装しないと誓ってくれと生徒に言っているw"
Rui Ueyamaさんのツイート: "たぶんいろいろ噛み合ってないと思いますが、AESに対するサイドチャネル攻撃とその対策法などを知り尽くした人でなければ実際にセキュアなAES実装を書くのは難しいという意味です。たとえばdjbのこの論文ではタイミング攻撃を考慮してない昔のAES実装を使ったSSLを破ってます。https://t.co/4gSg0LGhIY… https://t.co/gw1A9ZwYr9"
Rui Ueyamaさんのツイート: "というわけでAESの仕組みを学ぶのはよいことだけど、実装はいろいろ落とし穴があるので、自分で書くよりセキュリティ専門家のレビューを経た信頼できるコードを使いましょう、という話。実際問題RFCとかに載っているコードをそのままコピペして使えばいいので、再実装したい場面もほぼないと思います。… https://t.co/UgnJxStz6h"
hsjoihs@数情物化語さんのツイート: "SHA-1について調べていたら面白い記事を見つけた(署名の検証に使っている暗号学的ハッシュをstrncmpで比較してしまっているため、160ビットの署名の大半が情報量が捨てられてしまう可能性があるというもの) https://t.co/Q7kjJnaZuJ… https://t.co/2QYu8Br7V9"
debugmo.de :: Thank you, Datel.
Makoto Kato ︎︎さんのツイート: "opensslなんて使わずにAESのコードを直書すればわかるけど、ThunderXのAESのインストラクション、むっちゃ遅い。Cortex-A53だと15倍近く速くなるのに、ThunderXなんて6倍くらいにしかならないから。"
Makoto Kato ︎︎さんのツイート: "SHA2とかも同様でThunderXはCortex-Aシリーズに比べると遅いんだよね。。。"
suzakiさんのツイート: "面白かった。 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 https://t.co/fAIJFugaDL パラメータに計算の効率が非常によい素数2^(521 -1)を使いたかったためです. ある論文には,521bitのほうが半分以下の256bitの時よりも計算速度が速くなっている... ルセンヌ素数を使うことによる効率化...… https://t.co/flUI3XOAjd"
楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere
Ryo SuzukiさんはTwitterを使っています 「cryptographically secure が要求される用途なら Salsa / ChaCha で、non-secure な MT19937 や Xorshift からの置き換えかつ 2^128〜2^1024 の周期で十分なら xoshiro 系が短くて速い。」 / Twitter

あなたの「公開鍵暗号」はPKE? それともPKC? - Cybozu Inside Out | サイボウズエンジニアのブログ
4.5. List of RHEL applications using cryptography that is not compliant with FIPS 140-2 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
YurikaさんはTwitterを使っています 「量子コンピュータの登場による暗号技術への懸念はCRYPRECとか日銀が色々調査しているのを追っかけてるのでメモ CRYPTREC https://t.co/KT8wtMd03i  https://t.co/NVGOs3cJto https://t.co/yR0S19Mwve #secure旅団 #secureLiaison https://t.co/xEGhjBGHVP」 / Twitter
CRYPTREC | 注意喚起情報
ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応
(日銀レビュー)量子コンピュータが金融サービスのセキュリティに与える影響とその対策 : 日本銀行 Bank of Japan
YurikaさんはTwitterを使っています 「NISTの耐量子暗号標準化も進んでますが、それと並行して、暗号移行の議論 Crypto Agility も出てきている。 https://t.co/QenmCW73EM 日本でもこのあたりは専門家がみて世界の議論や標準化に加わってる方も」 / Twitter
Crypto Agility: Considerations for Migrating to Post-Quantum Cryptographic Algorithms | NCCoE

乱数

スレッドセーフ

キノコになりたい🍄さんはTwitterを使っています 「スレッドセーフな乱数生成アルゴリズムとかあるん C++の&lt;random&gt;に存在したりしてる・・・?」 / Twitter
yohさんはTwitterを使っています 「@onihusube9 ぐろーばる・みゅーてっくすで保護した単一(グローバル変数)の乱数生成器を持てばよいというお話です?」 / Twitter
ドッグさんはTwitterを使っています 「@yohhoy @onihusube9 もしくはスレッドごとに乱数生成器を持てば良いだけな気も.mt19937ar でもせいぜい内部状態 2kb とかそんなんですし」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 よほど特殊な事情がない限り、スレッドごとに乱数生成器期を持つべきでしょうねw 疑似乱数なのでシードを意図的にずらす/真の乱数を使わないと、全スレッドで同一乱数列になってしまう点だけ注意が必要かなと。」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 https://t.co/3pyzXC4iZn みたいなことを過去に書いてました。」 / Twitter
スレッドセーフという幻想と現実 - yohhoyの日記(別館)
てらモス♋️さんはTwitterを使っています 「決定論的な乱数生成機を複数のスレッドで独立にエントロピーで初期化しても、あんまり大量に生成すると同じ列に入ってしまう可能性がちょっと上がるわけで、その可能性もちゃんと消した独立な列を取れる方が望ましいという用途はある」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「@yohhoy @Linda_pp @onihusube9 単にseedを変えるだけでは誕生日のパラドックス的な衝突うが起こりやすいですよね。周期をスレッド数の2乗で割ったぐらいが十分に大きければいいんでしょうか?」 / Twitter
yohさんはTwitterを使っています 「疑似乱数こわちか :;(∩´﹏`∩);:」 / Twitter

人間向けの補正

R. ShioyaさんはTwitterを使っています 「今日やったアルゴリズム入門の講義では疑似乱数がテーマで、感想ながめてたら「RTA で出てくる乱数調整の意味がやっとわかりました!」てあったのだけど、あれは確かに話題として面白くて取り上げるといいのかもしれない」 / Twitter
R. ShioyaさんはTwitterを使っています 「今日の講義では一様乱数は人間が感じるランダムさとはちょっと違うとか、ゲーム会社にいる後輩から聞いたガチャの乱数に補正入れたり入れなかったりする話もしたんだけど、スク○ニはきちんとしてると言う話をしたのにテーブルで今揉めてるのでこれも来週やったら面白いかもしれん」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 人間が乱数作ると、偏りっぽい並びやキリのいい数字が、過度に弾かれる的な話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとiPodのランダム再生にクレーム入った逸話とかもありましたね。 (ランダム再生では、本当のランダムを使ってはダメと)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu はい,そんな感じの話です.ちゃんとした乱数だと直感よりも偏った(ように見える)連続が発生することはままあるので,それはそう言うものなのだとか,ゲームのガチャでは極端に不幸な人が一定数は出るので補正を入れているところもあるとかそんな話をしました.」 / Twitter

seed 固定

ゆうだいさんはTwitterを使っています 「乱数ってseed固定したら,ほかの環境でも結果が再現されるの?」 / Twitter
Willy 🌧米国大学教員さんはTwitterを使っています 「@physics303 詳しい事は分からないですが、「Rでseedを指定して乱数発生させて結果を提出」と言う宿題を出すと例年、みんな同じ結果を出してきます。」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 乱数生成アルゴリズムとシードが一致すれば、再現するはず。 ただ、浮動小数点数の計算結果が環境によって変化する可能性があるので、乱数振る振らないが、浮動小数点数の計算結果に依存する場合は再現しない可能性もある」 / Twitter
ゆうだいさんはTwitterを使っています 「@StoneDot ありがとう.初歩的な質問で恐縮なんだけど,その理屈で行くと,乱数シードを固定すると,同じPCを再起動しても,基本的には同じ乱数が生成されるよね? (np.random.seed(0) とかにしてnp.random.uniform(-1,1,10)とかすることを想定しているから乱数生成アルゴリズムは同じはず)」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 Yes です。再起動後も生成される乱数は維持されます。 /dev/urandom みたいな外部エントロピー使わない乱数ではない限り同じ結果になりますー」 / Twitter
Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~ - Qiita
Taku KudoさんはTwitterを使っています 「詳しくは https://t.co/C2cQxC3x5S 失敗からこうなっている。 Thus, the API and implementation for previous iterations of generators within Google is, in many respects, effectively frozen in place and cannot be improved.」 / Twitter
abseil / The Abseil Random Library
Taku KudoさんはTwitterを使っています 「意外かもしれないが、absl::Random の疑似乱数はseed を与える機能が意図的になくしてある。テスト等で決定的動作にするために悪用されることがほとんどで、その結果修正不可なテストが増え、擬似乱数本来の改善が滞る結果になるから。使う側は乱数の本来の意味を理解して使うべき。」 / Twitter
せり (zeriyoshi)さんはTwitterを使っています: 「はい、 PHP のメルセンヌ・ツイスタの固定化に成功しました syscall time, gettimeofday, getpid の結果が同一の場合必ず同じ乱数が生成されます https://t.co/7RTh6Oqu3W」 / Twitter
songmuさんはTwitterを使っています: 「ゲームとかだと、乱数生成器作成時に使ったシードを記録しておけば、同じ状況を制限できるので便利、とかありますね。ソシャゲ開発していたときにやっていて、調査などに使っていた。」 / Twitter
songmuさんはTwitterを使っています: 「「なんでバトルの結果がこうなってるんですか?」みたいな問い合わせに対して、手元で再現させて検証してから返答していた」 / Twitter
songmuさんはTwitterを使っています: 「制限じゃなくて「再現」!」 / Twitter
渋川よしきさんはTwitterを使っています: 「@songmu 僕もやってました。」 / Twitter

パスワード生成

ぽんこつさんはTwitterを使っています 「なんでスマホのパスワード管理機能はパスワード生成できないの」 / Twitter
fjのYog教祖様さんはTwitterを使っています 「@ponkotuy スマホの乱数発生器が当てにならないから、と言うのも理由の一つだと思う。」 / Twitter
ぽんこつさんはTwitterを使っています 「@fjs_kyousosama サーバーよりは信用できそう」 / Twitter
fjのYog教祖様さんはTwitterを使っています 「@ponkotuy サーバーの場合はこういうのをちゃんと指すことができるので…: https://t.co/CzqKowJRms サーバーよりは信用できる、と言うのはサーバーがポンコツなのであって決して携帯が十分な能力を持っているという意味やないねん…」 / Twitter
真性乱数生成器 vs 疑似乱数生成器 - wolfSSL
ぽんこつさんはTwitterを使っています 「@fjs_kyousosama 人間が考えたパスワードと比較だから別にええねん。どうやってもだいぶマシ」 / Twitter

Xoshiro

Ryo SuzukiさんはTwitterを使っています 「疑似乱数生成器 Xorshift の現代版、「Xoshiro」シリーズの C++ ラッパーライブラリのプロジェクトを公開しました。C++20 の標準乱数生成インタフェースに対応、ゲーム開発や研究プロジェクトに便利です (MIT ライセンス) https://t.co/JITqLE1thj」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「xoshiro256++ はメモリ消費 32 バイトで周期 2^256-1 の乱数列を生成、BigCrush 検定に合格する統計的品質。 一方 C++ 標準の std::mt19937 はメモリ消費 5,000 バイト(!)で周期 2^19937-1, BigCrush の一部に失敗する。 Xoshiro 開発者の解説記事 https://t.co/fH4AOGExdD」 / Twitter
xoshiro/xoroshiro generators and the PRNG shootout
Reputeless/Xoshiro-cpp: Header-only Xoshiro/Xoroshiro PRNG wrapper library for modern C++ (C++17/C++20)
mod_poppoさんはTwitterを使っています 「Luaも5.4で擬似乱数アルゴリズム変えてるな(5.3まではC言語のrandのwrapperだったのが5.4でxoshiro256**に変わった)」 / Twitter
mod_poppoさんはTwitterを使っています 「再現性のある擬似乱数が必要なら言語実装のバージョンを固定するか自前で乱数生成器を持つ必要があると思ってるんだけどそうでない考えの人もいるのか…?」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「そういえばJulia 1.7で疑似乱数を使った計算をする人は注意が必要で、1.7からデフォルトの乱数生成アルゴリズムが変わったので Random.seed! 関数で固定しただけでは乱数が再現しないです。 https://t.co/KF753DVtUV」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「これはJulia 1.6までの乱数生成を再現するにはどうすればいいかという話で、その必要がなければ素直に新しい疑似乱数生成器を使いましょう。軽くて速くなったらしいです。」 / Twitter
Julia REPL stan accountさんはTwitterを使っています 「@bicycle1885 It’s quite tricky! PRNGs in Julia have *never* been guaranteed to generate identical sequences across Julia versions. It’s explicitly left as an implementation detail so that features and optimizations can be added later. For full reproducibility just store a vec of the values.」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「@miguelraz_ You're right. But lazy people (including me) write code that depends on never-guaranteed features that have been preserved by chance. The tweet is intended to be a caution to those who failed to reproduce the previous results on Jupyter Notebook or other similar tools.」 / Twitter
PeterChengさんはTwitterを使っています 「@bicycle1885 Since 1.7 change the default PRNG, you need to change from MersenneTwister to Random.Xoshiro」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「@Cheng_Ching_Wen Yes, but the point of my tweet is to restore the old PRNG behavior after update.」 / Twitter

xorshift

Kazuho OkuさんはTwitterを使っています 「テストに便利な * ステートの書出、読込が簡単で * 実装がpublic domainな 乱数発生器なにがあったかなーって、ちょっと悩んだけど、xorshift64でよかった(ステートがuint64_t一個で、著作権が発生しないレベルに単純なので)」 / Twitter
高梨陣平さんはTwitterを使っています: "V8で採用された新Math.random向けのアルゴリズムの元となったアルゴリズムxorshift32が3行のシフト演算しか行っていないのに疑似乱数として良い性質を持っていることの解説 https://t.co/H33lXhFaLc"
Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート

Blake2

コミさんさんはTwitterを使っています 「Linuxカーネルの乱数生成で前までSHA1使ってたけど今はBlake2にしちゃってて、それで3.7倍高速になったらしい。すごすぎる。」 / Twitter
Filippo ${jndi:ldap://filippo.io/x} ValsordaさんはTwitterを使っています 「Damn. @zx2c4 has been the Linux random driver maintainer for like a hot minute, and /dev/[u]random is now 100% SHA-1 free and 370% faster. Amazing. https://t.co/qh5eh0L9lN https://t.co/CuQD8pDrIg」 / Twitter
[PATCH v2 2/2] random: use BLAKE2s instead of SHA1 in extraction - Jason A. Donenfeld
[PATCH] random: avoid superfluous call to RDRAND in CRNG extraction - Jason A. Donenfeld
伊津野 英克さんはTwitterを使っています 「SHA-3としては選定されなかったが、理由はSHA-2に似ているため脆弱性が発見された場合に共倒れする懸念とHW実装時の効率性で負けたことが原因でソフトウェア実装だとblake2の方が優れているみたいhttps://t.co/3cpgG2Kzbm」 / Twitter
sha 3 - What advantages does Keccak/SHA-3 have over BLAKE2? - Cryptography Stack Exchange
クロマ@purplecatsギターさんはTwitterを使っています 「BLAKE2系よりもBLAKE3のほうが早いらしいけどどうなんだろう感はあった」 / Twitter
FadisさんはTwitterを使っています 「WireGuard、鍵共有の手法は複雑だけどプロトコル自体はコマンドが4つしか無い超シンプル仕様だから、カーネルのが使えなかったらユーザ空間で書くかー、くらいのアレではある。実装するときはlibsodiumとlibsodiumの作者がissueに雑に転がしているblake2sの実装使うと楽」 / Twitter

GIGAZINE

カスペルスキー

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号学的な乱数は、量子効果や熱雑音によるハードウェア生成が一番良い。 だが「特定ハードウェア実装が信用できるか」問題は別途あって、例えばLinuxは Intel CPUの乱数命令をseedの一部にしか使用しない保険を掛けてたはず。 https://t.co/pd66rQzPxv」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「ただの擬似乱数と暗号学的に安全な擬似乱数は違うってのはセキュリティの基本なのですが、意外にちゃんと教えられてない気はしますね…私も学部授業のレベルでは教えられてない… とにかく「よい乱数」ってホントに奥が深くて難しい話なのです。だから素人が手を出すよりOS提供の関数を使うのが吉。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このコードだと、seedは100ns以降のカウンタを32bit圧縮となり、3億ではなく42億パターン(これも十分小さいが)になる。 (元英文解説だと、ここは使われず、time(0)が使われるとある…元ネタを確認しないとダメなgigazine記事(笑)) https://t.co/tKLNqF3vBT」 / Twitter
カスペルスキーのパスワードマネージャーが生成したパスワードは総当たり攻撃で爆速突破が可能と判明、一体なぜか? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++だと、std::random_deviceを使えば、その環境でベストな暗号学的乱数が使ってくれる印象ある。 https://t.co/a9Cpd9hbq5 (なおパラノイア的には、IntelのHW実装やMSのCrypto実装をどこまで信用する?問題は残る(笑))」 / Twitter
random_device - cpprefjp C++日本語リファレンス
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「あー確かに書き方悪かったかも。OS提供の関数には「ただの擬似乱数」と「暗号学的に安全な乱数」があるのでちゃんと使い分けましょうね、という話です。 WindowsはかつてCryptAPIにCryptGenRandomがあったんですが今はCryptAPI自体が非推奨になってて、CNG APIのBCryptGenRandomを使うお作法です。」 / Twitter

「史上最大の素数」約2年ぶりに更新、50番目のメルセンヌ素数で桁数は2324万9425桁 - GIGAZINE
コンピューターはどうやって乱数を生み出しているのか? - GIGAZINE

blog

メルセンヌ素数でxorshift疑似乱数の軽量化 - 一人一党党
randの既定シード値は1 - yohhoyの日記
Mersenne Twisterの出力を推測してみる - ももいろテクノロジー
Z3Pyでxorshift128+の出力を推測してみる - ももいろテクノロジー
Z3Pyでglibc rand(3)の出力を推測してみる - ももいろテクノロジー
乱数生成器とゲームと諜報活動の話|Rui Ueyama|note
十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama|note

Wikipedia

RdRand - Wikipedia, the free encyclopedia
Xorshift - Wikipedia
Xorshift - Wikipedia, the free encyclopedia
Lagged Fibonacci 法 - Wikipedia
メルセンヌ・ツイスタ - Wikipedia
メルセンヌ数 - Wikipedia
リュカ–レーマー・テストの証明 - Wikipedia
GIMPS - Wikipedia

Twitter

ぐらふぃさんのツイート: "胡散臭いけどやばい論文です https://t.co/92Mb6ZGmT4 Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine ニューラルネットに π や eといった数学定数とか Mersenne Twister の次の桁を予測させると統計的に優位に当たってる"
Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine
The Hacker NewsさんはTwitterを使っています: 「Breaking PHP's mt_rand() with 2 values and no bruteforce https://t.co/UwPLKeAuB9 Given two mt_rand() output values separated by 226 others, it is possible to compute, without any brute-force, the original seed, and therefore obtain any previous or subsequent mt_rand() output. https://t.co/EzxaraBgN6」 / Twitter
Breaking PHP's mt_rand() with 2 values and no bruteforce
Fadisさんのツイート: "CVE-2017-11671: gccがRDSEEDしたあとアプリケーションがキャリーフラグを読む前にキャリーフラグを書き換える命令を挟んできて実際には乱数取れてないのに取れた気分になってしまう不具合 https://t.co/JcvhFdbTyp"
oss-sec: CVE-2017-11671: GCC generates incorrect code for RDRAND/RDSEED intrinsics
Kazuho OkuさんはTwitterを使っています: 「CSPRNG(暗号論的擬似乱数生成器)じゃない乱数生成器はこうやってシードされてたりするから、セキュリティに関係する要件で使ってはいけないし、使わない限り問題ない。あるいは自分で urandom 等CSPRNGの値を注入して初期化してもよい https://t.co/kMa4KmGta9」 / Twitter
Kazuho Okuさんのツイート: "PRNGの乱数性をどうプログラム内で担保するかについての僕の意見は https://t.co/crYMKCmrU0 のスレに記したとおりです"
Kazuho Okuさんのツイート: "@__gfx__ それなら現実問題として、ランダム性を仮定しつつ、仮定が破れた場合にはassertion failureにする、くらいがバランスよさそう"
Rui Ueyamaさんのツイート: "@kazuho 分散システムですぐにコリジョンが確認できない場合はどうしますか。"
Kazuho OkuさんはTwitterを使っています: 「LAMP 系のマイナーな環境だと高精度のタイマもpidもちゃんと取れなくて、ランダムに生成されるはずのセッションIDがたまに衝突するとか...」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「余りをとるのは常套手段だけど割り切れないとわずかに歪むし、素朴にやり直すと最大回数がboundできないけど、やり直さないで完全に一様にする方法はあるんだろうか。ないとしたら、不可能であることはどう証明(というかそもそも定式化?)するんだろう。(よく知られている解があったらすみません) https://t.co/JEBMpWwZPL」 / Twitter
ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています: 「例えば00000~99999の範囲で一様乱数を発生させてくれる機械があって、0~99の乱数がほしいとき、下2桁を見ればいい。ところが0~74みたいな中途半端な範囲の乱数がほしかったら?「下2桁が75~99のときはやり直す」というのもアリだが、5桁を全部見て75で割った余りを取っても、おおむね一様になる。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii ・ダイス振りn回以下のプロセスは、ぴったりn回のプロセスで表現可能(結果決まってからも余計に振る) ・k面ダイスn回のプロセスでの各出力の発生確率は k ** -n の倍数 ・あとは、nがいくつでも均等にならないことを帰納法なり代数なりで証明 でいいんじゃないでしょうか。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii あとこの件は、適切な割り算さえ入れれば、1回の試行で決定できる確率を 1/2超にできる。 そうすると、試行回数の期待値は2未満になるので、乱数がマトモなら、分布が歪むリスクを避けてまでループを避ける理由はない。 各回を独立試行にする限り、繰返し回数(処理時間)と出力値の相関もない。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「実務的な話で言うと、実行時間のずれあるいは確率分布のずれを無視できる範囲にしてくれれば良くて、つまり、ダイスを一定回数振ってから剰余とる形が良さそう」 / Twitter
SAKASHITA HirosiさんはTwitterを使っています: 「PHPで使われている疑似乱数関数mt_randについて、2つの出力値を得ることで残り全てが予測できる手法が編み出された模様です(中身はあまり読んでませんが…)。この関数で使われているMT法が暗号学的に十分セキュアでないことは聞いてましたが、これはびっくり。 https://t.co/Caj1nOK2Be」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@HPetegari もっと単純な話で、例えば8bitのランダムな整数をmod 26すると、0-21は10/256、22-25は9/256の確率で得られるので偏りが出るということです。良く使う手は、ランダムuint8を取って、それが234(=26*9)未満ならmod 26、以上なら再試行します。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PCG (Permuted congruential generator) 乱数発生器のページ。他の乱数発生アルゴリズム (MT19937, arc4random, chacha20など) と比べて高速かつ安全で柔軟性があるとうたっている。 https://t.co/Sw3ZD2Lbvk」 / Twitter
PCG, A Family of Better Random Number Generators | PCG, A Better Random Number Generator
Kazuho OkuさんはTwitterを使っています 「んー、言語仕様的には線形合同法よりマトモな方法で実装しても構わなくて(つまり昔からあるCライブラリ特有の問題で)、昔からあって互換性重要なCライブラリの場合はrandomとかdrand48とか、よりマトモなものがPOSIXに定義されてる」 / Twitter
徳永広夢さんはTwitterを使っています 「C言語のrand、新しい標準の関数を追加するなり、deprecateするなりされないのが不思議」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ISO Cみたいな仕様で介入するとなると、一定品質以下のPRNGを非推奨にするみたいな形になるんだろうけど、品質の定義で合意とるの大変だろうなぁ」 / Twitter

セキュアキー対応インテル® データ・プロテクション・テクノロジー: Gazzang 社のケーススタディー | iSUS
MSC32-C. 乱数生成器には適切なシード値を与える
EXP33-C. 初期化されていないメモリからの読み込みを行わない
最終回 発見プログラミング:増井ラボノート コロンブス日和|gihyo.jp … 技術評論社
Miura HidekiさんはTwitterを使っています 「インテル® DRNG (Digital Random Number Generator) ソフトウェア実装ガイド https://t.co/PBT2RXroVX 乱数の種にチップ内の熱雑音を使っているとのことだけど、熱雑音って本当にランダム(分布が推定できない)なのだろうか?」 / Twitter
インテル® DRNG (Digital Random Number Generator) ソフトウェア実装ガイド | iSUS
Special Register Buffer Data Sampling (特殊レジスターバッファーデータサンプリング) - Red Hat Customer Portal
Intel 社による 2020 年 6 月のマイクロコード更新 - Red Hat Customer Portal

素因数分解

素因数分解を (RSA を破壊するレベルで) 劇的に高速化

Tsukasa #01さんはTwitterを使っています 「真偽はともかく、ちょっととんでもない論文が出てきたんだが。国際暗号学会の未査読論文だが、素因数分解を (RSA を破壊するレベルで) 劇的に高速化するアルゴリズムを開発したと主張している。 https://t.co/ApzLqRmjqR」 / Twitter
Cryptology ePrint Archive: Report 2021/232 - Fast Factoring Integers by SVP Algorithms
ManishさんはTwitterを使っています 「Seems like Schnorr just dropped a paper that reduces prime factorization to a shortest-vector-problem on a much smaller basis, and this might actually be the death knell of RSA? https://t.co/pN38MFn0zZ」 / Twitter
Léo DucasさんはTwitterを使っています 「@chelseakomlo @asanso @_henrycase @FredericJacobs @CryptoBits_eu #SchnorrGate update: the new version of March 3rd is much easier to test, requiring SVP in dimension as low as 47 (down from 1800 !). Out of 1000 trials, no factoring relations was found. https://t.co/AXRQ6z3Dqm」 / Twitter
lducas/SchnorrGate: Testing Schnorr's factorization claim in Sage
Kazuho OkuさんはTwitterを使っています 「今のところ否定的な印象が多そうなイメージではあります https://t.co/N9CQbeJRew」 / Twitter
Tsukasa #01さんはTwitterを使っています 「@kazuho 流石に現段階ですぐ「真だと仮定する」のは危なすぎますが、再現実験はしたいですね……。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@a4lg 引用したツイートは、実際に実装して試したけど機能しない、という専門家のツイート(再現コード含む)ですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RSAの素因数分解は懸賞金かかってるのが色々あるので、今回の手法が機能するなら、やぶろうとする人たちがいて、最初にやぶった人が権利を主張するために解を公開するだろうという見立ては妥当だと思う https://t.co/ohhpWVeHVH」 / Twitter
RSA Factoring Challenge - Wikipedia
Kazuho OkuさんはTwitterを使っています 「既存手法でRSA-829が解かれてるのだから、劇的な進歩があったならRSA-896を解くのは当然可能なはずだ、と」 / Twitter

GCD

tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「a, bが互いに素なら一次不定方程式ax+by=1が解けるという事実が、素因数分解の一意性を示すキーになるというのは、初等整数論を初めて勉強したときにびっくりしたことの一つ。」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「キーになるのは★「pを素数として、p | ab ⇒ p | a または p | b」という命題。 pは素数なのでp, aの最大公約数は1, pのいずれか。 最大公約数がpなら p | a。 最大公約数が1ならば一次不定方程式 ax+py = 1 に解がある。これに b をかけて abx + pby = b。p | ab より p | b。」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「★を使うと素因数分解の一意性が言えるんだけど、それはざっくり言うと次のように議論する。 n = p1p2…pk = q1q2…ql と二通りに素因数分解されたとする。 両辺p1で割れるのでq1q2…qlだが、★によりq1からqlまでのいずれかをp1が割り切る。 これを繰り返せば良いわけですね。」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「「a, bが互いに素なら一次不定方程式 ax+by = 1 に解がある」というのは、整数環 ℤ はPID(単項イデアル整域)であるということ。素因数分解の一意性が成り立つというのは ℤ はUFD(一意分解環)であるということ。 上の話は環論的には「PIDならばUFD」を ℤ に適用してると思うことができますね。」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「と、いう話を次のツイートを見て思いました。 高校のときにこの定理を習い、「どこでこんなの使うんだろう」と思った方も多いかもしれません。 実は縁の下の力持ち的な、結構重要な定理なんだというお話でした。」 / Twitter
さんしさんはTwitterを使っています 「高校数学で最も影の薄そうな定理の一つ」 / Twitter
dcさんはTwitterを使っています 「え、やばくね? https://t.co/oXliudrscK」 / Twitter
Shinji KonoさんはTwitterを使っています 「@tsujimotter ユークリッドですね。最近、GCDやりなおして、それがないと、素数の平方根が無理数なことを示せないってのを学びました。」 / Twitter

LGPL

GNU Multi-Precision Library - Wikipedia
素数判定プログラム2 C言語 GMPライブラリ : Yuki Nakata's Blog
素数判定プログラム3 C言語GMPライブラリ : Yuki Nakata's Blog
ecm.gforge.inria.fr

単純な素因数分解アルゴリズムを実装してみる - ももいろテクノロジー
Msieveを使って大きな数を素因数分解してみる - ももいろテクノロジー
Msieve download | SourceForge.net
Msieve 日本語情報トップページ - OSDN
Msieve の使い方
素因数分解プログラム msieve
OpenSSLとPythonでRSA暗号の原理を知る - ももいろテクノロジー
wbhart/bsdnt: BSD Licensed Bignum Library
YAFUを使って大きな数を素因数分解してみる - ももいろテクノロジー
フロイドの循環検出法 - Wikipedia
ポラード・ロー素因数分解法 - Wikipedia
MIT Tech Review: 51、57、91は素数? 数学者が考えたオンライン・ゲームが人気
松本 泰さんはTwitterを使っています 「もうひとつ誤解 「現在の量子コンピュータによる暗号技術の安全性への影響」 CRYPTRECの実質的な公式見解。これを出すまでにだいぶ時間がかかったけど。量子コンピュータが実用化すれば公開鍵暗号が解読されるというのは、まったくの誤解。実用化の意味を履き違えている。 https://t.co/ZCTTd1lOPd」 / Twitter
CRYPTREC | 注意喚起情報

BASE64

Base64 - Wikipedia
BASE64エンコード - UIC
base64ってなんぞ??理解のために実装してみた - Qiita
Base64のデコード - オンラインBase64のデコーダ
BASE64とは - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Base64 Decode and Encode - Online

blog

自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングについて考える - livedoor Blog(ブログ)
自堕落な技術者の日記 : X.509証明書の識別名などで使われるMulti-valued RDNとjsrsasignのサポートについて - livedoor Blog(ブログ)
自堕落な技術者の日記 : 最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書 - livedoor Blog(ブログ)
自堕落な技術者の日記 : 最近の証明書の話題(3): デジタル証明書形式の電子委任状のプロファイルに関する考察 - livedoor Blog(ブログ)
SSL/TLS証明書、その特性について – カスペルスキー公式ブログ
HTTPSが安全とは限らない | カスペルスキー公式ブログ
余分な証明書を悪用した、ドメインへの中間者攻撃とDoS攻撃 | カスペルスキー公式ブログ
CVE-2020-0601でわかるMSのTLS証明書検証プロセスについて
インターネットをよりロバストに。RPKIはじめます | IIJ Engineers Blog
改めて知ろう、SSLサーバー証明書とは?(第二回) - さくらのナレッジ
Google Developers Japan: キーストアの鍵の構成証明
本の虫: 健全なP2Pネットワークの信用のためには全利用者の参加が必須であるという話
高木浩光@自宅の日記 - NEDOのサイトで4つのサプライズ, PKIよくある勘違い(0)「サーバ証明書は単なる暗号鍵であり認証局の署名は実在証明にすぎない」
オレオレ証明書を使い続ける上場企業をまとめてみた - megamouthの葬列
Windows CryptoAPIの脆弱性によるECC証明書の偽造(CVE-2020-0601) - ぼちぼち日記
ZeroSSL ならIPアドレスのサーバ証明書が取得できる - ASnoKaze blog
DigiCertによるプライベートアドレスの逆引き名の証明書誤発行 - ASnoKaze blog
AWSにおけるSSL証明書の基本的な取扱い | 外道父の匠
Chrome58になると自己署名の証明書がエラーになるので、OpenSSLに詳しくなった話
JSON先進署名フォーマット「JAdES」解説 【第2回】先進署名フォーマットとプロファイルとは何か | GMOグローバルサインブログ
TLS証明書チェッカーcheck-tls-certの公開 - インフラエンジニアway - Powered by HEARTBEATS
heartbeatsjp/check-tls-cert: Check-tls-cert is a TLS certificate checker.
SSLサーバ証明書における2021年以降の仕様変更および業界動向 | GMOグローバルサインブログ
モバイルデバイス利用者・管理者双方の利便性とセキュリティレベル向上の両立を実現 | GMOグローバルサインブログ
OpenSSL 3.0のTLS証明書用プライベート鍵生成方法 - インフラエンジニアway - Powered by HEARTBEATS
certutilコマンドの非公開なオプションを表示する方法 - Eiji James Yoshidaの記録
メール用電子証明書「S/MIME(エスマイム)」の最新調査結果を発表 | GMOグローバルサインカレッジ
Opinium社が米英のIT責任者に独自調査 電子証明書の管理に関する課題や自動化対応状況を発表 | GMOグローバルサインカレッジ

スライド

動的証明書読み込み ngx_mruby編 #hoscon / GMO HosCon 2016 // Speaker Deck
秘密分散法の数理
AM03_shimaoka.pdf
マイナンバーカードで署名する - Speaker Deck
LE宮地さんはTwitterを使っています 「JNSA電子署名WG 保証レベルTF から提案内容の説明の為に「電子署名保証レベル作業提案」を公開しました。近年色々な電子署名方式がありますがこれを1つの保証レベルにまとめる取り組みです。TFメンバーで議論して最終版を今年度末に正式公開する予定です。 https://t.co/qkLyRY97n6」 / Twitter
Microsoft PowerPoint - NWP-eSignAL-20210929.pptx - NWP-eSignAL-20210929.pdf
JNSA Electronic Signature Working Group
Hybrid Public Key Encryption (HPKE)

Let's Encrypt

ACME

autocert - GoDoc
crypto/acme/autocert at master · golang/crypto
jetstack/kube-lego: Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
GKE でサービスを HTTPS と HTTP/2 に対応する(kube-lego 編) - Qiita
Google Container Engine上でLet's Encryptによる証明書を自動更新する(kube-lego) - Qiita
jetstack/kube-lego - Docker Hub
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME TLS-SNI-01問題は同一IPでマルチユーザホスティングで任意の証明書がアップロードできる所があったからか。ブラックリストを作って再開するらしいが根本解決はできるのかな? / “018.…” https://t.co/bgF6sTzfMv"
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME脆弱性の対応方針:TLS-SNI-01の利用は廃止の方向に。新規アカウントはSNI-01の利用禁止。既存アカウントはrenewalに限定。今後HTTP-01、DNS-01 のvalidationに移行を進めていくとのこと。… https://t.co/oe9ReJ1aAL"
Let’s Encryptが「ACME v2」とワイルドカード証明書サポートを開始 | OSDN Magazine
Rockridgeさんのツイート: "Let's Encryptでは、2018年3月14日のACME v2プロトコルの導入に伴い、ワイルドカード証明書の発行をサポートした。 / “ACME v2 and Wildcard Certificate Support is…” https://t.co/7VfbVMOAhJ"
Let’s EncryptとACME | IIJ Engineers Blog
続 ACME | IIJ Engineers Blog
xenolf/lego: Let's Encrypt client and ACME library written in Go
containous/traefik: The Cloud Native Edge Router
ゆきさんのツイート: "ACME Client Extension https://t.co/7TKBabYB4I ACMEを用いてクライアント証明書、コードサイニング証明書発行する拡張仕様。カジュアルな気持ちで読み始めたけど、難しい... #yuki_id"
draft-moriarty-acme-client-00 - ACME Client Extension
End of Life Plan for ACMEv1 - API Announcements - Let's Encrypt Community Support
SSLサーバ証明書の自動更新を可能にするACMEプロトコルとは | GMOグローバルサインカレッジ
YurikaさんはTwitterを使っています 「Let's Encrypt が証明書自動発行 ACMEのモジュールBoulderに検証不十分の問題があったとして、問題の期間の証明書を失効することに。失効対象にはメール済みで実施は1/28 影響は全体の<1%(約200万枚) で手動更新必要。質問はフォーラム↓で受付中 https://t.co/tL4STZYZi3」 / Twitter
(1) Questions about Renewing before TLS-ALPN-01 Revocations - Help - Let's Encrypt Community Support
Let's Encrypt証明書、誤発行発覚で約1%が1月28日失効 - 確認と更新を | TECH+

クロスサイン

https://twitter.com/kazuho/status/1387965341855219721 の想定回答
Kazuho OkuさんはTwitterを使っています 「面白い。そんなことになってるのか。R3自体が変わるわけじゃないのでショートチェーンは自分でチェーン作れば変えられそうだけど、R3自体が今年9月で寿命だからそれまでかな / https://t.co/NATgCsxkKS」 / Twitter
Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho すみません、良く判って無いのですが「それまで」の意味は何でしょうか??」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu サーバ証明書 —&gt; R3 --&gt; DST Root CA X3というショートチェーンを作れるのは、です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu R3の次の中間証明書については、新方式に移行する以上、DST Rootに署名してもらうことはしないでしょうし」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho なるほど、判りました。 ご説明ありがとうございます。」 / Twitter

ファーストサーバ、無料SSL証明書「Let's Encrypt」の取り扱いを開始 -INTERNET Watch
無償SSLサーバー証明書Let&#8217;s Encryptの普及とHTTP/2および常時SSL化 | OSDN Magazine
Let’s Encrypt - ArchWiki
Rockridgeさんのツイート: "Let’s Encryptが国際化ドメイン名(IDN)を含むデジタル証明書の発行をサポート。 / “Introducing Internationalized Domain Name (IDN) Support - Let's …” https://t.co/9ywe6D5OTY"
Autumn Goodさんのツイート: "2016年1月から2017年3月までに Let’s Encrypt が発行した"PayPal"の文字列を含む証明書はcrt.shで調査すると15,270件あったようです。もちろんほとんどはフィッシングで使われています。この傾向だと今年末にはさらに2万件増える見込みとのこと。 https://t.co/v32Qw4scSb"
2017/05/19にLet's Encryptで起こっていた障害についてのメモ - Technically, technophobic.
Let's Encrypt、ワイルドカード証明書を2018年1月より無料提供 -INTERNET Watch
ロリポップ!利用者向けにLet's Encryptの無料SSL証明書発行サービスを提供、GMOペパボ -INTERNET Watch
Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 - さくらのナレッジ
Let's Encryptのワイルドカード証明書対応はこうなる? DNS-01のみか - Qiita
Rockridgeさんのツイート: "2017年12月時点で、Let's Encryptが発行したアクティブな証明書の数は4600万を突破。2018年中に9000万を目指す。また、2018年2月27日にはACME v2プロトコルを導入し、ワイルドカード証明書の発行を全… https://t.co/YWxZ14wH1U"
ユーザーガイド - Let's Encrypt 総合ポータル
Shigeki Ohtsuさんのツイート: "文科省外局のスポーツ庁の広報ページ https://t.co/qmRFNAsEYY でも Let's Encrypt のDV証明書を利用しているんですが… 他の https://t.co/lcSQE0omPH ドメインでちらほら。httpしか提供してないサイトよりよっぽどましかと。 https://t.co/vFqWfZMJBT"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー!証明書がLet‘s Encrypt!東証一部上場企業のサイトとしては衝撃的やな…この会社の情シスのレベルとか、この会社がサイバーでの信用というものをどう考えているかとか、色々考えさせられるわ… https://t.co/9UMVfA6BUl"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "この辺はまぁhttps://t.co/3fYww1OH4oの信頼で推すというのならまぁそうなんですねとしか言えません.民間CAにOVしてもらうのも結構面倒があるようなので,GPKIが正常化したら解決するのかなぁと思ってます…道のりはもう少しありそうですが.LGPKIが最近SECOM依拠になったので見習って欲しいなと.… https://t.co/s5Dju4emcw"
Shigeki Ohtsuさんのツイート: "最近更新したGPKIの証明書を見ると https://t.co/J8DYsMrdi6 LGPKIと同様の正常化?するのではないかと淡い期待を持って見ています(ごめんなさい島岡さん)。 https://t.co/jlwCng5hKf も再来週expireなので同様に正常化していただきたいものです。… https://t.co/kJ6GZTFv6b"
上場企業やgo.jpドメインでもLet's Encryptのサーバ証明書の利用が広がる | スラド セキュリティ
ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する - .mjtの日記復帰計画
Let's Encryptさんのツイート: "Let's Encryptは1億5000万のドメインで使用されています。 https://t.co/RFNQqW12O5… "
Looking Forward to 2019 - Let's Encrypt - Free SSL/TLS Certificates
Shigeki OhtsuさんはTwitterを使っています 「Let's Encrypt続報: 未更新の130万証明書の半数以上が利用中。影響度を考慮しBR規定の5日以内の失効を止め、残り83日のExpireを待つ方針。引き続きモニターと連絡を継続。今後この様な大規模インシデントに対応できるよう失効通知するプロトコルの開発を進めると。 https://t.co/yNoxD0IrEk」 / Twitter
1619179 - Let's Encrypt: Incomplete revocation for CAA rechecking bug
nsdでの letsencryptワイルドカード証明書の自動更新
Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
Shiro KawaiさんはTwitterを使っています 「あああ、SchemerがCommon Lispでよくやるミスだ。参照取っちゃう以外にクロージャに閉じ込んじゃうのもありがち。やはりループ変数を破壊的変更するのは人類の手に余るのでは https://t.co/k6AdNy068V」 / Twitter
mattnさんはTwitterを使っています 「んータイムライン見てると Go の言語的な性質の様に書いてる人がいくらかいるけど、これ他の言語でも起きるよ?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@zacky1972 そっち行っちゃえば心配の必要がなくなるってのは自明ですが、ここでの話題は「ループ変数の更新は破壊的変更と気づきにくいからはまりやすいのでは」という話でして… なおSchemerにはループは再帰呼び出しに見えるので当然新しい束縛だろうと思うわけです」 / Twitter
FadisさんはTwitterを使っています 「certbotのnginxプラグインを使ったLet's encryptの証明書の仕込みが簡単すぎて、TLS簡単になったなぁ、となった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今日、lets encryptの証明書取得したら4段になってて、おーって思った。メジャーなCAが4段発行するのひさしぶり感ある https://t.co/LPUM1W8d7d」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「2021年9月以降は今回のクロス証明書の状態の維持管理ができないので違反しているように思います」MUSTがあるのは同節最終段落で、ルート失効のタイミングで仕様を満たす検証機は失敗するようになるから問題ない気が / https://t.co/Fz1I9lRxtY」 / Twitter
Let's Encryptのルート認証局移行についてちょっと調べてみた - Qiita
Kazuho OkuさんはTwitterを使っています 「別の言い方をすると、Androidが仕様に反しルート証明書の有効期限検証していないのが問題であって、そこは、わざわざそうしている歴史的経緯がわからないと議論できないと思うけど僕は経緯をしらない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「規格では、validなパスが見つかるまで全探索しないといけないはずだけど、過去の署名を検証したいみたいなユースケースもあるわけで、有効期限切れのルートを無視するかどうかとかエッジケースの匂いがプンプン / https://t.co/vCya0X4h5J」 / Twitter
Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
YurikaさんはTwitterを使っています 「「監査的には有効期限を超えたクロスルートはOK(うろおぼえ)」みたいな話があったので、気になって見てみたけど、趣味レベル知識では、なるほどわからんだった。 WebTrust Principles and Criteria for Certification Authorities は鍵ペアのライフサイクル終了時には完全に破壊すること のようだし」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「まじか〜〜〜〜っ!!!Let's Encryptの期限切れになったDST Root X3、10月14日 朝06:20に次のCRL(CRLNumber=233)出してたよ〜〜〜〜!!!!鍵破壊してなかったんか〜〜〜〜い!!!!」 / Twitter
Let's EncryptのDST Root X3ルート証明書の2021年9月30日の期限切れに伴うCRL発行の予想が外れた件のお詫び

BIMI

BIMIとは? | SendGridブログ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GMailの場合、BIMI対応した企業ロゴ表示には、VMC(Verified Mark Certificates ) というロゴ証明書が必要。 DigiCertでのVMC料金は紹介割引で$899(定価$1499)、またロゴは事前に商標登録されている必要がある、と。 https://t.co/x8Gz6hD2rm」 / Twitter
DigiCert Verified Mark Certificates
17: Let's Encryptの90日と1秒の証明書の対策のその後の議論の話、なりすましメール対策のBIMIとVMCの話 by ひとくちPKI • A podcast on Anchor
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VMCは、登録商標ロゴ+DMARCの紐づけ証明と。 類似ロゴを登録商標にした場合の誤認はありうるのかな? (商標は国ごとなので、国が違う類似商標など)」 / Twitter

S/MIME

上原 哲太郎/Tetsu. Ueharaさんのツイート: "S/MIMEは、有効期限が切れた証明書も全部残してないと古いメールの署名検証ができません。自分の過去の証明書もちゃんと残してないと古いメールが復号できなかったりします。ところが、その話をすると「おおっ」という反応がしばしば。つくづく使われてない技術だなと感じます。"

Qiita

Kazuho OkuさんはTwitterを使っています 「書いてる人、すごい体系的に知識をダンプしていてプロだと思うけど一点「TLS「改ざんの有無」の説明が不適切。デジタル署名ではなく、MAC ( 今はAEAD) で担当」これは不正確。ハンドシェイクの改竄確認はデジタル署名 / https://t.co/BBbFeDodxW」 / Twitter
公開鍵暗号関連のテキストの間違いの典型例 - Qiita
Kazuho OkuさんはTwitterを使っています 「ここまで細かく説明できる人だから、レコードレイヤの改竄検知はAEADだけど、ハンドシェイクレイヤはデジタル署名、というのも正確であってほしい、という」 / Twitter
Kazuho OkuさんはTwitterを使っています 「自分はここまで細かく網羅的な文章を書くことはできないだろうなーって思いつつ気軽にツッコミ入れてるだけです念のため」 / Twitter
Shigeki OhtsuさんはTwitterを使っています 「@kazuho PSK mode だと MAC(Finished) もあるかと。AEADじゃないですが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@jovi0608 おっしゃるとおりですね。PSKモード関係なくFinished「も」ある、という表現が的確でしょうか」 / Twitter
Shigeki OhtsuさんはTwitterを使っています 「@kazuho はい、そうですね。CertVerify と一部役割がかぶってて説明しずらいですが。」 / Twitter
図解 X.509 証明書 - Qiita

Twitter

その他

ASN.1

ウチューじん・ささきさんはTwitterを使っています 「怪談だわ…(;゜Д゜) XMLって任意箇所に任意の長さのスペースや改行を突っ込めるし、タグに対応する閉じタグを探すには頭から1文字づつの文字列検索するしか無いので、パーサーの実行効率もメモリ効率も悪いと思う。」 / Twitter
岡田哲哉さんはTwitterを使っています 「今まで扱ったXMLの中で一番地獄だったのは地図情報のGMLで、日本地図全部が数十ギガバイトのXMLファイル1本になっているやつだな。とにかくデータが重いし、普通のXMLパーサーで読むと死ぬのでいろいろ工夫が必要だった。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「と は い え。1970年代のOSI構想のなかで標準フォーマットとして制定されたASN.1はtag-length-valueのバイナリ形式(通常はBER、可変ビット長のPERもある)だったけど、これはこれで不評だったのよね。扱ううえで厄介なのはlengthじたいが可変長であること。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「読む方はともかくASN1 BERを作るとき、「その後に来るデータの長さ」がわからないと「長さの長さ」も確定しない。0-127までは1バイト、128以上だと81 80みたいに「1バイト目は長さの長さ|0x80、2バイト目以後に可変長の長さ」が付くフォーマットになる。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「事実上64Kバイト以上のデータなんて滅多に扱わないので、1バイトのデータでも82 00 01というエンコーディングにして実質固定長として扱っても良いんだけど、len部分に0x00が入るとエラー扱いにするASN1 BERパーサもあったらしい。いらんことすんなよバーカ!と思っていた。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「ASN1はSNMPに採用されて、90年代中頃に「何でもかんでもMIB定義してSNMPで管理するのが正義!」みたいな流行があった。PCのネット管理をSNMPで行おうとするDMTF:Desktop Management Task Force(プッシュホンのDTMF:Dial Tone Modulation Formatと紛らわしい)なんてのもあった。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「SNMPv1は不完全な仕様とされ、それを完全にすべくSNMPv2が企画され、数百Kバイトの仕様書の山を作ったあげく空中分解して崩壊した。その瓦礫の中から使える仕様を拾い集めたものがSNMPv2c(コンパクト)と呼ばれた。その後でもう一度やり直してSNMPv3を作ったときにはブームは終わっていた。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「SNMPv3が世に出た頃にはXMLブームで、世の中のすべてのデータはXMLで書いてSOAPで交換するのが正義!みたいに言われていた。SNMPブームの顛末を知っていると「あーはいはいまた新しいバズワードですね」としか思わなかったし、実際そうなった。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「くにゅさんには「車輪の再発明とか言うけど、結局みんな新しいものを欲しがるんだよね」と言われたけど、螺旋階段みたいなもので、何か同じとこグルグル回っているようでいて気が付くといろいろ高機能になって便利になっていることも事実だと思う。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「ASN.1フォーマットはデジタル証明書X509のフォーマットとして現役だったりする。CN=https://t.co/XVKvnG2uxL,O=Twitter, Inc.とかいう妙なフォーマットはOSIが規定した識別名システム、X.500 DN(Distinguished Name)と呼ばれるもの。現在ではCNだけを取り出しURLと照会して使っている。 https://t.co/u6AU5KskWK」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 ASN.1はDERってのもありましたね。規格化に参加していMHEGで採用していました。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy DERについては「BERみたいなもん」というボヤーっとした理解しかありませんでした。BERのサブセットで、BERでは許可されていた(というか禁止されていなかった)82 00 7Fみたいなlength表記が明確に禁止され「0-127はShort Format、128以上は桁が収まる最短のLong Format」と規定されているようです。」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 その頃はまだペーペーで議論に深くついて行けていなかったのですが、BERの方が冗長なのでhuman readableなtextual notationかASN.1 DERで符号化するという規定になった記憶があります。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy ASN1で表現しきれない部分、「項目Cの実装は任意である」とか「項目Bの実装は項目Aに依存している」とかの仕様をSNMPv2ではModule-ConformanceとかModule-Compliaceという記述で機械的に記述しようとしましたが、早い話が破綻しました。後になってXMLが似たようなことをやろうとしてましたね。」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 あーXMLにありますねぇそういうの。Relaxで出来ませんでしたっけ。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy DTDとかXSDとか何かいっぱい出てきたとき「すごく嫌な臭い」を感じて、XMLから離れるきっかけの一つになりました。もともと、XMLは「建前は立派だけど実装を見ると吐き気がするようなのばっかり」とも思っていました(^^;) https://t.co/NkO5hTu14j」 / Twitter
XML schema - Wikipedia
あうぇっどさんはTwitterを使っています 「@uchujin17 もともとSGMLが厳密さを求めたために使いづらいといって作りだされたのがXMLだと思っているので、メタ言語としてはいい加減なんですよねwそこに利便性を追加しまくった結果が今の状態かと。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 「A=1」というようなデータに10層を越える階層構造のタグを何キロバイトも被せて、そのタグの定義のDTDがまた何百キロバイトもあるとかを見ると「馬鹿なの?死ぬの?」と思いましたが、みんなそう思ったらしくJSONに流れてゆきましたね。」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 (笑)」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 10年くらい前にIOTブームがあったとき、各社各様のIOTプロトコルが発表されましたが、まだXMLブームを引きずっていたので如何にもWEB屋さんが考えたような仕様が多く、「こんなもん原価5ドルでFlash 128K+RAM 32Kのワンチップシステムに実装できんだろ」というのがまかり通っていました。」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 組み込み系とはとことん相性悪いですよね。XML。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 5年前に書いた記事ですが、北米スマートグリッドの標準規格として持ち上げられていたSEP2.0仕様の話です。 https://t.co/CT8fVf0NFL」 / Twitter
SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
あうぇっどさんはTwitterを使っています 「@uchujin17 Zigbee懐かしい。これ使ったスマートホームってのをサンディエゴに一軒家建てて実装サンプル作ったんですよね。あれその後どうなったんだろう。w」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy Zigbeeは「そういうのもある」レベルにとどまっていますねぇ。うちのアパートは去年玄関の鍵がスマートロック化されたんですが、リンク層は「まだ生きてたんかワレぇ!」と驚くZ-Waveでした。」 / Twitter
あうぇっどさんはTwitterを使っています 「@uchujin17 それにつけてもECHONETの影の薄さよ」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy ECHONET(Lite)は優しく眠らせてあげてください…いずれその上に神社でも建てて荒ぶる神を鎮めることでしょう(;_;)」 / Twitter

目視確認

kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「Base64エンコードされた証明書などASN.1データを目読みできる人が一定数いる。JSONだとeyJとかで始まるくらいが関の山だが、証明書、CRL、OCSP、CMS SignedDataなどはもうちょっと見ることができて私のコツを紹介すると (1/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・SEQUENCE(30)で鍵の大きさにもよるが長さが820xxxになるので先頭は概ねMIIかMI ・RSA公開鍵、署名値などは非印字バイトとなるのでスラッシュやプラスが所々多く入る ・逆にASCII印字可能な識別名の値、有効期限の値などはスラッシュ、プラスが入らない (2/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・Base64は任意の3バイトを4文字で表現するので長い固定のバイトは後ろが3通りのみ ・rsaEncryptionやcommonNameなどの頻出OIDを3パターン知ってればその位置がわかる (3/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・上記により識別名やsubjectAltName、拡張のOIDなどの場所が大体わかる ・頻出する拡張タイプOID、CMS属性タイプなどの3パターンを覚えると更に読める (4/4) これで、みんなもPEM形式のX.509証明書大好きになっちゃうよね」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「おっと、忘れてた ・証明書の後ろは署名値だから非印字文字を含むのでスラッシュ、プラスが多めだよ これ、マメ知識な!!! (5/5)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「書き忘れ(2) ・主要な署名アルゴリズムのAlgorithmIdentifier構造も3パターン覚えておくと、tbsCertificateと署名値の区切りが大体わかってオススメだお」 / Twitter

histric-1

Yosuke HASEGAWAさんのツイート: "Chrome 58になって、組織内でオレオレ証明書つかってると、ルート証明書いれててもページ遷移毎にmissing_subjectAltNameで証明書のエラー画面が出るようになったので、いろんな会社で叫び声きこえてておもしろいけど大変そう。"
Rockridgeさんのツイート: "Fx52:security.enterprise_roots.enabledをtrueに設定した場合に、Windowsの証明書ストアに登録された証明書機関をチェックする範囲を拡大した。参照:… https://t.co/dolm0vhOaT"
Rockridgeさんのツイート: "Fx56:中国の認証機関であるChina Internet Network Information Center(CNNIC)が発行したEV SSL証明書を無効なものとして取り扱うことにした。 / “show_bug.cgi?i…” https://t.co/f0F9XW4dg2"
Shigeki Ohtsuさんのツイート: "うわっCIAのVault8 、ThawteのFake Root証明書を仕込んでカスペルスキーのWebサーバ証明書を作ってる。25年有効のシリアル番号1のSHA-1署名やん 。 https://t.co/98p2IZNMRa https://t.co/B01q0Wj0kR"
Makoto Kato ︎︎さんのツイート: "WebTrust for BRに準拠してない運用してるGPKIよりもLet's Encryptの方がCAとしてマシな気がするし、そもそもLet's Encrypt使わない場合でもEVな証明書使わない気がするんだよね、そういうサイト。"
himorin@5/19-20ベトナムフェスティバル2018さんのツイート: "そ、そろそろGPKIは部署ごとなかったことに・・・・したい・・・ですよねぇ。。… "
Makoto Kato ︎︎さんのツイート: "ソフトバンクテクノロジー配下のCyber Trust JapanのCAがBR満たしてないかも話出てたけど、どうなったんだろ"
Hideyuki Tanakaさんのツイート: "インターネッツのssl証明書は中間者攻撃を防ぐために必要な仕組みだったのに、いつの間にかお墨付きを与えるための高額商品みたいな商売になっていたのはなぜなのだろうか…(´・_・`)"
Rockridgeさんのツイート: "Fx63:証明書のエラーページのデザインが新しくなった。 / “1463755 - Update the design of certificate error pages” https://t.co/MKaN8OGt3d"
Shinko@C94金西も17bさんのツイート: "官報嘘だろ。 『オレオレ証明書インストールしてね』って頭湧いてんの。馬鹿なの? この国なんなの。まじかよ嘘だろ… https://t.co/UAyCRUkIga… "
Kazuho Okuさんのツイート: "iOS含むAppleのプッシュサービスが、デバイス毎にユニークなクライアント証明書を使いwifiの切替の度にTLS 1.2で接続していたから、ネットワーク上からデバイスの位置をトラッキング可能だったという話。昨年修正済 #ietf102j"
Kazuho Okuさんのツイート: "X509をひとことでいうと、証明書の署名鍵の証明する仕組。ダジャレじゃないよ!"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーは、VirtualBox内のSSL通信にも侵入して、証明書情報を書き換えてMITMを強制してくるのか…… "
Rockridgeさんのツイート: "Comodo CAが2018年11月1日付けでSectigoへとブランド変更を実施。 / “Comodo CA Rebrands as Sectigo | Sectigo (formerly Comodo CA)” https://t.co/jsTnM8TY08"
Kazuho Okuさんのツイート: "TLS 1.2までは証明書を平文で交換していたが、iPhoneのプッシュ通知においてデバイスのトラッキングが可能になるなどの問題があり(証明書はデバイス毎に一意だから)、1.3で暗号化されるようになった、と言えば覚えやすいのかしら https://t.co/JmkiJmswr9… https://t.co/23JzcdISGH"
Push away your privacy: Precise user tracking based on TLS client certificate authentication - IEEE Conference Publication
Vさんのツイート: "TLS 1.3 で証明書が暗号化されて送られるのまだ広まってないのか。"
Kazuho Okuさんのツイート: "君たちの言っている公開鍵は、公開鍵交換なのか交換鍵署名なのか公開鍵暗号なのか"
Kazuho Okuさんのツイート: "公開鍵は必ずしも一般に公開して使うものではないのですよ。例えば、クライアント認証に使う公開鍵は、通信相手毎に違うものを使い、かつ、経路上では暗号化して第三者に見えないようにすることで、名寄せやユーザートラッキングができないようにする、というのが今日的なベストプラクティス… https://t.co/dlSXIw4xQC"
Kazuho Okuさんのツイート: "暗号応用の標準化に携わってる一技術者として言えることがあるとしたら、脅威モデルが何かという前提を明らかにせずに、あれが正しい、これが間違い、と主張するのは議論が空転するからさけたほうがいいよ、ってことですね"
佐々木聖也🍤인권さんのツイート: "> 経路上では暗号化して第三者に見えないようにすること ができるにもかかわらず,認証に共通鍵暗号ではなく公開鍵暗号を利用するのはなぜなのでしょうか。計算コストが無駄ではないですか?… "
Kazuho Okuさんのツイート: "いい質問だと思います。標準化されていて柔軟(たとえばTLSのクライアント認証機能を使えば、上位で動作するアプリケーションごとに認証機能をもたなくてよい)、セキュア(クライアントデバイス外に鍵が漏れることがない)、しばしばハードウェアサポートがある、といったあたりが理由かなと… https://t.co/VPFg4ndiiF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば最近はさすがに、公開鍵の特徴を説明しようとして、RSAの特徴を説明してしまうパターンは減った気がする。 (昔、猿にはわからんだろうけど…みたいなタイトルで啓蒙していた人の成果かな?)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは明確に複数の事実誤認(RSAとDHの原理の混同、またDHの方が先)してますね。 それ以外に気になったのはどのあたりでしょう?… "
angel as ㌵㌤の猫さんのツイート: "これ…。第1回はいいけど…。山口准教授って、ガチの専門家のはずだよね。それでこの内容なの? 20年前だったらまだしようがないかもしれないけど、連載当時で2017年なんだよね。… "
ぎょうせいオンラインさんのツイート: "【連載】カフェ発マイナンバー・ICTが拓くセキュアで豊かな社会 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) 山口 利恵・東京大学大学院情報理工学系研究科ソーシャルICT研究センター特任准教授 https://t.co/PyURnDLUcY"
第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) | ぎょうせいオンライン  地方自治の総合サイト

Shigeki OhtsuさんはTwitterを使っています 「Apple Safariが2020年9月1日以降発行の証明書の有効期限を1年(と+1ヶ月の398日)に制限をかけるようです。Chromeも追随しちゃうよな。 / “position-on-1-year-ssl-tls-certificates” https://t.co/PE4ehm5FrN」 / Twitter
position-on-1-year-ssl-tls-certificates
Shigeki OhtsuさんはTwitterを使っています 「Appleが2020年9月1日よりサーバ証明書の有効期限を最大398日に制限する正式アナウンスです。 / “About upcoming limits on trusted certificates - Apple Support” https://t.co/zZ7QtjieFZ」 / Twitter
About upcoming limits on trusted certificates - Apple Support
uint256_tさんはTwitterを使っています 「素数判定, miller rabin くらいしか知らないなあ」 / Twitter
ほまれちゃん☃️さんはTwitterを使っています 「@uint256_t AKS法、フェルマーテスト、ソロベイ・シュトラッセンテスト等々色々ありますね(自分はミラーラビンとAKS法しか実装したことがない)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「拙作のPKIライブラリjsrsasign 10.5.0をリリースさせて頂きました。 https://t.co/nbciyg8CY2 今までBitcoinJSのECDSAを少しいじって使ってたんですが、どうもP-521に対応できなくて放置していたものをドイツの@cpluscharpさんが直してくれました。DaveさんがくれたRSAPSS対応と並ぶ最高のPRでした」 / Twitter
kjur/jsrsasign: The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token in pure JavaScript.

YurikaさんはTwitterを使っています 「昨日発見した 証明書チェーン確認サイト、便利すぎるhttps://t.co/mynh3bqhGF https://t.co/fwRfk0vndP」 / Twitter
Quick Chain Check - Powered by Certify The Web
suzakiさんはTwitterを使っています 「Quick Chain Checker https://t.co/KOvOKY3FGM 面白い。 ついでに各Root CAがどれくらいのシェアがあるのか検索したら 「SSL証明書シェアの50%に到達」2019/05/29 https://t.co/9eYM4CpweO 下記の2018状況とだいぶ変わっている。 「世界のTLS証明書認証局の市場」 https://t.co/EWRwcIPEDQ」 / Twitter
Let's EncryptのIdenTrust、SSL証明書シェアの50%に到達 | TECH+
世界のTLS証明書認証局の市場 - FS_WP_Digicert_Dec18_jw_JAJP.pdf

重点項目

浮動小数点数

その他

浮動小数点を利用する際に知っておきたいこと | Japan Developer Support Core Team Blog
ビットで表す数字の世界~浮動小数点編~
浮動小数点数について本気出して考えてみた - 一から勉強させてください( ̄ω ̄;)
【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回 | 日経 xTECH(クロステック)
浮動小数点数型と誤差
浮動小数点計算の基本的事実 – 「浮動小数点数は実数ではない」ということ | POSTD
浮動小数点
浮動小数点数は実数ではない | プログラマが知るべき97のこと
電子工作
浮動小数点数型
浮動小数点数の内部表現(IEEE)
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
浮動小数点数内部表現シミュレーター - instant tools
PEZY-SC2上における倍々精度Rgemmの実装と評価
Comparing Floating Point Numbers, 2012 Edition | Random ASCII – tech blog of Bruce Dawson
Ryu: Fast Float-to-String Conversion
ちょっとだけ怖い三角関数のはなし
WDM ドライバーでの浮動小数点の使用 - Windows drivers | Microsoft Docs
Boost math constantsの変遷記録 - in neuro
MIMD - Google 検索

言語

JavaScript

Kazuho OkuさんはTwitterを使っています 「あー面白い。IEEE 754でバッチリ決まらない、近似が必要になるやつ、関数呼出になってれば自分で差し替えて精度確保できるけど、演算子になると無理。で、「** だけ」が、この問題にひっかかるということか」 / Twitter
Takuo KihiraさんはTwitterを使っています 「見てる: https://t.co/B2jSQh8ZCM "ECMAScript® 2022 Language Specification"。なんてこった、 x ** y の実装は implementation-approximated なのね…。x ** y の出力を実装を超えて合わせようと思っても ** をオーバーライド出来ないから、ソースを手動で Math.pow に変更しないといけないのか。」 / Twitter
ECMAScript® 2022 Language Specification
Takuo KihiraさんはTwitterを使っています 「@kazuho そうなんですよ。配列の文字列化が自動で Array#join を呼ぶように、内部で自動的に Math.pow を呼ぶ仕様にしてくれればよかったのに。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tkihira 演算子として定義するなら、そうすべきだった感ありますね」 / Twitter
Takuo KihiraさんはTwitterを使っています 「@kazuho https://t.co/erI8H33LgD まだ Stage 3 ですね、提案してみればよいのかな?」 / Twitter
tc39/proposal-exponentiation-operator: Progress tracking for ES7 exponentiation operator
petamorikenさんはTwitterを使っています 「@tkihira @kazuho 残念ながら ES2016 で既に入ってますね。 https://t.co/E4PoFyfdAZ ただ互換性的にそこまで問題にならない気がするので提案するのはありだと思います!」 / Twitter
proposals/finished-proposals.md at master · tc39/proposals
Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho ご確認ありがとうございます、ちょうど @petamoriken -san にお伺いしようと思っていたところでした!さすがのアンテナ…ありがとうございます。この状態で提案するのは、どこでするのが筋でしょうか。」 / Twitter
petamorikenさんはTwitterを使っています 「@tkihira @kazuho 公式の Discource がいいかなと思います。 https://t.co/vRzvQ9Guga ふと思ったのですが Exponentiation Operators は BigInt でも使えるのですが、Math.pow はそうではないという仕様になっているので、一筋縄にはいかないかもです……。」 / Twitter
TC39 - Specifying JavaScript
Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho なるほど、そうですね、たしかに」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tkihira @petamoriken 仕様理解していないので外しているかもしれませんが bigint の ** は整数演算だから誤差がなく、従って特別扱いで良い気はします」 / Twitter
petamorikenさんはTwitterを使っています 「@kazuho @tkihira 仕様を見てみたのですが 6.1.6.2.3 BigInt::exponentiate はそのままで 6.1.6.1.3 Number::exponentiate にのみ手を加える形で提案できそうですね。」 / Twitter
petamorikenさんはTwitterを使っています 「@kazuho @tkihira 正確には 6.1.6.1.3 Number::exponentiate 21.3.2.26 Math.pow の両方でした。 特に大きな互換性やパフォーマンスの問題がなければ入れてもらえると思うので、あとは有用性をいかにアピールできるかですね。 https://t.co/UiIl0sXO9T」 / Twitter
ECMAScript® 2022 Language Specification
Shiro KawaiさんはTwitterを使っています 「Oops. Gaucheもバグってた。 https://t.co/ayu1BO7Zz3」 / Twitter
Fix (abs -0.0) · shirok/Gauche@9a9b635
高梨陣平さんはTwitterを使っています 「実数の絶対値を求めるのなんて簡単だろうと思うでしょ? Javaは違うのだよ。Javaは :-) IEEE 754では+0.0と-0.0が別に存在、から色々と面倒な話に。」 / Twitter
Hacker NewsさんはTwitterを使っています 「One does not simply calculate the absolute value: https://t.co/bwX6nPTvlO Comments: https://t.co/ebPzH0rFJr」 / Twitter
One does not simply calculate the absolute value / Habr
One does not simply calculate the absolute value | Hacker News
mod_poppoさんはTwitterを使っています 「Java関係ねえ、というのは置いておいて、俺が今朝遭遇したのはGHCのabs関数の話だったのでタイムリーだ(俺が困ったのは素朴な実装がNaNの符号を変えてくれない話で、元記事ではそこまでは扱っていないが)」 / Twitter
JavaScript クイズ解説: NaN === NaN の結果はどうなる?
mod_poppoさんはTwitterを使っています 「ECMAScriptのstrict modeで変数名に禁止されているのはevalとargumentsで、undefinedとNaNはshadowingできるのだったか」 / Twitter
JavaScript:float32による小数演算最適化 | ψ(プサイ)の興味関心空間
ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記

Lua, LuaJIT

mod_poppoさんはTwitterを使っています 「LuaJIT、負の0を表せないのか?どうなってやがる」 / Twitter
mod_poppoさんはTwitterを使っています 「もしかして32ビット整数で表せそうな値は整数として持ってるとかそういうやつか」 / Twitter
mod_poppoさんはTwitterを使っています 「仕様なのかバグなのか、それが問題だ」 / Twitter
mod_poppoさんはTwitterを使っています 「LuaJITが内部的に32ビット整数を使うかどうかのモードがあって、AArch64ではdual number modeしか選べないようになっているのか」 / Twitter
mod_poppoさんはTwitterを使っています 「x86_64のデフォルトでは-0がちゃんと-0になるっぽい」 / Twitter
mod_poppoさんはTwitterを使っています 「LuaJIT, アンダーフローで作った-0はdual number modeでも-0のまま維持されるっぽい」 / Twitter
mod_poppoさんはTwitterを使っています 「Lua、まさか5.3.xのマイナーアップデートで整数リテラルが64ビットで表現できなかった時の挙動を変えている?」 / Twitter
mod_poppoさんはTwitterを使っています 「Lua 5.3.1と5.3.2では十進整数リテラルが符号付き64ビットに収まらなかったときはwrap aroundするのに対して、5.3.3以降ではfloatリテラルとして扱われるっぽい」 / Twitter
mod_poppoさんはTwitterを使っています 「十六進数リテラルは常にwrap aroundするので安心」 / Twitter
Lua 5.3以降の整数型 - Qiita

Haskell

mod_poppoさんはTwitterを使っています 「GHC, x+0.0をxに最適化するのかよ(ゼロの符号を考えたときにこれは正しくない)」 / Twitter
mod_poppoさんはTwitterを使っています 「GHCではNegativeLiterals+MagicHash下で-0.0##と書いても負のゼロにはならないのか……」 / Twitter
mod_poppoさんはTwitterを使っています 「GHC, 最適化が有効だと 0.0 * (-1.0) が正の 0.0 になる……。」 / Twitter
mod_poppoさんはTwitterを使っています 「処理系の演算がIEEE 754準拠かを見極めるには生成コードだけではなく最適化の規則も確認する必要がある」 / Twitter
mod_poppoさんはTwitterを使っています 「GHCの定数畳み込み、結果が∞やNaNの場合はどうなるんだったかな」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「@mod_poppo ・ゼロ除算を起こす式は定数畳み込みをしない ・(0 / d) でdが負のときも定数畳み込みをしない ようですね 除算では負のゼロを気にしているので考慮漏れでしょうか・・・」 / Twitter
mod_poppoさんはTwitterを使っています 「加算や乗算のオーバーフローは対策されておらず、最適化が有効な場合は0x1p1023+0x1p1023-0x1p1023や0x1p512*0x1p512/2.0が有限値になる、か」 / Twitter
mod_poppoさんはTwitterを使っています 「オーバーフローしてできた無限大は0x1p1024扱いされるので、0x1p512 * 0x1p1023 / 0x1p512は最適化で0x1p512になります(0x1p1023ではなく)」 / Twitter
mod_poppoさんはTwitterを使っています 「https://t.co/JRFushUMwU GHCのIEEE 754準拠状況のまとめを作り始めた」 / Twitter
IEEE 754 conformance of GHC primitives
mod_poppoさんはTwitterを使っています 「GHCの-fexcess-precisionオプション、最近まで存在を把握してなかった https://t.co/PO1bVUQrRX」 / Twitter

Rust

yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「今のRustだとNaNをasで整数にキャストすると0, InfだとT::MAX, 1e20とかだとT::MAXになるみたい」 / Twitter
yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「panicすると思ってた」 / Twitter

C

mod_poppoさんはTwitterを使っています 「glibcの新しいのが出て、C23で追加される浮動小数点数周りの関数が実装されたりしているらしい https://t.co/H6N6ri4V7X」 / Twitter
The GNU C Library version 2.35 is now available
mod_poppoさんはTwitterを使っています 「C言語の標準ライブラリーってOSと密接に関係していたり他の言語からも利用されてたりして異質というか、よくある「言語の標準ライブラリー」とは違うよな。何が言いたいかというとC23で追加される関数がLinux以外でいつ使えるようになるかわからないのがアレ」 / Twitter
nan("is Not-a-Number") - yohhoyの日記
浮動小数点数比較マクロ - yohhoyの日記
sqrt(dx*dx + dy*dy)とhypot(dx, dy) - yohhoyの日記
Kazuho OkuさんはTwitterを使っています 「Cコンパイラにおける浮動小数点数の最適化 constA * variable / constB を (constA / constB) * variable に変換して constA / constB をコンパイル時に計算するって、一般的にやってくれるんでしたっけ? 何かできない理由があって、やらないんでしたっけ」 / Twitter
Seiya YazakiさんはTwitterを使っています 「@kazuho C99 でいうところの 5.1.2.3 で示されているような理由でしょうか。 参考: https://t.co/3UEmgGQtxc GCC, clang では -fassociative-math や -funsafe-math-optimizations 等でオプトインできた記憶があります」 / Twitter
FLP01-C. 浮動小数点式の演算の順序に注意する
Kazuho OkuさんはTwitterを使っています 「@saiya_moebius ありがとうございます。そのあたりがドンピシャでほしかった情報でした。」 / Twitter

C++

mod_poppoさんはTwitterを使っています 「文脈がよくわかってないけど、totalOrderはNaNを含めて全順序を与えるやつなので、IEEE非準拠な場合でもそういう「NaNのようなunorderedなやつも含めた全順序」が期待されてるのでは」 / Twitter
夜糸さんはTwitterを使っています 「std::strong_order を is_iec559 が false な floating-point type に適応したらどうなるんだ…? https://t.co/dV4Je2hxC3」 / Twitter
[cmp.alg]
夜糸さんはTwitterを使っています 「え、これ is_iec559 が false なら全順序関係が成立する前提…? 浮動小数点数型に対する三方比較は std::partial_ordering にしかならないハズなのだけれど……」 / Twitter
夜糸さんはTwitterを使っています 「std::partial_ordering::unordered な値のペアに関してどんな std:: strong_ordering の値が帰ってくるんだ」 / Twitter
Microsoft Visual Studio 2022 and Floating-point to Integer Conversions - C++ Team Blog
The /fp:contract flag and changes to FP modes in VS2022 - C++ Team Blog

MetaLibm

mod_poppoさんはTwitterを使っています 「高級言語もいいけど、C言語を置き換えるレイヤーの言語も作ってみたい(具体的にはlibmを記述できる言語を作りたい)」 / Twitter
mod_poppoさんはTwitterを使っています 「書いたコードに証明がつけられると良いんだろうけど依存型とかに関する勉強が足りない」 / Twitter
mod_poppoさんはTwitterを使っています 「「libmを記述」について、MetaLibmというプロジェクトがあるのは知っている(けど中身はよく知らない)」 / Twitter
Miura HidekiさんはTwitterを使っています 「MetaLibm、ちょっと調べたら無茶苦茶強そうなプロジェクトだった」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/igZKzTnvBO」 / Twitter
MetaLibm: code generators for the libm and beyond

round

るとさんはTwitterを使っています 「各プログラミング言語において整数の丁度半分の値に対してround関数が返す値: C: 0から遠い方 (nearbyintやrintは指定可能) Fortran: 0から遠い方 (nint) Java系: 正の無限大に近い方 (rintは偶数の方) .Net系: 偶数の方 (パラメータで指定可能) JavaScript: 正の無限大に近い方」 / Twitter
るとさんはTwitterを使っています 「Scheme: 偶数の方 Common Lisp: ? Emacs Lisp: 実装依存 Go: 0から遠い方 (RoundToEvenは偶数の方) Rust: 0から遠い方 Swift: 0から遠い方 (パラメータで指定可能) Ruby: 0から遠い方 Python: 偶数に近い方 PHP: 0から遠い方 (パラメータで指定可能) Perl: ? Lua: 無し」 / Twitter
るとさんはTwitterを使っています 「Prolog: 正の無限大に近い方 (SWI-Prologは0から遠い方) Erlang: 0から遠い方 Smalltalk: ? Haskell: 偶数の方 Standard ML: 偶数の方 (toIntは指定可) OCaml: 0から遠い方」 / Twitter

min/max

mod_poppoさんはTwitterを使っています 「浮動小数点数の min / max https://t.co/9kI1D5nmxM 前にこんな記事書いたけどJavaScriptの可変長引数で0引数の時の話までは書いてなかった」 / Twitter
浮動小数点数の min / max - Qiita
mod_poppoさんはTwitterを使っています 「モノイドとしてのmin/maxの話はこっちに書いた https://t.co/If7llOfCfG」 / Twitter
Haskellerのためのモノイド完全ガイド | 雑記帳
Shiro KawaiさんはTwitterを使っています 「「引数に不正確数が混じってても結果が正確であることが証明できれば正確数を返しても良い」とされていて、例えば+inf.0を「DBL_MAXより大きい不正確数」と解釈するなら、(min 0 +inf.0) は正確な0を返せる。 んだけど、正確数はDBL_MAXより大きな数も表せるので、やっぱり+inf.0を単位元にはできない」 / Twitter
でこれきさんはTwitterを使っています 「ちなみにSchemeだと数値に正確/不正確の別があり、min, maxは不正確数が引数に含まれると結果も不正確数になる(例えば (min 0 -1) => -1で(min 0.0 -1) => -1.0)、かつ、無限大は不正確数でありminの単位元にならないため、 (min) は無限大を返さずにエラーになったりする https://t.co/np2pXjlbZA」 / Twitter
Revised^6 Report on the Algorithmic Language Scheme
Kazuho OkuさんはTwitterを使っています 「「0個」以上の数値のminmaxを定義として自然なのは「含まれる数字のどれよりも大きく(小さく)ない最小(最大)の数」で、したがってmin()は+Infinity、max()は-Infinityになるからですね」 / Twitter
mattnさんはTwitterを使っています 「仕様の理解が十分でなく理由を説明できなかった。 https://t.co/XPj3v2uJZG」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「JavaScriptの変な挙動を見て「知らなかった」という反応をする気持ちがよくわからない。JavaScriptは未開のフロンティアか何かなのか。ちゃんと「仕様の理解が十分でなく理由を説明できなかった」と言ってほしい(?)」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「具体的に言うと昨日流れてきたparseInt(0.0000005)のやつ。これが5になることだけ知っていてもさすがに役に立たない。プログラミング言語に帰納的推論を挑むな。この場合真に必要な知識は「parseIntは引数を文字列にする」と「数値が文字列に変換される際に指数表記が使われることがある」だよ(?)」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「「仕様を知らなかったんだから知らなかったでいいだろ」みたいなコメントが付いていてまあそれはそうなので補足しておくと、仕様を知らなかったと言うのはいい。具体的な変な結果ひとつに対して「知らなかった」とだけ言うのが無意味だということを言いたかった(?)」 / Twitter
mattnさんはTwitterを使っています 「なお Math.max には「引数が与えられなかった場合は -Infinity が返されます」、Math.min には「引数が与えられなかった場合の結果は Infinity です」と書かれています。」 / Twitter

LLVM

mod_poppoさんはTwitterを使っています 「昔のLLVMにはfnegがなくて-0.0-xで代用していたのか(入力がNaNの場合を考えるとfnegは組み込みの演算子である必要がある)。LLVMにfnegが導入されたのはバージョン8のようだ」 / Twitter
mod_poppoさんはTwitterを使っています 「入力がNaNの場合の他、丸めモードが-∞方向に変更されていた場合も-0.0-xと-xで挙動が違う(x=-0.0の場合)」 / Twitter
mod_poppoさんはTwitterを使っています 「LLVMは今でも-0.0-xに対してfnegを出力するっぽい」 / Twitter
mod_poppoさんはTwitterを使っています 「LLVMの浮動小数点数に関する最適化のスタンスがまとまってるドキュメント、どっかにないのかな。sNaNは考えないとか丸めモードの変更は考えないとかそういうやつ」 / Twitter
mod_poppoさんはTwitterを使っています 「LLVMの浮動小数点数に関する最適化のスタンスがまとまってるドキュメント、どっかにないのかな。sNaNは考えないとか丸めモードの変更は考えないとかそういうやつ」 / Twitter
mod_poppoさんはTwitterを使っています 「あるいは呼び出す際のオプション次第なのか」 / Twitter

「十進文字列をparseして最近接丸めした時に正確に意図した値が得られる」ような文字列化

mod_poppoさんはTwitterを使っています 「浮動小数点数を正確に十進表記するための簡便なアルゴリズムってなんだ。多倍長整数を使える、コストは重要視しない、という条件でなるべく単純なものがいい」 / Twitter
mod_poppoさんはTwitterを使っています 「Dragon4が古典的なアルゴリズム(多倍長整数を使う)で、GrisuとRyūが比較的最近っぽい?」 / Twitter
mod_poppoさんはTwitterを使っています 「Dragon4の論文のタイトルは「How to print floating-point numbers accurately」で、ググるとPDFを拾えるようだ」 / Twitter
mod_poppoさんはTwitterを使っています 「「正確に」と言うか、「十進文字列をparseして最近接丸めした時に正確に意図した値が得られる」ような文字列化」 / Twitter
mod_poppoさんはTwitterを使っています 「そういえば以前JavaScriptのparseIntが話題になった際に「浮動小数点数の表記が範囲によって指数表記になったりならなかったりするのはどうなんだ」みたいな意見を観測して俺は「1e300に対して300文字以上出力されるのが嬉しいものなのか」と思ったわけだが、」 / Twitter
mod_poppoさんはTwitterを使っています 「Rustは1e300に対してデフォルトで300文字出力する側の言語だった https://t.co/mJctAg9087」 / Twitter
Rust Playground
mod_poppoさんはTwitterを使っています 「Rustは当世のプログラマーの間で人気のイケイケ言語なのでそのデフォルトであるという事実には重みがあるし、Rustは浮動小数点数の十六進表記に標準対応しないので浮動小数点数の十六進表記はオワコン」 / Twitter
mod_poppoさんはTwitterを使っています 「書き忘れた条件として、「なるべく短い表記を生成する」というのもある。念頭にあるuse caseは「ソースコードを生成するコンパイラー(トランスパイラー)で出力部に使う」なので、数百桁のリテラルを出力するのは望ましくない。」 / Twitter

Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数の曖昧な比較」の適切なやり方はケースバイケースなので、言語標準でそういう関数や演算子が提供されていても考えなしで使ってはいけない。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「浮動小数点数から文字列への変換。Ryuというアルゴリズムがあるのか / 1件のコメント https://t.co/7yZxeJ5xiu https://t.co/OrG1TP67qr」 / Twitter
[B! rust] https://crates.io/crates/ryu/
ryu - crates.io: Rust Package Registry
だめぽラボ@技術書典9さんはTwitterを使っています 「自作SML処理系での数学関数(Math.sinとか)のテストをどう書いたものか悩んでいたが、「MPFRで真の値±100ULP(適当)な区間を事前に計算して、テストコード中にその値を埋め込んで結果がその区間に収まっているか確認する」みたいなのが一番現実的な気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の数学関数は一部を除き厳密な等式が成立することは期待できないが、sinとcosを取り違えるようなやつは流石にテストで弾きたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「libmを実装するわけでもないし「原点から遠いところでの三角関数」みたいなやつはテストしない。とは言ってもULP基準だと値が0に近い時にアレだな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数のunordered周り、何らかの方法で提供したいのはわかるけど言語組み込みの演算子で提供するほどじゃなかったね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語ではisunorderedみたいなアルファベットからなる名前が使われている」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「使用するlibc (libm)がAlpine Linuxではmusl, Debianではglibcなのが差異の原因ではないかと思います。四則やsqrt等の一部の関数はいいのですが、sinやexpを含む多くの数学関数の精度はlibcの実装に依存します。」 / Twitter
ぜり (zeriyoshi)さんはTwitterを使っています 「何が原因なのかわからないけど -O0 の -fno-fast-math なのに Alpine Linux と Debian で倍精度浮動小数点の誤差が違って泣いてる gcc のバージョン違うけどなんか変わったんかな…」 / Twitter
えびちゃんさんはTwitterを使っています 「@mod_poppo これらの関数の精度に関して IEEE 754 ではどう規定されてるんでしたっけ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@rsk0315_h4x この場合重要なのはIEEEよりもむしろC言語の規格の方で、C99のAnnex Fでは「sqrtやremainder等の一部の関数はIEEE準拠、他の多くについては精度を規定しない」としています。」 / Twitter
mod_poppoさんはTwitterを使っています 「そもそも1/3は二進浮動小数点数では正確に表現できないのでアレという問題もあった。C言語のcbrt関数なら指数部の表現の問題を受けずに1/3乗できる。」 / Twitter
mod_poppoさんはTwitterを使っています 「GCCは数学関数の定数畳み込みにはMPFRを使っているという認識で良いのかな https://t.co/R7a36tCgv1」 / Twitter
29335 – transcendental functions with constant arguments should be resolved at compile-time
mod_poppoさんはTwitterを使っています 「mingw(-w64)のように数学関数の精度が良くないところがターゲットだと、コンパイル時の計算と実行時の計算で値が全然違うということになる」 / Twitter
κeenさんはTwitterを使っています 「Rustの浮動小数点数型にIEEE 754で定義されている「次の値」を求める関数を追加する提案。実装はビット演算っぽい。 Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs https://t.co/FUGoXa9wBw」 / Twitter
Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs
mod_poppoさんはTwitterを使っています 「その辺のスクリプト言語で「浮動小数点数と整数の乗算」が提供されていることがあるけど、内部的には整数を一旦浮動小数点数に丸めてから乗算を実行しているので、「浮動小数点数と整数をそれぞれ数学的な実数と解釈して積を計算し、結果を丸めたもの」とは結果が異なることがあるんだな」 / Twitter
mod_poppoさんはTwitterを使っています 「例えば0x1.fffffffffffffp0 * 0x100000000000008は数学的には0x1.ffffffffffffffffffffffffff8p56なので倍精度に丸めると0x2p56が返ってくるべきだが、実際には整数の方が先に0x1p56に丸められるので積は0x1.fffffffffffffp56となる」 / Twitter
mod_poppoさんはTwitterを使っています 「静的型言語の多くでは浮動小数点数×整数のプリミティブを提供しないのでこれはエラーになるか、暗黙の型変換が働くことが明確になる」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の環境依存の話、「ソフトウェアエミュレーションされた浮動小数点数なら安心と思っていませんか?GMP MPFは計算結果がアーキ(ビット数)依存になります!MPFRを使いましょう!」も追加で」 / Twitter
女さんはTwitterを使っています 「7 桁から指数表記になって最高!!!!!!!って人いるんですか?いますか?本当に?」 / Twitter
mod_poppoさんはTwitterを使っています 「そうそう、誰だってNumber.MIN_VALUE.toString()が300文字以上の文字列を返すことを期待するに決まっている」 / Twitter
mod_poppoさんはTwitterを使っています 「これに加えて、「参照の同一性」という非直感的な概念も演算子をやめて I_do_understand_reference_equality_and_really_want_to_test_them 的な名前の関数にするべき(過激派) https://t.co/bFeGpi82PT」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の比較は組み込みの演算子じゃなくて I_do_understand_the_behavior_of_floating_point_numbers_and_really_want_to_compare_them みたいな名前の関数を使わせるようにするべきだった」 / Twitter

mod_poppoさんはTwitterを使っています 「コンパイラーの最適化と浮動小数点数のあれこれについて知りたい方は https://t.co/36PtHcvfu9 に目を通しましょう」 / Twitter
FloatingPointMath - GCC Wiki
PHP: 浮動小数点数 - Manual
Go言語の浮動小数点数のお話
マシンの中のリアル : Dの浮動小数点数 - プログラミング言語 D (日本語訳)
Java 入門 | IEEE754 浮動小数点数表現

NaN boxing

複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
NaN boxingとsizeof(mrb_value) - mirichiの日記
NaN boxing - 枕を欹てて聴く
NaN Boxingというテクニックを知った
mrubyのJITの64bit対応 - Qiita
3. NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
C#でNaN Boxing - RoundWide Systems
Yukihiro MatsumotoさんはTwitterを使っています 「NaN boxingの代わりに、int 31bit, float 30bitを32bitに詰め込むboxing方法を見つけた。mrubyのメモリ節約のため採用しようかどうしようか迷う」 / Twitter
κeenさんはTwitterを使っています 「RustでEmacs LispのVMを書いた人の記事。NaN BoxingとかGCとライフタイムの話とか、真面目にやろうとすると困る問題がピンポイントで書かれてて真剣に取り組んでるんだろうなということが伺われる Building an Emacs lisp VM in Rust • Core Dumped https://t.co/98MDDOfyjz」 / Twitter
Building an Emacs lisp VM in Rust • Core Dumped
κeenさんはTwitterを使っています 「「GCのバグはこの世で一番大きな無脊椎動物の一種である」好き」 / Twitter
NaN boxing
NaN Boxing - albertnetymk's notes
zuiderkwast/nanbox: NaN-boxing in C
design patterns - What is the purpose of NaN boxing? - Software Engineering Stack Exchange
NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
value representation in javascript implementations -- wingolog
NaN-Boxing [sean.cm]
Yukihiro Matsumotoさんのツイート: "@miura1729 NaN boxingはそのうちやってみたいんですが。64bit対応が難しそうです。LuaJITの対応方法がどうにも理解できない。どうせ自分はまだ32bit環境だから32bitだけ対応するかなあ。"
Internals - SpiderMonkey | MDN

strtod

だめぽラボ@技術書典9さんはTwitterを使っています 「そのうち「十進小数から二進浮動小数点数への変換が(各種処理系で)何桁まで正しく行われるか試してみた」みたいなやつをやる必要があるな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数型がどっちのビット列表現を使っているか判断するプログラムも書きたいね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「0x1.00000000000008pN の形の数の正確な十進表記と、それを若干ずらした物を手元の環境のstrtodに与えてみたが、用意した例については全て正しい丸めが行われた。意外」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通に十進変換しても800桁未満にしかならないので、もっと末尾の 000...0001 を長くして文字列長を稼ぐか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「MacもLinuxも(libcの)strtodが真面目に実装されすぎてて面白くねえ。一方MSVCは極端なケースで間違えてくれた(規格準拠の範囲ではある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Cのstrtodは結構真面目に実装されていることがわかったので、他のプログラミング言語処理系も試すべきかな。といっても内部的にCを呼んでいたら同じことだけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数周りの関数が「真面目に実装されすぎてて面白くねえ」ってひどい言い草だな」 / Twitter

atof

文字列少数点数表記を IEEE754 倍精度浮動小数点数にエンコードする方法|Sukesan1984|note
きしもとさんはTwitterを使っています 「atof に関してはラスボスが居てですね……そこまで要求されることは普通は無いにしても https://t.co/bhnYhi2qdV」 / Twitter
Gauche:浮動小数点数をどこまで読むか
きしもとさんはTwitterを使っています 「このパターン、atof が実のところ一番簡単な use case で、2進小数でちょうど境界になる場合、「厳密に計算した後、正しく丸めた」結果を得るには、関数によってはどれだけ計算が必要か予め決められないとして、Table Maker's Dilemma と、カハン先生によって命名されています https://t.co/c2RfXrW9eB」 / Twitter
Introduction to the Table Maker's Dilemma
きしもとさんはTwitterを使っています 「@ksmakoto このテーブルというのはイケアで売ってるような木工とかのことではなくて、「数表」のことですが、余談ですが以前、数表に関してこんなツイートを見ました(2重丸めに注意という話)」 / Twitter

dtoa.c

島鉄雄さんのツイート: "libc を使わ(え)ない環境で strtod (古くは atof)が必要になった場合に、ネットにある GPL じゃない実装を比較検討したところ、1つ以外全部 glibc の strtod と結果が合わなかった。(要するに精度が悪い) 以下のページの this code のリンク先にある dtoa.c が唯一の解だね。 https://t.co/6R2VfOHHAI"
How strtod() Works (and Sometimes Doesn't) - Exploring Binary
https://www.ampl.com/netlib/fp/dtoa.c
rounding.pdf
島鉄雄さんのツイート: "コンパイルする時は $ gcc -c -DIEEE_8087 dtoa.c のようにする。 紹介したページの解説をみたり、this paper のリンク先の論文をぱっと見したりすると、strtod は素人が実装出来るしろもんじゃない事が良く分かる…"
島鉄雄さんのツイート: "Ruby も 2019/2 に strtod を dtoa.c のに変えたようだ。 (勿論 libc の strtod が有ればそっちを使うはず) https://t.co/J8Amrv3zv7"
History for missing/dtoa.c - ruby/ruby
島鉄雄さんのツイート: "Windows の場合は libc が msvcrt.dll になるけど、strtod の挙動は微妙に違うようだ。 なので、マルチプラットフォームなインタプリタを実装している場合は dtoa.c のものに統一する方がいいだろう。 インタプリタは strtod を使いまくるので、複雑な計算をした場合に OS 毎に結果が違う事態を防げる"
島鉄雄さんのツイート: "Rust や Go はセルフホストなので、strtod のような処理を自前で実装してるので見たところ、文字列→10進浮動小数(いわゆる decimal)→2進浮動小数(通常の double)としているようだった。 (ちなみに Rust のコードはぱっと見訳が分からないw Go は atof.go と物凄い分かり易かった) 続く"
島鉄雄さんのツイート: "先の論文も decimal → double へ変換する際の誤差を減らすというもののようだし、結局以下の事が言えそう。 ・double だけ使って実装された strtod は全てなんちゃっての可能性が高い ・セルフホストする言語を実装するには decimal を実装した方がいいだろう(浮動小数のパースに使う為)"
島鉄雄さんのツイート: "dtoa.c もざっと見てみると、必要最小限の10進浮動小数(のような?もの BigInt)が実装されていた。"

例外

Microsoft Visual c 浮動小数点の最適化 | Microsoft Docs
cfenv - cpprefjp C++日本語リファレンス
浮動小数点例外Cなぜそしてそれは何ですか。 - コードログ
HiPEとclangの浮動小数点例外 - Qiita
浮動小数点例外 - 数理計画用語集
浮動小数点例外
次のプログラムをコンパイルしたところ、”浮動小数点演算例外です... - Yahoo!知恵袋
浮動小数点例外の処理
浮動小数点例外処理 (-fpe) オプションの使用
実行したところエラーがでました - プログラマ専用SNS ミクプラ
概要: 浮動小数点例外の制御
浮動小数点環境 - cppreference.com
浮動小数点演算ではまった話 - bkブログ
整数除算のオーバーフローについて - やた@はてな日記
浮動小数点の最適化
WGC1 第4章 浮動小数点表現 4.6 浮動小数点の例外 - みちしるべ
Exception handling
ieee - 浮動小数点例外モードを設定

用語

浮動小数点数(フドウショウスウテンスウ)とは - コトバンク
浮動小数点演算(フドウショウスウテンエンザン)とは - コトバンク
IEEE 754 ‐ 通信用語の基礎知識

IEEE754

仮数部に1の補数表現

Miura HidekiさんはTwitterを使っています 「IEEE 754が仮数部に1の補数表現を使っているのは、-0を表現したいからだろうか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 乗除算中心なら符号別の方が都合が良いからかなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど、ただ増えるのは排他的論理和と1の足し算が1回ずつだけですよね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 あと加減算はどうせ桁揃えが入るし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど、確かに2の補数にしても意味が無いですね」 / Twitter
Dan KogaiさんはTwitterを使っています 「符号ビットがあると±0の逆数が±Infinityになるなど都合がいい。整数で2の補数が使えるのは値が整数で閉じているということも大きい。IEEE754だとInfinityやNaNのように数値でない値も表現できる必要がある」 / Twitter

IEEE754 について
κeenさんはTwitterを使っています 「へー。NaNも含めた順序って決められてたんだ」 / Twitter
κeenさんはTwitterを使っています 「wikipediaでも言及あった https://t.co/1NyjGzfynP」 / Twitter
IEEE 754 - Wikipedia
あちゃぴーの自転車通勤: 32-bit float IEEE 754 浮動小数点数について
IEEE754について。モダンなコンピュータはどのように少数を扱っているのか - Yabu.log
IEEE 754-2019 - IEEE Approved Draft Standard for Floating-Point Arithmetic
黒澤亮二さんはTwitterを使っています: 「浮動小数点の仕様IEEE 754が少し改訂されたらしい。2008年にも改訂されていて、ほぼ10年ごとのサイクル?2008ではdecimal floatの追加があったようだが今回はそこまで大きい追加はなさそう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「2の補数表現以外の符号付き整数表現をするハードウェアは滅びたと思っていたが、IEEE-754の指数部ってoffset binaryなんだな。」 / Twitter
dif_engineさんはTwitterを使っています 「IEEE754はよく考えられた規格で,一見不合理だったり冗長だったりするように見える規則を捨てて実装するとたいていどこかおかしくなる. (高速化を目的として多くのチップメーカーがIEEE754の変形実装をしたけど,それで評判を落としたことが多い).」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@dif_engine だが一番普及してしまってるintel x87がカハン教授が加入する前の草案で見切り発車してクソ実装してしまったから。速い代わりに計算精度低くて、カハン教授のコンプラ試験ソフトでボロカスにエラー出る。」 / Twitter
dif_engineさんはTwitterを使っています 「Kahanさんがこの規格を作るのに相当貢献していたはず.Kahanさんの研究を無視した浮動小数点演算のクソ実装をするとこんなふうに(https://t.co/fwqZO7ttCV)処刑されます.」 / Twitter
JAVAhurt - JAVAhurt.pdf
IEEE 754-2019 浮動小数点の仕様書を購入 - FPGA開発日記
IEEE754-2019 メモ: 竹下世界塔の計算機よもやま話
セクスィ・ナカナカピエロさんはTwitterを使っています 「@Hishinuma_t @7danmoroboshi 現状の浮動小数点の精度 IEEE float64で不満がある方はdouble-double型で実装されたもの(long double)を使うのではなくIEEE float128 (binary128)を使うのが良いかと。浮動小数点の精度を上げるために積むのは徳ではなく、レジスタのビット数ですかね。笑。」 / Twitter
電子計算機の沼さんはTwitterを使っています 「訳:お前俺に浮動小数点の基礎を講釈した挙げ句,Double-double型じゃなくてIEEE754 binary128を勧めてくるとかどうなってんだ それとレジスタのビット数なんか積めるわけねえだろ何考えてんだ」 / Twitter
電子計算機の沼さんはTwitterを使っています 「&gt; double-double型で実装されたもの(long double) そもそもlong doubleはdouble-doubleじゃねえよ」 / Twitter
にゃんにゃん@日本に帰りたいさんはTwitterを使っています 「@NakanakaPierrot @Hishinuma_t float128をハードウェアサポートしてる環境がほとんどないからdouble-doubleを使うんですが、、、」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellでIEEE 754-2019準拠な浮動小数点演算を提供するライブラリーをHackageに上げた(基本的にRealFloatの範疇でやっているので一部制限あり) https://t.co/EDnHsvbog3」 / Twitter
fp-ieee
だめぽラボ@技術書典9さんはTwitterを使っています 「制限事項: ・NaNの符号やペイロードを扱うには専用の型クラスが必要 ・浮動小数点環境に介入することはできない(純粋&遅延評価と相性が悪い) ・十進浮動小数点数のexponent周りは非対応(RealFloatクラスが対応してないので)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進浮動小数点数を富豪的データ構造として実装する分にはそんなに問題はないと思うけど、IEEEの十進交換形式みたいに32*kビットになるべく詰め込もうとするとアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式には同じ符号の無限大を表すビット列が複数ありうる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式は ・そもそも一本化されていない(DPD vs binary) ・正規化されないので一つの値に対して複数の仮数部・指数部がありうる ・一つの仮数部・指数部の組について複数のビット列が対応する場合がある など、二進と比べて大変愉快な仕様となっているぞい」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE 754ができるまでの歴史。70年代の浮動小数点演算は、誤差やゼロの扱いが環境によってばらばらだった。数値演算の誤差はバグとは考えられておらず、プログラマは値の補正に X=(X+X)-X などというトリックに頼っていた。このままいけば破綻するのは目に見えていた。... https://t.co/s5VGR2Mm4q」 / Twitter
https://people.eecs.berkeley.edu/~wkahan/ieee754status/754story.html
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「1976年、8086用の数値演算プロセッサの開発を始めたIntelは、本当に使えるチップを作るためには浮動小数点の業界標準が不可欠ということに気づいた。こうしてIEEE 754委員会が結成され、数値演算の専門家であるバークレーの William Kahan教授が中心となって作った "K-C-S案"が提出された。...」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE754にはIntelのほか、DEC、Motolora、Zilogなど多くの半導体メーカーが参加した。標準化委員会は各メーカーの思惑が入るのが普通だが、IEEE754委員会はまれにみる利他的な団体で、多くの参加者がまともな標準を作ろうと努力した。Kahan教授はこの業績で1989年のチューリング賞を受賞している。」 / Twitter

x87

Twitter

sizeof

だめぽラボ@技術書典9さんはTwitterを使っています 「sizeofを比較しても同じ型かどころか、同じ浮動小数点形式かすらわからないから……(80ビットのlong doubleがsizeofで測ったら16を返してきたりするし)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/uvtZjvyuFb」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCのドキュメントと挙動が食い違っているのを発見してしまったかもしれない(ドキュメントでは__float80は_Float64xのエイリアスだとされているが、実際は(-mlong-double-80の下では)long doubleのエイリアスになっているっぽい) https://t.co/2tCMVPCdNn」 / Twitter
Floating Types (Using the GNU Compiler Collection (GCC))
だめぽラボ@技術書典9さんはTwitterを使っています 「昨日の_Float64xの話題で思った(というか前から思ってた)んだけど、extended precision formatに対応する型をわざわざ標準化する必要あるのか?非自明な拡張ナントカ精度って実質x87のアレしかなくない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「TF32は拡張じゃなくてむしろ縮小でしょ」 / Twitter

hsjoihsさんのツイート: "IEEE754の乗算は交換法則の方は成り立つんだっけな(結合法則はそりゃ成り立たない)"
uint256_tさんのツイート: "IEEE754, Nan boxing すごいってくらいの知識しかない"
Zıᴘʜıʟ Sʜᴀʟᴇıʀᴀꜱ ╹ω╹さんのツイート: "交換するけど結合しないって数学的には珍しい?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "そういえば前2chで「浮動小数点数は何が起きるか分からないから精度いらない場面でも絶対使うな」って騒いでるやついたなぁ 乱数じゃないんやぞ…"
白山風露@ᗣᘎᘄさんのツイート: "8087互換FPUは状態を内蔵しているので「何が起きるか分からない」はある意味正しい。 丸め方向やゼロ除算例外の扱いなどが変更される可能性があるので本当に厳密に使うならチェックしないといけない。… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "状態持ってるまじ?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "IEEE754なら大丈夫だよね?"
白山風露@ᗣᘎᘄさんのツイート: "まあゼロ除算はそもそもC++だと未定義だけど"
白山風露@ᗣᘎᘄさんのツイート: "IEEE754の規格からは外れていないが、そもそも規格に丸め方向等が複数種類存在し、その切替をFPU内部のフラグで行うことができる… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "え、これまじですか 規格っていうから必ずこうなるって決まってるのかと…… "
yuyabuさんはTwitterを使っています: 「https://t.co/0HWDwOgyrz AArch64(arm)はsin,cosとか計算する機械語あるのか。java 11以降のmathではこいつら(CPU専用命令)を直接使うらしい。 #javareading」 / Twitter
yuyabuさんはTwitterを使っています: 「intel系のCPUにはsin,cosなどを計算する命令は8087などにあるらしいけど、普通に計算した方が早いのでgccなどはfpuなどを使わずにソフトウェア的に計算しているらしい。」 / Twitter
FadisさんはTwitterを使っています 「LLVMでMMX intrinsicsをSSE2に落とす改良が提案されている。MMXはx86のSIMD命令で、SSEと異なりx87とレジスタを共有する。この為MMX使用後片付けずにx87を叩くと動かないが、LLVMは容赦無く命令を入れ替えるので片付け前にx87が使われない事を保証出来ない問題を抱えていた https://t.co/dpDlvvk6eK」 / Twitter
LLVM Developers Looking At Phasing Out Intel MMX Support - Phoronix
ママレモンサワーさんはTwitterを使っています 「まあMMX intrinsicsからSSE2を吐くようにしようぜって今さら言われたら、もうサポート自体やめるわってなるよな…」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「sinやcosの精度絡みでは、x87 FPUにはsinやcosや底2の指数関数・対数関数を計算する命令があって、あれらは精度が実装依存っぽいので再現性が必要なら使っちゃダメな系のはず(同じ命令列を実行しても異なる結果が返る可能性がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「実際、Intel SDMにはPentiumでそれらの命令の精度が向上したようなことが書かれている(つまり、それ以前のCPUとは異なる結果が返ってくる)。AMDは知らん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SSE系には逆数や平方根の逆数の近似を返す命令があるけど、相対誤差しか規定されてないっぽいし、あの辺もCPUによって返る値が違う可能性のあるやつかな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「(異なるマシン間での再現性の観点でいうとx87 FPUは煮ても食えない(Control Wordをいじったとしても非正規化数の計算にコーナーケースがある)ので初手切り捨てが最善ですね…)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語での浮動小数点数の評価方法(FLT_EVAL_METHOD周り)をテストするやつを書いた。x87 FPUが使用されると出力が変わる系のやつ。 https://t.co/nSSKGD6jZS」 / Twitter
floating-point-test/eval-method.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「これまでに書いた浮動小数点数周りのテストコードがあちこちに散らばっているのをどうにかしたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「IEEEで例外発生の有無が実装に委ねられているやつ」をテストするコードも追加した(FMA(0, ∞, qNaN)でinvalidが発生するかどうかと、アンダーフローの判定が丸めの先か後か)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「NaNのペイロードの伝播の仕方を確認するやつも書いた。入力の両方がNaNだった場合に常に左側を返すやつ、演算が可換になるように両方見て決める奴、常にペイロードが0なNaNを返すやつなどがある https://t.co/XD0oBQOScj」 / Twitter
floating-point-test/nan-propagation.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUの呪い [C言語] on @Qiita https://t.co/bLfIx7zR7t」 / Twitter
x87 FPUの呪い - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「Javaのstrictfpは何のために存在するのか、C言語のFLT_EVAL_METHODは何を表しているのかがわかる記事を書きました: https://t.co/w3YBXz2foh」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUで倍精度演算がアレなのはこの前の記事に書いた通りだけど、x87 FPUを拡張したような感じのItaniumでは命令ごとに精度を指定できたりFPSRで指数部の範囲を拡張するか選択できたりしてそういう「呪い」はないという認識で良いのかな」 / Twitter
kashiさんはTwitterを使っています 「Intel80bitというか、_Float64xな定数ってどう書くのがいいんだろ。 https://t.co/53gyEs26TO によれば、 x = 0.1f64x; って書けそうだけど、手元の環境ではgcc:○、g++:×、clang:×、clang++:×みたい。昔ながらの x = 0.1L; は大丈夫そうだけど、これでいいのか? もちろん、単に0.1ではまずい。」 / Twitter
Floating Types (Using the GNU Compiler Collection (GCC))
mod_poppoさんはTwitterを使っています 「C++に(C言語で言う_FloatNみたいな)浮動小数点数型を追加するプロポーザルの最新版を見てみたけど、C言語で言うところの_FloatNxは入らないのか https://t.co/hWmZDbWwC1」 / Twitter
P1467R5: Extended floating-point types and standard names
mod_poppoさんはTwitterを使っています 「80ビット浮動小数点数、どうせ環境依存な代物なんだし環境依存な書き方(long doubleとして使えると仮定する or GCC拡張の__float80を使う)でいいんじゃないの感がある」 / Twitter

サイン、コサインをインテルの CPU で計算すると少しバグっているらしい – tomeapp
x87 FPU で厳密な単精度演算を行うコスト - NyaRuRuが地球にいたころ
x87 FPU で厳密な単精度演算を行うコスト (2) - NyaRuRuが地球にいたころ
Shiro Kawaiさんのツイート: "#tcfm https://t.co/9L8G8XZaBY 第10回 IEEE754の数学関数は数ULPくらいの誤差は許されていたような気がする。 sqrtは基本演算扱いで完全に指定されてたかもしれない。"
Rui Ueyamaさんのツイート: "浮動小数点数フォーマットは最近学校で習ったので2^-1022近辺の浮動小数点数は特別にバグりやすい罠があるというのをすぐに理解してしまった。"
スタックマシン ‐ 通信用語の基礎知識
Tips x87 FPUプログラミング
ロボ太さんのツイート: "そうそう、x87命令とかSSEについてもちょっとだけ書きました。なぜx86に64ビットの浮動小数点レジスタが無いかとか、long doubleが80ビットな理由とか・・・。あんまし深掘りしてないけど・・・ https://t.co/eX0vwsSaB0"
sevendayshpc/README.md at master · kaityo256/sevendayshpc
Island Life - 拡張浮動小数点数の扱い
作って理解するOSを読んだ感想とメモ - Qiita
浮動小数点数の呪われた世界(x87 と C/C++) - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「対処は、コンパイラオプションで SSE2以降を指定できれば、それが一番楽かな。 (今時のVC++ x64だとそれがデフォルト)」 / Twitter
加藤公一(はむかず)さんはTwitterを使っています 「インテルのCPUは、レジスタで倍精度計算をするときは内部的に80ビット使うので、C言語の最適化オプションによって途中結果をメモリに置く手順が変わって結果が微妙に異なることがあるぞ。昔それが原因のバグを入れてしまったことあるぞ。」 / Twitter
H.Torii (fully vaccinated)さんはTwitterを使っています 「@hamukazu /fp:precise」 / Twitter

SSE

謎の SSE 例外 - 借り初めのひみつきち
鈴木友紀さんはTwitterを使っています 「なぜ Legacy SSE 命令は YMM/ZMM の上位を保持する仕様にしたのか調べていたら Microsoft の所為ということになった。 assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow https://t.co/gXCIIKLeGF」 / Twitter
assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow
鈴木友紀さんはTwitterを使っています 「Using Floating Point or MMX in a WDM Driver https://t.co/nfoEiV6XFq」 / Twitter
Using Floating Point or MMX in a WDM Driver
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMのCVTTS[SD]2SIの説明に "When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register." って書いてあるけどこれは間違い?(常にtruncateするはず)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「_mm_cvttsd_si32 (SSE2)と_mm_cvttsd_i32 (AVX512)の違いがわからないんだが、命令のエンコーディングが違うみたいなやつか?でもclangで-mavx512fの下ではどっちもvcvttsdsiになっているように見える」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのintrinsicsなんもわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Apple Clangは最近のmacOS上では自動で-msse4.1が有効になるっぽい(ceilとかfloorとかの関数が1命令にコンパイルされる)」 / Twitter
κeenさんはTwitterを使っています 「ジョークかと思ったら真面目な記事だった…。主にSIMD(CPUによって命令があったりなかったりする)との付き合い方について。 Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files https://t.co/WhxEVWmzk5」 / Twitter
Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files
κeenさんはTwitterを使っています 「tacはファイルを逆順に表示するコマンドで、シェル芸でしか使わんだろって思ってたらログを最新順にみたいなどの需要がある。これも数GBクラスのログを逆順に表示したいというモチベーションからはじまってる。確かに言われてみればネタ扱いしたのも動作が遅くて使いづらいからだ。」 / Twitter
ストリーミングSIMD拡張命令 - Wikipedia
MMX ‐ 通信用語の基礎知識
SSE ‐ 通信用語の基礎知識
SSE2 ‐ 通信用語の基礎知識
SSE3 ‐ 通信用語の基礎知識
SSE4 ‐ 通信用語の基礎知識
SSE 4.1 ‐ 通信用語の基礎知識
SSE 4.2 ‐ 通信用語の基礎知識
IDF Shanghai 2008 - Nehalem情報を総まとめ、コアの内部構造からプラットフォームまで (9) | マイナビニュース
15群(○○○)-8編 - 06gun_05hen_04.pdf
インテル(R) アーキテクチャ (IA) 浮動小数点ユニット (FPU)、ストリーミング SIMD 拡張命令 (SSE)、ストリーミング SIMD 拡張命令2 (SSE2) を使用した浮動小数点算術演算 - w_fp_precision_j.pdf
x86/x64 SIMD命令一覧表 (SSE~AVX2)
x86/x64 SIMD命令一覧表 (SSE~AVX512)
./note008.html
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「ところがそうでもなくて,SIMD命令やGPUを前提にすると,複数データを一度に処理するために1つあたりのデータサイズを抑えたほうがかなりの速度が出ます。」 / Twitter
fumiさんはTwitterを使っています 「いまやマイコンもFPGAもリソースもりもり森鴎外なので、1byteを削るために最適化したりする必要もなく、ガンガン32bitで計算すればいいし、ガンガン除算すればいい。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「高速行列演算パッケージのBLASは非常に複雑だと思われているが、実際には100行程度のCでほぼ同等の速度が出せる。やっていることは: - SIMDを使ったベクトル化 - ブロック化によるキャッシュの最大活用 - マルチスレッドによる並列化 https://t.co/mzpeio7lOF」 / Twitter
BLAS Tutorial
Kazuho OkuさんはTwitterを使っています 「@miura1729 x86とかでもSSEとかは即値ロードないので…」 / Twitter

AVX

AVX512

SIMD 最適化

Hideyuki Tanakaさんのツイート: "それはそうとavx512の命令セットはなんであんなグッチャグチャになってしもたんや?まあx86自体がグッチャグチャやという話もあるが"
Tsukasa #01 [要出典]さんのツイート: "opmask というある意味では GPU 的な演算制御を手動でやるために用意されたとしか思えない仕組み。"
Hideyuki Tanakaさんのツイート: "まあ要するにそういうことだよなあ(´・_・`)…てかもうこれ人間が書くんじゃなくて、#pragma omp simd とか、オートベクタライズ期待とかそういうの前提なんじゃないのか。コンパイラ死にそうだけど"
Tsukasa #01 [要出典]さんのツイート: "手で書くことはもちろん可能だけど、ある程度以上はコンパイラ任せに……したいんだろうなぁ (にしては opmask の演算命令の中に不穏なものがあるけど)。"
Hideyuki Tanakaさんのツイート: "絶対インテルコンパイラ以外ではまともな性能出ないことが目に見えててキビC~"
Hideyuki Tanakaさんのツイート: "少なくともインテルコンパイラではまともに動いてるのかは気になるところ(´・_・`)"
Hideyuki Tanakaさんのツイート: "いやそれかインテルコンパイラ開発してる人からのこれもないとまともにコード生成できひんでっていう命令がごっそり入った結果あんなグッチャグチャな命令セットになったという可能性もある"
Hideyuki Tanakaさんのツイート: "まあ実際PEZY-SCでのプログラミングはあんま考慮することが少なくて、ワイドSIMDにまつわる問題はなくて楽といえば楽。フラッシュと同期を使いこなして、キャッシュヒット率を上げるだけやからな。(それが難しい)(でもそれは何でも一緒な気はする)"
AVX2/AVX-512を用いたLennard-Jones系 ポテンシャルの力計算のSIMD化 // Speaker Deck
【CEDEC 2020 フォローアップ】 マルチプラットフォーム環境で実現するLLVM ClangによるSIMD自動ベクトル最適化 | Cygames Engineers' Blog

Converting integers to decimal strings faster

Daniel Lemire 🥕🥕🐇さんはTwitterを使っています 「Converting integers to decimal strings faster with AVX-512 https://t.co/Cmx8VMpo0h The AVX-512 approach is 3.5 times faster in my tests... credit @InstLatX64」 / Twitter
Converting integers to decimal strings faster with AVX-512 – Daniel Lemire's blog
InstLatX64さんはTwitterを使っています 「@lemire Free source of #AVX512F, #AVX512IFMA based implementation of _ultoa, _ltoa, _ui64toa, _i64toa functions: https://t.co/0sTn8WccqG https://t.co/Ce4AgfjDgl」 / Twitter
AVX512F, AVX512IFMA based implementation of _ultoa, _ltoa, _ui64toa, … · InstLatx64/InstLatX64_Demo@25baddb

histric-1

AVX512での逆数近似と精度補正 - Qiita
kaityo256/rcp28_sample: Sample code of vrcp28pd
或るプログラマの一生 » AVX-512 がアナウンスされていた
Fadisさんのツイート: "SIMDで一度にたくさんのベクトルや行列を扱う場合、個々のベクトルや行列を順番に並べてメモリに置いていると、今すぐに必要な要素の値が広範囲に散らばって配置されることになって、パフォーマンスの低下を招く、という現象がSIMDがとてもとても長いマシンで時々観測される"
AVX-512(フォーマット)詳解
きしもとさんのツイート: "(vp)ternlog命令の説明に関して考えていたのですが、この ternary は「三値論理」のように繋がるのではなく、「三項」ではないでしょうか(続… "
herumiさんのツイート: "ご指摘ありがとうございます。iSUSの翻訳は三値でしたが、三項の方がよいですね。修正します…と思ったのですが、slideshareはupdateできないのでした。orz #x86opti… "
インテル® Xeon® スケーラブル・プロセッサーのインテル® AVX-512 のベクトル長の拡張機能 | iSUS
Hideyuki Tanakaさんのツイート: "SIMDはAVX512とか見てるとやっぱもう末期だよなあというか、というか、なんで長さ変えるだけで命令セット新しいの使わないと活かせないとか、これわざと最適化リソースかけさせて、x86から離れるのを惜しませているマーケなんじゃないのかとか、普通にAVX2をDual Issueでいいんちゃうのとか、謎は多い"
CPUID に AVX-512 デープラーニング用命令のフラグが追加 - 教育は参考ブログ
__int128にvpternlogdしたい - Qiita
InstLatX64さんのツイート: "#AVX512_VNNI is 1|.5 L|T… "
melancholic afternoon
InstLatX64さんのツイート: "#TigerLake/#AVX512_VP2INTERSECT extended Venn-diagram about the 19+1 levels of #AVX512 in #Intel processors The importance and significance don't correlate with the area (the number of instructions is shown in parentheses) MICs are starting to fade out....… https://t.co/al4b7Pt9wW"
SIMDプログラミング入門(AVX-512から始める編) - Qiita
AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita
herumiさんはTwitterを使っています 「指数関数expのAVX-512によるベクトル化 https://t.co/hzsvtuAreu の記事を書きました。 &gt;標準関数std::exp(float)に対する相対誤差は2e-6、速度は10倍ぐらいです。 コードはこちら。 https://t.co/qDVxSujr5K」 / Twitter
指数関数expのAVX-512によるベクトル化 - Cybozu Inside Out | サイボウズエンジニアのブログ
fmath/fmath2.hpp at master · herumi/fmath
herumiさんはTwitterを使っています 「https://t.co/OdN6YvJUxE ここで書いたやり方で実装してみました。https://t.co/y5f1T5NJMy float16個あたり5.44clk(Xeon Platinum 8280 2.70GHz)でした。@k_nitadori」 / Twitter
herumiさんはTwitterを使っています 「@k_nitadori vpermt2ps面白いですね。頭に入れときます。x∈[1,2]なら2^x={exp(x log2 /4)}^4で{}を私の記事の5次近似して1mul+5fma+2mulもありですかね。」 / Twitter
misc/two-pow.cpp at master · herumi/misc
Keigo NitadoriさんはTwitterを使っています 「@herumi ありがとうございます。 直列に依存する命令列に対してこれは速いですね。」 / Twitter
herumiさんはTwitterを使っています 「logもAVX-512で書いてみた。3D Now!時代(20年以上前!)に考えていたアルゴリズムを再実装したけど、もっとうまい方法あるのかな(あるんだろうなあ)。 https://t.co/GTDyR0p6DB」 / Twitter
melancholic afternoon

herumiさんはTwitterを使っています 「AVX-512によるlogの実装、いろいろ試したら結局素直な方法が一番よさけな感じ。試行錯誤のメモ。 https://t.co/spzgjOrIYJ」 / Twitter
fmath/log.md at master · herumi/fmath
FadisさんはTwitterを使っています 「Linus Torvalds氏が「AVX-512は苦しんで*んで欲しい」と言った事で各方面が盛り上がっている。AVX-512は512bitレジスタを用いるSIMD拡張命令で、多くのベンチマークでAVX2より高い性能を示すが、同じ拡張命令でもプロセッサによって対応がまちまちで使い辛い問題を抱える https://t.co/2Qu1ZyKVLq」 / Twitter
Linus Torvalds: "I Hope AVX512 Dies A Painful Death" - Phoronix
FadisさんはTwitterを使っています 「この発言はIntelが新しいマイクロアーキテクチャAlder LakeがAVX-512をサポートしなかったことを受けてなされたものだが、Intelは今後AVX-512対応プロセッサを作るのかについては何も明言していない」 / Twitter
てらモス♋さんはTwitterを使っています 「AVX512命令って広大なんやな…(´・ω・`) https://t.co/19nVsqxA7p」 / Twitter
Implement AVX-512 intrinsics · Issue #310 · rust-lang/stdarch
Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)👇これ見たらAVX512をよく知らない人でもリーナスのお気持ちが多少は理解できるんじゃないかな(適当)」 / Twitter
herumiさんはTwitterを使っています 「IntelのマニュアルによるとAVX-512が使えるかの判定はXCR0レジスタの5-7ビットが111を確認することになってるのだけど、macOSではオンデマンドでAVX-512を有効にする(使われるとUD例外でOSで処理して戻る)のでそのフラグを見てはいけないらしい。 https://t.co/zXGfIp6Ala」 / Twitter
fixed incorrect detection of AVX-512 on macOS by atafra · Pull Request #110 · herumi/xbyak
herumiさんはTwitterを使っています 「こういうコンテキストスイッチのコストを減らすためのテクニックをみると、2018年のLazyFPUの脆弱性を思い出す。 https://t.co/45vlGTCuhR まあ今は2020年だし大丈夫なんだろうけど。 https://t.co/40oXJDf72b」 / Twitter
LazyFP vulnerabilityの紹介
herumiさんはTwitterを使っています 「XbyakがAVX-VNNI命令に対応しました。 https://t.co/gplgSKCuFB AVX-512用のvpdpbusdなどの積和演算命令をAVX-512非サポートなCPU(Alder Lake以降)でも使えるようにした命令群です。VexEncodingを明示して利用します。アセンブラ泣かせ。こんな細切れに命令増やしてていいのだろうか。」 / Twitter
InstLatX64さんはTwitterを使っています 「GFNI_Demo.h, VBMI2_Demo.h: wrapper headers for emulating the missing byte/word shift and rot instructions with the new #AVX512 extensions (in notation of the great officedaytime site) https://t.co/yOrubv5wCT Free source: https://t.co/u7BbdTjmBt https://t.co/6QJiipRBtF https://t.co/ZrSuSV4JPJ」 / Twitter
InstLatX64さんはTwitterを使っています 「Other non-crypto use of (V)GF2P8AFFINEQB in GFNI_Demo.h: - revbit, bit-broadcast, prefix-xor bytes; - rotate, mirror, multiplication for 8x8 bit matrices; - entire register pospopcount; #SSE #AVX #AVX512 https://t.co/u7BbdTjmBt https://t.co/4CdNRQquBx」 / Twitter
InstLatX64さんはTwitterを使っています 「VPCLMULQDQ_Demo.*: experimental entire register prefix-xor operation w/ VPCLMULQDQ (ymm version for #AMD #Zen3) #SSE #AVX #AVX512 https://t.co/Ecvy2CSs1W」 / Twitter
HPC Phys-20201203
FadisさんはTwitterを使っています 「Intelの第11世代Core i9でAVX、AVX2、AVX-512を使った場合の性能の比較。AVX-512を使った場合AVX2と比較して多くのベンチマークでほんの僅かに性能が向上するが、猛烈に消費電力が増える事が示されている。えぐいケースではAVX2で180WがだったのがAVX-512で270Wに達する https://t.co/00OUE0C62w」 / Twitter
AVX / AVX2 / AVX-512 Performance + Power On Intel Rocket Lake - Phoronix
herumiさんはTwitterを使っています 「AVX-512とSVEって同じ512bit SIMDでもgatherとFMAの比率が結構違う感じ。AVX-512だとFMAで押し切った方が速い部分が、SVEだとテーブルルックアップした方がよいときがある。アルゴリズムが変わるので大変だな。」 / Twitter
或るプログラマの一生 » AVX512 による並列ハフマン符号処理
或るプログラマの一生 » AVX512 による並列ハフマン符号処理(その2)
AVX512/VBMI2: A Programmer’s Perspective
InstLatX64さんはTwitterを使っています 「https://t.co/bCv3yqMcW0 "The leaked documents show the appearance of EVEX instructions in Genoa, which are actually an AVX-512 type of instruction, indicating an AVX-512 engine in these new processors." Anyone skeptical still? #AMD #Genoa #AVX512 (EVEX is an #AVX512 encoding)」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD logo and #AVX512 on same page: https://t.co/9WhVlwKsz1 https://t.co/nN8A0UNez0」 / Twitter
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel Contributes AVX-512 Optimizations To Numpy, Yields Massive Speedups - Phoronix

/arch (x64) | Microsoft Docs
Intel AVX ‐ 通信用語の基礎知識
Intel AVX2 ‐ 通信用語の基礎知識
ホイール欲しい ハンドル欲しい » Intel AVX その3 命令
AVX-SSE 切り替えペナルティーを回避する | iSUS
インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 組込み関数の詳細
From IA-32 to avx-512
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡単な実験中。AVX2のgather命令、手元のCoffeeLakeだと十分速い。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作が不完全だった。完動したら、別段速くないというオチに。 8つのindexが別々のキャッシュラインにアクセスする場合、AVXのvgather命令を使っても、遅いものは遅いという印象。"
x86/x64 SIMD命令一覧表 (SSE~AVX2)
「GNU Binutils 2.32」リリース | OSDN Magazine
CPU命令セット“AVX-2”の活用で大幅な性能向上を果たした「EmEditor」v18.7.0 - 窓の杜
まさみさんは語りたいさんのツイート: "んー??wgetがAVX2命令実行中にsegv起こして落ちた。しかも多分終了作業中??(99%)"
まさみさんは語りたいさんのツイート: "rep stosでavx2命令を使ったメモリクリア中にdstアドレスが化けたっぽい。バグなのかどうかはまだ不明。"
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
./note122.html
yohさんはTwitterを使っています 「何かに似てるなとおもけど SIMD命令でデータ加工するやつだなこれ マァnumpyはSIMD相当だし当たり前か」 / Twitter
yohさんはTwitterを使っています 「forループ回せば(コーディングは)早いんだけど numpyのindexingやらを駆使してゴニョゴニョやっていくの 完全にパズルだなこれ」 / Twitter
cpuidでAVX2に対応しているか調べる - 睡分不足
herumiさんはTwitterを使っています 「Alder Lake, AVX-512は使えないのにAVX2でもVNNIを使えるようにしたから、Xbyakでvpdpbusdを使うときはVexEncodingを指定するという苦肉の策で対応。他のアセンブラはどうしてるのかな。 https://t.co/K5m4TY4kAJ vpdpbusd(xm0, xm1, xm2); // AVX-512 vpdpbusd(xm0, xm1, xm2, VexEncoding); // AVX2」 / Twitter
FadisさんはTwitterを使っています 「12年ぶりのメジャーバージョンアップとなるcoreutils-9.0がリリースされた話。9.0ではcp mv installがFICLONEやcopy_file_rangeを積極的に活用するようになり、wcは行数カウントにAVX2を使えるようになり、cksumはCLMUL命令を使って高速にCRCを計算できるようになる https://t.co/ZTM7L84O6N」 / Twitter
GNU Coreutils 9.0: cp Now Enables CoW By Default + Copy Offload, wc Now Uses AVX2 - Phoronix
FadisさんはTwitterを使っています 「GNU CoreutilsはLinux環境でよく使われている基本的なコマンドの詰め合わせで、dd ls mkdir cat sort date env nice sleep uptime yes等のシェルスクリプトの入門書に大抵書いてあるようなコマンドのうち結構な割合がこれに含まれている https://t.co/c9sMiKfCeF」 / Twitter
Coreutils - GNU core utilities
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ…copy_file_range(2)と。 fd に O_DIRECT を指定で OS-cache 不使用でコピーとかは、流石に無理かな。」 / Twitter
mod_poppoさんはTwitterを使っています 「AVX/AVX2による浮動小数点比較命令 https://t.co/2jsnBpKzgj O/U/Q/Sの説明がわかりづらかったからIntel SDM見に行ったけど、O/UはオペランドにNaNが来たときに何を返すか、Q/Sはオペランドにquiet NaNが来たときに例外を出すかどうか、か」 / Twitter
AVX/AVX2による浮動小数点比較命令 - Qiita

FMA

QEMU

だめぽラボ@技術書典9さんはTwitterを使っています 「Rosetta 2は浮動小数点演算の細かいところをどのぐらい正確にエミュレートしてるんだろう(x86とAArch64ではアンダーフロー例外の発生条件が微妙に違う)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUはアンダーフローの発生条件についてはしっかりやっているようだ。実行したのはこれ: https://t.co/qVwojFzUJE https://t.co/KS4iNPqJDA」 / Twitter
floating-point-test/exception.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUは fma(0, inf, nan) での例外の発生の有無がなんか変だな。アーキテクチャ的にはどうなるのが正しいんだ」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「Haswell以降の(FMA命令を持つ)Intel Macでfma関数は常にハードウェアFMAを使うようだけど、-mfmaの有無でNaNのペイロードに関する挙動が若干違うな(コンパイラーの選んだ命令とlibSystem内部で使われている命令が違うのか)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMを読んだ感じ、x86_64のFMA命令はfma(0, inf, nan)について例外を投げないのが正しいっぽい。Linux上で例外フラグを立ててるのはglibcのfma関数かな。-mfmaの他に-O2を指定すると例外を投げないようになった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「AArch64はfma(0, inf, nan)についてinvalid例外を発生させるっぽいな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754-2008のFMAは当時すでにあった実装(PowerPCとItanium)でFMA(0, ∞, NaN)の例外の有無が食い違ってたから規格ではその場合の例外の有無を定めない(実装に委ねる)ことにしたみたいな話をどこかで読んだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数こそこそ噂話!」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PowerPCはFMAのこの場合に例外を投げるっぽい。ItaniumはSDMを読んでもよくわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA4は入力と出力を合わせて4オペランドであって、入力の数的にはあくまで3項演算子なのでは(z←x+yを3項演算子と呼ぶ流儀だったらごめんなさい)」 / Twitter
富岳てるみさんはTwitterを使っています 「Intel「AVX世代のFMAは4オペランドにしよう!」 AMD「ほーん。そうやって作るわ」 Intel「(チッなんだよこいつ…) やっぱ3オペランドにするわ」 AMD「えぇ…(困惑)」 そしてFMA4という拡張は忘れられていくのじゃ…」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「そういやFMA命令は使うと丸めの出方とか変わるんだよな。そのうちいっぺん初期値鋭敏性のある挙動でどんな感じで差が出るか or 意外と安定かとか比べてみたいな。また暇な時にでも」 / Twitter
和積演算(FMA) - yohhoyの日記
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA (fused multiply-add) の話 https://t.co/34TUwDJPYJ この記事に「__builtin_fmaは最適化目的で存在するのであり、ハードウェアFMAが使用されるとは限らない」って注意書きしておいた方が良いのかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「俺もよくわかってないけど__builtin_fmaの役割は ・定数畳み込み ・ハードウェアFMAが利用可能な場合にその命令列を吐く ぐらいでいいのかな。fma(x, 1.0, y)みたいなやつをx * yに変換するようなことはあるのだろうか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ISAによっては浮動小数点数の乗算や加算専用の命令を持ってなくてFMAだけがある、みたいなやつもあるみたいだが」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そういえばFMAの記事で使ったこのコード、volatileをつけ忘れたせいで賢いコンパイラーだとコンパイル時に全部計算してしまって実行時にfma関数を呼び出さなくなるという重大な不具合があるんだよな https://t.co/csJG3TEwjG」 / Twitter
test-fma/test-fma.c at 9d656d5940478625317d9b0833a061a5a78144ef · minoki/test-fma
だめぽラボ@技術書典9さんはTwitterを使っています 「fma(x, 1.0, y) と等価なのは x + y だった。clangはこの最適化をやるけどGCCはやらなさそう」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/UJTIa6g7Qq を見た感じ、通常は__builtin_fmaとfmaは全く同じ意味で、-fno-builtinを指定した場合のみ後者に対する最適化が抑制される、という感じかな。」 / Twitter
Other Builtins (Using the GNU Compiler Collection (GCC))
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA(融合積和演算)を使ったら計算が遅くなった話 https://t.co/6aysE7vdPu これ多分命令のサイクル数(?)がどうのこうのみたいな話になるんだろうけど自分はその辺詳しくないのでコメントできない。Haswellでの結果のようだけど、違うマイクロアーキテクチャだと違う結果になりそう」 / Twitter
FMA(融合積和演算)を使ったら計算が遅くなった話 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「Ice Lake搭載Macで試したらFMA使用・不使用でほぼ同じ実行時間になった」 / Twitter
mod_poppoさんはTwitterを使っています 「FMAは浮動小数点数の乗算と加算を兼ねるので、FMAをソフトウェア実装する際は乗算の面倒くささと加算の面倒くささの両方と対峙することになる」 / Twitter

bfloat16

だめぽラボ@技術書典9さんはTwitterを使っています 「bfloat16の演算ってfloat32でエミュレートする際は掛け算が素直にできないやつか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「これ反例が作れなさそうな気がするし実は問題ない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのbfloat16の実装は非正規化数を扱わないのか。ふーむ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同人誌でbfloat16を安易に「IEEE準拠」と分類したのは早まったかなあ。少なくとも注意書きは必要」 / Twitter

AMX

FadisさんはTwitterを使っています 「Intelが新しいCPU向けの拡張命令AMXのサポートをGCCとLLVMに投げているらしい。AMXでは新しいレジスタTMM0~7が追加される。レジスタ長は1KiB(8192bit)で512bitレジスタx16行の2次元配列で1本のレジスタを構成し、このレジスタに対して行列演算を行う命令が追加される https://t.co/wPmT8V1LRH」 / Twitter
GCC Compiler Support Posted For Intel AMX - Phoronix
FadisさんはTwitterを使っています 「これBFloat16とINT8に対応してるあたりからして、ニューラルネットワークの学習に使う気満々で、要するにIntel版のTensorCoreか…」 / Twitter
herumiさんはTwitterを使っています 「XbyakにIntel AMX命令の追加pull reqが来たのだけど、TMMレジスタって何? 全然知らなかった。というか仕様が公開されたの昨日? え? https://t.co/7SmMzq2jcq」 / Twitter
Add support of Intel® AMX instruction set by nshustrov · Pull Request #95 · herumi/xbyak
herumiさんはTwitterを使っています 「Intel AMXをざっくりと読んでみた。AVXを置き換えるものではない。現状bfloat16かint8の大きな行列の積のタイリング専用演算TMUL。TMMはタイルを表すレジスタ。tileloaddで部分行列読み込み、tdpbf16psなどで行列積の足し込みをする。行列パラメータはldtilecfgで設定 https://t.co/M8N4ISlX47」 / Twitter
blog/amx.md at master · herumi/blog
Intel Advanced Matrix Extension(AMX)とは何なのか - FPGA開発日記
FadisさんはTwitterを使っています 「IntelがAMX拡張命令のサポートをLinuxカーネルに入れるべくパッチを更新している話。AMXはint8またはbfloat16を大量に並べた8本の8192bitレジスタを使って行列演算を1命令で行うIntel最新のふぁっきんクレイジー命令セット。 https://t.co/xwjgR7To5x」 / Twitter
Intel Sends Out Latest AMX Support For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「@KuniSuzaki パッチを見る限り、コンテキストスイッチする際に8KiBものレジスタを待避する領域を常に用意するのは勿体ないから、必要な時だけこのレジスタを復元できるようにする為のものっぽいです」 / Twitter
FadisさんはTwitterを使っています 「で、複雑な命令をトランジスタ数でゴリ押す最先鋭であるAMXは、コンテキストスイッチでレジスタを退避させる時に必要なメモリが大きすぎて、常にAMX分の退避領域を確保したくないって事でユーザ空間からAMXする気がある事をカーネルに伝えるシステムコールが議論されてる https://t.co/5IfjDzNq9v」 / Twitter
Intel Posts Newest Advanced Matrix Extensions Patches For Linux (AMX Patches v7) - Phoronix
FadisさんはTwitterを使っています 「AMXはIntelプロセッサに8192bitのレジスタを8本追加し、このレジスタ上を2次元配列と見做して1命令で行列演算を行う拡張命令。ALUは既存の物とは独立している。xsaveで退避するには追加で8KiBのメモリが必要、ということになる」 / Twitter
とみながたけひろさんはTwitterを使っています 「これを見て「うわーなつかしの手抜きレイジーコンテキストスイッチや!俺も書いたことある!」などと思うロートル」 / Twitter
とみながたけひろさんはTwitterを使っています 「たかだか512byteのコンテキストやったんやけど当時としてはでかかったので、スレッド作るときとかにこの命令使うぞと指定しないと未定義命令例外で落とす(そこで自発的に使用可能にはしない)、とかしてた。未定義命令ハンドラでメモリ確保して〜、も出来るのだけど、間違って使うのを防ぐため」 / Twitter
とみながたけひろさんはTwitterを使っています 「なおすごく真面目な、多重ネストできる割り込みハンドラでもFPU使えるっていうレイジーコンテキストスイッチも実装したことがある。なかなか辛かったがストレージ読み込み性能とかで1割以上は稼げたので嬉しかった記憶 今じゃみんな何でもSSE使うから意味が殆どないよなー」 / Twitter

四倍精度

てくのたのしーさんはTwitterを使っています 「ところでi128やu128はあるのにf128が無いのはなんで?」 / Twitter
白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「binary128がまともにハードウェアサポートされてるアーキテクチャあるんです?」 / Twitter
てらモス♋️さんはTwitterを使っています 「POWER9…(´・ω・`)?」 / Twitter
てらモス♋️さんはTwitterを使っています 「Power9+V100構成であるSummit他のユーザー氏〜(´・ω・`)」 / Twitter
電子計算機の沼さんはTwitterを使っています 「これはdouble-double precisionの方で,IBMは昔コンパイラに入れてた. ただ,この方式はIEEE 754-2008で正式に4倍精度が策定されてからは4倍精度と名乗れなくなったので現在は区別してdouble-double型とかいう. ただPower9はちゃんとIEEE754-2008の4倍精度のはず」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「あー、コンパイラ側がソフトウェア実装としてサポートしてたのとアーキテクチャがネイティブでサポートしてたのが両方とも 128 bit だけど内容が別みたいな感じなのか」 / Twitter
The saga of the Power ISA 128-bit long double
電子計算機の沼さんはTwitterを使っています 「あっ!こんなところに4倍精度の関連研究に詳しい論文が!! https://t.co/8Hwo1sXcsH」 / Twitter
SIMD演算を用いた高精度疎行列計算ソフトウェアの高速化 , hpc::numa.blog()
電子計算機の沼さんはTwitterを使っています 「IBMのやつ https://t.co/iBcLaUKLTa」 / Twitter
電子計算機の沼さんはTwitterを使っています 「IBM方式とか言ってるのは倍精度2つ使って,指数部をずらして長い桁を表現する.仮数部は2倍,指数部は変わらない. 指数部を増やそうと思うと表現範囲を増やさないといけないので作るのが大変だけど,仮数部を増やすだけなら指数部を15桁分ずらして誤差を拾えばいいから簡単」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「The saga of the Power ISA 128-bit long double https://t.co/drW8AOY1P4 ㍂」 / Twitter
C言語で四倍精度浮動小数点数 (binary128) を使う - Qiita
うわの空さんはTwitterを使っています 「@mod_poppo @Qiita FYI ですが最近 icc 周りのパッケージの名称が変わって、ついでに無料で手に入るようになったようです: https://t.co/LwB9eZ41gC」 / Twitter
Intel® oneAPI Toolkits

blog

-OfastはNaNチェックを無効化する - in neuro
エラーフリー変換の紹介 および FastTwoSum アルゴリズム の紹介と証明 -- glibc のコードを読むための参考に -- - 小清水さんとコンピューター数学
作る側の気持ちで理解する浮動小数点数 - in neuro
QEMUはどのように浮動小数点命令をエミュレートしているのか - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の検討) - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の実装) - FPGA開発日記
Binary Translation型エミュレータを作る(softfloatクレートの実装変更) - FPGA開発日記
複素関数記述DSLについて | 雑記帳
文字列から浮動小数点数に変換する、なるべく速く - toge's diary
複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる - cvl-robot's diary
非数と無限大のメモ | 可音月堂
浮動小数点数の等値判定 - fujieda's tech blog
作って理解する浮動小数点数① 基本編 - in neuro
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「やっぱこういうの苦しむのを避けるためにも浮動小数点数はなるべく控えた方がいいわね / 1件のコメント https://t.co/LMV8c8RDnx “小数第四位までの小数を10000倍して整数に直せるのか - 北海道苫小牧市出身の初老PGが書くブログ” https://t.co/8HZGbj0Id5」 / Twitter
小数第四位までの小数を10000倍して整数に直せるのか - 北海道苫小牧市出身の初老PGが書くブログ

Wikipedia

浮動小数点数 - Wikipedia
Floating-point arithmetic - Wikipedia
NaN - Wikipedia
NaN - Wikipedia
IEEE 754 - Wikipedia
IEEE 754 - Wikipedia
IEEE 754における負のゼロ - Wikipedia

Qiita

娘に分かりやすく浮動小数を教えるシナリオ - Qiita
long doubleと拡張倍精度浮動小数点数フォーマット - Qiita
0.1は浮動小数点で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
浮動小数点数の min / max - Qiita
浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
浮動小数点数の16進表記 - Qiita
理想の浮動小数点数である「浜田のURR」を理解する - Qiita
Javaの strictfp が実際に意味を持つ環境を用意する - Qiita
ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
Haskell/GHCでの浮動小数点数の扱い - Qiita
yohさんはTwitterを使っています 「float型では123456789すらも表現できない話 - Qiita https://t.co/BnYlrG6cgK IEEE Binary32だと FLT_DIG==6 だよなと思ったら https://t.co/Wc697GXaD0 また小難しそうな話が」 / Twitter
float型では123456789すらも表現できない話 - Qiita
C++ `digits10` is 6 for IEEE float, but the first non-representable integer already has 8 digits? - Stack Overflow
閲覧者のユーザーエージェントを三角関数で判定可能か? - Qiita
mod_poppoさんはTwitterを使っています 「浮動小数点数の比較についての記事が要るのではないか」 / Twitter
mod_poppoさんはTwitterを使っています 「引数がNaNの場合の返り値と例外発生について」 / Twitter
浮動小数点数の比較について - Qiita

Twitter

その他

環境依存

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点演算の結果が環境依存なのはどんなとき?」みたいな記事を書こうと思ってまだ書いてない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「まずlong doubleは環境依存。sinとかexpとかの数学関数も環境依存。コンパイラーの最適化で結果が変わるやつが有効になっていると環境依存。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同じバイナリーの実行したときの結果は同じか?実行時にcpuidとかを見て使う命令を変えていると環境依存。コア数とかを見て結合法則に頼りつつ並列度合いを変えていると環境依存。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同じ命令列が実行されたときの結果は同じか?一部のCPU命令は近似値を返すので、CPUによって結果が違うかもしれない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「みたいな内容を膨らませて例も挙げつつ論じる記事にしたい。」 / Twitter

Rust

熨斗袋さんはTwitterを使っています 「Rust で最近困ったこと f64 に入ってる正の数を切り上げて i64 にしたいんだけど、ceil して cast するときに誤差で -1e-10 されてたら floor になっちゃうし +0.5 して cast するのもなんか違うよなという感じでもやもや」 / Twitter
熨斗袋さんはTwitterを使っています 「多分 ceil したときに内部表現が整数になる保証があると思うんだけど記述見つからないし、そういうのに頼りたくない気持ちがある」 / Twitter
熨斗袋さんはTwitterを使っています 「@TumoiYorozu 例えば元の値が 1.5 だとして、ceil して 1.9999 になって cast したら 1 になりました、は嫌じゃないですか? 浮動小数点数の内部表現と密に関わりたくないというか、うまく説明できないのですが」 / Twitter
百千万億 萬さんはTwitterを使っています 「@noshi91 要するに ceil で得られる数に,小数点以下の情報がない保証が見当たらないって話ね.まぁ回路的に小数点以下を切り捨てる回路は難易度低そうだし,信じていい気がするけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通の浮動小数点形式では(少なくとも、IEEEで規定されているようなものは)、「ある浮動小数点数の両隣の整数」はその形式で厳密に表現できるので、floorやceilは(入力が正確だとして)正確な結果を返す」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点型を経由せずにfloorやceilを計算するにはC言語なら丸めモードを変更した上でlrint/llrintを呼び出すという手があるが、普通はそこまでしない」 / Twitter
kashiさんはTwitterを使っています 「@mod_poppo 細かいことですが、「ある*整数でない*浮動小数点数の両隣の整数」ですかね。浮動小数点数xが整数であった場合は、(floorやceilはそのまま返せばいいですが) 両隣の整数が表現できないことはよくあると思います。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@mkashi おっしゃる通りです(細かいので端折ってしまいました)」 / Twitter
かにかまさんはTwitterを使っています 「浮動小数点って全順序集合だと思ってたけど、NaNがある言語だともしかして前順序ですらないのか…?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko そうっすよ。その辺考慮してRustではPartialOrdというtraitのインスタンスになっています」 / Twitter
かにかまさんはTwitterを使っています 「@igrep おー、まさに半順序的なtraitがあるんですね。i32は比較可能だからOrdなのか。面白いですね。」 / Twitter

Java

Takahiro YAMADAさんはTwitterを使っています 「浮動小数点演算でstrictfpがデフォルトになると。(Java 1.2時代と同様に戻る意味でRestoreなのかな) 昔(1990年代)のCPUだと厳密な演算はオーバーヘッドがかかってたが、Pentium 4(懐かしい)以降のSSE2だと特に問題ないのが理由とか。この辺りは正直あまり気にしたことがなかった。」 / Twitter
OpenJDKさんはTwitterを使っています 「Proposed to target JDK 17: JEP 306: Restore Always-Strict Floating-Point Semantics: https://t.co/ppADvu1gRq #jdk17 #openjdk #java」 / Twitter
JEP 306: Restore Always-Strict Floating-Point Semantics

Itanium

だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる https://t.co/2V9Ga4l1NX」 / Twitter
IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumには浮動小数点数の除算や平方根の命令がないのマジかーと思った(近似値の命令とFMAでソフトウェア実装するらしい)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを調べてみると、浮動小数点数レジスターの内部形式がx87より指数部が2ビット多い82ビットらしくて、なかなか変態的だ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを見るとかなり変態的というか尖った設計になっているようだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「加算・乗算専用の命令はFMAがあれば要らない(加算での符号付きの0の扱いは一部のレジスターを特別扱いして対処する)」「除算と平方根は近似命令だけ用意して正確な値は複数の命令を組み合わせて頑張ってもらう」「浮動小数点数レジスターの指数部の幅はx87の15ビットから2ビット増やす」」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「x87と違ってbinary32やbinary64の本来の指数部の範囲で計算することができる」「FPSRの一部のフィールドは複数通り用意しておくことができて、命令ごとにどれを使うか選択できる」」 / Twitter

倍精度

hrk先生さんはTwitterを使っています 「これに関する研究は太古の昔からたくさんあり、多くの計算は短精度で十分だが、データ依存で事前に見分けるのがむずかしいから全部倍精度というのが現状だと思います。まあ、電気代の無駄ですね。」 / Twitter
Yuki NagaiさんはTwitterを使っています 「なぜ物理の計算は倍精度計算で行われているのだろう?実は単精度でも問題ないとかないのかな」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys 最終結果は単精度で良いとしても、計算の途中で容易に精度が落ちますね。例えば、条件数が10^3程度の「良条件」の逆問題を解くと、有効桁数が3桁落ちるので、単精度だと残り2桁。」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys あとは、sumをとる変数を単精度にすると誤差が徐々に蓄積とか。精度落ちが伝搬しないように、単精度を使えるところを探す必要がありそうです。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@Prof_hrk 今時はSIMDベクトル演算器が沢山並んでるから、単精度の演算器を2個使って倍精度、…n個使って多倍長精度、ってできないかと悩んでるが現状ソフトでやった方が現実的なのが悔しい。」 / Twitter

桁落ち

だめぽラボ@技術書典9さんはTwitterを使っています 「桁落ち、誤差が発生するとしたら引き算そのものではなくその前にすでに発生してるんだよな」 / Twitter
kashiさんはTwitterを使っています 「この話、なかなか伝わりにくい。近い数同士の引き算は桁落ちが起きるとか言って脅されるのでヤバい演算みたいな先入観があるけど、近い数同士の引き算はむしろまったく誤差が発生しないことが知られています。 https://t.co/XnOJLsxbui」 / Twitter
kashiさんはTwitterを使っています 「これなあ。0.28-0.27が0.01にならないみたいな例で浮動小数点演算に誤差が入ることを説明してるけど、それ、0.28や0.27を浮動小数点数に変換するときの誤差が100%で、減算では「全く」誤差は入っていないんだが、例として適切なのかな。 https://t.co/5cJiSzV9ve」 / Twitter
個人的な感想さんはTwitterを使っています 「高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア #note https://t.co/VV4AJwlfeT」 / Twitter
高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア|note
kashiさんはTwitterを使っています 「どのくらい近いと無誤差になるかというと、浮動小数点数a,bが同符号で絶対値の差が2倍以内、すなわち|b|≦|a|≦2|b|であれば、a-bの計算に誤差は入りません。例えば199-99.5みたいな、3桁で差が2倍以内の引き算は、必ず答えが3桁以内になります。200-99.5=100.5みたいに2倍以上開いていると反例が。」 / Twitter
kashiさんはTwitterを使っています 「この性質は、twosumみたいな変換が無誤差になるために重要な役割を果たしています。」 / Twitter
kashiさんはTwitterを使っています 「せっかくなんでもう少し補足。浮動小数点演算で絶対値の差が2倍以内の引き算が無誤差になるという性質、厳密に言うとアンダーフローで指数部が下限を突破してしまうと成り立たないんだけど、IEEE754では非正規化数があるためこの破綻は決して発生しない。ここまで考えてたとしたらKahan先生すごい。」 / Twitter

誤差

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数で演算結果の真の値がその形式で表現できないこと」と「真の値に最も近い浮動小数点数(または、正しく丸めた値)とは異なる値が返ってくること」を(単に「誤差」と一括にするのではなく)区別して指す言葉があると嬉しいような気がするし、そんなに嬉しくない気もする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「前者は「丸め誤差」では?」 / Twitter
Miura HidekiさんはTwitterを使っています 「広い意味で量子化誤差じゃないかなーって思うけどどうだろう?」 / Twitter
zakkiさんはTwitterを使っています 「前者は量子化誤差で、後者は近似計算誤差?後者はなんか違う気がする。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数を正しく恐れる」ようになるにはどのぐらいの知識があればいいのかなあ。実装のバグまで考慮すると「この演算(のソフトウェア実装)はバグっている可能性が無視できない程度に存在する(例:FMA)」みたいな知識も要る」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「例えば数学関数のsinは多くの環境では「真の値に最も近い浮動小数点数が返ってくる保証はない」わけですが、sinを呼ぶ側からすると関数呼び出しを一回しているだけなので「累積」とは呼びたくないんですよね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「結局前者が累積して後者になるのが本当の問題なので両方とも「誤差」でいいと思っている どうしても区別したいときは前者を「丸めたときの誤差」、後者を「累積した誤差」と呼ぶかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「無限級数や積分で表される関数を有限和で近似するときは丸めによる誤差以外に「打ち切り誤差」みたいなやつも出てくるから「和を計算する際に丸め誤差が累積するから最終結果に誤差が出る」という考え方は正しくない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754のレベルではそうなんですが、C言語では(Annex Fの下であっても)sinがIEEE準拠であることは要請していないので、その辺に転がっているsin関数がIEEE準拠とは期待できないのですよね」 / Twitter
たいやき🥐さんはTwitterを使っています 「あんまり詳しくないんですけど,IEEE 754 で sin は correctly rounded であるべき(shall)とされているので,それなりに多くの環境で期待通りの答えが得られたりしないんでしょうか. https://t.co/gTBxb6gYtH」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数での三角関数の実装、初手「入力をπで割った余りを計算する」みたいなことをすると思うんだけど、πは有限桁の浮動小数点数では表現できないし、多倍長に頼らずに正確にやるのは辛そう」 / Twitter
電子計算機の沼さんはTwitterを使っています 「職場のTさん「あれ?マシンを変えたら精度が悪くなったな」 沼にひきずりこむオタク「現行のほとんどのアーキテクチャはIEEE 754-2008のbinary64に準拠した演算器なのでマシン実装のせいではなく並列度が変わったことによる演算順序の違いが丸め誤差に影響をしているんじゃないでしょうか例えば..」」 / Twitter

libmのsinの実装が正しく丸めた値からどのくらい乖離しているか判定

だめぽラボ@技術書典9さんはTwitterを使っています 「libmのsinの実装が正しい値(正しく丸めた値)からどのくらい乖離しているか判定するコードを書いている(「正しい値」はMPFRで計算する)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「2^nの形の入力に対し、macOSのlibSystemは概ね真の値の1ulp以内の値を返すが、1ulp以上離れるケースもちょいちょいある。AArch64でのglibcはほとんどのケースで正しく丸めるが、0x1p25と0x1p938に対しては1ulp以内のズレがある。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ソースはこれ(書き殴りなので雑) https://t.co/SgltkVNV18」 / Twitter
libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
だめぽラボ@技術書典9さんはTwitterを使っています 「実行環境にMPFRを要求するのはアレなので値をソースコードに埋め込む形にしたいが、そういうのは時間ができたらだな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いくつかの環境でlibmのsin関数の精度をチェックしてみた結果をGitHubに上げた: https://t.co/Tuv6dMZDhg」 / Twitter
minoki/math-func-test
だめぽラボ@技術書典9さんはTwitterを使っています 「使用したlibcのバージョンとかも明記した方が良いのだろうけど、そういうのは追々」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptの数学関数の精度を検証(ブラウザー間での差異の比較)するのも同じ要領でできそうだけど、JavaScriptには十六進浮動小数点数リテラルがないのでアレ。十進リテラルで埋め込むか、文字列として埋め込んで手動でパースするか、あるいは53ビット整数と2の冪の積の形で埋め込むか。」 / Twitter

平方根

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の平方根をソフトウェア的に正確に(正しい丸めで)計算したいんだけどどういうアルゴリズムがいいのかね。ジェネリックな関数として書きたいので、反復の回数とかは決め打ちできない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「多倍長整数や有理数は使って良いものとする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「有理数の平方根を連分数表示するコードは書いてみたけど、結局何らかの方法で整数の平方根(のfloor)を別途計算する必要があるから、にゃーん」 / Twitter

ECMAScriptのMath.powや**演算子

だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptのMath.powや**演算子って 2**n (nは整数)に対して正確な値を返す保証がないな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語もpowについてのそういう保証はないけど、C言語にはldexpとかscalbnとかがあるからなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで正確に2の冪乗を計算したいなら Number(2n ** BigInt(n)) が一つのやり方としてあり得そう(BigIntからNumberへは正しく丸められる保証がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで十進小数リテラルは20桁以内なら正確に丸められることが保証されてる感じか?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数を書くの、初手ArrayBuffer/DataView経由でビット列に変換するのが一番手っ取り早いな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数、ざっくりこんな感じかな。表記のスタイルはいろいろカスタマイズの余地があるけど https://t.co/BxD5qWwVUi」 / Twitter

シンタックスハイライト

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数関連のコードや記事を書いてると、各所のシンタックスハイライターが浮動小数点数の十六進リテラルに対応してなくてにゃーんという気持ちになる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaもGitHubも対応してない。VSCodeは単体のソースファイル表示時とMarkdown中のソースで違ったかもしれない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「セルフ先行研究 https://t.co/XalT9ePP6d」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのC言語のシンタックスハイライト、16進浮動小数点数リテラルに対応してない気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのシンタックスハイライトはRougeというやつを使っているらしい https://t.co/OqJiiVnYPy」 / Twitter
Qiitaでシンタックスハイライト可能な言語一覧 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdown中のCのシンタックスハイライトも16進浮動小数点数リテラルに対応してないっぽい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdownプレビューのMarkdown処理にはmarkdown-itが使われていて、他の言語のシンタックスハイライトにはhighlight.jsが使われているという感じかな https://t.co/YYn0bGh6rm」 / Twitter
vscode/package.json at 9bd54c15ae0c2017f4ea251e9eb9a88fb38d62c9 · microsoft/vscode

ゼロ除算ができる数、輪

だめぽラボ@技術書典9さんはTwitterを使っています 「ゼロ除算ができる数、輪を実装してみたので解説 https://t.co/4uImnCh1ns #Qiita wheelを考える動機付けがこの記事だけだと弱い気がする(元ネタの文書では代数幾何への応用を考えてる感じ?)。」 / Twitter
ゼロ除算ができる数、輪を実装してみたので解説 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「あと、元ネタの文書によると「wheel ⨀」の由来は「実射影直線(円と同相)に1点を付け加えたように見えるから」らしいけど、この記事だとその辺ちょっと誤解がある気がする。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の「正負の無限大を同一視」「NaN同士は等しい」とするとwheelっぽくなるんかな」 / Twitter

構成的な環論

だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellのNum周りの型クラス階層がアレなのは事実だけど、Monoid =&gt; Semiringは良くないでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「(+)についてのMonoidインスタンス」と「(*)についてのMonoidインスタンス」を独立に扱えるような言語機能を作るか、通常のMonoidの他に「AdditiveMonoid」「MultiplicativeMonoid」みたいなクラスをそれぞれ用意するか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PureScriptの階層はメソッドのデフォルト定義がなくてnegateがzero - xと定義されているのが浮動小数点数的に良くないのと、あとはまあアーベル群みたいなやつは想定してないみたいで加法と乗法が分かれてない。あと除算周りもこれはどうかなあという仕様があった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いろんな環をうまく型クラス階層として定式化するには環論、それも普通のPIDとか言ってる方じゃなくて構成的な理論を勉強する必要がある」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「誰かが考えた数の型クラス階層は大抵他の人には満足のいくものではないので、満足のいくものが欲しかったら再発明上等というスタンスでやっていくしかない」 / Twitter

乗算のMitchellの対数乗算の近似

Shiro KawaiさんはTwitterを使っています 「これは賢い。仮数部からのオーバーフローも指数部に+1することになるからオーダーは合う。指数部のオーバーフローはバイアス引く時にキャンセルされる。ただ加算後の指数部が127以下だとまずくないってのと、int加算のオーバーフローってUDじゃなかったっけ?」 / Twitter
Dan KogaiさんはTwitterを使っています 「なるほど。すでに符号と仮数以外は対数表現になっているので足せば掛け算になる。計算尺の原理。符号もintならMSBの位置にあるので-×-はオーバーフローして+」 / Twitter
nikqさんはTwitterを使っています 「へええええ~~~!IEEE754をintにキャストして加算すると、乗算のMitchellの対数乗算の近似になるのか…」 / Twitter
Ikemen Mas KotさんはTwitterを使っています 「Deep Neural Network Training without Multiplications https://t.co/ow0HlEh6mt #maskotlib」 / Twitter
[2012.03458] Deep Neural Network Training without Multiplications
nikqさんはTwitterを使っています 「Cost-Efficient Approximate Log Multipliers for Convolutional Neural Networks https://t.co/fWa9qcqJ9n より、Fig2.1 https://t.co/eKr0seAUJ3」 / Twitter
Dan KogaiさんはTwitterを使っています 「@anohana intオーバーフローは例外で落とす処理系も確かにあって、例えばSwiftの整数演算はそう(オーバーフロー通す演算は&amp;+とか&amp;*とか&amp;を頭に付けたのが別に用意)。けどオーバーフローを全く通せない処理系もまた見かけないし、整数キャストの理由自体MLの高速化なので指数は十分足りてると見立てたのでは?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@dankogai 論文には明記されてなかったと思うけど(見落としたかも)指数範囲は前処理とかで別途対処でしょうかね。signed intのオーバーフローがUDというのは論文にC++コードがあったからだけど、実装はC++である必要は確かにないですね。」 / Twitter

machine epsilon

ドッグさんはTwitterを使っています 「浮動小数点数の比較のマージンに machine epsilon を使う (abs(a - b) &lt; epsilon) のを推奨するのは良くないのではという話 https://t.co/o2znSYgCMg」 / Twitter
EPSILON is a bad error margin and should not be recommended [float_cmp] · Issue #6816 · rust-lang/rust-clippy
ドッグさんはTwitterを使っています 「そもそも浮動小数点数の精度は値に依存するので abs(a - b) &lt; delta の delta に常にフィットする値が存在しないのはそれはそうだと思う.下手すると machine epsilon が何なのかすら分かってないケースとかもありそう」 / Twitter

加法の単位元

Masaki HaraさんはTwitterを使っています 「Q. 加法の単位元としてふさわしいのはどちらでしょう? (JSに限らずIEEE754を使う処理系に共通の話として) https://t.co/gIo9DEdFrV」 / Twitter
Masaki HaraさんはTwitterを使っています 「というか (+0.0) + (-0.0) が +0.0 なのが良くなくて実は(IEEE754策定時に) -0.0 とするべきだったという可能性はないだろうか。整数も 0b10000000 を 128 とするよりも -128 にするほうが合理的だったりするしありえない話ではない気がする。」 / Twitter
Masaki HaraさんはTwitterを使っています 「そうすると各処理系のsumの実装が気になるな。Rustは0.0スタートだった。 https://t.co/kjLhDTkMmy」 / Twitter
Rust Playground
Masaki HaraさんはTwitterを使っています 「@TETUONE100416 「浮動小数点数は実数のようで実数ではない」ということですね。その心構えは重要ですが、ここではそれは当然の前提とした上で浮動小数点数の浮動小数点数としての代数的な性質について議論しています。」 / Twitter
mod_poppoさんはTwitterを使っています 「丸め方法がroundTowardNegativeかそれ以外かで変わるやつだ」 / Twitter
mod_poppoさんはTwitterを使っています 「GHC の Num Float / Num Double のインスタンスのドキュメントに「0.0+(-0.0)=0.0 なので Float は加法に関する単位元を持たない」と書かれてるんだけど、実際のところ最近接丸めの下では -0.0 が加法の単位元として振る舞うんだよね https://t.co/wXODVugHIC」 / Twitter
mod_poppoさんはTwitterを使っています 「(例によって signaling NaN は無視する)」 / Twitter
mod_poppoさんはTwitterを使っています 「丸めモードが変化しうる状況では -0.0 が単位元とはならない場合がある(-∞方向の丸めの場合は 0.0+(-0.0)=-0.0 となる)けど、純粋関数型言語であるHaskellから見えるところで丸めモードを変化させるのは悪手だろう」 / Twitter

histric

histric-1

taklさんのツイート: "#tcfm 19 11:58~ レジスタウィンドウみたいなものが廃れたのは、レジスタ割当技術が進歩してコンパイラにやらせた方がいいということになったから、という説明をどこかで聞いた記憶があります。"
Miura Hidekiさんのツイート: "https://t.co/ha96GdyoRl #tcfm 大変面白かったのだけど、IBMのマシンをもって昔はスタックが無かったというのだけはもやもやした。バローズのスタックマシンとかもあったわけなので"
Toru Hisaiさんのツイート: "そういえば昔 GDC で聞いた講演で、C++ の最も素晴らしい機能はデストラクタで、なぜならそれは決定論的だから、というのを思い出した。 https://t.co/wjnrpFTKT8 ここの「The Beauty of Destruction」という講演。 https://t.co/QpeC1gj3XG #tcfm"
Kazuho Okuさんのツイート: "そもそもIEEE754は実用上の理由に基づいたもので気持ち悪いところはいろいろあるよね。小さい数の場合はだんだん精度が悪くなってくけど、大きい数の場合はいきなり無限大に切り替わるとか"
Ryou Ezoeさんのツイート: "入門書に書く浮動小数点数の詳細、IEEE-754がデファクトスタンダードなので解説するとしても、完全に詳細にはやらないかな。"
Ryou Ezoeさんのツイート: "符号ビット、仮数部、指数部、+0.0と-0.0、+∞と-∞、2種類のNaNぐらいで十分だが、正直NaNはQuiet NaNだけで十分かもしれない。"
Shiro Kawaiさんのツイート: "NaNはNaNでありNaN以上でも以下でもない! gosh> (list (nan? +nan.0) (>= +nan.0 +nan.0) (<= +nan.0 +nan.0)) (#t #f #f) だがNaNでもない! gosh> (= +nan.0 +nan.0) #f… https://t.co/zpKbzMG9jI"
Shiro Kawaiさんのツイート: "おお、丸めモードの違いが目に見える形で現れたケースとして興味深い。… "
小学ニ年生 別冊付録さんのツイート: "#tcfm 向きの話題だ https://t.co/TVGQAngDEe"
なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
Ryou Ezoeさんのツイート: "16bit浮動小数点数型、機械学習用途以前は、HDR用途に使われていた経緯がある。"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
x86/x64における小数から整数への丸め処理命令の変遷 - Cybozu Inside Out | サイボウズエンジニアのブログ
Fadisさんのツイート: "浮動小数点数から整数への変換はC言語の場合C11 §6.3.1.4.1でゼロに近づける方向にtrancate、C++の場合C++17 §7.10.1で小数部を破棄するのと同義になるようにtrancate(つまりC言語と同じ)、という風に定められてるよ"
Fadisさんのツイート: "ただし浮動小数点数から元の値をそのまま表現できない浮動小数点数への変換を行う場合、近傍の2つの表現可能な値のうちどちらをとるかは実装が決めて良い事になっている(つまりどちらかになる事をプログラマは期待してはいけない) C++17 §7.9.1"
Fadisさんのツイート: "Intelが将来のプロセッサで利用可能になる新しい浮動小数点数フォーマットBF16を公開した。BF16は既にある半精度浮動小数点数FP16と異なり、指数部8bit仮数部7bitになっている。Intel曰く、このくらいの方がディープラーニングにおける学習で欲しい範囲に合うらしい https://t.co/tTPfqMCXLa"
Intel Publishes Whitepaper On New BFloat16 Floating-Point Format For Future CPUs - Phoronix
Tsukasa #01 [要出典]さんのツイート: "参考までに、BF16 (bfloat16) は Google TPU (v2 以降) の演算形式で、かつ binary32 (IEEE single) の上位 16 ビットを切り取ったものです。――というか何故今ニュース記事になってるんだろう。 https://t.co/6h3XyUQMWj… https://t.co/h9aws20YxD"
bfloat16 floating-point format - Wikipedia
Tsukasa #01 [要出典]さんのツイート: "NVIDIA は単純な (tensor core で使用できる) IEEE FP16 (half) だと勾配消失を起こして学習が進まないことがあることを指摘しており、学習時のロスを大きくすることでこれを防ぐ手法を必要に応じて推奨している。BF16 は精度の代わりに表現範囲を増しており、この手法の必要性を低くする……のかな。"
島鉄雄さんのツイート: "浮動小数点も2進数で計算されてて ︙ 2^2 = 4 2^1 = 2 2^0 = 1 2^-1 = 0.5 2^-2 = 0.25 2^-3 = 0.125 ︙ 少数の方はどう頑張っても2のマイナスべき乗の組み合わせじゃ表現できない10進数が出てくる 0.1 をどうやって表現するか?小さい数を足していけばいいけど、小さくするにもビット数に限界がある… https://t.co/nsR9P1U0Gy"
mはげさんのツイート: "誤差の原因は2つです。実は2つ目の方が支配的です。 また2つめは多め少な目どちらも起こりえます。 1. 10進数を2進数の32bit浮動小数点に変換した際の丸め誤差(表現誤差) 2. 大きい数(今までの合計)と小さい数(これから足す数)の足し算時の桁落ち誤差… "
Hisaki Oharaさんのツイート: "bfloat16 (指数部が単精度と同じ8-bit) のwhite paperが出ていた (PDF) https://t.co/JzKq5iRGAR"
bfloat16 - Hardware Numerics Definition

histric-2

Masaki Haraさんのツイート: "https://t.co/4hmu15zgrv Rustのpowfは1.0のNaN乗を1.0とするが、これはIEEE754のpowではないもののPOSIXのpowf(3)の規定には準拠しているらしい。そういうこともあるのか。"
powf for NaN returns 1 · Issue #60468 · rust-lang/rust
Shirouzu Hiroaki(白水啓章)さんのツイート: "Rubyにはこんな節約技が使われているのね。 (ちなみに「仮数部がすべて 1 の場合に NaN」というのは、「指数部」の誤記ではないかしらん?) ---- NaN Boxingというテクニックを知った - 不確定特異点 https://t.co/xQOhkVc076"
NaN Boxingというテクニックを知った - 不確定特異点
Fadisさんのツイート: "IEEE754の-0とかbitwiseで異なるNaN、浮動小数点数の山の中に別の情報を埋め込むのに使えるから数値計算系のデバッグで稀に役に立つ"
島鉄雄さんはTwitterを使っています: 「NaN === NaN //falseはそれでいいと思うけど? Cでも(というか機械語レベルで)nan == nan =&gt; 0となる。 逆にd !== dがtrueになる時はdがNaNになっていると判定出来る。(昔のCにはisnan()が無かったからd != dと判定した) NaNになった時にトラップ出来ない環境だと、NaNのデバッグは地獄だけどねw https://t.co/Nm3xh5tNlx」 / Twitter
島鉄雄さんはTwitterを使っています: 「言語の実装でセルフホストにしたい時に、最難関な部分が浮動小数点の入出力だと思われる。 例えば 123456789012345678901234567890123456789012345678901234567890.0 を読み込んで 1.2345678901234567e+59 と出力して、それを更に読み込んだ時に内部でビットレベルで一致している事が求められる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています: 「C で普通にやると strtod() と printf() を使う事になるけど、printf() は正しい値を出力せずに、指定した桁か暗黙に決められてる桁数(6とか)しか出力しないから、入力⇔出力でビットレベルで一致させる事が常に出来ない(たまたま合う事はある)。 Emacs Lisp の場合はどうしてるかというと、」 / Twitter
島鉄雄さんはTwitterを使っています: 「出力にgnulibのdtoastr()を呼び出しているけど、それは内部で 1.snprintf() を少ない桁数で文字列化 2.それを strtod() で読み込む 3.ビットレベルで一致しているか判定 4.一致してれば出力、してなければ桁数を増やして1へ と涙ぐましい努力をしているw セルフホスト用に自前実装する場合は」 / Twitter
島鉄雄さんはTwitterを使っています: 「入力:AlgorithmM,AlgorithmR,Bellerophon 出力:Dragon4 あたりのアルゴリズムを使うけど、Mは簡単に理解出来るけど、それ以外はボヤっとしか理解出来ないw 特にDragon4は公開されてる実装が世の中に3つしか無いから俺が実装したよってサイトから拝借したw それでうまく行った 長文失礼しました」 / Twitter
島鉄雄さんはTwitterを使っています: 「リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double) を Gist に登録しました。 C言語で正確な浮動小数を出力するには、こんな感じにすればいいよというサンプルコードです。」 / Twitter
島鉄雄さんはTwitterを使っています: 「URLを忘れた… https://t.co/kJrYHVh2l5」 / Twitter
リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double)
島鉄雄さんはTwitterを使っています 「JavaScirpt は数字は全て倍精度浮動小数で何だこれwと思ったけど、よく考えたら、普通の言語だと(i: 整数, f: 浮動小数) i + i, i + f, f + i, f + f の4通りを割り出す条件分岐が必要だけど、JavaScirpt は f + f の1通りで良い。 条件分岐が要らないからインタプリタ実行が高速になる。 天才だろ!」 / Twitter
島鉄雄さんはTwitterを使っています 「CPU レベルで考えたら、整数演算を倍精度演算器で実行するとか有り得ないけど、昔の CPU が非力でしかもインタプリタ実行しか無い時は、少しでも高速に実行したい訳だから、良く考えられた仕様だった。 という事に今気付いた。」 / Twitter
κeenさんはTwitterを使っています 「Rustは浮動小数点数をMapのキーに出来ないように作られてる https://t.co/1Nnq6ZUDkv」 / Twitter
ぽけばさんはTwitterを使っています 「はてなブログに投稿しました NaNとMap - pocketberserkerの爆走 https://t.co/sHSLwGKffR」 / Twitter
NaNとMap - pocketberserkerの爆走
くいなちゃんさんはTwitterを使っています 「整数と浮動小数点数では、メモリ上の配置が全然違うため、整数をむりやり浮動小数点数として読むと 値が大きく変わってしまいます。 逆にこれを活用して、ビットが0の個数を瞬時に数えたり、平方根を瞬時に求める方法が編み出されたりしていて、こわい黒魔術がたくさんあるのです…。」 / Twitter
TokusiNさんはTwitterを使っています 「@kuina_ch 整数浮動小数点の変換回路をlog2の計算に使うのは実際にやったことがある・・・」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「浮動小数点の謎テクニックだと、こんなのも。 ---- 「IEEE 754形式では、float a, b が与えられたとき、a&gt;b&gt;0なら*(int*)&amp;a&gt;*(int*)&amp;bとなる」 https://t.co/96ewE7pAaT https://t.co/ve2f0VfUSF」 / Twitter
基数ソート - Wikipedia
Hideyuki TanakaさんはTwitterを使っています 「あとsqrtの丸め方向調べたいなら、printfで%gで表示するんじゃなくて%aで表示すべきじゃないんですかね…」 / Twitter

histric-3

だめぽラボ@技術書典9さんはTwitterを使っています 「@Hishinuma_t MPFRで所定のビット数を指定して、演算ごとにmpfr_subnornalizeを呼び出せば、非正規化数の扱いを含めてbinary256相当になるはずです(NaNの扱いを除く) https://t.co/eGqZOcuShP」 / Twitter
GNU MPFR 4.1.0
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数小話を読み返してたけど、二段階丸めのところで奇数丸めからの最近接丸めがうまくいく条件が書いてないな(桁数の差が1だとうまくいかない。1.4999→(奇数丸め)→1.5→(最近接偶数丸め)→2みたいなやつ)」 / Twitter
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
きしもとさんはTwitterを使っています 「ヤバいのはアレね、Rubyとかのような一部の言語にある「小数点以下、十進でn桁」(←ヤバい)を指定できる奴」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数を二進浮動小数点数にするやつ、最初の700桁ぐらい読んで判断できない場合は残りの部分が0より大きいかどうか判断する、って感じで行けたりする?そもそも700桁も読みたくない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「【特に深い意味のないアンケート】「演算の順序」と聞いたときにどっちを思い浮かべますか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「昨日のアンケートだけど、「掛け算の順序」と言った時には x*y vs y*x を指していて、「浮動小数点数の演算の順序(どちらを先に計算するか)」と言ったときには結合法則の方を指してるんだよね。なので「演算の順序」って曖昧な言葉だな〜〜と思ったのでした(実際にアンケート結果は綺麗に割れた)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「だからHaskellのEqクラスが(==)と(/=)の両方をメソッドとして持ってるのは完全に冗長なんだよね。x /= y = not (x == y)以外の定義が有意義な状況を俺は知らない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の等号・不等号について成立しないのは x == x や x &lt; y ⇔ not (x &gt;= y) であって、 x == y ⇔ not (x != y) は普通に成立します」 / Twitter
ドッグさんはTwitterを使っています 「だから Rust で f32 や f64 は Eq ではなく PartialEq なのじゃ…」 / Twitter
てらモス♋️さんはTwitterを使っています 「ほんとだ NaN != NaN は ture だ」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「自分が何をしているかもわからないまま浮動小数点数の等号比較で許容する誤差として計算機イプシロンを使う人の話はやめろ!!!」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「計算機イプシロンは「浮動小数点数の四則演算1回の相対誤差の上限」みたいな感じの特徴を持つ量です。確か。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「元のツイートでは省略しましたがもちろん非正規化数が反例になります。確か。」 / Twitter
Miura HidekiさんはTwitterを使っています 「あと知恵だけど、PythonはBCD演算を採用しておけばよかったかもね。後々事故が起きそう。どうせパフォーマンスは重視されないし」 / Twitter
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「浮動小数点って何? - Qiita https://t.co/s7FziMCvTJ この話、年に1回くらい誰かにしてるんですが、コンピューターサイエンスやってない私のような文系卒は余計こういうところ注意しておきたいですね」 / Twitter
浮動小数点って何? - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「検定について質問に来た若者にR使って説明したら「あんちべさんPythonじゃないの…」って言われたけど、適宜タスクに応じて使い分ければいいと思うし、超雑な説明として「Rの方が多分CSやってない人は意外性少ないと思う」って話の例で0.05*0.05の結果見せたら納得してもらえた(上がpython、下がR) https://t.co/F2K815Tkfy」 / Twitter
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「私含め浮動小数点の誤差がどうこうとか知らないまま大人になった勢、CSの人と話すの厳しいこと多くて、私は入り口としてここから本読んでいった。今もっといい本あるかもだけど、今読んでも楽しいし、夜長の(あくまで読み物として)読書におすすめ https://t.co/Yfyg9jE6ic」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「MS謹製のFMA実装が古いマシンだと間違える件、VS Feedbackを探したら「Closed - Not a Bug」になっているのを見つけた / [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback https://t.co/LIROJmSGjj」 / Twitter
[C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback
だめぽラボ@技術書典9さんはTwitterを使っています 「誰もバグ報告してないようなら自分がバグ報告するつもりでいたけどこういうの見かけると萎えちゃうなあ。無償で他人を説得するほどのコミュニケーション能力は持ち合わせていないので」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA3を実装していないx86 CPUがこの世から一掃されれば解決する(=放っておいても時間が解決する)問題ではあるのだが、気持ち悪い」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「浮動小数点数の数式を渡すと誤差が小さくなるように式変形してくれるツール Harbie、便利だ https://t.co/VSYLUztGwY」 / Twitter
Herbie: Automatically Improving Floating Point Accuracy
ぽんこつさんはTwitterを使っています 「浮動小数点の四捨五入、浮動小数点は0.5は正確に表現できるけど0.05は正確に表現できないから指数部2桁目以降で四捨五入系のアルゴリズムだとバグるんですね、知らんかった」 / Twitter
mod_poppoさんはTwitterを使っています 「PowerPCではfloatをdoubleにキャストしてもsignaling NaNがquiet NaNにならないのか?と思ってQEMUで確認したけどそんな感じがするな」 / Twitter
mod_poppoさんはTwitterを使っています 「signaling NaNとquiet NaNのビット列としての表現でquiet NaNの方にビットを立てるのが好まれる(MIPS以外は全部これ)の、多分quiet化するときにpayloadをいじらずに済むからだな」 / Twitter
mod_poppoさんはTwitterを使っています 「signaling NaNにビットを立てて区別する実装だと、ペイロードが0のsignaling NaNをquiet化するときに(infinityにならないように)どれか一つ恣意的に選んだビットを立てなくてはいけない」 / Twitter
mod_poppoさんはTwitterを使っています 「確認に使ったコードはこれ https://t.co/l0piTPPGri」 / Twitter
floating-point-test/float-to-double-and-snan.c at master · minoki/floating-point-test

RたんさんはTwitterを使っています 「@lotz84_ 強いて言えばブール代数です。数独のあるマスに1..9を入れられるかどうか、というのを各1ビット(計9ビット)で表現すると、論理演算とpopulation count (1であるビットがいくつあるか数える)で数独を解けます(難問はバックトラッキングを併用)。こうするとSIMD並列化できて分岐処理を減らせます。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE754によれば、NaN (Not a Number) には2種類のビット表現がありうる。これを利用して NaNだけであらゆるデータを表現しようというおバカプロジェクト。 https://t.co/hiyngwVoRt」 / Twitter
thoppe/NansAreNumbers: An esoteric data type built entirely of NaNs.
ドッグさんはTwitterを使っています 「GCC の -ffast-math で行われる最適化の解説.x + 0.0 → x の最適化ができない(-0.0 があるので)とか,浮動小数点例外があるから投機的に計算を実行できないとか,結構面白い | 'Optimizations enabled by -ffast-math' https://t.co/7D4wuIX9uJ」 / Twitter
Optimizations enabled by -ffast-math – Krister Walfridsson's blog – Compilers, programming languages, etc.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「指数と仮数」とかいう用語を使わない視覚的な浮動小数点の説明。指数部は 1, 2, 4, 8, …というスライドする窓のひとつを選ぶと考え、仮数部はその窓の中における相対的な位置を表すと考える。 たとえば 3.14は「2~4」の窓の中で57%の位置にあるから仮数部は0.57×2^23。 https://t.co/QMHQ6ouzjA」 / Twitter
Floating Point Visually Explained
mod_poppoさんはTwitterを使っています 「浮動小数点数の四則演算と言えばこれ」 / Twitter
mod_poppoさんはTwitterを使っています 「皆さんお馴染みの四則演算といえば、+, -, *, /, sqrt, FMAですね」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の計算に再現性を持たせるための注意事項みたいな記事を書きたいと思いつつ一年以上経過した」 / Twitter
ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@yasuo_ozu NaN の絡む分かりやすい例だと a = 2 b = 2^127 c = 2^-126 とすると、 (a * b) * c = NaN a * (b * c) = 4 です。」 / Twitter
mod_poppoさんはTwitterを使っています 「これは単精度の例で、倍精度だと a=2 b=2^1023 c=2^(-1022) とかになる。あとこの場合はNaNじゃなくてInfinity(NaNにしたかったらcを0にする)」 / Twitter
mod_poppoさんはTwitterを使っています 「オーバーフロー・アンダーフローが絡まない、「浮動小数点数の乗算が非結合的である例」は a=1.0000000000000002 b=c=1.9999999999999998 とかかな。 (a*b)*cは3.9999999999999996でa*(b*c)は4になる」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の足し算と掛け算の非結合性、足し算は掛け算とexp/logで移り合う関係だしどっちかだけが結合的・非結合的ってことはないやろ、と思いそうになったけど 微少量+1-1 みたいな例はexpで移すと潰れちゃうのでアレだった(例を用意するならちゃんと考えないといけない) https://t.co/0l10PGuqjv」 / Twitter
mod_poppoさんはTwitterを使っています 「浮動小数点数の同人誌にNaNのsignaling/quietの区別について書いた気がしたけどMIPSとは書いてなかった https://t.co/P8O9cpXke0」 / Twitter

02.pdf
2020年振り返りと来年に向けて | 雑記帳
『浮動小数点演算について計算機科学者は何を知っておくべきか』の付録 - Oracle® Solaris Studio 12.4: 数値計算ガイド
kashiさんはTwitterを使っています 「面白いな。ODEをあえてただのEuler法、超低精度、積み残しが起きそうな小さなstep sizeで解いてるという特殊な状況とはいえ、最近点丸めよりも確率的丸めを使った方がずっといい結果が得られる、なんてことがあるんだな。 https://t.co/pMhjxz1g5I」 / Twitter
Numerical Linear Algebra GroupさんはTwitterを使っています 「Plotting Circles to Test Low Precision Arithmetics and Rounding Modes https://t.co/w2zQqQbDrs」 / Twitter
Plotting Circles to Test Low Precision Arithmetics and Rounding Modes | Numerical Linear Algebra Group
kashiさんはTwitterを使っています 「同じ人か。ODEとかでいい精度出ることあるし、確率的丸めをハードウェア化しようぜみたいなこと言ってる。こんなのが普及したらますます精度保証に利用しづらいハードウェアが増えてしまうではないか。 https://t.co/q00d6ZysS7」 / Twitter
[2001.01501] Stochastic Rounding: Algorithms and Hardware Accelerator
kashiさんはTwitterを使っています 「そうか。確率的丸めって、単に切り捨て切り上げを確率1/2、もあるけど、例えば3.14を2桁に丸めるとき確率0.6で3.1、確率0.4で3.2みたいにすれば期待値は3.14、みたいなことができるのね。これは計算重そう。twosum/twoproductを使って捨てる部分の大きさを見れば(多倍長よりは)高速な実装できそう。」 / Twitter
kashiさんはTwitterを使っています 「これって、例えばRumpの例題みたいなのでも、期待値は真値になって、多数回計算すると平均は真値に収束するのかなあ。そりゃそうだろという気分と、そんなわけあるかという気分が半々だ。試してみたい。」 / Twitter

実数

結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても -a &lt; x &lt; a が成り立つならば、x = 0 である」というのを初めて知ったとき、強い驚きがありました。印象深いので何度も思い出します。」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「確かに考えたら、数値計算で理論上は0になるけど微妙に0にならないやつの判定の時って無意識的にこれやってるわけだな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「数学的な言い回しって、個人的には「まどろっこしい表現だなあ」と感じがちだけど、コードに実装した後に俯瞰すると、ああ結局その言い回しの通りになるんだな、あれは確かに絶妙な表現なんだな、ってなるみたいな感じある」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「あの分野の人たちは言い回しそのものがめっちゃリファクタリングや最適化されつくした後のコードみたいになってる感」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「なので直感イメージそのままのラフい言い回しをすると怒られが発生する。でもコードだったらって考えたら納得」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「ああでもこれ無限大でもどうですかって言われたら直感だけで考えるの危険だな、やっぱしっかり確かめないといけないんだろうな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「無限は怖い。怒られるイメージしかない」 / Twitter
結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても、-a ≠ x かつ x ≠ a が成り立つならば、x = 0 である」というのをいま知って、強い驚きがありました。印象深いので何度も思い出しそうです。 https://t.co/SMF7MWM5ed」 / Twitter
ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています 「-a&lt;x&lt;aを「x≠-aかつx≠a」に弱めても成り立つ、つまり0以外のどれと等しい可能性も潰されるので0しかない……ので実数の完備性とか極限の話とか、実はあまり関係ないのよね。」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「ああそっか、等しくないというのは安全に言えるのか」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「大きい/小さい、ってそもそもなんなんだろうな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「自然数としてはペアノの公理から出発して0からインクリメンタルに生成されてく、そこで大小(というよりは前後)の順序が付いて、そっから負の数、実数と広げてく感じかな?」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「でも自然数に0を入れない派もあるけどそっから出発して拡張するとどうやって0近傍の大小関係を引っ張り出すんだ?最初に0→1の順序決まってないと (-1,+1) で大小未定義みたいな謎空間にならんのかな? 負の数→実数→...の拡張考えるとやっぱ自然数の時点で0入れとくのが手っ取り早いのかな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「そう考えるとやっぱ0から生成すんのが奇麗に思うな自然数は」 / Twitter

GPU

SPIR-V

KhronosGroup/SPIRV-Cross: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
KhronosGroup/SPIRV-Headers: SPIRV-Headers
KhronosGroup/SPIRV-Tools
KhronosGroup/SPIRV-LLVM: LLVM framework with SPIR-V support. It's intended to contain LLVM <-> SPIR-V converter and serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
Khronos SPIR-V Registry
OpenGL で SPIR-V のシェーダー
すらりんさんのツイート: "OpenGL 使い(自分) が求めていたのは GL_ARB_get_program_binary ではなく GL_ARB_gl_spirv 。コードからコンパイル済みの中間データなのでおそらく他環境へ持って行っても大丈夫なはず(未検証"
Fadisさんのツイート: "OpenGLではシェーダはGLSLという高級言語の状態でランタイムに渡し実行時にコンパイルするが、大量のシェーダを使う今日のグラフィックではこのコンパイル時間が深刻な問題になっていたため、事前にコンパイルしておける中間言語SPIRを後付けで規格化し、拡張で対応していた"
Fadisさんのツイート: "VulkanではSPIRの後継にあたる中間言語SPIR-Vがランタイムが要求するシェーダの形式になっており、Vulkanに対応した環境ならどこでも事前にシェーダをコンパイルできる。Vulkanの規格は高級言語に何を使ったかは問わない"
Fadisさんのツイート: "で、使い慣れたGLSLをVulkanで使いたい人の為にGLSLをSPIR-Vにコンパイルする拡張が用意されてる https://t.co/fLUP7rhFd3"
Fadisさんのツイート: "これ、VulkanにGLSLを足す拡張ではなく、OpenGLランタイムがVulkan用のSPIR-Vを吐けるようにするOpenGLの拡張なんだなw"
Fadisさんのツイート: "MesaのAMDGPUドライバのGLSLコンパイラをNIRに対応させたい→Vulkan側にSPIR-V→NIR→マシン語の実装が既にあるからGLSLをSPIR-Vにコンパイルしよう→MesaにARB_gl_spirv実装の機運 https://t.co/S00U7UHxz1"
Fadisさんのツイート: "ARB_gl_spirvってのはOpenGLランタイムがGLSLをコンパイルして、それを自分で実行するのではなくVulkanの中間言語形式SPIR-Vで出力できるようにする拡張。これを使えばGLSLで書いたシェーダをコンパイルしてVulkanに食べさせる事ができる"
Fadisさんのツイート: "今年のGSoCに「SPIR-VをLLVM IRにコンパイルしてCPUで走るVulkanレンダラ」を目指す学生さん登場。メンターはMesaのRADEON用Vulkanドライバの人。まだ殆ど何も無いけどgithubにリポジトリが出来てる https://t.co/42YzLu8KMq"
The Git Repository For The Vulkan Software Renderer In Development - Phoronix
google/clspv
SPIR-Vシェーダー拡張を統合した「OpenGL 4.6」が公開 | OSDN Magazine
Christopheさんのツイート: "SPIR-V back-end in Microsoft HLSL compiler: https://t.co/GdN1DC0nP8"
Fadisさんのツイート: "HLSLをSPIR-Vにコンパイルする場合の機能の対応関係について https://t.co/B9LNM9RfgW"
DirectXShaderCompiler/SPIR-V.rst at master · Microsoft/DirectXShaderCompiler
GPGPU戦争の歴史を紐解く ―勃発から現在に至るまで― - syghの新フラグメント置き場
OpenGL 4.6の進化点やOpenCLの将来について,Khronos Group代表のNeil Trevett氏に聞いてみた - 4Gamer.net
いぐにすさんさんのツイート: "GPGPU黎明期に飛びついて少し触った人(の一部)、「自分もGPGPUの経験あるけどメモリ足りないしhost/deviceのメモリ転送コスト高い」と言い出すんやけど、現代は1枚10GB搭載グラボ簡単に手に入るので知識をアップデートして欲しい"
Fadisさんのツイート: "マッピングでややこしいメモリ転送が簡単になったし、カーネル内からカーネル呼べるようになって動的な並列度の変更もしやすくなったし、コンパイラは初期より正しくC++を読むようになったし、ちょっとした用途なら便利なライブラリが揃ってるし、確かに初期のCUDAの感触は微塵も役に立たないな"
Fadisさんのツイート: "クロノスグループ、LLVM IRとSPIR-Vの双方向の変換を行うトランスレータを公開。LLVM IRに落とせるプログラミング言語を使ったシェーダの記述やLLVMがサポートするアーキテクチャ上でのシェーダの実行等への応用が期待される https://t.co/WYUcm2otdF"
Khronos Officially Announces Its LLVM/SPIR-V Translator - Phoronix
FadisさんはTwitterを使っています: 「RustのサブセットをSPIR-Vにコンパイルする猛者が現れた。SPIR-VはGPUで実行する処理の中間表現で、従来GLSLやHLSLをコンパイルして作る物だった。Vulkan等はこれを食べてGPUのネイティブバイナリを作る。サブセットはRust Like Shading Language(略してRLSL)と呼ばれている https://t.co/hHFlGkCoJp」 / Twitter
RLSL Allows Running A Subset Of Rust On Vulkan/SPIR-V Enabled GPUs - Phoronix
FadisさんはTwitterを使っています: 「W3CがWeb Gameに関する進捗報告の中で、WebGPUでSPIR-Vをシェーダの形式として利用できないかクロノスグループと議論した事が述べられているのがPhoronixの記事になっている。SPIR-VはVulkan等で使われているシェーダの中間表現、WebGPUはWebGLの後継とされるグラフィックAPI https://t.co/cr9bwswUPp」 / Twitter
Khronos + W3C Collaborating On SPIR-V Potentially Being The Shading Language For The Web - Phoronix
HPVM: Heterogeneous Parallel Virtual Machine についてのメモ - FPGA開発日記
FadisさんはTwitterを使っています 「HPVM: GPUのような並列度で性能を稼ぐアーキテクチャは現状それぞれの実装でPTXやHSAILといった中間言語を持っているが、これではアーキテクチャ非依存の最適化を実装しにくいので、LLVM IRを拡張してこの種の中間言語が持っている機能の和集合となるような物を定義したらしい https://t.co/NzRpbFLbCi」 / Twitter
HPVM - Heterogeneous Parallel Virtual Machine
FadisさんはTwitterを使っています 「HPVMで書かれたコードを、NVIDIAのPTXに落とすことも、AMDやARMで使われるHSAIRに落とすことも、OpenCLの中間言語形式SPIRに落とすことも、CPUのSIMD命令で実行する命令列に落とすこともできる、と」 / Twitter
てらモス♋️さんはTwitterを使っています 「コンパイラとは、実装とは別に形式論理的に定義されるプログラミング言語という制約条件下で最適化を行うプログラムなので、言語拡張というものは醜悪で、プログラミング言語上で並列化に関する構文を作りコンパイラがそれに基づいてコードを生成するというのは本筋だと思うですよ(´・ω・`)」 / Twitter
Cure-RiceさんはTwitterを使っています 「”謎の半導体メーカー”のコンパイラが指示行なしで種々の Fortran 構文を自動 GPU 並列化してくれるようになるらしい。 DO CONCURRENT は前にもニュースになっていたけれど、かなり広い範囲に適用されそう。 https://t.co/G7eFueIQZD」 / Twitter
てらモス♋️さんはTwitterを使っています 「もうハードウェアがあってソフトウェアがある時代じゃなくて、ソフトウェアがあってそれが高速に動作するハードウェアを作る時代やからな(´・ω・`)」 / Twitter
FadisさんはTwitterを使っています 「SPIRV-Reflectを使うとSPIR-Vを自力でパースするより楽にSPIR-Vのバイナリが持っている入力の型と個数、出力の型と個数、デスクリプタセットに並べる必要があるリソースの型と個数を取得することができる https://t.co/IiaY9Li0AK」 / Twitter
KhronosGroup/SPIRV-Reflect: SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
FadisさんはTwitterを使っています 「マイクロソフトが古くなってきたDirectX Shader Compiler(dxc)の近代化を計画している話。DirectXのシェーダの中間言語DXILはほぼLLVM IRで、オリジナルのdxcはllvm-3.7(とclang-3.7)をforkして作られていた。今回の変更はdxcの機能を最新のLLVMの上に実装し直すらしい https://t.co/2f4GUy5ACU」 / Twitter
Microsoft Wants To Add DirectX + HLSL Support To The Upstream LLVM/Clang Compiler - Phoronix
FadisさんはTwitterを使っています 「マイクロソフトは新しいdxcはLLVMをforkするのではなく、dxcに必要な機能を本家に入れていく事で実現したいという提案をLLVM側に対して行っている。dxcはSPIR-Vへのコンパイルも行うため、両者のコードベースの統一によってマイクロソフトはLLVMのSPIR-Vサポートの改良にも貢献できるとしている」 / Twitter
FadisさんはTwitterを使っています 「DirectXとVulkanで違う言語でシェーダを書きたくないというのは人類共通の願いなので、Vulkan 1.2でHLSLからSPIR-V作った場合の挙動に関する規格が整備されて、Vulkanは広く使われてるしSPIR-Vも広く使われているけどGLSLは絶滅危惧種みたいな状態になってる」 / Twitter

KTX 2.0

FadisさんはTwitterを使っています 「KTX 2.0が発表されたらしい。KTX 2.0はKhronosが標準化したテクスチャ画像を1つのファイルにまとめるコンテナ形式で、Basis Universal形式(GST)による圧縮がサポートされる。これは何種類もあるGPUが直接読める圧縮形式に変換できる中間表現で、変換をGPU上で行えるのが特徴 https://t.co/pklsAZVOWz」 / Twitter
Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets - The Khronos Group Inc
FadisさんはTwitterを使っています 「KTX 2.0はテクスチャストリーミングを想定して小さいmipmapを先出しできるファイル形式になっている他、glTFからKTX形式のテクスチャを参照する為の拡張 KHR_texture_basisu がglTFに追加される。」 / Twitter
FadisさんはTwitterを使っています 「KTX 2.0のファイルのmagicが面白くて、KTXである事を確認するKTX 20の他に、7bit文字しか通らない伝送路でバイナリが壊れていない事を確認する\xab、改行コード変換でバイナリが壊れていない事を確認する為のCR LF、文字列と誤認するソフトウェアを減らす為の\x1aが入ってる https://t.co/w2Qgu2NyCn」 / Twitter
KTX File Format Specification

MIAOW

【連載】Hot Chips 27 - ウィスコンシン大学のOpen GPU「MIAOW」 | マイナビニュース
MIAOW GPU
VerticalResearchGroup/miaow: An open source GPU based off of the AMD Southern Islands ISA.
Raghuraman Balasubramanian's research works | University of Wisconsin–Madison, Wisconsin (UW) and other places
Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU | Request PDF
Enabling GPGPU Low-Level Hardware Explorations with MIAOW: An Open-Source RTL Implementation of a GPGPU: ACM Transactions on Architecture and Code Optimization: Vol 12, No 2

DirectStorage

Microsoftがついにゲームの読み込み時間を高速化する「DirectStorage」をWindowsに導入すると発表 - GIGAZINE
ゲームのロード時間を大幅に短縮する「DirectStorage API」がPCで利用可能に - 窓の杜
Windowsゲームのロードを高速化するDirectStorage技術が一般公開へ - PC Watch
FadisさんはTwitterを使っています 「DirectXの新しいAPI DirectStorageについて。DirectStorageは元々XBOX Series X|S向けに提供されていたストレージ操作のためのAPIをPCに持ち込んだ物で、大量のI/O要求を非同期で投げてバッチで結果を取得する新しいファイル操作APIを提供する https://t.co/CfecURXRUt」 / Twitter
DirectStorage API: Windows 10* and 11 catch up with Xbox Series X|S
FadisさんはTwitterを使っています 「近代的なビデオゲームではテクスチャストリーミング等の為にストレージからGPUに対して沢山のデータを送る必要がある。これらのデータは個々には小さく、同時に沢山必要になるので、ストレージは大量の小さいファイル操作要求を受けることになる」 / Twitter
FadisさんはTwitterを使っています 「NVMeはこのような状況で高い性能を発揮するハードウェアだが、OSのファイル操作APIでは個々の操作で生じるCPUのオーバーヘッドが大きすぎてその性能を活かす事ができない。そこでカーネルに手を入れて大量のI/O要求を効率よく流せるキューと、複数のI/Oの結果をまとめて取得できる仕組みを作ったらしい」 / Twitter
FadisさんはTwitterを使っています 「具体的なAPIはまだ公表されていないが、おそらくLinuxのio_uringのような物をWindowsに生やしたのではないかと思われる。DirectStorageのAPI自体はWindows 10またはWindows 11で使えるが、カーネルの支援を伴う最適化されたI/O要求はWindows 11でのみ行われる」 / Twitter
FadisさんはTwitterを使っています 「DirectStorageはGPU上での圧縮テクスチャの展開の面倒も見るらしい。GPUが直接サンプリングできる圧縮テクスチャの圧縮率はあまり良くないので、テクスチャは「より圧縮率の高い形式でストレージに置いて、GPUが読める程度に圧縮された形式に展開する」ということがよく行われる」 / Twitter
FadisさんはTwitterを使っています 「XBOX Series X|Sはこの展開を行う専用ハードウェアを備えているが、PCにはそういうものが無いのでDirectComputeで普通のGPU上で高速に展開できる新しい形式を用意したらしい。そういう手法としては以前からGSTが知られている。詳細は不明だがこれの亜種か何かじゃなかろうか https://t.co/h6ZYHXlnmx」 / Twitter
FadisさんはTwitterを使っています 「DirectStorageのAPIはNDAを結んだ開発者に対して以前からプレビュー版が提供されていて、Windows版Forspokenが実際にこのAPIを使っているらしい。今年のGDCでこのゲームの中の人が実際の製品でDirectStorageを活用するノウハウの話をするらしい https://t.co/7HOnIYwWI2」 / Twitter
DirectStorage API Now Available on PC - DirectX Developer Blog
masafumiさんはTwitterを使っています 「サンプル https://t.co/MK6vFYenHo」 / Twitter
microsoft/DirectStorage: DirectStorage for Windows is an API that allows game developers to unlock the full potential of high speed NVMe drives for loading game assets.

VMA

FadisさんはTwitterを使っています 「Vulkan Memory Allocator(VMA) 3.0がd出たらしい。Vulkanではmallocではダメな特殊なメモリの確保をvkAllocateMemoryで行うが、メモリ確保がページ単位、用途に合うメモリの選択が手動等不便なので、より便利なメモリ確保のためにVulkanとアプリケーションの間に入るのがVMA https://t.co/vcXtuc4kl3」 / Twitter
AMD's GPUOpen Releases Vulkan Memory Allocator 3.0 - Phoronix
FadisさんはTwitterを使っています 「VMA 3.0ではアプリケーションがどんな用途のメモリを欲しているかを表すフラグがより詳細になる。従来のフラグも互換性の為に残されるが、新しいフラグを使うことで特定用途向けに特殊な振る舞いをするメモリを持っているGPUでよりハードウェアを活用したメモリの選択が期待できる」 / Twitter
FadisさんはTwitterを使っています 「VMA 3.0ではメモリアロケータのアルゴリズムが従来のリニアアロケータから、より高速でよく研究されているアルゴリズムであるTwo-Level Segregated Fitに変更されたらしい。また、なんとなく動いていたけど実はサポートしていなかったVulkan 1.2と1.3が正式にサポートされた」 / Twitter
FadisさんはTwitterを使っています 「VMA 3.0ではVulkanがVK_KHR_buffer_device_address拡張に対応している場合、GPU側でのアドレスを取れるメモリをVMA経由で確保できるようになる。GPU側のアドレスはGPU上で木構造や連結リストを作る際に必要になりがちで、Vulkanでレイトレーシングを行う場合必須になる」 / Twitter
FadisさんはTwitterを使っています 「またVMA 3.0はアロケータに優先度を付けられるようになる。VK_EXT_memory_priority拡張に対応するGPUでは、限られた高速なメモリにデータが乗り切らない時、透過的にページを低速なメモリに移動させるが、このとき優先度が高いページほど高速なメモリから落ちにくくなる」 / Twitter

PC Watch

【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第1回 ~固定機能からシェーダへの移り変わり - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第2回 ~GPGPUへの最適化や電力効率向上へ進んだNVIDIA GPUの歩み - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第3回 ~ビッグGPUから効率重視へ、そしてGCNへと繋がるAMD GPUの歴史 - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
Apple、macOS/iOSで「OpenGL/CL」の利用を“非推奨”に - PC Watch
【後藤弘茂のWeekly海外ニュース】GTCでKhronosが明らかにしたAPIアップデート - PC Watch

マイナビ

コンピュータアーキテクチャの話

310-324

コンピュータアーキテクチャの話 (310) 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理 | マイナビニュース
コンピュータアーキテクチャの話 (311) 現在のGPUの主流となっている「ユニファイドシェーダ」 | マイナビニュース
コンピュータアーキテクチャの話 (312) 固定小数点の演算から、浮動小数点の演算へ | マイナビニュース
コンピュータアーキテクチャの話 (313) 1つの命令で複数の演算器を動かす「SIMD」 | マイナビニュース
コンピュータアーキテクチャの話 (314) Teslaアーキテクチャが採用した「SIMT方式」 | マイナビニュース
コンピュータアーキテクチャの話 (315) ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式 | マイナビニュース
コンピュータアーキテクチャの話 (316) GPUが高性能な理由 | マイナビニュース
コンピュータアーキテクチャの話 (317) 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU | マイナビニュース
コンピュータアーキテクチャの話 (318) GPUはどうやってマルチスレッド処理を行っているか | マイナビニュース
コンピュータアーキテクチャの話 (319) CPUに比べて圧倒的に多いレジスタ数 | マイナビニュース
コンピュータアーキテクチャの話 (320) なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか? | マイナビニュース
コンピュータアーキテクチャの話 (321) GDDR5の後継として検討されるHBM | マイナビニュース
コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
コンピュータアーキテクチャの話 (323) GPUで用いられるメモリのエラー検出手法とその訂正手法 | マイナビニュース
コンピュータアーキテクチャの話 (324) GPUのエラー発生頻度はどの程度のものであるか? | マイナビニュース

325-349

コンピュータアーキテクチャの話 (325) エラーの検出方法 | マイナビニュース
コンピュータアーキテクチャの話 (326) 1ビット訂正ハミングコード | マイナビニュース
コンピュータアーキテクチャの話 (327) CMOSにおける消費エネルギーと動作速度の関係 | マイナビニュース
コンピュータアーキテクチャの話 (328) 「GPU」はスループット重視のプロセサ | マイナビニュース
コンピュータアーキテクチャの話 (329) GPUは膨大なバンド幅をどうやって実現しているのか? | マイナビニュース
コンピュータアーキテクチャの話 (330) レジスタファイルとシェアードメモリ | マイナビニュース
コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性 | マイナビニュース
コンピュータアーキテクチャの話 (332) シェアードメモリとキャッシュメモリは何が違うのか | マイナビニュース
コンピュータアーキテクチャの話 (333) GPUにおける1スレッドあたりのキャッシュ容量の考え方 | マイナビニュース
コンピュータアーキテクチャの話 (334) キャッシュのコヒーレンスはどのように保たれているのか | マイナビニュース
NVIDIA GPUのキャッシュを考える (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA | マイナビニュース
GPUのコアと2次キャッシュの関係性 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
CPUと異なるGPUのキャッシュ活用 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
実はGPUは低速処理のプロセッサ!? (338) 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU | マイナビニュース
コンピュータアーキテクチャの話 (339) よくわかっていないGPUのハードウェアの造り | マイナビニュース
NVIDIA GPUの基本的な実行方式 (340) NVIDIAのGPUにおける実行方式 | マイナビニュース
事実上標準のGPUの実行方式とは? (341) GPUの事実上の標準となりつつある実行方式 | マイナビニュース
GPUで用いる2つの変数の大きな違い (342) 「nBlocks」と「nThreads」、2つの変数の大きな違い | マイナビニュース
NVIDIAの「ギガスレッドエンジン」 (343) 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」 | マイナビニュース
ワープスケジューラの仕組み (344) ワープスケジューラの仕組み | マイナビニュース
Kepler GPUの構成を読み解く (345) Kepler GPUの構成 | マイナビニュース
GPUの演算単位を推測する (346) Kepler GPUとMaxwell GPUの演算単位を推測する | マイナビニュース
レジスタ対応が固定ではないGPU (347) CPUとは異なり、レジスタ対応が固定ではないGPU | マイナビニュース
GPUにおけるメモリアクセス (348) 複数のデータの処理を一度に行うGPUのメモリアクセス | マイナビニュース
GPUにおける条件分岐の方法 (349) GPUにおける条件分岐の方法 | マイナビニュース

350-374

コンピュータアーキテクチャの話 (350) NVIDIAの世代別GPUに見るハードウェアの違い | マイナビニュース
GPUでスレッドを同期させる手法 (351) GPUでスレッドを同期させる手法 | マイナビニュース
コンピュータアーキテクチャの話 (352) GPUで用いられるシェアードメモリの原理 | マイナビニュース
コンピュータアーキテクチャの話 (353) GPUにおける1次キャッシュのコヒーレンシ | マイナビニュース
GPUのデバイスメモリの考え方 (354) GPUのデバイスメモリのアドレスの考え方 | マイナビニュース
GPUにおけるECCの考え方 (355) GPUにおけるECCの考え方 | マイナビニュース
なぜHBMが期待されるのか (356) 積層することで性能向上を図ったHBM | マイナビニュース
コンピュータアーキテクチャの話 (357) CPUとGPUの通信 | マイナビニュース
HPCでのCPU-GPU間データ転送方法 (358) HPCにおけるCPU-GPU間のデータのやり取り | マイナビニュース
コンピュータアーキテクチャの話 (359) GPUプログラミングを難しくするCPUとGPUのメモリの分散 | マイナビニュース
コンピュータアーキテクチャの話 (360) CPUとGPUで処理を分担する場合のメモリのコピー手法 | マイナビニュース
コンピュータアーキテクチャの話 (361) 仮想化で1つのGPUを複数ユーザで活用する | マイナビニュース
コンピュータアーキテクチャの話 (362) ATIを買収してGPUを手に入れたAMD | マイナビニュース
コンピュータアーキテクチャの話 (363) VLIW命令をSIMD実行することで効率を高めたATI | マイナビニュース
コンピュータアーキテクチャの話 (364) AMDの新GPUアーキテクチャ「GCN」 | マイナビニュース
コンピュータアーキテクチャの話 (365) GCNのブロックダイヤグラムを読む | マイナビニュース
コンピュータアーキテクチャの話 (366) GCNのスカラユニットとベクトル演算 | マイナビニュース
コンピュータアーキテクチャの話 (367) GCNの性能を活かすのに必要なコンピュートユニット内蔵メモリ | マイナビニュース
コンピュータアーキテクチャの話 (368) GCNアーキテクチャにおける1次データキャッシュの構造 | マイナビニュース
コンピュータアーキテクチャの話 (369) AMDのGPUが用いているデバイスメモリの種類 | マイナビニュース
コンピュータアーキテクチャの話 (370) ディープラーニングを支えるGPU | マイナビニュース
コンピュータアーキテクチャの話 (371) AlexNetの構造を読み解く | マイナビニュース
コンピュータアーキテクチャの話 (372) ディープラーニングの入力の重みの値を決める「学習」 | マイナビニュース
コンピュータアーキテクチャの話 (373) 「推論」の精度 - INT8でも性能低下は僅か | マイナビニュース

GPU MEMORY BOOTCAMP

GPU活用のためのMEMORY BOOTCAMP (1) 新人のCUDAプログラマを一人前に育て上げるGPU MEMORY BOOTCAMP | マイナビニュース
輸送機で考えるGPUのメモリ移動 (2) 輸送機で考えるGPUのメモリバンド幅とレーテンシ | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (3) 行列の転置を行う場合のメモリアクセス | マイナビニュース
NVVPでGPUアプリの性能を改善 (4) プロファイラの活用で、性能改善を図る | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (5) グリッドを大きくする方法 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (6) メモリバンド幅の解析を実行し、さらに並列度を上げる | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (7) スレッドのメモリ読み出し要求の仕組みを知る | マイナビニュース
GPUにおける行列の転置を考える (8) 行列の転置では書き込みは飛び飛びアドレスになる | マイナビニュース
GPUのシェアードメモリを活用する (9) シェアードメモリ中での転置で、連続アドレスへの書き込みを実現 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (10) バンクコンフリクトを避けるには? | マイナビニュース

GIGAZINE

オープンソースのニューラルネットワーク向けプログラミング言語「Triton」をOpenAIが公開 - GIGAZINE
Chromeの新API「WebGPU」ではどれだけパフォーマンスが改善されるのか? - GIGAZINE
ゲームや映画でより現実に忠実で美麗な3D映像をレンダリングできる「パストレーシング」についてNVIDAが解説 - GIGAZINE

blog

本の虫: vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス
OpenCLやる前にSIMD使い切れっていう幻想 - aokomoriuta's blog
Vectordash: GPU instances for deep learning
ハードウェアの速度をどう評価するか考える(2) ~メモリ、メモリ律速~ - arutema47's blog
GPUの温度と性能低下 - Fixstars Tech Blog /proc/cpuinfo
Intel GPU専用言語C for Metalの解説 - Fixstars Tech Blog /proc/cpuinfo
OpenACC vs OpenMP GPU Offloading (環境構築編) - Fixstars Tech Blog /proc/cpuinfo
OpenVINOでIntel HD Graphicsを活用する(導入編) - 少ないリソースを酷使する
LLVM IRからGPUの実行可能ファイルを出力するコンパイルフローのまとめ - Jicchoの箱
GPU向けコンパイラの最適化の紹介と論文のサーベイ - Jicchoの箱

Wikipedia

GPGPU - Wikipedia
General-purpose computing on graphics processing units - Wikipedia
FLOPS - Wikipedia
FLOPS - Wikipedia

Zenn

C++ AMPの死について
Rustで始めるVulkan Raytracing

Qiita

GPUSound入門 - Qiita
研究が"飛ぶ"瞬間 - Qiita
Clang で CUDA コードを NVPTX に変換するメモ - Qiita
PTX Compiler API のメモ - Qiita
GPUでIFを使うな!? - Qiita

Twitter

その他

分岐

okuokuさんはTwitterを使っています 「GPU上で動くRISC-Vエミュレータのコード公開されたのか https://t.co/3U92nNK0tF VRChatのワールドまである。GPUと言えども今や巨大なswitch-case https://t.co/3D6t2QbAeM を実行できるわけで、何でも行けるのか。 / 手作りGPUの前に自前のシェーダコアのエミュレータをGPUで動かす手も行けそうだな。」 / Twitter
PiMaker/rvc: A 32-bit RISC-V emulator in a shader (and C)
rvc/emu.h at 4bf645734e676bc8254d10dba0bfa8a37b006c44 · PiMaker/rvc

Julia

黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 の特徴に関する質問を見たのだが、流れて行ってしまった。もう遅いかもしれないですが、以下のリンク先のネタを再現してみました。 マンデルブロ集合をGPUを使ってCPUの1スレッドの100倍以上の速さで計算する方法。 ポイント:GPU用の特別なコードを書く必要がない。続く https://t.co/i5yt2oHL8C」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 ソースコードは https://t.co/8n5qsdoW8y にあります。 添付画像はそのCPU用のコードです。マンデルブロ集合の定義を知って入れば特別なことをしていない陳腐なコードであることが分かるはずです。 どこにも具体的な型名が書かれていないことにも注目。続く https://t.co/Kp66p4tLTp」 / Twitter
public/mandelbrot by cuda.ipynb at main · genkuroki/public
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 GPUではFloat32を使いたいので、インプットの複素数の配列をFloat32の複素数の配列にしています。この段階ではまだCPUで計算しています。 https://t.co/4crLOE6W5J」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 これがGPUを使った計算です。 CPUによる計算で使ったmandelbrot(c)函数をそのままGPUでの計算で使っていることに注目! cu(z32)はGPUで計算される配列を作る操作で、collectは通常の配列に戻す操作です。 その結果が100倍以上の計算の高速化! このように非常に気軽にGPUを使えます。 https://t.co/ZQ5LjNcj7l」 / Twitter

GPGPU

猫 a.k.a INAさんのツイート: "これ読むとPEZYがあのL1でやれてるのが不思議なんだけど隣の読みに行けるとか階層キャッシュのテクニックとかソフトウェア的なあれこれがあるんじゃろか"
Hideyuki Tanakaさんのツイート: "1コア当たり8スレッドにすることでレイテンシーを隠蔽しようとしてて、実際L2のレイテンシまでは完全に隠せるように行列乗算コードを書いているから、L1は現在のコードならば、どんだけ小さくてもそれなりの速度は出ますね…"
Hideyuki Tanakaさんのツイート: "700Mhzで、4サイクルに一回しか実行回ってこないし、ロード隠ぺいするための裏スレッドを使ってるので、まあそこらへんは一応頑張れば隠せるように用意はしてありますね…"
Hideyuki Tanakaさんのツイート: "GPGPUだと死ぬほど多いスレッドを使って勝手にレイテンシ隠そうとしてる感じだけど、まあ、PEZY-SCのでもそんなに大変なわけじゃないよ(大変)GPGPU向けのGEMM書いたことないからわかんないけど…"
Hideyuki Tanakaさんのツイート: "ほんとは4x2じゃなくて、8スレのラウンドロビンにしてくれ~って感じだけど、無理らしいからまあいいかという(´・_・`)"
Hideyuki Tanakaさんのツイート: "@objectxplosive うーん、パイプライニングなのかなあ?命令のレイテンシはMAD以外全部1命令分のサイクルだけど、メモリのレイテンシー隠蔽だけでそういうものなのかな?"
Hideyuki Tanakaさんのツイート: "@09SEPGR スレッド増やせば増やすほど簡単になるけど、増やし過ぎてもリソース食いすぎるし、そもそもレイテンシを隠すためだけにスレッドたくさん使うのもなんかよくない気がする(多分ハードウェアリソース的に?)んでまあその辺のバランスをとってるんだと思う"

ライセンス

VさんはTwitterを使っています 「自分が調べた限りハードウェアエンコーダで特許料支払われているのはほぼありませんよ。ちゃんと払っているのは Raspberry Pi くらいです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「普通はハードウェアエンコーダつかうし当然そのハードウェアで特許料支払いされてるので関係ないのだけど、Dockerとかで動画エンコード機能を持ったツールを公開したいときとかにはハードウェア前提にしたり商用エンコーダ同梱できないから無償ソフトエンコーダ必要なのよね。」 / Twitter
VさんはTwitterを使っています 「NVIDIA や MPEG-LA にきちんと確認しているので間違いないです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas ええぇ、ハードウェアエンコーダ屋さん、ライセンス料払ってなかったの!!! まぁ買う側で何とかしてくれ責任持たねぇって言いたい気持ちも分かるけど。 といっても、私がここでいうハードウェアエンコーダってチップやSBCレベルじゃなくて商用エンコーダ機器レベルのつもりだったのだけど。」 / Twitter
VさんはTwitterを使っています 「@dynamitter ARM / Apple / Intel / NVIDIA / AMD に搭載されているハードウェアエンコーダを商用で利用する場合はすべてライセンス取得が別途必須という認識です。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas まぁエンコード専用チップではないので、その機能使うなら自分でライセンス払ってねと言うのが自然よね。 組み込みのルネサスとかもSoC側で払ってなかった気がする。 エンコード専用チップの方は例えばソシオネクストとか払ってたりするのかな。やはりそれも採用側に任せてるのかな。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas そうか、Jetson Nanoちゃん...」 / Twitter

libcu++

FadisさんはTwitterを使っています 「NVIDIAがlibcu++のソースコードをApacheライセンスでGitHubに上げたらしい。libcu++はC++標準ライブラリに似たAPIをcuda::の下に生やすライブラリで、標準ライブラリと異なり定義された型や関数はデバイス側で使用する事ができ、値はホストとデバイスで直接やり取りできる https://t.co/WIEoSJLEsU」 / Twitter
NVIDIA C++ Standard Library Now Available Via GitHub - Phoronix
Overview - libcu++

histric

histric-1

Out-of-Domain Awardさんのツイート: "今まで踏んだ一番ひどいエラーは、数千個あるCUDAコアのどれか1個だけバグでNaNしか返さなくなっていて、運悪くそのコアがアサインされるとbackpropagationで伝播してモデルが台無しになる。NaNを弾くコードを入れていないと数日経ってから気づくことになる"
Rockridgeさんのツイート: "Blinkの開発チームがWebGPU(新3DグラフィックスAPI)の実装を開始。WebGL/WebGL 2の後継となるもので、Safariが既に実験的に実装しているが、EdgeやFirefoxでも採用されるらしい。 / “Int…” https://t.co/elmcqYDaTl"
渋川よしきさんのツイート: "WWDCの話で1番やべえなってのは、Metal推奨でOpenGL非推奨化へ、という話ですね。"
Dustin Westphalさんのツイート: "OpenGL is deprecated in 10.14 Mojave. /eyetwitch… "
Apple Deprecates OpenGL & OpenCL - Phoronix
Jun Mukaiさんのツイート: "MetalとVulkanの関係ってどうなってるんだっけ?と思って調べたらhttps://t.co/InEoEGsj4b こういうのあるのか。OpenGLがなくなっても、こういうのをつかえばよいのかな"
Molten | Vulkan, and faster OpenGL ES, on iOS and macOS
Makoto Kato ︎︎さんのツイート: "MS has stopped investment for OpenGL at Windows 2000 era, then their API moves to DirectX. Apple wants to control APIs for GPU like MS..."
Fadisさんのツイート: "いまのAppleのOpenGLの扱いに対して、ジョブズの時代はこうではなかったというのは全くの間違いで、ジョブズ氏の時代からAppleのOpenGLの扱いは酷かった。ただ彼にはOpenGL2を強いられたあの時代でさえ、それを世界で最も先進的なグラフィックと言い切る能力があった"
ハガさんのツイート: "モバイルGPUのタイルベースなレンダリングとか複雑になるだけじゃん要らねーよと思ってたけど、タイルごとにラスタライズの解像度を変えられると知って急にとても良いものに思えてきた・・・。"
次世代のWebGPUの可能性 - WebGLと比較して理解する描画機能の違い - ICS MEDIA
Makoto Kato ︎︎さんのツイート: "自分の知ってる話と他の情報からすると、WebGPUはプロトタイプはAppleが作ったけど、正式なAPIは作り直し (他のOSやブラウザ的にありかないかも含めて) になるかもって話なので、今はAPIを覚えるのはフィードバック用でしかないと思うんだ"
Makoto Kato ︎︎さんのツイート: "No more Canvas API的な"
Makoto Kato ︎︎さんのツイート: "誰もVulkan -> Metalのトランスパイラ作りたいなんて思ってない (ANGLEのGLSL -> HLSLみちゃうとね)"
Fadisさんのツイート: "Vulkan 1.1で利用可能になったsubgroupは、同一Warp内の別のスレッドの計算結果を覗き見して演算を行う事が出来る。これによってイケてるハードウェア上ではWarp内でのreductionのような計算がシェアードメモリを使った場合より高速に行えるようになる。 …何この後ろのハードウェアが透けて見える機能"
chikoskiさんはTwitterを使っています: 「WebGPUの紹介記事。まだ先かな、と思っていたけどChromeでenable-unsafe-webgpuのフラグを立てると使える模様。簡単なコードとGPUの説明が続く。最後に行列の掛け算を使ったベンチマーク。256x256以上はGPUの方が早く、512x512以降は大きな差がつく。という内容: https://t.co/YtW91JmNES」 / Twitter
Get started with GPU Compute on the Web  |  Web  |  Google Developers
FadisさんはTwitterを使っています: 「プログラミング言語Taichi: 空間的に疎なデータを処理するコードを汎用的な言語で書くのが煩雑過ぎるから、データの保持方法の定義と、何らかの方法で保持されたデータを操作する処理を分離して書いて、CPUやGPUで効率よく実行出来るコードに落とせるDSL https://t.co/przYp05IzO」 / Twitter
Taichi
FadisさんはTwitterを使っています: 「あれば便利には違いないけど、これがオーバーヘッドなくライブラリで実現出来ないか、という点についてはC++なら出来んことはない気がする」 / Twitter
FadisさんはTwitterを使っています: 「Mitsuba2: オープンソースのグラフィックレンダラーMitsubaの後継。Mitsubaとの違いはメタいC++で書かれたレイに対する処理をCPUだけでなくGPUでも実行できるようになった点、それを自動微分して逆レンダリングができるようになった点、スペクトルレンダリングに対応した点等 https://t.co/MLf4BPe30G」 / Twitter
RGL | Mitsuba 2: A Retargetable Forward and Inverse Renderer
FadisさんはTwitterを使っています: 「いろんなプラットフォームで効率の良いSIMDな実行可能バイナリを生成する為の最適化はMitsuba2本体から分離されていて、Enokiなるライブラリにまとめられているらしい https://t.co/eNkdTLTII2」 / Twitter
mitsuba-renderer/enoki: Enoki: structured vectorization and differentiation on modern processor architectures

histric-2

FadisさんはTwitterを使っています: 「学習済みのニューラルネットワークを使って評価を行う際に、重みの精度は出力の品質に影響を与えにくい事が知られている。このためGPUの命令は精度を下げて一度に計算できる行列のサイズを大きくするように拡張されており、NVIDIA Turingでは4bit整数で出来た行列の演算を高速に行う事ができるらしい」 / Twitter
FadisさんはTwitterを使っています 「今は昔ほどGPUが多様でないから低レイヤーAPIでいけるというのは間違ってて、メモリの構成はGPU毎に異なるし、タイルベースGPUがでかい顔してるし、TensorCoreみたいなの生えてくるし、出ていく先はsRGBじゃないかもしれないし、VRでマルチGPU(以下略)で、控えめに言って世紀末なんだよな」 / Twitter
FadisさんはTwitterを使っています 「じゃあ何でVulkanみたいな薄いAPIで多様なハードウェア抽象化できるかと言うと、抽象化出来てないんだ。Vulkanはハードウェアの違いを吸収しない。Vulkanは世の中には色んなGPUがあるという現実をそのままプログラマにつきつけてくる。プログラマは倒れる。」 / Twitter
FadisさんはTwitterを使っています 「VulkanとOpenGLの方向性の違いがわかりやすく出てるのがVK_KHR_surface拡張で、この拡張は普通の画面とはどんな物で、どうすれば画面に描画結果を表示できるかを定義する。これが拡張であるという事は「Vulkanが動く」だけでは画面表示能力は無いかもしれない、という意味になる」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 Bounding Volume Hierarchy。AABBを再帰的に重ねた木構造で、logオーダーである範囲に存在する要素を探せる。これを作っておくとある直線と交差する面を高速に求める事ができるからリアルタイムレイトレーシングには欠かせない。」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 動くシーンのレイトレーシングでは動きに合わせてBVHを素早く更新できる必要があって、これがリアルタイムレイトレーシング実現のための難題だったんだけど、ナウいGPUはBVH作る専用ハードウェア積んで解決してしまった」 / Twitter
FadisさんはTwitterを使っています 「netgpu: 1つのマシンに収まらないニューラルネットワークを扱うにはGPUの計算結果をネットワークに載せ、別のGPUを積んだマシンで受ける必要がある。このデータの移動をCPUが行うとボトルネックになるので、GPUとNIC でバッファを共有させ送受信の要求だけをCPUから行うLinuxカーネルのパッチがnetgpu」 / Twitter
FadisさんはTwitterを使っています 「netgpuの作者が、このパッチをバニラカーネルに入れようと提案したら激しく燃えた話。netgpuは現状nvidiaのGPUのみをサポートしており、nvidiaのプロプリドライバに付いてくるカーネルモジュールのコードが所定の位置にインストールされている事を期待しているのが原因 https://t.co/oNSAK4U0Ow」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CPUよりも高速に計算させようと思うと意外と大変です。ボトルネックがCPUとGPUの間のI/O転送にあるので。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CUDAやMetalの潜在能力を出し切るようなコーティングも結構大変ですね。」 / Twitter
FadisさんはTwitterを使っています 「GL_NV_command_list: OpenGLでGPUへのコマンドを記録して何度も繰り返し流せるようにする拡張。ランタイムのAPIから実際にGPUで実行するコードへ落とす作業はCPUを要する処理で、コマンド列を塊にする事でこの作業を事前に行いフレーム毎のCPUの負担を抑える。なにこのVulkan https://t.co/NX07BdsLEi」 / Twitter
https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
FadisさんはTwitterを使っています 「Linux 5.11からTTMの実装が変わるらしい。TTMはGPUが触るメモリの管理を行うDRMのアロケータで、書き直された実装はロックの回避でメモリ確保がより高速になり、出来るだけ連続したメモリを塊で割り当てる事でTLBキャッシュヒット率が向上、AMDGPU等で性能の向上が期待できる https://t.co/MsDyLXhf9W」 / Twitter
New TTM Allocator For AMDGPU Graphics Memory Landing With Linux 5.11 - Phoronix
Ryo SuzukiさんはTwitterを使っています 「大量の三角形を、CPU で色や座標の情報を決めずに GPU だけで描画する機能を追加 #OpenSiv3D (v0.6) 複雑な形状を早く処理できる。 https://t.co/Tmg7VXhbcK」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「いわゆる null vertex buffer.」 / Twitter
FadisさんはTwitterを使っています 「ZLUDA: Intel oneAPI Level Zeroの上に実装されたCUDA Driver API。早い話がIntel GPU上でCUDAするための実装。ちなみにIntelはoneAPIをプラットフォーム非依存でアクセラレータを利用するためのAPIとしているが、Intel以外は乗り気ではない為事実上Intel専用になっている https://t.co/uuYSYSDQbD」 / Twitter
vosen/ZLUDA: CUDA on Intel GPUs
Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「機械学習のエントリー勢向けに計算性能は抑え目でもVRAMを多めにしてミドルレンジ価格帯のグラボって需要があると思うけど、そういうのが存在しないってことはグラボの値段ってVRAMが支配的なんだろうな…。」 / Twitter
FadisさんはTwitterを使っています 「GPUってIOMMUが適切に設定されたホストのメモリを触れるから、性能無視でメモリだけ広いマシンが欲しいならホストのメモリを使えば良いんじゃないかな」 / Twitter
FadisさんはTwitterを使っています 「コンピュータグラフィクス向けにGPUを使う場合も、GPUのデバイスメモリが狭くて必要なものが乗り切らん時は次善の手としてホストのメモリをスワップ領域として使うというのが割とよく行われる」 / Twitter
FadisさんはTwitterを使っています 「Mesaからswrastが削除されるらしい。MesaはOpenGL等のAPIのオープンソースな実装で、GPUが無い場合に備えてソフトウェアラスタライザを持つが、llvmpipeやOpenSWR等の新しいソフトウェアラスタライザの登場により初期の最も素朴な実装であるswrastは殆ど使われなくなっていた https://t.co/YEYShhhaWr」 / Twitter
Mesa 21.0 Has Finally Killed The Classic "SWRAST" Software Rasterizer - Phoronix
FadisさんはTwitterを使っています 「3DグラフィクスをCPUで処理するためにSSEだ3DNow!だとか言ってた時代があったなぁ。3Dグラフィクスをデバイス側で処理するGPUが家庭のPCに普及し出すのは90年代の終わり頃だし、DirectX 7時代のGPUはラスタライザから先はハードウェアで処理するけど座標変換はCPUでやれっていう仕様だったんだよな」 / Twitter
とみながたけひろさんはTwitterを使っています 「そのSSEでレイトレは高速に、、、と思ってたらいつの間にかレイトレもGPU側に入るようになったのであった(笑)」 / Twitter

histric-3

FadisさんはTwitterを使っています 「メッシュの頂点数を減らすのはいいけど、その為に細長い三角形を生み出すのはやめよう。その三角形は接平面空間で計算するプログラマに刺さる」 / Twitter
FadisさんはTwitterを使っています 「NVIDIAがVulkanでCuBINを実行する拡張を作っている話。CUDAはホストのコードとデバイスのコードを同じバイナリの異なるセクションに置くが、新しめのnvccはデバイスのコードだけを別ファイル(CuBIN)に吐く事ができる。この拡張はそれをVulkanからロードして実行する為のもの https://t.co/VPheiKtwtJ」 / Twitter
NVIDIA Adding Experimental Vulkan Support For Executing CUDA Binaries - Phoronix
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAからか... OpenMPが生成した PTX をどうやってオブジェクトファイルに格納するかについては(GCC の場合は) https://t.co/NeePioon3a ここにまとまっているわけで、これを真面目にパースしたらいけるはず........」 / Twitter
Offloading - GCC Wiki
jicchoさんはTwitterを使っています 「GPU最適化、GPUを使って何かの計算を最適化するのか、ある計算をGPUに合わせて最適化するのか、GPU上で行われる処理を最適化するのか」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 どれも興味ありますね。ただ,それぞれが戦略的に大きく異なるということは理解しているつもりです。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 最初の二つは、主に工学の分野で盛んに行われていますよね。最後の一つはハードウェア/ソフトウェアの観点からGPUを速く動作させようということなので、理学と工学が複雑に絡み合っている感じです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私は,まず3つ目の道を探究し続けて,そこから,第1・第2の道を探りたいです。」 / Twitter
ABAさんはTwitterを使っています 「C#のコードをGPU上でパラレルに動かせるようにしてGPGPUをC#プログラマに簡単に扱えるようにするためのライブラリComputeSharp / https://t.co/f6livgelDN」 / Twitter
Sergio0694/ComputeSharp at dev
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「GPUに詳しい人知ってたら教えてください。 OSのsched_yield(2)みたいな感じで、あるwarpの実行中に強制的に別のwarpにスケジューリングする命令とかありませんかね? (GPUで自前mutexを作る場合、同一Warpの別スレッドがロックを取った時、そのスレッドに実行を渡さないと永遠にロック待ちになる…。」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@gogotea3 ただ、その後アセンブラ命令の一覧も見てみたんですが、それっぽい命令はない(nanosleepはVolta以降)ので、ちょっと期待薄かもしれませんね。 https://t.co/K1ewHAb9FP」 / Twitter
PTX ISA :: CUDA Toolkit Documentation
FadisさんはTwitterを使っています 「Intelが次のIntel GPUからASTCのサポートをやめるらしく、Mesaに新しいIntelのGPUでASTCのテクスチャのロードを要求されたらCPU側でDXT5に変換する変更が現れている。DXT5に変換すると画質はやや悪くなるが性能面ではASTCより有利としている https://t.co/7H2zGMS8x5」 / Twitter
Intel Removes ASTC Hardware From Gen12.5+ Graphics - Phoronix
FadisさんはTwitterを使っています 「ASTCはARMとAMDが共同で開発した圧縮テクスチャ形式で、同種の直接サンプリングできる圧縮テクスチャ形式の中では比較的圧縮による劣化が目立ちにくい。ASTCのデコードは従来の圧縮テクスチャより複雑なハードウェアを必要とするが、メモリ帯域が何よりも貴重なモバイルGPUではよくサポートされている」 / Twitter
NishikiさんはTwitterを使っています 「まじで??確かにそんな負担なのかと思ってたけど &gt; 多くのVulkanチュートリアルではコマンドバッファを一度記録して再利用していますが、パフォーマンスのメリットはほとんどありません。実装が複雑になるため、新しいコマンドバッファを記録してしまう方がいいでしょう。 https://t.co/sWK8B5gmfT」 / Twitter
Vulkan-Guide/common_pitfalls.adoc at master · KhronosGroup/Vulkan-Guide
山田てるみさんはTwitterを使っています 「https://t.co/qLWKqU5yIk NVIDIAがめっちゃ強いのはこういうものをちゃんと作るというところにある…」 / Twitter
Legate
電子計算機の沼さんはTwitterを使っています 「結局、HTMLを自動で作るとのかと同じで、OpenACCとかOpenMPもCUDAやpthreadのコードを作らせてるだけ 達人はACCコードの裏にCUDAが透けて見えてるけど、CUDAが全くわからない人がOpenACCからスタートして複雑なコードを超速にできるかと言われるとちょっと分かんない」 / Twitter
FadisさんはTwitterを使っています 「WebRays: CPU側で作ったBVHを使ってWebGLのGLSLの中からRayQueryできるようにするライブラリ。Webブラウザ上でリアルタイムレイトレーシングしたくなった時に使う https://t.co/VHiVkFzFoD」 / Twitter
phasmatic3d/webrays: WebRays - Ray Tracing on the Web
FadisさんはTwitterを使っています 「Vulkanレイトレ、TLASとBLASを繋ぐのにデバイスアドレスが必要で、シェーダがシーンの全てのリソースに同時にアクセスするためにbindless化がほぼ必須で、GPU上のリソースはデバイスアドレスを持っていて、そのアドレスで一意に指せるようなハードウェアでないと成立しなくて」 / Twitter
FadisさんはTwitterを使っています 「どうせそういうハードウェアでないと動かないんだから、と言わんばかりに関連する雑多なリソースもハンドラじゃなくてデバイスアドレスで指定するようになってて、もしも過去との互換性を考えなくて良いVulkan2的な物が作られたら、そこにはもうVkBufferなんて物は存在しないかもしれないな、と思った」 / Twitter
FadisさんはTwitterを使っています 「GLSLではエントリーポイントの関数名はmainって決まってるから、Vulkanでエントリーポイントの関数名に明示的に"main"って指定しないといけないの何でって感じなんだけど、HLSLだとエントリーポイントの関数名は自由だからこれないと困るんだな」 / Twitter
FadisさんはTwitterを使っています 「MesaのAMD GPUのドライバにVulkanのVK_NV_mesh_shader拡張が実装されたらしい。この拡張はNVIDIAが提案し、同社のドライバには以前から備わっている新しいシェーダステージで、グラフィクスパイプラインのFSを除く4つのシェーダを新設する2つのシェーダで置き換える https://t.co/VDAF4Vjjll」 / Twitter
Mesa's Radeon Vulkan Driver Lands Experimental Mesh Shaders - Phoronix
FadisさんはTwitterを使っています 「追加されるシェーダの1つTask shaderはメッシュの組み立てをコンピュートシェーダのスタイルで行う物で、もうひとつのMesh shaderはTask shaderが吐いたメッシュにテッセレーションがかかった物をコンピュートシェーダのスタイルで処理する」 / Twitter
FadisさんはTwitterを使っています 「頂点シェーダやジオメトリシェーダが別れているのも無駄に厳しい制約がかかっているのも歴史的な理由以上の意味がないので、今のGPUを素直に使えるシェーダで置き換えてシンプルにするのが狙いだが、今までAMDのGPUで使えなかったため普及率はイマイチだった。」 / Twitter

FadisさんはTwitterを使っています 「GoogleがStadiaの一環でVulkanの新しいレイヤーGraphics Flight Recorder(GFR)を公開していた話。GFRはVukanのコマンドの実行中にVK_ERROR_DEVICE_LOST等の処理を継続できない問題が起きた場合に、直前にどんなコマンドを投げていたのかのログを吐く https://t.co/nuS60hHLzQ」 / Twitter
Google Has Been Quietly Developing "GFR" To Debug Vulkan GPU Hangs/Crashes - Phoronix
FadisさんはTwitterを使っています 「GFRはクラッシュ時にコマンドバッファ内のどのコマンドまでが完了していたかを知るために1コマンド毎にvkCmdWriteBufferMarkerAMDを挟んで進捗をバッファに記録する。vkCmdWriteBufferMarkerAMDはVK_AMD_buffer_marker拡張に対応したGPUでしか使えないため、GFRが使えるのは主にAMDのGPUに制限される」 / Twitter
FadisさんはTwitterを使っています 「VulkanのイメージのFormatは沢山あるけど、データの並びとしては同じ物が結構ある(例えばRGBA各8bitとBGRA各8bitは4つの8bit値が並んでいるという点では同じ)。Vulkan 1.2ではこういう時に「これらのうちのどれか」Formatでイメージを作り、実際にイメージを読むときにFormatを1つに決められる」 / Twitter
FadisさんはTwitterを使っています 「この機能を使うと「今ロードしたイメージの中身はリニアな値として読むべきか、非線形の変換がかかった値(例: sRGB)として読むべきかは読むときに判断するから、とりあえず何も考えずにロードだけしておいて」が綺麗にかける」 / Twitter
FadisさんはTwitterを使っています 「ZinkのOpenGLと拡張のサポート状況がMesaのドライバの中でもトップクラスになったらしい。ZinkはVulkanで実装されたOpenGLで、GPUベンダーがVulkanしか提供していなかったとしてもZinkを使うことでOpenGL 4.6のAPIを生やすことができる。 https://t.co/TS00SIPcee」 / Twitter
Zink OpenGL-on-Vulkan Now Offers Broader OpenGL Coverage Than RadeonSI, Intel - Phoronix
FadisさんはTwitterを使っています 「Vulkan 1.3が出たらしい。1.3ではレンダーパスとフレームバッファなしで簡単に描画を行うdynamic renderingと、パイプラインを作った後変更できるパラメータが猛烈に増えるextended dynamic state系の拡張が標準に入る https://t.co/2JxJQSyeNu」 / Twitter
Vulkan 1.3 and Roadmap 2022 - The Khronos Group Inc
FadisさんはTwitterを使っています 「さらにVulkan 1.3ではバリアの対象となるステージをデータ毎に個別に設定できるvkCmdPipelineBarrier2と、将来の拡張のためにpNext付きの構造体で引数を渡すようになったvkCmdCopyBuffer2等の関数が標準に取り込まれる。機械学習でよく使う整数の内積のサポートも標準に入る。」 / Twitter
FadisさんはTwitterを使っています 「Vulkan 1.3で標準に取り込まれた機能は新機能というより既存の機能のめんどくさいところをめんどくさくなくする為の物が多いな。今までのすっぴんのVulkanはよく言って超めんどくさいからこれは大変良い」 / Twitter
FadisさんはTwitterを使っています 「OpenGLが残念だったのはステートフルだったからじゃなくて、ステートがグローバルでプロセス中に1個しか作れなかったからなんじゃないかな。そのせいでパイプラインステートを一括で切り替えるだとか、コンテキストを複数作って複数のGPUの相手をするだとかいった事をするのにVulkanを待つ必要があった」 / Twitter
FadisさんはTwitterを使っています 「s/コンテキスト/インスタンス/」 / Twitter
FadisさんはTwitterを使っています 「GPUは複数のパイプラインを同時に処理して性能を稼ぎたい。一方OpenGLのAPIは唯一のパイプラインを逐次処理するのに適した形になっている。この結果GPUのドライバはプログラマには逐次処理しているように見せかけながら中ではアウトオブオーダーでパイプラインを捌くようになった。」 / Twitter
FadisさんはTwitterを使っています 「APIはそのままで済んだんだから良いじゃないか、となりそうなところだけどゲーム屋さんは性能をすごく気にするからGPUが性能を出しやすいようにしたいわけだけど、こうなると逐次処理しているかのようなAPIで要求した内容がドライバによってどう捌かれるかをエスパーするの能力が求められる」 / Twitter
FadisさんはTwitterを使っています 「こういう無理ゲーの時代を経て、やっぱり無理だよねってなってVulkanのような新しいAPIが生まれた」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「ところがそうでもなくて,SIMD命令やGPUを前提にすると,複数データを一度に処理するために1つあたりのデータサイズを抑えたほうがかなりの速度が出ます。」 / Twitter
fumiさんはTwitterを使っています 「いまやマイコンもFPGAもリソースもりもり森鴎外なので、1byteを削るために最適化したりする必要もなく、ガンガン32bitで計算すればいいし、ガンガン除算すればいい。」 / Twitter
FadisさんはTwitterを使っています 「IntelがLinuxのDRMのメモリ管理にNEEDS_CPU_ACCESSフラグを追加している話。ディスクリートIntel GPUはResizable BARが使えない場合GPUのメモリのうち256MBの範囲だけがCPUから見えるようになるが、このCPUから見える範囲は上記のフラグが立ったメモリ確保に優先的に使われる https://t.co/MDx6qNpkjt」 / Twitter
Intel Working On "Small BAR" Linux Driver Support For DG2/Alchemist - Phoronix
FadisさんはTwitterを使っています 「現行のPCではCPUから256MBを超えるメモリに直接アクセスできるようにするResizable BARに最初から対応したUEFIが載っている事が多く、IntelのディスクリートGPU DG2もResizable BARに対応しているため、この変更は主に古いPCにGPUが接続された場合の為のものではないかと思われる」 / Twitter
FadisさんはTwitterを使っています 「CuLE: NVIDIAのGPUを使って動くAtari 2600のエミュレータ。古のゲーム機Atari 2600は強化学習の研究でベンチマークとして広く用いられている為、膨大な数のエミュレータを高速に実行する事には大きな需要がある。そこでAtari 2600のエミュレータをCUDAで実装した、と https://t.co/7zLOvAKK3D」 / Twitter
New Open Source GPU-Accelerated Atari Emulator for Reinforcement Learning Now Available | NVIDIA Technical Blog
FadisさんはTwitterを使っています 「GPUで処理を高速にするには並列度が必要だが、CuLEでは大量のエミュレータを個々のスレッドに割り当てて同時に実行する。また、実行結果は通常DNNで評価するためにGPUに送られるが、この方法なら実行結果は最初からGPU上にあるので帯域を節約できる。記事によるとGPU4本で44900fpsで結果を吐けたらしい」 / Twitter
KOBA789さんはTwitterを使っています 「3D CG の技術、GPU の機能や Graphics API の機能をアーティストが再解釈しまくっており、機能の本来の意図や原理をガン無視しているものの結果的にはいい感じの絵が得られるみたいな謎テクが大量にあるな」 / Twitter
たたさんはTwitterを使っています 「@KOBA789 グリッチ表現周りのテクとかヤバいですよね」 / Twitter
KOBA789さんはTwitterを使っています 「@8picoz 真っ当な演繹だけではたどり着けない世界ですね」 / Twitter

002: HW Validation List · heterodb/pg-strom Wiki
Deno 1.8が、WebGPUサポート、動的アクセス許可などと共にリリースへ
いまどきのVulkan - Speaker Deck
FadisさんはTwitterを使っています 「ここだけの話カーネル/VMで発表したやつ、当時のfadisさんのVulkanレイトレの理解が間違ってて思いっきり間違ったこと言ってるんだけど、本の方では修正されている…」 / Twitter
Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜
Vulkan 1.3がリリース。新追加機能はオプションではなく実装を義務付け - PC Watch
FadisさんはTwitterを使っています 「Vulkan SC 1.0の規格がリリースされたらしい。SCはSefety Criticalの略で「リソースが足りんから実行できんかった」をされると大惨事に繋がるような航空機などの乗り物の表示器、軍事、医療、産業機械等の表示のレンダリングのためのAPI。OpenGL SCの後継として規格化された https://t.co/egCLZuXY6G」 / Twitter
Vulkan Ready To Take On Safety-Critical Market With Vulkan SC 1.0 - Phoronix
FadisさんはTwitterを使っています 「Vulkan SCは通常のVulkanと異なりパイプラインを実行時に組み立てる事を認めない。事前に組み立てて静的解析によって必要なリソースを明らかにしたパイプラインを実行時にロードして実行する事で、特定の量のリソースを持つGPU上で描画を行なった場合にリソース不足で描画に失敗しない事を保証する」 / Twitter

セキュリティ

その他

OpenSCAP

SCAP on Windows - Qiita
OpenSCAP Base | OpenSCAP portal
OpenSCAPを使用してみる | 猫とセキュリティ
OpenSCAPで脆弱性対策はどう変わる? - @IT
OpenSCAP の代替および類似のソフトウェア - ProgSoft.net
Using openscap for scanning Windows · Issue #1280 · OpenSCAP/openscap
openscap installation on windows
明日はじめるOpenSCAP - d1-3-moriwaka-2.pdf
セキュリティ設定共通化手順SCAP概説:IPA 独立行政法人 情報処理推進機構
Windows用の無料のOpenSCAPの代替 — Altapps.net
第8章 OpenSCAP を使用したコンプライアンスおよび脆弱性のスキャン Red Hat Enterprise Linux 6 | Red Hat Customer Portal
8.3. 設定コンプライアンススキャン Red Hat Enterprise Linux 7 | Red Hat Customer Portal
Guide to the Secure Configuration of Red Hat Enterprise Linux 7 | OpenSCAP Security Guide
Make a RHEL7 server compliant with PCI-DSS | OpenSCAP portal
OpenSCAP(脆弱性スキャン)のインストールと使い方メモ | あぱーブログ
CentOS 7 : OpenSCAP : セキュリティ監査 : Server World
OpenSCAP を使ってみる - Qiita
Osc2018 tokyo spring_scap
OSがCentOS 7かどうかを判定するサンプルで、SCAPの構成要素XCCDFとOVALの構造を理解する:OpenSCAPで脆弱性対策はどう変わる?(5)(1/2 ページ) - @IT
Download | OpenSCAP portal
Ubuntu Oval | Security | Ubuntu
Using OpenSCAP on Ubuntu 18.04 LTS
How to perform security audits on Ubuntu server with OpenSCAP - TechRepublic
OpenSCAPとは | OSSのデージーネット
How to Audit Linux Systems using OpenSCAP - Knoldus Blogs
openscap package : Ubuntu

XML・ASN.1 の脆弱性

kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「当時は仕方なかったと思うのだけど参照関係が厄介なXML署名や暗号はXXEの影響受けやすいよね。ASN.1のバッファローバラン脆弱性が無くならないのと同じで、SAMLを含むXMLの脆弱性は一生無くならないよね https://t.co/yMAWPb8GOk」 / Twitter
SAML — what can go wrong? Security check | by Natalia Trojanowska | SecuRing | Oct, 2021 | Medium
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「SAMLの署名検証しない問題は、証明書チェーン検証しないとか失効検証しない問題と似てますね」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「たいぽ 誤:バッファローバラン脆弱性 正:バッファオーバーラン脆弱性」 / Twitter

ASAN

Kazuho OkuさんはTwitterを使っています 「「main から抜ける時にリソース解放してない、みたいなこと言われないように _exit 呼んでる」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ひょっとして「asanでリーク発見しました」みたいなことを言う人たち、_exit呼べば黙るのでは(asanがリーク報告するのはおそらく_finiの中だから)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シグナルとmainの話なんだけど、たとえばmain抜けた後で_fini動いてる途中とか、その後でシグナル来ることってありますやん。そういう時にシグナルハンドラでできることってなんなんやろ。どうやって皆、動作保証してるんやろ。_exit呼んでる? シグナルハンドラをunregisterしてる?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「普通はこんなタイミング問題どうでもいいんだと思うけど、asanが_finiの中で、グローバル変数の監視解除するのに時間かかってて発覚した」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho _exit は副作用強すぎるので、その症状だけならunregisterかblockが無難ですよねえ…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho もっとも、本当に _exit で良いと分ってるならそれが一番高速ですけど…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。一般論として、_fini中にシグナルハンドラが動く場合は、共有ライブラリの関数も呼べない可能性がある、とかそういう制限はあるんでしょうか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda LeakSanitizerが動かない!ってissueたてられそうなので、それはやめとこうかなと思ってます」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho たとえばシグナルハンドラでは async-signal-safe として規定されている関数を呼んでるのみであれば問題ないような… 今回は自前の実装と相互作用のある処理をたぶん呼んでいるんですよね…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda あいや、今回は main のローカル変数のアドレスが、グローバル変数のポインタに登録されていました。そして、_fini -> __asan_unregister_globals呼び出し中に、シグナルが配送された結果、ASANがstack underflowを深刻しabortしていました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda うーん、ASANと組み合わせて動くようにしておきたいという前提があるなら、_fini呼び出し前にシグナルハンドラをblock/ignにしておくべきな気がしてきた。ASANが自身を登録解除中に正しく動作する保証あるのかって話になるし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho なるほど、そういうケースならmain()の最後で #if 1 /* not strictly necessary, but make ASAN happy */ global_var = NULL; /* unref local_var for ASAN */ #endif としとくのが将来もその処理の理由を忘れなくていいような気がします。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda んー、シグナルハンドラが正しく実装されていれば、それで良いですが、ASANはバグを検出するためのツールじゃないですか。で、ASANは__asan_unregister_globalsが呼ばれている間も正しく動作する保証があるのか。保証ないのであれば、mainを抜ける前にシグナルハンドラを登録解除するほうがいいかなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕が誤解しているかもしれないんですが、シグナルハンドラでは、mainのローカル変数をグローバル変数経由で参照しているんですよね? だとするとこのケースに限定すれば問題が実際に存在しASANは正しくそれを報告しているので、粛々と問題に対応するのがいいような気がしてます。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。正しいコードとしてはそれでもよいのですが、今回みたいなバグがあった場合に、ASANが発狂しないか、ということを気にしています。ASANが発狂して悩むくらいなら、シグナルハンドラをunregisterしちゃっていいんじゃないかと。ちなみに https://t.co/QEzTjeNf78 これです」 / Twitter
[server] [bug-fix] Crash in h2o_multithread_send_message() when on_sigterm() is called twice by nalramli · Pull Request #2913 · h2o/h2o
SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕もASANの仕様は分からないです。 あとmain()の最後でunref する処理がけっこう面倒なら、unregisterを不正な参照対策として行うってのも(ASANの仕様に関わらず)アリですね。」 / Twitter

HTMLとCSSだけでWebブラウザにサイドチャネル攻撃を仕掛ける手法 - PC Watch
[2103.04952v1] Prime+Probe 1, JavaScript 0: Overcoming Browser-based Side-Channel Defenses
Security/Binary Transparency - MozillaWiki
Linuxカーネル4.13リリース | OSDN Magazine
Googleがオープンソースの安全性改善に総額100万ドル出資ーー「Secure Open Source Rewards」 | OSDN Magazine
An Introduction to Speculative Optimization in V8
seclang01 - essen-wiki
Return-oriented Programmingとは何かを学ぶ|株式会社レピダム
CVSS(共通脆弱性評価システム)3.0から3.1への変更点:OpenSCAPで脆弱性対策はどう変わる?(7) - @IT
ipa ファイル レースコンディション - Google 検索
9_188.pdf
自分のこと、知れてますか。 〜自分のPCをフォレンジック〜 - Qiita
セキュリティ専門家の40%以上が「2030年までにAIに仕事を奪われる」と予想している - GIGAZINE
Go、D言語、Nim、Rust製マルウェアが増えている怖いワケ:マイナーなプログラミング言語がなぜ選ばれるのか - TechTargetジャパン セキュリティ
daem0nc0reさんはTwitterを使っています 「このFuzzingの記事はいいですね。 IPCは今、一番注目されているAttack Surfaceのひとつだと思うので、もっと詳しく勉強したい https://t.co/2yDycR7U0D」 / Twitter
Fuzzy Snapshots of Firefox IPC – Silent Signal Techblog
Windows向けパスワード監査ツール「L0phtCrack」がオープンソースに | OSDN Magazine
webshell - Google 検索
クラウドセキュリティ・アドバイザリー | 脆弱性診断(セキュリティ診断)のイエラエセキュリティ
ミズーリ州知事「ウェブページのソース表示はハッキング」。脆弱性指摘した人物を起訴の意向 - Engadget 日本版
米国 OMB M-22-09 米国政府のゼロトラスト・サイバーセキュリティ原則への移行についての覚書: まるちゃんの情報セキュリティ気まぐれ日記

OWASP Top 10

とある診断員さんはTwitterを使っています 「OWASP Top 10 https://t.co/DZOkpcWyFu OWASP Top 10の2021版がリリースされたようですね。SSRFがランクインしてますね。なんか段々一つの項目に従来の複数項目が沢山インクルードされてきている印象かな。そもそも10個の項目に収めるのが難しいってことなのかもしれないけど。」 / Twitter
OWASP Top 10
とある診断員さんはTwitterを使っています 「https://t.co/Tdd8w4e7rm 知り合いに指摘されて気づいたのですが、一応現段階ではドラフト版のようですね。」 / Twitter
Notice - OWASP Top 10
Yosuke HASEGAWAさんはTwitterを使っています 「OWASP Top 10 2021年版、目次部分の前半ざっくりと日本語に訳しました。 https://t.co/DDE915gfvH」 / Twitter
OAWSP Top 10 2021 ja

システムコール

FadisさんはTwitterを使っています 「OpenBSDが「libcのようなシステムコールを使うことが意図されたライブラリの置かれたアドレス以外から飛んでくる不審なシステムコールは拒否しよう」という仕組みを導入したら、不審なGo言語で作られたバイナリが全く動かなくなってしまった話良い」 / Twitter
FadisさんはTwitterを使っています 「で、それに対するOpenBSDの対応が「Go言語がきちんとlibc経由でシステムコールを呼ぶように修正する」なのが更に良い https://t.co/8eoSVQEjtr」 / Twitter
κeenさんはTwitterを使っています 「システムコールは叩きたいけどC FFIは用意する気がない言語を作りたいときに非常に困る。極論、OSは場を提供する親なので逆らえないし嫌なら出てけって話なんだけど…」 / Twitter
鯉江さんはTwitterを使っています 「@blackenedgold システムコール直にたたくと移植性が落ちません?」 / Twitter
κeenさんはTwitterを使っています 「@koie 移植すればいいだけです。それに、Cそのまま呼べる特殊な言語でない限りABI気にしないといけないのでどのみちプラットフォームごとの処理は必要です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「syscallレベルで「も」互換性確保しようするとOSの変化の足かせになる、というのはあるのかな。brk廃止できないとかvdsoに移行したあと古いsyscall消せないとか。またtcpみたくライブラリとして提供されがちな機能もあるわけで(Solarisや最近のApple)、syscallで機能がそろうと期待するのがそもそもry」 / Twitter
DrumatoさんはTwitterを使っています 「keenさんほどハイレベルなこと考えているわけじゃないけど,気持ちはよくわかります. 今作っているPeachili言語ではC FFIを用意する代わりにインラインアセンブラみたいな構文を用意して標準ライブラリに組み込んである. (かなり大変だった) (そういう話じゃなかったらすみません」 / Twitter
とみながたけひろさんはTwitterを使っています 「ページ属性に特定のビットが立ってないとシステムコールが発行できない、という仕組みがあったCPUってなんだったっけ…とhttps://t.co/KPAIFeCYVJ をみてそうだPA-RISCとIA-64だと思い出した」 / Twitter
仮想メモリ方式の分類
dancerj 🗾さんはTwitterを使っています 「@takehiro_t sysenterもまあそういうノリな気がします」 / Twitter
FadisさんはTwitterを使っています 「Linuxにシステムコールを呼べるメモリの範囲を制限する仕組みを追加する提案がなされている。ただ、攻撃者の妨害を狙ったOpenBSDの同種の機能と異なり、Linuxの狙いはWindowsの実行可能バイナリをLinux上で実行したときに発行されたシステムコールを捉える事らしい https://t.co/US0EbzPndP」 / Twitter
FadisさんはTwitterを使っています 「WindowsバイナリをWindowsじゃないところで実行するWineは従来Windows APIを自前で実装する事で実現されていたが、近年Windows APIを使わず自分でシステムコールを投げるアプリケーションが増えていて、この方法ではWindows用のシステムコールが飛んでしまうらしい」 / Twitter
FadisさんはTwitterを使っています 「そこでmmapのオプションにシステムコール禁止フラグを追加し、Windowsの実行可能バイナリをロードした領域だけシステムコール禁止にして、Windowsの実行可能バイナリ内から行われたsyscallを捕捉してエミュレーション用のコードを実行しよう、という魂胆らしい」 / Twitter
FadisさんはTwitterを使っています 「先日のPolkitのローカル権限昇格脆弱性(CVE-2021-4034)(これ自体はPolkit側で塞がれる)を受けてLinuxカーネルで「引数なしでexecveのシステムコールが飛んできたらそもそも蹴るべきでは」という議論が起きている話 https://t.co/CMJcyBCMJ7」 / Twitter
FadisさんはTwitterを使っています 「Linuxが引数なしのexecveを認めなければPolkitのようなミスをするソフトウェアが居ても直ちに環境変数の実行に繋がらない。argv[0]にプログラム名が入っていることを期待するプログラマは多いためPolkitだけの修正で済ますより包括的な再発防止策をとる事は有益ではある。」 / Twitter
FadisさんはTwitterを使っています 「ただ、argv[0]にプログラム名が入っているというのは多くのソフトウェアで行われている慣習でしかなくPOSIX含む諸々の標準規格はargv[0]にプログラム名を入れることを要求していない。この変更は実際に雑に書かれたソフトウェアの互換性を壊す事が分かっていて、入れて良いものかどうかで揉めている」 / Twitter
2022年2月1日 Qualys,主要Linuxディストリビューションに「Polkit」の脆弱性を警告:Linux Daily Topics|gihyo.jp … 技術評論社
20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog
Dirty Pipe(CVE-2022-0847)の発見経緯が面白かった - knqyf263's blog

署名

ASN.1

自堕落な技術者の日記 : オススメASN.1ビューアaatool - livedoor Blog(ブログ)
www5d.biglobe.ne.jp/stssk/asn1/index.html
もいちど知りたい、セキュアコーディングの基本(5):見落としがちな整数関連の脆弱性(後編) (1/2) - @IT
ASN.1 バイナリ変換規則 (BER, CER, DER)
ASN.1 データ生成/解析の事始 — SOUM/misc
Tools
vlm/asn1c: The ASN.1 Compiler
Lev Walkin → ASN.1 Exposed
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
RFC3641 ASN.1での一般的文字列コード化規則(GSER)
RFC 3641 - Generic String Encoding Rules (GSER) for ASN.1 Types
RFC 4792 - Encoding Instructions for the Generic String Encoding Rules (GSER)
Specification # 36.331
2-3_urushima.pdf
Application fields of ASN.1
FFASN1 Compiler
ffasn1dump ASN.1 Message Converter

X.509

RFC

RFC 2459 - Certificate and CRL Profile
Internet X.509 PKI Certificate and CRL Profile
RFC 3280 - Certificate and CRL Profile
RFC 4325 - Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension
RFC 4630 - Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

EternalWindows

MakeCert Functions
証明書の形式

Qiita

certificate - RSA鍵、証明書のファイルフォーマットについて - Qiita

Wikipedia

自己署名証明書 - Wikipedia
Self-signed certificate - Wikipedia
X.509 - Wikipedia
X.509 - Wikipedia

Twitter

Kazuho Okuさんのツイート: "PKIの証明書の時間的分解能は、時差がないから24時間以下とかにはできないのか。なるほど #ietf96j"
Kazuho Okuさんのツイート: "「どうせ短寿命証明書はやる方向なんだし、それに乗っかるんだったらLurk WGは不要だよね」 #ietf96j"

情報セキュリティ入門 - PKI(後編)---X.509証明書とPKIの仕組み:ITpro
X.509証明書
電子証明書のデータ形式 - RFC3289 X.509 Public Key Infrastructure Certificate and CRL Profile
X.509 の解説
暗号技術基礎
公開鍵基盤(PKI)の概要

BLS署名

BLS署名と秘密分散を組み合わせる - Qiita
BLS署名の紹介と実装 - Qiita

EternalWindows

署名の格納
ファイルと署名
副署名の設定
署名と属性
署名の構造
署名の取得

Wikipedia

電子署名 - Wikipedia
RSA暗号 - Wikipedia
Abstract Syntax Notation One - Wikipedia
Abstract Syntax Notation One - Wikipedia
X.690 - Wikipedia

Qiita

公開鍵暗号と電子署名の基礎知識 - Qiita
電子署名のファイルフォーマット - Qiita

コードサイニングとは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
コードサイニングの複数署名とハッシュアルゴリズムの異なる証明書の無償発行 -SHA-1署名のみのためインターネットからダウンロードする際に警告されていたりSHA-2署名のみのため旧バージョンのOSで問題が起こっているソフトウェアの作者へ-
デジタル署名とデジタルID用のコード署名デジタル証明書
セキュリティー関連の規格 のメモ
extract-authenticode/README.ja.md at master · trueroad/extract-authenticode
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第2回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第3回:最終回) - livedoor Blog(ブログ)
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
署名を作成する
署名を検証する
セキュリティー関連の規格 のメモ 署名アルゴリズム
自堕落な技術者の日記 : 図説RSA署名の巻 - livedoor Blog(ブログ)
自堕落な技術者の日記 : RSAとECDSA、署名生成と署名検証どっちが速い? - livedoor Blog(ブログ)
RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
改良型Winternitz one time署名の提案と安全性評価
Hash-Based Signatures Part I: One-Time Signatures (OTS)
jedisct1/minisign: A dead simple tool to sign files and verify digital signatures.
Criminal use of code signing certificates | Firmware Security
macOSにコード署名チェックをバイパスできる脆弱性 - PC Watch

/GS

MS

/GS (バッファーのセキュリティ チェック)
コンパイラ セキュリティの徹底調査
コンパイラ セキュリティの徹底調査
safebuffers
__security_init_cookie
C++ - Visual C++ Support for Stack-Based Buffer Protection

WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる - ももいろテクノロジー
Beyond Zero-day Attacks(2):スタックに対する攻撃とその対策 (3/3) - @IT
スライド 1
/GS ‐ 通信用語の基礎知識
IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
C言語系/memos/VC++/09, スタック破壊の検出・防止("/GS", "/RTC", "/GZ") - Glamenv-Septzen.net
__security_check_cookie | すなのかたまり
C言語系/memos/VC++/10, "/NODEFAULTLIB"使用時の注意 - Glamenv-Septzen.net
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017でカナリアを有効(/gs)にすると、atoi(0) がスタックオーバーフロー扱いで、例外ハンドラへの遷移を許さずに即時終了する様子。 atoi内部で使っている、パラメータ検査ルーチンにはこんな記述が。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SetUnhandledExceptionFilterは無視されるが、_set_invalid_parameter_handlerを仕込んでおくと、こちらが呼ばれる様子。 うーん、統一的なハンドリング方法を提供して欲しいところ。"

Control Flow Guard

Control Flow Integrity

Control-flow integrity - Wikipedia
Control-Flow Integrity - Microsoft Research
Control-Flow Integrity - Microsoft Research
ccs05.pdf
Control Flow Integrity — Clang 7 documentation
Control-Flow Integrity: An Introduction
Control-flow integrity
Out Of Control: Overcoming Control-Flow Integrity
usenix13.pdf
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM – Google AI
SSTIC2015-Article-control_flow_integrity_on_llvm_ir-fontaine_chifflier_coudray_esfrDAl.pdf
Let’s talk about CFI: clang edition | Trail of Bits Blog
Practical Control-Flow Integrity
Google Online Security Blog: Compiler-based security mitigations in Android P
Kostya Serebryanyさんのツイート: "New security hardening in Android P: CFI and [un]signed-integer-overflow checks. (my team is responsible for the LLVM side of these things) https://t.co/zgylJE9AjW"
Android Developers Blog: Compiler-based security mitigations in Android P
まさみさんは語りたいさんのツイート: "Control Flow Integrityって、コンパイラ屋なのにCFIって略称使うの気持ち悪くないのかな?Call Frame Informationの略でもあるんだけど。"
Google Online Security Blog: Control Flow Integrity in the Android kernel
mumumuさんはTwitterを使っています 「Control-Flow Integrity [CCS '05] いわゆるCFIを最初に(?)提唱した論文.共著でMSに人たちがいて,実装はWindows上でやってるのは面白い.全ての命令の遷移を,instrumentにより,予め与えられたCFGに基づいて妥当かどうか実行時に判断する戦略,直感的でわかりやすい. https://t.co/nvojQmYhqx」 / Twitter
Abadi et al._2005_Control Flow Integrity.pdf

MS

Control Flow Guard (Windows)
Windows 10 Memory Protection Features | Ask Premier Field Engineering (PFE) Platforms
-guard (有効にする Control Flow Guard) | Microsoft Docs
ガード (ガード チェックを有効にする) | Microsoft Docs
-guard (Enable Control Flow Guard)
-GUARD (Enable Guard Checks)
-HIGHENTROPYVA (Support 64-Bit ASLR)
Memory Management Reference (Windows)
Memory Management Functions (Windows)
Memory Management Registry Keys (Windows)
Memory Management Structures (Windows)
Memory Protection Constants (Windows)
Memory Protection Constants (Windows)
SetProcessValidCallTargets function (Preliminary)
VirtualProtect function (Windows)
VirtualAlloc function (Windows)
LoadEnclaveData function (Windows)
CreateFileMapping function (Windows)
Memory Protection (Windows)
VirtualAllocEx function (Windows)
Control Flow Guard (Windows)
Control Flow Guard - Win32 apps | Microsoft Docs
MSRC-Security-Research/BHUSA16_Weston_Miller_Windows_10_Mitigation_Improvements.pdf at master · microsoft/MSRC-Security-Research
Announcing Changes to Microsoft’s Mitigation Bypass Bounty - Microsoft Security Response Center
「Microsoft Edge 97」が安定版に ~学生・研究者に便利なコレクションの引用機能を導入 - 窓の杜

MR201412_Control_Flow_Guard_JPN.pdf
Windowsのセキュリティ機能Control Flow Guard解説 « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CFG export suppression~ « 他人の空似
Run-TimeErrorChecksとBufferSecurityCheck « 他人の空似
Windows開発はclang+lldでも実用レベルか?セキュリティ面から調べてみた « 他人の空似
Rockridgeさんのツイート: "Fx60:Windows版で、firefox.exeがControl Flow Guardに対応。Windows 8.1 Update以降の環境でセキュリティが強化されるという。参照:https://t.co/25VQMWSHXZ https://t.co/J1IuXmnWy5"
Gadgets Zoo: Bypassing Control Flow Guard in Windows 10 - Rafal Wojtczuk Jared DeMott Derbycon 2015 (Hacking Illustrated Series InfoSec Tutorial Videos)
Exploring Control Flow Guard in Windows 10
Manual Control Flow Guard in C « null program
Let’s talk about CFI: Microsoft Edition | Trail of Bits Blog
DerbyCon: Former BlueHat prize winner will bypass Control Flow Guard in Windows 10 | CSO Online
mumumuさんはTwitterを使っています 「Code-Pointer Integrity [OSDI '14] データのRWができる攻撃者からのControl Flow Hijackを防ぐために,Control Flowに影響があるポインタ(Sensitive Pointer)のみ別のメモリ空間に保存し,Instrumentによる安全性の担保を行う.CFI等の既存手法よりも低オーバヘッドで強い保障を与えられるのが売り.」 / Twitter

CET(Control-flow Enforcement Technology)

Fadisさんのツイート: "gcc8からIntel CETに対応する模様。CETはCALL RET等の一部の命令だけが読み書きできるリターンアドレスだけが積まれた裏スタックを作り、従来のスタックとリターンアドレスの比較を行う事でROPを検知する https://t.co/ZQFPQrSZYo"
Control-Flow Enforcement Technology Begins To Land In GCC 8 - Phoronix
るくすさんのツイート: "戻りアドレスをチェックしてROP等の攻撃を防ぐControl-Flow Enforcement Technology (CET)がGCCに追加される予定とのこと。  https://t.co/DKJEXYlI9U"
Intel Posts Control-Flow Enforcement Support For GCC - Phoronix
Rui Ueyamaさんのツイート: "@RKX1209 そういやABI拡張が提案されていた。 https://t.co/zRo7Z2CX23"
RFC: Update x86 psABIs to support IBT

難読化・ROP

pRETzel logic
pRETzel logic

BranchScope

CPU攻撃の新たな手法「BranchScope」、Intel製CPUで実証 - ITmedia NEWS
BranchScope: A New Side-Channel Attack on Directional Branch Predictor
Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」 ~Haswell/Skylakeなどで実証に成功、Intel SGXを突破 - PC Watch
まさみさんは語りたいさんのツイート: "BTB対策の時にBPU(BPB)も対策(分離)されてると思うんだけど、どうだろうか。… "
まさみさんは語りたいさんのツイート: "BPBじゃないBHBだ。SpectreBustersのスライドP25にあるやつ。 https://t.co/zh9yE5dYjb"
まさみさんは語りたいさんのツイート: "SpectreもBranchScopeも、Intelの分岐予測実装が、分岐結果を共有しても意味がない、異なるコンテキストに対して共有しているから、そこをサイドチャネルにしてリークしてる、ということかと思うんで、HWの対策としては同じなんじゃないの?と。"
まさみさんは語りたいさんのツイート: "攻撃側でBHBを読み取る試みをする場合は、ソフトウェアで出来ることは殆ど無いから、攻撃手法として強力なのは分かる。HTをオフにした上で、マイクロコードでCR2変更時にBHB消せるようにするしかないんではないかと。"
まさみさんは語りたいさんのツイート: "あるいはカーネルのスケジューラにisolationレベルを導入して、isolation levelが高いプロセスは、他のプロセスと同じコアを使わせないとか、コンテキスト切替時に只管クリーンナップするとか、特別な手立てを講じることになるんじゃないかな。"
CPUの脆弱性を突く新たなテクニック "BranchScope" の仕組みを読み解く (1) - FPGA開発日記
CPUの脆弱性を突く新たなテクニック "BranchScope" で何が攻撃できるのか?(2) - FPGA開発日記

Spectre

Spectre

Spectre:Variant 1: bounds check bypass (CVE-2017-5753)対策:array_index_nospec(array_ptr)

NetSpectre

Fadisさんのツイート: "NetSpectre: よくある通信プロトコルがリクエストで要求された位置が配列内かをチェックするのを利用して、リモートからSpectre V1を踏ませる。通信の応答時間はSpectre V1以外にも様々な理由で揺らぐが、大量のリクエストを投げて統計的な方法でキャッシュに当たったか判別 https://t.co/o97bcB6P04"
NetSpectre Vulnerability Can Reveal Arbitrary Memory Over Network - Phoronix
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei Daniel Grussさん (Graz, University of Technologyポスドク) 等から NetSpectre: A generic remote Spectre variant 1のペーパーが公開されました https://t.co/lFERTGpr6T"
NetSpectre: Read Arbitrary Memory over Network
20180728

WebKit

webkit/Source/WTF/wtf at master · WebKit/webkit
webkit/Poisoned.h at master · WebKit/webkit
webkit/Poisoned.cpp at master · WebKit/webkit
webkit/PoisonedUniquePtr.h at master · WebKit/webkit
webkit/JSCPoison.cpp at master · WebKit/webkit
webkit/LowLevelInterpreter.asm at master · WebKit/webkit

@xharaken

Kentaro Haraさんのツイート: "世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。"
Kentaro Haraさんのツイート: "こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } un… https://t.co/jqU6n6Gyk4"
Kentaro Haraさんのツイート: "ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)"
Kentaro Haraさんのツイート: "CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへ… https://t.co/fC9k45cW0j"
Kentaro Haraさんのツイート: "よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpe… https://t.co/0gQGqguJu9"
Kentaro Haraさんのツイート: "CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで… https://t.co/FYYt5Nnu1F"

What Spectre and Meltdown Mean For WebKit | WebKit
c - Branchless Overflow Handling - Stack Overflow
End-of-buffer checks in decompressors | The ryg blog
A Branchless UTF-8 Decoder « null program
skeeto/branchless-utf8: Branchless UTF-8 decoder
A Branchless UTF-8 Decoder : cpp
まさみさんは語りたいさんのツイート: "先週末に出てきた別の機能 Array_ptr https://t.co/dkgIBes9Fm これはSpectreV1対策だけど、境界条件チェックをif文なしで行うためのマクロ。境界条件を超えるとNULLが返ってくるようになるので、投機的実行で任意のアドレスにアクセスさせることが出来なくなる。"
LKML: Dan Williams: [PATCH v4 00/10] prevent bounds-check bypass via speculative execution
まさみさんは語りたいさんのツイート: "1月初めに出てきていた Array_ptrの元になったマクロ https://t.co/8OnV6FqMtD これはARM64版のアセンブラを使った実装になっている。CSDBというバリア命令を使う。これはどうやらIntel/AMDがマイクロコードに追加したIBPBみたいな命令らしい。以下のARMのWPにある。 https://t.co/zUOOIHceDk"
LKML: Mark Rutland: [RFC PATCH 0/4] API for inhibiting speculative arbitrary read primitives
prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v2 00/19] prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v3 0/9] core, x86: prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v4 00/10] prevent bounds-check bypass via speculative execution [LWN.net]
まさみさんは語りたいさんのツイート: "最後のミスだけ補足したのは、gccでretpolineを有効にしても、array_ptrを必要なライブラリなどが使わなければ、Spectre V1に対しては脆弱なままだからです。array_ptrは明示的に使う必要があるため、ソースコードの修正も必要になります。"
まさみさんは語りたいさんのツイート: "retpolineについて調べていたはずが、array_ptrの方が闇が深かったという結果になった。"
まさみさんは語りたいさんのツイート: "あっ、この2週間でarray_ptrがarray_index_nospecに変わってる。"
米Red Hat、Spectre脆弱性変種1向けのスキャンツールを公開 | OSDN Magazine
SPECTRE Variant 1 scanning tool - Red Hat Customer Portal

Spectre:Variant 2: branch target injection (CVE-2017-5715)対策:Retpoline

LLVM

[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
⚙ D41760 Introduce __builtin_load_no_speculate
⚙ D41761 Introduce llvm.nospeculateload intrinsic
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..

Intel

Intel Analysis of Speculative Execution Side Channels
Intel® Product Security Center

Google Online Security Blog: More details about mitigations for the CPU Speculative Execution issue
SpectreBustersあるいはLinuxにおけるSpectre対策
https://docs.google.com/document/d/e/2PACX-1vSnV92CM3w9n_IWCGbqb2txXBDNRgkTmQ5LKQEFkCCMMteLH0AHTm79e8z3a0tMx7_u1xc7u42tcZq7/pub?embedded=true
まさみさんは語りたいさんのツイート: "いっそのこと、retpolineのコード(__x86_indirect_thunk)をVDSOでLinuxカーネルから渡すようにしたらいいのではないか(おい)"
まさみさんは語りたいさんのツイート: "残念なお知らせだ。retpolineで遅くなると思って関数ポインタからSwitch-caseベースに変更したprobe eventだが、かえって数ナノ秒遅くなってる。例外はメモリアクセス。"
Makoto Kato ︎︎さんのツイート: "昨日のx86/x64最適化勉強会とか、前のフロントエンドカンファレンスでも思ったけど、SpectreがJITエンジンにも同じ対策を求められることってみんな理解してないのね。コンパイラな解決方法はすべてJITにも言えることで。。。"
鈴木光宏さんのツイート: "https://t.co/W9RAFezHc2 Spectre 脆弱性の実験コード(論文https://t.co/QSBSfSmutm)、FreeBSD-current / Intel Core i5 で見事動作。メモリ上の文字列の取得に成功してます。 git clone して… https://t.co/LL1zO6Paau"
Eugnis/spectre-attack: Example of using revealed "Spectre" exploit (CVE-2017-5753 and CVE-2017-5715)
Retpoline: a software construct for preventing branch-target-injection - Google ヘルプ
はてなブックマーク - Retpoline: a software construct for preventing branch-target-injection - Google Help
Spectre example code
⚙ D41723 Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
Is MSVC also being updated to include the retpoline mitigation? : cpp
Meltdown/Spectreの脆弱性、リスク、対策
Ubuntu 17.10 その195 - MeltdownとSpectreについて知っておくべきこと(前編) - kledgeb
Ubuntu 17.10 その196 - MeltdownとSpectreについて知っておくべきこと(後編) - kledgeb
プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー – がとらぼ
CPUの脆弱性におけるEC2(Amazon Linux、Windows)とECSの対応 - Qiita
SODA Noriyukiさんのツイート: "in-order でも、分岐予測とそれに基づいた命令プリフェッチはあるので、Spectre Variant 2 は可能という話ですかね。… "

Spectre:Variant 4: Speculative Store Bypass (SSB)(CVE-2018-3639)

Twitter

LWN.netさんのツイート: "Spectre variants 3a and 4 https://t.co/9LZeAQYrfq"
Hisaki Oharaさんのツイート: "Variant 4について: Addressing New Research for Side-Channel Analysis https://t.co/PaoH1AepPx"
Hisaki Oharaさんのツイート: "Analysis and mitigation of speculative store bypass (CVE-2018-3639) https://t.co/eBAdoCuRbY"
まさみさんは語りたいさんのツイート: "https://t.co/y3DiunBczh あー、Variant4が出てるなあ。OoO技術、実はボロボロやんけ、というのが2018年にわかった事実。"
まさみさんは語りたいさんのツイート: "Spectre Variant4はMemory Disambiguatorが、他のストア命令に依存しないであろうロード命令を予測するのを騙して、実は依存するロード命令を投機的実行させることにより、それに続く命令をL1キャッシュのデータを元に投機的実行させることが出来る。"
まさみさんは語りたいさんのツイート: "予測機構をだまくらかして、あとで反故にされるデータを利用して投機実行し、足跡をキャッシュに残すというところはSpectre v1/v2と全く同じなのでSpectre v4と呼ばれる。"
まさみさんは語りたいさんのツイート: "Spectre v1はまだソフトウェア的に回避しようがあった(array_ptrとか)けど、このV4のいやらしい所は、完全にプロセッサ内部の機構が勝手にやってることなので、このMDと呼ばれる機能を停止させる他無いっていうところ。"
まさみさんは語りたいさんのツイート: "ハードウェア的に改善するなら、MDで投機的実行をある程度許可してもいいけど、その投機実行中にメモリアクセスがあったら一端投機実行を停止する、という処理になるのかなあ。"
Spectre Variants 3A & 4 Exposed As Latest Speculative Execution Vulnerabilities - Phoronix
Fadisさんのツイート: "Spectre Variant4: いくつかの投機的実行を行うCPUが、書き込み先アドレスが未知のwriteの後ろにあるreadを「多分同じアドレスを読まない」と期待して読んで、writeとアドレスが被っていたらreadをやり直す、という処理をするのを利用して分岐の無い所でSpectreする手法 https://t.co/GKKsCMqMaQ"

Spectre派生の新たな投機実行脆弱性が発表。多数のCPUが攻撃対象に - PC Watch
「Spectre」「Meltdown」脆弱性に新たな変種 - CNET Japan
CPU由来の脆弱性情報(CVE-2018-3639 – Speculative Store Bypass (SSB) (Variant 4) / CVE-2018-3640 – Rogue System Register Read (RSRE) – (Variant 3a)) – 脆弱性情報ブログ(仮)
Kernel Side-Channel Attack using Speculative Store Bypass - CVE-2018-3639 - Red Hat Customer Portal
投機的ストアバイパスを使用したカーネルのサイドチャネル攻撃 - CVE-2018-3639 - Red Hat Customer Portal
Spectre/Meltdownに続くCPU脆弱性、GoogleとMSが「Variant 4」公表 | マイナビニュース
Intel製およびARM製CPUに新たな脆弱性「Variant 4 SpectreNG」 | マイナビニュース
1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
INTEL-SA-00115
CPU脆弱性、新種「Variant 4」の存在が明らかに - CIOニュース:CIO Magazine
CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
“Spectre”脆弱性の新しい亜種、各ベンダーが一斉に製品への影響と回避策を案内 - 窓の杜
Spectre/Meltdown脆弱性の新バリアント2件が公表される | スラド ハードウェア
新たに「Meltdown」「Spectre」関連の脆弱性、IntelはBIOSアップデートの準備 - ITmedia エンタープライズ
Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み - FPGA開発日記
SpectreNG および Variant 3a 脆弱性の WebClass への影響に関して|メンテナンスのご案内|サポート|WebClass|日本データパシフィック株式会社
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供

Spectre SWAPGS(SWAPGSAttack)

New Windows hack warning: Patch Intel systems now to block SWAPGSAttack exploits | ZDNet
【セキュリティ ニュース】「Spectre」に新亜種、「SWAPGS攻撃」受けるおそれ - MSは7月に対処済み(1ページ目 / 全2ページ):Security NEXT
Bypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction – Bitdefender Labs
CVE-2019-1125: Spectre SWAPGS gadget vulnerability - Red Hat Customer Portal
FadisさんはTwitterを使っています: 「CVE-2019-1125: x86_64のLinuxはGSをユーザ空間とカーネル空間で別の用途で使う → システムコール時にSWAPGSでGSを切り替える → カーネルはSWAPGS前にそれをすべき状況か確認する → この分岐の予測を失敗させCPUに誤ったGSを食べてカーネル空間で何かした夢を見せるSpectre https://t.co/EAzoTz5HYq」 / Twitter
Ivy Bridge以降のIntel CPUに投機実行に脆弱性 - PC Watch
More information on SWAPGS and Speculative only Segment Loads
Deep Dive: Intel Analysis of Speculative Behavior of SWAPGS and Segment Registers
Processors Affected: Speculative Behavior of SWAPGS and Segment Registers

Spectre 1.1/1.2

品川 高廣さんのツイート: "Spectre1.1 と Spectre1.2。進化してる。https://t.co/NRjcocZE7t"
[1807.03757] Speculative Buffer Overflows: Attacks and Defenses
「Spectre」関連の脆弱性、また新たに発覚 IntelやARMのプロセッサに影響 - ITmedia エンタープライズ
2018年7月20日号 18.04.1 Server InstallerのCall for Testing,“Spectre” Variant 1.1/1.2。Bounds Check Bypass Store (BCBS):Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Spectre 1.1および1.2の脆弱性が公開された
Spectre 1.1 (CVE-2018-3693) の論文を読む - FPGA開発日記
ROP(Return-Oriented Programming)についての勉強 - FPGA開発日記

SpectreRSB

CPUの脆弱性を突く新たな攻撃手法「SpectreRSB」 - CNET Japan
「Spectre」関連の新たな脆弱性、米研究チームが発表 - ITmedia エンタープライズ

Spectre/MeltdownPrime

Meltdown-Spectre flaws: We've found new attack variants, say researchers | ZDNet
まさみさんは語りたいさんのツイート: "LLC使った攻撃か。違うコアで実行した投機的実行の結果を知ることが出来る攻撃手法というわけだ。> Spectre/MeltdownPrime"
まさみさんは語りたいさんのツイート: "KPTIで防げるのかな?"
satさんのツイート: "新しい脆弱性の名前、MeltdownPrimeとSpectrePrimeだそうです。絶対ふざけて決めただろ https://t.co/IKpZRYZyiA"
1802.03802.pdf
まさみさんは語りたいさんのツイート: "消して埋めさせる方法と、埋めて上書きさせる方法、の違いというか。… "
ZDNet Japanさんのツイート: "CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 https://t.co/TWhDfKj8tH"
まさみさんは語りたいさんのツイート: "元の方法だと「遅い遅い遅い速い遅い遅い」が Primeだと「速い速い速い遅い速い速い」になる、という感じで良いんだろうか。"
まさみさんは語りたいさんのツイート: "MeltdownPrime→KPTIで防げる(アクセス先がない) SpectrePrimeV1→array_index_nospecで防げる(アクセス先が安全) SpectrePrimeV2→retpolineで防げる(V1が防げればOK) 今回はサイドチャネルの作り方の工夫なので対策法はこれまでと同じ。"
まさみさんは語りたいさんのツイート: "そもそもPrime+Probeにハードウェアサイドの対処ってあったっけ?"
CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 - ZDNet Japan
MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols

Meltdown and Spectre
spectre.pdf
図解でわかるSpectreとMeltdown // Speaker Deck
本当にわかる Spectre と Meltdown
chikoskiさんのツイート: "Spectre対策でSharedArrayBufferは無効化されたと思っていたけれど、Chrome68から再び有効になってたのね。c.f. SpectreとSharedArrayBuffer https://t.co/S2XKSFIE0e"
fantastictimers.pdf
chikoskiさんのツイート: "Site Isolation(Rendererプロセスが保持するdocumentを最大で1つに制限する)ことで、iframeを使ったサイドチャネル攻撃に対処したと。https://t.co/kaCAWOsCry"
Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome
SGX After Spectre and Meltdown: Status, Analysis and Remediations | Firmware Security
SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution | Firmware Security
Windowsアーキテクチャー、Meltdown and Spectre、メモリ、オブジェクト
20180505
【CPU】 Intel CPUに新たな脆弱性『Spectre Next Generation』?ドイツメディアが報じる : ニッチなPCゲーマーの環境構築
インテル® コンパイラーを使用して投機実行サイドチャネルの問題を緩和 | iSUS
日記 (2018 年 1 月中旬)
Long-Term Web Browser Mitigations for Spectre - Google ドキュメント
【連載】SperctreやMeltdownを根本から防ぐSafeSpec | マイナビニュース

micro-opキャッシュ

FadisさんはTwitterを使っています 「新種のSpectreの話。x86プロセッサのmicro-opキャッシュの振る舞いを観測することでSMTでこのキャッシュを共有する隣のスレッドからプロセスの動きを覗き見する。既存のmitigationはこのキャッシュに対する攻撃を想定しておらず、この攻撃はIntelでもAMDでも有効らしい https://t.co/p72yTNMXuf」 / Twitter
New Spectre Variants Discovered By Exploiting Micro-op Caches - Phoronix
isca2021a.pdf
FadisさんはTwitterを使っています 「x86は命令が複雑なため、CPUは内部でx86の命令列をより簡素な命令列(micro-op)に翻訳しながら実行している。頻繁に実行する命令列に対してこの翻訳を省略するためにCPUは翻訳済みのmicro-opのキャッシュを持っている。キャッシュにヒットすれば命令が片付くのが速くなるので、あとはいつものSpectre」 / Twitter
FadisさんはTwitterを使っています 「micro-opキャッシュはCPU毎に仕様が異なり、ドキュメント化されている情報も少ないため今まで安定したサイドチャネル攻撃には使えなかったが、ドキュメント化されていない部分を気合のリバースエンジニアリングで何とかして安定してサイドチャネル攻撃を行えるようにしたらしい」 / Twitter
FadisさんはTwitterを使っています 「まぁ、やっぱりハイパースレッディングはオワコン、という話でしかないわけだが」 / Twitter
とみながたけひろさんはTwitterを使っています 「よーわからんが、uops cacheに入ってると全ビット一致しなくても実行してしまう、みたいなのを使ってるの? しかしDefenselessとはなかなかすごい名前だ」 / Twitter
Computer scientists discover new vulnerability affecting computers globally -- ScienceDaily
New x86 micro-op vulnerability breaks all known Spectre defenses | Hacker News

MS

その他

投機実行の脆弱性修正、Haswell世代以前では性能への影響大 ~I/O集中型アプリケーションを利用するサーバーは慎重な選択を。AMDはほぼ影響受けず - PC Watch
Microsoft、Intelの脆弱性対策を無効化する緊急アップデートを配信 ~適用で再起動問題を回避、Windows 7/Haswell以降が対象 - PC Watch
【特集】Spectre V2対策による性能低下を緩和する「Retpoline」の効果を確認する - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
Microsoft、Skylake用のSpectre V2対策コードを提供開始 - PC Watch
Windows月例更新でVIAプロセッサにもSpectre/Meltdown対策が盛り込まれる ~ただしAvast、Avira、Sophosと競合する不具合 - PC Watch
「Windows 10 19H1」、「Spectre Variant 2」対策にグーグルの「Retpoline」を採用へ - ZDNet Japan
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - ZDNet Japan
緊急パッチだけではプロセッサ脆弱性対策は不十分――Spectre&Meltdown対策状況を再チェック:山市良のうぃんどうず日記(117:緊急特別編) - @IT
山市良のえぬなんとかわーるど: 仕事始めは Windows Update から(例の Intel/AMD/ARM CPU 問題に関する追記あり)
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題にフルアーマーな PC
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題の Windows 関連の続報(リンクまとめ+α)
Project Zero: Reading privileged memory with a side-channel

Mitigating speculative execution side-channel attacks in Microsoft Edge and Internet Explorer - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
Update on Spectre and Meltdown security updates for Windows devices | Windows Experience Blog
Windows Analytics で Meltdown と Spectre への対策状況が評価可能に - Windows Blog for JapanWindows Blog for Japan
Windows クライアントで投機的実行のサイドチャネルの脆弱性から保護する
Protect your Windows devices against speculative execution side-channel attacks - Windows Help
CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護 | Microsoft Docs
Windows システム上の Spectre および Meltdown に対する緩和策のパフォーマンスへの影響について - Microsoft Security Response Center
2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Intel Prepares "Enhanced IBRS" As Better Spectre V2 Protection For Future CPUs - Phoronix
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community - 295618
Spectre mitigations in MSVC | C++ Team Blog
Spectre mitigation changes in Visual Studio 2017 Version 15.7 Preview 3 | C++ Team Blog
Spectre diagnostic in Visual Studio 2017 Version 15.7 Preview 4 | C++ Team Blog
Mitigating speculative execution side channel hardware vulnerabilities - Microsoft Security Response Center
Analysis and mitigation of speculative store bypass (CVE-2018-3639) - Microsoft Security Response Center
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge

Google

Project Zero: Reading privileged memory with a side-channel
Google Online Security Blog: Today's CPU vulnerability: what you need to know
Google、CPU脆弱性“Meltdown”“Spectre”の緩和策を「Google Chrome 64」へ導入 - 窓の杜
Site Isolation - The Chromium Projects
Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects
Product Status - Google ヘルプ
RealJTG/Meltdown: Meltdown PoC for reading passwords from Google Chrome.
「Google Chrome 66」が正式版に ~新しい開発者機能とセキュリティ・安定性の向上策 - 窓の杜
「Google Chrome 67」が正式版に ~“Spectre”脆弱性の緩和策“サイト分離”をテスト - 窓の杜
なかのん&マジックさんのツイート: "Site Isolationでメモリ使用量1割増、か…… / Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome https://t.co/Akgcac45is"
なかのん&マジックさんのツイート: "Spectreはプロセス境界どころかそれ以上に越境できてしまうのが問題という認識だったんだけど、Site IsolationでSharedArrayBufferを復活させても大丈夫なもんなの?"
なかのん&マジックさんのツイート: "とっとと対策したCPU出てよ、とは思う、そもそも。"
Google Developers Japan: Chrome の Site Isolation で Spectre のリスクを軽減する
Googleの研究者ら曰く、Spectre脆弱性の修正は難しい | スラド
1902.05178.pdf
Google Says Spectre And Meltdown Are Too Difficult To Fix
CPU脆弱性「Spectre」の概念実証と脆弱なエンドポイントを探す拡張機能「Spectroscope」をGoogleが公開 - GIGAZINE

Mozilla

Meltdown と Spectre
Rockridgeさんのツイート: "MozillaはSpectre/Meltdown問題への当面の対策をFirefox 57.0.4に投入する模様。対策にはSharedArrayBufferの無効化が含まれる。参照:https://t.co/wMmPg7YCtU https://t.co/bN5nYqiV3t"
Mitigations landing for new class of timing attack | Mozilla Security Blog
sharedarraybuffer webassembly - Google 検索
Kazuho Okuさんのツイート: "Meltdown / Spectre 脆弱性の悪用防止のため、高精度のタイマー実装に使うことのできる SharedArrayBuffer が一時利用不可能に / “Mitigations landing for new clas…” https://t.co/rHZAnVN8Og"
more on Meltdown and Spectre | Firmware Security
Mozilla、「Firefox」v57.0.4を公開 ~CPU脆弱性“Meltdown”“Spectre”へ対策 - 窓の杜
Ryou Ezoeさんのツイート: "SharedArrayBufferを高精度タイマーに使うのってどうするんだろ。"
Kazuho Okuさんのツイート: "@EzoeRyou ServiceWorker(要は別スレッド)でビジーループでカウンタアップテードさせる"
Rockridgeさんのツイート: "Fx59:Spectre対策として、デフォルトのタイマー解像度を2ミリ秒に落とした。従来は0.02ミリ秒だった。 / “1435296 - Reduce Timer Resolution to 2ms” https://t.co/TJWWKoS4GM"
Rockridgeさんのツイート: "Project Fissionでは、サイト単位でcontentプロセスを分離することによって、Spectre問題への対策とする。 / “Project Fission - MozillaWiki” https://t.co/LjbKftTgA1"
Project Fission - MozillaWiki
Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE
「Firefox 94」正式版リリース、期間限定の公式カラーテーマが登場 - GIGAZINE

Linux

Mitigation Status by Kernel Version | Intel® Software
2018年1月10日 Linus,Intel相手に“おこ始め”―「メルトダウン」で幕開けの2018年:Linux Daily Topics|gihyo.jp … 技術評論社
2018年1月22日 Meltdown/Spectreの影響は大きく… Linus,Linux 4.15のリリースを1週間延期しRC9を公開:Linux Daily Topics|gihyo.jp … 技術評論社
投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 - Red Hat Customer Portal
Red Hat Enterprise Linux パラメーターで、CVE-2017-5754、CVE-2017-5715、および CVE-2017-5753 で提供されているマイクロコードおよびセキュリティーのパッチによるパフォーマンスへの影響を制御する - Red Hat Customer Portal
LinuxカーネルにおけるMeltdownとSpectre問題の脆弱性対策が出来ているかどうかを調べるコマンド: Project Valkyrie
OSがMeltdownとSpectreに対応しているか確認する | 普段使いのArch Linux
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年前のSpectre対策(Retpolines)で、Linuxのファイルシステム用AES暗号(AES-XTS)が 1/2~1/3に速度低下していたが、最近の数行パッチでほぼ回復という話。 https://t.co/2VNdIYbnFP」 / Twitter
AES-NI XTS To See 2~3x Performance Recovery After Regressing Hard From Retpolines - Phoronix
Satoshi TandaさんはTwitterを使っています 「Linux/KVM gets the core scheduler for L1TF/MDS with SMT configuration. For other hypervisors, this talk has a nice summary of their states (in the slide 31) https://t.co/IWuseV6XPz」 / Twitter
KVM Forum 2019: Core-Scheduling for Virtualization: Wher...
Satoshi TandaさんはTwitterを使っています 「For the basic mitigations through flushing caches, here is a handy list of implementations in some of major HVs: (I was supposed to be working on entirely different things this weekend but ended up discovering myself compiling this list somehow🤷🏻)」 / Twitter
Satoshi TandaさんはTwitterを使っています 「KVM: vmx_l1d_flush/mds_clear_cpu_buffers Xen: vmx_add_msr (*) VMware WS: HVResumeLowLevel vbox: INDIRECT_BRANCH_PREDICTION_AND_L1_CACHE_BARRIER ACRN: cpu_l1d_flush/cpu_internal_buffers_clear bhyve: vmx_init (*) (*) uses the MSR load list, avoiding a race with NMI」 / Twitter

BSD

SpeculativeExecutionVulnerabilities - FreeBSD Wiki
第131回 影響範囲広大プロセッサバグ「Meltdown」と「Spectre」,各プロジェクトの対応現状ほか:BSD界隈四方山話|gihyo.jp … 技術評論社
第133回 OpenBSD on iTWire:BSD界隈四方山話|gihyo.jp … 技術評論社
第136回 FreeBSDのMeltdown/Spectre対策:BSD界隈四方山話|gihyo.jp … 技術評論社
第137回 FreeBSDのMeltdown/Spectre対策,11系にマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第138回 OpenBSD,Meltdown対策機能をマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第139回 OpenBSD,Meltdownバイナリパッチ提供開始:BSD界隈四方山話|gihyo.jp … 技術評論社
第142回 FreeBSD Meltdown対策機能による性能影響ベンチマーク:BSD界隈四方山話|gihyo.jp … 技術評論社

blog

Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama|note
Meltdown、Spectre、およびシスコのクラウド コラボレーション セキュリティ
Spectre & Meltdown を防ぐマイクロアーキテクチャSafeSpecの論文を読む - FPGA開発日記
2015年以降のインテルCPUの脆弱性チェックプログラム - 発声練習
山市良のえぬなんとかわーるど: Intel マイクロコード アップデートが再配布?(自動的な再起動にご注意)
CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
Google Online Security Blog: A Spectre proof-of-concept for a Spectre-proof web
SharedArrayBuffer と過渡期な cross-origin isolation の話

News

BHI(Spectre-BHB)

CPUの脆弱性「Spectre」に対応してAMDがリリースしたパッチに問題があることをIntelが発見 - GIGAZINE
AMD CPUは、改訂されたSpectre-v2緩和策によるパフォーマンスの低下が10%未満であると見ています|自作.com
2022年3月14日 Linux 5.17-rc8が公開,新たな脆弱性判明で正式リリースは3/20以降に:Linux Daily Topics|gihyo.jp … 技術評論社

【連載】新たな脅威 - SpectreとMeltdown | マイナビニュース
動的プロセス分離はクラウドシステムでSpectreの対処に役立つ
Mitigating Spectre and Other Security Threats: The Cloudflare Workers Security Model
Dynamic Process Isolation: Research by Cloudflare and TU Graz
[2110.04751] Dynamic Process Isolation
現行のSpectre防御を無効にする新たなエクスプロイト、修正はパフォーマンスに影響
Intel、第8~6世代CPUで脆弱性対策後のベンチマーク結果を公開 ~性能低下はおおむね数%以内 - PC Watch
Intel、Sandy BridgeからKaby Lakeのシステムで“再起動問題”が発生中 ~投機実行脆弱性アップデートが影響 - PC Watch
Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 - PC Watch
Spectre/Meltdown脆弱性を利用したマルウェアが発見 - PC Watch
Intel、Skylake向けのSpectre脆弱性対策マイクロコードの提供開始 ~Sandy Bridge以降向けも近く提供か - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
「LLVM 6.0」リリース | OSDN Magazine
SpectreとMeltdownの詳細
CPU“脆弱性問題”の現状と対策 ~セキュリティは? パフォーマンスは? ユーザーへの影響を確認する - PC Watch
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - CNET Japan
大原雄介のエレ・組み込みプレイバック:収束しない現代的CPUの脆弱性と、苦境を脱せないQualcomm (1/3) - TechFactory
IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
20180616
Boffins offer to make speculative execution great again with Spectre-Meltdown CPU fix • The Register
Your Title Here
まさみさんは語りたいさんのツイート: "かなりストレートな解法ですが、まあそれしかないのかも。… "
fjのYog教祖様さんのツイート: "シャドウキャッシュの管理の仕方次第ではあるだろうが、ほぼ間違いなく「シャドウキャッシュの内容による速度変化」を引きずり出す方法が発見されて終わるだけだと思う。… "
まさみさんは語りたいさんのツイート: "そうですね。SpectreはL2以下のキャッシュの方が影響が大きい気がするんだけど、L1だけで大丈夫か??という。… "
Debian10アートワーク募集中🍥さんのツイート: "IntelのCPUセキュリティバグ、どうやらIntelはDebianとOracleには事前に開示しなかった&Red Hat・SUSE・Canonicalには情報の共有を禁じていたようですね。いやはや。。。 https://t.co/0VWEyQLU51"
​Linus Torvalds talks frankly about Intel security bugs | ZDNet
Debian10アートワーク募集中🍥さんのツイート: "結局、現在はきちんといつもどおりの情報共有ができるようになり対応がスムースになってるようなので、今回の件をハンドリングしたIntelの中の人がおかしな判断をした、ということなのですが。"
IT業界を根幹から揺るがした脆弱性「Spectre」「Meltdown」はCPUのパフォーマンスにどんな爪痕を残したのか? - GIGAZINE
FadisさんはTwitterを使っています 「Phoronixによる「各世代のCPUでCPUの脆弱性の対策を行なった場合と行わなかった場合で、どのくらい性能に差が出るか」を計測したベンチマーク。7ページ目のシステムコール、コンテキストスイッチが頻発するタイプのワークロードの場合が大惨事 https://t.co/hqVcWPTD5f」 / Twitter
A Look At The CPU Security Mitigation Costs Three Years After Spectre/Meltdown - Phoronix

GitHub

mniip/spectre-meltdown-poc: A semi-demi-working proof of concept for a mix of spectre and meltdown vulnerabilities
ryanlayer/giggle: Interval data structure
crozone/SpectrePoC: Proof of concept code for the Spectre CPU exploit.
lgeek/spec_poc_arm: Dump privileged ARM system registers from usermode using variant 3a of Meltdown
paboldin/meltdown-exploit: Meltdown Exploit PoC
ryoさんのツイート: "https://t.co/xzyDUqtftW だとN/core-i7でもkernel領域読めた。思ったより成功確立低い。というか特定のアドレスしか成功してないように見える。Intelの謎キャッシュポリシーの影響もあるんだろうなぁ。https://t.co/6kqdx398ux"
HarsaroopDhillon/Meltdown: Meltdown POC
Intel Ivy Bridge Cache Replacement Policy « Blog
IAIK/meltdown: This repository contains several applications, demonstrating the Meltdown bug.
lsds/spectre-attack-sgx: Spectre attack against SGX enclave
GitMirar/meltdown-poc: A PoC implementation of the meltdown attack described in https://meltdownattack.com/meltdown.pdf
ionescu007/SpecuCheck: SpecuCheck is a Windows utility for checking the state of the software mitigations against CVE-2017-5754 (Meltdown) and hardware mitigations against CVE-2017-5715 (Spectre)
idea4good/spectre: Demo Spectre with 70 lines code

Qiita

MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap) - Qiita
LinuxコアメンバーによるMeltdownとSpectre 対応状況の説明 - Qiita

Wikipedia

Spectre - Wikipedia
Spectre (security vulnerability) - Wikipedia
Spectre (security vulnerability) - Wikipedia

Twitter

その他

dynamic function

まさみさんは語りたいさんのツイート: "あー、休み中にSteveがdynamic functionとかいうのを作ってる。ちょっと調査中。 https://t.co/Q6cS65C7gG"
[POC][RFC][PATCH 1/2] jump_function: Addition of new feature "jump_function"
まさみさんは語りたいさんのツイート: "retpolineで遅くなるので、代わりに固定long jumpするトランポリンコードを作っておき、それを使う、というアイデアなんだろうか?なんかSpectre対策になら無さそうだけど。"
まさみさんは語りたいさんのツイート: "多分これはtracepointがretpolineに置換されてしまうという問題に対する回答だけど、これだとalternativesで良くね??"
まさみさんは語りたいさんのツイート: "またマルチスレッドで実行される場合でも、全スレッドを対象にして実行パスを書き換える用途でしか使え無さそうなので、spectreに対するgenericな解ではないと思う。強いて言えば、プレースホルダ付きoptprobeみたいなものへの置換。"
まさみさんは語りたいさんのツイート: "同じツッコミをPeterZがしてた(笑)。… "
まさみさんは語りたいさんのツイート: "あー、なるほど。合点がいった。関数コールをあとから埋め込もうとすると、引数を渡すコードを事前に生成しておかないといけない。それを作らせるために最小関数をアセンブラで作り、それをコールするコードをコンパイルすれば引数準備のコードは実装できると。"
まさみさんは語りたいさんのツイート: "optprobeは性質上あとからレジスタなどを保存して参照できるようにするけど、これは呼び出し元で引数を保存する。本当にretpolineを避けるためだけの構造のようだ。"
まさみさんは語りたいさんのツイート: "retpolineの問題は、対象となる間接参照呼び出しが、スレッドコンテキスト依存の呼び出しなのか、単にplugableな呼び出しなのかを区別せずに適用されてしまうこと。前者はretpolineが必要だが、後者はlivepatchで静的呼び出しに変更できる。これは後者の問題を解くもの。"
まさみさんは語りたいさんのツイート: "Livepatchと違い、consistencyを考慮しないでいい部分についてはこの dynamic functionを使えば良いわけだが、そのためにjmpするトランポリンを設けなくても良いのではないか、というコメントを入れておいた。そもそもデフォルト関数を実装するならそれを変更したら良いと。"

Spectre

さてはGentooだなオメーさんのツイート: "RHELがパッケージとして配布したSpectre variant 2対策のmicrocodeは一部環境で問題があったので差し戻し、今後RHELとしてvarant 2対策のmicrocodeをリリースする予定はない。CPU製造元に問… https://t.co/8Tm70ZTI2s"
What CPU microcode is available via the microcode_ctl package to mitigate CVE-2017-5715 (variant 2)? - Red Hat Customer Portal
Hajime Tairaさんのツイート: "一律同じ microcode を配ったところ、大量のメモリーを搭載できるハイエンドサーバーの一部に影響が出まして…。… "
さてはGentooだなオメーさんのツイート: "恐ろしやー。ちなみにこのリンク先、英語は全公開なのに日本語は隠れてて悲しいです。… "
まさみさんは語りたいさんのツイート: "IBPBって何かと思ったらIndirect Branch Speculation Barrierっていう新しいマイクロコードなんだね。ていうか、新しいマイクロコードの命令を直接使うコードが追加されたぞ・・・。"
まさみさんは語りたいさんのツイート: "Spectre対策を色々探っていると非常に深い。この3週間ぐらいで色んなテクニックが試されている。んで、決定版になっているのがどれかと言うとよくわからない。"
まさみさんは語りたいさんのツイート: "ひとつだけ確かなのは、Spectre V2対策は未だに決定版がなく、いくつかのテクニックを駆使して修正が行われている最中であり、しかもカーネルだけじゃなくユーザアプリも修正が必要で、コンパイラを変えるだけではなくソースコードも修正が必要になるっていうことで影響が大きい。"
まさみさんは語りたいさんのツイート: "昨日出てきた新機能。IBPB https://t.co/9WrTuIzfCV AMD/Intelが導入した新しいマイクロコード命令を使うためのマクロ。MSR越しに呼び出すと、間接分岐命令の分岐先がロードされるまで、投機的実行を止めるものらしい。"
LKML: KarimAllah Ahmed: [RFC 00/10] Speculation Control feature support
Hiromichi Itouさんのツイート: "IBRSを利用するために必要なmicrocodeを導入すると再起動する確率が上がるという問題が解決していないので、代替案としてretpolineによる対策を準備しないといけない勢なので、先週からコンパイルばかりしている。"
IntelによるSpectre対策のアップデート、Core iシリーズのほぼ全世代で不具合が出る可能性 | スラド セキュリティ
Intel Sightings in ESXi Bundled Microcode Patches for VMSA-2018-0004 (52345)
まさみさんは語りたいさんのツイート: "IBRSはSpectre V2向けのマイクロコードで提供される機能のようだが、プロセッサによってはうまく動かない模様なので、Retpolineによる緩和策を使うほうが低リスクかもしれん。やることは多くなるけど。"
まさみさんは語りたいさんのツイート: "IBPBのパッチシリーズの先にIBRSの機能も追加されていた。IBRSはこれも新しいマイクロコードの機能で、Indirect Branch Speculationを止める。提出されたパッチではカーネル空間に入る時に全てのIBSを止めるっぽい。"
まさみさんは語りたいさんのツイート: "RetpolineがあるからIBRSなんて要らないじゃーん?って思ったあなた、大体あってる。問題はRetpolineは半分コンパイラのお仕事になるんだけど、コンパイラが古いと対応できないこと、CONFIG_RETPOLINE=nでビルドされちゃうかもしれないことから、IBRSが必要になる。"
まさみさんは語りたいさんのツイート: "Spectre V2緩和策のオプションとして、IBRSかRetpolineかを選べるようになる模様。基本的にはAutoでいいけど、コンパイラの更新(Retpoline)か、マイクロコードの更新(IBRS)をした上で、カーネルの再構築が必要になる。"
まさみさんは語りたいさんのツイート: "おっと、重要な情報です。この脆弱性はLivepatchでは対処できません。"
まさみさんは語りたいさんのツイート: "たしかにこのシリーズ、indirect_branch_prediction_barrier(IBPB)と(un)restrict_branch_speculation(所謂IBRSの有効・無効コード)が混ざっていて分かりにくいんだよね。最初の4つはIBPB、後の6つはIBRSで、それぞれ使う所が違う。"
まさみさんは語りたいさんのツイート: "両方共Intel/AMDがマイクロコードでSpectre V1とV2に対応しようとして追加した機能なんよ。"
まさみさんは語りたいさんのツイート: "ごめん、IBPBもIBRSもIndirect Branchを安全にするためだからどっちもSpectre V2向けだった。"
まさみさんは語りたいさんのツイート: "もしかして、ARMはSMTサポートしていないから、スレッド間でBTBを共有する可能性がないので、Spectre V2対策はプロセス間とプロセス/カーネル間で逐次BTBフラッシュするだけでOKなのか?"
satさんのツイート: "SpectreとMeltdownはモノがモノだからしゃあないんだが、ソフトの対策、石の対策が入り混じってて何が何だかわかりにくい"
まさみさんは語りたいさんのツイート: "ソフトウェアの緩和策は可能だけど適用されるのに時間がかかるし、石の緩和策もソフトウェアの更新は必要だし型番によってはリスクもある。ハイブリッドで環境によって選んでくださいっていうのをもりもり入れているのが現状ですね。… "
satさんのツイート: "これ、こないだひらまつさんがついーとで言及してたamazonのような情報が集まる位置に居続ける企業でなければ、相当対応がキツいでしょうね… "
まさみさんは語りたいさんのツイート: "IBPBとIBRSについては、ハードウェア(マイクロコード)側で妥協できるならあのラインだろうと思うので、機能が無意味だとは思わない。 が、あんなものでお茶を濁そうとしてるなら、Linusのように怒っていい。いずれにしても新しい世代ではもっとスマートなBTBを導入する必要がある。"
まさみさんは語りたいさんのツイート: "Hyperthreadに対応したBTBと、リングによってBTBを切り替える機能、およびページテーブル切り替え時にBTBを消去する機能があれば、全体的な性能の低下はあってもV2対応は可能だろう。"
まさみさんは語りたいさんのツイート: "めんどくさいのはV1対応なんだよなー。リタイアしてない命令が引き起こしたキャッシュアクセスをなかったことにする、とかが根本解決になるけど、これはめんどくさそう。"
まさみさんは語りたいさんのツイート: "IBPBのパッチは最終的に取り込まれた模様?ちゃんと追いかけないとだけど、IntelかあらIBPBシリーズ前提で拡張パッチが出されている。"
Re: [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
まさみさんは語りたいさんのツイート: "https://t.co/3HeYfQA9Wp Intelの今後の動向がすけて見えるコミット"
[PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
高梨陣平さんのツイート: "VancouverでのLinuxカンファレンスにおいてLinusが対談。IntelのCPUの脆弱性Spectreについて語った。彼は投棄実行自体には問題が無くやるべきで、やるべきでない問題のある投棄実行も知られていたと語った。Intelの当初の対応は酷く彼は自分達が原因でないのに働くのは不公平に感じたと主張(続… https://t.co/lBFzbaEATS"
高梨陣平さんのツイート: "2つ、3つしか存在しなかったと振り返った。SpectreのLinusに対する影響は多大で4.19のマージウィンドウは通常、2週間で終わるものの、公開できないパッチを含んだためにとてもストレスの大きなものだったと述べた。しかしこの問題を超えて良い結果としてLinuxとWindwosの開発者がCPU脆弱性について協力"
高梨陣平さんのツイート: "できるようになったとKroah-Hartmanは述べた。我々は素晴しい裏ルートを手に入れた。御互いに議論し、バグを潰していると言う。5年前に誰が予想できただろうか?(終)"
まさみさんは語りたいさんのツイート: "うーむ、static callのパッチをレビューしようとしたけど、前提条件として役に立つかというと微妙すぎるのでコメントしづらい。indirect callがretpolineのせいで遅くなるのでstatic callに自己書き換えしようという話だけど、適用先が限定的すぎる(コンテキスト依存な場所では使えない)。"
まさみさんは語りたいさんのツイート: "コンテキストに依存しないindirect callってどれだけあるのかというと微妙すぎるし、pv_opsぐらいかなあ。tracepointは関数の引数を準備するところをスキップするjump labelを使っているので意味がある。"
まさみさんは語りたいさんのツイート: "jump labelと併用すればいいんだっけ?いや、ないか??"

TLB

まさみさんは語りたいさんのツイート: "うーん、speculative page table walker問題というのがあり得るのか。投機的にTLBをフィルする挙動がテンポラリにマップしたページをTLBにキャッシュするらしい。"

Linux

とみながたけひろさんのツイート: "Linuxといえどもガチヤバい脆弱性だったらコア開発者だけで公開MLとかなじゃない、非公開のメールのやり取りでパッチ作成するよね…しないのかな(←わかってない)"
KOSAKI Motohiroさんのツイート: "もちろん非公開でやります。非公開MLでだけ、なぜやばいのかを「具体的に」説明してLinusの承認をもらいます。というか、securityをハンドルするMLはコア開発者もあんまり入ってなくて専業メンテなとdistro security屋がハンドルしつつ、関係ある人が個別にCCされて… https://t.co/o7mJ87X2Xu"
とみながたけひろさんのツイート: "@kosaki55tea なるほど。パッチができることよりもパッチを適用することのほうが困難かつ重要だったりするので、そういう運用になるのはよくわかります"
Kazuki Oikawaさんのツイート: "Threadripper + 4.14.14 bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2… "
Kazuki Oikawaさんのツイート: "あ、/proc/cpuinfoの情報もいつの間にか変わってた bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "/proc/cpuinfoのbugs欄の出方が変わってる 前 bugs : cpu_insecure 4.14.13-300.fc27 bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ sysfsの/sys/devices/system/cpu/vulnerabilitiesというディレクトリにcpuの脆弱性情報があるということを知った… "
まさみさんは語りたいさんのツイート: "KPTI有効にしたカーネルつかっても、デスクトップだとそれほど有意な違いを感じない。多分グラフに取ってないとわからない。"
まさみさんは語りたいさんのツイート: "PTIはCONFIG_PAGE_TABLE_ISOLATIONで、Security optionsに含まれているがデフォルトで有効になる。"
henrichさんのツイート: "いやいや、マイナーリリースごとにバイナリリビルドするバイナリディストロなんて聞いたことないんですが。。。… "
henrichさんのツイート: "私が知らないだけで実は存在してるのかしら?(開発版をFTBFS洗い出しでビルドし直しはテストとして実施はするだろうけど。。。)… "
hitoさんのツイート: "しない状態で今まで来ていて、「Repolineするためにはもしやこれは全部リビルドしてリリースせんといかんのではQAどうしよう」つーてみんな頭を抱えてる認識。… "
henrichさんのツイート: "そう(リビルド)すべきもんだろ?という立場から言ってるのであれば、実施する際のトレードオフ考えたら妥当な結論(毎度リビルドしてリリースとかあり得んだろ)ということで… "
Fadisさんのツイート: "現在Intel CPU上で動くLinuxはSpectre/Meltdown対策がデフォルトで有効だが、Atom N270等のin-order実行のCPUにはこれらの脆弱性は無いから、これらのCPUでは対策をデフォルトで無効にして貧弱なネットブックが不必要に更に貧弱になるのを防ごう、という提案がなされている https://t.co/xMyBKxG4kc"
Spectre V2 & Meltdown Linux Fixes Might Get Disabled For Atom N270 & Other In-Order CPUs - Phoronix

microcode

HT, ベンチマーク

インテルがセキュリティパッチの影響示すベンチマーク公表禁止に?--オープンソース界の著名人が批判 - ZDNet Japan
Intel、脆弱性パッチ適用前後のベンチマーク比較禁止の規約を撤回 ただしパフォーマンスはお察しの模様 | ジサクテック
Hideyuki Tanakaさんのツイート: ">Intelが沈黙の誓いを立てているのには、仮想マシンをForeshadowの脅威から保護するためにHyper-Threading機能をオフにする必要があり、それによりパフォーマンスに大きな影響が出るからである。 (´・_・`)なるほどなあ…"
Hideyuki Tanakaさんのツイート: "IntelのHTはもう終わりです…(´・_・`)次の何とかレイクが8コア8スレは正解(´・_・`)Intel自身が一番分かってたんだな"
Hideyuki Tanakaさんのツイート: "TLBleedだけじゃなくて今回見つかったForeshadowも結局HT無効化しか対処法がなくて、実質的にもう現アーキのHT死んでるんすね(´・_・`)"
Tsuzuさんのツイート: "HTTって全然効果実感したことないんだけどそんなに効果あるんですかね"
Hideyuki Tanakaさんのツイート: "(´・_・`)どーなんだろ?レイテンシ隠しには使えるんじゃないんすかね。僕が昔実感した例としては、めっちゃでかいメモリから二分探索を超大量に行うようなアプリでは、ほぼ演算器が回らないので、HTで性能倍になりましたけど、まあこんなのはよっぽどなケースですよね"
Hideyuki Tanakaさんのツイート: "まあそれに最近はHT前提で平均的なコードの命令レベル並列性よりも多くの演算器搭載してるかもしれないし?いやあれ1スレで使い切れる前提なのかな?よーわからんすけど"
Tsuzuさんのツイート: "いまいちどういう場面でHTTが効果を発揮するかわかってないんだけど、以前clangのビルドをした時は並列数を論理コア数でやるより物理コア数でやったほうが早かったので良くわからなかった"
Hideyuki Tanakaさんのツイート: "clangのビルドとか整数演算器しか使わない上に、コンパイル自体はそんなに巨大なメモリを必要としないから、ほぼキャッシュに入って演算器もフルで回るようなタスクになってるんじゃないんすかね。あまりHTきかないタスクだと思う。"
Hideyuki Tanakaさんのツイート: ">Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading. 新しいバグ(TLBleedとT1TF)を解決するには、新しいマイクロコードと、コーディングワークアラウンド「と」、SMT/ハイパースレッディングの無効化を要する。 (´・_・`)とな"
Hideyuki Tanakaさんのツイート: "https://t.co/AJLWIRLIt8 >Disable SMT/Hyperthreading in all Intel BIOSes >2018-08-23 18:35:22 (´・_・`)ふーん"
Lucas Holtさんのツイート: "Performance is so bad on the latest spectre patch that intel had to prohibit publishing benchmarks https://t.co/Et8FfNr6EZ"
Intel Publishes Microcode Security Patches With No Benchmarks Or Profiling Allowed - Slashdot
まさみさんは語りたいさんのツイート: "よし、HTが使えない今がARMサーバ飛躍のチャンス・・・"

Shirouzu Hiroaki(白水啓章)さんのツイート: "1/5とはすごい速度低下。 でも、ページ単位かそれ以上でのまとまったI/Oだとすると(=TLBに優しく、ユーザ/カーネル間の遷移も多くない?)、MeltdownやSpectre対策がどう具体的に影響したのか、想像がつかない…… "
SODA Noriyukiさんのツイート: "これ、仕事関係で問題になったことがあって、業務に差し支えるんですが… https://t.co/KAKhYw4JO6 meltdown/spectre のパッチ当てたら RAID の BBWC へ同期書き込み性能が 1/5 以下に低下したことがあった。"
Hideyuki Tanakaさんのツイート: "(´・o・`)・・・。 / “Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック” https://t.co/fcdgMTSq3q"
Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック
SODA Noriyukiさんのツイート: "これは512バイト単位でO_BINARYモードで書き込む計測でした。そのマシンは(RDBじゃないんですが似たような)ジャーナリング・ファイルの書き込みがボトルネックになるので、write(2)がRAIDのメモリキャッシュに書き込む部分の性能が最重要で、システムコール性能の低下が強烈に出たようです… https://t.co/BX7RhItZCj"
SODA Noriyukiさんのツイート: "あ、間違えた。O_BINARYじゃなくてO_DIRECTです。(O_BINARYってMS-DOS時代から数十年使ってないオプションなのに、なぜここで出てくるのか…^^;… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、小さなO_DIRECTはそれ自体でやたらと遅いですよね。(大きくするか非同期I/Oと組み合わせないと、実用的な速度にならない) でも、Meltdown/Spectre対策をすると、それも目でないくらい、write自体の(トランザクションの?)オーバーヘッドが大きくなると。 うーん、不思議…… https://t.co/6tRnbchfvK"
SODA Noriyukiさんのツイート: "普通ならすごく遅いんですが、対象がジャーナルファイルで容量が限られていて、かつRAIDがバッテリバックアップつきのDRAMキャッシュを載せているので、この応用の場合に限ればやってることの本質はメモリコピーに過ぎず、すごく速いです。14000~19000 iopsくらい出てました。… https://t.co/DtTgv91Ft4"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、少し判りました。 それで、syscall自体のオーバーヘッドが分かり易く出てしまう、と。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そうだとしても、1/5はすごいなぁ。… "
SODA Noriyukiさんのツイート: "1/5でも 3000iops 越えなので遅くはないんですが、遠隔地でのactive-standby 構成で性能が揃ってないと足をひっぱられるのに、standby側として予定していたほうを更新したらこうなっちゃって問題になってました…… "
Kazuho Okuさんのツイート: "なんとですね。秒間syscall数がダイレクトにパフォーマンスに影響するネットワークサーバ系ソフトウェアで大きな問題になっていないことを考えると、単純にsyscallのオーバーヘッドではなく、なにかwrite+O_DIRECT特有の事情がありそうですね… https://t.co/c9M073GS0x"
Kazuho Okuさんのツイート: "httpd とかだと 200k network io calls / sec.core くらい出るわけです"
Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!:その知識、ホントに正しい? Windowsにまつわる都市伝説(117) - @IT

#x86opti

とみながたけひろさんのツイート: "ああそうか、Spectreでページサイズぐらいの間隔にしてたのはページ境界をまたいだプリフェッチが働かないのを使っているのか。TLBのヒット差も入れるためかなあと思ってたんだけど、そっちだったのだな #x86opti"
まさみさんは語りたいさんのツイート: "KPTIで処理速度が落ちる話、カーネル側の処理はこれまで通りじゃなかったっけ?ページテーブル切り替えでオーバヘッドはかかるんだけど、実際のアクセスについては出来るような。"
まさみさんは語りたいさんのツイート: "Unixプログラムの場合Sigsegvは無視できるんだよね。"
まさみさんは語りたいさんのツイート: "Meltdownは本当に大変な問題なんだよね。簡単に出来るから。 #x86opti"
とみながたけひろさんのツイート: "本当にVariant3は怖いよなあ。SELinuxとかでプロセスの権限とか削りまくってもほとんど回避できないからなあ #x86opti"
まさみさんは語りたいさんのツイート: "KPTIのオーバヘッドの話。ページテーブルの切り替えオーバヘッド+TLBフラッシュ、あとはTLBミスとかの増加か。"
まさみさんは語りたいさんのツイート: "PCIDの話もするのかー。"
まさみさんは語りたいさんのツイート: "INVPCIDがないとPCIDを使い回すことができなくなっちゃう(使いまわすと前のTLBとかそのまま使ってしまうので)ので使いようがないよな。 #x86opti"
まさみさんは語りたいさんのツイート: "ああ、なるほど。TSXをつかったらシグナル関係ないからな。その前に実行失敗したかどうかが分かる。 #x86opti"
とみながたけひろさんのツイート: "ああ、サイドチャネル攻撃、TSXが最速だったのか。現状イマイチTSXが有効利用されてないことを考えると、このままでは攻撃専用命令扱いになってしまうな…(ぉぃ #x86opti"
まさみさんは語りたいさんのツイート: "通常 アクセス→例外→カーネルが処理→signal飛ばす→ユーザアプリに戻る TSX アクセス→TSXミス→TSXミスハンドラ(ユーザ定義)に飛ぶ"
とみながたけひろさんのツイート: "TSX使えばシグナルハンドラに飛ぶまでもなく失敗したかどうかがわかるから爆速になる、ということかな #x86opti"
shinichiro hamajiさんのツイート: "というか失敗は常にするけどシグナルハンドラで無視するよりTSXで無視した方が速いっていうだけの話じゃないかなと。TSXを手法の一部と言うの違和感ありました… "
とみながたけひろさんのツイート: "https://t.co/2gHq6FSXnO シグナルハンドラが呼ばれるのは一緒だけどカーネルを経由しない、ということか。なるる"
satさんのツイート: "TSX: 503KB/s signal handler: 123KB/s です。数倍程度早いです P12 #x86opti https://t.co/f9iXXJg3XW… "
satさんのツイート: "最適化勉強会、客層が読めなかったので前提知識として - サイドチャネルアタック - Flush+Reload攻撃 - 分岐予測による投機的実行 - OoO実行 あたりを説明したんだけど、その間半分くらいの人の目からハイライトが消えてたので「なるほどね?」っておもった"
ほろころさんのツイート: "Branch Predictionの機能を既に知っているか否かによりますね。 https://t.co/j2zLG3H26t"
x86/x64最適化勉強会8 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

users

@utshina2

品川 高廣さんのツイート: "Meltdown はアウトオブオーダー実行、Spectre は分岐予測の実装の問題を突くという違いはあるけれど、どちらも本来権限のないメモリ読み込み命令を投機的に実行させて、その結果キャッシュに残ったサイドエフェクトから値を読み取るという点ではよく似ている。"
品川 高廣さんのツイート: "Meltdown は今のところ Intel CPU 固有の問題だけど、ユーザ空間から簡単にカーネル空間のメモリを読み出せる(多分JavaScriptとかでは難しい)。これを防ぐには、ユーザ空間とカーネル空間でページテーブルを分ける Kernel Page-Table Isolat… https://t.co/08pPUzRZVb"
品川 高廣さんのツイート: "Meltdown の本質ってC言語で書くとこれだけだよね。 a = *kptr; b = array[a<<12]; aにカーネルメモリの値が入って、arrayの対応する部分がキャッシュに乗る。もちろん例外を起こして実行は取り消されるけど、キャッシュはそのままなので、arra… https://t.co/PX1Em76srz"
品川 高廣さんのツイート: "Spectre のような投機的実行の脆弱性があるCPU上では、共有アドレス空間内で言語処理系の機能によって機密性を担保することは事実上不可能であるという主張ですかね。アドレス空間を分離するしかないと。https://t.co/uDgMpzYZ4a"
[1902.05178] Spectre is here to stay: An analysis of side-channels and speculative execution
品川 高廣さんのツイート: "(1) タイマー機能(解像度によらず)と、(2) 投機的 pointer crafting を可能にする様々な言語機能(の実装)との組み合わせで、共有アドレス空間内の任意の1bitが読み込める universal read gadget が実現可能であると。これらを包括的に防ぐ方法は見つかっていない。"
品川 高廣さんのツイート: "この種の side-channel が生じる根本的原因は、CPUの1つの(外部)アーキテクチャ的状態が、複数の(内部)マイクロアーキテクチャ的状態にマップ可能であることであり、投機的実行をおこなう任意のCPUで起こりうる。これはCPUの設計上の欠陥というより、理論的な「計算」の基部にある問題であると。"
品川 高廣さんのツイート: "平たく言うと、Chrome の JavaScript エンジン V8 で Spectre 対策いろいろ頑張ったけど、もう無理だからあきらめるで、って感じ?"
hrk先生さんのツイート: "これが原因でLLCのShareは止める方向に向かうのではないかと思います。Shareしていて、今後あるであろう種々のアタックに耐えられるとは思えないので。それだけで、CPU問題が解決するわけではないですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コア間でキャッシュを共有しないと…本当にそんな日が来るのかしらん?(SMT無効化くらいにしておいて欲しいなぁ)… "
satさんのツイート: "まずはOpenBSDでLLC共有するコアは一個を除いて全部殺されるところあたりでしょうか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かにありえそう。SMTを無効化した実績もあるみたいですし。 「OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化」 https://t.co/O4m4rK98Uu… "
satさんのツイート: "はい、それを念頭に置いてのコメントでした… "

@r0ktex1209

るくすさんのツイート: "んん、バグというか仕様というか 結構前からある話だけどなー 特にWindowsカーネルとかはKASLRのエントロピーが低くて、初期から叩き台にされてたり"
るくすさんのツイート: "@a4lg いえ、エントロピーは関係あるはずです。 https://t.co/hIVtE6P1aA これの事ですよね? 基本的にカーネルのロードされる場所の候補が絞れる前提かと。WinにせよLinuxにせよKASLRはスライドさせる感じの実装なんですよ。"
るくすさんのツイート: "@a4lg まあ正直KAISERより、KASLRの実装を見直すのが本質的な対策かなと思ってます。まあかなり難しそうですが...."
るくすさんのツイート: "@a4lg 読みました。 なーるほど。 あるアドレス変換に対してページレベル毎のキャッシュ情報が取れるから、幅優先的に探索していけるんですね。 これめちゃくちゃ強いっすね...."
るくすさんのツイート: "普通に勘でも思いつかなかった.... 流石ac4lgさん.... 確かにこれで出来るならエントロピーは殆ど関係ない。"
るくすさんのツイート: "出回ってるPoCの多くはbrute forceなんすよね でも言われてみれば確かに階層まで分かるなら、自明に枝刈りができる"
るくすさんのツイート: "正直初めてKAISERのパッチ見た時は、ええこれまたLinus大激怒するんじゃないの.... だった。まあマージされるまでの細かい議論は追ってないから何ともだけど、パフォーマンス大低下させてまでやるべきなのかというか...."
るくすさんのツイート: "KPTI(KAISER)はカーネルエリアをUnmapする事でサイドチャネルを防ぎますが、カーネルエクスプロイターにはあまり影響ないです。 こいつはあくまでユーザーモード実行中の話で、カーネルモード実行中は今まで通りユーザー空間がMapされたままのモデルだからですね。"
るくすさんのツイート: "要するにret2usrもret2dirも基本的には今まで通り使えるはず。 そもそもKAISERの目指すモデルはARMアーキテクチャのTTB0/TTB1のような完全にユーザー/カーネルでテーブルが分離された"Stronger Kernel Isolation"モデルだったんだけど、… https://t.co/wZHTZiOrlF"
るくすさんのツイート: "Intel CPUの性能低下、何がクリティカルな要因かまでは知らないけど、大体PCIDとかで何とかならないの?と思ったら、何とかなってる事例がMacなのね。"
るくすさんのツイート: "KPTIはユーザー/カーネル空間を完全に排他的にマップする訳では無いんだけど、仮に完全排他"Strong Kernel Isolation"を実現するとどの程度パフォーマンスが落ちるかについてはGruss et al. https://t.co/TCTJEJMH7L に一応書い… https://t.co/jBTMGG1SrC"
prefetch.pdf
るくすさんのツイート: "なので、件の論文はおそらくPCID無効でやってる気がするんですけど、なんでこんなオーバーヘッド少なくなってるんだろう... わけわかんね..."
ファッション自作OSマンさんのツイート: "その筋の専門家=るくすさん https://t.co/6hFDxuzvJO"
るくすさんのツイート: "いやマジで、Spectre/Meltdownとその対策云々については一回その筋の専門家が真面目に検証,解説記事を書いた方が良い気がしてる。 今回のは特に、表面的にもそれなりに理解できてしまう内容だから、正直真に欲しい情報が書いていない事が多い。"

まさみさんは語りたいさんのツイート: "variant5も打ち込んできたなー"
まさみさんは語りたいさんのツイート: "そういえばgregがspectreで上げた脆弱なコードの例は、脆弱性にならないんだよね。話はもっとややこしい。2つの異なる配列をアクセスしないと、結果が読み取れないからね。"
Thread Reader Appさんのツイート: "Saluti you can read it here: Thread by @ogawa_tter: "Meltdown, Spectreで学ぶ高性能コンピュータアーキテクチャ、 @dev_msyksphinz 、2018/1/6 https://t.co/9fA0aWza4I… 勉強になります 分岐予測 d […]" https://t.co/HtrV9pxEoC Have a good day. 🤖… https://t.co/6b7uIIPICx"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei HPCアプリケーション (WRF/GROMACS/NAND/GSI) での Meltdown/Spectre Patchesの影響について、 TACC (Texas Advanced Computing Center) の報告です https://t.co/CBAQtk1YXk IXPUG (2018/3/5): Intel eXtreme Performance Users Group"
まさみさんは語りたいさんのツイート: "CD/DVDのデバイスIOについてカーネル内の配列を直接悪用するspectreのexploitを読んで、これだとユーザ空間から直にindexを渡される配列のアクセスについてはすべからく危険だなあと思った。 https://t.co/ViUQBwvHiQ"
linux-exploit/leak_pkt_devs.c at master · jinb-park/linux-exploit
まさみさんは語りたいさんのツイート: "ユーザ空間のメモリをキャッシュアウト→カーネルの配列アクセスに巨大な値を埋め込んで投機的実行させ、キャッシュが乗るかどうかを確認→キャッシュが乗ったら、その配列のvaddrが確認できる。これはカーネルのデータがリークするわけじゃないけど、アドレスはリークするのでKASLRを破れる。"
まさみさんは語りたいさんのツイート: "Spectreを使ってカーネル内のデータを取得するには2つの配列アクセスが必要で、ほとんど無理ゲーだけど、カーネル内のアドレスを取得するだけなら1つの配列アクセスだけで済むので、結構簡単に出来てしまう、という話。"
suzakiさんのツイート: "NDSSマルウェア五つ目。マルウェアを隠すためにSpectreを使うExSectreの発表(Colorado Bouder)。実行を検出することできず、またCPUの状態を覗いてもわからない。 ASN-NI命令がガジェットに使えるのが面白い。Loadは使えるが、Storeはダメ。またsyscallは使えない。 https://t.co/gcfcYmv2eZ"
ndss2019_02B-5_Wampler_paper.pdf
suzakiさんのツイート: "確かSpectreをcovert Channelに使う研究があったけど同じ系統ですね。 そういえば、ARM TrustZoneのCovert ChannelであるPrime+Countの発表がACSAC18であった。"
InstLatX64さんはTwitterを使っています 「Can the HRESET instruction mitigate the Spectre-vulnerability (present in the latest Sunny/Willow Cove cores too)? https://t.co/OeAW4yZQFD」 / Twitter
Daniel FernandezさんはTwitterを使っています 「@InstLatX64 Funny how we end with hinting to undo things done implicitly instead of just doing them only explicitly in first time」 / Twitter
FadisさんはTwitterを使っています 「Kasper: 投機的実行が実行する可能性があるパスを実際に実行してみて漏れると困るデータを触るかどうかを調べる事でSpectre-PHT脆弱性のgadgetとして使えるコードを探し出す手法。従来のパターンマッチな探し方では見つけにくかったgadgetを見つける事ができるらしい https://t.co/ugIZWFz4UR」 / Twitter
kasper - VUSec
FadisさんはTwitterを使っています 「Spectre-PHTの回避はオーバーヘッドを伴う為Linuxカーネル等では実際に攻撃に繋がる可能性がある箇所に限定して回避を挟んでいる。このためこうした回避に漏れがないかを機械的に調べる手法には大きな需要があるが、従来の手法はfalse positive/false negative共に大きくこの用途で使い難かったらしい」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深いけど、今のところ結論はこれだよなぁ。 また Spectre自体、低コストな範囲で確率低下させて、あとはダチョウ・アルゴリズム(見なかったことにする)という印象も。 ---- 「すべてのウェブ開発者のみなさんがこれらを理解し、ヘッダーを実装するのは現実的ではないように思います」」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「CPUの脆弱性Spectreが発見され、ブラウザは大きな変化を余儀なくされました。それが一体どういったものだったのか、どういう対策を行うことで自分のウェブサイトの安全性を保つことができるのかをまとめました。 // Spectre の脅威とウェブサイトが設定すべきヘッダーについて https://t.co/2oFZpeL7kz」 / Twitter
Spectre の脅威とウェブサイトが設定すべきヘッダーについて
ChromeとFirefoxの新しいCOOPとCOEPはセキュリティを高めるクロスオリジンポリシー
Spectre/Meltdownとその派生
security rhel disable - retpolineとは何ですか?どのように動作しますか? - CODE Q&A 問題解決
Kazuho Okuさんのツイート: "retpoline「Spectreは俺が倒した」Intel「ペナルティが必ずかかると思ってた?馬鹿め」retpoline「ぐぬぬ」って流れじゃなかったでしたっけ… "
_ko1さんのツイート: "え、そういう話だったんだ(全然調べてない)。call cache があるとかないとか。… "
Kazuho Okuさんのツイート: "return address stackがret命令の分岐先予測に失敗したら、確実にストールするというのがretpolineの設計の前提なんだけど、最近のIntel CPUだと別の予測も組み合わせているのでそうとは限らないみたいな話だったような気がするなーと… "
_ko1さんのツイート: "まじすか最近のプロセッサすげーな… "
Kazuho Okuさんのツイート: "もともと https://t.co/rnFUx2bnP4 みたいな話はあるのですが、これ以外になんのために、なにをやってるんでしょうね… "
はじめてのにき(2010-07-06)
Kazuho Okuさんのツイート: "そういえば、関数ポインタを nullable にして if (p) (*p)() とやるより、non-nullable にして空関数を (*p)() にするほうが速いことがあるって @herumi さんが言ってたのも、call-ret使ってeip取るイディオムを最適化する関係なのかなぁ"
Kazuho Okuさんのツイート: "あーそうか Intel CPU が RET 命令について Return Stack Buffer 以外にも分岐予測を組み合わせてるって件、例外処理とかコンテクストスイッチでずれてフラッシュした際のバックアップなのかなと考えると納得いく"
Kazuho Okuさんのツイート: "分岐「先」予測"
KOSAKI MotohiroさんはTwitterを使っています 「Intelは性能劣化するパッチは全ベンダが性能劣化する形で作ってきますね」 / Twitter
matsuuさんはTwitterを使っています 「KVMにおいてIntel CPUの脆弱性対策パッチが、必要ないはずのAMD CPUにも適用されており性能劣化がおきているらしい。oh。今後修正&バックポートされる見込み。 / “Linux KVM Virtualization Had Mistakenly Been Applying L1TF Workaround To Unaffected CPUs - Phoronix” https://t.co/empisPTwjN」 / Twitter

SPOILER

インテル製チップに新たな脆弱性「SPOILER」--AMD、armにはない固有脆弱性。: なんとなく綴ってみた
インテル製チップに新たな脆弱性「SPOILER」--修正は困難との指摘も - CNET Japan
1903.00446.pdf

Fail-Safe C: Top Page

Checked C

Checked C - Microsoft Research
Microsoft/checkedc: Checked C is an extension of C that adds bounds checking to C. This repo contains the specification for the extension, test code, and samples.
Microsoft、C言語を拡張する「Checked C」を開発中 | マイナビニュース
Microsoft、C言語を拡張した「Checked C」をオープンソース化 | スラド デベロッパー
Microsoft、C言語に静的/動的チェック機能を加えた「Checked C」を公開 | OSDN Magazine
LLVMを拡張してメモリ空間安全性をCで実現するChecked C

Security | すなのかたまり | ページ 2

ASLR Cache(AnC)

既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される ~アドレス空間配置のランダム化を突破 - PC Watch
JavaScriptでASLRを無効化する攻撃「AnC」 | スラド セキュリティ
vusec/revanc: Reverse Engineering Page Table Caches in Your Processor

ASLR Cache

int $0x03@SNS部さんのツイート: "cpuの分岐予測のキャッシュ機能がASLRをバイパスするキーになると / “121412” https://t.co/sX6tgMiVHB"
Bypassing ASLR in 60 Milliseconds | Threatpost | The first stop for security news

Stack Smashing Protection

単純なスタックバッファオーバーフロー攻撃をやってみる - ももいろテクノロジー
Buffer overflow protection - Wikipedia
Stack Smashing Protector - OSDev Wiki
000013695.pdf
stack smashing | スタック破壊 - Qiita
Stack-smashing Protection (SSP) - OWASP
Security Technologies: Stack Smashing Protection (StackGuard) - Red Hat Customer Portal
What is the meaning of "Stack smashing protect failure"? · Issue #1455 · espressif/arduino-esp32
Prevent Stack-Smashing Attacks - Network Security Hacks [Book]
ubuntu - is stack-smashing protection on on Debian? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「stack protectorのカナリアはexec毎に異なる値になるが、forkしただけでは変わらないため、子プロセスに通信の相手をさせて子プロセスが落ちたら親プロセスが作り直すようなサーバアプリケーション(よくある)では子プロセスのスタックを破壊して漏らしたカナリアの値が、次の一撃に使える、と」 / Twitter

Automatic Fortification

バッファオーバーフローへの対策技術入門
2017年10月25日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
Advances in Information and Computer Security: 13th International Workshop ... - Google ブックス
Fortification of IT Security by Automatic Security Advisory Processing - IEEE Conference Publication
Bread and Its Fortification: Nutrition and Health Benefits - Google ブックス
gcc4 on cygwin - BOOLEANLABEL

Pwn入門

Fadisさんのツイート: ". @megumish さんの「Pwn入門」が始まります #kernelvm"
Fadisさんのツイート: "Pwnとは: サーバを攻撃して制御を奪う。シェルとかを実行する #kernelvm"
Fadisさんのツイート: "メモリ上の命令列を書き換えるのがPwnを行う最も簡単な方法だが、今日のプロセッサではメモリ領域に対して行える操作が設定されていて普通は実行可能バイナリを直接書き換える事はできない #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "Pwnするにはメモリの値を書き換えたい。そのためにバッファオーバーフローや書式文字列の攻撃を使うわけか。ROP(Return Oriented Programming)もその一つ。 #kernelvm"
Fadisさんのツイート: "バッファオーバーフロー、ROP、Format String Attackなどを使ってPwnを行う #kernelvm"
Fadisさんのツイート: "スタックの変数の範囲外に書き込める不具合があるとリターンアドレスを書き換えられる→retで実行可能バイナリの好きなところに飛ぶ事ができる #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "ASLRがあるとスタック領域の場所がわからないので、.bss領域を使う #kernelvm"
Fadisさんのツイート: "バッファオーバーフローでリターンアドレスが.bssを指す状態にしてbssにシェルコードを書いておく → NXbitが有効に使われているとこの方法は使えない → そういうときはROP #kernelvm"
Fadisさんのツイート: "任意のサイズのmallocが可能 かつ Heap Over Flowができる状況では File Stream Oriented Programmingが可能になる #kernelvm"
Fadisさんのツイート: "発表者「正しく知識として身につけるためにはmallocの実装を理解する必要がある」 #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "小崎先生のmalloc動画を見ていたお陰でmain arenaが何なのかはなんとなく分かるぞ。見といてよかったmalloc動画。 #kernelvm"

Beyond Zero-day Attacks

Beyond Zero-day Attacks - @IT
脆弱性と攻撃をめぐる事件と話題 (1/2):Beyond Zero-day Attacks(1) - @IT
スタックに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(2) - @IT
ヒープに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(3) - @IT
Use After Freeとヒープスプレー (1/3):Beyond Zero-day Attacks(4) - @IT
DEPの仕組みとその回避手法 (1/3):Beyond Zero-day Attacks(5) - @IT

Wikipedia

Transient execution CPU vulnerabilities - Wikipedia
Hardware security bug - Wikipedia
Return-oriented programming - Wikipedia
Sigreturn-oriented programming - Wikipedia
JIT spraying - Wikipedia

GIGAZINE

Appleが「プライバシー上の懸念あり」としてSafariへの一部ウェブAPIの実装を拒否 - GIGAZINE
HDDのコントローラーをハッキングするとデータの傍受やHDD基板へのLinuxインストールが行える - GIGAZINE
Microsoftがオープンソースの機械学習セキュリティフレームワークをリリース - GIGAZINE
ソフトウェアの「パッケージ」を利用してAppleやPayPalなどの大企業をハッキングする方法とは? - GIGAZINE
技術革新が世界にもたらす危機とは? - GIGAZINE
Googleがオープンソース脆弱性のデータベースをPythonやGoにまで拡大 - GIGAZINE
Mozillaが「スパイウェアを見つける方法」を解説 - GIGAZINE
Did you hear about Apple’s security vulnerability? Here’s how to find and remove spyware.
アメリカがハッキングツールの「Pegasus」開発元など4社をブラックリスト入りに - GIGAZINE
半導体への攻撃が容易になりセキュリティ対策の必要性が高まっているとの指摘 - GIGAZINE
SMSに届く認証番号を使った「2要素認証」はもはや安全ではない - GIGAZINE
5億8500万件以上のパスワードをイギリス国家犯罪対策庁が個人情報流出確認サイト「Have I Been Pwned?」と共有 - GIGAZINE
年間5000億件起きるサイバー攻撃やランサムウェアの“リアルな実情”を最前線で対応するフォレンジック調査のプロに聞いてみた - GIGAZINE
中国のネットショップで買った中国製マシンにマルウェアがプリインストールされていたとの報告、制御ソフトのスキャンだけでは発見できない巧妙さ - GIGAZINE
Linuxでルート権限を自由に取得できる脆弱性が発覚、「悪用されるのは時間の問題」と専門家 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「おとといLinuxで発見されたpolkit脆弱性 (CVE-2021-4034) に関する問題は2013年にすでに発見されていた。 argcが0のとき、 int n; for (n=1; i < argc; n++) { ... } exec(argv[n]); /* argv[1] == env[0] */ で、任意のバイナリがroot権限で実行されてしまう。 https://t.co/OZbmY8HseU」 / Twitter
argv silliness | ~ryiron

スライド

"どこ"から脆弱性を発見するか
セキュリティとプログラミング
スタックの歩き方 - Speaker Deck
マクロな視点から捉える Web セキュリティ / Web Security from the Macro Perspective - Speaker Deck
趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求/seccamp2021-b5 - Speaker Deck
君のセキュリティはデプロイするまでもなく間違っている #CICD2021 / CICD Conference 2021 - Speaker Deck
SPAセキュリティ入門~PHP Conference Japan 2021
IoTセキュリティ概観 (供養)
AWSセキュリティは「論理」に訊け! Automated Reasoning の理論と実践 - ログミーTech
Attacking and Securing CI/CD Pipeline - Speaker Deck

PDF

嶋田 創のページ
Microsoft PowerPoint - lecture_slide0525_rev05.pptx - lecture_slide0525_rev2.pdf
Microsoft PowerPoint - lecture20160524v03.pptx - lecture20160524_1up_rev1.pdf
Microsoft PowerPoint - lecture0427_rev06.pptx - lecture_slide0427.pdf
Microsoft PowerPoint - IScompendium2016rev13.pptx - IScompendium2016.pdf
スライド 1 - MR201406_A Re-introduction to SELinux_JPN.pdf
スライド 1 - MR201408_SE for Android Overview_JPN.pdf
MR201411_SELinux_in_Virtualization_and_Containers_JPN.pdf
MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
windows10_security_ja.pdf
windows10_セキュリティ評価支援報告Phase2 - windows10_security2_ja.pdf
Threat_Analysis_Method_Reducing_costs_and_variability_in_results.pdf
Using_surface_information_from_PE_files_for_Static_Machine_Learning_Based_Malware_Detection.pdf
情報学広場:情報処理学会電子図書館
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Web上のスクリプトから有害な(プライバシー侵害する)部分を自動的に検知し、それを無害な(sugarcoatされた) ものに置換する研究。従来のコンテンツブロッカーではサイトの不具合を防ぐため除外ルールを使っていたのが不要になる。著者らはBraveに組み込んで評価した。CCS'21 https://t.co/jJlP9XD4Oh」 / Twitter
SugarCoat: Programmatically Generating Privacy-Preserving, Web-Compatible Resource Replacements for Content Blocking | Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security
しゅーとさんはTwitterを使っています 「アカデミックでは日本のサイドチャネル攻撃技術は高いのに、なぜ産業分野まで降りてこないのかと思ったがIPAがこんなことを書いていた。 隠した結果、国内メーカのセキュリティは低下し、海外では研究者がオープンなので日本製品が海外のハッカーに攻撃されまくっているの、なんとかならんかったのかな https://t.co/8y8t3oCKaP」 / Twitter
しゅーとさんはTwitterを使っています 「出典は「ハードウェアセキュリティ ―IoTの時代に向けて」P58。 https://t.co/nsrgtouCsG 2015年と少し古い情報なので今は改善されているかもしれない」 / Twitter
スライド 1 - [JRFWS]Dec2015_3. IPA_S. Sato_Presen+ForWeb.pdf.pdf
セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構

blog

Project Zero

Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
Project Zero: Searching statically-linked vulnerable library functions in executable code
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
Project Zero: Trashing the Flow of Data
Project Zero: Déjà vu-lnerability
Project Zero: Hunting for Bugs in Windows Mini-Filter Drivers
Googleの脆弱性発見チーム「Project Zero」が開示ポリシーを変更、パッチ適用までの猶予が設けられる - GIGAZINE
Project Zero: Policy and Disclosure: 2021 Edition
Project Zero: Fuzzing Closed-Source JavaScript Engines with Coverage Feedback
Project Zero: How a simple Linux kernel memory corruption bug can lead to complete system compromise
Project Zero: Using Kerberos for Authentication Relay Attacks
Project Zero: Windows Exploitation Tricks: Relaying DCOM Authentication
Project Zero: A walk through Project Zero metrics
バグの修正にかかる時間は年々短くなっている、一番修正が迅速なのはどこ? - GIGAZINE

ももいろテクノロジー

WindowsでIDT overwriteによる権限昇格をやってみる - ももいろテクノロジー
IAT書き換えによるAPIフックをやってみる - ももいろテクノロジー
ROP検知手法RAPについてまとめてみる - ももいろテクノロジー
JIT-ROP緩和手法Heisenbyteについてまとめてみる - ももいろテクノロジー
x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
x64でROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避 - ももいろテクノロジー
ROP stager + read/writeによるASLR+DEP回避 - ももいろテクノロジー
ROP stagerによるシェルコード実行をやってみる - ももいろテクノロジー
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIX
osdi16_slides_williams-king.pdf
Amazon EC2のGPUインスタンスでハッシュ解読をやってみる - ももいろテクノロジー
Pythonでネイティブコードを実行する - ももいろテクノロジー
glibc malloc exploit techniques - ももいろテクノロジー
plain RSAに対するLSB decryption oracle attackをやってみる - ももいろテクノロジー
The Malloc Maleficarum (Bugtraq 2005) - ももいろテクノロジー
Exploit系複合テクニックのメモ - ももいろテクノロジー
「Can We Prevent Use-after-free Attacks?」というタイトルで発表した - ももいろテクノロジー
Can We Prevent Use-after-free Attacks?
x64でSigreturn Oriented ProgrammingによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
Windows x64でReturn-oriented Programming(ROP)によるDEP回避をやってみる - ももいろテクノロジー
Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolveによるASLR+DEP回避 - ももいろテクノロジー

yohgaki's blog

OWASP

2017年版OWASP TOP 10 – yohgaki's blog
2017年度版 OWASP TOP 10 で変るWebセキュリティのルール – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guide – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guideの訳語 – yohgaki's blog
OWASP TOP 10のセキュリティ対策 – yohgaki's blog
知っておくべきITセキュリティ概念Top 10 〜ショート版〜 – yohgaki's blog
当たり前?非常識?開発者必修のセキュリティ概念 Top 10 – yohgaki's blog

構造・原理・原則・基本・基礎

セキュリティの原理、原則、ベストプラクティス – yohgaki's blog
攻撃可能面の管理 – セキュリティの基本 – yohgaki's blog
アプリとライブラリの違い – セキュリティの基礎 – yohgaki's blog
プライバシーの8原則 – yohgaki's blog
ITセキュリティ対策の構造化 – yohgaki's blog
アプリケーションのセキュリティと必要十分条件 – yohgaki's blog
セキュリティを論理的に構築する方法 – yohgaki's blog
究極のセキュリティ要求事項とは? – yohgaki's blog

分析

データフロー分析とセキュリティ – yohgaki's blog
無視されているリスク分析 – yohgaki's blog
リスク分析とリスク対応をしよう – yohgaki's blog

脆弱性・攻撃

まだ誰も知らない脆弱性/攻撃に備える方法 – yohgaki's blog
コード”だけ”に着目すると脆弱性が量産される – yohgaki's blog
脆弱性を呼ばれた側の責任にする、は通用しない – yohgaki's blog
インジェクション攻撃は3種類ある – yohgaki's blog

対策

セキュリティ対策が論理的に正しいか検証する方法 – yohgaki's blog
OSコマンドのエスケープ – yohgaki's blog
JavaScript文字列のエスケープ – yohgaki's blog
そもそもエスケープとは何なのか? – yohgaki's blog
完全なSQLインジェクション対策 – yohgaki's blog
JSONのエスケープ – yohgaki's blog
PHPとXML eXternal Entity(XXE)対策 – yohgaki's blog
本当にプリペアードクエリだけを使っていますか? – yohgaki's blog
クロスサイト攻撃からローカルネットワークのシステムを守る簡単な方法 – yohgaki's blog
PHPのHTMLエスケープ – yohgaki's blog
validate-phpのPHPスクリプト版 – yohgaki's blog
hash_hkdf()でわざわざバイナリキー/バイナリSaltを使うことに意味はない – yohgaki's blog
SQLクエリと識別子エスケープの話 – yohgaki's blog
PHPでCSRF対策を自動的に行う方法 – yohgaki's blog
ソーシャルメディアフィンガープリントとその対策 – yohgaki's blog
”雑”なソフトウェアセキュリティ対策 – yohgaki's blog
データのセキュリティ対策が無いセキュリティ対策?! – yohgaki's blog
実は知られていない?リスク対策の原則? – yohgaki's blog
出力対策の3つの役割 – yohgaki's blog
PHPセッションとSameSiteサポート – CSRF, XSS対策 – yohgaki's blog
何故こうなった?プログラムの動作原理を無視したセキュリティ対策 – yohgaki's blog

認証

間違いだらけのHTTPセッション管理とその対策 – yohgaki's blog
解答:まちがった自動ログイン処理 – yohgaki's blog
今すぐできる、Webサイトへの2要素認証導入 – yohgaki's blog

バリデーション

Yasuo Ohgaki (大垣靖男)さんのツイート: "結局ところ、セキュリティホールを無くそう、と考えて作るよりも、正しく動く事を保証しよう、考えて作る方が近道。 #セキュアコーディング"
バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 – yohgaki's blog
バリデーションですべきこと – yohgaki's blog
エンジニアなら分かる文字エンコーディングバリデーションの必要性 – yohgaki's blog
数値のバリデーションは無意味なのか? – yohgaki's blog
入力値の種類は3種類しかない – yohgaki's blog
出力対策の3原則 – yohgaki's blog
”形式的検証”と”組み合わせ爆発”から学ぶ入力バリデーション – yohgaki's blog
入力バリデーションで許可した文字で発生するリスク – yohgaki's blog
入力バリデーションが甘いソースコードの検査は本当に大変 – yohgaki's blog
ドイツ人と入力バリデーションについて議論した話 – yohgaki's blog
入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0 – yohgaki's blog
ゼロトラストとフェイルファースト – yohgaki's blog
「フェイルセーフ」とは何なのか? – yohgaki's blog
データ検証をしない仕様には「脆弱性名」を付けた方が良いのでは? – 未検証入力 – yohgaki's blog

アンチプラクティス

ベストプラクティスもどきのアンチプラクティス TOP 10 – yohgaki's blog
「脆弱性を局所的に潰す」はアンチプラクティス – yohgaki's blog
第一のソフトウェアセキュリティ原則さえ普及しない最大の理由とは? – yohgaki's blog
ホワイトリスト派とブラックリスト派 〜 セキュアコーディングが行われない理由 – yohgaki's blog
「出力対策だけのセキュリティ設計」が誤りである理由 – yohgaki's blog
ソフトウェアは「入り口ノーガード設計」のままで良いのか? – yohgaki's blog

プログラミング言語

X-Content-Type-Options: nosniff はIE以外にも必要 – yohgaki's blog
JavaScriptでインジェクションリスクがある関数/機能など – yohgaki's blog
PHPの危い関数リスト – yohgaki's blog
JSONPは危険なので禁止 – yohgaki's blog
PHPのserialize()/unserialize()を安全に利用する方法 – yohgaki's blog
セキュアコーディングは言語を問わず適用できる – yohgaki's blog
PHPのPharを使ったコード実行 – yohgaki's blog
PHP 5.6.38他で修正された任意コンテンツ送信脆弱性について – yohgaki's blog
PHP用のCookieセッションセーブハンドラー – yohgaki's blog
Railsのリモートコード実行、今昔 – yohgaki's blog
Risk of the session adoption – yohgaki's blog
PHP 7.3 – yohgaki's blog

設計・コーディング

プログラムから「想定外」を無くす方法 – yohgaki's blog
構造化設計とセキュアコーディング設計の世界観は二者択一なのか? – yohgaki's blog
コマンド実行時、コマンドと引数を分離すれば完璧? – yohgaki's blog
命令と引数を分離すれば安全、と考えてしまう”とんでもない誤解”はどこから生まれるのか? – yohgaki's blog
今さら聞けない「コード」と「データ」の話 – yohgaki's blog
今のソフトウェアセキュリティが不十分である原因とは? – yohgaki's blog
正しく動作するソフトウェアの作り方 – yohgaki's blog
APIを過信するとおかしな事になる例 – SAML認証成り済まし – yohgaki's blog
プログラミングを覚えたら先ず知るべきコーディングプラクティス – yohgaki's blog
データのコンテクスト – セキュリティ対策の基本 – yohgaki's blog
セキュリティに拘ってもセキュアにならない – 開発環境セキュリティ – yohgaki's blog
開発者の自由を許容するセキュリティ、自由を束縛するセキュリティ – yohgaki's blog
セキュアコーディングの構造/原理/原則 – yohgaki's blog
ファイルパスを安全に出力可能か? – yohgaki's blog

RDBMS

RDBMSから学ぶデータセキュリティ – yohgaki's blog
PostgreSQLの文字列型の最大長は? – yohgaki's blog
SQLインジェクション対策保証付きソースコード検査はじめました – yohgaki's blog

IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – yohgaki's blog
IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構
なぜWebセキュリティはここまでダメなのか? – yohgaki's blog
それは”ただのバグ”なのか?それとも? – yohgaki's blog
知らないと勘違いする「合成の誤謬」の罠 – yohgaki's blog
とあるネットワーク技術者の防御法 – yohgaki's blog
セキュリティ対策の目的 – yohgaki's blog
危険なコードを書くメカニズム – yohgaki's blog
遅すぎるサニタイズではダメな例 – yohgaki's blog
コードで学ぶセキュアコーディング 〜 SQLインジェクション編 – yohgaki's blog
IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – その2 – yohgaki's blog
マイクロサービスアーキテクチャーのSSRF問題とセキュアコーディング – yohgaki's blog
CWE-20は知られているか? 〜 開発者必修のNo.1脆弱性のハズが知られていない 〜 – yohgaki's blog
正規表現をより安全に使う方法 – yohgaki's blog
エラーと例外とセキュアコーディング – yohgaki's blog
IPAの「安全なWebサイトの作り方」は安全な作り方のガイドではない – yohgaki's blog
MITREがCWEを大幅更新 – yohgaki's blog
開発者必修の7PKとは? – yohgaki's blog
コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則 – yohgaki's blog
セキュリティソフトウェア ≠ ソフトウェアセキュリティ – yohgaki's blog
7PK – APIの乱用とは? – yohgaki's blog
欧州の個人データ移転規制が日本は対象外となる件について – yohgaki's blog
セキュリティ機能の利用はソフトウェアセキュリティではない – yohgaki's blog
ソフトウェアには入力バリデーションは必要ない 〜 ただし条件付きで – yohgaki's blog
おかしなCWE-20の読み解き方 – yohgaki's blog
データ型とセキュアコーディング – yohgaki's blog

コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
マイクロソフト、バグや脆弱性の検出を自動化する「Project OneFuzz」をオープンソース公開。すでに同社内でWindowsやMicorosoft Edgeのデバッグに利用中 - Publickey
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CallerCheckとSimExec~ – 他人の空似
【インターンレポート】LINEクライアント内に見つかった脆弱性について - LINE ENGINEERING
セキュリティ・キャンプ全国大会「マルウェアの暗号処理を解析しよう」の紹介, Hiroki Hada
スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帖
Intel 社製グラフィックス アクセラレータ用の Intel Unified Shader コンパイラで発見された脆弱性
Google Developers Japan: Android の FORTIFY
確率的並行ファジング - arahori.exeの日記
experiments/windows-defender/ASR at master · commial/experiments
Advanced ROP techniques. Rop or return-oriented-programming is… | by Aneesh Dogra | Aneesh Dogra’s Blog
daem0nc0reさんはTwitterを使っています 「このWindows Kernel Exploitの記事、めっちゃいいですね。 WNFはしばらく触ってないから勉強し直さないとな https://t.co/rKASxMKPWv」 / Twitter
CVE-2021-31956 Exploiting the Windows Kernel (NTFS with WNF) – Part 1 – NCC Group Research
【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
「Chrome」からメモリ関連の脆弱性を取り除くには? ~Googleがその取り組みを解説 - 窓の杜
κeenさんはTwitterを使っています 「Chromeの脆弱性の70%以上がメモリ起因ということで、どうにかしたいという話。C++の静的解析は限界があるのでパフォーマンスを犠牲にして動的解析するか移行コストを払って安全な言語にするか Google Online Security Blog: An update on Memory Safety in Chrome https://t.co/22CshtXqzS」 / Twitter
Google Online Security Blog: An update on Memory Safety in Chrome
κeenさんはTwitterを使っています 「どちらも検討している。動的解析ではMiraclePtrが有望で50%くらいのuse-after-freeが消そうだが、モバイルではリソースが厳しいなど。静的解析ではRustが有望そうで単体では安全そうだがどうやってC++とのインタフェースを切るかなど。」 / Twitter
REST API用のファジングツール “RESTler” で始めるお手軽ファジング | IIJ Engineers Blog
Amazon.com、同社内で使われていた従業員向けのセキュリティオンライントレーニングを無償で一般公開、日本語版も提供 - Publickey
Ricerca Security: ARM CoreSightを用いた効率的なBinary-only Fuzzing
IDAPythonによる解析の自動化をやってみる - Snoozy
Log4Shell: RCE 0-day exploit found in log4j, a popular Java logging package | LunaSec
セキュリティツールの評価は難しい - knqyf263's blog

infoQ

Android Pがコンパイラベースのセキュリティ対策を拡大
セキュリティ研究者を狙う持続的標的型攻撃、US-CERTが警戒呼びかけ | TECH+
GitLab Protocol Fuzzer CEがオープンソースに
継続的セキュリティテストを有効にしてテストにセキュリティを追加する
インフラストラクチャ脆弱性スキャナーのCheckovがコンテキストアウェア評価を追加
クラウドプロバイダがランサムウェア軽減戦略を公開
Azure Firewallに新しいセキュリティ機能を導入
マシンラーニングがセキュリティにできること
Linuxカーネルの新たなサイドチャネル脆弱性により、DNSのキャッシュポイズニングが可能に
Googleのネットワークベースの脅威検出サービスクラウドIDSが一般向け提供へ

Twitter

その他

fuzzuf

Ricerca SecurityさんはTwitterを使っています 「[NEWS] Today, we released our new fuzzing framework, fuzzuf as an OSS. It allows you to easily define a fuzzing loop by assembling the building blocks of fuzzing primitives. It's already supported AFL, VUzzer, and libFuzzer. https://t.co/f4445Jg6t6 https://t.co/2wkaX3JPR2」 / Twitter
fuzzuf/fuzzuf: Fuzzing Unification Framework
Ricerca SecurityさんはTwitterを使っています 「Here is our blog post: fuzzuf: Fuzzing Unification Framework by (@RKX1209 and @hugeh0ge) https://t.co/8Ug60bCA3z」 / Twitter
Ricerca Security: fuzzuf: Fuzzing Unification Framework
Ricerca Security: fuzzuf: Fuzzing Unification Framework

code randomization

まさみさんは語りたいさんのツイート: "intelの人のcode randomizationのセッションに来た"
まさみさんは語りたいさんのツイート: "honkey tonkだ。"
まさみさんは語りたいさんのツイート: "kaslrはエントロピーが少なすぎてブルートフォース攻撃を許してしまうと。"
まさみさんは語りたいさんのツイート: "あー、これは来るぞ"
まさみさんは語りたいさんのツイート: "日立のときに最後に出した特許と同じ話するんじゃないかなー。"
まさみさんは語りたいさんのツイート: "関数単位でのreorderingか、少し期待はずれだけど、多分このあと変わるんじゃないか。"
まさみさんは語りたいさんのツイート: "function bodyをbasic blockに分割し、初期化時あるいは実行中にBBをreorderあるいはshiftすることでROPを防ぐ、という話を書いたことがある。symbol tableや関数アドレスはそのまま使えるがコードが別の場所に飛んでいる。"
まさみさんは語りたいさんのツイート: "うーむ、タイトルからspectre系の話だと思ってたのに。"
まさみさんは語りたいさんのツイート: "質問したいけど次の発表が隣だから"

CFI

FadisさんはTwitterを使っています 「LinuxカーネルがclangのCFIを有効にしてビルドできるようになったらしい。CFIはサニタイザの一種で、関数呼び出し時や戻り時に呼んで良い(or 戻って良い)アドレスに正しい型の引数を付けて飛んでいる事を確認する。ROPのgadgetを呼ぶような操作が検知される https://t.co/e9H0CEsZZz」 / Twitter
Clang CFI Support Upstreamed For Linux 5.13 - But Only On ARM64 For Now - Phoronix
FadisさんはTwitterを使っています 「LinuxカーネルをCFI付きでビルドするのは元々GoogleがAndroidの開発の為に内部で使っていた物で、現時点では64bit ARMのみが対応していてx86_64版は準備中らしい」 / Twitter

ゼロ知識証明

仮想医学生ナノ.ethさんはTwitterを使っています 「Zinc(亜鉛笑笑)ていうゼロ知識証明を走らせるためのプログラミング言語が公式にα版の発表を公開したみたいです。 ゼロ知識証明は知ってる事を内容を一切出さずに知っている!って言うための暗号学の手法なんですね? e-決済とかこれからの時代Cryptographyは大事そうですよね」 / Twitter
Matter LabsさんはTwitterを使っています 「Excited to announce the long-awaited alpha release of Zinc framework — a programming language and execution environment for easy creation of safe zero-knowledge proof circuits (programs to run on ZKPs). https://t.co/ZCqwSLDY5P」 / Twitter
Release of Zinc v0.1. Safe-by-default ZKP programming… | by Alex Gluchowski | Matter Labs
suzakiさんはTwitterを使っています 「4つ目。ゼロ知識証明を記述できるプログラミング言語のZKPDL(Zero-Knowledge Proof Description Language)の提案P2Pファイルシェアを応用したe-Cacheによる最適化の発表。」 / Twitter

フィッシング訓練

kokumօtօさんはTwitterを使っています 「実際にメールを送るフィッシング訓練は逆効果と、スイス・チューリッヒ工科大学の博士課程学生が従業員数数万人規模の企業と行った共同研究。訓練メールに引っかかった被験者は、実際のフィッシングにもより引っかかりやすくなったとのこと。 https://t.co/oUUClMtPNc」 / Twitter
How a few PhD students revealed that phishing trainings might just not work: Lock and Code S03E03 | Malwarebytes Labs
todkm IT系さんはTwitterを使っています 「@__kokumoto この記事で言及されているものかも(論文への直リンクあり) https://t.co/HUtFUMYhTC」 / Twitter
ETH Zurich フィッシング大規模調査:従業員に対するトレーニングには効果が無い – IoT OT Security News
todkm IT系さんはTwitterを使っています 「ポッドキャストに出演しているのがDaniele Lainさんなのでこの論文で間違いないですね。」 / Twitter

kernelvm

2017-11-18

CTF

No.1

Fadisさんのツイート: ". @Charo_ITCODE さんの「BLUE CTF 2017で出した問題の話」が始まります #kernelvm"
Fadisさんのツイート: "プログラムを乗っ取るために書き込みを試みる対象: 関数ポインタ、スタック上のリターンアドレスなどそれらを保持する配列のポインタ等、ジャンプ先を司っている値 #kernelvm"
Fadisさんのツイート: "関数呼び出しはほとんどのアーキテクチャにおいて関数が置かれたアドレスへの特殊なジャンプ(アーキテクチャによっては本当にただのジャンプ命令)だから、飛び先のアドレスが書き換わっていれば違うものが実行される #kernelvm"
Fadisさんのツイート: ".got.pltのポインタを書き換えて本来と違うコードの実行を行う。最近のアーキテクチャではデータ領域に置いた任意のデータの実行を阻む仕組みが備わっている事があるが、プロセス中に実行可能バイナリとしてロードされている他の実行可能バイナリなら実行できる #kernelvm"
Fadisさんのツイート: "ASLR PIEなどを使ったバイナリでは関数はランダムなアドレスに配置され、攻撃者が狙って特定の関数呼び出しを行う事が難しくなる #kernelvm"
Fadisさんのツイート: "バッファオーバーフローによってリンクリストのデータの次にあるnextの値が書き換えられる時、nextのアドレスを書き換えて次の要素に書き込みが起こるような処理を行えば任意の箇所に書き込みを行うことができる #kernelvm"
Fadisさんのツイート: "ASLRがある場合ライブラリ関数の配置がわからないため、アドレスリークが可能な脆弱性が無いと確実な乗っ取りは行えない #kernelvm"
Fadisさんのツイート: "偽のstrtabを用意してdynamicセクションを書き換えてライブラリ関数のアドレス解決時に別のアドレスが返るようにする #kernelvm"
Fadisさんのツイート: "strcmp関数を読んだ時実際に実行される関数がsystem関数になるような偽のstrtabを用意し、strcmpに実行したいコマンドを渡してシェルを得る #kernelvm"
Fadisさんのツイート: "CTFで8/554チームがこの問題をクリア → まずまずの難易度 (まずまずとは) #kernelvm"

No.2

Fadisさんのツイート: "printf("%3$d",2,1,0); // 0が出る printfでは指定した位置の引数を$で引っ張ってくる事ができる #kernelvm"
Fadisさんのツイート: "printf( "%3$*4$d%5$n", 2, 1, 0, 5, &a ) // 文字数を出力することもできる #kernelvm"
Fadisさんのツイート: "printfのformat stringで足し算ができる!!! #kernelvm"
Fadisさんのツイート: "format stringで処理系を作るwww #kernelvm"
Fadisさんのツイート: "プログラムカウンタ、リンクレジスタ、汎用レジスタ、関節参照アドレスレジスタ等を用意し、全てprintfに引数として渡し、format stringを駆使してこのレジスタ上で計算を行う #kernelvm"
Fadisさんのツイート: "引き算: 2の補数の足し算ができれば良い → 補数を求めるテーブルを用意 #kernelvm"
Fadisさんのツイート: "このprintfの問題は狂気じみた問題にもかかわらずCTFで11/554チームが解けた #kernelvm"

users

@fadis_

Fadisさんのツイート: "最近のメモリで見られる 同じ行に連続してアクセスすると直接アクセスしていない領域の値が化ける現象(RowHammer問題) を利用してLinuxで権限昇格ができる模様 http://t.co/10kwCTzMyJ"
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
Trojan Source Attacks
Fadisさんのツイート: "「バッファオーバーランによる脆弱性の仕組みを学びましょう、まずここのリターンアドレスが潰れるようにシェルコードを… stack-protector「スタック破壊を検知しました」 NXビット「そもそもそこ実行できんで」 ASLR「シェルコードの中で呼んでるその関数、そこにはないよ」 「」"
Fadisさんのツイート: "スタックに任意の書き込みが出来る状態から任意の処理を実行出来るようにするためには、popでレジスタに値をロードして、retで走らせたい命令列がある場所にジャンプする、と"
Fadisさんのツイート: "そんなわけでROPはまず目当てのレジスタにpopしてretqしてるところを探す事から始まる、と"
Fadisさんのツイート: "よっしゃ、ROP動いた"
Fadisさんのツイート: "retを使わない事でReturn Oriented Programmingを阻止する話を探してたら、retじゃない命令でReturn Oriented Programmingする論文を見つけちゃったところ https://t.co/pkdYlxJYAr"
Return-oriented programming without returns
Fadisさんのツイート: "CRIU: Linuxで実行中のコマンドのダンプと復帰を行うツール https://t.co/HbYJgGHVn4 #kernelvm"
Fadisさんのツイート: "範囲外参照の不具合とWebCore::CSSSelector::specifyを組み合わせて1bitだけ書き込むことができる → ArrayBufferのサイズの情報を書き換える→ArrayBufferから範囲外の値を読み書きできるようになる #kernelvm"
Fadisさんのツイート: "自由に書き換えられるようになった領域にさらにArrayBufferViewを作って、ベースアドレスを書き換えてさらに広い領域を自由に書き換えられるようにする、と #kernelvm"
Fadisさんのツイート: "そのままこの領域にバイナリを書いてvtableを書き換えてジャンプしてもNXビットが立ってて実行されない → Return Oriented Programmingだ! #kernelvm"
Fadisさんのツイート: "stack pivotを使って書き換え可能な領域がスタックだったことにする #kernelvm"
Fadisさんのツイート: "iretが#SS例外を投げるとユーザ空間のGSのままカーネルが実行されるバグがLinuxカーネルに見つかる → その後呼び出される関数がGSが指す構造体に0を書き込む → ユーザ空間から指定した位置に0を書き込むことができる #kernelvm"
Fadisさんのツイート: "PS4はFreeBSD4で動いている → ページフォルトハンドラが書き換え可能になっているため、ここを書き換える #kernelvm"
Fadisさんのツイート: "Linuxの場合は割り込みテーブルがリードオンリーになっているため、カーネル内でROPをして各種保護を切って書き換える #kernelvm"
Fadisさんのツイート: "A Turing complete ROP compiler https://t.co/olv8tOFzBR #kernelvm"
download;jsessionid=7BE7708C4BC9D07131666776F6159B34
Apple、iOSやmacOSなどの脆弱性を多数修正 | スラド アップル
Fadisさんのツイート: "stack-protectorはスタック破壊を「検知」することはできるけど「修復」することはできなくて、従ってカーネルのstack-protectorは攻撃者がring 0で任意のコードを実行しうる脆弱性を、攻撃者がカーネルパニックさせられる脆弱性に弱める物で、スタック破壊による攻撃を無力化する働きはない"
FadisさんはTwitterを使っています 「stack protector同様ASLRもforkしただけでは配置を変えられない。攻撃者はバッファオーバーラン脆弱性を使って既知のカナリアの後ろのリターンアドレスを書き換える事で「子プロセスがクラッシュしたかどうか」でASLRで配置換えされたページがどこに行ったかを探る事が出来る。これがBlind ROP、と」 / Twitter
FadisさんはTwitterを使っています 「で、ここまでの手法はいくらでも子プロセスをクラッシュさせられる場合専用だったわけだけど、BlindSide(https://t.co/xeEaTxQ5f5)はこれにSpectreを組み合わせて、ないかもしれないページを読んだ後で無かったことにしてその時の応答を観測する事で、プロセスをクラッシュさせずにASLRを乗り越える」 / Twitter
BlindSide - VUSec
FadisさんはTwitterを使っています 「SyzkallerによるLinuxカーネルのファジングの問題についての話。カーネル開発にsyzkallerが使われだしてから多くのバグがファジングで見つけられてきたが、その中には直ちにセキュリティ上の問題に繋がらない物も多く、発見数が多いことからそうしたバグは放置されがちだった https://t.co/wDQu2xpNDA」 / Twitter
FadisさんはTwitterを使っています 「しかしsyzkallerはあるパスでバグを見つけるとそのパスの実行を打ち切る為、最初に発見されたのは漏れても困らない情報のリークだったので放置されたが、実際にはその後ろで漏れてはいけない情報も漏れていた、といった形での脆弱性の見落としが悩ましい問題になっている」 / Twitter
FadisさんはTwitterを使っています 「ファジングが活用される時代にソフトウェアに脆弱性を仕込むコツは「軽微なバグの後ろに深刻な脆弱性を並べる」というものになるのか…」 / Twitter
るくす(転送届)さんはTwitterを使っています 「@fadis_ こういう研究があります https://t.co/lboSl3rNsJ」 / Twitter
Fuzzification: Anti-Fuzzing Techniques | USENIX
FadisさんはTwitterを使っています 「Googleが新しいファジングの使い方SiliFuzzを開発している話。SiliFuzzはCPUシミュレータでカバレッジを上げられるような実行可能バイナリを探し、それによって得られた「CPUの様々な機能をつつく」バイナリを実際のCPUで実行してみることで、効率よくCPUの実装ミスを発見する https://t.co/6XzGM80NVW」 / Twitter
Google Developing "SiliFuzz" For Fuzzing CPUs To Uncover Electrical Defects - Phoronix
FadisさんはTwitterを使っています 「直接カバレッジをとることができない実装と同じ機能を提供するカバレッジを取れる実装で多くのパスを発見できる入力値は、カバレッジをとれない実装においても多くのパスを通っているに違いない、というファジングの手法を"fuzzing by proxy"と呼ぶらしい」 / Twitter

@tanimocchi

もっちぃさんのツイート: "Side Channel Analysis via Model Counting Constraint Solvers https://t.co/YbVLNq3pur Side Channel Analysis Using a Model Counting Constraint Solver and Symbolic Execution https://t.co/wXQx1WHOhl String Analysis for Vulnerability Detection and Repair https://t.co/lQsOs1Sb5p… https://t.co/nBTZiopJN6"
もっちぃさんのツイート: "サイドチャネル攻撃耐性のあるコード設計&バイナリ生成技術も既に研究されていて、その紹介スライドは下記が良いかなと。 Verifying Cryptographic Implementations with F* https://t.co/4CEBFBDlPt… "
Verifying Cryptographic Implementations with F*

histric

histric-1

港務部長オルミンの温冷鮭サンドイッチさんのツイート: "CVE-2014-9322 #kernelvm [sokutenable]"
OS作れないマン WalB担当さんのツイート: "ROPは、コード領域で自分が欲しい命令列になるアドレスを頑張って探してジャンプする #kernelvm"
るくすさんのツイート: "久しぶりにヒープ系のエクスプロイト書いた。 WebKit OOB 1byte-writeでよろしくやるコードですね。これで分かる人は分かると思う。 (pwn2own 2014のやつ)"
$Hell on Sony Snatch the Kernel privilage from Browser // Speaker Deck
suzakiさんのツイート: "バイナリが本当のソースから作られたことを検証するdiffing Toolsに関するブログ。IDAProに類似度比較のPlugInを入れる。 https://t.co/OP4rHkMeTR Hacktivity18の”Diffing C Sources to Binaries”で発表される。 https://t.co/yJN3HNbi64"
Histories of comparing binaries with source codes | Unintended Results
OSC2019東京・春出展さんのツイート: "HMAC(key, msg) == signature; のどこが問題かという話.比較関数==は(大抵の実装では)先頭から調べて一致しなくなったらfalseを返すので,1文字目が一致するかしないかで応答時間が微妙に異なる.そこを計測できるとMACを推定することが可能."
uint256_tさんはTwitterを使っています 「Anti hacking compiler ってなんだろう」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/FMlgTMBDMR」 / Twitter
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
mumumuさんはTwitterを使っています 「AddressSanitizer: A Fast Address Sanity Checker [ATC '12] 所謂Asanの比較的初期の頃?の仕組みと実装をまとめた論文.コンパイラのInstrumentation + Shadow Memory.スライドのSummaryに"C++ is suddenly a much safer language"って書いてあって:thinking_face: https://t.co/779BlbNITw」 / Twitter
serebryany_atc12_slides.pdf
daem0nc0reさんはTwitterを使っています 「このWriteupは面白いですね。 どういう条件が揃っているとXSSから遠隔コード実行まで持っていけるかが勉強できて良いと思います。 https://t.co/FrosfsYgW5」 / Twitter
Stored XSS to RCE Chain as SYSTEM in ManageEngine ServiceDesk Plus | by Chris Lyne | Tenable TechBlog | Aug, 2021 | Medium
るくすさんはTwitterを使っています 「2年ぐらい前にアメリカにいた時に「ゼロデイを見つける時代は終わりだ。これからはいかにバレないようにゼロデイを"埋め込んでいくか"の時代が来るんだぜ」って言われて、んなアホなと思ってたが最近マジでそうなりつつあるな」 / Twitter
るくすさんはTwitterを使っています 「当時ですら既に国防総省肝いりのきな臭そうな(?)バックドア挿入の研究プロジェクトあったから今とかもっと凄そう」 / Twitter
品川 (utshina2)さんはTwitterを使っています 「これは ring 0 に対してはやってなかったか。」 / Twitter
Microsoft Word - exoshim.docx - tr15-001.pdf
Tsukasa #01さんはTwitterを使っています 「まさかのこの性質を使っている論文を見つけてしまった。 Brookes et al. https://t.co/vQHHUeI3kM」 / Twitter
品川 (utshina2)さんはTwitterを使っています 「Readactor の方が先かなぁ。 https://t.co/XniM2nuPsH」 / Twitter
Readactor:メモリ開示に強い実用的なコードランダム化| IEEEカンファレンスパブリケーション| IEEE Xplore
daem0nc0reさんはTwitterを使っています 「WindowsのAMSI Bypassの手法は、ゆっくりではあるけど対策はされている印象なので、定期的に調査結果をまとめてくれる人がいるのはありがたいですね https://t.co/7Gs3qj9pCe」 / Twitter
Defense Evasion Series Part 1 AMSI Bypass | Dazzy Ddos
daem0nc0reさんはTwitterを使っています 「このJavaScript EngineのExploitの問題は面白そうです https://t.co/cCSKo2KMYY」 / Twitter
TCTF 2021 Promise
daem0nc0reさんはTwitterを使っています 「自作EDR、良いですね。 Windows Kernelの知識を深めたい人は読むべし https://t.co/KT05fdgB1J」 / Twitter
Blinding EDR On Windows - Red Team Blog
daem0nc0reさんはTwitterを使っています 「Remote Desktop ProtocolのFuzzingについての記事。 かなり詳しく書いてあります。 じっくり読んでいきたいと思います。 https://t.co/4d9gqyqjHd」 / Twitter
Fuzzing RDP: Holding the Stick at Both Ends

伊藤 彰嗣 / Akitsugu ItoさんはTwitterを使っています 「ここにも Bug Crowd が出てきていますね。https://t.co/EBggdGta12 なども含め、この手の報告者を保護するための活動に積極的に参加されている印象です。」 / Twitter
The disclose.io Project | Open-source tools for a healthy Internet Immune System.
Sen UENOさんはTwitterを使っています 「セキュリティエンジニアが訴えられたり捕まるリスクはどの国にでもあるのね。 バグハンターが企業から訴訟を起こされないようにする法律を提唱するWGを作成 https://t.co/D1droTCnHB」 / Twitter
Cyber-security threat hunters seek legal protections • The Register
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「パスワードなど秘密の情報が表示されたスクリーンショットを公開するとき、決してモザイク (ピクセル化) を使ってはならない。モザイクのかかった文字は解読可能である。 https://t.co/XsLLhODotS」 / Twitter
Never Use Text Pixelation To Redact Sensitive Information | Bishop Fox
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Spook.js - Chromeのサイドチャネル攻撃を使って、悪意あるページからブラウザ中で開かれている別のページの内容を盗み見できる。LastPass機能拡張の内部状態からマスターパスワードを復元することすら可能。 https://t.co/xic7jvIYMO」 / Twitter
Spook.js

株式会社リチェルカセキュリティ
オープンソースセキュリティへの取り組みを集約した“Open Source Security Foundation”が設立 - 窓の杜
情報漏洩の定量化によってシステムを保護する

コード分析

その他

コード分析ツールを利用する - プログラマが知るべき97のこと
冗長コードの検知と解析
日記 (2014 年 2 月下旬)
Software rot - Wikipedia
NetBeans IDE Javaエディタでの静的コード分析
ルール ベース分析
Google Developers Japan: サニタイザーによる Android のバグ退治
プロならゲーム開発で品質保持/CIは当たり前:C#/C++の本格的なゲーム開発において品質を高めるために知っておきたい静的解析とは - @IT
ElectricCommander
バグハンターのためのクライアントサイドJavaScriptの静的解析 - No1zy Web Security Blog
golang.org/x/tools/go/analysisで静的解析ツールを自作する #gounco / how to create the static analysis tool for go - Speaker Deck
Mozilla、Firefox開発プロセスにUbisoftのAI技術を採用へ | OSDN Magazine
MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能 - Publickey
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
国際会議 SOSP 2019 - 品川研究室のブログ
プログラム解析の目的 - uchan note
静的解析の育て方 / How to make your static analysis strong - Speaker Deck
CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
JetBrains は IntelliJ 2020.2 をリリース
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(前編) - Publickey
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(後編) - Publickey
開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE
Sonatype LiftがFacebook Infer、Google ErrorProne等のコード分析ツールを統合

MS

クイックスタート: C/C++ のコード分析 | Microsoft Docs
チュートリアル: C/c + + コード分析による欠陥の分析 | Microsoft Docs
C++ Core Guidelines チェッカーリファレンス | Microsoft Docs
C/c + + のコード分析の警告 | Microsoft Docs
「Visual Studio 2019」がリリース候補(RC)版に ~CodeLens機能がCommunity版にも開放 - 窓の杜
Visual C++の静的解析を利用する方針 | iwadjp's Blog!

Clang-Tidy

clang-tidy - Google 検索
冬休み到来! clang-tidy で安心安全な C/C++ コーディングを極めよう! - Qiita
clang-tidyで命名規則のチェック(&自動修正) - Qiita
Visual Studioでも最新のClangが使いたい! - Qiita
【C++】VisualStudioの標準機能の静的解析ツールについて | PeLoProject
Clang-Tidyインテグレーション - 公式ヘルプ | CLion
のClang-Tidyを使用Visual Studio | Microsoft Docs
Visual Studio プロジェクトでの Clang/LLVM のサポート | Microsoft Docs
Clang-Tidy — Extra Clang Tools 14 documentation
clang-tidy - Clang-Tidy Checks — Extra Clang Tools 14 documentation
Clang-tidy IDE/Editor Integrations — Extra Clang Tools 14 documentation
Getting Involved — Extra Clang Tools 14 documentation

ポインタ解析

FadisさんはTwitterを使っています: 「みんな戻ってきたので少し早いですが @kristopher「Kiyomizu: LLVM IRを解析によってコードの脆弱性を防ぐ」が始まります #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「「清水の舞台から飛び降りて無事だったら、願いが叶う」→「チェッカを通して無事だったら、安全なコードである」 Project Kiyomizu #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「LLVM IRのレベルでメモリアクセスの解析やコールグラフ解析を行う事で、様々な言語を安全に書けるようにする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「社会インフラを構成するシステムに存在する脆弱性の多くが正しくないメモリアクセスを原因としている、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「ポインタ解析ではある関数がアクセスして良いアドレスの範囲の情報を作って、それに違反していないかをチェックする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「言語に型の条件チェックを付けて安全なコードを書けるようにしました、という話を目撃する度に「それC++で(以下略)」というお気持ちになってる」 / Twitter
FadisさんはTwitterを使っています: 「でも実行時にならないと確定しないようなものをテストと結びつけてチェックできるのは羨ましい」 / Twitter

Snyk

渋川よしきさんのツイート: "アカウント登録必要だけど、snykを別に使えば、セキュリティチェックを別に行うことは可能。これはnode.js以外のGoとかにも対応してる。audit入る前からこれ使ってた(vulsの神戸さんに教えてもらった) #ll2018jp"
Open Source Security Platform | Snyk
Scan Your Code and Open Source for Vulnerabilities for Free | Snyk
オープンソースコードのセキュリティチェックと問題修復を開発のワークフローに組み込むSnyk、GitHubとの統合も可能 | TechCrunch Japan
オープンソースのライブラリのセキュリティチェックと脆弱性フィックスを代行するSnykが$7Mを調達 | TechCrunch Japan
snyk/snyk: CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
Snyk
snyk/vulnerabilitydb: Snyk's public vulnerability database

SCALe

カーネギーメロン大学、ソースコード解析ツール「SCALe」を公開 | マイナビニュース
SEI CERT Division Releases Downloadable Source Code Analysis Tool
cmu-sei/SCALe: SCALe (Source Code Analysis Lab) is a static analysis aggregator/correlator which enables a source code analyst to combine static analysis results from multiple tools into one interface, and also provides mappings for diagnostics from the tools to the SEI CERT Secure Coding standards.
コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開 - Publickey

KMC Staff Blog

KMC Staff Blog:sparse チェッカーを使ってみる。
KMC Staff Blog:GCC の名前付きアドレス空間サポート
KMC Staff Blog:GCC の profile mode を試してみる。

Twitter

高梨陣平さんのツイート: "正規表現ライブラリに動的にメモリ破壊の可能性を解析するlibFuzzerを使ったら5つも問題を見つけたとの話。C/C++を用いるOSSには定期的に検査をかけてくれるOSS-Fuzzというのもある。利用申請が必要。 https://t.co/kWENHQIqCq https://t.co/lGAoq90Njo"
Masakazu Asamaさんのツイート: "Clang の ML に「Clang の static analyzer 使って Linux の TCP/IP スタックの検証してみたいんだけど」みたいなスレあって色々調べてたら FreeBSD は Wiki にカーネルの static analyzer にかける方法が載ってた。"
Masakazu Asamaさんのツイート: "@m_asama 「これで潰せたバグの一覧」とかあったら個人的にめちゃくちゃ興味あるんだけどどうなんだろ。 https://t.co/8vggEG1lHH"
Rockridgeさんのツイート: "MozReviewに送信されるすべてのパッチに対し自動的に静的コード解析が行われるようになる模様。解析の結果指摘された問題点を解消しない限り、パッチのチェックインができなくなるそうだ。 / “Intent to Enable: …” https://t.co/vyQR5pNHTq"
Kazuho Okuさんのツイート: "Cの静的解析ツール、false positiveの管理が辛くて、その点Coverity Scanはウェブベースだからグループ開発にむいてる"
Kazuho Okuさんのツイート: "Cコードのregressionを見つける比率で言うと、CI : fuzzer : 静的解析 = 100 : 10 : 1 くらいの僕的印象"
眼力 玉壱號さんのツイート: "@kazuho code flow はよく見ている印象。C++11〜 の対応が弱いのが少し辛い> Coverity"
とみながたけひろさんのツイート: "ふつーのコンパイラの警告, cppcheck, coverity, fortifyあたりを併用しているけど、まあどれも一長一短な感がある。お値段とか精度とか速度とかいろいろ"
鯵.pngさんのツイート: "ソースコードとコンパイラが吐いたバイナリが同じ挙動をするかどうか、ハードウェアみたいにフォーマルベリファイアで確認することが必須になる未来を見てみたい"
Kentaro Haraさんのツイート: "Googleの2億行のソースコードを解析した結果、関数に渡す引数の順番を間違える系のバグは、引数の個数が6個以上になったときに著しく増えるので、引数の個数は5個以下が望ましいことがわかったという話。 https://t.co/R5yy31pDyu"
なかのん&マジックさんのツイート: "CheckSomething()って名前のメソッドはプロジェクト問わずだいたいダメ。"
なかのん&マジックさんのツイート: "Checkすることで何が起きるのかよく分からない、つまり、実装する人によってそのメソッドの性格が変わるということを意味してる、非常に良くない単語。"
FadisさんはTwitterを使っています: 「gcc 10からC言語のコンパイル時に-fanalyzerをつけることで静的解析をかけられるようになる話。さしあたってはまずいメモリ確保/解放を見つけるようになるらしい。コンパイラの中間表現を使って静的解析を行う試みは既にclangで行われていたが昨年末にgcc向けの実装が登場した https://t.co/orYlhY267F」 / Twitter
GCC 10 Introduces A Static Analyzer - Static Analysis On C Code With "-fanalyzer" Option - Phoronix
mumumuさんはTwitterを使っています 「Finding Error Handling Bugs in OpenSSL using Coccinelle OpenSSL特有のある種のバグをLinuxで使われているC言語ソースコードのパターンマッチツールで検出する試み.あくまで静的解析でデータフロー解析などはできないが,それでも30個見つけている. https://t.co/1ZFGlzTd7e」 / Twitter
Finding Error Handling Bugs in OpenSSL Using Coccinelle - IEEE Conference Publication

returntocorp/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
FacebookがSuperpackでコード分析を活用してAndroidアプリを圧縮
「Thunderbird」や「LibreOffice」などに影響か ~Mozillaが「NSS」の致命的な脆弱性を公表 - 窓の杜
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Mozillaが保守している Network Security Services (NSS)で固定長フィールドによる単純なバッファオーバーフローが発見された。NSSは長年保守されている高品質なコードだが、それでもこうしたバグは存在する。しかも既存のfuzzerやCoverityなどでも発見できていなかった。 https://t.co/eB4JO93Zsr」 / Twitter
Project Zero: This shouldn't have happened: A vulnerability postmortem
静的アナライザRudraがRustクレート内に200件のメモリ安全上の問題を検出
Detector Libraryとログインジェクション脆弱性のためのセキュリティ検出器を特徴とする新たなCodeGuru Reviewer
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コードを入力すると、その説明を自然言語 (英語) で表示するサービス。かなり多くの言語をサポートしている。Pythonで簡単なDijkstra法を書いてみると、ときどき"This code finds the shortest path."と返すが、まったく同じコードで意味不明な説明のときもある。確率的らしい https://t.co/Rsi2mHnU6Z」 / Twitter
Denigma - AI that reads and explains code in understandable english
米Intel、自動バグ検出ツール「ControlFlag」をオープンソースとして公開 | OSDN Magazine

JIT

JIT 無効化

MicrosoftがEdgeでJITを無効化し安全なブラウジングができる「Super Duper Secure Mode」をテスト - GIGAZINE
一ノ瀬 いろはさんはTwitterを使っています 「JavaScript の JIT (V8 実装に限らず)はバグが多い割に速度上のメリットも少なくなってきたので無効化しても問題ないんじゃね?と言う所か。」 / Twitter
Andreas KlingさんはTwitterを使っています 「Microsoft Edge is experimenting with disabling the JavaScript JIT in order to greatly improve browser security. I am 100% in favor of this. As fun as it is to compete on benchmarks, end user benefit has hit diminishing returns a long time ago IMO. https://t.co/ix1nC9Yq4l」 / Twitter
Super Duper Secure Mode | Microsoft Browser Vulnerability Research
一ノ瀬 いろはさんはTwitterを使っています 「JIT が複雑で実装が難しいと言うのは当初PHP7で実装される予定だった物がPHP8に持ち越された事を考えてもある程度想定出来る。 以前はそれでもメリットの方が大きかったんだろうけれど。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「JITがUnsecureになりうるのは、Optimize JITのデバッグが大変辛いという話なので、それはWASMであってもOptimize JITが実行されれば、同じ理論が発生するだろうし、InterpreterやTemplate JIT (Baseline JIT)みたいなデバッグしやすいものよりも安全ではないというだけの話としか」 / Twitter
Microsoft Edgeに“スーパースゴイ”セキュリティモード - PC Watch
JavaScript性能低下よりも大事なEdgeの新セキュリティ機能 - 阿久津良和のWindows Weekly Report | マイナビニュース

V8

Miura HidekiさんはTwitterを使っています 「https://t.co/OMwoQQE6Gk mrubyのJITにそっくりな位置づけのコンパイラ。のぞき穴最適化しかできないと書いてあるけど、一応基本ブロック内で型情報を渡して自明なガードを削除するとかはできますよ。」 / Twitter
Sparkplug — a non-optimizing JavaScript compiler · V8
Short builtin calls · V8
Super fast super property access · V8
Faster JavaScript calls · V8
Slack tracking in V8 · V8

PyPy

Tracing JIT

型アノテーション

アノテーション - Wikipedia
26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント
Pythonの関数アノテーションと型ヒント、typingモジュール | note.nkmk.me
Pythonではじまる、型のある世界 - Qiita
Python の型アノテーションと ast モジュールで, python コードから C/C++ コード生成に思いを馳せる - Qiita
Python と型アノテーション
型アノテーション · GitBook
PythonのTypeHints ~型アノテーション~ - Tocyukiのブログ
Pythonと型 〜 Docstring、関数アノテーション、型推論 〜 - Blank File
[翻訳] PEP 0484 -- 型ヒント (Type Hints) - Qiita
RPython 型付け器 — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation

トレーシング実行時コンパイル - Wikipedia
Tracing just-in-time compilation - Wikipedia
PyPy Status Blog JA: 部分評価とトレーシングの比較 Part 1
PyPy Status Blog JA: FlowGraph 言語のための単純なトレーサ
PyPy Status Blog JA: FlowGraph 言語のトレースの最適化
より大きなフローグラフ言語の例
web.archive.org/web/20130122090621/http://www.longsleeper.com/
Wayback Machine
#3 PyPyについての講演,ハンズオン,スプリント:そうだ! EuroPython 2011へ行こう|gihyo.jp … 技術評論社
Tracing the Meta-levelとは?PyPyのJITコンパイラについて - TECH-MICCHON.jar
流行りのJITコンパイラは嫌いですか? — PyPy Advent Calendar 2011 v1.0 documentation
言語のJITコンパイラをその言語自身で作る事の意義とは - Togetterまとめ
どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
Tracing_JITs11_tracing_the_meta_level.pdf
The Essence of Meta-Tracing JIT Compilers.pdf
BoCuFiRi09_246.pdf
Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation
Tracing the meta-level: PyPy's tracing JIT compiler | Request PDF
Runtime feedback in a meta-tracing JIT for efficient dynamic languages | Request PDF
Trace-based just-in-time compiler for Haskell with RPython
pycket-draft.pdf
34

RPython

Frequently Asked Questions — RPython Documentation
Getting Started with RPython — RPython Documentation
Welcome to RPython’s documentation! — RPython Documentation
rpython 0.1.4 : Python Package Index
PyPy - RPython toolchain — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation
Building An Interpreter In RPython - PyCon Japan 2016 // Speaker Deck
Pyrlang: RPythonを用いた高性能仮想機械 – 増原英彦研究室
PyPyの基礎知識まとめ その1 - Qiita
RPythonの情報とRPythonで実装されている言語処理系 - rokujyouhitoma's blog
RPythonToolChainでOok!を実装した時のノウハウ紹介。PyPy Advent Calendar 2011 7日目 - rokujyouhitoma's blog
Shibu's Diary: PyPyよりも5倍高速な最速のPython処理系
RPythonで書かれたRuby処理系Topazで遊ぶ
RPythonについて軽く | κeenのHappy Hacκing Blog
Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
Hideyuki TanakaさんはTwitterを使っています: 「なるほどMesaPy(´・_・`) / 2件のコメント https://t.co/40dKogXBMU “GitHub - mesalock-linux/mesapy: A Fast and Safe Python based on PyPy” (11 users) https://t.co/itU9MPPTVE」 / Twitter
mesalock-linux/mesapy: A Fast and Safe Python based on PyPy
Hideyuki TanakaさんはTwitterを使っています: 「RPythonのCの部分はFormal Verificationして、外部ライブラリはRustのものに置き換えてメモリ安全という話なの(´・_・`)」 / Twitter
RPythonについて軽く | κeenのHappy Hacκing Blog

continulet

覚え書き: Pausable Unittest その1 (continulet と tasklet)
アプリケーションレベルのスタックレス機能 — pypyja 1.7 documentation
Emerge Technology: pypyのスレッドとかgreenletとか何か

OSDN

Python処理系「PyPy 4.0」リリース、起動時間を大きく改善 | OSDN Magazine
「PyPy 5.0」リリース、起動時間やメモリ使用量の短縮が行われる | OSDN Magazine
Python実行環境「PyPy 5.1」公開、ウォームアップ時間やメモリ要求をさらに強化 | OSDN Magazine
「PyPy2.7 v5.6」リリース | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
「PyPy 7.0」リリース、アルファ段階の機能としてPython 3.6対応を追加 | OSDN Magazine
aarch64に対応した「PyPy 7.2」が公開 | OSDN Magazine

PyPy - Wikipedia
PyPy Advent Calendar 2011 6日目 Frequently Asked Questions - YAMAGUCHI::weblog
ryu22eBlog跡地:第八回ありえるえりあ勉強会 ~PyPyのキホンの気 に参加しました #arielarea
PyPy 紹介
次世代言語 Python による PyPy を使った次世代の処理系開発
PyPy開発へようこそ — pypyja 1.7 documentation
Coding Guide — PyPy documentation
PyPyのPyObjectの実装が謎い - Togetterまとめ
PyPyの論文つぶやき - Togetterまとめ
Python を速くする取り組み - methaneのブログ
PyPyがCより速いケース - karasuyamatenguの日記
PyPy 4.0登場 - SIMDベクトル化機能付きJIT搭載 | マイナビニュース
PyPy 5.0登場 - 起動処理が30%高速化 | マイナビニュース
さらに高速化、PyPy 5.1登場 | マイナビニュース
PyPy ソースコードリーディング事始め - プログラマのネタ帳
PyPy Advent Calendar 15日目 - 低レベルっぽいことをやってみる - プログラマのネタ帳
PyPy Status Blog: PyPy JIT for Aarch64
Miura HidekiさんはTwitterを使っています 「インタープリタをコンパイラに変換する射影は、例えばインタープリタの実行コードをそのままコピーするとかで比較的簡単に出来ると思う。もちろんそれで例えばインタープリタに勝てるくらいの効率のいいものとなると難しいわけで、つまりpypyはすごい」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「インタプリタがあればコンパイラが生成できるし、なんとなれば「インタプリタを与えるとコンパイラを出力するプログラム」も生成できる二村射影って凄い発明。(ただし部分計算系αの構築は激ムズ)」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンパイラを作ったことの無い人は信じられないかもしれませんが、カリカリにチューンされたインタープリタに勝てるコンパイラを書くのは結構大変なことです」 / Twitter

バイトコード

Miura HidekiさんはTwitterを使っています 「会議で夕飯が遅れたので夕飯食べていました。これからその詳細を話したいと思います。もちろん、これは会議中に思いつきました 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「バイトコードインタープリタでも使えそうなくらい高速な気がするデータフロー解析が出来るバイトコードの表現方法を思いついた」 / Twitter
Miura HidekiさんはTwitterを使っています 「バイトコードの表現を オペコードの配列(これは普通のバイトコード命令列と同じですね)とオペランドのビットマップ配列に分けます。オペコードの配列は今までの通りです。 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「とりあえずバイトコードを64bit(じゃなくてもいいけどこの辺があつかいやすいでしょ)単位に分けます。オペランドについてはソースとディスティネーションに分けられるかと思います。 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「ソースとディストネーションについて64命令をひと単位にしてその命令に当たる位置で使われていたら1を立たせるようなビットマップを用意します。 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「前ツイートのビットマップは全レジスタについて用意します。最初に説明したオペコードの配列とこのオペランドのビットマップ配列でバイトコード命令列を表現します。 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「賢明なフォロワーさんにはオペランドが命令列を串刺ししたビット列になっていることから命令間の生存情報とかがビット演算で表現できるのでは?って思われると思います。しかし、これだけでは私の貧弱なビット演算能力では不十分なので、このビット演算をリバースした配列も用意します。 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「たとえば今解釈しているアドレスpが設定しているr3がどの命令列まで有効か知りたいとします。続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「この場合、r3のビットマップb1(下位ビットが若いアドレス)があったとして、b1 ^(b1 - (1 << p))とすることで今の命令で設定したr3の範囲に1が立つことになります」 / Twitter
Miura HidekiさんはTwitterを使っています 「こうしてできたマスクビットはソースとandとって使用箇所を得たりと色々使うことが出来ます。」 / Twitter
Miura HidekiさんはTwitterを使っています 「まだいろいろ書けますけど、9時もすぎて眠いので気が向いたら明日書くかもしれませんし、書かないかもしれないです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「図で書いた方がわかりやすそうなのでここに書いていきます。随時更新予定 https://t.co/Gz3TDnOpId」 / Twitter
meirei - Google スライド
Takuo WatanabeさんはTwitterを使っています 「@miura1729 図の1枚目ですが、SRCのR1とR2の下(右)3桁はそれぞれ010,100じゃないかと思うのですが、どうでしょう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo はい、その通りです。 2行目をR2 → R1と勘違いしていました。ありがとうございます」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo 早速直しておきました」 / Twitter
バイトコード - Wikipedia
Javaバイトコード - Wikipedia
プログラミング言語を作る/静的・バイトコード実行型言語を作る
簡易スタック型VM(バイトコードインタプリタ)でのフィボナッチ数計算速度 - sileのブログ
Rubyist Magazine - YARV Maniacs 【第 2 回】 VM ってなんだろう
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (2/2) - @IT
Javaバイトコードの読み方 - わらばんし仄聞記
Java VMとバイトコードとマイコンの親和性は良好? - Lynx-EyEDの電音鍵盤 新館

YJIT

「Ruby 3.1.0」がリリース ~プロセス内JITコンパイラー「YJIT」をマージ - 窓の杜
Ruby 3.1正式リリース。Shopify開発のJITコンパイラ「YJIT」をメインラインにマージ - Publickey
Miura HidekiさんはTwitterを使っています 「今考えている高速インタープリタ、yjitの位置に乗っけられるのでは?と考えてyjitを読んでいた。少しyjitが理解出来た」 / Twitter
Miura HidekiさんはTwitterを使っています 「yjit完全に理解した (大ウソ」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、あるコンパイルされたコードで型が決まっているかいないかでバージョン分けして、もっともスコアの高いコードを選択する部分はなるほどーって思った。」 / Twitter
Miura HidekiさんはTwitterを使っています 「あと、ヒープに乗っけているのか、ポインタに組み込まれた即値なのかで分けるのも、なるほどー。こうすればガードのコードが簡単になる」 / Twitter
Miura HidekiさんはTwitterを使っています 「今考えているプログラムは、スタックの上に乗ったオブジェクトも考えているけどこのblock versionの考え方の延長線できれいに出来そう」 / Twitter
Miura HidekiさんはTwitterを使っています 「yjitのおかげで進むべき道が見えてきた」 / Twitter
Miura HidekiさんはTwitterを使っています 「こんな感じだろう yjitとよく似たアプローチだがyjitに比べて最適化をリッチに行う。もちろん、スタートアップが遅くなるなど弊害があるがそれは0にはできないが軽減出来る方策を取る。そして、最適化のための主な武器はもちろん抽象解釈」 / Twitter
FadisさんはTwitterを使っています 「copyright trollならぬcopyleft trollの台頭についての論文。Creative Commonsが正しく理解されないまま広く適用されているのを利用して、CC-BY-SAで配布した写真が不正確なライセンス表示で再利用されているのを見つけて訴訟をふっかける https://t.co/cT29c0BjDQ」 / Twitter
Rise of the Copyleft Trolls: When Photographers Sue After Creative Commons Licenses Go Awry by Daxton Stewart :: SSRN
FadisさんはTwitterを使っています 「古いCCはライセンス違反は直ちにライセンスの失効となっており、表示ミスは写真を無断で使った状態になる。これによるトラブルを避けるためにCC 4.0からはライセンス違反の指摘からそれを解消するまでの猶予期間が定められたが、copyleft trollは意図的に古いCCを使うことで直ちに訴えられるようにする」 / Twitter
Miura HidekiさんはTwitterを使っています 「最適化を速度向上するためにバイトコードの情報のビットマップ化を利用する。基本的な考え方は https://t.co/9R3BRLd245 ただし、YARVはバイトコードだからバイトコードに合う形に変える必要がある」 / Twitter
meirei - Google スライド
Miura HidekiさんはTwitterを使っています 「yjitと違い抽象解釈で解析すれば型が厳密に決まる可能性が高いことが期待できる。これによるガード軽減がどのくらい効果があるか興味がある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「さらに完全な型解析が可能になった先にはエスケープ解析によるスタック割り付けが見えてくる。これが可能になると2桁倍の速度向上が期待できる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そんな感じのロードマップ。想像するのはタダですわね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「あ、もちろんoptcarrotでキャキャウフフするのが一番の目的です」 / Twitter
Miura HidekiさんはTwitterを使っています 「バイトコード × スタックマシン ○」 / Twitter
ワナベ(wanabe)さんはTwitterを使っています 「yjit についてメモ書き https://t.co/vWQRfM42MQ だんだん手抜きでコード引用だけになってきたので終了しました。概形とか気になっていたところはなんとなくわかった気になった気がするようなきざしを感じなくもないので、まあいいんじゃないかと思います。メモ書きでなくまともな文章にしたい」 / Twitter
gist:3ef8747868ac126c30f94888425eb56d

メソッド・キャッシュ

メソッド実行結果をキャッシュする - うなの日記
rubyのメソッドをキャッシュするコードです。詳細はブログで紹介してます。 http://ameblo.jp/syou007/entry-11468918541.html
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
The Story of Method Lookup - Qiita
第15章 メソッド
API キャッシュを有効にして応答性を強化する - Amazon API Gateway

チューニング(キャッシュ)

herumiさんのツイート: "https://t.co/ge6QtuNysQ MKL-DNNはそのあたり(キャッシュサイズを見て実行時コード生成のパラメータを変える)のことをやってるようです。 https://t.co/gLmXqSEPfS ただcpuidはAWSなどのVM環境(のせい?)では結構適当な値が返ることがあるようでときどきトラブってます。 https://t.co/TV80bXyBnK"
yohさんのツイート: "正直 キャッシュ階層とかメニーコアNUMA構成を活用した"最適"性能チューニングを考え出すと 髪の毛が何本あっても足りないので お近づきになりたくはない領域..."
yohさんのツイート: "#nakamecpp L1$ラインサイズの話題ででてきた L3$による性能ペナルティの話 https://t.co/kzY6aSdzeP このあたりで図解されてて面白いかも x86だとCPUID命令で情報とれるやつ→ https://t.co/wDDyMZn1Lb"
Gallery of Processor Cache Effects
The CPUID Explorer: Part 2
yohさんのツイート: "#nakamecpp で指摘のあった「既存std::lock_guardを複数Mutex対応しないの?」 https://t.co/BOtardjiuQ 当初提案ではまさにその通りで、ABIを壊すからscoped_lockとして新規導入したよとのことでした。ちゃんと書いてありましたね m(_ _;m)"
Variadic lock_guard (Rev. 2)
nakameguro_feature.cpp vol.8
docs/nakamecpp8_20180913.pdf at master · yohhoy/docs
mkl-dnn/jit_avx512_core_fp32_wino_conv_2x3.cpp at 19588d1484911a3dc7933b32ce71d2f1b9bbbb78 · intel/mkl-dnn
Prevent cores_sharing_data_cache being zero on Intel Xeon E5 v2 by playertwo · Pull Request #67 · herumi/xbyak

C3線形化

The History of Python.jp: メソッド解決順序(MRO)
よくわからないので実装して理解するRubyのメソッド解決順序 - Qiita

Threaded code

スレッデッドコード - Wikipedia
Threaded code - Wikipedia
第一級ラベルを持たない言語におけるDirect Threaded VMの実装 | κeenのHappy Hacκing Blog
Rubyist Magazine - YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
direct threaded code - imHo
Direct Threaded Code
Threaded Code - moiの頭の中
楓 software: direct threaded code
ICFP Programming Contest 2006 “The Cult of Bound Variable” に挑戦してみる | 雑記帳
Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals

computed goto

トランポリン

trampfd

FadisさんはTwitterを使っています 「libffi等の厄介な関数呼び出しをするソフトウェアは実行時に関数呼び出しを変換するトランポリンを作るが、トランポリンはexecutableかつwritableなページを要する為、攻撃者に絶好の任意のコード置き場を与える。そこでLinuxに新機能trampfdが提案されている https://t.co/iG7mBWegnU」 / Twitter
Microsoft Engineer Proposes "TRAMPFD" For Improving Linux Security - Phoronix
FadisさんはTwitterを使っています 「trampfdは「レジスタを書き換えスタックに何か積んで飛び先に飛ぶ」トランポリンをカーネルに作らせる。trampfdを作成し、レジスタとスタックの操作と飛び先を設定し、mmapして割り当てられた領域にジャンプすると、レジスタとスタックの操作が行われ、飛び先に飛ぶ。この領域への書き込みは禁止される」 / Twitter

トランポリン - 兼雑記
独自CPU開発で学ぶコンピュータのしくみ - 伊藤剛浩, 川田裕貴 - Google ブックス
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
セキュアなプログラマー: バッファー・オーバーフローに対抗する
GHCのバックエンドについて | 雑記帳
mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter

DSAS開発者の部屋:インタプリタ型言語を高速化する computed goto
computed goto - MEMO:はてな支店
Goto - Wikipedia
Labels as Values (Using the GNU Compiler Collection (GCC))
κeenさんはTwitterを使っています 「インタプリタを作るときのテクニックにVM化とかThreaded VM(computed goto)とかDirect Threaded VMとか色々あるんだけど、gotoが使えないRustでどこまで工夫できるか調べた記事。 Virtual Machine Dispatch Experiments in Rust https://t.co/lcMT86LsHw」 / Twitter
Peter Liniker by pliniker
κeenさんはTwitterを使っています 「それに関する反応も面白い。LLVMがloop {match{}}でほぼThreaded VMと同等のコードを吐いてくれるらしい。 Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals https://t.co/LqpX5skeCI」 / Twitter
Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals
mod_poppoさんはTwitterを使っています 「GCC拡張のcomputed goto, GCCは同じ関数内に&amp;&amp;labelがなくても通るけどClangは何らかの&amp;&amp;labelがないと通らない」 / Twitter
GHCのバックエンドについて | 雑記帳

VM

vmgen で簡単なレジスタベースの VM を作る(1/2) - Qiita
vmgen で簡単なレジスタベースの VM を作る(2/2) - Qiita
VMの本を見てみた: なつたん
Dalvik仮想マシンのアーキテクチャ
Software Basic
Java SE Specifications
Java仮想マシン - Wikipedia
Java仮想マシントリビア - JVM仕様のベリファイアの説明がPrologで書かれている! - Qiita
JVMの中身を可視化してみた
JVMのメモ | Java好き
Kazuho Okuさんのツイート: "何度でも言うけど this[n] って C++ だと合法的なテクニックだし実際に使われるから! 僕のMacBookの中にあるコードを検索するだけでも用例が見つかる。ちなみにこれは JavaScirptCore(SafariのJS実装)の CallFrame.h https://t.co/toppExfr7t"
Kazuho Okuさんのツイート: "メモリ上に連続に一次元として配置されるオブジェクトかつ隣接するものの参照が必要になる場合に有用なテクニックであることを考えると、言語処理系以外にエディタの文字処理(バリアントセレクタ)とかでも使ってそう"
Kazuho Okuさんのツイート: "なんでこれが良いか解説すると、言語処理系のVMスタック上の値はそれぞれ異なる型をもつ(例:呼出フレーム、リターンアドレス、引数)ので、たとえば呼出フレームからリターンアドレスを参照するのは this[OFFSET_OF_RETURN_ADDR_FROM_FRAME] になる"
Kazuho Okuさんのツイート: "スタックフレーム上の各値をそれぞれ異なる「正しい型」で表現しているから、コーディングミスを抑制することができるわけで、良いコーディングパターンなわけです。もちろんコンストラクタの呼出をprivateにしたり、サブクラスでメンバ変数の追加を禁止するなどの前提があるけど"
Kazuho Okuさんのツイート: "他の用例としては MySQL のクエリプラン構築コードに this[-1].next_select = sub_select_op; ってのがある。jon用のクエリプラン生成時に、直前の命令の属性を書き換えてる感じなのかな"
Kazuho Okuさんのツイート: "まあ正直mysqlのコードはアドホックなところが割とあるのでアレだけど"
Kazuho Okuさんのツイート: "クラスファイル内のLineNumberTable削除してから比較すればコメントやインデント変更の影響を検知することはなくなると思うけど、それが簡単にできるツールないのかしら / “Javaのリファクタリングした際にclassファ…” https://t.co/7hvYnGXD9u"
Javaのリファクタリングした際にclassファイルの差分比較をしてテスト要否を判断したい - Qiita
[調査]JVMのスタックサイズについて - Akira's Tech Notes
眼力 玉壱號さんのツイート: "JVM、中に interpreter 持ってるけど、byte code 解釈する部分は立ち上がりの時点で template の穴埋めして動的生成していたりもする cf. https://t.co/LFbIMbouhG… "
openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html#Interpreter|outline
今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Future
Javaは今も無償です - Google ドキュメント
YARV命令ごとの実行コストを知るには - なるせにっき
JVMことはじめ その1: クラスファイル - Qiita
report.pdf
Nextcloud
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「Pharoのツヨツヨ兄ちゃんがSlang(Smalltalk VMを記述している、CにトランスレートされるSmalltalkサブセット)でのVMプログラミングについて「2つの異なる意味論を持つ言語の両方でたまたま同じ動作をするソースコードを書くというパズル」と言っていたのを思い出した。」 / Twitter
Miura HidekiさんはTwitterを使っています 「分かる気がする。確かにそんな感じ。私の場合はソース言語のサブセットではなく、内部構造(ASTや型情報)からターゲット言語(C)の変換メソッドだけど」 / Twitter

スライド

Java仮想マシンの実装技術
静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
mrubyのJIT
V6でJIT・部分適用・継続

blog

Scheme インタプリタにおける仮想マシンアーキテクチャの最適化
Gauche:VMの最適化:JIT:予備実験
DSAS開発者の部屋:最近のPython-dev(2017-04)
won't fix: JIT platform by major browser vendor (Feb 2013)
米国から見た日本のRuby事情(翻訳)
VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話 - k0kubun's blog
CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
ヒープメモリに実行権限を与える件 - syuu1228's blog
LL Future, tracing jit, IBM Java Just-in-Time Compiler - NyaRuRuが地球にいたころ
Binary Size, Partial Memory Mapped File, Just In Time Compile, Latency and Throughput - NyaRuRuが地球にいたころ
JIT コンパイラの Dead Code Elimination を利用して,同一の CIL から複数の実装を生成する - NyaRuRuが地球にいたころ
Kazuho Okuさんのツイート: "局所性が悪い(TLB miss)というよりcache line collisionじゃないのかな / “RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog” https://t.co/DFVdPtX0Cc"
RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
YJIT: CRuby向けの新しいJITコンパイラを構築する(翻訳)|TechRacho by BPS株式会社
JITあれこれ | κeenのHappy Hacκing Blog
自作JavaScriptエンジンの進捗 - uint256_t's blog
論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
code bloat - Google 検索
JITコンパイル時の関数呼び出しの扱い方 - 茅の下
melancholic afternoon
melancholic afternoon
https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
v8 "Launching ignition and Turbofan" 和訳 - kakts-log
How JIT Compilers are Implemented and Fast: Pypy, LuaJIT, Graal and More | Carol's Blog
Project Zero: JITSploitation I: A JIT Bug
Project Zero: JITSploitation II: Getting Read/Write
Project Zero: JITSploitation III: Subverting Control Flow
The MIR C interpreter and Just-in-Time (JIT) compiler - Red Hat Developer
眼力 玉壱號さんはTwitterを使っています 「https://t.co/SPvtlNiWb3 Modern JS engine が何をしているか、低い startup cost、高い実効性能をどうやって実現しようとしているかを一望出来るこの blog entry は一読の価値がある。 # 高性能 JIT engine はこの entry に出て来る様な事を大体実装してる…膨大な engineering resource を費やして」 / Twitter
Speculation in JavaScriptCore | WebKit
眼力 玉壱號さんはTwitterを使っています 「@tanakh 長い時間回る様な奴でないと startup cost が高いのでねえ &gt; JIT # その辺りのバランスを何とかすべく各社鎬を削ってたので、dynamic typed language の JIT に関する知見が溜まったとも言えるのだけど」 / Twitter
Documentation · V8
Sparkplug — a non-optimizing JavaScript compiler · V8
AArch64でJITしてみる | 雑記帳
Universal MachineのJITコンパイラーを書いた | 雑記帳
ICFP Programming Content 2006: ADVENTURE | 雑記帳
ICFP Programming Contest 2006進捗 | 雑記帳
累積レジスタマシンで命令単位JITコンパイラの夢を見る - 一人一党党

infoQ

Lua: 組込みスクリプトエンジン、新しい高性能VMを搭載したLuaJIT 2.0
Javaの新JITコンパイラ、Graalを解説
Safari、新しい低レベルコンパイラB3 JIT導入 | TECH+
WebKitがWebAssemblyを完全にサポートした
AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
Unladen Swallow 回顧録 - YAMAGUCHI::weblog
Introducing the B3 JIT Compiler | WebKit
AzulがJavaクラウドコンパイラを起動

Qiita

LuaJIT 解析 - Qiita
かRuby 2.6のJITで実装か検討を行なった最適化集 - Qiita
Kinx での JIT、そして MIR の話 ... Ruby だけでは勿体ないネ - Qiita

POSTD

JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
JITコンパイルでの冒険 パート2:x64 JIT | コンピュータサイエンス | POSTD

GitHub

rhizome

Miura HidekiさんはTwitterを使っています 「これはすごい。ひょっとしたら、最高のJITコンパイラの教科書なのでは? https://t.co/6fDaUuHwRN」 / Twitter
chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby
Jay Kumogata🔢さんはTwitterを使っています 「そんなことできるんだ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@jay_kumogata はい、RubyでRubyのJITコンパイラを書くことは可能です。すごく簡単なものですが、私も書いたことがあります。 https://t.co/yASTkcD6S8」 / Twitter
どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 処理系標準機能でその処理系のJITコンパイラを書けるようにした場合、ユーザコードが適当なバイナリ作って呼び出すってこともできちゃうんだけど、あんまり気軽に触って欲しくないと時にうまく権限管理する定番ってありますかね。外部ライブラリリンク可能なら結局何でもできるからみんな気にしてない?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata FFI(JNI)を禁止するのは大前提として、JVMのJava bytecode verifierが一番の定番じゃないかと思います。ちょっと保守的でしょうからもう少し自由があり得るかもしれませんが」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata なるほど、しかしverifierまでやるのはネイティブコード対象だとちと手間がかかりますね。完全なsandboxを提供したいわけじゃなくて、内部状態をぶっ壊しちゃうコードをうっかり書いちゃうのを防ぎたいって思うんですが、徹底しないとあんまり意味が無いのかなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata ネイティブコード対象だとあるバイトコードをどういうコードに落とすかは任意なのであまり意味がない気がします。バイトコードで悪意を持ってバッファオーバフロー攻撃とかを防ぐにはverifierは必要な気がします。うっかりだとどうなんでしょうかね? 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata 自明に無限ループになりえる条件さえ検出できれば(完全にやるのは不可能ですが)何とかなる気もします。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 心配してるのは、JIT用内部ルーチンのネイティブコード組み立て→実行可能ページに置いてcall、というのがユーザから気軽に呼べちゃうと、ちょっとでもミスるとABI守らずにスタック壊したりヒープ壊したりしちゃうコードが実行できちゃうなあ、というとこなんですよね。安全マットが欲しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata なるほど。実行可能ページのアクセスを許した時点でJITとか関係なくまずい気がします。悪意が無い場合だとどうなるんだろう?決められたAPI経由(Xbyakみたいな感じ)でしか機械語命令を書き込めなくてその時点でVerifilerが動くという仕組みにすればよいのかな?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata リフレクションのある言語だと内部的に使ってるルーチンが呼べちゃったりするので、処理系内部で権限管理してユーザからの直接呼び出しを禁止するとかかなあ。Gaucheで試してるFFIは動的コード生成があるんですが、実行可能ページへのネイティブコード書き込みやジャンプ、というユーティリティ→」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata にはアクセスさせたくないので、「初期化時のみ束縛が存在→内部ルーチンは定義時に束縛をクロージャ内に取り込む→初期化ルーチンの最後で危ないユーティリティへの束縛を消す」というのをやってみてはいるんですが。他の処理系で何かやってるのかなあと。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata これはエレガントですね。この手の危ない機構は公開されないのかもしれないですね。例は全く知らないです。」 / Twitter

Morgan-Stanley/hobbes: A language and an embedded JIT compiler
k0kubun/llrb: LLVM-based JIT Compiler for Ruby
Links.md
vnmakarov/mir: A light-weight JIT compiler based on MIR (Medium Internal Representation)
runtime/docs/design/coreclr/jit at master · dotnet/runtime

Twitter

その他

CacheIR

ドッグさんはTwitterを使っています 「Firefox の JIT コンパイラが大きく改善されたらしい.昨年開発された Baseline コンパイラの inline cache を利用することで型情報を削減し,多くのサイトで 5-15% の高速化.Nightly で試せる | 'Dogfooding Warp' https://t.co/fUjJa0ra43」 / Twitter
ドッグさんはTwitterを使っています 「Firefox のインラインキャッシュ CacheIR について: https://t.co/EaAh7b4k04」 / Twitter
CacheIR: A new approach to Inline Caching in Firefox
ドッグさんはTwitterを使っています 「s/多くのサイトで/多くのメトリクステストで/」 / Twitter

smi

R. ShioyaさんはTwitterを使っています 「v8 の JIT トレース見てたらたまに型の一貫性がとれなくなったとかで deopt が起きてて不思議だったのだけど,どうも整数が31ビット範囲を超えると内部的に倍精度型に型が切り替わるのでそのあおりをくらって構造体全体やそれを見てる関数の最適化コードが根こそぎ破壊されてたと言うことがわかった」 / Twitter
R. ShioyaさんはTwitterを使っています 「これ,メンバが必要とする値の範囲の変化に応じて動的に構造体の再構築と関連する部分の再コンパイルをしてるわけで,そう思うと結構すごいことやってるなと思う.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 最初から8byte確保して、適応的にint64 or double切り替えとかではダメなんですかね、、、」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu smi (small integer) というのが定義されていて,union 的にポインタに埋め込む感じの実装になっているからのようです.31 ビットなのは互換性のためらしく,64bit アーキなら本来は 63? ビットまではいける気もします. https://t.co/j9PLf2ntEC https://t.co/3RDJOsANt5 https://t.co/EovPvfPhXK」 / Twitter
Elements kinds in V8 · V8
V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど。 64bitだと63bitまで行けるにしても、int -&gt; double についてはサイズだけでなく、ポインタ埋め込みから、ヒープ確保なdoubleオブジェクトに変わる感じなのですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあこの辺はmrubyのJITでもやっているからこの手のJITコンパイラでは普通かと。mrubyのJITはコードを破壊するコードを使わなくなったメソッドのコード跡に置いておくって方法」 / Twitter

部分評価

Shuhei KadowakiさんはTwitterを使っています 「Dartの話がめちゃくちゃ魅力的。AOTとJITの良い部分を使い分けられたらいろいろな楽しいことできるよね。開発の柔軟性とリリースでのパフォーマンス両立できるとかめちゃくちゃいい。 #camphor_day」 / Twitter
Miura HidekiさんはTwitterを使っています 「どういう話か気になる。Rubyの究極のコンパイラはAOTで徹底的に解析さえれた後、プログラムコードと共にそのプログラムにカスタマイズされたJITもAOTのコンパイル時に生成する形だろうなって今の所思っている。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 部分評価を取り入れた感じですね。わかります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 なるほど、そう言う考え方も出来ますね。コンパイラのサブセットなどをランタイムの一環として持つみたいなイメージでいました。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 Pelemayでも近々同様の仕組みは必要だと見越しています。できるだけAOTで生成し、プロファイラー情報をもとに最小限のJITコード生成をする感じにしたいです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 やはり必要ですよね。実際に実行しなくてもおそらく抽象実行で必要な情報が集められる気がします。コンパイル速度が非現実的になるかもですが。再定義が起きうるとか、evalが実行される・evalでサポートが必要な言語仕様(数値のみとか)、が得られるんじゃないかと思います。」 / Twitter

Java

ABAさんのツイート: "Javaで2 * (i * i)が2 * i * iより速くなる理由。JITのループアンローリングによって生成されるアセンブリコードが大きく変わるため https://t.co/fo92ZP5xwo"
FFFumihiro MMMatsuiさんのツイート: "演算順序変わるからバイトコード変わるまではうんそうだよなって感じだけどその段階では速度差の原因が自明ではなくてJIT生成コードまで掘り下げにゃならんのな"
FFFumihiro MMMatsuiさんのツイート: "確かにスクリプト処理系のVM高速化の時とかもある程度以上はjavap結果からのイメージと素直に繋がらなくなってそれ以上はJVMともっと下側のやり取りまで見えないとわからんなって感じした"
FFFumihiro MMMatsuiさんのツイート: "for文にJVM側でSIMD効かしてくれる挙動も、確かfor文の中身がちょっと複雑になるとJREバージョンによって速度違ったし。そういうシビアさを気にして結局そこは高速化はほどほどにして、部分的には元に戻したりもした"
FFFumihiro MMMatsuiさんのツイート: "ほんとに特定環境で突き詰めたらVnanoのベクトル演算は倍精度8GFLOPS近く出せたんだけど結局5GFLOPSあたりの感じで着地した"
FFFumihiro MMMatsuiさんのツイート: "配列の算術演算を複数コンボで連ねる時に a[ i ] = b[ i ] + c[ i ]; みたいなパックしてSIMDに投げやすそうな雰囲気の単位に切って回した方がいいのか a[ i ] = b[ i ] + c[ i ] + d[ i ]; みたいに詰めた方がいいのかとかそういう試行錯誤だったっけ 確かどっちが速いか環境によってた"
FFFumihiro MMMatsuiさんのツイート: "あくまでも特定の1つのコード内において試しただけなのでこの書き方だけ抜き出して有利不利は言えなさそうだけど、ちょっと前の環境だと後者が結構伸びて数割有利で、今の環境だと両者トントンで、なので後者はなんかシビアそうなので演算器オブジェクト実装したけど無効化して前者が動くようにしてる"
FFFumihiro MMMatsuiさんのツイート: "これだ。 高速化のために実装したもののFLOPSが環境で結構大きくブレるっぽいので無効化してる2連ベクトル加算器オブジェクトの処理: https://t.co/BsHRxKVOhv 代わりに動いてるのは普通に1連のこっち: https://t.co/Vm2MeSsz6h 4~8GFLOPSくらいの間の変動幅なのでたぶんSIMDの効き方が違う?"
FFFumihiro MMMatsuiさんのツイート: "このあたりのやつ演算対象データ全体がCPUの何次キャッシュまでに載りきるかどうかで速度何倍も違うけど、一応は前者も後者も両方全部1次キャッシュに乗り切る領域で測ったはず、確か"
FFFumihiro MMMatsuiさんのツイート: "後者のベクトル長を横軸にしたFLOPS値のグラフはこれ https://t.co/b34UZTqdZK SIMD 有効/無効はjava実行時のオプションでUseSuperWord(だっけ?)有効(確かデフォ)にしたり無効にしたり"
FFFumihiro MMMatsuiさんのツイート: "そんななので、やっぱJava上だけで速くする時って、普段はバイトコード読んで効率的か?はそれなりに有用な情報と思うけど、結局JVMはスタックマシンで、CPUというレジスタマシンにJITして、んでCPUの機能も使ったりするので、バイトコード見た印象から乖離した不思議な速い遅いは確かにあるっぽいなと"
FFFumihiro MMMatsuiさんのツイート: "さっきの記事に納得したのでした。 着地できた"
FFFumihiro MMMatsuiさんのツイート: "そういえばProject Panamaだっけ? JavaでSIMD機能のAPI叩けるようになるとかいうやつ超期待してる"

Erlang OTP24

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ErlangはOTP24でJITコンパイルされるようになったが、JITを入れるまでの経緯がなかなか興味深い。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「OTP24で入ったJITはとても愚直なJITだ。最適化は考えない。とりあえずネイティブコードはどんなコードであれ早いのだから愚直にネイティブコードに置き換える。結果としてだいぶ早くなった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そのアプローチだと計算主体のトイプログラミングだと効果あるけど、大きなプログラムだとワーキングセットがでっかくなって逆効果な気がする &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「JITコンパイラはネイティブコードを置き変える効果より、命令の粒度が小さくなって最適化しやすいことによる効果の方が大きいような気がする」 / Twitter

users

@RKX1209

るくすさんのツイート: "DalvikVM、最初はDEXインタプリタとプロファイラ動かしつつ、ボトルネックな所をJITにするのは知っていたけど、最近のARTはAOT(Ahead-of-Time)で最初にコンパイルしてしまうのか。加えてランタイムな情報を元に一部だけコンパイルし直すと"
るくすさんのツイート: "けど全てAOTだとコスト高すぎるので最初はJITにしておいて、充電中とかのアイドル時にコンパイルするみたいな仕組みに変わった? いずれにせよすごいチューニング力だな..."
るくすさんのツイート: "@slankdev BSD含め、kernel interpreterは大体JIT対応してるはずですね"
るくすさんのツイート: "ああそういえば今年のセキュキャンには"セキュアなCPUを作ろう"なんてコースがあって、データの型チェックとかUse-After-Free防止のためのシグネチャの仕組みなんかをCPUがやってくれるという中々アツい物っぽいです。興味のある人ぜひ #seccamp"

@kazuho

Kazuho Okuさんのツイート: "歴史的に言うと、インタプリタの歴史においては逐次パース&実行のほうが、CPUとメモリが潤沢になった近年までは一般的な形式だったんじゃないの"
Kazuho Okuさんのツイート: ".@ockeghem @mattn_jp たとえばシェルスクリプトの処理系は今でも行単位だと思います"
Kazuho Okuさんのツイート: "JITの中間表現にCコード使うアプローチ、アムダールの法則との戦い辛そうなの以外にも、エリアシング関連の無駄なオーバヘッドがコンパイル時と実行時にある気がするんだのね"
Kazuho Okuさんのツイート: "crubyのJITがCコンパイラ経由なの、今まで得心が言ってなかったけど、今日の話聞いて納得したというか、競争がある中で段々と速くしていくのは正しいんだろうなと思った"

@shinh

shinichiro hamajiさんのツイート: "MJITのdlopenを置き換えるパッチ書いてたりしてた話について書いた https://t.co/J1mfh50erH まとめるとdlopenのオーバヘッドを調べる程度の役には立つんじゃないの、という気持ちで作ったという感じです。あと .o て定期的に直接ロードしたくなる (https://t.co/cuRJhCqjNm とか tinycc はそれできる)"
MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話 - 兼雑記
Dynamic Test Runner 0.0.3 - 兼雑記
Shiro Kawaiさんのツイート: "Cコード動的に生成してコンパイルしてdlopenという手は20年以上前にシミュレーションツール作った時にやったことある(シミュレーションの式が変更される度にコンパイル)。ずっと使ってるとメモリ食いつぶすのは再起動してねで済ませた。自力でロードはさすがに考えなかったなあhttps://t.co/TdAbFyRMOG"
Shiro Kawaiさんのツイート: "いや、メモリ食いつぶすのは、処理系のGCの都合でdlcloseできない事情があったせいだったような気がする。だとしたら自力でマップしてても同じことだったかもしれん。"
shinichiro hamajiさんのツイート: "Mach-O とかならともかく、 ELF の arch 追加はたぶんそれほど大変ではないかな…ということで x86:https://t.co/sPnxLg24CD と arm:https://t.co/gAqR0QZyYa やってみた。 MJIT で動くかは謎… https://t.co/bNphJDuJ8C"
Add support for 32bit x86 · shinh/objfcn@fc6d8db
Add support for ARM · shinh/objfcn@92e5047
NeoCatさんのツイート: ".so経由で読むのが不都合ならバイナリを自力で読めば…とは思うけどarch依存もありそうだしやっぱり実用的ではないですよね…。RubyKaigiでLightWeight-JIT作ってるという話もあったけどこれもMRI並のarch対… https://t.co/i7YFGDdUjp"

@blackenedgold

κeenさんのツイート: "VMとかJITとかのテクニックが色々載ってて良い資料だった。所でJITのコードの goto **buf;のインパクトが凄くて… Virtual machine and javascript engine https://t.co/DiFH3mTa6z"
Virtual machine and javascript engine
κeenさんのツイート: "インタプリタを作る本がないとは言ってないですよ。少ないと。そして欲しいのはただ作るだけじゃなくて高速なものを作る本が欲しい。シンプルなインタプリタとVMの話から命令フュージョン、Threaded VMやJIT、word boxingやNaN boxing、global dbとメソッドキャッシュなんかの話が載ってる本が欲しい"

histric

histric-1

Miura Hidekiさんのツイート: "mrubyのJIT、インテルさんの言うとおりにしたら速くなったのでインテルすげー https://t.co/QKwwuxomP0"
小倉唯さんのツイート: "あと JIT compiler だと runtime に cpuid に query かけて best op 選ぶチャンスがあるか."
Rockridgeさんのツイート: "JavaScript JITエンジンへの新機能追加をRust言語で行えるようにするメタJITコンパイラをMozillaが実験的に開発中。名をHolyJitという。安全なコードを書けるメリットがある。 / “HolyJit: A …” https://t.co/MUfaa2wq7n"
HolyJit: A New Hope | JavaScript
とみながたけひろさんのツイート: "コンパイラの本はいっぱい(?)あるけど、インタプリタの本ってあんまりないよねえ…。あとバイナリトランスレーションとかCPUじゃなくてGPUとかのエミュレーションとかも。まあ真面目に実装すると色々特許とかリバースエンジニアリングとかが絡んで政治的に面倒くさいからな…"
瑣末u 🗹さんのツイート: "動作中のプロセスを解析してJITコンパイラでメモリ上のプログラムを書き換えてCPU性能を改善するツールらしい。現在対応しているのはMySQL系だが今後増える模様。 / “Dynimize: CPU Performance Vir…” https://t.co/CpLQ4oNwmw"
Dynimize: CPU Performance Virtualization
ロックフリーのkumagiさんのツイート: "JITの効果の結構大事な部分が関数のインライン化だからそれを阻害するネイティブ関数呼び出しは鬼門っていうの、pypyでmsgpackのC拡張動かしてベンチマーク取った時に痛感したな。"
眼力 玉壱號さんのツイート: "JavaScript 界隈でも似たような話は出てましたね(cf. https://t.co/HIBHHtHpRe ) 言語境界を跨いで inlining 出来ないと速くならない(に対する1つの approach が #GraalVM なのかもしれない)… "
ぼうくんさんのツイート: "Js の Array sort と自前 quick sort のパフォーマンス差は JIT がかかればかかるほど大きくなるし、これは V8 とかの JS エンジンがより効率化するほど広がる http://t.co/g0oroGZu"
yemotoさんのツイート: ""HHVM JIT: A profile-guided, region-based compiler for PHP and Hack" https://t.co/7tPa8JC6SP #engineer #feedly"
HHVM JIT: A profile-guided, region-based compiler for PHP and Hack | the morning paper
渋川よしきさんのツイート: "関連研究?では日本語入力で使うLOUDSも簡潔データ構造だし、あれは木構造だから言語処理系の中でも使い所が多そうな気がする。 : 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ https://t.co/GpBB4RW0z1"
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
渋川よしきさんのツイート: "JIT、ネイティブにするしない、ではなくて、アルゴリズム選択みたいなのもあると楽しそうだなあって少し思ってる"
Shiro Kawaiさんのツイート: "Gaucheはrequireされるfeatureごとに「まだrequireされてない」「require解決中」「providedされた」の状態を持ってる。この状態テーブルは排他制御されるので一つのスレッドが解決中なら参照しようとした他のスレッドは待たされる。循環は検出してエラーにしてる https://t.co/qTJ8urw8uL"
2019-04-20-akr-autoload-rubykaigi-after-party.pdf
Shiro Kawaiさんのツイート: "循環というか相互依存か。自分がrequire中に他のfeatureをrequireしようとしてそれが既にrequire中になってたら諦める。既にそれまで読んで実行されちゃった分は巻き戻せないんだけど、そもそもそういう関係を作るのが設計ミスってことにしてる。"
Fadisさんのツイート: "Webサーバの性能向上の為に度々破天荒な物を作るFacebookが今度はC++をJITコンパイルしてスクリプト言語扱いする手法を編み出したらしい。ソースはコンパイル済みヘッダと共にLLVM IRに変換されOrcJITで実行される。この手法はEuroLLVMで発表されているがOSS化はされていない https://t.co/KRLU1QcQ9C"
Facebook Is JIT'ing C++ Code To Treat It Like A Crazy Fast Scripting Language - Phoronix
FadisさんはTwitterを使っています 「JavaScriptでは関数の引数の型が実行するまで確定しない為、ある型で実行された際に作られたJITコンパイルの結果が以後の関数呼び出しで再利用できるかを実行環境は常にチェックしている → WebAssemblyの関数は型が確定している為この処理を 丸ごと省略できる、を #kernelvm」 / Twitter
R. ShioyaさんはTwitterを使っています 「スクリプト言語では組み込み関数はCとかで書かれてるのでそっちのが高速ってのが相場だと思うけど,javascript に関しては「ネイティブの(特定のパラーメタに)専用化されたコード &gt; JIT された js の専用化コード &gt; ネイティブの汎用コード」があったりして,自前で書いたほうが全然速いことあるな」 / Twitter
R. ShioyaさんはTwitterを使っています 「node.js だと,parseInt(16)(10 は専用化ルーチンが実装されてるのでそっちのが速い),split(入力があんま長くない時),readline あたりは注意深く組めば数割から倍以上のレベルで自前の方が速いね.ただ,古代C言語文字列プログラミングみたいなことを今更やるはめになる…」 / Twitter
R. ShioyaさんはTwitterを使っています 「あとルーチン自体は自前の方が速くなっても,変数の使用量が増えるせいか Minor GC の回数が豪快に増えてかえって遅くなるとかもあるのでなかなかムズカシイ」 / Twitter
κeenさんはTwitterを使っています 「Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS https://t.co/1yikKpSmwf」 / Twitter
Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS

Miura HidekiさんはTwitterを使っています 「JITコンパイラのデバッグ、Xbyakを使ったネイティブコードを直接生成とC言語生成では、Xbyakを使った方が簡単で、期待しないコードが出てきたときはワッチポイントを掛けるだけでいい。一方、C言語生成ではどこで生成されたものか分からないから、例えばコメントを生成するとかやるけど、めんどくさい」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「mjitのようなC言語に落とすパターンは、それで速く出来るならUSENIX ATCなりに論文通せるレベルのアイデアなんだけど、実際jscで見た感じ (遅いからllvm IR辞めた)、新規アイデアない限り、愚直にJIT実装したほうが速いとは思うんだよな。専門家ではない自分の考えだけど」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ベンチマーク的なので速くするには、おそらく最低でも2-tier必要で (baseline interpreterとhigh optimize JIT)、JavaScript VMは全社そのパターンに落ち着いているので、たぶん実環境での正解はこれなんだろうな感はずっとしてる」 / Twitter

GDB JIT Interface · v8/v8 Wiki
早稲田大学リポジトリ
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
esbasic0011 - essen-wiki
SML#でJITコンパイラを作る軽い話 | κeenのHappy Hacκing Blog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「わずか100行程度のCで書ける超簡易JITコンパイラ入門。まずマンデルブロー集合を計算する簡易言語を設計し、単純なx86アセンブラも実装する。あとはmmap()でPROT_EXECした領域にコードを書きこんで呼び出せばおしまい。 https://t.co/YRK5NShMn7」 / Twitter
spencertipping/jit-tutorial: How to write a very simple JIT compiler
Miura HidekiさんはTwitterを使っています 「そういればLinuxとUNIXを厳密に区別するくらい言葉に厳密な人たちが、JITコンパイラという意味でJITと表記しても何も文句を言わないのだろう?」 / Twitter
Tadachika OkiさんはTwitterを使っています 「@miura1729 関心について、 OS の方がコンパイラより強く、概念に対する解像度が異なるということではないでしょうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@salmoncrawler 多分そう言う話だと思います。正確にはOSの方がコンパイラより概念に対する解像度の高い人が多いと言うことですね」 / Twitter

GC

nursery

uint256_tさんはTwitterを使っています 「うん? https://t.co/pPoEGLXNjS」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@uint256_t スタックポインタをスタック種類分管理しないとならないのが面倒そうです。 スタックをnurseryとして使う(popせず、一杯になったらgcする)という処理系がありますが(Chicken Scheme)、そこからの発想で特定の種類のオブジェクトのnurseryを設ける、というのはGaucheでやってます。」 / Twitter
_ko1さんはTwitterを使っています 「@anohana @uint256_t 溢れたら全体でgcですか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@_ko1 @uint256_t nurseryは溢れたらそこだけgcします。一種の限定的な世代別で、nurseryを指すポインタはVMのレジスタやスタックなど限られた場所にしかないので軽いgcです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t つまり、nurseryはBOXINGされたオブジェクトを格納するというイメージですか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t ヒープの第0世代みたいな感覚です。単にポインタ移動でアロケートできるから速い+ほとんど一時的オブジェクトだから溢れてgcする時点では本当のヒープに移す生きてるオブジェクトは少ない、という。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど!すっきりしました。ありがとうございます」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t これを徹底したのがChickenで、オブジェクトはまずCスタック上にアロケートされ、関数はリターンでスタックをポップせず、スタックが溢れそうになったら活きてるのだけヒープに移して先頭にlongjmpします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど。スタックマップの実装を工夫すればスタック上はUNBOXに出来そうですね」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t tcfmで話されていたネタですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @anohana @_ko1 @uint256_t あれ?どの回でしたっけ?」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t https://t.co/Viq5jXjSNO」 / Twitter
‎Turing Complete FM:Apple Podcast内の19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
Miura HidekiさんはTwitterを使っています 「ヒープの第0世代、新しい目線を頂いた。この目線で次期プロジェクトを検討しなおしたい &gt;RT」 / Twitter

リージョン推論

Orumin de Izumoensisさんのツイート: "参照カウンタの GC とかはあったほうがいいとおもうけど"
ぶんちょうさんのツイート: "まあ普通に自動でやりたいのでリージョン推論でもGCでもいいのだけど"
Orumin de Izumoensisさんのツイート: "リージョン推論、静的にメモリ管理されるし自動的によくやってくれて最高っぽい"
Experimental Rhino develop-log: 徒然なるままにrust書いて;スタックベースのリージョン推論とGCの話
定義 RBMM: リージョン推論に基づくメモリ管理 - Region-Based Memory Management
リージョンについて | κeenのHappy Hacκing Blog
静的なメモリ管理の話。リージョン推論とλ計算からRustまで | κeenのHappy Hacκing Blog
The GC Handbook - 10.2 Region inferencing(リージョン推論) その1 - 毎朝ほんを30分くらいよむますブログ
The GC Handbook - 10.2 Region inferencing(リージョン推論) その2 - 毎朝ほんを30分くらいよむますブログ
Non-Lexical Lifetimes - Qiita
kimiyuki@うさぎ🐇さんはTwitterを使っています 「rustc は中間表現のコントロールフロー上でリージョン推論するらしくて、えっそれコンパイルの再現性とかそういうのは大丈夫なんですかね」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「assert x is not None を書くと型検査が通ったり通らなかったりする Python とか TypeScript と同じような不安感が」 / Twitter

スタックGC

Shiro KawaiさんはTwitterを使っています 「スタックは第0世代のヒープにすぎない---スタックGCがあればね。」 / Twitter
IPSJ-TPRO0305004.pdf
ガベージ コレクションの基礎 | Microsoft Docs
第5章 ガ-ベージコレクション
ガーベッジ・コレクターについてのよくある質問 - IBM Documentation
ガーベッジ・コレクターについてのよくある質問 - IBM Documentation
C# のメモリ管理 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
メモリ(スタック、ヒープ、GC) - かまてく ブログ
GoのGCを10分で学ぼう  - Qiita

Boehm GC

Boehm GC - HoneyComb
Boehm GCの使い方
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう(1)
LinuxC | GC
A garbage collector for C and C++
Boehm garbage collector - Wikipedia, the free encyclopedia
BoehmGCでC++でもガベージコレクション♪ - きままにブログ
Boehm GC人門 - snipsnipsnip
Lush Green
LLVMで動くオブジェクト指向言語を作ってレイトレした - 近&況
boehm gcを触ってみた - 近&況
Shiro KawaiさんはTwitterを使っています 「プロセス「内」通信なんだけど、Boehm GCはOSによってはGCスレッドの同期にSIGUSR1/2を使ってる。」 / Twitter
satさんはTwitterを使っています 「よく使われているプログラムでSIGUSR1とSIGUSR2を使い倒してプロセス間通信しているものってあるんかな」 / Twitter

WebAssembly

mizchiさんはTwitterを使っています 「最近 wasm の gc proposal ちゃんと読んでるんだけど、「wasm 内のセマンティクスとして gc 導入したい」という大目標に対して、いくつもの仕様に分割して個別にMVPしつつ統合していく流れがとても綺麗で、VM実装の進め方としてとても参考になる」 / Twitter
mizchiさんはTwitterを使っています 「こんな感じに分割されてる - 参照型を定義する reference types - 外部から import した関数への inteface-types と type system - wasm 同士で動的リンクするための module link 仕様 - JS API で型 struct を定義 tc39 proposal structs との協調 - 新しく追加する heap のセマンティクス」 / Twitter
mizchiさんはTwitterを使っています 「とにかく野心的なので最終的に GC が乗るかは五分五分だしかなり遠そうなんだけど、その過程で生まれたものは無駄にならないようになってる」 / Twitter
mizchiさんはTwitterを使っています 「GC 追加されるにしても新しく作ったメモリ空間でやるので、既存のものがすべて gc 対応する必要はないようになってる」 / Twitter
mizchiさんはTwitterを使っています 「実際に自分で仕様策定の流れを追うには overview を読みつつ、meeting log で何考えたり考慮してるか、みたいなのを読むのがいいです https://t.co/DIkWqcgbVJ https://t.co/48sQ3nSj8c」 / Twitter
gc/Overview.md at master · WebAssembly/gc
mizchiさんはTwitterを使っています 「gc proposal の中でも参照型の externref と anyref は正式に仕様になって、wasmtime とか各ブラウザでフラグつけると動くようになってますね」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GC proposal, GC typesとしてWasm自身ではなくホストが管理できる高レベルな型を導入しましょう、くらいの認識だったけどそこまで大きなものなのか。やはり自分十分に追えてないねぇ >RT」 / Twitter

Java

Java VisualVM
Javaガベージコレクションのエッセンス
AppleがGCGCをオープンソース化:JavaGCログの分析ツール
JavaVM監視・解析ツール HeapStatsを使ってみた | キャスレーコンサルティング 技術ブログ
Java 8リリースの変更
www.is.titech.ac.jp/~sassa/kenkyuu-memo/agesen-garbage-collection-PLDI98.010308
G1GCのログの読み方 - sugarlife's blog
チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (1/2) - @IT
インフラエンジニアのメモ : GCログが再起動のたびにログが上書きされてしまう
Java VisualVM
IBM Knowledge Center - 並行マーク
PowerPoint Presentation
正確なGCへの道
第5回 Java VMの情報を取得する(前編):Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識|gihyo.jp … 技術評論社
Java における Scavenge GC と Full GC の違い - スタック・オーバーフロー
ZGC - オラクルの巨大ヒープ向けガベージコレクタ
Java 10 Release Candidate 1 公開
Javaの超低レイテンシなGCアルゴリズム、ZGCをコンパイルして動作を試す - くろの雑記帳
島鉄雄さんのツイート: "Java で開発中の ZGC が驚愕のスペックなんでビビった。 TB 単位のヒープでも止まる時間が 10ms 以下というと、十分ゲームで使えるレベルに思える 代わりに通常の処理が少し遅くなるようだが、少しぐらいなら大した問題ではない 同様のものが自前で実装出来れば最高だが… https://t.co/HZNcbz1L2l"
The Z Garbage Collector - An Introduction
「Java 12」リリース | OSDN Magazine
島鉄雄さんのツイート: "Java 12 の ZGC の性能評価の記事があったけど、やっぱ凄いわ…これ以外の GC が必要なのかと思ってしまう。 メモリが大量に載っている環境用みたいな触れ込みだったけど、8GB でも良好な結果だ。 これを C とかでも使えるようにライブラリ化されないかな。 https://t.co/4hy3x7CJQH"
サマーインターンシップでHBaseをJDK 11で動かしZGCとの性能を評価してもらった話 - LINE ENGINEERING
島鉄雄さんのツイート: "良く考えたらライブラリ化は無理だった… こういう最新の並行 GC は read barrier の様な部分をコンパイル時に仕込まないといけないから、コンパイラ込みの実装が必要なんだよなぁ。"
Switch式とShenandoah GCを試験的に備えたJava 12がリリース
島鉄雄さんのツイート: "Java11のZGCはポインタの上位数ビットにフラグを埋め込んでるけど(いわゆるtagged pointer、ZGCではcolored pointer)、仮想記憶を使う事でマスク不要にしてる。 ポインタを0x0fとすると0x1fや0x2fを0x0fにマップする事で0x0f, 0x1f, 0x2fは同じメモリにアクセス出来る。 だから現状Linux専用のようだ。"
島鉄雄さんのツイート: "64bit ポインタ基本的に 58bit しか使われておらず、上位 16bit が空いている。 ここに型情報やらフラグを埋め込んだりしてるけど、ポインタとして使うたびにマスクして上位ビットを 0 にする必要がある。 使ってない部分は CPU が無視してくれれば、仮想記憶を使ったトリックなんて必要なかったんだ。"
島鉄雄さんのツイート: "おかげで、ZGC は家庭用ゲーム機や組み込み機器などに移植する事は出来そうにない。 なので、もし次世代 GC を移植したくなった場合は、Java12 の Shenandoah GC が候補になるかな。"
島鉄雄さんのツイート: "> 58bit しか使われておらず、 48bit の間違いだった…"
島鉄雄さんはTwitterを使っています: 「コンパクションのあるGCの場合は、大抵ポインタのポインタを使ってるよ。(Java12のshenandoahとか) JavaVMは参照の実装方法を規定してないから、そういう実装も出来ると思うけど、C++も別にコンパイラがそういう風にコンパイルすれば良いだけだと思う。 https://t.co/AVYdETuc5H」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 GCがコンパクションするとオブジェクトのアドレスが変わります。つまりGCのある言語ではポインタが使えません。そのためJavaではポインタよりも抽象度の高い参照という概念を導入しています。ちなみにC++の参照はポインタのシンタックスシュガーでしかないのでJavaの参照とは別物です」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo そうですね。だからポインタ=アドレス値という関係が壊れるという話しです」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo いや壊れてないよ。 ポインタ=アドレス(オブジェクトのアドレス) ポインタ=アドレス(GCが管理している領域のアドレス)→アドレス(オブジェクトのアドレス) と間接参照が1つ増えてるだけで。」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo それは言葉遊びでは?ポインタがオブジェクトのアドレスを直接指さないならCで言う所のポインタとは言えないでしょう」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo 自分が言いたいのはC++とJavaの参照はCのポインタと同等という事ですが、C++やJavaでコンパクションを実装するにはポインタのポインタが必要といったけど、もしCで実装する時も同じようにポインタのポインタを使います。 要するにアセンブラ的に全く同じコードになるでしょう。」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo ダブルポインタも一応ポインタでは?」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 @shima_tetsuo そういう意図の話しではないのです。わかりにくかったらごめんなさい」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo うーん理解不足なのでダブルポインタがポインタかどうかという話をしているようにしか見えません。すいません。 https://t.co/8zVH614ZvT (やっぱりこういう論争についていけません...)」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「参照、参照渡し、参照の値渡し あたりの論争はあんまり理解してない」 / Twitter
「Jakarta EE 8」リリース、Java EE 8と完全互換 | OSDN Magazine
[速報]Java 13が登場。ZGCの改善やSwitch文の実現など新機能。 Oracle Code One 2019 - Publickey
高梨陣平さんはTwitterを使っています: 「JDK11にはGCが無ければどれだけ速いかを検査するための何もしないGC、Epsilonが用意されている。 https://t.co/bkiSg689Cj」 / Twitter
Heapothesys - Amazon Corretto によるオープンソース GC レイテンシベンチマーク
OpenJDK 16のShenandoahガベージコレクション:並行参照処理 - 赤帽エンジニアブログ
JVM における G1GC とヒープの雑な話 - それが僕には楽しかったんです。
Microsoft、JVM GCログを活用するGCToolkitをオープンソースとして公開
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Java 17 はどれくらい速いのか? デフォルトのG1GCを使った場合、Java 11と比べて約8.7%速く、Java 16 と比べて約2.4%速い。なお、ParallelGCを使うとさらに16%ほど速くなるが、旧バージョンとの差は小さくなる。 https://t.co/9gyi8jFfMa」 / Twitter
OptaPlanner - How much faster is Java 17?
【技術解説】進化したJava VM ガーベッジコレクション | DevOps Hub | SB C&S

Android

富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
Eclipse Memory Analyzer Tool と Android 環境での Out of memory デバッグ | Drowsy Dog's Diary
アンドロイドアプリのThreadがリークするとき « 大阪のアンドロイド/iOS・ Webアプリ開発会社 ノーティス
Leak canaryで メモリリーク調査

C#

[sos]!GCRoot:オブジェクトを参照しているオブジェクトのパスを表示
Microsoftが.NETの手動メモリ管理機構をSnowflakeとして公開
.NET の「実行時型情報」は immutable かつ GC 不可能 - NyaRuRuが地球にいたころ
.NET GC & Memory (1) - NyaRuRuが地球にいたころ
.NET GC & Memory (2) - NyaRuRuが地球にいたころ
変数スコープの最後までオブジェクトは生きているという誤解 - NyaRuRuが地球にいたころ
write barrier - NyaRuRuが地球にいたころ

Ruby

Twitter

κeenさんのツイート: "CoWさせるためにBitMapで管理ってRubyで結構前から取り組んでるよね。 Island Life - GC切って性能向上 https://t.co/lMSGajMKMA"
Kazuho Okuさんのツイート: "ruby専用のarenaを作っとくのが一番いい解決策なんじゃないのかな(そこはGlobal VM Lockとるからひとつでいいわけだし) / “Malloc Can Double Multi-threaded Ruby Prog…” https://t.co/LcY7hq33y9"
Malloc Can Double Multi-threaded Ruby Program Memory Usage
Kazuho Okuさんのツイート: "色んなスレッドに紐付いたarenaに、gc対象のオブジェクトから紐付いたmalloc領域を作っちゃうのが問題、というのが正しいかな。それらの領域のほとんどは短命なオブジェクトなのでgc時に解放されるが、一部は長命なのでスラブは解放されない。というのがいくつものarenaで発生する"
Yukihiro Matsumotoさんのツイート: "Rubyも malloc で確保するメモリについてはやってるんですが、GPU のメモリは対象外ですね。… "
Kazuho Okuさんのツイート: "なるほどありがとうございます。任意のクラスのオブジェクト(GPUメモリ、ファイルデスクリプタ、etc)について、それぞれカウンタをもち、どれかが閾値を超えた時点でGCを動かすのが理想なんだろうなぁと思いました… "
Urabe, Shyouheiさんのツイート: "malloc以外でもrb_gc_adjust_memory_usage() っていう最近追加されたAPIはあるんですよ。 https://t.co/dKQukYvTyU ただGPUみたいなアドレス空間から違うやつは厳しい。あくまでメインメモリのプレッシャーしか計測してないので。… https://t.co/j2VEmprEBM"
Urabe, Shyouheiさんのツイート: "ファイルディスクリプタに関しては一応一発open(2)してみてerrnoがEMFILEとかで失敗したときはGCしてみる、みたいな処理は入ってますね… "
Kazuho Okuさんのツイート: "プロセス単位のfd制限がない場合にosの資源使い切ったりします?… "
Urabe, Shyouheiさんのツイート: "とくに考慮してないから使いきれると思われます。… "
Kazuho Okuさんのツイート: "V8とかだとGC外に確保されたメモリ量のカウンタがあって、それをベースにGC起動するようになってるって話は前にしましたっけ… "
そのっつ (Naotoshi Seo)さんのツイート: "RubyなどGCな言語でGPUを使っていると、GPUメモリを大量に使っていてもメインメモリ上では全然使っていないように見えてGCしなくてもまだ良いんじゃね?って処理系に思われてしまうんだけど、Pythonなど参照カウントな言語だと参照がなくなった瞬間にGPUにメモリを返却できるので嬉しいのです。"
Kazuho Okuさんのツイート: "共有オブジェクトの生成と管理に制限を設けることで、マルチスレッド環境でのGC等の並列性がどう高まるのかが鍵だと思うし、そのへんの話を楽しみにしてる #rubykaigiA"
Kazuho Okuさんのツイート: "共有オブジェクトは専用のGCアリーナにプロモートしてそこで適宜GCするみたいなやり方なのかなぁと想像"
Kazuho Okuさんのツイート: "複数のアリーナをもつGCにして、共有オブジェクトから参照されるオブジェクトは専用のアリーナに移動させるみたいなやりかたではないのか... #rubykaigiA"
Kazuho Okuさんのツイート: "実装としては移動もしくはコピーによるmessage passingなのね #rubykaigiA"
Kazuho Okuさんのツイート: ""shared object" って言い方をしてるけど、"no shared" なmessage passingだって言った方がわかりやすいのでは(内部では必要に応じてデータ共有するんだろうけど) #rubykaigiA"
Kazuho Okuさんのツイート: "immutableなオブジェクトを交換するメッセージパッシングなら意味論的にはメッセージは全部コピーでよくて、GuildごとにVM別で良いし、GCやVMを共有する背景にはメッセージパッシング以外にやりたいことがあるからだと思うんだけど、具体的に何なんだろう #rubykaigiA"
Kazuho Okuさんのツイート: "kh_mt_t をラップする型をつくって、その型の中にROMテーブルへのポインタを追加し、RClass から参照するのはラップされた型にすればうまくいきそう #rubykaigiC"
Miura HidekiさんはTwitterを使っています 「Rubyのコンパクションってどうやって参照元を書き変えているのかな?とずっと疑問だったけど解決した。多くのアプリケーションで効果がありそうな気がする。」 / Twitter
Yukihiro MatsumotoさんはTwitterを使っています 「Link: Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff https://t.co/jHdanerOEZ」 / Twitter
Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff

Rubyist Magazine - レアでアレなGCの話
第5章 ガ-ベージコレクション
GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年9月) | Money Forward Engineers' Blog
RubyでOSやGCを書く野望 - Qiita

D

D言語のGCの仕組み
ガベージコレクション - プログラミング言語 D (日本語訳)

Go

Go言語の低レイテンシGC実現のための取り組み | プログラミング | POSTD
本の虫: Goは32bit開発に不適
Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD
GolangのGCを追う | SOTA
論文紹介:The benefits and costs of writing a POSIX kernel in a high-level language | ブログにしてブログにあらず
go gc algorithm 101 - Speaker Deck
UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功

Mozilla

ServoのDOMバインディングの話 - snyk_s log
Garbage collection - SpiderMonkey | MDN
Rockridgeさんのツイート: "Fx54:マルチプロセス機能(e10s)有効時、ユーザーの入力中はインクリメンタルGCの処理は停止時間の最も少ないものだけを実行するようにした。 / “1338518 – Consider to not run 40ms GC …” https://t.co/tYITC2kaeA"
Rockridgeさんのツイート: "Fx58:ガベージコレクションに関する処理の一部を非同期化した結果、メモリ解放の処理能力がアップした、ということのようだ。 / “1298018 - Investigate allocating nursery chunks i…” https://t.co/aDjcs0HF1G"
Rockridgeさんのツイート: "Fx63:ガベージコレクションの処理を改善した件について、詳細な内容が綴られている。最近のCPUで効果が高いらしく、Intel Core i7-6600Uの環境でSpeedometerのスコアが2.5%アップした。参照:… https://t.co/QUBapMkcRi"

Cycle Collector

なかのん&マジックさんのツイート: "最近見たクラッシュバグを見てると、Cycle collectionは仕組みかGeckoでの実装のどちらかがまずい感じしかない。普段のrefcountのincrementのコストを無視できるゆるいプロダクトなら良いんだけど。"
GC and CC logs - Mozilla | MDN
Interfacing with the XPCOM cycle collector | MDN
言語の GC 機能と参照カウント (中編) - muddy brown thang
A Cycle Collector on Gecko - Backnumbers: Steps to Phantasien

Google

ポインタ圧縮

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2019年にV8にポインタ圧縮(タグ付きポインタ?)が入ったのね…意外と最近だった。 (Rubyは昔からこれだよね…Pythonが3でも導入しなかったのって何か理由があるのだっけ) https://t.co/Emea1vGjw7」 / Twitter
オープンソースのJavaScript/WebAssemblyエンジン「V8 release v8.0」が公開:ポインタ圧縮の効果が大きい - @IT
R. ShioyaさんはTwitterを使っています 「v8 にポインタ圧縮が入って以来ヒープ最大 4GB の壁ができてしまい,自前アプリで巨大ファイル読みこむと落ちるにようになって困ってたのだけど,ちょっと思ってたのと落ちる原因が違ってた」 / Twitter
R. ShioyaさんはTwitterを使っています 「v8 では ArrayBuffer(生バイト列)はヒープを消費せずに別の場所に確保されるらしく,このアプリでは読み込んだデータをブロック単位で圧縮して ArrayBuffer に突っ込んでたので,アプリ全体としては 4GB を全然超えてデータを保持できてた」 / Twitter
R. ShioyaさんはTwitterを使っています 「落ちてたのは,あまりにデータがでかくて圧縮ブロックの管理情報だけでも 4GB を超えてたせいだった.なのでブロックサイズを大きくしたらヒープサイズでは落ちなくなったのだけど,今度は最大生成可能オブジェクト数の壁?にぶつかって落ちるようになってなかなかムズカシイ」 / Twitter
R. ShioyaさんはTwitterを使っています 「なんかもう v8 メモリ耐久試験大会みたいになってるな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「V8のポインタ圧縮は、タグ付きポインタ(数値等をポインタに押し込める類)とは別物だった。後者は昔から入っていた様子。 前者は 64bit化にともない導入された仕組みと。 https://t.co/5hegD7BEsz」 / Twitter
Pointer Compression in V8 · V8

V8 5.4ではJavaScript Engineのガベージコレクタ改善でヒープメモリ使用量を最大40%削減、パーサ性能も向上 - Publickey
どどんとふ公式鯖中の人さんのツイート: "Ciscoのサーバーは、BIOS設定に標高ってパラメーターがあって、設定値に応じてメモリーのバックグラウンドチェックの頻度が変わるのを最近知った。 会社ぐるみで割と本気で宇宙線気にしてる。 https://t.co/rWosoTuieb"
ロボ太さんのツイート: "宇宙線問題、BlueGeneは例外飛ばしてプログラマ側でチェックポイントリスタートかけるんで、どこで例外が来ても大丈夫なようにコードを書くのが大変だったと聞いたけど、京コンピュータはハード側に命令リトライ機構を備えているので、プログラマはそこを気にしなくて良かった。"
Kentaro HaraさんはTwitterを使っています: "「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユ
Kentaro Haraさんのツイート: "Oilpan(BlinkのGC)でヒープコンパクションが有効化されました。アプリによっては数MBのメモリ削減になります。Operaで先駆けて実装されたものを(Operaブログ:https://t.co/ruZu1wRswf)、Operaのお友だちがBlinkに移植してくれました!"
Kentaro Haraさんのツイート: "ちなみに、そのヒープコンパクションのパッチがこれ(https://t.co/s0hfSf8hmr)。まるでC言語の教科書みたいにポインタのポインタをめまぐるしく駆使した技巧的な実装で、レビューするだけで丸々3日以上かかりました(やってることの複雑性からしてやむをえない)。"
Rockridgeさんのツイート: "本記事ではWebコンテンツの表示のカクつきをジャンクと呼び、Chrome 46時点までにこのジャンクを減らすべくガベージコレクションの一部処理を別スレッド化するなどの改良を加えたことを説明している。 / “V8 JavaScri…” https://t.co/801xJuIaKf"
Rockridgeさんのツイート: "GoogleはChrome搭載のV8にOrinocoと呼ばれる新しいガベージコレクション機構を組み込もうとしている。これまで以上に処理の別スレッド化を進め、スイープすべきオブジェクトの選別手法も洗練させた。 / “V8 Java…” https://t.co/TAuj8oIEJT"
Rockridgeさんのツイート: "Chrome 51ではOrinoco(新しいガベージコレクション機構)の一部機能が実装されているほか、WebAssemblyの初期段階のサポートも行われている。 / “V8 JavaScript Engine: V8 Relea…” https://t.co/9rm2ShZREn"
Kentaro Haraさんのツイート: "Chromeのメモリヒープを眺めてると、Gmailを長時間放置すると3〜5割くらいのフラグメンテーションを起こしている。C++なのでコンパクションするのは難しいのだが、オブジェクトの割当を賢くするだけでもフラグメンテーションは大幅に減らせるはずで、"
Kentaro Haraさんのツイート: "たとえばオブジェクトを割り当てるときに、型やサイズをヒントに寿命を予測して、短寿命のものと長寿命のものを別ヒープに振り分けるだけでも相当マシになる気がする。これこそ機械学習させたいのだが、if文ひとつを挿入することも許されない性能カチカチのmallocの世界でどうやるか。"
Kentaro Haraさんのツイート: "(っていうか一般論として、ブラウザがページを読み込むときに発生するオブジェクトのアロケーションパターンなんてだいたい似通っているはずで、dynamic profilingベースで割当アドレスを最適化できれば相当マシにできる気はする。勝負はいかにそれを軽く実現できるか。)"
V8 JavaScript Engine: Concurrent marking in V8
Kentaro Haraさんのツイート: "Oilpanプロジェクトを始めてほぼ6年、ついにBlinkとV8の統合GCをローンチしました!!(๑˃̵ᴗ˂̵)و https://t.co/KahYum19aQ https://t.co/EXabaWg2lu さて次はBlink側のコンカレントGCを作るか・・・。"
unified-heap: Enable per default (I473f85bb) · Gerrit Code Review
Towards a Unified Blink and JavaScript Heap // slidr.io
Unified V8-Blink Garbage Collected Heaps - Google グループ
nhirokiさんはTwitterを使っています 「講演する機会を頂きました。Chrome (Chromium) がウェブ特有の実行モデルやセキュリティモデルを守りながらどのように V8 と協調しているのか、そのアーキテクチャを紹介する予定です。他にもチームメイトが C++ / JS を跨ぐクロスコンポーネント GC と Web IDL コードジェネレータについて話します。」 / Twitter
Blink GC API reference
Cross-Component Garbage Collection – Google Research
High-performance garbage collection for C++ · V8
Pointer Compression in V8 · V8
Oilpan library · V8

Apple

Rockridgeさんのツイート: "Riptideは次期Safariに搭載される新しいコンカレントGCシステム。ガベージコレクション処理の非同期化と並列化を進めるなどし、長い停止時間の発生を極力抑えたという。 / “Introducing Riptide: Web…” https://t.co/vx33WpTcFX"
コミさんさんはTwitterを使っています 「AppleがJavaのGarbage Collectionのログを解析するツールをOSSとして公開したらしい(ライセンスはApache 2.0) インターフェースとしてはJupyter NotebookでPythonのPandas使って描画、統計処理ができるらしくてすごい https://t.co/zYqY1Ahw0m」 / Twitter
apple/GCGC
コミさんさんはTwitterを使っています 「Appleって自社プロダクトの関連エコシステムとは遠いものは全く興味ないイメージだったから(Swift系とかiOS系以外は興味ないと思ってた)、なんかこういうツール出してくるのビックリだな」 / Twitter

blog

κeenのHappy Hacκing Blog

WebAssemblyでGC | κeenのHappy Hacκing Blog
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"

Tociyuki::Diary

Oberon システムのゴミ集め - Tociyuki::Diary
型記述子ごとの Cheney Copying ゴミ集め (その 2) - Tociyuki::Diary

DSAS開発者の部屋:最近のPython-dev(2018-06)
ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
clearstackの話 - 兼雑記
LUA 5.1 の GC - NyaRuRuが地球にいたころ
Island Life - GC切って性能向上
Flashのガベージコレクション – 遅延参照カウント « Rest Term
本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
Memory allocation (& GC 処理) : メモリの確保処理 (GC 処理) : slow-path の処理 (4) GC 処理 : ParallelScavengeHeap の場合 : Minor GC の処理
簡単なGCを書いてみたらメモリ使用量が1/1000になって驚いた話 · うさぎ小屋
GCアルゴリズム詳細解説
ガベージコレクションの実装法と評価
GCが止まらない - Documents
メモリリークが起こってしまう原因は?予防策もご紹介します! | Qbook
JDK 13のShenandoah GC パート1:ロードリファレンスバリア - 赤帽エンジニアブログ
JDK 13のShenandoah GC パート2:転送ポインタワードの廃止 - 赤帽エンジニアブログ
JDK 13のShenandoah GC パート3:アーキテクチャとオペレーティングシステム - 赤帽エンジニアブログ
JDK 14のShenandoah GC パート1:自己修正バリア - 赤帽エンジニアブログ
JDK 14のShenandoah GC パート2:並行ルートとクラスアンロード - 赤帽エンジニアブログ
BlinkOn 9: Towards a Unified Blink and JavaScript Heap - Google スライド
最近読んだもの 21 - Please Sleep

スライド

Miura Hidekiさんのツイート: "GCでメタデータを省略すると言えば、Precise garbage collection for Cという論文があって面白いよ、手前みそだけど紹介のスライド作っているので見てみて https://t.co/RDfj88iarb #tcfm"
Precise garbage collection for c
GCと1bit | κeenのHappy Hacκing Blog
introduction-to-modern-gc // Speaker Deck
WebAssemblyでGC | κeenのHappy Hacκing Blog
make of MiniGC
shinjuku.rs#12:ruruby_2 - Google スライド
Rustでつくるガーベジコレクタ - Speaker Deck
GCと1bit | κeenのHappy Hacκing Blog

POSTD

Haskell、OCaml、RacketでGCのレイテンシを測る | コンピュータサイエンス | POSTD

GitHub

nyuichi/gc.h: Header file-only Non-moving & Precise GC for C (< 100LOC w/o comments)

Qiita

C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
MiniLispのガベージコレクションを解説する - Qiita
rurubyのガベージコレクタとアロケータ - Qiita

Twitter

その他

パフォーマンス

mattnさんはTwitterを使っています 「あのグラフは単純に言語スイッチしただけで出た結果でなく、ついでに施した施策が影響したものと思っています。そしてその幾つかはスイッチ前でも出来たかと。(もちろん速くなるのは同意した上で) https://t.co/F7dp2ygViJ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔のGCの呪いは stop the world として有名だったけど、今も spike が避けられないGC多いのかな…? (goの場合、通常GC動作以外に、2分に一度 mark/sweep 的な動作してたのがネックと)」 / Twitter
最速配信研究会 山崎大輔さんはTwitterを使っています 「goをrustで書き直したら速度が1000倍になったってのは、GCでCPU使い切って反応できなくなったのが解消したという話で、数割の改善が劇的な効果を生む待ち行列的な話だと思う。なので超速度が要求されるシチュエーションではGC言語は厳しいというのは本当に同意。」 / Twitter
アマチュアアカウントさんはTwitterを使っています 「Why Discord is switching from Go to Rust by Jesse Howarth https://t.co/SwVYP8M0nw なるほどなあ。 これは結局巨大なオンメモリキャッシュのようなソフトウェアをGC言語で書くのは厳しいという話に見える。」 / Twitter
Why Discord is switching from Go to Rust | by Jesse Howarth | Discord Blog
Dai MIKURUBEさんはTwitterを使っています 「GC のレイテンシに対する影響なんか 20 年以上前から議論も改善もされ続けている話だと思うんだけど、単なる言語対言語の話に収斂されちゃうのも、なんだかなあ…」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「言語対言語みたいな話は bikeshed として盛り上がりやすいのは、まあわかるんだけどねえ…」 / Twitter
ǝʞɐɔpuɐsʇɹıɥsʇさんはTwitterを使っています 「@dmikurube 世の中は確率〜」 / Twitter
uint256_tさんはTwitterを使っています 「プログラミング言語同士の、意味のない比較が多い」 / Twitter

Learned Garbage Collection

Masahiro SakaiさんはTwitterを使っています 「Learned Garbage Collection https://t.co/JVH3M4pHi2 CPythonのGCタイミングを強化学習で。状態はアロケーションを行うバイトコードのアドレスと現在の使用メモリ量、アクションはGCしないかk以下の世代のGCで、報酬は時間あたりのリクエスト処理数などで、(DQNではなくテーブルを用いる)Q学習。」 / Twitter
Learned garbage collection | Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
Masahiro SakaiさんはTwitterを使っています 「いくつか工夫を入れたバージョン&ベンチマークプログラムではCPythonのデフォルトよりも良い結果。Webサーバの例で、GCをOSのI/Oとオーバーラップするような方策が学習出来てたりするの面白い。 スライド: https://t.co/tbBO5kN7Wi 講演動画: https://t.co/RcLvn1zbJd」 / Twitter
Learned Garbage Collection - Google スライド
Masahiro SakaiさんはTwitterを使っています 「CPythonではGCはあくまでリファレンスカウンタの補助で、(回収可能な)サイクルが存在しない状態でGCしても無意味というのがやっぱり特殊なのと、あと一般にはコンテキスト(=コールスタック)の情報を何らかの形で状態に含めないとうまくいかないんじゃないかと思った。」 / Twitter

ハザードポインタ

Ryou Ezoeさんのツイート: "ハザードポインターの概要は理解した。ハザードポインターというのはGCの手段だ。ロックフリーデータ構造では複数のスレッドが同時にポインターを参照していることがあるので、メモリーを破棄するには何らかのGCが必要になる。"
Ryou Ezoeさんのツイート: "GCをどうやって実装すればいいのか。参照数をカウントしてしまえばいいが、他の方法としてハザードポインターが考案された。"
Ryou Ezoeさんのツイート: "ハザードポインターの仕組みは簡単だ。 1. スレッドはポインターを使う前にスレッドに紐付けられたハザードポインターにポインターを格納する 2. ポインターの参照するメモリを破棄する前に、すべてのハザードポインターに同じ値のポインターが存在しないことを確認する。"
Ryou Ezoeさんのツイート: "ハザードポインターにポインターが存在するポインターはどこかのスレッドが使っているので破棄してはいけない。あとで破棄する。ハザードポインターに存在しないポインターはすぐに破棄してよい。"
Ryou Ezoeさんのツイート: "問題は、スレッドごとにハザードポインターを確保し、必要がなくなったら解放する仕組みを効率よくしかもロックフリーで実装するのが難しいということだ。"
Ryou Ezoeさんのツイート: "正直ハザードポインターがロックフリーで実装できるならリファレンスカウントもロックフリーで実装できるのでは。"

users

@blackenedgold

Rust

κeenさんのツイート: "ふむ。メモリ管理やスレッドセーフティに厳格なRustの上になんでもありなGCを実装するのはかなりの苦しみなんだけどやってのけたのか Shifgrethor I: Garbage collection as a Rust library https://t.co/NdA6XdM1K7"
withoutboats/shifgrethor: research
κeenさんのツイート: "withoutboats/shifgrethor: research https://t.co/JIPM4BNW5B"
Shifgrethor I: Garbage collection as a Rust library
κeenさんのツイート: "これ使ってkappaLisp作り直してみるかな"

κeenさんのツイート: "そういえばブログ記事、なんか勢いで書いたのでCopy GCのゴミ回収が速いって書いてたけどあれ、多くの場合嘘だよね"
κeenさんのツイート: "そうか。分散合意しようとすると1つのノードでGCが走ると他のノードにも影響があるのか。 Rust in TiKV · TiDB Blog https://t.co/vTRg2l2TuO"
κeenさんのツイート: "CopyGCについても言及しようと思ったけど巨大なTree育ててる時点で既にGCコスト払ってるのでいっかと思って放置してました"
κeenさんはTwitterを使っています 「全てイミュータブルで使われるときにコピーする、それでGCレスにできると思うけどコピーコストが嵩んで恐ろしく遅くなるんじゃないかな?例えばconsなんて何回コピーが走るか怖くてできなくなる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たとえば、線形論理っていう理論を使って注意深く参照数を高々1にすることでGCを無くしたLisp、liner lispってのがあります。昔、その記事を書いたことがあるので、良かったらどうぞ https://t.co/PN4xfy9RZy」 / Twitter
GC撲滅への道 - GC Advent Calendar - miura1729の日記
ACM Sigplan Notices 27, 8 (Aug. 1992), 89-98.
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Let's try ML Kit with Regions
Home Page
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「メモリ管理の手法としては ・スタックのみ ・手動メモリ管理 ・参照カウント ・GC ・リージョン推論 などがあって、それぞれメリットデメリットがあるわけで、既存の手法にあるような欠点を持たない全く新しい手法が無から生まれることは考えづらい」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「もしも全く新しい方法が登場するとしても、いきなり実用的な言語に実装されるのではなく、先に論文が出てそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「処理をトランザクションとして見て、そのトランザクションを終了したらそれに関わるメモリを開放するって言う感じのメモリ管理は組み込みでは一杯やられていそうだし、あんまり論文は無さそうな気がする」 / Twitter
uint256_tさんはTwitterを使っています 「計算理論 破綻しそう」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@uint256_t どういうふうに」 / Twitter
uint256_tさんはTwitterを使っています 「@1inguini 事前にどのようにメモリが消費されるのかわかるなら, 停止性問題解けそう (適当)」 / Twitter

@anohana

Shiro Kawaiさんのツイート: "#tcfm 16回 https://t.co/JfkqRA6N4P VMWareの二重スワップ問題、二重丸め問題とかデュアルGC問題とか、「賢い二者がお互いに相手のことを気づかずに手を出してダメダメになる」みたいなメタな問題構造があるようなないような。"
Shiro Kawaiさんのツイート: "いや二重丸めやGCは乱択化(一方の賢さを減じる)では解決にならないから別のクラスの問題と考えるべきかな。"
Shiro Kawaiさんのツイート: "今主流のアーキテクチャ(CPUで選べる場合はOS込み)で、上方向に伸びるのを採用してるのってありますか? 自分でGC書いてた頃はautoconfマクロでチェックしてた覚えがありますが最近気にしたことないなあ… "

histric

histric-1

Fadisさんのツイート: "shared_ptr、計測してみると割と無視できないオーバーヘッドになってたりするから、激しくポインタをつつくループの前とかでは、「shared_ptrをローカルスコープに置いてその範囲での寿命を保証」した上で「同じアドレスを持つ生ポインタを同じスコープに置く事でオーバーヘッドを回避」は良くやる"
INADA Naokiさんのツイート: "昨日 #tcfm のQ&Aで紹介していたGCのデバッグ(エンバグしたところからずっと後で問題が起こる)に使ったツール、これです。 https://t.co/lJCIEDXOSB"
渋川よしきさんのツイート: "参照カウントも、カウンタの増減を自動化できるかどうかで、GCとしての使い勝手はだいぶ変わるよね。"
Kentaro Haraさんのツイート: "同僚「去年、家をコピーGCしたときにさー・・・」(邦訳:去年、家を引っ越したときにさー) マイナーGC => 毎週のお掃除 フルGC => 大掃除 コピーGC => 家のお引越し コンサーバティブGC => また使うかもしれないから取っておこうと断捨離できないタイプのお掃除"
NaOHaq(仮性ソーダ)さんのツイート: "Copying GCだと解放されるTreeのtraverseは起きない。けど代わりに生きているTreeがcopyのためにtraverseされる。 https://t.co/wUbatymBiQ"
Rockridgeさんのツイート: "Fx57:インクリメンタルGCのスライス時間を調節し、応答性に影響を及ぼすような長い処理停止を抑制。 / “1368972 - Increase slice time for long-running incremental G…” https://t.co/zTA79nT3lL"
INADA Naokiさんのツイート: "#tcfm Python の GC は言語仕様じゃなくて、実際に PyPy は参照カウント使ってないので with 文使わないとリソース開放が遅延して問題起こしますね。"
shinichiro hamajiさんのツイート: "世代別GCと命令融合を持ち、従来の最速実装の2倍速く2倍省メモリなインタプリタすごい!(ただし言語はUnlambda)… "
iroriさんのツイート: "はてなブログに投稿しました Unlambdaインタプリタを作った - iroriの日記 https://t.co/CnBPs0q648 #はてなブログ"
Unlambdaインタプリタを作った - iroriの日記
hikaliumさんのツイート: "主流のアーキで上方伸長スタックを採用しているものは聞いたことがないです。(「熱血アセンブリ入門」曰く、xstormy16というマイコンは上方伸長のようです。) 上方伸長だとスタックオーバーフローでreturn pointerを書き換えられずに済むという利点があると知って、なるほどと思いました。… https://t.co/Kx1yOaFH9u"
Kazuho Okuさんのツイート: "mrb_str_catが非破壊結合だから非効率ってのはそのとおりだろうけど、なんで12GBもメモリ使ったんだろう。GCはlive objectのメモリ使用量の定数倍しかメモリ使わないように設計してると思うんだけど、なにか秘孔があるのかな #builderscon"
島鉄雄さんのツイート: "Unity の GC がどうなってるか調べたら Boehm 使ってるのかよ… これじゃゲームがカクカクになるだろうと、更に調べたらみんな苦労して GC が発生しないように頑張ってるようだ。 ゲームプログラマは、ホントによく訓練されてるよ… https://t.co/q3BN03ngjq"
UnityのGCはどんな実装になっているのか │ Aiming 開発者ブログ
島鉄雄さんのツイート: "インタプリタを実装する時には C を使う事が多いけど、例えば Lisp の場合 Object form = list(...); eval(form); の様に書くけど、こうなると form はレジスタやスタックに載ってる可能性があって、GC を行うときにルートから辿れなくなり、コード実行中での GC がほぼ不可能になる。(続く)"
島鉄雄さんのツイート: "Bohem GC は、アセンブラを使ってレジスタやスタックにアクセスしてこの問題に対処しているけど、C だけで実装したい場合は、自前のスタックを用意して PUSH(list(...)); eval(); ← 引数はスタックから取り出す こんな感じで全てのオブジェクトを自前のスタックに積むことにより、(続く)"
島鉄雄さんのツイート: "コード実行中でも全てのオブジェクトを走査する事が出来て GC が実装可能になる。 要するに、スタックマシーンを実装する事になり、GC の観点からもバイトコードにコンパイルする事は必要な事だという結論に至った。"
島鉄雄さんのツイート: "PS4版ドラクエ11の記事だけど、 > まだガベージコレクションに絡む画面のカクつき問題が残ったままになっていました。 > さっき言った画面のカクカク問題の対策は1月から始めて5月まで続いて、すごく時間がかかりましたね。 GC は罪な奴だぜ… https://t.co/j6JneI70KP"
島鉄雄さんのツイート: "一方、UE4 ドキュメントには > UE4 のガーベジ コレクションは高速かつ効率的です。 ホントかよ… リアルタイム3Dゲームでカクつかない GC が出来ればいいけどね。 Java11 に実装された ZGC がそうであるんじゃないかと思ってる。 https://t.co/n472hA2m6O"
島鉄雄さんのツイート: "でも、ドラクエ11 の成果が UE4 に盛り込まれたらしいから、今の UE4 は大きめのプロジェクトを動かしても、カクカクしないのかもね。"
Kazuho Okuさんのツイート: "GCの有無の基準は、「いつ回収するか」を意識する必要があるかどうかで決まるんだろうな。その基準でいうと、refcountは「穴があるGC」。Rustの所有権は、いつ回収するかを明示するための手法であって、意識しなくてよくなるわけではない"
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Cのコード生成系をいじって正確なGCをサポートして、LinuxにGCを入れた例がありますね。 (https://t.co/dX31V8jVjT (PDF)) この論文紹介を私が発表したことがありますのでよかったこっちも...  https://t.co/RDfj88iarb」 / Twitter
ismm09-rwrf.pdf
monochromeさんはTwitterを使っています: 「@miura1729 なるほど!面白いですね。今だとGoで書き直せ、って話になるんでしょうけど。 CRubyには全く使えないな〜と思って読んでいたら、論文中でも動かそうと頑張ってみたけど全く動かないのでさじを投げた唯一の例として挙げられていました。まあそりゃそうだ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにGoで書き直す方が現実的ですね。あの論文を読んでからOSはむしろGCのある言語で書くべきと思っています。CRubyはまあポインタでビット演算しているから無理でしょうね」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 gVisorみたいなバリバリに使われているシステムソフトウェアがGoで書かれて普通に動いているので、実用上も問題なさそうですね。あとはRustみたいな方向性ですかねえ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Rustみたいな方向性は制約が強すぎてリファレンスカウントの山になって却ってよくないと思うんですけどね。定量的な評価がみたいです。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 GoでOS作る話はdrumatoさんが論文紹介していました。ちょっと遅いけどまあまあ良い、という話。 https://t.co/RL8aZUKUP4」 / Twitter
The benefits and costs of writing a POSIX kernel in a high-level language
DrumatoさんはTwitterを使っています: 「この論文ではHLLの機能の中でもGCについてフォーカスしていて、 自動的メモリ管理による「安全性」と「パフォーマンス」はトレードオフの関係にあると主張しているんだけど、 あれ、じゃあRustでOSカーネルを実装してC実装と性能比較したみたいな論文って無いのかな? と思ったらあるっぽい https://t.co/8ReN7PGFVe」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Rustはunsafeなコードを認めていないわけじゃなくて、必要なら範囲を明示して使えるし、unsafeなライブラリ関数も多数用意されているんですよね。あと、標準でスレッド安全が保証されているのは大きいと思っています。(まだ勉強中なので見当違いかもしれませんが」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど、静的解析。昔はOSを高級言語で書くなんてって言われたわけですから変っていくんじゃないでしょうかね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 OSだとunsafeじゃない部分がどのくらいあるのかな?って思いましたが、結構あるのかな?unsafe割合しだいですが、スレッド安全はありがたそうです。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 リフレクションタワーはリフレクション話で一番面白いところですからね。Rubyはこの辺で出てきた知見を取り入れていますが、タワーが無かったり当初より美しくないですね。まあ、当初のは実装がすごく難しいですけど」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Ruby、クラス定義とかが不必要なまでに動的に可能で処理系作りながら何なんだこれは…と思っていたんですが、動かしながら自分自身に機能を追加したり変更したりするモデルが念頭にあったんだとすると、なるほど~と感じました。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 この手の話はもともとLispが発祥なんですけど、30年くらい前に色々混乱していたのを整理してリフレクションって名前を付けたものです。この時整理したものをまともに実装すると凄く重いのでいまではリフレクション機能っていうとRubyも含めて昔のLispのもののようなものが多い気がします。」 / Twitter
ドッグさんはTwitterを使っています 「ガベコレで Eden 領域というのがあって,何だろうと思ったらいわゆる Nursery のことなのか.オブジェクトが生まれるところが Eden で,Young 領域に"追放"される(一度 Young に行くともう戻ってこれない).オブジェクトが犯した罪とは…」 / Twitter
Shinya KatoさんはTwitterを使っています 「GC が当たり前の言語を使っている人に malloc とか free とかの話しても「何それ?」ってなりそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「GCが当たり前の言語を使っているユーザ、なぜかGCやメモリ管理のアルゴリズムに詳しいという説があってな ... &gt;RT」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「GC のデバッグは、ヒープが満たすべき不変条件とある特定の時点で成り立つ表明を検査する関数を用意して、疑わしいところすべてに配置するという原始的な方法で行った。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Snapshot GC は mutator と collector が(協調的に)並行に動作するといっていいと思う。これと異なり以前実装した並行版というのは、 複数の mutator と複数の collector がそれぞれ固有の native スレッドで走るというもの。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonがついに「真の並列化」を達成か? PythonのGCは参照カウントを使っているが、これまで Py_INCREF/DECREF は効率の問題からatomicな処理にできなかった。新しいパッチでは参照カウントを所有スレッド用と別スレッド用に分けることにより、この問題を解決している。 https://t.co/TXaJhNEPsk」 / Twitter
Yuta OkamotoさんはTwitterを使っています 「Python から GIL (Global Interpreter Lock) がなくなるかもしれないらしい。 https://t.co/49t1XCWQqk」 / Twitter
Mailman 3 Python multithreading without the GIL - Python-Dev - python.org
Yuta OkamotoさんはTwitterを使っています 「解説記事。 https://t.co/snp98HkCsW」 / Twitter
A viable solution for Python concurrency [LWN.net]

tracing GC - Google 検索
井山梃子歴史館さんはTwitterを使っています 「自動的/手動的 暗黙的/明示的 大域的/局所的 の3軸ぐらいで分類するのが良い」 / Twitter
GCアルゴリズム詳細解説
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
Goでの並行処理を徹底解剖!
PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ - Google スライド
伊津野 英克さんはTwitterを使っています 「GC付きのRustがほしいのは、ほんの一部で限定的にGC使いたいというニーズがあるからだと思うので変な主張ではないと思うけど。w3mは文字列管理にGC使ってたはずで同じように自己参照とか不変だけど可変長データオブジェクトとかはGCの対象にした方が便利だよね、という話ではと。」 / Twitter
[2110.01098] Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment

カバレッジ測定

gcov

gcov の使い方 - まめめも
OpenCppCoverageによるカバレージの計測 (1/2):CodeZine(コードジン)
gcov(1) FreeBSDドキュメントJMan
GCCでC言語の分岐カバレッジを試す。思ったのとちょっと違った。 CodingFirst
gcovでカバレッジテストをしてみる: 綺麗なコードが良い
タダでソフト開発の生産性と品質を上げる方法(7):高機能な単体テストツール「GoogleTest」を使いこなす(その2) (1/3) - MONOist(モノイスト)
Cutterでカバレッジ……改良しちゃいます - しがないSEのブログ
EM+PLS|IoT|サイバートラスト株式会社
rubyhackchallenge/6_coverage.md at master · ko1/rubyhackchallenge
Linuxにおけるカバレッジテスト | ~Rhythmical Life~
C/C++開発環境 - Qiita
GCC 7 | 10.2 gcovの呼び出し - 初心者入門サンプル
GCC 7 | 10.4 gcovデータファイルの簡単な説明 - 初心者入門サンプル
gcov.txt - kandamotohiro
Dialy & Material book: gccとgcovコマンドを使ってCソースのcoverage(カバレッジ)を測定する
GCCのコードカバレッジオプションはどのように機能しますか? - コードログ
QEMU / GDB経由の.gcdaカバレッジファイルの生成 - 埋め込みコードカバレッジ、gcov
Samuel Jacob's Web Log: GCOV internals overview
Linux Test Project / Re: [Ltp-coverage] gcov's data files format
セグメンテーション違反が発生した場合でも、どうすれば“ gcov”を使用できますか? - コードログ
Gcov - Wikipedia
Gcov Data Files - Using the GNU Compiler Collection (GCC)
Coverture

gcov_log_マージ

gcovのログファイルをマージするツールを拾った && 手直しした - 新・日々録 by TRASH BOX@Eel
code-coverage – 2つのgcovファイルを1つにマージする方法はありますか - コードログ
g – gcov/gcovrを使って2つの実行ファイルのカバレッジデータをマージすることは可能ですか? - コードログ
plugin gcov 警告: サマリーのマージの不一致 - 初心者入門サンプル
Parasoft Blog: テストを複数回実施したカバレッジのログをマージする
Using and Porting the GNU Compiler Collection (GCC) - gcov: テスト・カバレッジ・プログラム
On-line Manual of "gcov"
猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう (4/4) - MONOist(モノイスト)
ブログズミ: [C++] Coveralls でコードカバレッジ - その2
「gcov: テスト・カバレッジ・プログラム」 (Using and Porting the GNU Compiler Collection (GCC)) - メモの日々(2006-07-09)

動的コード生成

Miura HidekiさんはTwitterを使っています 「動的にコードを生成していれば可能かと。この場合カバレッジってどう定義するのか知らないけど」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「カバレッジ100%を超えるということは…実行可能コメントか!!」 / Twitter
しいたけさんはTwitterを使っています 「カバレッジ……60……75……90…100……120%……!? まだ上がるというのか……っ!?」 / Twitter
肉まんさんはTwitterを使っています 「@yuroyoro 開発者「これは……不可能な分岐(vanishment path)を通過した!!!??」」 / Twitter
hideshisさんはTwitterを使っています 「@yuroyoro 「「超え」」ちまったようだぜぇ。。」 / Twitter

中村 実さんのツイート: "100%コードカバレッジの悲劇 / “The tragedy of 100% code coverage | IG Labs” https://t.co/myt2ldH9F0"
The tragedy of 100% code coverage | IG Labs
Makoto Kato ︎︎さんのツイート: "テストカバレッジできてないコードは大概怪しいとか、comm-centralでしか使えないコード (absolutely position editor) とかいろいろあるよ https://t.co/jS0TG2oqRj… "
Using gcov with the Linux kernel — The Linux Kernel documentation
まさみさんは語りたいさんのツイート: "ftraceのgcovをコンテナ内部で取れるようになった。良い。"
まさみさんは語りたいさんのツイート: "これでカバレッジテスト増やすんじゃー。"
まさみさんは語りたいさんのツイート: "lcovの結果を眺めながら、テスト漏れしてる関数を叩くにはどういうテストを掛けばいいかを考えて追加する簡単なお仕事。"
まさみさんは語りたいさんのツイート: "gcovを使ってftrace内のftracetestとboottestでカバーされる関数を調べ、足りないテストケースを能動的に探し出して追加するというアプローチに出ているが、結構ややこしいケースがあるなあ。"
まさみさんは語りたいさんのツイート: "GCOVでテストを走らせながらソースコードを読むと、消し忘れたヘルパー関数っていうのが見つかることがある。何かの処理のためにヘルパーを作って使ったけど、使った方のコードが書き直されたせいで使われなくなったhelper関数。これからはトマソンと呼ぼう。"
まさみさんは語りたいさんのツイート: "トマソンを探せ"
まさみさんは語りたいさんのツイート: "トマソンというかジャンクコードというかで人文学科か生物学科かが分かる。"
まさみさんは語りたいさんのツイート: "カバレッジ出来ないコードを削除していくスタイル"
まさみさんは語りたいさんのツイート: "GCOVはプログラムをコンパイルする時にカウンタを埋め込み、C言語の各行に対応する機械語の生成時にこのカウンタをインクリメントする、という動作をするようだ。問題はarmとかだと規模が大きいカーネルのようなプログラムの場合、カウンタを置く場所が離れてしまい1命令ではインクリメント出来ない"
まさみさんは語りたいさんのツイート: "なので、恐らくカウンタのテーブルを分割し、コード領域の近くに埋め込んで、一命令でインクリメント出来るようにしている。しかしLinuxカーネル内には.text.exitという領域があって、これは終了時にしか利用しないコードをビルドするんだけど、最終的にリンク時に削除されるようになっている。"
まさみさんは語りたいさんのツイート: "そうすると、このexitコード用のカウンタテーブルも一緒に削除されちゃうんだけど、当然そんなことを想定していないGCOVの関数からこのテーブルは参照されているので、リンカがエラーを吐きよるわけですよ。"
まさみさんは語りたいさんのツイート: "多分同様の問題が他の機能にもあったのか、armのリンカスクリプトで、CONFIG_GENERIC_BUGとかCONFIG_JUMP_LABELが定義されていたらtext.exitを削除しないようにするスイッチがあるのを見つけたから、これにGCOV_KERNELを追加したら案の定エラー消えた。"
uint256_tさんのツイート: "(ASTカバレッジ..?"
uint256_tさんのツイート: "カバレッジが行数なの, 疑問に思ったことなかったなぁ"
ccov: printfデバッグを支援するツール - Blog posts by @retrage01

プロファイラ

パフォーマンス計測

その他

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
本の虫: cpの速度を計測する方法
本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)
DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
命令単体の性能を計測する
インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
Android Studio 3.2 Canaryはトレースサポートの改善、Lintチェックなどを提供
はじめてのにき(2018-02-19)
2018年11月22日 Oracle,eBPFによるDTraceエンハンスのプランを公開:Linux Daily Topics|gihyo.jp … 技術評論社
パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
Linuxのパフォーマンス計測ツールの違いとか - Yabu.log
Makoto Kato ︎︎さんのツイート: "ETWを使ってDTrace likeなのを動かすようにしただけなのか"
DTrace on Windows - Microsoft Tech Community - 362902
Next Windows release will include DTrace support | Ars Technica
2019年3月12日 Microsoft,「DTrace on Windows」をCDDLで公開:Linux Daily Topics|gihyo.jp … 技術評論社
3.3 アプリケーションへのUSDTプローブの追加
3.4 USDTプローブの使用
パフォーマンスカウンタを読んでみる - ziita’s blog
レイテンシの直感的な理解のためのメモ書き | Qrunch(クランチ)
俺の仮想マシンルーターがこんなに遅いはずはない/ KernelVM online 1 - Speaker Deck
Grafanaが分散トレースシステムGrafana Tempoを発表
LTTng - Wikipedia
プロファイラの比較(+簡単な使い方) - Qiita
Indicium: V8 runtime tracer tool · V8
ゴリラ@最近🍌食べてないさんはTwitterを使っています 「これ、リプレイ出来るのか 便利そう https://t.co/9tI7Ttl8mZ」 / Twitter
evilsocket/uroboros: A GNU/Linux monitoring and profiling tool focused on single processes.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ITシステムの性能を測るうえで重要なのは平均ではなく分散である。分散が大きなシステムはピーク時の性能低下も大きい。ユーザは通常よりちょっと遅い程度では気にしないが、大幅に遅かった経験はよく覚えている。災害はつねに「分布の中央ではなく終端で起こる」のだ。 https://t.co/wsPu7zW8lx」 / Twitter
Why Disaster Happens at the Edges: An Introduction to Queue Theory – The New Stack
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「待ち行列理論はおもに上のような問題を扱っている。使用率 (utilization) が高い状態ではわずかな変動が致命的な遅延にエスカレートすることがわかっている。一般的にシステムの使用率は75%以下をキープし、使用率が高い時は可能な限り分散を抑え、中間層で調整弁的な機能を実装することが重要である。」 / Twitter

BPF

MS

Making eBPF work on Windows - Microsoft Open Source Blog
microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows
FadisさんはTwitterを使っています 「MicrosoftがWindowsのカーネル空間でeBPFの実行を試みているぞ、という話。eBPFはLinuxカーネル空間に専用の中間コードで書かれた命令列を送って実行する為の仕組み。ユーザ空間プロセスのように空間の分離は行われないが、静的解析によってカーネルを破壊しない事を保証する https://t.co/fS2Op5X22p」 / Twitter
Microsoft Bringing eBPF Support To Windows - Phoronix
FadisさんはTwitterを使っています 「eBPFのフルネームはextended Berkeley Packet Filterで、元になったBPFはパケットフィルタのルールを記述するために考え出された物だが、カーネルの振る舞いを容易に拡張できるという特徴はあまりにも便利な為、今日のLinuxカーネルではネットワークに限らずeBPFを挟める箇所が大量に用意されている」 / Twitter
FadisさんはTwitterを使っています 「しまった、BerkeleyでもPacketでもFilterでもないeBPFは今はもうextended Berkeley Packet Filterの略じゃなくて「eBPF」という技術用語なんだった…」 / Twitter
Miura HidekiさんはTwitterを使っています 「セキュリティーのために(おそらく)消えてしまった(多分)ActiveMessageが名前を変えてまだ生きているのか。胸熱」 / Twitter
Miura HidekiさんはTwitterを使っています 「静的解析でも抽象解析でも何でも使ってセキュリティーを担保したActiveMessageは分散環境のメッセージパッシングの中で最速だと思う。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Morris Worm、bitの解説記事を見て、すごく感心した記憶がある」 / Twitter
WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ - Publickey
MicrosoftがeBPFのWindowsへの導入に向けて取り組んでいる

libbcc

Kazuho OkuさんはTwitterを使っています 「libbcc 使って h2o/quicly/picotls のイベント記録して通信パターンの可視化ツールに放り込んでトランスポート層のデバッグやる話 / https://t.co/TbzssfjHPX」 / Twitter
Debugging QUIC with H2O and QLog | Fastly
libbcc - Google 検索

BPF CO-RE

FadisさんはTwitterを使っています 「OracleがgccでBPF CO-REを吐けるようにしている話。eBPFはカーネルの構造体を直接触る為従来特定のバージョンのカーネル向けにコンパイルする必要があったが、CO-REはコンパイル済みのバイナリに付加情報を載せてロード時に変換することでバージョン間の違いを吸収する https://t.co/xnBmHnDqr1」 / Twitter
Oracle Working On BPF CO-RE Support For GCC To Easily Run BPF Programs On Any Kernel - Phoronix
FadisさんはTwitterを使っています 「LLVMには既にBPF CO-REを吐くための対応が入っているらしい」 / Twitter
第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第695回 入門BPF CO-RE:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

睡分不足

BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
macでbpftraceを試す - 睡分不足
bpftrace 2020 - 睡分不足
SpectreとeBPF - 睡分不足
cBPFプログラムをLLVM IRに変換する - 睡分不足
LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足

資料

mumumuさんはTwitterを使っています 「今からeBPFで性能解析とかで遊ぶならどの資料読むのが最短なんだろうか?」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm BPF Performance Toolsとかは?」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm 一方でくそ分厚いのでやりたいベクトルが決まってるならiovisorやbccのissueやフォーラムとかで調べた方が早かったりするかなーー」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm もし全然書いたことなくよくわかってないなら今年のebpfサミットのそれっぽいタイトルのスピーカーの話を聞いてから進めたら楽かも https://t.co/9qzywBBDPj」 / Twitter
eBPF Summit 2020
mumumuさんはTwitterを使っています 「@takemioIO うおー,ありがとう.とりあえず何ができるかわかってないので,本買ってみます」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Brendan Gregg 氏の著作では」 / Twitter
mumumuさんはTwitterを使っています 「@kotatsu_mi あざます,さっそく買って読んでみます!!」 / Twitter

blog

bcc/eBPFのtraceの使い方を調査 - ソフトウェアプラットフォーム屋のメモ帳
bcc – BCC – BPFベースのLinux IO分析、ネットワーク、監視などのためのツール – GitHubじゃ!Pythonじゃ!
Cloudflare architecture and how BPF eats the world
BCCでBPF toolsの開発をするための基礎知識 - Islands in the byte stream
h2ologにみるBPF toolsの構造と設計 - Islands in the byte stream
Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 - Publickey
BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
BPF Performance Toolsを読んだ感想 - go_vargoのブログ
RustでLinuxカーネルの機能を拡張しよう!Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。 | nttlabs
RubyKaigi takeoutでRuby to BPF compilerの話をした話 - ローファイ日記
Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた - Publickey
eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場 - Publickey
Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機 – さくらインターネット研究所
Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植 - Publickey

技術評論社

第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第690回 BCCでeBPFのコードを書いてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第692回 sysfsやbpftoolを用いたeBPFの活用:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2022年に注目したいCloudNative関連技術:新春特別企画|gihyo.jp … 技術評論社

infoQ

eBPF FoundationがeBPFの機能と採用のさらなる進展を目指す
eBPF と Wasm: サービスメッシュデータプレーンの未来を探る
Solo.io、eBPFの開発を容易にするBumbleBeeをオープンソース化

@IT

BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方 (1/2):Berkeley Packet Filter(BPF)入門(5) - @IT
Berkeley Packet Filter(BPF)入門 - @IT
BPFのアーキテクチャ、命令セット、cBPFとeBPFの違い:Berkeley Packet Filter(BPF)入門(2)(2/2 ページ) - @IT

Twitter

NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm BCC - BPF Compiler Collection https://t.co/jtyVfOQPY6」 / Twitter
brendangregg/bpf-perf-tools-book: Official repository for the BPF Performance Tools book
iovisor/bpftrace: High-level tracing language for Linux eBPF
FadisさんはTwitterを使っています 「eBPFをコンパイルしてカーネルに流すBCCはPythonでラップされていてPythonから使うのが一般的だけど、RubyistだからRubyラッパーを作ってRubyから使ってみた、と #kernelvm」 / Twitter
udzura/rbbcc: BCC port for MRI - this is unofficial bonsai project.
FadisさんはTwitterを使っています 「LinuxのBerkeley Packet Filter(BPF)の実行環境は元々パケットフィルタをユーザ空間で書いてカーネル空間で実行するために導入されたが、カーネル空間に任意の処理を安全に突っ込めるのはとても便利なので今日ではカーネルのありとあらゆる任意の処理を書きたいところに応用されている。」 / Twitter
FadisさんはTwitterを使っています 「色々な用途で使うとBPFの中でブロックする必要がある処理を書きたくなってくるが、現在のBPFの実行環境は処理を中断できるように作られていない。そこで、一部の用途に限りBPF_F_SLEEPABLEをつける事で中断可能な実行環境で実行されるようにしよう、という提案がなされている https://t.co/0ijGZ9cpVg」 / Twitter
FadisさんはTwitterを使っています 「中断可能なBPFが再開時にRCUでアップデートされるリソースの古いデータを握り続けていると解放済みのデータを参照してしまうため、中断可能なBPFでは代わりにリソースに対するアクセスに制限がかかり、BPFのロード時のチェック内容が変化する」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.13から使えるようになった「BPFからカーネルの関数を呼ぶ機能」についての話。eBPFはカーネル空間で実行されるものの、従来カーネルの関数を呼べないようになっていた。Linux 5.13からeBPFを実行するcontextが認める関数に限り、eBPFの中から呼べるようになる https://t.co/GTHYT0g4Qq」 / Twitter
FadisさんはTwitterを使っています 「これは「BPFでTCPの輻輳制御を使うのに、カーネルの実装が使えずBPF用を実装する必要があるのが辛い」問題を解決する為に入った物だが、カーネルの関数は将来ABI互換を壊さない事を保証していない、雑なcontextがチェックを省略するとカーネルの万物がユーザ空間に公開される等色々な懸念が生じている」 / Twitter
GDBがeBPFのデバッグをサポートした
GNU Debugger Adding eBPF Debugging Support - Phoronix
Takekazu Omi 🖖さんはTwitterを使っています 「USENIX LISA2021 BPF Internals (eBPF) https://t.co/7zLiXWwOJy eBPFは、BPFと呼ばれるようになりました。 https://t.co/OrErxaZ0j0」 / Twitter
USENIX LISA2021 BPF Internals (eBPF)
daem0nc0reさんはTwitterを使っています 「eBPFを用いたRootkitの検知手法。eBPF for Windowsを使えばこの手法がWindowsに使えるのかは気になるところ https://t.co/2bqLKu4KFM」 / Twitter
Detecting Kernel Hooking using eBPF | pat_h/to/file
Early Patches Bring BPF To The Linux Scheduler - Phoronix
FadisさんはTwitterを使っています 「米国の小売大手Walmartが同社の通販サイトで使っているL3AFをOSS化した話。L3AFはLinuxのXDPでパケットを操作するeBPFのコードを複数連結し、その構成を複数のサーバにオーケストレーションする物。OSS化に伴いL3AF準拠のeBPFモジュールのマーケットプレイスも作るらしい https://t.co/cMe1BtjSg1」 / Twitter
Walmart Pushes Open-Source L3AF To Help Out eBPF Ecosystem - Phoronix
FadisさんはTwitterを使っています 「XDPはLinuxに数多くあるeBPFを挟める箇所の1つで、NICのハードウェアにパケットが入ってくるとあらゆるネットワークスタックの処理よりも先にXDPのコードが実行される。DDOS攻撃の回避や別のホストへのパケットの転送を重いネットワークスタックに入る前の段階で行うのによく用いられる」 / Twitter
FadisさんはTwitterを使っています 「LinuxのeBPFにループを作るための新しい方法が提案されている話。eBPFはLinuxのカーネル空間で実行されるコードをユーザ空間から挿入する仕組みで、範囲外のメモリを触らないか、ハングしないか、といったチェックをカーネルが静的に行う事でカーネルを破壊しない事を保証する https://t.co/wDYJxflTah」 / Twitter
FadisさんはTwitterを使っています 「eBPFのコードが終了するかを確認するのはeBPFのコードにループがあると難しくなる。eBPFのコード上では高級言語のループの情報は失われているため、ループのチェックではプログラムがとりうる状態の木が分岐の回数に比例して増えていく。この結果ループを含むeBPFのチェックには時間がかかりがちだった」 / Twitter
FadisさんはTwitterを使っています 「この問題を避ける為にeBPFの新しい関数bpf_loop()が提案されている。bpf_loop()はループ回数とコールバックを引数に取り、その回数コールバックを実行する。bpf_loopのcallがeBPFに残る為、カーネルはコールバックをカウンタが指定された範囲の値になりうるループと見做して効率よくチェックできる」 / Twitter
yuuk1さんはTwitterを使っています 「ついにきてた。eBPFによるサイドカーなしのサービスメッシュの実装。Observabilityでは、OpenTelemetry & Jaegerの連携をサポート、ゴールデンシグナルメトリックの公開。TLS終端やHTTP認証にはPer-Node Proxyが必要。 / “How eBPF will solve Service Mesh - Goodbye Side…” https://t.co/t13VHpzBKK」 / Twitter
How eBPF will solve Service Mesh - Goodbye Sidecars
yuuk1さんはTwitterを使っています 「認証じゃなくて認可か」 / Twitter
FadisさんはTwitterを使っています 「RedhatがLinuxの入力デバイス(HID)サブシステムにeBPFを挟めるようにするパッチを投げている話。eBPFはカーネル空間で実行するコードをユーザ空間から安全に挿入する仕組みで、HIDにeBPFを挟む事でおかしい動きをするデバイスの為にドライバに対応を入れる必要がなくなる https://t.co/LJXFGYj28K」 / Twitter
Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
FadisさんはTwitterを使っています 「入力デバイスは基本的に同じプロトコルを喋るデバイスを沢山のベンダーが作っている為、共通のプロトコルを喋っているようで一部で標準的でない動きをするデバイスが多数存在する。これらの違いに対応する為のコードをeBPFにしてカーネルから分離する事で、新しいデバイスに素早く対応できるようになる」 / Twitter

BCC(BPF Compiler Collection) for Ruby - Speaker Deck

bpftrace

高梨陣平さんのツイート: "DTrace 2.0なる、bpftraceについての紹介記事。freeBSDのbpfがeBPFとしてLinuxに搭載。DTraceの大ファンがそのVMを利用する形で一から実装。まだDTraceの全ての機能がある訳ではない。歴史の部分が面白い。Sunが体力に物を言わせてDTraceを実装するもLinuxはRHが先行するも普遍的なものが無しに。… https://t.co/XkwfmBxF3q"
まさみさんは語りたいさんのツイート: "トレーサでスクリプト書きたい場合はbpftraceがメインになるだろうなあ。stapは結局カーネルと一体化していないし。ただ、トレーサって実装が必ずカーネルと乖離するので、その上でどうマネジメントしていくかは思案のしどころ"
まさみさんは語りたいさんのツイート: "ところでbpftracer、ローカル変数アクセス機能ちゃんとつけたんだっけ?いつも忘れてしまう。Huaweiの人を昔手伝った記憶があるんだけども・・・。"
まさみさんは語りたいさんのツイート: "Diamonとかいろいろな動きがあるんで、トレーサは群雄割拠している感じがすごい。基本的にはみんな協力していて、ユースケースが違うだけなんだけど。"
まさみさんは語りたいさんのツイート: "この前もなんかプローブポイントを設定すると、バージョンが変わったりコンフィグ変わったりすると使えなくなるんだけど、どうしたらいい?とか聞かれたから、それはstable ABIじゃないし、ソースコードが変わると変えざるを得ないよね、っていう話をした。"
まさみさんは語りたいさんのツイート: "Dtraceに引き続き、SystemtapもeBPFベースに実装を変えてくれないだろうか・・・。まあそうするとStapgamesは多分全滅すると思うけど。"
まさみさんは語りたいさんのツイート: "stapgamesで厄介なのはループを多用するっていうところだから、その点をなんとか出来れば解決できるのではないか。"
bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

strace

strace コマンドの使い方をまとめてみた - sonots:blog
第11回「 strace ノススメ」 | NTTデータ先端技術株式会社
straceコマンドの使い方 - Qiita
straceを使ったデバッグ | OSDN Magazine
strace - Wikipedia
straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
プログラムから呼ばれるシステムコールを確認する:strace:Technical tips:Media hub
よく使う strace のオプション - Qiita
kati とか依存関係とか strace とか - straceが遅い
naoさんのツイート: "Linuxで動くとあるシミュレーターの評価版がアホほど遅くて評価にならないのでstraceかけて眺めてみたら馬鹿みたいにusleepを発行。ptraceで特定のパターンのみusleepを無視するラッパを作成・実行して本来の性能なら問題ないと確認できたのでめでたく購入、ということがあった。"
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する - hibomaの日記
strace 5.2 で追加された -z -Z オプション - hibomaの日記
strace -c を使う際に -w オプションを使い分けよう - hibomaの日記
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「たまに、strace の unfinished と resume を繋げたログを見たいことある」 / Twitter

ltrace

dlopen()した共有ライブラリ内の関数呼び出しをltraceする - Qiita
Debian -- sid の ltrace パッケージに関する詳細
ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ
tips – ltrace で共有ライブラリの関数呼び出しをトレースする|てくめも@ecoop.net
ltrace - Wikipedia
ltrace(1): library call tracer - Linux man page

straceとltraceでトレース - Szarny.io
AWSがElasticsearch Serviceに分散トレースを追加
sltrace.dvi
第17章 システムモニタリングユーティリティ
IBM Knowledge Center - 一般的なデバッグ手法

perf tools

perfの使いかた
perf - Wikipedia
perf使ってみた - Qiita
:matsuu:さんのツイート: "Linux perf profilerのGUIクライアントらしい。ほう / “hotspot - a GUI for the Linux perf profiler - KDAB” https://t.co/2GoKwlWmGs"
hotspot - a GUI for the Linux perf profiler - KDAB
Linuxのperfプロファイラ向けGUI「hotspot 1.0」が公開 | OSDN Magazine
Dockerコンテナが遅くなるもう一つの原因 | POSTD
まさみさんは語りたいさんのツイート: "バックトレースも一緒に取る? ちなみにどのロックインスタンスが、というのはたとえアドレスが出たとしても難しい。その場合そのインスタンスに関わる別のオブジェクトのインスタンスを調べないといけなくて、その意味をさらに追いかけないといけない。… https://t.co/SzF0ktKSoI"
まさみさんは語りたいさんのツイート: "perf probeでinline関数をプローブすると、場所的にはcallerの方の行が表示されちゃうのか。ややこしいな。"
Linux perf Examples
Kazuho OkuさんはTwitterを使っています 「perf って定期的にプロセス止めてスタックをトラバースしてるのかな。だとすると遅いCPUでは、スタックが深い奴ほど重たく表示される?」 / Twitter
成瀬さんはTwitterを使っています 「@kazuho 多分途中まで取ってあとで合成してるんじゃないかなって気がするのと、call-graphオプションでスタックトレースの取得方法を選べますが、dwarfの場合は遅いかもですがlbrは速いです https://t.co/X32R7pRx0X」 / Twitter
perf-record(1) - Linux manual page
てらモス♋️さんはTwitterを使っています 「perfがカーネルに依存しているのはカーネルがCPUのPMUの違いを吸収していてくれるからなので、コンテナ内で使うにはむしろnvidia-smiみたいにホスト側のperfコマンドをコンテナ内から見えるようにするのが筋ですね…(´・ω・`)」 / Twitter
Perf Tutorial 1
てらモス♋️さんはTwitterを使っています 「perfのプロファイラとしての利点は元のプログラムに変更を加えずにCPU側から情報を取ることで本来の状態に近い状態でプロファイルが取れる、そもそもCPUしか知り得ないキャッシュミスとかの情報をとってこれるなどがあるはず(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「gprofみたいに-pgフラグをコンパイル時につけることで関数呼び出しにフックをつける見たいな事をせずに済むわけだ...」 / Twitter
てらモス♋️さんはTwitterを使っています 「逆にgprofはあくまでglibcまでのレイヤーで頑張るのでユーザー空間のみで完結するのが利点と言えるですかね?」 / Twitter
perf を使った性能分析 - VA Linux エンジニアブログ

ベンチマーク

AMD と Intel

Kazuho OkuさんはTwitterを使っています 「Ryzen 向けの governor 信頼してないから、いいっちゃいいんだけど、なんで最大周波数セットできる値がコアによって異なるの? 同一物理コアのハイパースレッドですら違うw https://t.co/y6jBHB6Y1H」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「速度制限無視する奴の速度制限読み取り能力を云々してもしょうがないんじゃないんですか」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「IntelのCPUだとデチューンして確実に、分散の小さな綺麗なベンチマークが取れるし、Intel CPUのことだけ考えてチューニングしたい」 / Twitter
satさんはTwitterを使っています 「@kazuho ハードウェア固有のところに踏み込んだRASを含めた細かいところはまだまだIntelの独壇場だと感じます。AMDの石はperfの結果すらあってるのかどうかわからなかったりしますし」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@satoru_takeuchi 昔はプログラムが時々落ちるレベルで泣いて直したって聞きました!!!」 / Twitter

スーパーコンピュータ

Hideyuki Tanakaさんのツイート: "なんか何一つ正しいことが書いてなくてやばいですね…これ書いた人は一体どこで勉強して書いたのか、あるいは何かの目的のためにうそを自覚しながら記事を書き連ねたのか…?… "
新国産スパコン開発 日本製はGreen500で上位独占
Hideyuki Tanakaさんのツイート: "やばすぎる記事だ(´・_・`) / 1件のコメント https://t.co/lehpuGBNbI “新国産スパコン開発 日本製はGreen500で上位独占” (1 user) https://t.co/15VN7jrGcp"
Hideyuki Tanakaさんのツイート: ">違いはTOP500は簡単な計算を繰り返す理論上の最大能力、Graph500は複雑な計算をさせることで、TOP500のほうは低性能機材でも高い数値が出る。 Top500は密行列の連立一次方程式を解く速度、Graph500は無向グラフの幅優先探索をする速度、別にどっちも複雑な計算ではない。必要なリソースが違うだけ。"
Hideyuki Tanakaさんのツイート: ">TOP500はスパコンを構成するユニット1個の理論上の性能から全体の数値を推測し、100倍だなとか1万倍だななどと計算しています。 >たとえ本物のコンピュータは1個だけで他は段ボールを並べただけであっても、TOP500では世界一を取れます。 違います。Top500は巨大な方程式を解くタスクの実行性能です"
Hideyuki Tanakaさんのツイート: "ちゃんとスケールするように構成しなければTop500で世界一は取れません。現在のスパコンでは、特にネットワークがボトルネックになってくるので、ほかの典型的なアプリと比べても少なくないネットワーク帯域が必要だと思います。"
Hideyuki Tanakaさんのツイート: ">中国のスパコンは段ボール製なのか、「神威太湖之光」や「天河2号」は一度も全体を稼働させたことがありません 全体というのがよくわからないですが、昨今の巨大システムでは常時数%は死んでいるのを許容する方向性なので、そういう意味ではそうかもしれないけど、基本的には全系動いてましたよ。"
Hideyuki Tanakaさんのツイート: ">一つ一つのユニットが低性能でも数をたくさん並べれば数字が大きくなるのがTOP500で、しかも実際にユニットが存在するか誰も確かめていないのです。 二度目だけど、これは嘘です。"
Hideyuki Tanakaさんのツイート: ">もうひとつのGreen500はユニット単位の省エネや計算速度を競うもので、実はこれが本当のスパコンの性能です。 Green500のスコアっていうのは、Top500のスコアを単に消費電力で割ったものです。Top500が無意味というなら、自動的にこれも無意味です。この人Green500のことわかってないでしょ"
Hideyuki Tanakaさんのツイート: ">中国スパコンがやっているのは「市販のパソコンでも数多く並べれば合計で世界一」のような手法で、だから段ボールコンピューターになります。 そういうのやってるのはXeonとV100ならべてるやつに行ってあげて欲しくて、中国のTaihuLightは独自アーキの独自チップ並べてるからその批判はおかしい。"
Hideyuki Tanakaさんのツイート: ">日本がやっているのはユニット単位の性能を向上させて少ないユニット数にする手法で、このほうが実用的です。 そんなことはやっていませんね。ポスト京のチップを一度見てみるといいですよ…。"
Hideyuki Tanakaさんのツイート: ">Green500は日本製のスパコンが上位を独占していて、すべてが実際に稼働し利用されています。 これは好ましいことだし、まあそうあってほしいんだけど実際にはその中の最大級のシステムが、なぜか殺されましたね…"
Hideyuki Tanakaさんのツイート: ">中国の「神威太湖之光」や「天河2号」は先ほど書いたように製造以来現在まで、一回もユニット全体を稼働した事がありません。 天河2号はしらないけど、神威太湖之光は実際に動いていましたよ。まあこんな記事に対して超絶今更だけど、一体どういう根拠なんだろ。"
Hideyuki Tanakaさんのツイート: "(´・_・`)いやしかし一行ごとにでたらめが書いてあるこの記事やばすぎひん?"
Hideyuki Tanakaさんのツイート: "いや大げさじゃなくまじで1行ごとにうそが書いてあるんだけど、このブログのほかの記事はどうなんだ(´・_・`)…詳しくない分野はわかんないから、詳しくない分野でこういうブログがあるんじゃないかと思うと、怖くなってきたゾ…(´・_・`)"
Hideyuki Tanakaさんのツイート: "よく誤解される?のか変なプロパガンダ流してる人がいてそれの影響受けてる人がいる?のか知らないけど、Top500が単純な演算の繰り返しで、Graph500が複雑なタスクとかいうのは、全然そんなことはなくて、Top500はLU分解、Graph500はBFSというどっちもシンプルなアルゴリズムで、"
Hideyuki Tanakaさんのツイート: "1コアCPUで動かすならどっちも10行程度のCのコードで書けるものです。並列化する際にボトルネックになるところが違ってくるので、計算機のどの辺が一番先に問題になってくるのかを測る指標の一つとして使われとるっちゅー話ですよ。Graph500が一番ボトルネックになるのはネットワークですね。"
Hideyuki Tanakaさんのツイート: "Graph500では演算性能はほとんどいらないので、スコアはシステムの総インターコネクト帯域にほぼ比例すると思われて、京はそういう意味では6次元メッシュトーラスのTofuがいまだに世界1という話で、ほかのスパコンはそこまでのネットワーク帯域はいらないだろうという判断になっているという話では"
Hideyuki Tanakaさんのツイート: "というか、Graph500、いったいどういうアプリに関係する性能なのか(ビッグデータ云々と宣伝してるけど、こんな恣意的に並列化しやすい形した無向グラフを単にBFSすることなんてあるか?)謎なのか?、500という名前なのにエントリーが248しかないのを何とかしてあげて"
Hideyuki Tanakaさんのツイート: "単一始点最短パスの要するに枝に重みがついたバージョンも最近できたんだけど、エントリー数が21しかないので何とかしてあげてほしい(´・_・`)"
Hideyuki Tanakaさんのツイート: "Green Graph のエントリー復活してた(´・_・`) IBM Moscow && MSU Alex Kolganovなるサイトのマシンがトップなのか(´・_・`) https://t.co/eE7RtJJZZh"
Hideyuki Tanakaさんのツイート: "しかしスケール30(わずか10億頂点)、1ノードのマシンがトップ…というかランキングのほとんどが1ノードっていうの、完全にコンセプトとして破綻していますよね…"
Hideyuki Tanakaさんのツイート: "10位にマックブックプロが入るスパコンベンチがあるらしいな(´・_・`)… "
Hideyuki Tanakaさんのツイート: "スパコンの実用性能ランキング10位にマックブックプロが入ったらしい(棒)"

くそでかいイリエワニがみたい!@転職活動中さんのツイート: "https://t.co/7Yx3Y2RYSr ベンチマークのとり方うんぬんの話が出たので、そっとこれを置いておきます。"
How to run a stable benchmark // Speaker Deck
SODA Noriyukiさんのツイート: "RTしたスライドにもちょっと出てるけど、環境変数の量の違いでスタックのアライメントが変て性能が変化したみたいな話もあったなあ。"
前田敦司さんのツイート: "https://t.co/dxsyGqWs34 に同じような話があります.(図1(b)や,4.2節)… "
Producing Wrong Data Without Doing Anything Obviously Wrong!
Hideyuki Tanakaさんのツイート: "どのベンチにするかと言っても、結局は理論演算性能とB/F比とネットワーク帯域のバランスで一番先にボトルネックが来たとこに引っ張られるだけなんだから、この三つの要件どこが一番厳しいのかもアプリにもよるから、どれそれが実アプリ性能だなんて宣伝してたらそれは全部嘘ですよ。"
Green500 Lists | TOP500 Supercomputer Sites
TOP500 Lists | TOP500 Supercomputer Sites
SODA Noriyukiさんのツイート: "今回のIntelの件で言うと、firmwareの更新前と後での比較なので、ハードウェアその他含め厳密な比較が容易にできるのでこの論理じゃ弁護できないと思う。… "
SKSの申し子さんのツイート: "ベンチマーク非公開ねぇ.俺も反対ではあるんだけど,ベンチマークって正確に取るのって難しいんですよね.特に世の中には他の人が再現出来ないベンチマーク記事を公開する人はそれなりにいて,更にセットアップとかが間違っていることが結構あって,そしてそれを信じてしまう人が結構いる.悩ましい…"
SODA Noriyukiさんのツイート: "ベンチマークの取り方が悪いのって確かにホントに多いんだけど(例えばディスクベンチでディスクじゃなくて、カーネルの持つpage cacheからユーザ空間へのメモリコピー性能計測しているのってホントによくある)、今回のケースでは、そういうベンチマークで差がでてもやはり問題なわけで。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windows系でも、本当に多いのですよね、これ。 さらにキャッシュの影響を排除した後も、HDDだと物理的なアロケート位置の変化=速度変化、SSDだとユーザ要求以外の処理がSSD内部で不定期に発生(+温度問題)などは、試行回数を増やして誤差を減らすしかなかったり。… https://t.co/zRdsLEqCCz"
SODA Noriyukiさんのツイート: "ディスクの割り当てブロックの問題は、umount して毎回 newfs して mount し直してから測るとか、UNIX系なら raw device で計測するとかいろいろあるけど、SSDのケースは厳しいなあ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "HDD/SSDのデバイス性能を調べたい時はその通りなんですが、一方で、コピーソフトの性能を調べたい時は、真っ新な状態でのテストだと実用的な計測になりづらいんですよねぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、適度に使用したファイルシステムのrawブロック群を、ddで毎回復元してから…が最強なんでしょうけど、1回のテストに掛かるコストが厳しい(笑)"
SODA Noriyukiさんのツイート: "newfsまでするのは稀で何回か測ってバラつきが少なく整合性のある結果が出ればそれでヨシにしちゃうことが多いです。自分で測る時はraw deviceに対するバンド幅/レイテンシ計測みたいに簡単に測れてベースラインとして使える値は必ずとるんですが、人にお願いするときにはそれも面倒なことがorz… https://t.co/uxQe5y68ez"
Huawei製スマホで3DMarkの自動ブーストが発覚 - PC Watch
OPPO製スマホのアプリ名による3DMark最適化は「ある意味妥当」 - PC Watch
本の虫: コンパイラーを負かす
404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark
Kazuho OkuさんはTwitterを使っています 「ベンチマーク取る際に「CPUの割り当てを〇〇にして、クロックを△△Hzに固定します」って言うと、その時点で「えっ」って言われることがあって、こっちが「えっ」ってなる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ロードアベレージ見る場合とかクロック固定必須じゃないですか...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ひさしぶりにテスト機にログインして「おっそいなー」とか思ってると、CPUコア1個のみ、1GHz固定、みたいな状況のまま、前回の実験から放置されてるとか、ありがち」 / Twitter

B/F比

B/f値とキャッシュ | Pravdaの日記 | スラド
チュートリアル資料2.key
第一原理計算入門 計算機科学 理解への道
SC11 - 京の技術を向上させた富士通の新スパコン「PRIMEHPC FX10」 (1) ピーク演算性能が前世代比で約2倍に向上したSPARC64 IXfx | マイナビニュース
0613watanabe.pdf
どの分野の開発難易度が低いのか?(最新HPC事情に思うこと。)
SODA Noriyukiさんのツイート: "そりゃ勿論、メモリバンド幅を向上させること自体は(それが妥当なコストでできるなら)望ましいことだからですよ。京の次世代がHBM載せるのもそういう理由。ただし、コストは上がるし、トレンドとしてメモリバンド幅を要求するアプリは徐徐にHPCの主流から外れていくという話です。… https://t.co/5FHRUypJb9"

ptrace

るくすさんのツイート: "多分ptraceレベルで出来ると嬉しいのって、breakとかmalloc/freeみたいなツールによって決められたタイミングごとのインスペクトを回避してオレオレができちゃう所だと思っていて、それってなんだろうなぁ...結局よくできたトレーサーで出来ちゃうんじゃないの?とか"
Kazuho Okuさんのツイート: "言語によらず手軽に障害解析できて便利… "
るくすさんのツイート: "そこを推すのもありですねぇ… "
Kazuho Okuさんのツイート: "あとはオーバーヘッドが小さくて実環境で使えるところですかね。 https://t.co/AJFflFrYok にあるように、プロファイルを取り続けるとか… "
DeNAインフラの今とこれから - 今編 -
るくすさんのツイート: "そう。インフラ屋さんとかいかにもケースに応じたプロファイラとか書いてそうだなと思ってたんだけどやっぱやってんすね"

OProfile

Shirouzu Hiroaki(白水啓章)さんのツイート: "ぬぬ、最近は oprofile を debian の apt 経由でインストールできないのか…"
OProfileの使い方備忘録 - hogeなlog
Oprofileによるボトルネックの調査 メモ - Qiita
第23章 OProfile - Red Hat Customer Portal
About OProfile
OProfile - A System Profiler for Linux (News)
Oprofile | IT用語辞典 | 大塚商会
Oprofileを使用してプロファイルを取る | 組み込みLinuxのArmadilloサイト
OProfile - Wikipedia
OProfile | 日経 xTECH(クロステック)
openSUSE 13.1: 第8章 OProfile—システム全体に対するプロファイラ

ipftrace

ipftrace: A Linux Function Tracer for Network People - Speaker Deck
FadisさんはTwitterを使っています 「SystemTapは指定したカーネル関数の実行を見張るが対象がはっきりしないと使いにくい→ftraceはカーネル全体の関数を見張れるが、出力が多すぎてつらい→ネットワーク屋が見たいのは特定のパケットが通った関数だ→ipftrace #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「ipftraceの戦略: Linuxでパケットを処理する関数はだいたい引数にsk_buffをとる→この構造体を引数にとる関数を全部フックする→ターゲットのパケットにマークをつけておいて、フックはsk_buffにマークが付いていたら出力 #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「iptablesのアクションでマークをつけるからiptablesのルールでいろんなマークのつけ方が出来るのめっちゃ賢い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「Linuxカーネルはキャッシュヒット率を上げるためにsk_buffをできるだけ使いまわそうとするため、アドレスが再利用されてトレースが続いてしまう事がよく起こる、と #kernelvm」 / Twitter
YutaroHayakawa/ipftrace2: A Linux function tracer for network people

SystemTap

SystemTap - Wikipedia
SystemTap とは何ですか? どのように使用しますか? - Red Hat Customer Portal
SystemTap ビギナーズガイド
SystemTap
第14回「 SystemTap ノススメ」 | NTTデータ先端技術株式会社
SystemTap メモ - myokotaの日記
Linux のイントロスペクションと SystemTap
systemtapを使った動的追跡 | Let's Postgres
SystemTap - Wikinote
Linux向け追跡ツール「SystemTap 4.2」リリース | OSDN Magazine

DTrace

まさみさんは語りたいさんのツイート: "モダンと言っていいのかどうか・・・方向性が違うのだと思う(誰が使うかを含め)。ちなみにR社内ということは、Linuxに移植されたDTraceと言ってるのはSystemTapのDTraceラッパーですね。DTraceスクリプトをSystemTapスクリプトに変換してから使う。… https://t.co/wRpBgI7kYv"
まさみさんは語りたいさんのツイート: "これややこしくて、実はO社の人は今でもDTraceをLinuxに移植しようとしているんです。あとDTraceはアドミンがシステムモニタをスクリプト化するためのツールだけど、Linuxのftraceとかはカーネルハッカーがデバッグするためのツール。eBPFはその中間かなあ。"
まさみさんは語りたいさんのツイート: "なぜこうなるかと言うと、DTraceはトレースするイベントの種類が規定されている(そうでないとスクリプトが環境依存になってしまう)けど、Linuxはカーネル実装をコロコロ変えたいから、そこで代表的な挙動が規定されてしまうと困るわけです。デバッグ用途ならそういう規定は緩くてもいい。"
まさみさんは語りたいさんのツイート: "つまりOSの代表的な挙動というものを想定するか、それともデバッグ用途と考えて挙動の規定はいつでも変わると想定するか(あくまで可能性や自由度の話)、それによってツールの性質が変わる。挙動を想定する場合、実装にまで踏み込んだイベントは規定できない。"
まさみさんは語りたいさんのツイート: "でも実装に踏み込んだイベントを導入しなければOS自体のデバッグ用途には使えないので、どうしても2種類の実装が必要になってくる。eBPFやSystemTapはスクリプト言語は規定するけど、イベントは規定していないはず。これは苦しい解で、実装が変わるとスクリプトが動かなくなる可能性はある。"
まさみさんは語りたいさんのツイート: "今私自身はftrace/probe-eventのメンテナンスをしているけど、これは本当にデバッグ用途だけを指向しています。OS実装のデバッグをするためにbreakpointを追加したいという用途。はっきり言ってアドミンには不向きなツールだけど、OS開発には役に立つ。"
まさみさんは語りたいさんのツイート: "逆にアドミン向けにDTraceみたいなのが必要になるとは思うけど、それをネイティブに実装するか、SystemTapやeBPF上に実装するかは、どれだけネイティブ実装するメリットがあるかという話になるんじゃないだろうか。(個人的にはいくら聞いてもそのメリット部分がよくわからない・・・)"
Takafumi Yonekuraさんのツイート: "Dtraceでdebugに使うのはほぼfbtプロバイダ だけで、スクリプト用途はシステム系のプロバイダで割とうまく共存してると思います… "
Takafumi Yonekuraさんのツイート: "でも、fbtプロバイダは若干貧弱なので、もう少しリッチな独自プロバイダが欲しいな、となると途端にめんどくなる印象。"

blktrace

blktrace User Guide
VOYAGE GROUP エンジニアブログ : blktraceによるI/Oトレース
6.3. ツール
blktrace(8) - Linux manual page
Etsukata blog: blktrace で block IO の分布を可視化する
Disk I/O性能測定するときに活躍する道具たち - お菓子食べる部

ftrace

Qiita

ftraceについての勉強メモ - Qiita
Ftraceでカーネルの一部の処理を追いかける方法 - Qiita

Twitter

まさみさんは語りたいさんのツイート: "ftracetestで出来ることに限界があった。(bpfとperf関係はツールが必要・・・)"
まさみさんは語りたいさんのツイート: "うーん、ftrace内部をkprobeでトレースしてみてるけど、イベント記録中の処理からは多重にイベント記録が出来ないのか。取り敢えず各所に置いてみてどこを経由してるかだけでも調べるなど。"
まさみさんは語りたいさんのツイート: "ftraceをコンテナ内部から操作した場合、pid filterが使えないことに気がついた。(当たり前だが) コンテナ内部から使えちゃう時点で問題な気がしなくもない。"
まさみさんは語りたいさんのツイート: "clangでLinuxのクロスコンパイルする話を聞いていたらftrace on armを有効にするとビルド失敗するっていう話があって、それmcountのシーケンスがちゃうからやでーっていうコメントしてた。"
まさみさんは語りたいさんのツイート: "recordmcount.cっていうベタなプログラムを走らせて、各アーキテクチャ毎のmcount呼び出しシーケンスを確認しながらnopに変えるという処理をしているけど、コンパイラ実装が違うとシーケンスが違うから失敗する。あとはclangがどういうコード生成するのかに依存。"
まさみさんは語りたいさんのツイート: "clangを使ってビルドしても、自動的にlldは使われない(gccのldが使われる)ので並列リンクは実行されないけど、誰かがそれとは別にlldを使うパッチを書いているらしい。探さないと(主にDeveloperBox向けに)"
まさみさんは語りたいさんのツイート: "ftraceの中でmutex依存関係の地獄に悩まされている。リソースをget/putしない造りだからだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、Linuxだと簡単な統計データを取る用途だったら、DTrace要らないからなあ。既にevent-based histogramはftraceに実装されている。"
まさみさんは語りたいさんのツイート: "kprobesをworkqueue関係の関数に突っ込んで10分ぐらいしたらrcuでエラー起きるっていうバグが報告されているんだけど、どうもredhatカーネルの上だけで起きているのではないかという気がする。あとこのあたりの関数は突っ込んでも全てftraceになるんだが・・・。"
まさみさんは語りたいさんのツイート: "念の為全部+5したアドレスでもプローブしてみた。10分待ってみよう。"
まさみさんは語りたいさんのツイート: "これ豆知識だけどx86-64のftraceは基本的にfentryの機能のため関数の最初5バイトにjmp命令が入るので、kprobesでその5バイトを避けると確実に命令境界になる上ftraceの対象にならない。"
Kazuho Okuさんのツイート: "trqce-bpfccはコマンド指定して動かすオプションがないからbpftraceをsnapで入れたらオプションはあるけどexecveが見つからんとか言うから自分でビルドしてデバッグするかと思ったらubuntuのclangの付属ファイルが足りなくてupgradeで直る予定って書いてあったからアプグレしたけもダメ"
Kazuho Okuさんのツイート: "MySQL が Userspace DTrace Probe を deprecate する決断をした翌年に linux 界隈が bpftrace で(DTrace 2.0だって)盛り上がるの皮肉だなぁ"
Kazuho Okuさんのツイート: "bpftrace、masterで-cオプションがだいたい動くんだけど、probeが有効になる前に実行開始するから取りこぼしが発生してて、単純にexecveを遅延するとプロセス起動前だからprobeがセットできなくて、つまりはptraceでexecveタップしてほげほげやればいいんだけどめんどくさい"
まさみさん⋈語りたいさんはTwitterを使っています: 「ふーむ、ClangにShadowCallStackという機能があるのか。これのkernel implementationでkretprobesが使えなくなるっていう話が出ている。 https://t.co/a1DWiGQGYt」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「スタックとは別の場所に影のコールスタックを用意しておいて関数呼び出し元を記録、戻る時にスタックを使わず、影のコールスタックを用いるとのこと。あれ?これfunction graph tracerじゃね?」 / Twitter
function graph tracer - Google 検索
まさみさん⋈語りたいさんはTwitterを使っています: 「kprobesを関数の頭にセットすると自動的にftraceが使われる機能は実装されてる。ただしkprobeの呼び出しに変更するためのトランポリンが使われる。今回のは、これをbpfにも適用できるよう変更したってことかな。多分レジスタセットを作らずにBPFで使うcallar savedレジスタだけ保存するのだろう。」 / Twitter

トレーサ関連に大きな進展、ftraceがデファクトに?(1/2) - @IT
3.8. レイテンシ追跡用の ftrace ユーティリティの使用
6.5. ftrace
https://www.kernel.org/doc/Documentation/trace/ftrace.txt
組み込み Linux - ftraceのトレースログをお持ちいただくには
ftraceの仕組みとアーキテクチャ - テストステ論
第4回 Linuxイベントトレース最前線:LinuxCon Japan 2013 Preview|gihyo.jp … 技術評論社
Ftrace と Systrace - steps to phantasien
perf, ftraceのしくみ - 睡分不足
2019年4月26日 関数トレースをグラフィカルに実行する「KernelShark」,正式リリースに向けロゴ募集中:Linux Daily Topics|gihyo.jp … 技術評論社
Fadisさんのツイート: "KernelShark初の安定版となるバージョン1.0が近くリリースされるらしい。KernelSharkはLinuxカーネルのftraceをtrace-cmdでダンプした物をGUIで表示するツール。カーネルの関数のcallやreturnがいつ発生したかをズームしたりフィルタしたりして眺めることができる https://t.co/xpXTZdD2jE"
KernelShark 1.0 Soon Being Released For Visualizing "Trace-cmd" Linux Kernel Tracing - Phoronix
perf, ftraceのしくみ - 睡分不足 (1)

バウンド

:matsuu:さんのツイート: "CPUバウンドならWSLの方が高速、I/OバウンドならVirtualBoxの方が高速。なるほど。 / “Windows 10 WSL vs. VirtualBox Ubuntu Performance On An Intel C…” https://t.co/dFgfewLApr"
チャネル・コントローラ - Wikipedia
コンピュータ・アーキテクチャ - Wikipedia
CPUバウンド - 英和辞典・和英辞典 Weblio辞書
CPU boundの意味 - 英和辞典 Weblio辞書
I/O boundの意味 - 英和辞典 Weblio辞書
サーバ負荷を確認する方法 - Qiita
CPUバウンドとGPUバウンド – ひにけにGD
Node.js - nodeでのCPUバウンドな処理、分散処理への考え方について(child_processを使う?clusterを使う?)(31995)|teratail
CPU バウンド・サービス
コマンドによる「負荷」の原因切り分け
I/O バウンド・サービス
サーバ/インフラを支える技術4 Linux単一ホストの負荷を見極める 2 負荷とは何か - by shigemk2
Clojureのいろんな並行処理の使い分け - tyano's Techlog
サーバが重いときの対策メモ - 目の前に僕らの道がある

Twitter

Intel PCM

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 64bitでドライバ開発は署名問題で若干面倒というのはあるが、それ以上に、そもそもIntel PCMをVS2017+WDKでビルドしようとすると、あちこち手直しが必要で骨が折れる。 Intelさん、最新VSに追随する気が薄いのかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "リリースビルドプロジェクトに_DEBUGが付いていたり、CLR必要なものとそうでないものが入り混じっていたり、warning大量発生したり…linuxやMacと共通コードしようと頑張っている風だが、だったら極一部だけCLR利用とか中途半端感が。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ようやくIntel PCMドライバをカーネルに入れて、関連サービスも登録して、パフォーマンスモニタで監視。だが、いまのところ決め手になる情報は取れていない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記の図を解説すると…。 キャッシュライン版とAVX2版のIPCは同レベル。 そして、AVX2のほうが L2/L3のキャッシュミス率はずっと高い。 しかし恐らくReadキャッシュのために実効的なペナルティとしては、キャッシュライン版の方が影響が大きく、AVX2の方が2倍高速だった、というところ。… https://t.co/TwTUKx387Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この時点ではメモリ帯域用のドライバが入っておらず(これはgithubのgoogle配下にあるsysを入れる必要)、Read/Write帯域は0のままだった。"

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi bcc-toolsにはいってるcachestat、キャッシュメモリの利用状況みるのによさそうです。ディストリビューションによって微妙に名前がちがったりするのが難です。 https://t.co/bKfHTxjsPA」 / Twitter
sat📒さんはTwitterを使っています 「@moriwaka ubuntuだとbpfcc-toolsのようですね。べんりそう。ありがとうございます。perfよりはとっつきやすそう」 / Twitter
H1karu SA1T0@クソ雑魚インフラエンジニア🐈さんはTwitterを使っています 「linux performance tool 👀 メッチャ良いなこの資料 https://t.co/nnCe2M9J4z https://t.co/YHVX2LAx5W」 / Twitter
linux_perf_tools_full.png (3000×2100)
令掛ベインさんはTwitterを使っています 「Iteratorがループごとにアロケーションするのが気になったので、ベンチマークを取ってみた。ループ中にはアロケーションしないような抽象と比較した。数百万回のループでこの差なら許容範囲っぽい / https://t.co/amtG9ktKsc」 / Twitter
playground/2022-01-18-iter-loop-benchmark-ts at 00a94dbc6d451bd155dabd3fa0417e0f6fc9df72 · vain0x/playground

RyotoさんはTwitterを使っています 「gdbやstraceはptrace(2)を呼んでて、実行を止めてしまうので副作用が大きい #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm 代表的なツール gdb, strace: ptrace(2)を利用(実行パフォーマンスに影響大) perf: perf_event_open(2) (ユーザーランド側の処理が多くパフォーマンスに若干影響あり) bpftrace, BCC: bpf(2), perf_event_open(2) (カーネル側で実行されるのでオーバーヘッドが小さい)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「ftrace/systemtapもフィルタリングをカーネルで実行するよ。 #kernelvm」 / Twitter
各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安 - Qiita
計算の高速化のために必要なこと: メモリの観点 - Qiita
𝘼𝙧𝙧𝙖𝙮-𝙨𝙖𝙣さんはTwitterを使っています 「このページ、知見の塊やんけと思ったら、詳解システムパフォーマンスの著者だった。 https://t.co/uGQUy63JyN」 / Twitter
Brendan Gregg: Overview
ytakanoさんはTwitterを使っています 「複雑性の科学、大まかなパラメータはわかるんだけど、それをパフォーマンスチューニングとかにどう活かせば良いのかがわからない。」 / Twitter
ytakanoさんはTwitterを使っています 「ある構造にフラクタル性を持たせて、1次元上のスケールでパフォーマンス向上させるとかになるのかな。」 / Twitter

遅いコードの改善

herumiさんはTwitterを使っています 「@kazuho @syohex 遅くなってるときはfrontend_retired.dsb_missの値が極端に大きい。 https://t.co/TiuEAKRAI2」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex ありがとうございます!!!!!! これはつまり、uop cacheでコリジョンが発生してるってことなんでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱり gcc -O3 に頼るとコードがデカくなりすぎるから、 -O2 で同等に動作するように、自前でループあんロールとかするのかなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「uop cache collision ってそういうことだよね。facebook の bolt とか使うとマシにはなるんだろうけど、コードサイズでかいのはそもそもよくない」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazuho __attribute__((hot)) 使うとかどうでしょう? 特定の関数だけ、他より積極的にアライメント取ってくれないかな。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho @syohex コリジョンというか、ptls_fusion_aesgcm_encryptの最内ループでアンロールできてないところが足かせになってパイプラインがつまっていた感じです。 こんなふうにしたら大分ましになりました。 https://t.co/Qz13rOFyH9」 / Twitter
unroll · herumi/picotls@cadd1e4
herumiさんはTwitterを使っています 「@kazuho -O3でも先程の手動unrollはread-modify-writeが並列実行しやすそうに並んでました。いくつか試す限りでは顕著に遅くなるということは減ってるようです。https://t.co/Byh0OTf8tq のO3-before.txtとO3-after.txt 変動が大きいですが元のコードはストールすることが多いです(with-2.png)。」 / Twitter
picotls/result at master · herumi/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi ありがとうございます。手動アンロールとuop cacheへのプレッシャーという示唆をいただき https://t.co/uzbKp3SzmI を作りました。僕の環境で、手動アンロールは -O3 の自動アンロールと速度差がなかったのですが(続く)」 / Twitter
Optimize for size, while unrolling the hottest loops by kazuho · Pull Request #308 · h2o/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi 、大きなループの手動アンロール廃止と組み合わせることで、半分以下のコードサイズで同等の速度がでるようになりました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi 当初の問題 https://t.co/gh0JxvBq4A についても、コードサイズが大きく変わったから確かなことは言えませんが新コードの -O2 -fno-unroll-loops では問題が発生しないことは確認できました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex このスレにやってきた人が解決策にたどりつけるように貼っておきます。問題を修正したPRはこちら https://t.co/uzbKp3SzmI 原因は端的にいうと、コードがでかいわりに無駄が多くて、あちこちに負荷がかかっていたことでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今はCPU系の高パフォーマンスのためには、disasで眺めても、perfでキャッシュミスを観察するだけでもダメで、遂に uop-cacheの効きを観察せねばならんのか、、、面白すぎる(笑) StackOverflowにも uop-cache絡みの話が出ていた。 https://t.co/KdcRmh496p https://t.co/24yQj82qp3」 / Twitter
performance - 32-byte aligned routine does not fit the uops cache - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そのうち、コードを書いていると「これだとuop-cacheの効きが悪くなりそうだ」とかピンと来るようになるのかしらん? 下記レベルやTLB, L1, pagingなどは意識していたが、uopレベルはさすがに気にしていなかった。 https://t.co/X5UIyCl0nH」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「しかし(データならともかく)プログラムコードのアドレスがちょっとずれただけで30%も性能が落ちることがあるなんて、イマドキのCPUでの最適化作業って辛いすぎ… https://t.co/2PnxVPe5HH」 / Twitter
Improving LLVM-Generated Code Size for X86 Processors - Ansari-Code-Alignment.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @herumi @syohex このあたりの コードの32byteアライメント問題で良いのですかね。 https://t.co/3QCZHChS9i https://t.co/KdcRmh496p」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho @herumi @syohex https://t.co/87fJsE6Yd1 という話なので DSB が問題ってとこまでは間違いなさそうです。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「uop意識したループのコツ解説があった。 コード整列に問題がある場合、1-2clock / iterのペナルティがある感じかな…最悪値は 1ループのuop数が23,24の場合で、6 → 8clock / iter となり、33%の性能劣化と。 (この周辺以外だと差は相対的に小さい) https://t.co/JA8qYHjy8C https://t.co/5w9f7a5DzI」 / Twitter
assembly - Is performance reduced when executing loops whose uop count is not a multiple of processor width? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ループ内を融合済uop数でカウントして(一覧資料あり)、33~63opsで4N+1 や 4N+2 ならループ展開したほうがいいとか、そこまでやるか的なコツが書いてある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CPU外部から見えないはずの uOp / uOp-Cache が、僅かな命令位置依存の性能変化でその輪郭が顕在化する様子は、物理学で直接見えない / 取り出せない存在を間接的な輪郭から推測 / 確認する姿と似ているかも(笑)」 / Twitter
herumiさんはTwitterを使っています 「みなさん、いろいろ情報ありがとうございます。 Intelの最適化マニュアル3.4やB.5.7章にフロントエンドのストールの細かい話や調査方法が載ってるのですが、複雑です。元の問題は@kazuhoさんが解決されてるので時間を見て調べてみようと思います。 https://t.co/LmxipbOUzs https://t.co/bfvojMN3zK」 / Twitter
xxqiさんはTwitterを使っています 「DSBだとこのエラッタを踏んでいそうな気が https://t.co/dmuo3bW6IG https://t.co/YKhJXwwMiH」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/VnDfTOsrIf 命令が間に合わなくなるの、 PS3 の cell のバグ(?)を思い出した。あれも 128B の空間に load/store がたまたま集まってしまうと命令フェッチが間に合わなくてストールするとかで、一切使ってない関数を消したら遅くなったりして大混乱してた思い出 https://t.co/sWA0ZzqyBP」 / Twitter
Hack the Cell - なんとなく全く使ってない関数消したら速くなった/遅くなった!

histric

histric-1

Kazuho OkuさんはTwitterを使っています 「イベントループが何かの処理でひっかかることってあると思うんだけど、linuxのプロファイラでその原因を特定することってできるのかな。gprofが定期的に集めるスタックトレースのスナップショットに、イベントループの何回目の呼び出しかを記録しておけばできそうな気がするけど」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出てこなくなってからが本番やで?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出て来てるところがメモリコピーとかの必要なコストだけになって来てから、もう、アイデア勝負。どれだけ汚くない最適化をほどこすか。」 / Twitter
0から始めるNode.jsパフォーマンスチューニング | kohsweblog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「プロファイリングとメトリクスの違い: メトリクス: 短い間隔でとられる、自由に選ばれた時系列データ プロファイリング: あらかじめ決まった指標を長い期間でとられる、スタックトレースと紐付けられる統計 #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「自由に」と言うより「自発的に」と言うべきか #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうプロファイリングの結果表示方法初めてだ。網羅的で分かりやすい #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「継続してprofilingするために、バージョンとrevisionをビルド時に埋め込んでおこう。」 / Twitter
k0kubunさんはTwitterを使っています 「perf-profile既に爆裂に便利だけど、(インライン化されてて存在しない) インライン化元のフレームをdwarf読んで計算してカウントできれば更に便利な気がするが、できるのかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これ、当初は割と荒いサンプル取ってて 「パケットサイズが1320バイト超えるあたりで特性が変わるのは何かTCP/IPスタックにMTUサイズに近いパケット向きの最適化が入ってるんじゃないか」 みたいな推論してたし、統計から裏にあるモデルを推論するのは常に注意が必要。 https://t.co/7wiU0l5Ejp」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ワークセットが27KBあたりになるあたりで数%速度が低下するの、これL1キャッシュの壁なんだろうなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そして、ソフトウェア実験だから仮説を確認するためにサンプル増やした結果、当初の仮説を棄却することができた、という話。他の分野だと、なかなかこうはいかない。 なお、結論としては、パフォーマンスカウンタの値も見ずにL1キャッシュのせいにするようなエンジニアは信用ならない、です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックプレッシャーなしでデータ書いてるからメモリ不足に陥りそうなものなのに、なんでCPU利用率100%でサチるのかなーって思ったら、バッファ量が増えてmemmoveのコストが支配的になる、という変なバックプレッシャーが働いてた」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Ryzenに対する最大の不満は、linuxで使う際にCPUクロックの細かい制御ができないところです(できないよね?)。ベンチマーク条件いじりづらいじゃん!」 / Twitter
Intel VTune Profiler の使い方 - Qiita
144447146.pdf
ドッグさんはTwitterを使っています 「tracy っていう C++ のフレームプロファイラ便利そう | 'wolfpld/tracy - Bitbucket' https://t.co/wZx7l0ndJx」 / Twitter
wolfpld / tracy — Bitbucket
New RelicがJFRを利用したリアルタイムJavaプロファイラを提供
[Ann] ABBench: Lightweight Microbenchmarking Library | Weekly news about Pharo
hurutoriyaさんはTwitterを使っています 「記事でも参照させていただいた @hagino3000 さんとの会話、もう一年前なのか。時が経つのは速い。」 / Twitter
システムの応答速度は本質的な価値提供であることを示す A/B テストの実例 | Shunya Ueta
hurutoriyaさんはTwitterを使っています 「システムの応答速度は速いほど正義ですが、実際にどれ位速くなれば定量的にどの程度ビジネスインパクトがあるかを示したA/Bテスト事例についてまとめた。誰もが信じる直感を定量的に検証する姿勢が素晴らしい / “システムの応答速度は本質的な価値提供であることを示す A/B…” https://t.co/RyYIfEm5cZ」 / Twitter
sjiさんはTwitterを使っています 「プロファイラ作ってるとわりといかようにも情報つけたり足したり整形したりできるコールトレースが得られ、このコールトレースというのは簡単にデータ量を沢山手に入れられる比較的有機的な感じのデータであり、なにか面白い使い方があるような気がしているものの思いつかない」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 「20%のコードが80%の時間を使っている」ボトルネック論はほんの入り口で、プロファイラでどのコンポーネントも均等に2%づつ時間使ってるようになってからが本番」 / Twitter

プロファイラのしくみ - Backnumbers: Steps to Phantasien
プロファイル測定 | VA Linux Systems Japan株式会社
VS2017 15.8プレビュー2でCPUプロファイリング、F#サポートが改善
flamegraph プロファイリング - Google 検索

最適化

その他

ポインタ解析

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「"sub-cubic algorithm"というのが出てきて何かなと調べていたら「グラハム数を超える巨大数の一覧」なるページを見つけた。sub-cubicとはここに登場するくらい大きな数を扱うアルゴリズムらしい? https://t.co/jx4elSKCM8」 / Twitter
グラハム数を超える巨大数の一覧 - Wikipedia
kinabaさんはTwitterを使っています 「@uchan_nos cubicというのは3乗のことなので、sub-cubic algorithmというと単に、O(n^3)より速いアルゴリズムくらいの意味だと思います。(行列の掛算や文法の構文解析など、普通にやっちゃうと3乗になるアルゴリズムの話をしてる時に、この単語が出てきます。)巨大数で出てくるsub-cubic graphはまた別の話かも」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@kinaba なるほど。ニュアンスが分かりました。対象はプログラム解析(のポインタ解析)なので、グラフとはちょっと違うのでした。文脈から、おそらくO(n^3)のことだと思います。」 / Twitter

最適化レポートの制御方法 | インテルソフト あるある情報局
/LTCG (リンク時のコード生成)
MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3 | Visual C++ Team Blog
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(2/3) - @IT
富士通C++コンパイラの最適化機能の改善について
メニーコア時代のアプリ性能検討WG 成果報告書 | サイエンティフィックシステム研究会(SS研)
コンパイラの構造を解説 | Shinta's Site
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
bitwise-simd
KAKEN — Research Projects | 2019 Fiscal Year Annual Research Report (KAKENHI-PROJECT-17H01764)
プログラミング言語のPythonの速度は遅いことで有名だが、C言語くらい速さにすることは可能なのか?に対する十河 伸一郎 (Shinichiro Sogo)さんの回答 - Quora
branch folding - Google 検索
const folding - Google 検索
プログラム融合変換 - Google 検索
llvm metadata - Google 検索
kinabaさんはTwitterを使っています 「https://t.co/zbFij803jg (OOPSLA'21) コンパイル時間爆速で、-O1ほどではないが-O0よりかなりいい出力をだすコンパイル技法。要はよく出てくる構文木片を最適化コンパイルした結果を沢山予め生成しておいて、実際のコンパイル時にはレジスタ割当の辻褄とか合わせつつ生成済バイナリをペタペタ並べる」 / Twitter
Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode | Proceedings of the ACM on Programming Languages
kinabaさんはTwitterを使っています 「いやーでも普通のトラディショナルなコンパイラも細かい内部挙動を無視すると本質的には遠目に見ると同じことをしていると思うんだけど、何が一番効いている違いなのかが直感的によくわからんようなわかるような」 / Twitter
ドッグさんはTwitterを使っています 「SIMD を使った CSV パーサのアルゴリズム解説面白い | 'Fast CSV processing with SIMD' https://t.co/8bjyyVMFJe」 / Twitter
Fast CSV processing with SIMD
CPI Cycles ALU - Google 検索
新たなカスタマーカーボンフットプリントツールで、AWS上での処理が環境へ与える影響を軽減

インライン展開

uint256_tさんはTwitterを使っています 「unroll して sccp すると scev とか考えなくてもいいってことか。おもしろい」 / Twitter
インライン展開入門 - Advanced Technology Lab
Inlining 101
monochromeさんはTwitterを使っています 「ruruby、複数のcrateに分割する作業を進めていたら、突然2割ほど速度が低下した。どうも別crateにした関数がインライン化されなくなった様子。明示的にアトリビュートつけることで元に戻った。 コンパイラが勝手になんとかしてくれるもんだと過信してた。」 / Twitter
ドッグさんはTwitterを使っています 「@s_isshiki1969 コンパイラがインライン化するかどうかは関数ごとにスコア付けて決めてるので,翻訳単位またぐとそのスコアが下がってしまうんだと思います」 / Twitter
monochromeさんはTwitterを使っています 「よく考えるとcrateをまたいだインライン化ってどうやっているんだろう。まさか.oファイルからバイナリをコピペするとかじゃないだろうから、LLVMのlink time optimizationの一環としてやっているのであろうか。」 / Twitter
take-cheezeさんはTwitterを使っています 「@s_isshiki1969 bitcodeが.oのどこかに入っててそれを使うんじゃなかったでしたっけ?」 / Twitter
monochromeさんはTwitterを使っています 「@take_cheeze 確かにRustコンパイラのスイッチでbitcodeをembedできて、その情報をLTOに使うみたいですね。 それがcrateをまたいだインライン化に使われるのかどうなのか…(それ以外にやりようがない気がする) https://t.co/yyDYsY14yL」 / Twitter
Codegen options - The rustc book
ドッグさんはTwitterを使っています 「LLVM のインライン化コストの計算,昔見た時よりかなり複雑になってる https://t.co/nx5K8dymph」 / Twitter
llvm-project/InlineCost.cpp at ecd25edfc5d908a1010fdf81419d779e8347de79 · llvm/llvm-project
ドッグさんはTwitterを使っています 「うーん見た感じリンケージは呼び出し箇所が1箇所しかないかどうかのチェックぐらいでしか使われてなかった.(閾値の計算は https://t.co/DhJp8rj7gA この辺)」 / Twitter
llvm-project/InlineCost.cpp at ecd25edfc5d908a1010fdf81419d779e8347de79 · llvm/llvm-project
Shuhei KadowakiさんはTwitterを使っています 「https://t.co/HV7niYPrxM で書いたようにそれなりのローカルな最適化を得るためには、インライン展開がほぼ必須なんだけど、他のLLVMバックエンドの言語がどんなインライン展開をしてるのか気になる。Juliaの場合だとLLVM IRにする前の段階でインライン展開をして (続く」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「LLVMのレベルではinterproceduralな最適化は行わない。一応LLVMにもIPO用のAttributorなるシステムがあるらしいけど、とてもJITで使えるパフォーマンスじゃないらしい。」 / Twitter
monochromeさんはTwitterを使っています 「Rustにおけるインライン化 https://t.co/DDC7qRbumf どこに#[inline]をつけるか? ・private fnには不要 ・crateをまたぐインライン化は標準では行われないので、ライブラリ内の頻回に呼ばれる小さくてnon-genericな関数には積極的につけた方がいい 特にderef,as_refなど ・geniricな関数は文字数」 / Twitter
Inline In Rust

Micro + Macro Fusion

【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
assembly - What is instruction fusion in contemporary x86 processors? - Stack Overflow
MacroFusion in Intel CPUs. | Easyperf
Macro-Operation Fusion (MOP Fusion) - WikiChip
Micro-op fusion in x86 | Hacker News
Microsoft Word - msoC5849.doc - Performance_Characterization_SPEC_CPU_Benchmarks.pdf

分岐予測のヒント

配列化による順次アクセス

MasaTamさんはTwitterを使っています 「'L1キャッシュから値をロードするにはわずか3から4サイクルのレイテンシで済むのに対して、メインメモリから値をロードする時のレイテンシは数百サイクルを要することもある。アプリケーションは典型的には時間的局所性(temporal locality)を示すため、キャッシュによってアプリケーションの性能は"」 / Twitter
MasaTamさんはTwitterを使っています 「"向上する。つまり、メモリ中のある位置が最近アクセスされたのであれば、すぐに再び同じ位置がアクセスされる可能性が非常に高い。(中略)アプリケーションは空間的局所性(spatial locality)も示すことがある。つまり、メモリ中のある位置がアクセスされれば、その近くも近いうちにアクセスされやすい"」 / Twitter
MasaTamさんはTwitterを使っています 「ガベージコレクションより Parallel Programmingの授業を思い出した。キャッシュの観点からも配列は順次アクセスされる場合、非常に効率がいい。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 最近のSDRAMのプロトコルを見ても,順次アクセスの方がランダムアクセスより効率良くなるように出来ています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 データだけでなくプログラムコードも,順次アクセスになるように,つまり分岐なしに処理する方が高速になります。どうしても分岐する場合は分岐予測のヒントを与えると高速になります。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 ちなみにPelemayの高速性の源泉は,リストを配列化して順次アクセスすることと,生成するコードに徹底的に分岐予測のヒントを付与することにあります。」 / Twitter

Fadisさんのツイート: "DPDK、同梱のサンプルプログラムがカジュアルに「指定したレベルのキャッシュまでデータをプリフェッチする」と「分岐予測にヒントを付ける」を活用してて、ネットワークプログラミングには使っているプロセッサに対する深い理解が必要です、的なアレを感じる"
インテル アーキテクチャ 最適化
分岐予測 - Wikipedia
条件分岐のヒントとしてlikelyやunlikelyを指定してみる - Qiita
ハードウェアに対する分岐ヒント 竹下世界塔の計算機よもやま話/ウェブリブログ
C++ SIMD クラスの機能
fnami: Assembler
Tips IA32(x86)命令一覧 補足
repz ret - repz ret
コンパイラは分岐情報を使って何ができますか?
Kazuho OkuさんはTwitterを使っています 「分岐予測器に優しいコードを書くの、21世紀の最適化の鉄則だと思ってる。分岐がほぼ一方に倒れるようなコードにするとか、マージしたあと再分岐みたいなのを減らす(インライン展開のタイミング含む)とか、できることは色々ある」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJIT、型のガードはほとんどの場合成り立つことが期待できるから、それをCPUに伝えると速くなるのでは?と思って、Jccの分岐ヒントプリフィクスを入れてみた。あまり効果は無いようだ(CPUは昔のi5です) https://t.co/SLtf0aVVD6」 / Twitter
Tips IA32(x86)命令一覧 補足
Miura HidekiさんはTwitterを使っています 「mrubyのJIT、間接ジャンプの後にud2命令を入れると速くなったような気もするし、変わらないような気もする」 / Twitter

プリフェッチ

インターネット・ストリーミングSIMD拡張命令
The 3 key challenges in programming for MC
プリフェッチ - Wikipedia
SIMD 演算におけるキャッシュ制御方法とか - kawa0810 のブログ
ASCII.jp:キャッシュの実装方式から見える AMDとインテルの置かれた状況 (2/3)|ロードマップでわかる!当世プロセッサー事情
プリフェッチのサポート

Profile Guided Optimization

機械学習

Nadav RotemさんはTwitterを使っています 「We uploaded our work on PGO without profiles to arXiv. The idea is simple. We let ML insert branch probabilities, instead of relying on a real profile. w/ @iamchriscummins」 / Twitter
Nadav RotemさんはTwitterを使っています 「arXiv paper: https://t.co/u5gG7u25w7 code: https://t.co/EZctLbZGuv」 / Twitter
[2112.14679] Profile Guided Optimization without Profiles: A Machine Learning Approach
nadavrot/pgo_ml

Hideyuki Tanakaさんのツイート: "profile guided optimizationをRustでやるやつらしい(´・_・`) / “GitHub - Geal/pgo-rust: Testing LLVM's profile guided optimizat…” https://t.co/Skcuk2aauP"
Hideyuki Tanakaさんのツイート: "profile guided optimizationをCargoのサブコマンドとしてお手軽にできるようにするやつみたい(´・_・`) / “GitHub - vadimcn/cargo-pgo: Supercharge you…” https://t.co/AoA3QjaQUX"
Hideyuki Tanakaさんのツイート: "実際んとこprofile guided optimizationってそんな速くなんの?(´・_・`)"
Hideyuki Tanakaさんのツイート: "2,3割も速くなるケースもあるみたいだけど自分でやってそんな速くなったためしないんだよなあ(´・_・`)"
[Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
Profile-guided optimization - Wikipedia
Profile Guided Optimizationが.NET Coreでも利用可能に
rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
koie blog : PGO: Profile Guided Optimizationをためしてみた
[Options (オプション)]: [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
ガイド付き最適化のプロファイル
15%の高速化を達成。Windows版「Google Chrome」でMicrosoftのPGO技術が採用される - 窓の杜
Rust で Profile-Guided Optimization やってみた - はやくプログラムになりたい

x86 C

相沢陽菜さんのツイート: "この間、「x86ターゲットだと謎の計算式に置き換えられるけど、ARMだと普通に計算されちゃう。謎の計算式のほうが速いとおもうけど、最適化のための重み的なのあってるのかなこれ」みたいなことを某学生がいってた"
相沢陽菜さんのツイート: "intの変数を定数でわる関数とか作ってO3とかかけるとなぞの処理になるんだよ(なぜそうなるかはよく考えるとわかるらしい"
相沢陽菜さんのツイート: "コンパイラ「 movl %edi, %eax movl $1717986919, %edx sarl $31, %edi imull %edx sarl %edx subl %edi, %edx movl %edx, %eax ret 、はい、5で割れました」 PG「は???」"
hoge.c

Polly

Hideyuki Tanakaさんのツイート: "これなんだろ(´・_・`) / 他1コメント https://t.co/qAZ1G8NXkr “Polly - Polyhedral optimizations for LLVM” https://t.co/l3yHixsSwP"
はてなブックマーク - Polly - Polyhedral optimizations for LLVM
Polly - Polyhedral optimizations for LLVM
Hideyuki Tanakaさんのツイート: "https://t.co/MyJn2qXtl0 ここのグラフ観てるとpollyに掛けるだけでGEMMのコードが死ぬほど早くなってるけどそんなことできるなら使ってみたいしPEZY-SCで動かすコードに簡単に使えたりせんのかな"
Hideyuki Tanakaさんのツイート: "普通に書いたら当然だけどGEMM全然性能出ないみたいだけどpollyに掛けるだけでたぶんハンドチューンされたBLASとかの2割引きぐらいの性能になるとかすごすぎんよお…"
Hideyuki Tanakaさんのツイート: "“Polyhedral Compilation Techniques”なんてのがあるのか / “IMPACT 2017 - International Workshop on Polyhedral Compilation Tec…” https://t.co/qh3AYAad0E"
IMPACT 2017 - International Workshop on Polyhedral Compilation Techniques

マルチグレイン並列処理

マルチグレイン並列処理
ipsj2003_1.pdf
高速化 | オスカーテクノロジー株式会社
IPSJ-ARC02150007.pdf
マルチグレイン並列処理の意味・用法を知る - astamuse
マルチグレイン並列化技術 オスカーテクノロジー | イプロスものづくり

自動ベクトル化

自動並行化と自動ベクター化
SIMD - primitive: blog
Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム - HPC/並列プログラミングポータル - OSDN
コンパイラー最適化入門: 第4回 自動ベクトル化はどんな時に行われるか | iSUS
自動ベクトル化の使用
ロボ太さんのツイート: "環境やターゲットに強く依存するのだと思いますが、科学技術計算に話を限ると、そんなに「コンパイラが賢いコードを吐く」印象はないですね・・・。わりと残念なコードを吐いててがっかりすることが結構あります。ただ、x86系では(他の石に比べて)特異的にコンパイラが賢い印象があります。… https://t.co/AopKgh6kl3"
SODA Noriyukiさんのツイート: "SIMD命令まわりの使い方の話かな?"
梅澤威志/ゆーむさんのツイート: "自分が書きたい分野(画像処理)のコード(のベクトル化)だとコンパイラが全く当てにならないので結果として人間(=俺)がintrinsicで適当に書いたコードの方が圧倒的に速くて悲しい>RT https://t.co/OjAjEKizyI"
ロボ太さんのツイート: "DEC Alphaはコンパイラが賢かった記憶があり、Cell/B.E.は触ったことないけどコンパイラがまともなコードを吐ける気がせず(違ったらすいません)、逆にIA64的なVLIW系ではコンパイラより賢いコードをかける気がしないので、石というか、ベンダーのコンパイラ部隊のやる気に強く依存している気が・・・。"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi こちらは 2015年の Cray User Groupでの Sandia National Labによる Intel・Cray・gccコンパイラの x86ベクトル化の比較報告です https://t.co/3xpbYCAXjX TSVC (Test Suite for Vectorizing Compilers) Benchmark LCALS (Livermore Compiler Analysis Suite) Benchmark… https://t.co/KNYzaZGc2s"
インテル® Advisor ユーザー向けベクトル化リソース | iSUS
2018年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
Elixir におけるC言語コード生成・最適化の試み - Speaker Deck
Exploiting superword level parallelism with multimedia instruction sets | Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
[Abstract: simd] AND [Abstract: generation] AND [Abstract: optimization] AND [Publication Date: (01/01/2000 TO 12/31/2021)] : Search
Posts | Easyperf
TokusiNさんはTwitterを使っています 「SIMD並列化とスレッド並列化って相性が悪いんだな・・・。特に大量のデータを右から左へと流すタイプのプログラムだと、恐らくメモリ律速になって並列化しても伸びなくなる。」 / Twitter

最適化レポート

えびちゃんさんのツイート: "わけわからんすぎる コンパイラしゃんは最適化するときに「これはこんな理由でこんな風に最適化できるんだよ〜」ってコメントをつけといてほしい"
TIke / Ti11192916さんのツイート: "gcc って最適化レポート吐けませんでしたっけ… "
えびちゃんさんのツイート: "うーん、別物を見ていそう(Intel 製だと -opt-report があるらしい?) ループをアンロールしたよ、とかベクトル化したよ、とかくらいの簡素なものしか出なかったです… "

C++ vtable

島鉄雄さんのツイート: "vtable の中身ってインスタンスが生成された時点で決まってるし、オフセットも定数だから、ストールとか発生するはずが無いと思われる。 仮想関数呼び出しが遅く感じるのは、インライン化されない影響の方がデカい気がする。… "
Masayuki Ishikawaさんのツイート: "大昔C++を初めて使い始めた時、会社の先輩がC++の呼び出しオーバーヘッドが気になるって言われた事があります… "
iruka3さんのツイート: "仮想関数のvtableをなるべく手前でloadするようにコンパイラ(か、人間)が工夫するしかないです。 分岐先が直前まで未定のjmpやcallはストールせざるをえない・・・… "
iruka3さんのツイート: "C言語で書けば、(アルゴリズム的に無駄やってないなら)今のCPUは十分早いです。 問題は、C++で仮想関数使い始めてからですねぇ・・・ (呼び出しがレジスタ間接になるけど直前にしかロードされないので投機出来なくてストールとかそんなやつです)… https://t.co/xcVHtcwU4y"
島鉄雄さんのツイート: "パイプラインがストールする案件ってのは、飛び先が分からないからじゃなくて、フェッチした飛び先が実際にジャンプする前に書き換わった時でしょ? フェッチからやり直しになるのをストールという。 vtable の中身は書き換わる事が無いから、ストールしないよ。… https://t.co/XC0Kvm0gMu"
iruka3さんのツイート: "その通り >vtable の中身ってインスタンスが生成された時点で決まってる vtableから、呼び出し先アドレスを得るフェッチをするまで飛び先が分からないので、CPUの命令フェッチパイプラインがストール C++コンパイラが、これを先回りロードしてレジスタに保持出来ればいいけど、そうなるとは限らない… https://t.co/KZv7bsFUoV"
iruka3さんのツイート: "https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); CPUの命令フェッチパイプラインの問題だけであって、命令ステップ数的には、べつにどうということはない感じ"
[雑記] 仮想関数テーブル - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
iruka3さんのツイート: "もしかしたら今のintel CPUは間接分岐命令のアドレス予測をやっているのかもしれないけど。"
島鉄雄さんのツイート: "0:フェッチ→解釈  →実行  →書き戻し 1:解釈  →実行  →書き戻し→フェッチ 2:実行  →書き戻し→フェッチ→解釈 こんな感じでパイプラインがオーバーラップしてるけど、0は実行するまでに2が何かを書き換える可能性があるから、2次第では0はまたフェッチからやり直しになる"
島鉄雄さんのツイート: "フェッチからやり直しになるストールは発生しないけど、プリフェッチがされてなくてL1キャッシュミスでストールするという事を言いたかったのか。 それ言ったら、C++はobj->child->data->func()みたいな長い間接参照しつつ関数呼び出しされまくるからvtableだけ特別遅いとも思えない。… https://t.co/crdPdwLPJt"
iruka3さんのツイート: "それはそうなんですけど、 https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); を普通にマシン語で並べると、呼び出し先アドレスをレジスタに取ってきて、間接call発行なので、命令プリフェッチが効かない場合が多いのです。… https://t.co/DmeaHkGBs8"
iruka3さんのツイート: "仮想関数を呼び出すクラスがほぼ固定されていたら、分岐予測キャッシュに溜まる可能性が高いですけど、多態性を多く持たせている(呼び出される可能性のあるクラスが沢山存在する)場合はそうでもないとかそんな感じ"
島鉄雄さんのツイート: "auto data = obj->child->data; data->func1(); data->func2(); の方が速そうだけど一々手間なんで obj->child->data->func1(); obj->child->data->func2(); と書くけど、これはコンパイラが最適化してくれてるはず。 それと同じで同じオブジェクトの連続した仮想関数呼び出しも最適化されてるはず。"

エスケープ解析

エスケープ解析 - Wikipedia
Golang エスケープ解析 - Qiita
Javaのエスケープ解析についていろいろと実験してみる - Qiita
Java HotSpot仮想マシン・パフォーマンス向上
Linuxはじめました & エスケープ解析の検討 - miura1729の日記
エスケープ解析による御利益: #include <fujita.h>
エスケープ解析 - Google 検索

Self

Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 動的型付け言語の最適化だとselfで用いたテクニックが大体標準かなって思います。動的も静的もLLVMのような話は過去一杯あったけど失敗しています。LLVMはありったけのリソースを投入できるので、静的だからではなくLLVMだから成功したのだと思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 これですね。勉強になる。 https://t.co/OufsOKRhTO 静的型だとどの言語でも似たような中間表現に変換しうるようなイメージがあるんですが、私の勘違いなんですかね。データの持ち方も基本的には共通のような。」 / Twitter
A Self Bibliography — Self Papers 4.5.0 documentation
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 SSAが出来てからはそれに収束した感がありますね。その前はいろいろバライティに富んでいましたが。おそらく動的型付き言語もSSAに収束すると思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 SSAは様々な最適化に適した中間表現と思いますが、もっと素朴な奴でも動くもの(かついろんな静的言語からコンパイルできるやつ)は作れそうに思います。動くけどネイティブの処理系より遅いので意味ないよね、ていうのがLLVM登場以前の話だったのですよね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おお、selfの論文がまとまっているページがあるんですね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型はオブジェクトの(最適な)内部表現が言語仕様によって異なる(例えばRubyとJS)ので、SSAの手前の段階で既にunifyするのが厳しいんじゃないか、という気がします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おそらく、色々な言語に対応しようとするとバカでっかくなり、その開発に耐えられなくなるってのが大きいと思います。LLVMってすごくたくさんの機能や命令があるわけですが、結局そういうのが必要になってくると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 そうでもないと思ったのですが、考えてみると得意分野によって高速化するデータタイプが速くなるように内部表現を変えますね。この辺を抽象化するって言う手はありますけど(mrubyがそうやっているように)」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 A + B みたいな基本的な演算でもAやBの型によって全く違うことやるわけですから、どの言語でも共通に使える(かつ高速な)フレームワークを提供するってのはなかなか困難ですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 その通りと思いますが、動的型だと「そのバカでかくなり具合」がより一層爆発的なものになる気が。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 確かにそうかもしれない。本当の所はどうなのか気になります」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型、静的型関係なく対応すると称しているGraalVMとかありますよね。どうなってんだろう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 GraalVMですか。すごいですね。もし、RubyKaigiで開発者の方がお見えになるならお話したい(どうやって?)ですけど、RubyKaigiがあるのだろうか・・・」 / Twitter

mem2reg

LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
7.3. LLVMにおけるメモリ – 日曜研究室
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@esumii mem2regもLLVMオリジナル版とCoq版で生成されるコードの性能はほぼ同じ(LLVMオリジナル版は内部allocaも知ってるので僅かに有利)。LLVM -O3と-O1はあまり変わらないがmem2regはかなり速くなるので重要(だからCoqで実装&証明した)」 / Twitter
きつねさんとおぼえるLLVM の訂正個所【2013年2月24日追記】 - 餅ちゃんの備忘録
最適化抑制属性(optnone) - Design x Verification
clang - LLVM SSA形式を生成する方法 - ITツールウェブ
Rui UeyamaさんはTwitterを使っています 「@uint256_t mem2reg、定数式畳み込み、レジスタ割り当てくらいがあれば、めちゃくちゃ素直でナイーブなフロントエンドでも普通によいコードが出せるのではという気がしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 計算の途中結果は全部メモリ上の変数に書き出していって、変数は使い捨て。明らかな冗長さは定数式畳み込みで消えるからフロントエンドではまったく気にしない。みたいな方針でなんとかなるんじゃないかなと。(僕がいま作っているのも)」 / Twitter
h_sakuraiさんはTwitterを使っています 「mem2regの後半の処理の本質はmutableな基本ブロックからimmutableな基本ブロックに変換するCPS変換なのだな。 https://t.co/WKSV0XCSLw」 / Twitter
120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita

レジスタ割付

SSA

uint256_tさんはTwitterを使っています: 「#cilk なんか動かないなぁと思ってたら,関数呼び出しをまたいで使用されるvregの保存を実現するために呼び出し前にスタックに退避・後で新しいvreg(SSAなので)に代入してたけど,古いvregのuseを新しいので置き換えるときにbasic blockにループが存在する可能性のことを考えてなかった」 / Twitter
uint256_tさんはTwitterを使っています: 「レジスタ同士を紐付ければいいのかしら」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t Basic block でループがあるとは?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 これで伝われば嬉しい: https://t.co/i85rxk6LWN」 / Twitter
problem.txt
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t φを用いないんですか?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 どこでどのように使うと良いのでしょうか」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t まず Wikipedia の説明を読んでください。 https://t.co/WVqdkKgYLK」 / Twitter
静的単一代入 - Wikipedia
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t たぶん,こんな感じ? https://t.co/bT9aeZDCgo」 / Twitter
solution.txt
uint256_tさんはTwitterを使っています: 「@zacky1972 わざわざありがとうございます.phi自体はすでに理解できていたみたいです. 物理レジスタ割り当てのことで頭がいっぱいで,phiを使ってコードをまとめ直すことができるという考え方が浮かびませんでした.」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t SSAではphiは基本なので,活用してください。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t 「Basic block にループが存在する」という表現は矛盾している (なぜならば basic block はループを含まないというのが定義だから) ので,表現は正確に。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t この例では「basic blockを複数つなぎ合わせてループを構成する」が正しい表現ですね。」 / Twitter
uint256_tさんはTwitterを使っています: 「basic block '間' にループがある」 / Twitter
ssa-nyumon.pdf
monochromeさんはTwitterを使っています 「@zacky1972 ああ、それはそうですね。ASTをバイトコードに落とす前の段階でSSAっぽいIRを挟んでおき、インタプリタ用にはバイトコードへコンパイル、JITする場合にはSSAに戻って機械語へコンパイルするイメージでした。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 SSAだと評価の途中結果がID付きでずらっと(仮想レジスタとして)並ぶ形になるので、型(RubyなのでClass)の評価がやりやすいのかな?という想像です。 動的型付け言語の場合、型の推論とかプロファイリングが重要かつ一番の難関と考えてますので。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 あとは、一時的に使用されて捨てられるオブジェクトと、生き残るものが明確になるという点もあるかなと。 というのも、アロケーションのコストとGCへの負荷を下げる意味でも、捨てる値が分かってると有り難いんですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 つまり、a-eが文字列のようなヒープアロケートされるオブジェクトだとして、 a = ((b+c)+d)+e みたいな処理があった場合、b+c、b+c+dという2つのオブジェクトが生成され、評価完了とともに不要になります。これらを後からGCで回収するのではなく、その場で開放したい、というモチベーションです。」 / Twitter
Modern Compiler Implementation in C 19章後半(451ページから) - ppt download
uint256_tさんはTwitterを使っています 「SSAだろうと値は変わるんだなぁ」 / Twitter
市川 真一さんはTwitterを使っています 「wasm のローカル変数のアドレスが取れないから線形メモリを使わないといけなかったりして不便なので、ローカル変数は線形メモリへのアクセスのためのベース・レジスタ的な使い方しかしてない」 / Twitter
YutakaAokiさんはTwitterを使っています 「@tenpoku1000 そういえば、Wasmの母体になることが多いLLVMの場合、レジスタがそれと似ていて、SSA方式なので一度書き込むと二度と書き換えられず、Cのローカル変数はほぼ必ずレジスタではなくallocaされたメモリー領域に対応し、レジスタはその先頭アドレスとしての役割が多いです。」 / Twitter
YutakaAokiさんはTwitterを使っています 「@tenpoku1000 何度も書き換える働きを持つローカル変数は必ずallocaされたメモリー領域に対応し、レジスタは、四則演算の途中経過や、メモリーからメモリーへload,storeするの間の仲介役を担うことが多いです。ただし、phi nodeという方法を使うとこの限りでは有りませんが。」 / Twitter
市川 真一さんはTwitterを使っています 「@YutakaAoki3 私の場合、LLVM は使わずスクラッチ開発していますが、そんな感じですね。最適化は実装してないので、SSA や phi は無いのですが: tenpoku1000/PE_COFF: 独自 WASM64 を生成し、PE/COFF や PE32+(UEFI アプリ)に変換するバックエンド試作版 https://t.co/8cElIwUZt0」 / Twitter
静的単一代入形式に基づく最適化に関する研究
25_1_2.pdf

Wikipedia

和集合 - Wikipedia
数学記号の表 - Wikipedia
レジスタ割り付け - Wikipedia
データフロー解析 - Wikipedia
Data-flow analysis - Wikipedia
制御フローグラフ - Wikipedia
Control flow graph - Wikipedia
大域値番号付け - Wikipedia
レジスタ・リネーミング - Wikipedia
ソフトウェアパイプライン - Wikipedia
Reservation Station - Wikipedia
Tomasuloのアルゴリズム - Wikipedia
レジスタファイル - Wikipedia
連想メモリ - Wikipedia

Set
東北大学電気通信研究所 大堀・上野研究室 - レジスタ割り付け
電子情報通信学会知識ベース |トップページ
06gun_03hen_03.pdf
8-w.pdf
www.cs.is.noda.tus.ac.jp/~mune/master/10/m2010.pdf
www.is.titech.ac.jp/~sassa/lab/papers-written/08B24652-mori.pdf
データフロー解析(DFA)とはなんですか? | 東陽テクニカ
フロー解析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社
Compiler Construction Lecture 2/1
コンパイラ講義をなんとなく監視 - Togetter
レジスタ割り付けをしたい(1)データフローを作る - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
レジスタ割り付けをしたい(2)生存情報を求める - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
Liveness Analysis - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
累積レジスタ割付による仮想マシンの高速化 - 一人一党党
LLVM Register Allocation (2nd Version)
LLVM Project Blog: Greedy Register Allocation in LLVM 3.0
dominance frontier - Google 検索
iterated dominance frontier - Google 検索
uint256_tさんはTwitterを使っています 「Dominance frontier, いまは愚直に求めてて遅っいから改善したい (llvmが使ってるアルゴリズムの論文読むのが早い」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMが使っているアルゴリズムの論文に書いてある手法をそのまま実装すると遅いよなあ, と思ってLLVMのコードを見てみたら, より良い手法が使われていた時の気持ち.」 / Twitter
Yatsina-LLVM Greedy Register Allocator - Yatsina-LLVM Greedy Register Allocator.pdf
uint256_tさんはTwitterを使っています 「dominator treeのrootから下へ降りて行って, ある時に注目しているnode dominates its predならloop?」 / Twitter
uint256_tさんはTwitterを使っています 「reducibleなcfgでloop検出, まだ理解できていない」 / Twitter
mem2regを解説してみる - Qiita
静的単一代入形式を用いた最適化(導入編)
A linear time algorithm for placing φ-nodes | Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Rui UeyamaさんはTwitterを使っています 「@uint256_t これって常にSSA形式になってるようにやってるんだと思うんですが、SSAじゃなくなるように単純に書き換えてからSSAに戻すアルゴリズムを走らせるのと比べてどっちがいいんですかね?」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 storeやload は元々SSAからはみ出しているような気がしますが, それ以外の部分も先にSSAじゃないように書き換えるということでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t レジスタも複数回代入してもいいからとりあえず変換してしまって、その後でSSA形式に再度戻すというやり方もあると思うのですが(それがいいかどうかは別問題で)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 再度SSAに戻すと言う操作それ自体がmem2regに相当するのではないかと思いました (見当違いだったらすみません)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そうか、たしかに。」 / Twitter
DrumatoさんはTwitterを使っています 「虎本だとIR生成とベーシックブロックの生成を別のフェーズでやっているような記載があるんだけど,確かにこのほうが実装しやすい気もするな.」 / Twitter
LLVM Spiller 关键代码剖析_Enorsee的博客-CSDN博客_inlinespiller
Partitioned Boolean Quadratic Programming (PBQP)
uint256_tさんはTwitterを使っています 「SATソルバで最適なレジスタ割付をできたとしても, 現実は厳しいのであんまり速くならない」 / Twitter
lstm reg alloc - 1912.03700.pdf

CFG

gccを使って、制御フローグラフを作成 - Qiita
_pdf
制御フローグラフ - Wikipedia
無限ループ - Wikipedia
201303tanabe.pdf

PDG

26_3_109.pdf

グラフ書き換え系

グラフ書換え系 - Google 検索
33_1_126.pdf
uint256_tさんはTwitterを使っています 「あまり関連性はなさそうな気もしますが,詳しくないのでよくわかりません.色々なCFGがあったときにそれらが同型かを判別できると便利そうですが,最適化に使えるのかなあ. #マシュマロを投げ合おう https://t.co/3qYCxCoxdJ」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 僕の先輩でCFGの同型性判定に基づいてコードクローンを見つけ出し、他のコード最適化に利用するってことをやってる人がいました。 詳しいところは忘れてしまいましたが。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど,関連性は一応ありそうですね.ありがとうございます」 / Twitter

blog

Jicchoの箱

自作Cコンパイラができつつある報告的な。 - Jicchoの箱
コンパイラのコード最適化や解析手法の論文のサーベイ - Jicchoの箱
Lazy Code Motion - Jicchoの箱
Reaching Definition - Jicchoの箱
Common Sub-expression Elimination(共通部分式削除,CSE) - Jicchoの箱
Dead Code Elimination(無用コード除去, DCE) - Jicchoの箱
CFG,トポロジカルソート,Bit Vector,ワークリストアルゴリズム - Jicchoの箱

Fixstars Tech Blog

RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインの手書きをDRYで行う - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインを考えてみる - Fixstars Tech Blog /proc/cpuinfo
x86/x64最適化勉強会7 で発表しました - Fixstars Tech Blog /proc/cpuinfo

本の虫

本の虫: コンパイラーを負かす
本の虫: なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと
本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
本の虫: とても賢いコンパイラーの逆襲

in neuro

基本ベクトルの場合の最適化(3次元幾何) - in neuro
コンパイラの最適化と専用命令について - in neuro
コンパイル時ルックアップテーブル生成について - in neuro
reluを分岐無しで実装する - in neuro

Return Value Optimization

Return Value Optimization | 闇夜のC++
値のコピー省略を保証 - cpprefjp C++日本語リファレンス
NRVO(Named Return Value Optimization)が適用されたか判定するマクロ - ビットハイブ
C++ 関数の戻り値のコンストラクタ呼び出しとRVO(Visual Studio 2019 Community 16.7.0 Preview 2.0) - Qiita
Return Value Optimization (RVO)の話 【KMCアドベントカレンダー20日目】 - KMC活動ブログ
実践C++入門講座 第37回目 ムーブの使いどころ | Theolizer®
c++ : コピーの代わりにRVOを確実に実行する方法はありますか?
c++ 11戻り値最適化または移動? [重複]
C++17 右辺値参照とRVO - potisanのプログラミングメモ
Return Value Optimization | Shahar Mike's Web Spot

DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
x86/x64最適化勉強会7レポート | Cybozu Inside Out | サイボウズエンジニアのブログ
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions - ScienceDirect
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
Cコンパイラの末尾呼び出しを活用した 効率的命令ディスパッチ手法の研究開発
高性能プロセッサの分岐予測のサーベイ論文を読んで分岐予測について学ぶ (4. 予測が難しい分岐のための分岐予測器) - FPGA開発日記
日記 (2019 年 10 月下旬)
Swiftにおける所有権付きSSA形式 | メルカリエンジニアリング
A JavaScript optimizing compiler | Carlo Piovesan | leaningtech
RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary
命令単体の性能を計測する
Dependency Analysis入門 | κeenのHappy Hacκing Blog
adv intro
Aug. 2017
Google Summer of Code 2021 を終えました :: Hello
a21_opt - essen-wiki
Optimization of Wasm’s indirect calls for SpiderMonkey | Dmitry Bezhetskov
golangコンパイラ(cgo)のスケジューリングパスについて - KazuminEngine

スライド

SIMD化とは何か / Basics of SIMD - Speaker Deck
人間でもわかるLLVMバックエンド入門 // Speaker Deck
Elixirにおける データ並列スケルトンに基づく SIMD並列化の性能評価 - Speaker Deck
Microsoft Word - coins-rensai-ssa-transbacktrans-57.doc
融合変換による最適化の理論的基盤と正当性 (2006-06-27)
LLVM Register Allocation
Utilizing LLVM LTO for Swift - Speaker Deck

PDF

COINS 解説
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap2-1.pdf
248966-024JA.pdf
SSA-based Compiler Design
Branch Divergence Reduction Based on Code Motion
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar

GitHub

x86opti/readme.md at master · herumi/x86opti
kaityo256/mdacp: MDACP - Molecular Dynamics code for Avogadro Challenge Project
Getting Started — CompilerGym 0.1.7 documentation
Play with LLVM-IR, without LLVM :: Hello
dgryski/go-perfbook: Thoughts on Go performance optimization

Zenn

最適化コンパイラへのいざない (1) 導入 | Zenn
LLVMのレジスタアロケータについてまとめた

Qiita

MDループのソフトウェアパイプライニング:ステップ・バイ・ステップ - Qiita
インテルコンパイラのアセンブル時最適化 - Qiita
関数ポインタと関数オブジェクトのインライン展開 - Qiita
定数配列がからんだ定数畳み込み最適化 - Qiita
ZEAM開発ログ2018年総集編その2: Elixir 研究構想についてふりかえる(後編) - Qiita
WASM3の末尾呼び出しVMがかしこい - Qiita
C++コンパイラはあなたよりも良いコードを書く - Qiita
最適化コンパイラを作りたい人にとって必要な解析器の数学的基礎を与えてくれそうな An Introduction to the Theory of Optimizing Compilers の斜め読みのしかた - Qiita
最適化コンパイラへのいざない (1) - Qiita
最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
最適化コンパイラへのいざない (3) 定数に関する最適化 - Qiita
最適化コンパイラへのいざない (4) プログラムの構造 - Qiita
オーバーライドされた仮想関数にまつわる最適化 - Qiita
末尾呼び出し最適化についてあれこれ - Qiita
mrubyの可変引数最適化 - Qiita
Goのコンパイル時の最適化結果を確認する(インライン化の条件についても記載) - Qiita
Chapter 11: Tips and Tricks | Go Bootcamp | Softcover.io
SSA変換とSCCP最適化をJavaScriptで実装してみた。 - Qiita

Wikipedia

Interprocedural optimization - Wikipedia
Category:コンパイラ最適化 - Wikipedia
Category:ソフトウェア最適化 - Wikipedia

Twitter

その他

ソート・制約・コード生成

Miura HidekiさんはTwitterを使っています 「メモ化とかしてオーダーが下げられないか考えたけど無理そう。事前・事後・インバリアント条件を求めてソート処理であることを推定して別のアルゴリズムに置き換えるってのは可能かなと思う &gt;RT」 / Twitter
hrk先生さんはTwitterを使っています 「横からすみません。バブルソートを書くと速いソートに書き換える最適化コンパイラは無いのか気になります。」 / Twitter
κeenさんはTwitterを使っています 「-O3は-O2より遅くなることがあるからあんまり使われないんだけど、こういう有名なアルゴリズムが実例になってるのが面白い。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バブルソートを gcc -O3でコンパイルすると、-O2でコンパイルするより遅くなるというバグ。-O3ではベクトル化が有効になり、intをスワップさせるたびにforwarding stallが起きるが、バブルソートではこれが連続するため速度が低下するらしい。 https://t.co/q7YWd8ROzD」 / Twitter
c - Bubble sort slower with -O3 than -O2 with GCC - Stack Overflow
κeenさんはTwitterを使っています 「全然関係ないけどGCCに-O4とかの3より大きい数字渡すと-O3として処理するらしい」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 例えば渡される比較関数が実は副作用持ってたとか、コンパイラだけで置換可能かどうか判断するのは無理っぽい気がする。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど。プログラマがソートしたいのか、比較のタイミングで副作用を起こしたいのか判断出来ませんものね」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 それも制約に書けるならいけるかな。 しかしそこまできっちり制約で記述できるなら、ソート程度なら制約だけ書いとけばコード生成してくれそうな気もする。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana 逆にコードから制約を推定することを考えていました。プログラムを解析して副作用の制約が分かればよいのですが、分かった所で大したことはできないかなと思います。」 / Twitter

命令選択

kateinoigakukunさんはTwitterを使っています 「中間言語からネイティブ命令を選択する際には複数の中間言語命令が一つのネイティブ命令に畳み込めるパターンがあるのでBasicBlockの下から選択していきたい」 / Twitter
uint256_tさんはTwitterを使っています 「下から舐めてって、DAG作りがち」 / Twitter
uint256_tさんはTwitterを使っています 「craneliftもそう」 / Twitter

volatile

ryoさんはTwitterを使っています 「MCOUNT_ENTERで定義してるasm()にvolatileつけ忘れてて、https://t.co/3AbZtShgM5 の MCOUNT_ENTER と __cpu_simple_lock() の順序が入れ替わってたせいだった。以前も似たようなことがあったな。https://t.co/q6GV1ljMsT まるで学習していない…」 / Twitter
Cross Reference: /src/common/lib/libc/gmon/mcount.c
ryoさんはTwitterを使っています 「asm()でやってるシステムレジスタの読み込みにvolatileが付いてなくて読み込み結果が使いまわされてた。よく今まで動いてたなw」 / Twitter

強化学習

κeenさんはTwitterを使っています 「面白い。機械学習エンジニアが強化学習でコンパイラの最適化問題を解くための環境を用意している。 普通、コンパイラの最適化はどのパスをどの順番で適用するかは手作業で決める facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations https://t.co/HlelTYg0Tv」 / Twitter
facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations
κeenさんはTwitterを使っています 「探索空間は思ったより広くて、LLVMでパスが数百くらいあったはず。それにABABみたいに同じパスが何度も出ることもあるし、パスにパラメータがあったりもする。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/ptgCu42vFJ https://t.co/I2t8qRS6zP https://t.co/sh4w7ZPJZW "Machine Learning in Compilers: Past, Present and Future", FDL 2020 PDF https://t.co/DlQzZB4aeJ PACT 2017, Best Paper https://t.co/yLUrgHg8jl https://t.co/aK82FqQeQR」 / Twitter
ChrisCummins (Chris Cummins)
Resume | Chris Cummins
FadisさんはTwitterを使っています 「FacebookがOpenAI Gym互換の新しいenv、CompilerGymを作った話。コンパイラには膨大な最適化オプションがあり、どれを有効にすれば効率よく高品質なバイナリが得られるか予想するのは囲碁並に難しい …ので適切に選ぶAIを強化学習で作るために、コンパイルをenvにしたらしい https://t.co/ZKjc57tM1Y」 / Twitter
Facebook Is Aiming To Make Compilers Faster Using Machine Learning With CompilerGym - Phoronix
FadisさんはTwitterを使っています 「コンパイルオプションがアクションで、コンパイルにかかった時間とコンパイル結果に含まれる命令数をもとに報酬が計算される。短いコードが常に良いとも限らないので、ビルド結果の詳細を覗き見もできるようになっている」 / Twitter
FadisさんはTwitterを使っています 「ビルド職人も機械学習でやる時代なのか…」 / Twitter
FadisさんはTwitterを使っています 「これ観測できる状態にソースコードが含まれているから、エージェントは「このソースならこの最適化が効くんじゃないかな」を学習することになって、アクションの順番で結果に違いは出ないから、学習が上手くいくと初手で有効なオプションを全部つけるようになって、通常のビルドに組み込めるって話か」 / Twitter
CompilerGymを試してみた

VM

Kazuho OkuさんはTwitterを使っています 「面白い。入力が高級言語で書かれたプログラムなら、whileとifを使うJavaScriptを生成できると思うけど、switch-caseに展開するのと速度差が出るのか(出ないのか)気になる / https://t.co/KjHhM2GczH」 / Twitter
JavaScript における VM の高速化手法
Kazuho OkuさんはTwitterを使っています 「実際にはその前に stack や local variable に配列使うのやめろって話になるか」 / Twitter

LICM

uint256_tさんはTwitterを使っています 「#sericum LICMしてもstoreとかloadが移動してくれないから、そんなに速くならない。早くエイリアス解析を実装しないとどうしようもないね。」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t エイリアス解析をしなくても、load命令で読み込む先のメモリ番地にあるデータを変更するような命令があったらkillするというような保守的なデータフロー解析をすれば、LICMできますよ。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 確かにそうですね。 (最終的にエイリアス解析をパスのような形で実装しないと、後々面倒だよなぁと考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t まぁエイリアスを全部解析するのは中々難しいですね😔」 / Twitter

PGO

κeenさんはTwitterを使っています 「面白い。Rustコンパイラ自身をPGOで高速化する試み。rustcはRust部分とC++部分(LLVM)がありちょっと複雑だができなくはないと。十数%高速化するらしい。 Exploring PGO for the Rust compiler | Inside Rust Blog https://t.co/JXDhAkaICU」 / Twitter
Exploring PGO for the Rust compiler | Inside Rust Blog
κeenさんはTwitterを使っています 「PGO(Profiler Guided Optimization)はコンパイルしたコードを一度走らせてみて遅い部分などを特定してそこを重点的に最適化するよう再度コンパイルする仕組み。その複雑な仕組みから公式配布するrustcのコンパイルに使うのは簡単ではなさそうと.」 / Twitter
κeenさんはTwitterを使っています 「1つ注意しておくと、これはrustc自身をPGOで最適化する話。普通のRustのコードのPGOは既にサポートされてるよ。 Profile-guided Optimization - The rustc book https://t.co/h0mUbn6pSC」 / Twitter
Profile-guided Optimization - The rustc book
ガイド付き最適化のプロファイル | Microsoft Docs
プロファイルに基づく最適化の概要

PGO(Linux)

retrageさんはTwitterを使っています 「Linux kernelでPGOなんてデータどうするのかと思っていたらsysfs経由で見られるようにするらしい。」 / Twitter
PhoronixさんはTwitterを使っています 「Profile Guided Optimizations (#PGO) Likely Coming To #Linux 5.14 For #LLVM #Clang https://t.co/4gHRuHPfye」 / Twitter
Profile Guided Optimizations (PGO) Likely Coming To Linux 5.14 For Clang - Phoronix
retrageさんはTwitterを使っています 「ぱっと見た感じリンク時にプロファイルデータ用の領域をシンボルと共に確保しておいて実行時にそこにためたデータをdebugfsでアクセスしたときにシリアライズしてユーザ空間に見せる、みたいなことをしているっぽい https://t.co/SqtG1Gqj0b」 / Twitter
kernel/git/kees/linux.git - Various feature branches

basic block parameter

uint256_tさんはTwitterを使っています 「basic block parameters を知りました.Phiより良いかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk 難しい. basic block parameter を実装しようとしたけど, そもそもbasic block間をまたいで使われる変数が許容されなくなるのか. だから data-flow analysis しやすい,と. extended basic blockに以降したほうが良さそうだし, 色々仕様を変えないと実現できなさそう.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk とりあえず, PhiとAllocaだけ扱いを変えよう.」 / Twitter

関数分割

7594591200220899443さんはTwitterを使っています 「あっ、関数を勝手に二個に分けてコールドパスっぽい箇所を別のセクションにしちゃうやつだ。2.33% runtime improvement with a ~32% reduction in iTLB and sTLB misses 強いなー」 / Twitter
Hacker News 200さんはTwitterを使っています 「LLVM merges machine function splitter for reduction in TLB misses https://t.co/9m4HHQIPZ4 (https://t.co/4xFIgNV2mz)」 / Twitter
[llvm-dev] [RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
LLVM merges machine function splitter for reduction in TLB misses | Hacker News
_ko1さんはTwitterを使っています 「@shyouhei Unlikely にレベルが欲しくなるね...」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 えっ、普通にありますけど…」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 https://t.co/T7PYXyxYoT __builtin_expect_with_probability」 / Twitter
Other Builtins (Using the GNU Compiler Collection (GCC))
_ko1さんはTwitterを使っています 「@shyouhei gcc 9 からか」 / Twitter
ドッグさんはTwitterを使っています 「LLVM にこんなパッチ出てたのか.profile data から関数の中で cold なパスを見つけ,リンカがそれらのコードを関数の外にまとめて配置.hot なパスの凝縮度が上がってキャッシュ効率が上がる.2%以上のパフォーマンス改善 | '[llvm-dev] [RFC] Machine Function Splitter' https://t.co/3JEoJZ71DL」 / Twitter
ドッグさんはTwitterを使っています 「Google では profile data driven なアグレッシブなインライン化をやっていて,それによってコードの肥大化と実行コードの fragmentation がひどくなっていることの対策.最も hot な関数のコードの実に50%は(hot なのでキャッシュに乗ってるにも関わらず)実際は実行されてないらしい」 / Twitter
エヌユルさんはTwitterを使っています 「C++だとコンパイラはインライン展開が得意な割にキャッシュヒットのための関数分割が苦手な傾向あるし関数は分割していった方が良いんですが JavaScriptのJITエンジンはどうなんですかね」 / Twitter

支配木

先にcritical edgeを除去

uint256_tさんはTwitterを使っています 「途中でブロックを追加したりするから支配木を再計算しないといけない. 効率が悪いので良い方法を探したい」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 先にcritical edgeを除去しておくってのはどうでしょう?」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど. ループのヘッダを計算しなくても critical edge を除去することはできますね. ありがとうございます」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 (ループのヘッダを計算するのは, プリヘッダを追加するため)」 / Twitter

uint256_tさんはTwitterを使っています 「CFGで,ブロックxからブロックyへの経路があるかっていうのはどうやって調べるのでしょうか 支配木を使って, xがyを支配する or xの支配辺境がyを支配する, でいいんだろうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t それだと2回流入があるケースに対応できないです。 \ \ x--df1--df2-y xがyを支配する or xの支配辺境の支配辺境の…と辿った集合がyを支配するの条件が必要です。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold なるほど. それ以上簡単に判別する方法はないのでしょうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t これ以外ないかと言われると自信ないですが、支配木を使ったアルゴリズムは私はこれしか知らないです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold ありがとうございます.」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t 余談ですが支配辺境の支配辺境の…と辿った集合はiterated dominance frontier(反復支配辺境?)という名前がついているそうです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold 聞いたことあります. なるほど, こういう場合に役立つのか...」 / Twitter
Basic Block Reordering - GNU Project - Free Software Foundation (FSF)

BOLT

uint256_tさんはTwitterを使っています 「BOLT: a practical binary optimizer for data centers and beyond」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 並び替えるだけでこんなパフォーマンス変わるとは。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t あとディスアセンブルして並び替えてアセンブルすると元と同じように実行できるバイナリになるっていうのが結構すごい(細かいところを実装するのが大変そう)。」 / Twitter

PRE

uint256_tさんはTwitterを使っています 「partial redundancy elimination よくわからない.これもdominator treeとか使えば綺麗に実装できるのだろうか」 / Twitter
uint256_tさんはTwitterを使っています 「なんか先にglobal value numberingの事を考えた方がいい気がしてきた」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t PREの一つであるLazy Code Motion(LCM)の実装方法が、以前に紹介したBuilding an Optimizing Compilerに載ってますよ。まずLCMの元の論文を読んでみてもいいかもしれませんね。PREはド専門なので、わからなかったら是非聞いてください(^^)」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 ありがとうございます.(今コンパイラの構成と最適化を読んでいて,SSAの場合どうするのが楽なのか考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t SSAPREという手法が実は既に提案されています。ちょっと自分で考えてみてから論文を読んでみるといいかもですね。 https://t.co/AK8cMSBIst」 / Twitter
A new algorithm for partial redundancy elimination based on SSA form | ACM SIGPLAN Notices

in-order 発行+out-of-order 完了

R. ShioyaさんはTwitterを使っています 「去年ぐらいから in-order な CPU(正確には in-order 発行+out-of-order 完了)の性能解析をする機会がちょくちょくあって,out-of-order な CPU との性能差の要因の1つとして,分岐命令の処理方法の違いが大きいってのがあんま本とかでは見た覚えがなかったので面白かった」 / Twitter
R. ShioyaさんはTwitterを使っています 「out-of-order 発行だと,分岐命令はディスティネーションがないので(予測が当たっている限りは)全体の実行を遅らせることは基本ないけど,in-order 発行だとロードに依存する分岐とかは依存元の値が取れるまで発行を止めないといけないので,ここで性能差がごりごり出ることが多い」 / Twitter
R. ShioyaさんはTwitterを使っています 「分岐予測が当たってる限りは分岐命令は性能に影響与えないよねとか思っちゃうんだけど,それとは別に in-order 発行の場合は真の依存があると止めないとダメだってのがあって,当たり前ではあるんだけど見落としがちな感じ」 / Twitter

Optimize frozen/sealed objects

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「意外と知らないことが多かった。V8なりSpiderMonkeyなり各種処理系はこの辺の情報を最適化に使ったりしてないのかな? / 1件のコメント https://t.co/EfBfzOhyiZ “Diving Deeper in JavaScripts Objects” https://t.co/OTwwr5Ikzl」 / Twitter
Diving Deeper in JavaScripts Objects | by Arfat Salman | Bits and Pieces
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「少なくともV8はしてるみたいだね。AltJSが生成するコードとかで使うといいかもなぁ https://t.co/07xSGh8xOJ」 / Twitter
6831 - Optimize frozen/sealed objects - v8

users

@Jiccho96

jicchoさんはTwitterを使っています 「以前にこんな感じのことできたらなぁと考えてたやつがCGO 2020に出てた https://t.co/oCLK3f5Z6u」 / Twitter
Speculative reconvergence for improved SIMT efficiency | Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 おお,読んでみます! この研究の提案手法と, @Jiccho96 さんの以前紹介してくださった提案手法との違いは何ですか?」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 ほとんど別物ですね。 分岐発散を低減したいというところだけ共通しています。 僕が以前ご紹介した手法は分岐発散の性質を利用して式を投機的に巻き上げるのに対し、この研究では直後支配節より早い点で投機的にreconvergenceして分岐発散自体を抑える手法になっています。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 こんなことできたらなって妄想してましたが、NVIDIAはさすがですね。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 とてもよく理解できました。感謝します。」 / Twitter

@telmin_orca

Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「「この位置にprintfが無いとなぜか動かないんだ。」 https://t.co/Crr7nvXnJg 注釈の解説が本編だった。 恥ずかしながらTSTの中にもこれと大差ない(副作用に期待した)コードがある。「ここで一回イベントループを終わらせてFirefox側の処理完了後に回さないと動かない」とか。」 / Twitter
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
富岳てるみさんはTwitterを使っています 「これと直接同じ話ではないけど、コンパイラが賢いせいでスタックを大量に消費するから最適化を無理やり切るために変なブロックを打ち込むとか、レジスタを消費しすぎて割り付けの自由度が著しく低下してるから関数に切り出すとか、世の中には色々辛い話がある(?)」 / Twitter
富岳てるみさんはTwitterを使っています 「最内ループでスピルしまくると涙ちょちょぎれちゃう」 / Twitter

histric

histric-1

histric-1

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"

histric-2

histric-3

C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t PLDI, CGO あたりを読むのが良さそうですが,どうでしょうか?」 / Twitter
FadisさんはTwitterを使っています 「LLVMに新しい最適化パスMachine Function Splitterが提案されている。この最適化は関数の中の実行される可能性が高そうな部分と低そうな部分を分離し別々のsectionに吐く。実行される可能性が高いマシン語の列が密に配置され命令キャッシュのヒット率が上がり、性能が向上する https://t.co/soUjc9eLmA」 / Twitter
Google Engineers Propose "Machine Function Splitter" For Faster Performance - Phoronix
Fadisさんのツイート: "gccに新しい最適化フラグ-O1gを追加しようという提案がなされている。-O1gでは-O1で行われる最適化のうち、デバッガで覗いた時に悲しみが溢れる物を除外した最適化を行う。最適化するとデバッグが捗らないけど、最適化しないと遅すぎてデバッグが捗らない時に役に立ちそう https://t.co/woaqbvpahc"
New "-O1g" Optimization Level Proposed For The GCC Compiler - Phoronix
chikoskiさんはTwitterを使っています 「仮定をいくつか置くことでも最適化できる。例えば、今見てるアドレスよりも引くアドレスにはアクセスしないという仮定ができれば、アドレスの足し算を消して、オフセットを使ったメモリアクセスに書き換えられる。これも効く」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "「共用体メンバ」じゃなくて、「共用体メンバのうち、アクセスが無いメンバ」だな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、gcc側の問題のような気も。似た落とし穴に嵌る人も多そうだなぁ…"
ゆたかさんさんのツイート: "Infinibandドライバでstruct sockaddrのアクセス方法が変更となりましたが、元のコードだとなぜダメなのかよく分かりませんでした。共用体は沼が深いです。 × &sgid._sockaddr ○ (struct sockaddr *)&sgid https://t.co/ZYTCUvG3iI #カーネルパッチ勉強会… https://t.co/INOsrww15L"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 ローカル&static関数でしかアクセスしない共用体メンバは、存在しないものとして最適化が走るんだろうなぁ。… "
とみながたけひろさんのツイート: "https://t.co/gKiaPJMdZ3 コンパイル時間との絡みでどこまでやるかよく議題になる定数・値域伝搬最適化ですな。 f(a,b){int r=a;while (++a<b) r*=a; return r;}はa<0<bとかだと0にできるけど、やります?みたいな"
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
Kazuho Okuさんのツイート: "「コンパイラは、異なる型の仮引数についてaliasingされているとは考えなくてよい」っての、割と一般的な strict aliasing の説明だったと思うけど、それが問題になってるの..."
Kazuho Okuさんのツイート: "Cに落とすことで実装さぼりたいという意図で言うと、aliasingで最適化無効になるの避けたいしスタックベースの中間表現さけたいのはよくわかる"

histric-4

κeenさんのツイート: "「SSAをハッシュして持っとくと共通部分式が見付けやすい」へー。 #compiler_study"
κeenさんのツイート: "「SSAだとGlobal Variable Numberingがやりやすい」 #compiler_study"
κeenさんのツイート: "link time optimizationとwhole program optimization、LTOの方がコンパイル時間が短いけど諸々の理由で中間ファイルにメタデータを埋め込めなかったらWPOになっちゃうよね。"
もっちぃさんのツイート: "形式検証では不変量の自動抽出が鍵になり、Invariant is holy glory of formal verification なんて言われます。で、この不変量、当然最適化にも利用可能です。その意味で、最適化と形式検証は表裏一体であり、ともに協調して発展していく事が大事です https://t.co/BCYQa4kkwM"
Kazuho Okuさんのツイート: "スタックをグローバル配列じゃなくローカル変数な配列でもつようにしたら速くなるはず... っていうけど、そもそも遅いのはエリアシングじゃないのかな。だとすると、ローカル変数な配列にしても関数呼出が発生しうるパスがあるとダメな気がするけど"
もっちぃさんのツイート: "値番号に基づく部分冗長性除去 https://t.co/7PceHkvgGO https://t.co/uoYsZdcu0q #compiler_study"
herumiさんのツイート: "岩永さんによる最近のC#の概要。stackalloc, Span構造体, ref周りの拡張など、C++が無法地帯からなんとか安全な方向を目指すのと逆向きでC#が安全なところからぎりぎりを攻める感じが面白い。if (uint)x < y)みたいな最適化を2018年に見るとは思わなかった。https://t.co/QBcf7GtiNu #decode18 #ad19"
Jacob Torreyさんのツイート: "Still one of the strangest things I've learned from the x86 manuals. ADDING dead/redundant code will improve prefetching and overall performance!… https://t.co/ne5YEHo3oc"
Nerry@さんのツイート: "いまどきのCPUはほぼOoO動作していて、そのとき空いてるユニットにぶち込んで依存性のない命令はどんどん勝手に実行されていくのに、命令生成の段階で命令の順序に気を配る必要性あるんだろうか?"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令配置してもCPUが無理って思った命令は後回しにされるし逆に行けるって思った命令はどんどん実行されちゃうから並べ方に気をつけても???"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令並べてもCPUのOoOの方が優秀で重要ってのがVLIWの知見なわけで…"
hsjoihsさんのツイート: "「言語仕様を盾に、コンパイラが非直感的な最適化をどんどんしてくるようになってきた頃から」なのでは、というのはいろんな話を聞いていて思う… "
デダルス・ユメノさんのツイート: "あるスーパープログラマが「最近の若い人は言語仕様に拘るよね、昔はコンパイラが仕様に従ってないことがざらにあって、現物でちゃんと動くコードを書く(たとえ仕様違反でも)ことに価値があった。」と言っていたのを思い出した。いつ頃から言語仕様が神格化されたのか。"
hsjoihsさんのツイート: "時系列的にはこっちの要素の方が先かも https://t.co/lQ8HkmTHp7"
yoh2さんのツイート: "「現物でちゃんと動くコード (言語仕様違反)」がコンパイラのバージョン違いで動かなくなる地獄に遭遇したからだよ。 かと言って言語仕様通りでもコンパイラのバグで動かないことも稀にあるので、言語仕様+コンパイラの独自拡張通りかつ現物で動くものが大事。 https://t.co/41hEhHEt2p"
電子計算機の沼さんはTwitterを使っています 「ちなみに自動並列化・最適化されてほしいねえという話をさっきからしていますが... 最適化や並列化をすると演算順序の変更により誤差の入り方も変わって答えが変わって...みたいな沼の話もあって楽しいんですが皆さんどうですか」 / Twitter
伊丹十三世さんはTwitterを使っています 「@Hishinuma_t CT再構成はまさにそこですね…並列処理をきちんと考えないと誤差を含んでボケた画像になるので…故に基本GPUは使ってはいけない…」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/dBL7fQ4ghB ここらへん眺めながら,面白そうなのを実装していきたいね」 / Twitter
LLVM’s Analysis and Transform Passes — LLVM 12 documentation

uint256_tさんはTwitterを使っています 「- 命令選択マクロは便利だけど、似たような記述が増えていって不便 (正規表現でマッチするものを自動生成してもいいけど、proc-macroが複雑になりすぎる) - DAGをunsafeなノードのグラフとして表現するのはどうなのか - IRのBasic Blockがliveness情報を持っているのはどうなの (Functionとかに渡そう)」 / Twitter
uint256_tさんはTwitterを使っています 「拡張基本ブロックは偉大だなぁ...」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMでいうSelectionDAGみたいなのをどうやって表現すれば一番適切なのか」 / Twitter
uint256_tさんはTwitterを使っています 「動的な命令選択パターンマッチャを作る。costは多分アーキテクチャごとに命令のlatencyやらを考えながら決めるんだろうけど、今は面倒だから cost=1/どれだけ多くのノードをカバーできたか でいいか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「RT 元の表や元のブログ記事はちょっと勘違いがある気がして(ROB とスケジューラの区別がたぶんついてないかも),でも文字では説明がしんどいので絵を描いてみた・・・ らえらいごちゃごちゃになった. インテルや IBM がいろいろ呼び方変えててめんどくさいのは,そうだなぁと思う. https://t.co/W28eoKuOnb」 / Twitter
R. ShioyaさんはTwitterを使っています 「たとえばこの Zen2 の AMD がだしてるブロック図は Scheduler が分散になっているのでそこが少し違うけど,おおむね自分の描いた図と一致しているとおもう. ちなみにサイズは Scheduler が合計92命令,ROB が224命令で,最近はだいたいこんなもんかも. https://t.co/uWnxjWeSV7」 / Twitter
拡大画像 photo12l | Ryzen Deep Dive! 「Zen2」の内部構造を分析する - 第3世代Ryzen+NAVI徹底攻略 (1) | マイナビニュース
Shinji KonoさんはTwitterを使っています 「Cは実は関数呼び出しかなり重くて、関数展開しまくってようやっとなんとかなってる。なので、native compiler な言語なら勝てる余地はいろいろある。」 / Twitter
FadisさんはTwitterを使っています 「今日殆どのC++コンパイラは末尾再帰最適化を行うが、C++の規格は末尾再帰最適化を行う事を特に要求していない為、末尾再帰最適化がかからなければスタックが溢れて死ぬようなコードはコンパイラとコンパイルオプションが指定されない限り「互換性に問題のあるコード」ということになる」 / Twitter
そすうぽよ(早寝早起き)さんはTwitterを使っています 「最適化するとデバッグできなくてしんどいが、最適化しないと遅くてつらい、という悩みを軽減するために、GCCにはデバッグをあまり妨げないような最適化のみ行う、-Ogオプションがあって便利です」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「なおローレンツ方程式というのは初期値鋭敏性という性質を示す微分方程式で、微小な差が時間発展に伴って急速に成長するので、どっかで誤差の出方が変わる最適化とかを暗黙的に行ってしまっていないかと言う確認とかによさそうな気がするやつです(もっといいのたくさんあるはずだけど書き慣れてるので」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「にもかかわらず数学関数を一切呼ぶ必要ないからそのへんの実装依存の精度差を食らわんって点も好きで、実際C/C++でも誤差桁まで同じ結果出たので、IEEE754準拠で同じ丸めモードで同じFPU/CPU使ってれば少なくとも手元環境ではそれくらい合ってくれるっぽい?」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda 次にコンパイラ技術が進んだら VLIW でどうにかなるのかというと,個人的には無理だと思います.これは VLIW というかコンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda あとは,静的にコンパイラでどうにかする技術は,プロセッサがアップデートされて構成が変わった際に追随できないと言うことがあります.新製品で動かすとキャッシュのレイテンシが伸びて再コンパイルしない限りは毎サイクルストールする,なんてことがありえると思います.」 / Twitter
Miura HidekiさんはTwitterを使っています 「なるほど、うなづくしかないが、「コンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」は果たして本当にそうなんだろうか?って思った」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、その際にはつねに裏でプロファイラが走っていて必要に応じてOSRするって感じになるだろうけど、コア余っているからそれもいいよね?という」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Clang/LLVMは、アホなO(n)関数 (ループを使って偶数かどうか判定する) をビット演算を使った O(1)関数に最適化できてしまう(!)。アホな再帰関数も同様。これは - ループがある1つの変数のみを計算する目的であり - ループカウンタが前もって計算可能 のときに起こる。すごい https://t.co/TcZhvw6dXW」 / Twitter
Exploring Clang/LLVM optimization on programming horror
daem0nc0reさんはTwitterを使っています 「あからさまに非効率な関数を書いてビルドする場合に、LLVMがどうやって最適化してくれるのかというのを検証したという記事。 https://t.co/Jiy6iYBUxs」 / Twitter
FadisさんはTwitterを使っています 「gcc 12から-O2でvectorizationがかかるようになるらしい。vectorizationはループを展開してSIMDで実行する最適化で、従来から-O3には含まれていたが、SIMDが性能向上に寄与するかはループの内容や条件に依存し、最適化を行う判断が高コストな為-O2には含まれていなかった https://t.co/H6HUgT1u9A」 / Twitter
GCC 12 Enables Auto-Vectorization For -O2 Optimization Level - Phoronix
FadisさんはTwitterを使っています 「gcc 12ではvectorizationの判断の方法にvery cheapモードが追加される。これはループの回数が明らかで、かつそれが4の倍数なら展開してSIMD命令を使う、という物で極めて雑だがそこそこ性能向上に繋がる事が示されている」 / Twitter
FadisさんはTwitterを使っています 「gcc 12で-O2で最適化をかけるとvectorizationにvery cheapモードが用いられ、これによって-O2に求められるコンパイルの速さを損ねずにvectorizationが行われる。-O3で最適化をかけた場合は従来通りの方法でvectorizationが行われる」 / Twitter
FadisさんはTwitterを使っています 「まぁ、うちのGentooのCFLAGSは -O2 -pipe -march=armv8-a+crc+simd -mtune=cortex-a72 -fforce-addr -ftree-vectorize -fomit-frame-pointer -fstrength-reduce -fno-strict-aliasing -funroll-loops -fstack-protector だからあんまり関係ないわけだが」 / Twitter

Makoto Kato ︎︎さんはTwitterを使っています 「CPUの気持ちとかいうの、外面 (命令セット) だけ見て、内面 (uOPなどの内部の命令セット。Pentium Pro以降は命令セットのデコーダーが内部での別OPに変換してる) を見てくれない的な話じゃないの? 外面の話されてもねぇ。」 / Twitter
uint256_tさんはTwitterを使っています 「どうでもいいけど sparse conditional constant propagation って何かの必殺技っぽい」 / Twitter
コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「エントリー書きました。うだうだ。 コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog https://t.co/7ua1tCPhX8」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Itaniumはコンパイラの開発が追いつかなかったと言われるけど、実際はもともと無理筋で、単に数値計算みたいなコンパイラが並列化しやすい特殊な用途の研究成果を見て、一般的にこれくらい性能向上できると勘違いしてしまったというのが正確だと思うんだよな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そういえば、Itaniumのコンパイラって実際にはどういうレベルだったんだろう?って気になって調べてみたら面白い記事を見つけた。おそらく機械翻訳で文がこなれていないが面白い https://t.co/00jfMr4x3x」 / Twitter
history — Itaniumプロセッサがコンパイラを書くのが難しいのはなぜですか?
Miura HidekiさんはTwitterを使っています 「ネイティブコード生成してオーバフローチェックを省くとこんな速度向上するのは驚き」 / Twitter
Chris SeatonさんはTwitterを使っています 「Is it possible to safely turn off overflow checks for integer arithmetic in Ruby? Yes! You just have to write a proof for the compiler that they're not needed. https://t.co/NyIkCU3Ol9 https://t.co/awkt4QfdPw」 / Twitter
Stamping Out Overflow Checks in Ruby
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GCC (Clang) の -ffast-mathオプションには注意せよ。その名のとおり数値演算を高速化するが、正確さが犠牲になる。これは実際にはいくつかのオプションの集合であり、具体的には無限大やNaNを扱えなくなる、SIMD有効化のために演算順序が変わる可能性がある、などである。 https://t.co/X4qlmReiQ9」 / Twitter
Beware of fast-math

V8 release v8.0 · V8
Compressed pointers in V8 (public doc) - Google ドキュメント
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

infoQ

SPACE - 開発者の生産性を理解し計測する新フレームワーク
eBayでのソフトウェア品質認定の自動化
PayPalエンジニアリングチームがプレモーテム分析を実装
Litmus 2.0リリースでマルチテナンシー、カオスワークフロー、GitOps、可観測性を提供
GitLabがFalcoベースのツールで、悪意のあるコードを検出するためのPackage Hunterをオープンソース化

Wikipedia

動的コンパイル - Wikipedia
トレーシング実行時コンパイル - Wikipedia
キャメルケース - Wikipedia
カーゴ・カルト・プログラミング - Wikipedia
Cargo cult programming - Wikipedia
フィーチャートグル - Wikipedia
命令スケジューリング - Wikipedia
タプル - Wikipedia
オフサイドルール - Wikipedia
グラフ理論 - Wikipedia
グラフ彩色 - Wikipedia
Data dependency - Wikipedia
インテンショナルプログラミング - Wikipedia
インタプリタ - Wikipedia
シェープ解析 - Wikipedia
ポインタ解析 - Wikipedia
エイリアス解析 - Wikipedia
エスケープ解析 - Wikipedia
スレッデッドコード - Wikipedia
バイトコード - Wikipedia
ファイバー (コンピュータ) - Wikipedia
コルーチン - Wikipedia
ジェネレータ (プログラミング) - Wikipedia
イテレータ - Wikipedia
ワードマシン - Wikipedia
操車場アルゴリズム - Wikipedia
木構造 (データ構造) - Wikipedia
ボックス化 - Wikipedia
LISPマシン - Wikipedia

Twitter

histric

histric-1

mumumuさんはTwitterを使っています 「PALLAS: Semantic-Aware Checking for Finding Deep Bugs in Fast Path [ASPLOS '17] Linux等のシステムソフトウェアを題材に,Fast Pathにはバグが多いことを定量的に示し,そのパターンを分類.さらに,各Fast-Pathに対して,ユーザが手入力したSemanticな情報との齟齬がないか検査するPALLASを実装」 / Twitter
uint256_tさんはTwitterを使っています 「あんまり詳しくないけれど、GPUでもファジングできるんだ」 / Twitter
株式会社リチェルカセキュリティさんはTwitterを使っています 「このたび弊社は実験用データセンターに5PFLOPSの性能を誇るNVIDIA DGX A100を導入致しました。 最先端の技術と圧倒的なコンピューティングリソースを用いてサイバーセキュリティのR&amp;Dを加速させます。 https://t.co/GeKM0CH8EH」 / Twitter
サイバーセキュリティスタートアップのリチェルカセキュリティ、NVIDIA DGX A100サーバを導入。ファジングの研究開発体制を強化|株式会社リチェルカセキュリティのプレスリリース
uint256_tさんはTwitterを使っています 「入力パターンを高速に生成したいのかな」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Hyrumの法則: 「ソフトウェアのどんなに細かい挙動でも、それに依存するユーザが出てくる」 だからたとえ (SemVer基準に従って) 仕様文書上の変化がなくても、ユーザからは (互換バージョンなのに) 動かなくなったという文句が寄せられる。 https://t.co/DjdRZViCkK」 / Twitter
Hyrum's Law
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「この問題に対する解決策として、GoogleのSREが使っている「エラー予算 (error budget)」という考え方がある。つまり (挙動の変化による) エラー発生率が許容量以下ならば非互換性も受け入れようという立場である。後方互換性を絶対視する開発は現実的ではない。 https://t.co/zM83qsPRcF」 / Twitter
What's in a version number? (Or: Musings on backwards compatibility) · Alex Gaynor
Miura HidekiさんはTwitterを使っています 「V8のソースを読んでいたらエスケープ解析が入っていることに気づいた。あまり大したことやっていないなーって思ったらあまり大したことやってなかった https://t.co/6uaHQjL50J (PDF)」 / Twitter
Escape-Analysis-in-V8.pdf
Miura HidekiさんはTwitterを使っています 「こんなわざとらしいプログラム書く人いるのかな?これ以上のことやろうとするとものすごく大変になるわけだが」 / Twitter
Miura HidekiさんはTwitterを使っています 「そうか、インラインが前提になるのか。そうすれば確かに現実的に使える範囲に届く」 / Twitter
daem0nc0reさんはTwitterを使っています 「Deobfuscationの手順が一通り解説されていて、教育的でとてもよいブログですね https://t.co/oJzyLGolck」 / Twitter
A Look At Some Real-World Obfuscation Techniques – NCC Group Research
よくあるベンチマークを調べたい | κeenのHappy Hacκing Blog
ロボ太さんはTwitterを使っています 「いやこれ100パー言い訳なんだけど、HPCプログラマって最低でも上の方はプロセス並列とスレッド並列、下の方はキャッシュ効率をケアしなきゃいけなくて、その上さらにSIMDもアセンブリレベルできちんと理解して書きなさいってのはちょっとしんどい気がするわけでして……」 / Twitter
ロボ太さんはTwitterを使っています 「なんだろ、「神のように賢いコンパイラ作って全部おまかせしたい」って言ってるわけじゃないんですよ。チューニングとか苦労するのは構わないの。でも、意識しなきゃいけないレイヤ数はもう少し減らないもんかなぁ、と。」 / Twitter
みどりの恐竜先生さんはTwitterを使っています 「@kaityo256 いやほんとそうですよ」 / Twitter
ロボ太さんはTwitterを使っています 「@gachacomplete ですよね!ですよね!」 / Twitter
高梨陣平さんはTwitterを使っています 「Stackoverflowで行われた最速FizzBuzz大会の優勝コードの解説。ASMでSIMDを使っておりL2 Cacheまでで動いておりL3 Cacheは使わないという徹底ぶり。作者は英国の数学オリンピックのリザーバーだったりするそうで、記事とlobsterのコメントでも色々な貢献が紹介されている。」 / Twitter
LobstersさんはTwitterを使っています 「The Fastest FizzBuzz Implementation https://t.co/KLGJNMfYfr #assembly #linux #performance https://t.co/eCAlGwOEzG」 / Twitter
The Fastest FizzBuzz Implementation | Lobsters
The Fastest FizzBuzz Implementation
Miura HidekiさんはTwitterを使っています 「https://t.co/yKQ8i3R6G4 madviceって効果あるのか。GCを行う際にヒープ領域にMADV_RANDOMを指定すると速くなるのかしらん?」 / Twitter
とみながたけひろさんはTwitterを使っています 「「『バグってプログラマーがわざと遊びで入れてるんでしょ』とプログラミング経験皆無のプランナーが言ってたので全力で否定した」(ゲームスタジオ出身の元同僚の笑い話)をふと思い出した。コンピュータの授業でプログラムかけるようにならなくていいからこう言うのが基本知識になるといいなあ」 / Twitter
satさんはTwitterを使っています 「@takehiro_t 「セキュリティ障害って仕事作るためにあんたらが入れてるんだろ?」と対面で言われたことがあります。グーパンチしたかったですがこらえました」 / Twitter
とみながたけひろさんはTwitterを使っています 「@satoru_takeuchi オトナ!カッコイイ!」 / Twitter
Miura HidekiさんはTwitterを使っています 「JAISTにいるとき、そう言う質問をしたらサボるとサボった所がボトルネックになるから出来ることはみんなやらないといけないよってアドバイスされたな >RT」 / Twitter

mod_poppoさんはTwitterを使っています 「コンパイラーの高速化、どうするのがいいんだろう。並列化?その前に地道にアルゴリズムとデータ構造を改善するべきか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「経験則だとアロケーション、BOXING、型チェック(メソッドサーチ)の順に削減すると効くと思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、アロケーションやBOXINGを削除するには型チェックはすでに無くなったのが前提だからなー」 / Twitter

Repl.it - Haskell Online Compiler & Interpreter
Try F#
x86 and amd64 instruction reference
opv86
uops.info - Table
andreas-abel/uiCA: uops.info Code Analyzer
電子情報通信学会知識ベース |トップページ
QBE - Compiler Backend
https://cfallin.org/blog/
Lee and Seshia, Introduction to Embedded Systems
Microbenchmarking Return Address Branch Prediction « Blog

UEFI

その他

C++编撰操作系统(1):基于 EFI 的 Bootloader_imooo软件程序bug解决方案
Free Software EFI Drivers
BIOS and UEFI Firmware Version - Find in Windows
flat assembler - View topic - Multiprocessor support in UEFI
Simonas / huehuehuehuehue · GitLab
Comment #162 : Bug #1040557 : Bugs : Ubuntu CD Images
現在、Windows® OSをUEFIモードでインストールして使用しています。レガシーOSブートデバイスを第1 起動デバイスとして設定した場合、あるいはWindows Boot Managerを第2 起動デバイス以降に設定するとWindows® OSを起動することができません。 この問題の解決方法を教えてください。
[FreeBSD-users-jp 95884] Re: UEFIモードでインストールしたがHDDから起動できない
*BSD_サポート_FAQ_FreeBSD_ハード、ソフト等_ハードウェアセットアップ(a) | HPE 日本
UEFI エミュレータで遊ぶ
数多くのPCで採用されているInsyde H2O UEFI BIOSに23個の脆弱性。開示で修正へ - PC Watch
23の主要なBIOSの脆弱性が発見され、Intel、Lenovo、その他に影響を与える|自作.com

edk2

musl libc
edk2/MdePkg/Include/Library at master · tianocore/edk2
edk2/PrintLib.h at master · tianocore/edk2
edk2/MdePkg/Library/UefiLib at master · tianocore/edk2
edk2/UefiLibPrint.c at master · tianocore/edk2
edk2/MdePkg/Library/BasePrintLib at master · tianocore/edk2
edk2/PrintLib.c at master · tianocore/edk2
edk2/PrintLibInternal.c at master · tianocore/edk2
edk2/PrintLibInternal.h at master · tianocore/edk2

musl

snprintf

社会人でもOSを作りたいさんのツイート: "え、完全に誤解してたわ 。https://t.co/tLot6IEr6Q によればsnprintfは書き込んだバイト数を返すが、それはバッファが十分大きく、すべてのデータが書き込めたと仮定した場合のバイト数であるらしい。"
OS作れないマンさんのツイート: "データが書き込み先バッファより大きい場合、実際に書き込んだバイト数より大きな数が返ることになる。新しい関数scnprintfなら、本当に書き込んだバイト数を返してくれる、とのこと。"
snprintf() confusion [LWN.net]

locale

Kazuho OkuさんはTwitterを使っています 「桁区切り文字よりも小数点がロケールによって変わることの問題ですね。浮動小数を正しく文字列化するのは二進十進変換の関係から難しいので sprintf を使うのが妥当ですが、じゃあ小数点区切りを何に統一すべきか、と cf. https://t.co/n5A3D3UVZI」 / Twitter
picojson/picojson.h at master · kazuho/picojson
SouさんはTwitterを使っています 「文字列では使わないし、数字を桁区切り文字列で渡す事はないなぁ… そんなプログラム作る人がいるのはちょっと意外。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「printf / scanf とか全部この影響受けるから、文字列化したデータ生成・交換する場合には区切り符号の変換必須だけど、知っててもハマりがちな問題だよなぁ / https://t.co/i1PmoDBTxj」 / Twitter
国内音ゲー、「ベトナム語版がバグる」原因が開発者らの恐怖を呼ぶ。“カンマとピリオド逆問題”による数字のワナ - AUTOMATON
埼玉の猫さんはTwitterを使っています 「@kazuho 3.14を314E-2みたいに表記すれば小数点なくなりそう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shmorimo 指数の底もバイナリ表現と十進表現を変換する必要があるので、.を使わない表記に変換するコードを書くくらいなら、小数点ありの10進表現を文字列化するコードを書いても手間はかわらないかも...」 / Twitter
7594591200220899443さんはTwitterを使っています 「sprintfやstrtoulがlocaleに依存することを嫌ったrubyは結局自分たちでlocale非依存のprintfとかを再発明するに至っていますね…」 / Twitter
7594591200220899443さんはTwitterを使っています 「strtoulのどこにlocale依存があるんだよと思うと、あるんだなこれが。strtoul("i", 0, 36)がトルコ語かそうでないかでアルファベット順が違って破綻するんだ。」 / Twitter
7594591200220899443さんはTwitterを使っています 「rubyはstrtodも自力で再発明していますが、これはlocale依存がどうというよりもlibcのstrtodの精度に不満があるとかなんとかだった気がする。今パッとチケット思い出せないけどたしかそんな理由で入ったはず。」 / Twitter

musl - Wikipedia
musl - Wikipedia, the free encyclopedia
MinGW - Minimalist GNU for Windows | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
_BitScanForward, _BitScanForward64
Visual Studio Tips - Windows 2000 Blog
LibC library musl ported to UEFI | Firmware Security
Rich Felker(@RichFelker)さん | Twitter
libc-testsuite - correctness and quality tests for libc implementations
Makoto Kato ︎︎さんはTwitterを使っています 「perf issueとかrandom crash (use-after-free関連の)とかのデバッグやってればglibcとかMSVCRTとかが各CPU毎の最適化コードをアセンブラとかで書いてあるのは知って当然なはずだけど、みんなそこまでやらなくていいんだ。いいなぁ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「glibcもUlrichがやってた時はx86以外の最適化コードを入れてくれなくてホント面倒だったけど、彼がRedHat辞めたおかげで、いろいろ話が楽になったのはある。もうそれも10年くらい前か。」 / Twitter
muslでビルドするにはmusl.ccが便利 - kateinoigakukunのブログ

cosmopolitan

hikaliumさんはTwitterを使っています 「MacでもWindowsでもLinuxでも動くバイナリが出来上がるの面白すぎる(というかそんなことが可能だったのか…)。 https://t.co/pXZ2DbgO81」 / Twitter
Cosmopolitan C Library
伊津野 英克さんはTwitterを使っています 「シェルスクリプトとして解釈できる Windows の exe で QEMU を実行して ELF バイナリを実行してる感じ? https://t.co/14z2RfWMMw」 / Twitter
Rui UeyamaさんはTwitterを使っています 「単一の実行ファイルなのにWindows/macOS/Linux/FreeBSD/OpenBSDで動く実行ファイルが作れるというCosmopolitanというプロジェクト、ヘビーに改造されたchibiccがリポジトリに入っている。 https://t.co/BJmfN3hrDc」 / Twitter
cosmopolitan/third_party/chibicc at master · jart/cosmopolitan
品川@学生・共同研究募集中さんはTwitterを使っています 「Windows/UNIX(macOS/Linux/FreeBSD等)/BIOSで実行できる単一バイナリ実行ファイル形式 actually portable executable (ape) が面白い。 https://t.co/Hh6DtqeEjp」 / Twitter
Actually Portable Executable
品川@学生・共同研究募集中さんはTwitterを使っています 「基本はファイルの先頭にマジックナンバー "MZ" が付いているので、Windows の Portable Executable (PE) バイナリとしてそのまま実行できる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「UNIX系でシェルスクリプトとして実行すると、先頭部分は "MZqFpD='ヘッダ'" と解釈されるようになっていて、先頭のバイナリ部分は変数への代入になってスキップされて、その後ろにあるコマンドで macOS の Mach-O や Linux/FreeBSD の ELF のヘッダでファイルを自己書き換えして再実行している。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「BIOSから読み込んで実行すると、"MZ" は "dec %bp; pop %dx" になって無害、その後の "qFqD" は "jno 0x4a; jo 0x4a" でフラグの状態にかかわらずヘッダをスキップしてリアルモードのバイナリコードを開始できる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「Arm でも実行できるようにするのは難しくないだろうけど、2つのバイナリを埋め込むことにはなるので、サイズは大きくなる。あと、UNIX系だと実行ファイルに書き込み許可が必要になるのが難点か。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「macOS かどうかの判定に "if [ -d /Applications ]; then" を使っているのは、微妙な気がするけど…」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「Windows と UEFI で同時に実行できるバイナリファイルを作るのは無理っぽいかな。同じ PE フォーマットだから。subsystem の値を無視するファームウェアならいけるのかな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Cosmopolitanのこのページ、chibiccにdoxygenコメントを読む機能を追加して自動生成したページらしい。 https://t.co/dCAZBmhtEY」 / Twitter
Cosmopolitan C Library

malloc

その他

動的メモリ確保 - Wikipedia
malloc(3)のメモリ管理構造 | VA Linux Systems Japan株式会社
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
Project Zero: The poisoned NUL byte, 2014 edition
Visual Studio C++でメモリリークの検出 crtdbg.h CrtSetDbgFl | urashita.com
realloc関数怖い - ichirin2501's diary
'CVS: cvs.openbsd.org: src' - MARC
Protectable Memory "Pmalloc" Support For The Linux Kernel Updated Again - Phoronix
日記 (2014 年 1 月上旬)
メモリ管理
非カーネル用のスラブ・アロケータ - Tociyuki::Diary
mallocの動作を追いかける(環境変数編) - Qiita
std::alignを動的メモリ確保と一緒に使う - in neuro
論文「snmalloc: A Message Passing Allocator」(ISMM 2019)
mimalloc のメモリ管理 - Qiita
論文「Reconsidering Custom Memory Allocation」(OOPSLA 2002)
failmalloc - Google 検索
p20191226a - K-kiwi
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
bump pointer - Google 検索
バンプポインタアロケータ - Google 検索
Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
alloc_alignedの野良実装 - 豪鬼メモ
reallocによる配列拡張の償却時間計算量 - 豪鬼メモ
mumumuさんはTwitterを使っています 「MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels [ATC '21] OSのメモリ解放忘れを検出するために,エラーで早くreturnするパス(Early-Exit Path)を正常パスと比較する手法を提案してLinuxで実証.120このバグを見つけた.賢い. https://t.co/Kvw0RbNhxq」 / Twitter
MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels | USENIX
Rustで実装するmalloc - NTT Communications Engineers' Blog
Libpasのすべて, Phil's Super Fast Malloc

MESH

論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)
[1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
plasma-umass/Mesh: A memory allocator that automatically reduces the memory footprint of C/C++ applications.
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 アロケータとしても面白いが、memfd_create と mmap の合わせ技で、(実ファイル無しに)別々の仮想ページを同じ物理ページにマップという、カーネル的な技をユーザランドで…というテクニックは別の用途でも利用してみたいなぁ。… https://t.co/JaO3GU9M6O"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちょっと違うが、pdumpfsというハードリンクによる実体共有を活用したソフトを思い出したり。 そして、リンク多用を想定していない dump/restore がメモリ不足で落ちたり、NTFS仕様のリンク上限1024に引っかかったりと、普通では発生しない問題に遭遇しやすかった記憶も。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のアロケータの場合、一つのページに沢山の共有が発生した場合のカーネル性能への影響は、カーネルのページ構造などに依存しそう。 それと、物理ページのコンパクションに対し、仮想空間はむしろ疎な利用が増えていきそうな印象も。(64bitなら別に気にしなくても感はあるが)"
Kazuho Okuさんのツイート: "面白い。ある状況にむけた最適化を備えたmallocだと思えばvmaの上限値もブロッカーではない(最適化が効かなくなるだけ)と割り切れば使い手がありそう / https://t.co/Q0dHZmwGO5"
Kazuho Okuさんのツイート: "MESHはiOSアプリでメモリ不足になってきたらコンパクションする、的な使い方とかできるのかなぁ。できそうな気もするしゲームとかだとうれしい気もする"
takuya-aさんのツイート: "memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。 / “論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)” https://t.co/NPEgjELKQn"

TCMalloc

Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (3) TCMallocでメモリ割り当てを高速化する | マイナビニュース
gperftools/gperftools: Main gperftools repository
デフォルトの malloc を差し替えずに tc_malloc を使う - Qiita
TCMalloc : Thread-Caching Malloc
g-TCmalloc.pdf
Google Perf Tools (tcmalloc) の使い方
Google Japan Blog: Google が公開しているソフトウェアの解説(その4)- Performance tools -
TCMalloc : Thread-Caching Malloc
How To Use TCMalloc? - Stack Overflow
Google独自のC/C++用メモリアロケータTCMallocがオープンソースとして公開へ

jemalloc

Rockridgeさんのツイート: "Fx52:jemalloc 4のバージョンを4.3.1にアップデート。しかし、いまだにjemalloc自体が有効化されていない。参照:https://t.co/Yb9QfsbvzR / “1277704 – Update jem…” https://t.co/lRfhoy8hP0"
Rockridgeさんのツイート: "Firefoxのメモリアロケータをmozjemallocからjemalloc 4に置き換える作業を続けてきたが、パフォーマンスの低下とメモリ消費量の増加が一向に改善せず、置換計画は破棄された。参照:… https://t.co/JX4WNdhnHo"
Removing Jemalloc 4 - Google グループ
jemalloc について調べたのでまとめた - zonomasaの日記
なかのん&マジックさんのツイート: "<input type=text>等のエディタのメモリ消費量を約半分に削減できる目処はたったんでやらないとな。 / Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24) https://t.co/mYUVCtJLOT @_clear_codeさんから"
Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24)
なかのん&マジックさんのツイート: "jemallocはフラグメント化を抑制するために一定の大きさの空間にオブジェクトを整理してるんだけど、TextEditorのinstanceの大きさを調べるとギリギリその閾値より大きい事が判明してしまった。"
なかのん&マジックさんのツイート: "なので、input要素が大量にあるフォームに実際に入力していくと、一気にメモリ使用量が上がっちゃう。表示しただけならセーフ。"
なかのん&マジックさんのツイート: "生の数字を言っちゃうと、今、TextEditorが1024バイトのエリアに配置されてる。実際は550バイト程度しか要らないんだけど。"
なかのん&マジックさんのツイート: "64bit版の話。たぶん、32bit版は512バイトの線を割り込んでるはず。"
そのっつ (Naotoshi Seo)さんはTwitterを使っています 「jemalloc v4, 5 より v3.6.0 の方がメモリ使用量少なくて良い説というのがあるのか :thinking_face: / “Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder · GitHub” https://t.co/8ENjuojmnA」 / Twitter
Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder
Miura HidekiさんはTwitterを使っています 「まあ、メモリアロケータなんてトレードオフの塊だからな。搭載メモリは単調増加することが期待できるからメモリを使って性能を上げる方がモチベーションとしては高そうだ」 / Twitter
7594591200220899443さんはTwitterを使っています 「そりゃAlpine使ってんならもともとのmallocが遅めなのはそうでしょうな。Alpine(musl)のmallocがそういう特性だからね。でも実験してちゃんと自分達で定量的に評価しているのはすごい偉い。 https://t.co/ZbbikSeX5K」 / Twitter
Ruby × jemallocのすすめ - メドピア開発者ブログ
7594591200220899443さんはTwitterを使っています 「mallocに正解はありません。ワークロード毎にこの戦略が良いとか悪いとか色々ある。自力で色々試して自分なりの納得を得る行為が尊い。」 / Twitter

mallocng-draft

7594591200220899443さんはTwitterを使っています 「mallocのメモリ消費といえばRich Felker が新しいmallocを考案中で、 https://t.co/mCPmHCJOpW まだ未完成だけどもデザインゴールとして「返せるメモリをOSに返そうとする」をやろうとしているんだよな、将来のAlpineとかに採用される見込み。」 / Twitter
richfelker/mallocng-draft: Working draft of nextgen malloc implementation for musl libc
SODA NoriyukiさんはTwitterを使っています 「@shyouhei OSに返すってのは、たぶんmusl libcの文脈ですよね… glibc malloc は既に返せるようになってるので。」 / Twitter
7594591200220899443さんはTwitterを使っています 「@n_soda もうちょっとアグレッシブなはず、例えば前に読んだのはreallocでサイズが減ったとき減った部分だけ返すとかします、今もそうなってるかしりませんが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shyouhei 返すのを頑張りすぎると遅くなるので汎用OSだと加減が難しいんですよねえ。 musl libcは組み込み方面での利用が多くて、メモリ足りない度合いが高いので、頑張れるだけ頑張る方針なのかしら…」 / Twitter

mtrace

【メモリリーク】mtraceの使い方【glibc】 | FiS Project
メモリリーク検出:mtrace編 : しっくハック
Manpage of MTRACE
メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
mtraceでメモリーリークを検出する方法: 小粋空間
革命の日々! mtraceの使い方
mtraceを使ってみる - Akio's Log
Man page of MTRACE

Infallible memory allocation

Makoto Kato ︎︎さんのツイート: "Infallible memory allocationになって5年以上経つけど、昔のコードは未だにmoz_xmallocとかに対してnullptrチェックしてるんだよね。あれコンパイラとかで消せないのかしら"
Infallible memory allocation - Mozilla | MDN

VMA

FadisさんはTwitterを使っています 「Vulkan Memory Allocator(VMA) 3.0がd出たらしい。Vulkanではmallocではダメな特殊なメモリの確保をvkAllocateMemoryで行うが、メモリ確保がページ単位、用途に合うメモリの選択が手動等不便なので、より便利なメモリ確保のためにVulkanとアプリケーションの間に入るのがVMA https://t.co/vcXtuc4kl3」 / Twitter
AMD's GPUOpen Releases Vulkan Memory Allocator 3.0 - Phoronix
FadisさんはTwitterを使っています 「VMA 3.0ではアプリケーションがどんな用途のメモリを欲しているかを表すフラグがより詳細になる。従来のフラグも互換性の為に残されるが、新しいフラグを使うことで特定用途向けに特殊な振る舞いをするメモリを持っているGPUでよりハードウェアを活用したメモリの選択が期待できる」 / Twitter
FadisさんはTwitterを使っています 「VMA 3.0ではメモリアロケータのアルゴリズムが従来のリニアアロケータから、より高速でよく研究されているアルゴリズムであるTwo-Level Segregated Fitに変更されたらしい。また、なんとなく動いていたけど実はサポートしていなかったVulkan 1.2と1.3が正式にサポートされた」 / Twitter
FadisさんはTwitterを使っています 「VMA 3.0ではVulkanがVK_KHR_buffer_device_address拡張に対応している場合、GPU側でのアドレスを取れるメモリをVMA経由で確保できるようになる。GPU側のアドレスはGPU上で木構造や連結リストを作る際に必要になりがちで、Vulkanでレイトレーシングを行う場合必須になる」 / Twitter
FadisさんはTwitterを使っています 「またVMA 3.0はアロケータに優先度を付けられるようになる。VK_EXT_memory_priority拡張に対応するGPUでは、限られた高速なメモリにデータが乗り切らない時、透過的にページを低速なメモリに移動させるが、このとき優先度が高いページほど高速なメモリから落ちにくくなる」 / Twitter

スライド

Glibc malloc internal
katagaitai CTF勉強会 #1 pwnables編 - DEFCON CTF 2014 pwn1 heap
Kosaki - the malloc - - Togetter
Glibc malloc internal
The 67th Yokohama kernel reading party - YouTube
osdev_moku2 #2 - Google スライド
「京」におけるマルチスレッドmalloc / malloc on K computer - Speaker Deck

OSDN

「glibc 2.26」リリース、mallocのスレッド毎キャッシュによる高速化やUnicode 10サポートなどが導入される | OSDN Magazine

POSTD

OSのデバッグ:メモリアロケーション講座 | コンピュータサイエンス | POSTD

GitHub

rampantpixels/rpmalloc: Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
jemalloc
jemalloc/jemalloc
CCareaga/heap_allocator: A simple heap memory allocator in ~200 lines.
cubanismo/allocator: Incubator for a general Unix Device Memory Allocation library

Twitter

性能保証

Miura HidekiさんはTwitterを使っています 「リアルタイム性という観点なら、GC無しでもヒープからな動的なメモリ割り当てを使っているなら、フラグメンテーションが進んだ状況を考えるとmallocやfreeの時間の最悪時間の保障って難しいじゃないかな?」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 今どきのスラブアロケータなら(一定以下のサイズなら)フラグメンテーションは起こらず、最悪時間も保証できる気がしますが、空間利用効率は落ちますかね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 フラグメンテーションは起きずらいと思いますが、そのサイズのアリーナを使い果たした場合とか速度低下の状況は考えられそうです。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 確かにガチのリアルタイムシステムだと「たまにしか遅くならないから許して」という言い訳は通用しなさそうですね。」 / Twitter

malloc 失敗

Egtra (ysk-noh)さんのツイート: "基本的にはそうなんだけど、「数百MBのメモリ確保に失敗→その他の致命的例外同様、ログ吐いて続行」を経験したことがある。何事にも例外はあるんだと学んだ。 https://t.co/irgtFQDCFQ"
Fadisさんのツイート: "「メモリが確保出来なかった」という理由で例外が飛んだ時、abortする以外にアプリケーションが出来る事は本当に少ない。デバッグの足しにしようとしてこの例外を捉えて行なった処理は大抵、再度メモリが確保出来ないという例外を飛ばす事になる"
島鉄雄さんのツイート: "> mallocが失敗した後だとprintf呼べない setvbuf() で自前のバッファを割り当てておけば一応呼べるはず。… "
SODA Noriyukiさんのツイート: "みんなホントにmalloc失敗で単にabortしてるだけなの? そんなことないよね。 「このmallocは(ユーザー入力やら通信相手の挙動やらによって)現実に失敗しうるしその場合にabortじゃまずい」的な場所限定なら、実用プログラムではふつう最低限の対処は入れてると思うしそう難しくないと思うんだけど。"
SODA Noriyukiさんのツイート: "640KBしかメモリがないMS-DOSでGosling Emacs動かすときにとった対処→ https://t.co/XMLSy0TkuG これは仮想記憶前提でmallocが絶対失敗しないという仮定のあるプログラムへの後づけのパッチなのでかなり無理してるけど、でもこの程度なら簡単。 GNU emacsなら元からもっとgracefulに対処してる筈。"
わたなべごうさんのツイート: "制御用の処理とかは別途外側にスクリプト言語とかで組んでおいて、低層のライブラリでメモリエラーでたら可能な限り解放かけてから外側の言語に例外なげて後処理をまかせる、みたいな書き方はしますね。ゲームだとクイックセーブしてごめんなさいしてタイトルに戻る… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのバッファ指定で実行ボタンを押すと即死、とか嫌がられそうです(笑) 特に、32bit環境だと「OSの空き仮想メモリはあっても、プロセス内の連続アドレス空間が無く」というパターンでコケることもあったりします。… "
まさみさんは語りたいさんのツイート: "結構abortしてる。kmalloc出来ないとか末期的だし。… "
SODA Noriyukiさんのツイート: "組み込み用とかはそのために固定サイズの配列使うのが多いですよね。 僕の仕事関係はUNIXサーバー用で、abortするとまずいけど、メモリはあるだけ限界まで使いたいので固定サイズにはできず、malloc()失敗にはそれなりに対処できるように作ってるつもりです。(もちろん抜けはあると思います)… https://t.co/TFCiKl58Nm"
SODA Noriyukiさんのツイート: "カーネルがminfree程度の空きメモリがあると仮定するのは(mmがそれを保証しようと努力する作りになってるわけで)アリですからね。 大きなサイズの動的メモリ確保については、gracefulに失敗する作りになっているところの方がふつうじゃないでしょうか?… "
yohさんのツイート: "「malloc失敗後にできることは何もない」って データ永続化や次回起動時のためのMinimum Grace Shutdown処理とかもせーへんの?さすがに怖すぎない?"
ケケモコソカメニハさんのツイート: "例えばエディタでファイルを開く時のメモリ確保はエラーハンドリングしないと、巨大ファイルを読み込ませたらアプリごと落ちましたというのはみっともないのでは……巨大なメモリ確保が失敗したからって後の実行に悪影響もないでしょうし適当なエラーダイアログ出してふつーに継続では"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、大き目データ群=VirtualAlloc(コミット済)、大き目になりうるデータ群=VirtualAlloc(アドレス空間確保)、それ以外はnew/mallocという使い分けで、前者2つはリカバリ可能な対処を入れてある、という感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現実的にエラーになりうるメモリ確保はVirtualAlloc系に集約して、ほぼ発生しないはずのmalloc/newエラーは放置という割り切りをした、とは言えるかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VirtualAlloc(アドレス空間確保)の良い点の一つは、PTEを全く消費しないこと。(MSの資料だけだと心配だったので、実験して確認したり) まあ、予約空間の1/1024ほどのサイズですが。"
SODA Noriyukiさんのツイート: "ただしそういうアプリは、Cなんか使うのはやめて、もっと高級な言語使った方がいいだろうとも思ってますが。… "
まさみさんは語りたいさんのツイート: "エラーハンドリングしてるかという事なら、yesですよ。メモリ取れなければエラーを返す。… "
まさみさんは語りたいさんのツイート: "ただ、カーネル内でメモリが確保できない状況で、ユーザ空間に戻っても大したことはできないだろうなあと。… "
SODA Noriyukiさんのツイート: "小さなサイズのメモリが確保できないケースは、ユーザーに殺すプロセスを選んでもらうくらいしかできませんよね。これに対しユーザーが指定した大きなサイズのメモリを確保するたぐいだと、単にその処理だけ失敗させて以後ふつうにシステムが動き続けることも多いんじゃないでしょうか。… https://t.co/8inAx1SUKx"
Ryou Ezoeさんのツイート: "mallocが失敗した時 Linuxは失敗しない。メモリが足りなくなったらOOM Mac OSは失敗しない。メモリが足りなくなることはないという前提 Windowsはどういう戦略だっけ?"
SODA Noriyukiさんのツイート: "いや ulimit コマンドで制限かけられるので、mallocがNULL返すことがありますよ>Linux 例えば $ ulimit -v 10000 としておいて malloc(20000000) すると NULL が返ります。… "
TokusiNさんのツイート: "Win32は失敗する。Win64はどうだろう?確保しすぎるとOSの操作が困難になるぐらい重くなるから、その状態で更に確保して失敗するのは難しいんじゃないかなぁ… "
まさみさんは語りたいさんのツイート: "ああ、確かにサイズ依存ですね。あとはkernelで使うメモリなのかどうかも。… "
SODA Noriyukiさんのツイート: "ですよね。システムコールの引数サイズが可変でいったんカーネルメモリにコピーするみたいな処理だと、コピー先のカーネルメモリが確保できなかったら ENOMEM 返すのは簡単なわけで。… "
まさみさんは語りたいさんのツイート: "そんなこと無いやろ。error injectionもあるんやで。… "
Ryou Ezoeさんのツイート: "メモリ確保を失敗させると、今まで現実に動いてこなかったカーネル内のメモリ各区歩失敗のコードが動き始める。どんな不具合が表に出るかわからないので今更挙動を変えられない。しかし、メモリ確保が失敗しないならカーネルのメモリ確保失敗時のコードはすべて無用だ。"
まさみさんは語りたいさんのツイート: "Linuxカーネルでもレイヤが低いところでのメモリ確保は厳禁だし、逆にユーザに近いところはバンバン使う。そこはレビューで指摘されるしね。"
Miura Hidekiさんのツイート: "https://t.co/9Tulw464Mf 普通に売っている機器の組み込みプログラムはみんな何らかの対処をしていると思う。そうしないと、メモリが足りないから機械が動きませんじゃダサすぎる。"
Miura Hidekiさんのツイート: "まあ、あらかじめ非常用のメモリ領域を確保しておいてそれを使って要らない領域をfreeしたり圧縮したりがありがちなパターンかな?"
SODA Noriyukiさんのツイート: "小規模な組み込みプログラムはmalloc()使わず固定配列使ってるものが多いイメージがあります。ガラケーくらいリッチなハードになってもそんな感じに仕様で上限が固定数値になってたりとか。これがAndroid使ってるくらいまでリッチなハードになると対処してる方が多数派になりそうイメージが。… https://t.co/C5lCIXaYJT"
Miura Hidekiさんのツイート: "小さいのは確かにそうですね。あまりリッチなのだとメモリを使い果たしてもLinuxは落ちないという話になってアプリケーションレイアの話ではなくなる気もします。私が唯一経験のあるプリンタを想定していました。あと、おそらくテレビとかもそうじゃないかなと想像しています。… "
まさみさんは語りたいさんのツイート: "組み込み系とUnix系OSSとの相性が悪いの、mallocの話で理解できた気がする。小さいリソースから始めたプログラムは、リソースを固定的に扱い、徹底的に搾り取るのに対して、Unix系ではメモリは仮想化されたリソースで気にせず使うコーディングが許されてるからなあ。"
Fadisさんのツイート: "oomkillerが走るほどメモリが逼迫している場合、既にページアウトできるものは頻繁に追い出されている状況なはずなので、ハードディスク等の絶望的に遅い2次記憶を使っている場合、プロセスがoomkillerに落とされる前にまずホスト上でのあらゆる処理が死ぬほど遅くて何もできない、という状態になる"
星山 等(E-SW20改)さんのツイート: "とある仕事でボード刷新してメモリが倍増するからOS使うよう再設計できるって喜んでたら、μITRONのシステムコールで使うリソースを全部調べて全タスクぶん集計して、メモリきつかったから使うシステムコールを制限する哀しいお仕事が待ってた記憶が蘇った。 仮想記憶ナニソレな世界は切ない…。… https://t.co/x2VrokzT1I"
noblesse obligeさんのツイート: "最近はミドルの規模も大きいのでそこそこ余裕あるメモリを積んで動的に確保するほうが流行りなきがします。きっつきつにリソースを管理してるのはコストと性能要求がシビアで要件を満たすギリギリのSOCを選定するところですかね。… "
Satoru Uedaさんのツイート: "そのようなことも、ディストロが成長するのを阻害する要因。… "
GAUCHOさんのツイート: "弊社もついこの間まではコスト最優先でしたね。 いざ、スペックを見せられて、アホか!こんな貧弱なメモリーとプロセッサで作れるかー!ってなりましたもん。… "

abort

このコード、オシャカルトっ!さんのツイート: "malloc系の関数でmemory corruptionでプログラム終了するときとか、abort()でプログラム終了する時の処理が今までと変わったりしてるんだな。 GNU C Library 2.27 released - https://t.co/CFSv43R4Zw"
GNU C Library 2.27 released [LWN.net]
KOSAKI Motohiroさんのツイート: "glibc 2.27 でついにabortが正しく async signal safeになりました。いままではバカなことにabortないでIOをflushしていたので、signal contextなどで呼び出した時は最悪デッドロックしていました。abortの途中でデッドロックして嬉しい人はいないため、これはよい変更。というかなぜ20年ほっておいた"
まさみさんは語りたいさんのツイート: "abortが必要なほど複雑なプログラムは書いていなかった・・・とか?… "
Ryou Ezoeさんのツイート: "めったに起こらないので、ハードウェアの問題とかソフトメモリエラーを起こす程度の確率と同じであれば、そのように認識されてしまったで問題視されていなかったのかな。 https://t.co/xa88xIFMpL"
まさみさんは語りたいさんのツイート: "abortじゃなく、ちゃんとソフトウェアのエラーを回収できるように考えられたプログラムしか書いていなかったとか。そもそもabortが信用できないっていう状況なんだったら、そのようにソフトウェアを書くことが前提になっていた可能性もある。"
KOSAKI Motohiroさんのツイート: "abortがちゃんと動かないって地味に困るんですよ。バグってassertに引っかかったら、ちゃんと終了してほしいんですよ。プロセス終了してくれたら、外で監視ソフトが異常検知してリカバリに移れるんですよ。デッドロックはそういうチャンスが失われるんですよ"
SODA Noriyukiさんのツイート: "なんでこんなことになってんだっけと見てみたら、古いPOSIXだとflushが必要だと規定されてて、後でasync-signal-safe規定が入ったのか(→ https://t.co/1iuJ50DUpQ )。4.3BSD tahoeだとflushしてないので、これはSystem-V Interface Definitionが悪さしたんじゃないかしら。 https://t.co/EXX0VBOAnF"
abort
本の虫: glibcのabortマニュアルの中絶方針ジョークについて
Kazuho Okuさんのツイート: "RMSが実際に強権を発動したわけではないし、検閲規制委員会は誤訳だし、メキシコシティ云々も関係ない気が / “本の虫: glibcのabortマニュアルの中絶方針ジョークについて” https://t.co/swYqITC4yI"
Kazuho Okuさんのツイート: "まあ、RMSが「GNUは純粋な技術的プロジェクトではない」から、他のコミッタのコンセンサスを無視し強権を発動してジョークを戻す、と言ったのは確かだし、そういうプロジェクトなんだということなのかなーとは言いたくなる"

@kazuho

ASAN

Kazuho OkuさんはTwitterを使っています 「1バイトごとにfgetcしてreallocして追記してくの、テストコードだったらいいやん、って思うやん? asanをオンにしてると、500KB読むのに数分かかるんだぜ https://t.co/wkSAjTtXVs」 / Twitter
faster CI by kazuho · Pull Request #2887 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「asanオフとオーダー2つ変わるのかー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「通常ならメモリ確保は毎回reallocを呼んでたとしても実際の再確保はexponential back offするからトータルコストはO(N)のところ、asanがオンだとoverrun検知の関係でO(N^2)になるのかなー」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho ASan 環境下で、早期の bug 検知の為に realloc が毎回再割り当てしてる可能性…🤔」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/U0mQIvIG8X そうだった…毎回違う領域確保して memcpy してるので、backoff を当てにすると焼かれる🧐 # heap overrun 検知する為にはそうなるよなあ🤔」 / Twitter
llvm-project/asan_allocator.cpp at 07092ea6bd1370da5eb9e05cc2910039f5f08bbd · llvm/llvm-project
Kazuho OkuさんはTwitterを使っています 「@objectxplosive やっぱりそういうことなんですね。ありがとうございます」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho (interior pointer あるのに)アドレスが動くの忘れてるとか、余分があるから少しはみ出しても大丈夫みたいな事の早期検知と実装の手間を減らす為ですかねえ🧐 &gt; realloc == malloc + free」 / Twitter

Kazuho Okuさんのツイート: "あれ glibc で free 時に解放されるメモリを何かでフィルする機能(macOSでいうところのMallocScribble)みたいなのってないんだっけ"
Kazuho Okuさんのツイート: "asanがscribbleもしてくれるんだっけ"
Kazuho Okuさんのツイート: "ああこれは負荷低くて良さそうですね。ありがとうございます https://t.co/pgFnkQ9q9y"
Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "ユーザ「終了時にメモリリークしてるってasanが言います」 僕(めんどいなー。どうせmainで確保してるコードだしallocaに変えよう。。。) ユーザ「修正を確認しました。ばっちりです」 僕「アラォッケーってか」"
Kazuho Okuさんのツイート: "goto禁止教の人たちはソースコード見せなければ無害だけど、メモリ解放必須教の人たちは防ぎようがないんだよね"
Kazuho Okuさんのツイート: "struct S *s; ... s = malloc(sizeof s); とかみんながやるミスでしょ。やったことない人いるの?"
Kazuho Okuさんのツイート: "p = malloc(sizeof *p) は不整合が脆弱性につながるイディオムなのでラッパ書いてる人も多いんじゃないかな"
Kazuho Okuさんのツイート: "「malloc失敗時にabortしていい」という主張は、malloc失敗を異常ケースとみなしていいという主張と同義なんだけど、昔はmalloc失敗はよくあることだったし、ディスクが遅いから自動保存なんてできなかったので、mallocに失敗してからファイル保存処理を実行できる必要があったとかなんとか"
7594591200220899443さんのツイート: "一年考えてまだなぜclangがこのコードを吐くのがバグじゃないのか理解できない。*p=1;(なにか);return *p;をclangはreturn 1;に最適化しているわけだけれども、なぜ(なにか)がpをぶっ壊してないことが静的に確定するのか?mallocがちょうどそのアドレスを返すことがあり得るよね?わからん。… https://t.co/2EJdGVDKqq"
John Regehrさんのツイート: "here we try to guess the value of a pointer -- LLVM says we cannot guess it and GCC suspects we can https://t.co/iPzc11HRdR"
Compiler Explorer
Miura Hidekiさんのツイート: "mallocをどう解釈するかじゃないかなー?mallocを厳密にメモリ領域を確保するという解釈ならmallocのコールとoffset 0のデリファレンスをコード生成しないといけないだろうけど、mallocはローカル変数のように同じセマンティクスが実現できれば実体は無くていいという解釈ならclangの方法も正しい"
Kazuho Okuさんのツイート: "mallocは常にエイリアスされ得ないアドレスを返すという関数宣言属性 __attribute__((malloc)) があって、それを認識してるだけでは?… "
Kazuho Okuさんのツイート: "というか、*(int*)0xfeedcafeする時点でimplementation-defined behaviorになり、そして当該処理系は、mallocが返しうる領域をユーザがmallocを経由せずに指定した場合の挙動は定めていない、ということのような気がします… https://t.co/PtQpVsTsua"
Kazuho OkuさんはTwitterを使っています 「slabっていうのかbinっていうのか知らないけど、各malloc実装があらかじめ用意している小容量のスロット群のサイズ一覧表みたいなのあるのかな。 何に使いたいかというと...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、18バイトの領域が4個必要だったとして、それは固定で確保しておいたほうがいいのか、mallocで18バイト毎に確保すればいいのか、みたいなことをパッと判断したい。 32バイトのbinが使われるなら、要素あたりのメモリ使用量はポインタ含め40バイト になるからmallocしなくていいか、とか...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「20バイトのbinが使われるなら、mallocもありかな、とか... 実際は20バイトのbinなんてないと思うけど、例として挙げてます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「最近の64bitサーバなら、一番オーバーヘッドが少ないmallocでも16,32,48,64あたりじゃないかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だいたい、malloc/freeとか、フラグメンテーションが起こりやすい仕組み使ってていいのは中学生までやねん。プロは動的メモリ管理はハンドルでやってコンパクション対応する …って、じっちゃんが言ってた」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「これ若者にはギャグだと通じないんですが大丈夫かな… # 解説: # 仮想記憶導入前に作られた太古のMacOSやWindows には、生ポインタ(*p)じゃなくポインタへのポインタ(**p)を使ってメモリ管理をする仕組みがありpをハンドルと呼んでいたのぢゃ # OS側が**pを勝手に変更してコンパクションしてたのぢゃ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「仮想記憶がある場合、論理アドレスは一定に保ったまま物理空間でコンパクションできるので、(論理アドレスを使う)ユーザ空間ではコンパクションを気にしなくてよくなった、という言い方もできますね。ページサイズ&lt;&lt;物理メモリ量なら、それで問題ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「既存のmallocに対する不満、munmap呼びすぎでコア数増加にともない負荷でかくなってきてるところにあって。じゃあ、全スレッドの解放メモリまとめて、一定間隔で一気にmunmapすればいいよねって話になるんだけど、そういうシステムコールがない気がする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「munmap呼ぶのはジャイアントロック取る以上に?凶悪なんだから、ロック減らす努力してるmallocはmunmap呼ぶ回数もCPU数に比例しないような設計を採用すべき」 / Twitter
Kazuho OkuさんはTwitterを使っています 「みたいなことを、ぼんやりと思ってて、だからまあ、やるなら本当にそこが問題なのか確認した上で、既存mallocとカーネルに手を加えてみるみたいなことをやればいいんだろうなと思うんですけど他の案件で忙しい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーそうですね。 https://t.co/Ac4IRrrt5b に MADV_FREE &gt; MADV_DONTNEED &gt; munmap である理由の解説がありました」 / Twitter
mizushikaさんはTwitterを使っています 「最近 Go のメモリ解放処理を調べる機会があって、メモリ解放時に munmap せずに madvise(MADV_DONTNEED or MADV_FREE) している理由を考えていたのだけど、munmap が重い (tlb shootdown のせい) が主要因なのかな。」 / Twitter
mizushikaさんはTwitterを使っています 「@kazuho なるほど、参考になります。MADV_FREE はダーティビットを落とすだけなので(すぐに再利用されたら)ページフォルトや確保が走らず、MADV_DONTNEEDよりも速い、と。ただ Go 1.6 では DONTNEED から FREE に変えていて、この辺は RSS がちゃんと観測できないのを嫌ったからみたいですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「boltみたいなltoとか、いろいろサーバ系の最適化あるけど、次に出てきそうなのはメモリプレッシャー見ながらメモリ使い回し戦略変えるアロケータとかかなとか思ってる(既にあるかも)」 / Twitter

はろさんはTwitterを使っています: "#DroidKaigiA 「dalvikでは、dlmalloc, ARTではRosAllow。Segeregated free listを使い、並行メモリ割当に対応。」そういや、最近はjemallocがdefaultやね。Android."
OS作れないマン WalB担当さんのツイート: "OSのメモリ管理方法として、可変長メモリブロックの先頭に管理用ヘッダを埋め込んでリンクリストを形成する方法に名前がついてた気がするけど、なんだったかな。"
ゆたかさん🐬さんのツイート: "freeよりもmallocのほうがコストがかかるので、処理高速化のため実際に解放せずプールしているのだと思われます。 https://t.co/npAdD3xnfo"
Rui Ueyamaさんのツイート: "なぜ速いかというと必要なメモリをスタックだけからアロケートしているというのと(やっぱmallocは遅い)、適切な中間表現を作ってパーズと文字列化を分離しているからだと思う。適切なデータ構造を選べばプログラムは簡単で速くなるんだなぁという感じ。"
Rui Ueyamaさんのツイート: "いま思えばできる限り速いmallocを書くという課題(ベンチマークのスコアで点数がつく)は教育効果高かった。他人にシステムズプログラミングを教える立場になったらあれは活用したい。"
がちゃぴん先生さんのツイート: "glibc 2.26 がリリースされました。今回は小粒な変更な印象。malloc の per-thread cache がパフォーマンスインパクト大きそうかな"
Fadisさんのツイート: "mallocを使わないプログラマ、Cが透けて見えない言語の使い手の可能性と、ベアメタル魔人の可能性がある"
Fadisさんのツイート: "mallocを使わない人、最近はHugepageを使わないとTLBミスががががが、な人達もいるか"
島鉄雄さんのツイート: "ゲームだと以下の原因がある。 1.メモリが枯渇している→特定の手順の時だけメモリ不足になる→フラグメントにより大きな空きが無い 2.同じアドレスでfreeを2回する(malloc管理領域が破壊) 3.メモリ破壊(free後に書き込む等) 1.2.はmalloc()をデバッグ機能付きにすれば対処可能だけど、3.は地獄…… https://t.co/gpPYUz1hTu"
島鉄雄さんのツイート: "ちょっと間違ってた… 1.の場合は NULL が返ってくるだけだから malloc で SEGV は発生しなかった。(NULL チェックしてなければその後 SEGV だが) 3.は必ず malloc が SEGV する訳じゃないけど、malloc の管理領域を破壊すると malloc の SEGV が発生する、という感じか。"
OS自作 uchan_nosさんのツイート: "フル機能のsprintfは場合によってはmallocを呼ぶのでクソ.mallocとか絶対に呼ばないsprintfが欲しい."
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「20数年の時を経て、malloc/free論争の再開(笑) (当時、プロセス終了でリソース開放なら終了時freeは無駄、が多数派で終わった感) https://t.co/h9dteQ3XfV」 / Twitter
FadisさんはTwitterを使っています: 「C++のRAIIによる確実なメモリの解放、プロセスの寿命を超えて生存するNVDIMM上のデータの前では無力で厳しい」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「記事がめっちゃ長くて読めてないんだけど、高位アドレスから低位アドレスに向かって確保するのが効率的な理由を、誰か一言で理由を教えてくれませんか」 / Twitter
hikaliumさんはTwitterを使っています: 「@uchan_nos 高位から低位に確保すれば、アライメント合わせが切り捨て方向になる 確保サイズが空き容量よりも大きい時のオーバーフローの考慮が1個減らせる つまり条件分岐が減る だから速い」 / Twitter
Masaki HaraさんはTwitterを使っています: 「https://t.co/arNOjyAz8w 「確保しっぱなし」の簡易アロケーターを実装する場合、メモリ空間の上から下に向かって確保するのがよいという記事。たしかに何も言われないとつい下から上向きに実装してしまいそう。」 / Twitter
Always Bump Downwards
Masaki HaraさんはTwitterを使っています: 「@hutai 用語が古いのか仰りたいことが正確にはわかりませんが、おそらく問題をより複雑に読み違えているのでは。ここでは完全なヒープやガーベージコレクションなどは考えておらず、最もシンプルな形態のアロケーターを考えています。とりあえず元記事の前半を読むといいと思います。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「@hutai 考えていることはシンプルで昔のアーキテクチャにも当てはまるはずなので、昔から「常識」だったとしてもおかしくないとは思います。ただ、それをこうしてブログにしてより多くの人に知らしめた人が偉いのであって、暗黙知だったとあとから主張されてもあまり意味がないのかなと思います。」 / Twitter
uchanさんはTwitterを使っています 「Intel Pinで解析対象プログラムのmallocを置き換え,ヒープオブジェクト一覧を得ることができた。『動的バイナリ解析の基礎』っていう同人誌に従ってやってみただけだけど。 https://t.co/L4ApEgvBKK https://t.co/SavCYgjuQK」 / Twitter
動的バイナリ解析の基礎 - バイナリイーター - BOOTH
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「とくにRustに限った話ではないが、例えばC++ならデストラクターを実行する必要がない型にしておいてmonotonic_buffer_resourceからメモリを確保するなどしてちょっと最適化できるかな。」 / Twitter
κeenさんはTwitterを使っています 「んー、この発想はなかった。RustにGCがないとはいっても、大きなデータ構造を開放するときはstop the world的なのは起きうる。それを別スレッドに逃がす話。 Rust: Dropping heavy things in another thread can make your code 10000 times faster https://t.co/s0CRKTvemi」 / Twitter
Rust: Dropping heavy things in another thread can make your code 10000 times faster
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「結局問題は、複雑なノードベースのデータ構造を構築する大量の小粒なメモリ群を一つづつ開放していくコストなので、専用のアロケーターを使えば効率的になる。」 / Twitter
Kentaro HaraさんはTwitterを使っています 「Chromiumのメモリ管理周辺のコードはガチガチに最適化してあるんだけど、たまに観察される現象が「関数をインライン展開しないほうが速い」。最近のCPUは相当賢いので、(インライン化による命令数削減のプラス効果)&lt;(コードサイズ肥大化による命令キャッシュミス増加のマイナス効果)になりうる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「見識ありそうな人達の結論は「(まともなOS上なら)終了時freeは時間の無駄」だったかな。」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「malloc and free とは: かつて fj.comp.lang.c というニュースグループにおいて「プロセス終了時に free すべきか否か」という議論が紛糾し、1年以上続いた。 https://t.co/j64t4aYS6g で読めるけど有益な情報は特にないので読まなくていい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「時間の無駄」と表現したけど、「無意味」なだけでなく、実際のUXを悪化(なかなか終了しない)させる場合は積極的に悪い、という含意もあり。」 / Twitter
ytakanoさんはTwitterを使っています 「mallocだけでaligned malloc作れるのか。メモ。 https://t.co/epXTIA5mwS」 / Twitter
Generating Aligned Memory - Embedded Artistry

AoiMoe a.k.aしお兄PさんはTwitterを使っています 「アロケータまわりも「専用アロケータが正義→今はmallocが正義やで→やっぱり専用アロケータが正義→……」って感じでトレンドが輪廻してる気がする」 / Twitter
Kentaro HaraさんはTwitterを使っています 「チームのみんなががんばってくれました!!🙂これまでChromeはmallocを使ってましたが、徹底的に最適化し尽くした専用メモリアロケータ(PartitionAlloc)に切り替えて、Windowsで22%のメモリ削減を達成しました。セキュリティ面も強くなってます。他のOSも順次置き換えます。https://t.co/S4Me4uN1nS」 / Twitter
Chromium Blog: Efficient And Safe Allocations Everywhere!
Miura HidekiさんはTwitterを使っています 「静的解析や動的プロファイリングをして、そのアプリケーションに最適なアロケータをコンパイラが生成するって考えているけどよい考えが浮かばない。もっと一般化してランタイムを生成するのそのうち行うようになると思う。」 / Twitter
Kentaro HaraさんはTwitterを使っています 「いまどきmallocを再発明してどうするのと言われそうですが、メモリレイアウトを完全に支配できるのでChromeによるChromeのための最適化を徹底的にかけられるんですよね。(あとこれ、大学時代から数えてぼくが関与した6個目のメモリアロケータ作品になります 笑。しゅみ・・・)」 / Twitter
Low-fragmentation Heap - Win32 apps | Microsoft Docs
GetProcessHeap function (heapapi.h) - Win32 apps | Microsoft Docs
HeapSetInformation function (heapapi.h) - Win32 apps | Microsoft Docs
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Cでは、malloc()の成功 == 本当にメモリが利用可能、とは限らない。たとえば1TBの値をmallocしようとすると、macOS/clangでもLinux/GCCでも成功したかのように見えるが、実際に割り当てているのは仮想メモリなので、書き込もうとした時点でクラッシュする。 https://t.co/tqpIMI3qrS」 / Twitter
In C, how do you know if the dynamic allocation succeeded? – Daniel Lemire's blog
κeenさんはTwitterを使っています 「有用そうなこと書いてある気がするんだけど長くて読んでない()誰か読んで解説して Investigating Memory Allocations in Rust | Y. Santos Personal Page https://t.co/ZTtW4iJ3wL」 / Twitter
Investigating Memory Allocations in Rust | Y. Santos Personal Page
Miura HidekiさんはTwitterを使っています 「@blackenedgold Google先生に助けてもらって日本語で読みました。最後のまとめだけを読めば必要十分に有用か面白いと思います。」 / Twitter
κeenさんはTwitterを使っています 「@miura1729 ありがとうございます!」 / Twitter

PhoenixWiki

EFI SYSTEM TABLE - PhoenixWiki
EFI CONFIGURATION TABLE - PhoenixWiki
EFI BOOT SERVICES - PhoenixWiki
EFI RUNTIME SERVICES - PhoenixWiki
EFI LOADED IMAGE PROTOCOL - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL MODE - PhoenixWiki
EFI STATUS - PhoenixWiki
Category:Device Path - PhoenixWiki
EFI LOAD FILE PROTOCOL - PhoenixWiki
EFI MEMORY DESCRIPTOR - PhoenixWiki
EFI GRAPHICS OUTPUT BLT PIXEL - PhoenixWiki
EFI GRAPHICS OUTPUT BLT OPERATION - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL - PhoenixWiki
EFI GRAPHICS PIXEL FORMAT - PhoenixWiki
TianoCore EDK2: MdePkg/Include/Uefi/UefiSpec.h File Reference
Category:UEFI 2.0 - PhoenixWiki

uefi.org

EBC_Driver_Presentation.pdf
UEFI_Plugfest_2011Q4_P5_Insyde.pdf
Windows Boot Environment
edk2-platforms/Silicon/Intel at master · tianocore/edk2-platforms
UEFI Summer Plugfest 2011
UEFI Revocation List File | Unified Extensible Firmware Interface Forum

MS

高速スタートアップ

System Power States (Windows)
イーサネット - Windows 10 hardware dev
「通常シャットダウン」と「完全シャットダウン」 Windows10高速スタートアップの設定 | Mechalog
富士通Q&A - ハイブリットシャットダウンからの復帰後のサインイン画面で、Num Lock状態が解除される場合があります。 - FMVサポート : 富士通パソコン
Windows 10で高速スタートアップを無効にする方法 – iBitzEdge
ハイブリッドブートを無効にする方法【Windows 8】 | MacRuby
シャットダウンと休止状態とスタンバイ(スリープ)状態の違いとメリットデメリット | パソコンの問題を改善
Windows 10(完全なシャットダウンを実行する) | PC Cafe サービス・サポート編 | パナソニック パソコンサポート
Windows10の通常シャットダウンと完全シャットダウンとスリープの違いとは | The Windowsマスター
Windows10の高速スタートアップって何?速いけど危ない?無効にする方法は? | ligamap
121ware.com > サービス&サポート > Q&A > Q&A番号 018214
Windows 8.1ミニTips (108) 「高速スタートアップ」有効時、BIOS/UEFIを呼び出すには | マイナビニュース
Windows 8.1ミニTips (110) 高速スタートアップが使うハイバネーションファイルのサイズを変更する | マイナビニュース
Windows 8レボリューション:第17回 素早い起動を可能にする「高速スタートアップ」 - @IT
Windows 8で実装された「高速スタートアップ」とはどんな機能か解説 - 道すがら講堂
Windows 8.1ミニTips (107) 高速スタートアップを有効にする | マイナビニュース
パソコンの電源を完全に切る方法 (高速スタートアップを一時的に無効にして完全にシャットダウンする方法) - マイクロソフト コミュニティ
Windows_Japanさんのツイート: "【実は違う「シャットダウン→起動」と「再起動」】 #Windows10 のシャットダウンでは、次の起動を高速化するために、“現在の環境を保存”する機能が働きます。 対して再起動では、“環境をリセット”して起動します。 #豆知識 https://t.co/pk5csWDib9"
Windows_Japanさんのツイート: "【「シャットダウン→起動」と「再起動」の違い】 #Windows10 のシャットダウンでは、次の起動を高速化するために現在の環境を保存する機能が働きますが、再起動では環境をリセットしています。パソコンの調子が悪くなった時は、高速化しない「再起動」を試してみてくださいね。 #豆知識 https://t.co/9o1FbvwS6w"
日記 (2014 年 11 月下旬)
exJP2QNBさんのツイート: "さらに『フルシャットダウン』なんてのもありますね。 シャットダウンより再起動、とのことですが、問題によっては、再起動では直らなくて、シャットダウン→電源オン、じゃないとだめなときもあります。 デバイスの電源管理の問題のときとか。… "
SODA Noriyukiさんのツイート: "SHIFTキーを押しながらシャットダウンするとか、あるいは[設定]=>[更新とセキュリティ]=>[回復]=>[今すぐ再起動する]=>[PCの電源を切る]で呼び出す奴ですね。高速スタートアップOFFのシャットダウンはこれと同じになるんじゃないかと思ってるんだけど、違うあるんでしょうか?… https://t.co/TPU9fhPnLC"
exJP2QNBさんのツイート: "PC内部のデバイスの電源管理に差があることがあります(某社だけ?じゃないと思いますが)。 バッテリー抜いたり、デスクトップならコンセントからプラグ抜いちゃえば、差はないですね。… "

Fast Boot

Windows7でもFastBootが効くってホント? - 週刊アスキー
自作PCをよくするワザ、教えます(3) ~マザーボード 初級編~ - AKIBA PC Hotline!
本の虫: Windows要件を満たしたPCで、Microsoftの屈辱的なライセンスに同意せず別OSを使うのが困難な状況

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Windows の UEFI プロトコル - Windows 10 hardware dev
ブート モード管理 UEFI プロトコル - Windows 10 hardware dev
Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
USB デバイスから Microsoft Surface を起動する
UEFI ファームウェア - Windows 10 hardware dev
UEFI 環境からのデバイス I/O - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
/MACHINE (ターゲット プラットフォームの指定)
UEFI ベースの推奨ディスク パーティション構成
UEFI 検証オプション ROM ガイダンス - Windows 10 hardware dev
セキュア ブートの無効化 - Windows 10 hardware dev
Clarification of new Windows UEFI/SMM security feature | Firmware Security
PC OEM requirements for Device Guard and Credential Guard | Microsoft Docs
UEFI で OS 起動前の環境を保護する – Building Windows 8
山市良のえぬなんとかわーるど: Tips: Windows のインストール時に UEFI か BIOS か判断する方法
11月の月例アップデートで一部のLenovo製ラップトップが起動不能に - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VS2013まで、snprintf で n を超える場合、\0が付かない上に、戻り値に-1が返るという仕様だった。 https://t.co/KdPadErguz strncpy共々使いづらいため、snprintfz とか strncpyz みたいなオレオレ関数を作って対処していた。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に、VS2015以降のsnprintfがC99準拠になっていたのを初めて知った。」 / Twitter
UEFI scanner brings Microsoft Defender ATP protection to a new level - Microsoft Security
拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
Adventures in Microsoft UEFI Signing | James Bottomley's random Pages

Intel

The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
https://firmware.intel.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Memory_Map_in%20UEFI_BIOS.pdf
A_Tour_Beyond_BIOS_Memory_Practices_with_UEFI.pdf
Address Range Partial Memory Mirroring | Intel® Software
intel/ModernFW
Intel Seamless Update: Intel Preparing For System Firmware Updates Without The Reboot - Phoronix
Open Source Firmware: Two Ends of the Spectrum | Intel® Software
Intelが16の新しいBIOSファームウェアの脆弱性をリスト|自作.com

SMBIOS

SMBIOS | DMTF
www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf

SMM

naitakuさんはTwitterを使っています 「SMRAMが書き換えられちゃうと本当にダメでHVCIすら突破出来るって話。」 / Twitter
naitakuさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
Attacking the Golden Ring on AMD Mini-PC | by danny odler | Medium
naitakuさんはTwitterを使っています 「Haswell以降は"SMM Code Access Check"があるんで、これだけで任意のコードが実行できるわけではなさそうな気がするんですが、A potential vulnerability ってことなんですかね。」 / Twitter
Satoshi TandaさんはTwitterを使っています 「#seccamp で僕の講義受ける人、001はわかりやすいのでレポート読んでみてください。001の類似はセキュリティバウンダリーとツールの使い方を理解したら、あとはひたすら複数会社のBIOSダウンロードしてSMMのSMIリバースすれば絶対ほかにも見つけられます」 / Twitter
Satoshi TandaさんはTwitterを使っています 「001は要するに、高い権限で動くコードが低い権限のコード実行したらダメって話です。 カーネルがユーザーモードのコードそのまま実行したらだめ、VMMがカーネルやユーザーモードのコードそのまま実行したらダメ、SMMはそれ以外のどのコード実行してもダメ、ということ」 / Twitter
BINARLYさんはTwitterを使っています 「#efiXplorer team discovers multiple vulnerabilities in Lenovo devices: [BRLY-2021-001] SMM arbitrary code execution (privilege escalation) [BRLY-2021-002] Misconfigured Intel Boot Guard protected ranges (IBB). Details: https://t.co/31BqiUFkLb Advisory: https://t.co/3HGdDosf7g」 / Twitter
Vulnerability-REsearch/Lenovo at main · binarly-io/Vulnerability-REsearch
Lenovo BIOS Vulnerabilities (July 2021) - Lenovo Support FR
Satoshi TandaさんはTwitterを使っています 「@naitaku もし有効にされていたならば😉 レポートから見るに、明らかにcall out “できる“ 前提での実装なので意図して有効にしていないのでしょう」 / Twitter
naitakuさんはTwitterを使っています 「@SatoshiTanda そうか。もともとのコードがSMM外のコード実行してるんで、それが動いていたのなら SMM Code Access Check は無効だった、ってことですね。このResetSystemを動かすために無効にしちゃったのかな。残念すぎる。 返信ありがとうございます!」 / Twitter

Golden Key

Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea • The Register
Oops! Microsoft Accidentally Leaks Backdoor Keys to Bypass UEFI Secure Boot
Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
Microsoft Secure Boot key debacle causes security panic | ZDNet
Secure Boot Isn't So Secure After All: The Golden Key Is Out - Phoronix
Windowsマシンのセキュアブートを無効化できるセキュアブートポリシーが流出、解析結果が公開される | スラド セキュリティ
Windowsのセキュアブート機能が回避可能になっていたことが明らかに - GIGAZINE
Microsoft Mistakenly Leaks Secure Boot Key | Threatpost | The first stop for security news
Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open | Ars Technica
Secure Golden Key Boot: (MS16-094 / CVE-2016-3287, and MS16-100 / CVE-2016-3320)
MSのセキュアブートバイパス問題--セキュリティ研究者らが経緯を明らかに - ZDNet Japan
Microsoft、UEFIセキュアブートのポリシーを誤って流出 | マイナビニュース

OSDev

Broken UEFI implementations - OSDev Wiki
El-Torito - OSDev Wiki
Uefi.inc - OSDev Wiki
Debugging UEFI applications with GDB - OSDev Wiki
Livaさんのツイート: "qemuにgdbに繋いでデバッグすると「Remote 'g' packet reply is too long」とか言われてデバッグする問題、16bit->32bit->64bitの遷移が問題らしい https://t.co/jNipyBwgea #liva_notebook"

セキュアブート

セキュアブート - ArchWiki
Windows 10ロゴプログラムではセキュアブート無効化オプションの搭載が必須ではなくなる | スラド Linux
Linux FoundationがUEFIブート向けのセキュアブートシステムを公開 | マイナビニュース
Linuxのブートをセキュアにする「UEFI Secure Boot System」 - @IT
Acer Iconia W4にLinuxをインストール…失敗 ( UNIX ) - 占い猫 ペンタクル★キャット - Yahoo!ブログ
certificate 入門 パッケージ管理 - LinuxベースのディストリビューションでWindowsアプリケーションに署名する - CODE Q&A 問題解決
OpenSSL-based signcode utility download | SourceForge.net
ej-technologies blog Signing launchers and installers
druides
セキュアブートについて知ってほしい10のこと - wolfSSL
Device Identity as Yet Untold - Speaker Deck
ken\dさんはTwitterを使っています 「@KuniSuzaki @EurekaBerry @hkuni 今まではTPM内のみで電子署名ベースで完結していたSecure Boot in UEFIですが、動的な検査ができるようになったと解釈しております」 / Twitter
ArchLinux にSecure Boot を導入する - Qiita
3.2. Shim
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 私のIIJセミナースライドがリンクされ恥ずかしい。 Trusted OS一覧は有用 HiSilicon/Huawei (TrustedCore) Qualcomm (QSEE) Motorola (Qualcomm SoC) HTC (Qualcomm SoC) Trustonic (Kinibi &amp; MobiCore) Samsung (TEEGRIS) @enovella_ Thank you.」 / Twitter
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 書ききれなかったけど、下記の項目すごく大事。 TEE Fuzzing TEE Secure Boot Microarchitectural attacks applied to TEE」 / Twitter
ほぼすべてのLinuxのブートローダーに脆弱性 - PC Watch
There’s a Hole in the Boot - Eclypsium
ADV200011 | Microsoft Guidance for Addressing Security Feature Bypass in GRUB
ブートホールの脆弱性 - GRUB 2 ブートローダー - CVE-2020-10713 - Red Hat Customer Portal
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「grub[.]cfgが書き換えられた時点でそのシステム終わってますけどね https://t.co/V4NsylK3Wb」 / Twitter
Linuxで広く使われるブートローダー「GRUB2」にセキュアブートを回避できる脆弱性「BootHole」が見つかる - GIGAZINE
FadisさんはTwitterを使っています 「BootHole: GRUB2のgrub.cfgのパーサにバッファオーバーランを起こすバグがあり、細工したgrub.cfgで任意のコードを実行できる脆弱性。セキュアブートが有効であってもgrub.cfgは元々署名されていない為攻撃者によるコードの挿入を許してしまう https://t.co/kHuMomzj1n」 / Twitter
FadisさんはTwitterを使っています 「ブートローダの脆弱性、アップデートでトラブルが起きそうだなと思ったらもう起きてた。 RHEL8でBootHole修正版のGRUB2にアップデートするとshim経由でGRUB2を起動している環境でGRUB2がメニューにたどり着く前にハングする不具合が報告されている https://t.co/hrESKklfN1」 / Twitter
1861977 – RHSA-2020:3216 grub2 security update renders system unbootable
ブートローダーの「GRUB2」にバッファオーバーフローの脆弱性 | マイナビニュース
BootHole対策パッチによってRed HatやUbuntuが起動不能に。さらなるパッチが公開 - PC Watch
Bypassing UEFI Secure Boot with Thin-Hypervisor - Speaker Deck
Microsoft、セキュア ブートの迂回攻撃を防止するセキュリティパッチを再リリース - 窓の杜
Microsoft、Windows 10向けのUEFIセキュリティパッチを公開するも、問題発生により撤回 - 窓の杜
Multiple New Security Issues Hit GRUB Bootloader Around Secure Boot - Phoronix
Windowsのデバイスドライバをマイクロソフトに送って署名してもらう方法: なひたふJTAG日記
Satoshi TandaさんはTwitterを使っています 「Secure Bootもいろいろ難しさがあって、セキュリティ上問題のあるモジュールが署名されていると、それがするっと実行&悪用されてしまう、という問題があります。これはそういうモジュールとExploitの例 https://t.co/5VCoL9Vi9I (これはWindowsでもある問題ですね) Revocation…? なにそれ🤷🏻‍♂️」 / Twitter
HackingThings/SignedUEFIShell: Information about a signed UEFI Shell that can be used when Secure Boot is enabled.
セキュアブートできるOVMFをソースからコンパイルする - Qiita
Microsoft、誤ってマルウェア入りドライバに署名 - PC Watch
Microsoftがコード署名プロセスの弱点を突かれて誤ってルートキットに署名したことが判明 - GIGAZINE

Grub

grub rescueで'grub_file_filters' not foundが出るときの対処方 | κeenのHappy Hacκing Blog
ubuntuのブートローダが壊れたけど、Live環境から「boot-repair」を使って無事修復できました - 日々過ごすブログ
GRUB2(UEFI)のコンソールからの起動メモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
fedora 30からgrubの仕様が変わったのでφ(..)メモメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
このコード、オシャカルトっ!さんのツイート: "/boot/efi/EFI/xxx/にはBLS仕様になったgrub.cfgがあるので、grub.cfgを参照するというところは変わってなさそうです。… "
GRUB/EFI サンプル - ArchWiki

blog

その他

UEFI: The Oft-Rumored Death of UEFI's CSM Prophesied Again by Intel
Step to UEFI (78) —–SERIAL_IO_PROTOCOL | www.lab-z.com
Another attempt at blogging
Display UEFI Firmware Version, Vendor, Revision and Build Date « Musings
EFI_EVENTを使って非同期処理を行う - genkami.github.io
ディスクイメージをネットワークブートする – Raphine Project
UEFI + iPXE で自作 OS をネットワーク起動する - uchan note
【マザボ】 ASUSのZ390マザーボード環境にWindows10をインストールすると、勝手に『AsusUpdateCheck』というサービスが登録される。これはいったい? : ニッチなPCゲーマーの環境構築
BIOSとUEFIの歴史 - syuu1228's blog
UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Ubuntu14.04 と GPT と UEFI - Going My Linux Way - りなっくすいろいろ
ASUS Z97-ProのM.2 SSDにOSをインストールして起動する: 論外なおちゃん
Z77 Extreme4でPCIe NVMe SSDをOSブートさせる起動ドライブとして使う(BIOS書き換え,SM961+ST-M2PCE4XB) - If you are going through hell...keep going.
セキュリティキャンプでxv6を64bitUEFIから起動した話 | カオスの坩堝
サイバー攻撃から身を守る4つの方法 マルウェアアナリストが語る、日本が狙われる危険性とその対策 - ログミー[o_O]
小手先でつくる自作OS – UEFI bootからkernelロードまで | ふぁろぐねっと
自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動) - へにゃぺんて@日々勉強のまとめ
RustでUEFIアプリケーションを書く 2020 Edition - 重力に縋るな
現在作っているブートローダに関して - トトのメモ帳
【ゼロからのOS自作入門】MikanOSをRustに移植する 1章・2章 - 日記
BIOS・UEFI操作画面の起動とブートデバイスの設定
BIOS or UEFI及び起動メニューの出し方:パソコン活用方法:So-netブログ
UEFI(BIOS)設定の知識 : 初めてのLinux
WinDbgとWindows XP/7/8/10のハンドルテーブル解析
Goで作るモダン・ブートサーバー Day 1 - 基礎知識編 - Folioscope

借り初めのひみつきち

Rust

Rust で UEFI のハローワールド - 借り初めのひみつきち
Rust 自作 OS 日記/Part 1 my new gear... - 借り初めのひみつきち
Rust 自作 OS 日記/Part 2 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 3 ブートローダー - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
Rust 自作 OS 日記/Part 6 過去最大の更新 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
妄想 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 8 🔔 - 借り初めのひみつきち
ロゼッタと林檎と - 借り初めのひみつきち
Rustの基本戦略 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 9 my new os... - 借り初めのひみつきち
Rust の Null Pointer Optimization - 借り初めのひみつきち
myos の描画アーキテクチャ - 借り初めのひみつきち
ぬるぽ警察24時 - 借り初めのひみつきち
妖精さんとなかよくなるほうほう - 借り初めのひみつきち

最小ステップで作る UEFI OS

最小ステップで作る UEFI OS - 借り初めのひみつきち
neri/moe: A Minimal Step OS using UEFI
neri (Nerry)
最小ステップで作る UEFI OS v0.1 - 借り初めのひみつきち
フォントのお話 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2.1 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3.1 - 借り初めのひみつきち
History
neri (Nerry)
最小ステップで作る UEFI OS v0.4 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.4.1? - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5.1 - 借り初めのひみつきち

Twitter

Nerry@求職中さんのツイート: "Surface RTで確認したけどやっぱりUEFIアプリは基本0x1C2でWin32は0x1C4だった。 ただしbootarm.efiやbootmgfw.efiは0x1C2なのにbootmgr.efiだけは0x1C4になってる。"
Nerry@さんのツイート: "HPETのMain Count Value読むのは簡単にできた。… "
Nerry@さんのツイート: "IPIが飛ばせた?… "
Nerry@さんのツイート: "STIしないと割り込みおきないけどエラーコードは 0xFF2 の謎。0xFF3じゃないの?"
Nerry@さんのツイート: "実機のエラーコード0x7FBでしたね。 こっちの方が正しい気がする。"
Nerry@さんのツイート: "selector = 0x7F8 (int 0xFF) ldt = 0 idt = 1 ext = 1"
Nerry@さんのツイート: "やっぱりqemuのエラーコードおかしい。実機はintelもamdも0x7fbだった"
Nerry@さんのツイート: "PS2ポート存在するかどうかちゃんと確認するにはAML読まないとダメ?😱"
Nerry@さんのツイート: "FADTのIAPC_BOOT_ARCHはときどき嘘が書いてる機種があってPS2ポートの存在を正しく認識できない"
Nerry@さんのツイート: "SetVirtualAddressMapってEfiRuntimeServicesCode/EfiRuntimeServicesDataだけじゃ足りない機種もあるのね"
Nerry@さんのツイート: "一部機種で異常なEDID取得してるのはEfiEdidActiveProtocolGuidの呼び出し方間違ってるんだろうか・・・"
Nerry@さんのツイート: "UEFI Class 3の機種だと基本USB接続が多いけどSPIとかI2Cとかふざけてるものもある・・・"
Nerry@さんのツイート: "PS/2はレガシーではあるけど、今のところCSM搭載してるラップトップPCはPS/2接続のキーボードが主流のようなのでPS/2をサポートしないと操作できないから完全に無駄ではない。"
Nerry@さんのツイート: "タイマー割り込みで画面の左上のピクセル書き換わるようにしたら一部の機種でどうやっても変わらなくておかしいなって思ったら液晶の向きが左上だと思ってた場所が左下でしたね🤔"
Nerry@さんのツイート: "ときどきキーボード受け付けなくなるのspurious割り込み関係なんだろうか・・・"
Nerry@さんのツイート: "とある機種でEDIDの解像度がおかしい値だった→WindowsのEDIDみるツールだと常識的な値だった→UEFIで取得したEDIDよく見たら内容全部0だった💢"
Nerry@さんのツイート: "正確にはLocateProtocol(&EfiEdidActiveProtocolGuid...)とかの戻り値が0だったのでアドレス0のデータをEDIDだと思って読み込んでた"
Nerry@さんのツイート: "WindowsのUEFI要件が定まる前の機種でGOPの解像度とかも変"
Nerry@さんのツイート: "Win8の頃のミ田キーが画面の端に独立して付いてる機種で何となく押してみたらPS/2経由で何かが入力された(実際のスキャンコードは見てないけどたぶんWindows Key) こういうのはGPIOとか使ってると思ったけどそうでもないものもあるのね"
Nerry@さんのツイート: "マウスカーソル出た(出るだけ… "
Nerry@さんのツイート: "4k以上のディスプレイのEDID見てみたい😤"
Nerry@さんのツイート: "現在の実装 ・優先度未実装(すべてのスレッドが同じ優先度) ・スレッドの負荷はHPETを使って計測 ・タイマー割り込みで実行中のスレッドの負荷が一定数以上だった場合にquantumを消費 ・quantumが0になったスレッドをpreemption ・スケジューラーが1秒ごとにすべてのスレッドのload値を更新"
Nerry@さんのツイート: "単純にタイマー割り込みでpreemptする場合に比べて負荷が正確に反映されて公平なpreemptできてる(気がする"
Nerry@さんのツイート: "SIPI送れた… "
Nerry@さんのツイート: "MultiProcessor完全に理解した(n_cpuインクリメントしてhltするだけ)"
Nerry@さんのツイート: "もしかして個別にINIT SIPI投げるとダメなのか"
Nerry@さんのツイート: "動いたり動かなかったりよくわからん・・・"
Nerry@さんのツイート: "PICを使ってるとPS2をマスクするって発想がそもそもないのでPIC時代の感覚でPS2ポートを先に初期化するとAPIC側のマスクが解除されてなくて一部環境だとPS2初期化時に発生した割り込みが受け取れなくて止まる"
Nerry@さんのツイート: "moeのps2ドライバは割り込みが起きたらとりあえずデータを抜き取ってキューに突っ込んですぐiretしてる。 実際のデータ処理はhidスレッドでパケット解析とウィンドウイベントへの変換をしてる。この部分をユーザーランドに追い出すのは比較的容易だと思われる。"
Nerry@さんのツイート: "ウィンドウ背景にblur実装したい"
Nerry@さんのツイート: "きれいにblurするにはあらかじめ周囲数pixelの情報が必要だから現在の部分再描画実装じゃ綺麗に描ける気がしない:;(∩´﹏`∩);:"
Nerry@さんのツイート: "しかもウィンドウにblurかけるということは実際に必要なpixelは自分自身のウィンドウではなく下にある他人のウィンドウだったりするので再描画に必要な情報が多すぎる"

EFI_ABSOLUTE_POINTER_PROTOCOL の不思議 - 借り初めのものがたり
あべこべ。 - ねりりんと借り初めのものがたり
はりぼてOSをUEFIで起動する/5日目? - 借り初めのひみつきち
バイバイ、 gnu-efi - 借り初めのひみつきち
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える - 借り初めのひみつきち
UEFI のクロス開発 - 借り初めのひみつきち
進捗的なもの。 - 借り初めのひみつきち
再度進捗的な。 - 借り初めのひみつきち
BIOS で消耗するな、 UEFI で消耗せよ。 - 借り初めのひみつきち
ACPI BGRT - 借り初めのひみつきち
きんきょうてきな? - 借り初めのひみつきち
WASM自作PCエミュレータ制作日記/5 - 借り初めのひみつきち
UEFI自作OS日記 v0.6 再始動 - 借り初めのひみつきち
最小の UEFI Hello World - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち
ACPI 2.0 - 借り初めのひみつきち
MYOS の起動処理概要 - 借り初めのひみつきち
initramfs - 借り初めのひみつきち
今週の MYOS 🎉 - 借り初めのひみつきち
GPD MicroPC の内蔵キーボードを使う方法 - 借り初めのひみつきち

ぼくんちのTV 別館

UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 - ぼくんちのTV 別館
UEFIやセキュアブートの勘違いしやすい設定30個 まとめ - ぼくんちのTV 別館

DXR165の備忘録

PCのUEFI BIOS NVRAM(設定情報) 調査メモ - DXR165の備忘録
Plextor M8Pe M.2 PCIe NVMe SSD 128GB 購入しました - DXR165の備忘録
Windows 10 PC UEFIの役割としくみ - DXR165の備忘録

本の虫

本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚
本の虫: LenovoのWindows 10 Signature EditionがSATAがRAIDモードに固定されているのはIntelのせい

そそるめも

Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Intel SSD 750 にはOption ROMにUEFI向けNVMeドライバが入ってるっぽい - そそるめも

livaの雑記帳

UEFI対応 - livaの雑記帳
grubのpf2ファイルの解析 - livaの雑記帳
自作OSにおけるUEFI対応戦略 - livaの雑記帳
UEFI対応(その2) - livaの雑記帳

/var/log/hdk.log

日記 (2014 年 10 月上旬)
日記 (2014 年 10 月上旬)
日記 (2014 年 10 月中旬)
日記 (2014 年 10 月下旬)
日記 (2014 年 11 月中旬)
日記 (2014 年 11 月下旬)
日記 (2016 年 4 月下旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 9 月下旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2018 年 3 月)
日記 (2019 年 1 月上旬)

/home/tnishinaga/TechMEMO

UEFIアプリでファイルを任意のメモリアドレスにロードする方法メモ - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
UEFIのHTTP BOOTを試してみる - /home/tnishinaga/TechMEMO
UEFIの呼び出し規則について - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO

Blog posts by @retrage

ELVMのEFI Byte Codeバックエンドを作る - めもちょー
文鎮化したMinnowboardを復旧させる - めもちょー
LLVMのEFI Byte Codeバックエンドを作る - めもちょー
OVMFのデバッグ - Blog posts by @retrage01
EFI_STATUSの値 - Blog posts by @retrage01
EDK2におけるDebugPrintErrorLevel - Blog posts by @retrage
UEFI向け9P File Systemを作ってクラウドからネットワークブートできるようにした - Blog posts by @retrage
ebcvm: A Usermode EFI Byte Code Virtual Machine - めもちょー
EFI stubなArch Linuxのインストール - めもちょー
技術書典5で「UEFI読本 基礎編 Linux編」を頒布 - めもちょー
EFI stubなLinux kernelのヘッダ部分を見てみる - めもちょー
BitVisorのEFI向けVMM Loader(1st stage)のコードを読んでみる - めもちょー
EFI Byte Code解説 - めもちょー

J’s Lab

PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
OVMFを使った簡単なUEFI Linux環境の構築の仕方 | J’s Lab
OVMFをソースデバッグするお話 | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab

Converg.

EDK IIの基礎 - Converg.
EDK II Package - Converg.
Module開発 - Converg.

Firmware Security

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Ulf: Attacking UEFI over DMA | Firmware Security
Google Pawn: Intel firmware dumping tool! | Firmware Security
new Apple tools: eficheck (and nvm) | Firmware Security
UefiToolsPkg: making UEFI more useful to system hackers | Firmware Security
UEFI-CheckScript: PowerShell script for SCCM/WinPE | Firmware Security
diablolot53/uefi-checkscript
William reviews ru.efi/ru.exe | Firmware Security
Toms Hardware: Win10 unsupported disk layout UEFI error howto | Firmware Security
efivalidate (and mojo_thor) | Firmware Security
VisualUEFIShell | Firmware Security
proposal: add Security Version to Linux Shim | Firmware Security
Apple Secure Boot | Firmware Security
RaspberryPiPkg – 64-bit Tiano Core UEFI for the Raspberry Pi 3 | Firmware Security
ebc.asm: EFI Byte Code Assembler macroinstructions for fasmg assembly engine | Firmware Security
Intel releases Firmware Engine for Linux and Windows | Firmware Security
LUV 2.2-rc2 released | Firmware Security
UEFIStarter: framework to simplify UEFI development with TianoCore EDK2 | Firmware Security
efi_analyzer: Analyze EFI binaries | Firmware Security
bootoption – Create a new EFI RT variable like BootXXXX but store the data in a property list | Firmware Security
DBXtool has support for Microsoft dbxupdate.bin | Firmware Security
Eclypsium at OPCDE: UEFI BIOS firmware analysis at scale | Firmware Security
Tianocore Security Advisory 27: Minnowboard UEFI Variable Deletion/Corruption | Firmware Security
RomDump: EFI BIOS dumping tools | Firmware Security
Gloader: A simple wrapper for efibootmgr that can be used to create an entry in UEFI. | Firmware Security
FindESP: tool to find the associated EFI System Partition from a given disk object or mount point | Firmware Security
UEFImarkEbcEdition: UEFI Byte Code (EBC) benchmark utility | Firmware Security
dkmsscripts: scripts to help with DKMS and UEFI boot keysigning | Firmware Security

mjg59

mjg59 | Microsoft's compromised Secure Boot implementation
mjg59 | Announcing the Shim review process
mjg59 | Avoiding TPM PCR fragility using Secure Boot
mjg59 | Linux kernel lockdown and UEFI Secure Boot
Fadisさんのツイート: "SecureBootが有効な場合に署名のないカーネルモジュールのロードの禁止、パワフルすぎるデバイスの使用の禁止等を行うKernel LockdownにLinus氏が難色を示している。SecureBootの有無でカーネルの振る舞いが変わると報告された問題の再現が難しくなるのが理由 https://t.co/ZrpQi26TSl"
Torvalds Expresses Concerns Over Current "Kernel Lockdown" Approach - Phoronix

スライド・PDF

UEFIをつくる // Speaker Deck
UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 // Speaker Deck
UEFI向け自作OSの紹介
EFI Byte Code Virtual Machine for Fun and Profit - Speaker Deck
Practical Rust (Hypervisor) Firmware - Speaker Deck
FadisさんはTwitterを使っています 「rust-hypervisor-firmware: KVMをバックエンドとして動くハイパーバイザ。コンテナのアイソレーション等を目的としており、物理ハードウェアのエミュレーションは目指しておらずvirtio等のデバイスだけを備えた軽量な実装になっている https://t.co/u1OlJwRWhu」 / Twitter
cloud-hypervisor/rust-hypervisor-firmware
Takahiro YamashitaさんはTwitterを使っています 「ExitBootServiceを呼び出した時点でRunTimeフェーズに移行する。 RuntimeServiceはメモリに残ってるから、そいつを意識してメモリ管理しないとダメなのか。 SetVirtualAddressMapをOSが呼ぶ必要がある。 #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「UEFIのランタイムサービスはブート時に一度メモリに置かれた後、OSが起動すると別のアドレスに退かされるため、リロケーションが2回行われる事になる #kernelvm」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@retrage ちなみにRuntime Servicesが保管されているメモリってOSから見るとReservedに見えるけど、直接中の関数を呼び出せるという不思議な作りですよね。EDK2だとnvmemデバイスのドライバが入ってるっぽくてちょっと面白い。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「EFIのRuntime Services、考え方がMS-DOSのhttps://t.co/vqtbFwavaYから変わってなくて面白い。」 / Twitter
Xavier NXのカーネルとVMの話
retrageさんはTwitterを使っています 「なのでWindowsだとIOMMU有効が推奨されています。若干違いますが同じような手法でBoot Servicesを書き換えてSecure Bootが回避できたりもします https://t.co/QXW9homgUB」 / Twitter
るくすさんはTwitterを使っています 「1.5倍速で観返してるけどEFI Runtime ServiceってOS起動してからもremapされて生き残ってるんだな。DMAとかで関数ポインタ書き変えれたらバックドアにできそう #kernelvm」 / Twitter
るくすさんはTwitterを使っています 「全く同じ試みがすでにされてた 草 Attacking UEFI Runtime Services and Linux https://t.co/z5Xp7hr1UP #kernelvm」 / Twitter
Security | DMA | Hacking: Attacking UEFI Runtime Services and Linux
るくすさんはTwitterを使っています 「remapする時は毎回同じアドレスに置かないほうが良さそうですよ "Luckily the location of the Runtime Services table is static and won't change between reboots" #kernelvm」 / Twitter
retrageさんはTwitterを使っています 「@RKX1209 はい、WindowsだとRuntime ServicesにもKASLRが効いていて毎回違うアドレスにremapされます(のでデバッグが大変だったり)」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@retrage @RKX1209 Remapping (KASLR) は仮想メモリアドレスであって物理メモリ上ではリロケーションされないのでDMAに対しては意味ないですけどね 一般的なUEFIの実装はASLRないのでほぼアドレス固定なはず」 / Twitter
retrageさんはTwitterを使っています 「@SatoshiTanda @RKX1209 そういえばそうでした。訂正します。」 / Twitter
Network Boot from Bell Labs - Speaker Deck
準パススルー型VMM開発の難しいところ
yvr18-508.pdf
suzakiさんのツイート: "シリコン内のbootROMこそが、Trusted BootにおけるCRTM:Core Root of Trust Measurement。下記PDFの11ページの図が分かりやすい。 https://t.co/teuqFvo9qm CRTMがBIOSを計測してそれをTPMにextendすることから始まる。… https://t.co/qWwDVGcW1u"
Microsoft PowerPoint - af-congdon-tcg-overview-1104
retrageさんのツイート: "Wow. yabits was mentioned in the article. https://t.co/loj5lNiSVn"
yabits: Fast and lightweight yet another UEFI implementation | yabits
UEFIベアメタルプログラミング
Address Range Memory Mirroring

News

UEFIのルートキット、攻撃に使われていることを初めて確認 | マイナビニュース
129機種3000万台超のDell製デバイスに影響する重大な脆弱性が見つかる、BIOS/UEFIレベルの任意コード実行が可能 - GIGAZINE
再起動せずにマザーボードのUEFIをアップデートできるインテルの新機能|自作.com
Linux 5.5 To Finally Wire Up EFI RNG Code For x86 As Another Source Of Entropy - Phoronix
最新SSDのキホン - AKIBA PC Hotline!
Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2) - @IT
Tech TIPS:Windows 10で素早くUEFIの設定画面を起動する - @IT
毎秒2.7GBで神速!NVMe対応超高速SSD『Intel SSD750シリーズ』がヤバすぎる - 週刊アスキー
The bootstrap process on EFI systems [LWN.net]
PC起動時に動作するBIOSに取って代わる「UEFI」とはいったい何なのか? - GIGAZINE
HDD交換後も感染したPCに残るUEFIファームウェアを標的とする中国製マルウェア「MoonBounce」 - GIGAZINE
BIOSからUEFIへ BIOSはなぜ終わらなければならなかったのか:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/4 ページ) - ITmedia NEWS
TPM Invisible BIOSの脆弱性は、Dell、Alienwareマシンに影響を及ぼします|自作.com

PC Watch

2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch
ESET、UEFI検査やホームネットワーク保護機能が強化されたセキュリティソフト最新版 ~他社ソフトの窓口サポートにも対応 - PC Watch
OS再インストールやHDD交換でも排除できない、UEFIルートキット「LoJax」 - PC Watch
Kaspersky、UEFIに感染するブートキットを発見。OS再インストールでは排除できず - PC Watch

技術評論社

第441回 QEMU/KVMでUEFIファームウェアを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第444回 Ubuntuにおけるセキュアブートの仕組み:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第446回 QEMU/KVMでセキュアブートを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第511回 UEFIの設定が変更できなくなる,あのバグの話:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第77回 Plamo LinuxのGPT/UEFI対応[その1]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第78回 Plamo LinuxのGPT/UEFI対応[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第79回 Plamo LinuxのGPT/UEFI対応[その3]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第80回 Plamo-6.1 released:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
2020年2月14日 "Windows on Btrfs"を実現!? オープンソースのWindowsブートローダー「Quibble」:Linux Daily Topics|gihyo.jp … 技術評論社
maharmstone/quibble: Quibble - the custom Windows bootloader

OSDN

「Coreboot 4.6」リリース | OSDN Magazine
米Microsoftが「Project Mu」を発表、同社のUEFIコアをオープンソースに | OSDN Magazine
Linuxカーネル3.15リリース、サスペンド/レジュームの高速化など多くの新機能を追加 | OSDN Magazine

Qiita

UEFI Advent Calendar 2014 - Qiita
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
gnu-efiでUEFI遊びをはじめよう - Qiita
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita

GitHub

clover/OhciDxe at master · Clover-EFI-Bootloader/clover
uefireverse/efiperun at master · jethrogb/uefireverse
EDK II white papers · tianocore/tianocore.github.io Wiki
fuchsia-mirror/gigaboot20x6: GigaBoot20x6 - A Simple UEFI Bootloader for Magenta
edk2/Command.c at master · vathpela/edk2
cupnes/bare_metal_uefi
thasenpusch/ExOS at aca6a389d54ae7c08e5073eae50d1ef134d7b322
AuberLin/PiSmmSCRT
ornitorrincos/OS at 1d3284be4af4da2a9690b89ebd958e6ca53ce8e6
x86, efi: Retain boot service code until after switching to virtual mode · shr-distribution/linux@916f676
BOOT UEFI · seporaitis/fuchsia Wiki
uefi-programming/process.c at master · zhenghuadai/uefi-programming
MatthewClarkMay/secure-boot-mok-scripts: Set of scripts I wrote to simplify UEFI Secure Boot Machine Owner Key generation, and signing of Nvidia, VMware, and VirtualBox kernel modules. These MOKs can be used to sign other kernel modules as well.
Microsoft UEFI capsule update package on GitHub | Firmware Security
MS_UEFI/MsCapsuleUpdatePkg at share/MsCapsuleSupport · Microsoft/MS_UEFI
ちくわさんのツイート: "今現在開発中のyabits/uefiですが,OpenBSD 6.2が起動することを確認しました.これで少しはTianoCore以外のUEFIができた,と言えるのかな? https://t.co/P5uPiTPnhR https://t.co/5mFxTEpX5k"
yabits/uefi: A minoca based UEFI coreboot payload
Fadisさんのツイート: "Microsoft、TianoCoreのEDK2をforkして「ぼくのかんがえたさいきょうのUEFIアプリケーション開発用ライブラリ」を作るオープンソースプロジェクト Project Mu を立ち上げ https://t.co/huBeVkFboO"
Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
Project Mu
Unofficial EDK2 nightly build | EDK2 Nightly Build
How to debug OVMF with QEMU using GDB · tianocore/tianocore.github.io Wiki
edk2/Readme.md at master · tianocore/edk2
retrageさんはTwitterを使っています 「はりぼて状態だけど,Rustで書かれたEFI互換なfirmwareでUEFI Secure Bootが利用可能なUbuntuの起動がImageの変更なしにできるようになった.shimとか使ってても動きます.」 / Twitter
retrage/rust-hypervisor-firmware at vanilla-ubuntu-boot
retrageさんはTwitterを使っています 「なんかファームウェアをcargo testでちゃんとVMM立ち上げてテスト回すの,結構再現性が低い失敗が多くて大変」 / Twitter
retrageさんはTwitterを使っています 「shimx64.efiとかのデバッグ,ソースコードが公開されている分winload.efiとかのデバッグよりはやりやすかった.」 / Twitter
retrageさんのツイート: "EFI Byte CodeのVMを作っている。一通りの命令セットの実装が終わったので、デバッグをしていく。デバッガ対応とかnative codeの呼び出し、バイナリのロードなど、まだやるべきことがたくさんある https://t.co/GbbikoxJs0"
retrage/ebcvm: EFI Byte Code Virtual Machine
FadisさんはTwitterを使っています 「picolibc: 組み込み向けの小さいlibcの実装のニューフェイス。newlibのBSDライセンスな部分とAVR libcを組み合わせて、足りないところを気合で実装することでlibc全体がBSDライセンスで提供されているのが大きな特徴。arm arm64 x86 x86_64 riscv riscv64 ppc esp8266に対応 https://t.co/FYCHM6wnMa」 / Twitter
picolibc/picolibc: picolibc - a C library designed for embedded 32- and 64- bit systems.

Twitter

その他

1MBを避ける

嶋田大貴さんはTwitterを使っています 「Linux 5.13より、x86(_64)では先頭1MBのメモリを使わないようになるとのこと。先頭の方のアドレスはBIOSにぶっ壊されがちで、個別に対処するのがしんどいのでもう固定で1MBリザーブにしちゃうと。 → Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM https://t.co/UXmhGWh21o」 / Twitter
Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM - Phoronix
FadisさんはTwitterを使っています 「Linuxカーネルはx86やx86_64で起動する場合にBIOSが使う可能性がある下位64kBのメモリを触らないようになっているが、一部のイカれたBIOSがOSに何の断りもなく下位1MBまで書き込んでいて、1MB以下にカーネルが何か書くと壊れる可能性があるので、1MBまで避けるようになった話 https://t.co/88Jf0ihKuo」 / Twitter
It Turns Out Windows Unconditionally Reserves The First 1MB Of RAM, Linux Was Just Late To Do So - Phoronix
FadisさんはTwitterを使っています 「このパッチについてWindowsも同じ問題にぶつかる筈だけどどうなっとるん、という話がでて、Windowsチームに確認をとってくれる親切なマイクロソフトの人が現れて「その問題があるからWindowsも結構前から先頭1MBは避けるようにしている」という話が飛び出してる」 / Twitter
FadisさんはTwitterを使っています 「1MBまで勝手に使うBIOS、そのPC/AT互換機は本当にPC/ATと互換がありますか感がある」 / Twitter
retrageさんはTwitterを使っています 「去年からCSMが無くなって本格的にx86システムはISAレベルでPC/ATとの互換性があるだけの周りのアーキテクチャは全く別ものなので今日のx86マシンはPC/AT互換機とは言えないと思う」 / Twitter
retrageさんはTwitterを使っています 「PCHになって久しいのに未だにノースブリッジ、サウスブリッジの図で説明されたりするともんにょりする」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@retrage 去年CMSに何があったんですか? ググるとIntelは、2020年までにUEFIに移行する、と2017年に言ってたみたいですけど、実際はどうなんでしょう」 / Twitter
retrageさんはTwitterを使っています 「@SatoshiTanda はい、そのことです。upstreamのedk2でもCSMの実装が無くなっている(OvmfPkgには残っていますが)ようなのでUEFIのみへの移行が進んでいると思います」 / Twitter

OS ベンダ登録

Kimihiro Nonakaさんのツイート: "EFIブートの「/EFI/<OS vendor>/<OS image loader>] についてはUEFI spec https://t.co/STn4Gc05Go 2.7 (Errata A)だと「13.3.1.3 Directory Structure」に記載がある。OS vendorは https://t.co/kqpDxb4Kc4"
SODA Noriyukiさんのツイート: "Debian と FreeBSD はあるんですねえ… NetBSD も欲しいなあ… "
Kimihiro Nonakaさんのツイート: "UEFI Specification Workgroup Chairperson にメールを送れば良いみたいですけど… "
SODA Noriyukiさんのツイート: "おお、ちゃんと見るとそう書いてありますね。 担当は board@ になる気がするのでメールしてみました(のなかさんにも CC: したので届いているはず)。 あとは board member である @_ki_nu さんが取りこぼさずに推進してくれることに期待?(ぉ… https://t.co/ASKcVS5QeV"
Subdirectory Registry | Unified Extensible Firmware Interface Forum

virtio-fs

retrageさんはTwitterを使っています 「virtio-fsがLinux kernelにマージされたのは記憶に新しいけど,最近になってEDK2のOVMFでもサポートが入るようになった.https://t.co/3dt4j9v19C」 / Twitter
edk2/OvmfPkg/VirtioFsDxe at master · tianocore/edk2
retrageさんはTwitterを使っています 「面白いのが直接virtio-fsを実装しているのではなく,間にFUSEのインターフェースを経由して実装されている点.この抽象化レイヤーを使えば他の*nix系のFSを移植するのもやりやすくなりそう.」 / Twitter

PXE, HTTP ブート

FadisさんはTwitterを使っています 「古いストレージの残ってないPCをPXEブートで上げられるようにしようと思い立ったのが昨日、何故か他のホストはPXEで上がるのにそのホストだけtftpでタイムアウトして設定見直したりパケットダンプを眺めたりして夜が更け、今朝iPXEで普通に上がる(=NICのPXEの実装が腐ってる)のを発見した。眠い」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ 20年後くらいには iSCSI とかで見るのかな? UEFI から iSCSI の設定できるのとか、 古いおじさんにはキモくて仕方がないよ…」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs UEFI 2.5以上ならhttpでブートイメージを拾えるから、EFI stub付きのカーネルを雑にWebサーバで配るだけで良い(URLをUEFIの設定に保存)。めっちゃ簡単」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ VMware とか仮想マシンの仮想 UEFI から iSCSI boot したいんですよねぇ… http ブートも良いですねぇ。 ファームアップなんかも http でだいたいできるようになって、あと20年位で tftp のようやく捨てられるかな? 書き込みを考えると、S3 位は喋ってほしいところ。」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs いますぐiPXEでできそう https://t.co/eUFgRPMSgR」 / Twitter
iPXE - open source boot firmware [cmd:sanboot]
FadisさんはTwitterを使っています 「NICのROMに入ってるPXEブート、tftpでイメージを送ってる最中に関係ないパケットが来ると死んでしまう、みたいな実装もあって割と不幸のもとなんだよな。この種のNICではWoL後に起動確認としてpingする親切なサーバ管理ツールがサーバの起動絶対阻止するマンになる」 / Twitter

users

@mhiramat

まさみさんは語りたいさんのツイート: "Linaroでuefi-toolsというのを作っていて、これはややこしいビルドを簡単にしてくれるらしい。"
まさみさんは語りたいさんのツイート: "サーバを作って売る上で、LinuxとEDK2って扱いがちょっと違うよね。LinuxはOSベンダがメンテ出来るけど、自社のCPUやボード部分のUEFI対応はある意味BIOSと同じなのでサーバベンダがしないといけない。そう考えるとハードベンダもOSS活動しないといけないのか。"
まさみさんは語りたいさんのツイート: "未踏、tianocore全否定なのか・・・。"
まさみさんは語りたいさんのツイート: "まあ、ソースコードがお世辞にもいいとは思えないし大きいし、というのは理解できるけど、tianocoreもOSSなんだよな。文句があるならまずコミュニティに相談したらどうだ、という風に思っちゃう。"

@nonakap

Kimihiro Nonakaさんのツイート: "EFI_BLOCK_IOのMedia->MediaIdってシステムでユニークという訳では無いんだなぁ…"
Kimihiro Nonakaさんのツイート: "FreeBSDのefipartを参考にDevice Pathをいじくる様に修正しないと駄目だ(´・ω・`)"
Kimihiro Nonakaさんのツイート: ""multiboot2 boot-services EFI specification" "multiboot2 EFI memory map specification" | NEWS - grub.git - GNU GRUB https://t.co/m9lIFSW7Y1"
Kimihiro Nonakaさんのツイート: "efbootだとConventionalMemoryとかLoaderCodeとかLoaderDataとかBootServicesCodeとかBootServicesDataとかが利用可能メモリとして認識されるので、message bufferをなるべく保持したいという要求に応えられない気がする(´・ω・`)"
Kimihiro Nonakaさんのツイート: "たとえばESXi 6.5のUEFI環境だと「000000000dfa8000/000000000fffffff: available [BootServicesData]」が最上位空きメモリ領域なのでmsgbufとしてここを使うはずなので、起動する度にUEFIがぶち壊すと思うんだけどどうなんだろうか"
Kimihiro Nonakaさんのツイート: "efibootを起動した時にConventionalMemoryとして認識されている上位アドレス空間をmsgbufとして使わないと駄目な気がするけど、こんなのUEFI実装によって違うからどうしようもない(´・ω・`)"
Kimihiro Nonakaさんのツイート: "BIOSとは違って最上位メモリアドレス付近は安全ではないのだ"
Kimihiro Nonakaさんのツイート: "Fのloaderは1GB未満、OのLOADSPACEは256MB未満のメモリしか確保しないけど、これを真似してもmsgbufの保護にはならないので真似するのは止めました。UEFIの実装によっては保護になるとは思うけど、そういう実装が多いのか少ないのかは知らん(´・ω・`)"

@yasuoka_m

YASUOKA Masahikoさんのツイート: "@nonakap O では、ExitBootService 後に memcpy しなおすことにしました"
YASUOKA Masahikoさんのツイート: "@naobsd efiboot のシリアルコンソールですが、結局、こんな感じに実装してみました。ここまで頑張った挙句、ポートの特定はいい加減なので、カーネルでは別のポートでした、という問題はありそうな感じなのが弱いです。:) https://t.co/88WqKKVXy6"
'Re: efiboot serial console support' - MARC

@uchan_nos

ファッション自作OSマンさんのツイート: "UEFIアプリとしてOSローダーを作る際のハマりどころ ・空きメモリ領域は機種によって違うので動的に取得する必要あり ・ABIの差。UEFIアプリのABIはMS x64 ABI、自作OSは大抵System V ABIで作るだろう… "
技術書典4 け-51 x86-64-128さんのツイート: "UEFIの仕様ではExitBootServices()した後はBootServiceを利用できないはずだが,実際にある実装では引き続きBootServiceが使えてしまう,らしい. #osdev_moku2"
setup.c\kernel\x86\arch - kernel/git/torvalds/linux.git - Linux kernel source tree
技術書典4 け-51 x86-64-128さんのツイート: "ESPってただのFATかと思っていたら,GUIDが違うのか.知らなかった. #osdev_moku2"

histric

histric-1

嶋田大貴さんのツイート: "UEFIブートの時に画面つながってないと grubがstuckするの、ECS LIVAだけの問題じゃないっぽい https://t.co/a8XwYlw7I6"
173210さんのツイート: "jethrogb/uefireverse https://t.co/HsgGU1LvPn Linuxで実際にUEFIアプリケーションを走らせてみるという荒業。その発想はなかった。"
iruka3さんのツイート: "ここでx86とかx86_64を持ち出さない理由は、intel系CPUでベアメタル・プログラムを組める人は特権階級な人達だけ、だから。 OS書いたりBIOS書いたりUEFI弄るような人。あとコーデックを高速化する人とか特殊な技能人 https://t.co/V27HEOrwea"
側転幼女おるみんちゃんさんのツイート: "UEFIとACPIとSATAとPCIeとUSBとネットワークでというモダーンなPCで自作OSみたいな本"
СЮУ1228さんのツイート: "@kotatsu_mi あとさぁ、UEFI App/Driverだと間口狭い感じするんだけど、x64入門とか自作OS本の新しいやつみたいに考えるともうちょっと間口広いと思うんだよな。実装的にはUEFI使う感じで"
СЮУ1228さんのツイート: "@kotatsu_mi 15日でできる!UEFI OS自作入門っていう本を二人で書こうぜ #題名ぱくり良くない"
Takanori Watanabeさんのツイート: "@tenpoku1000 いやね、ストレートマップで呼び出したら途中でポインタが吹っ飛ぶ症状がある実装があって、どうも一部のモジュールのフィックスアップがSetVirtualAddressMapで行われるということっぽいので試すかという状況。"
Tsukasa #01 [要出典]さんのツイート: "なるほど、VeraCrypt のレスキューディスクには新たな機能が搭載されてるんだね。UEFI のブート設定が初期化されたとしても、ブートメニューを再追加することができる。これで、BIOS アップデート後も大丈夫!"
Orumin de Izumoensisさんのツイート: "@syuu1228 /sys に UEFI の RuntimeServices が見えなくなるとかのオプションで、UEFI での起動には問題ないらしい"
ゆたかさん🐶さんのツイート: "UEFIモードだとLinux動作中にefibootmgrコマンドで、ブートオーダーを変えれて便利です。いちいち、BIOSのセットアップに入らなくてもよいので。"
太田 一季 (CV.どじょりん)さんのツイート: "@jisaku_Haswell BIOS Flashbackは生のBIOSバイナリ(.rom)を読み込んで直に書き込みするのね UEFI経由でアップデート用の、カプセル化されたバイナリ(.cap)は読み込まないのよー"
🍵🍡Tea Boyさんのツイート: "PC専門サイトでさえ、「BIOSからUEFIに移行」などと言う実態… BIOSはファームウェアですが、UEFIは仕様ですよ??"
tnさんのツイート: "なるほど! UEFIのTCP4 PROTOCOLのハンドラはEFI_TCP4_PROTOCOLのGUIDでLocateHandle使って検索して得るのではなく、EFI_TCP4_SERVICE_BINDING_PROTOCOLのCreateChildを呼ぶと得られるのですね!! 一歩進んだぞ!!!"
EFI_TCP4_SERVICE_BINDING_PROTOCOLとEFI_TCP4_PROTOCOLに関するメモ
ゆたかさんさんのツイート: "BIOS(UEFIファームウェア)はWindowsを起動することを目的として作られるので、BIOS内のOS定義(_OSIメソッド)はWindowsになっていて、LinuxはBIOSがどのWindowsバージョン向けに作られたかを判断して、ハードウェアを初期化しています。… https://t.co/sCRRVdxEz4"
品川 高廣さんのツイート: "そういえば先週 @retrage01 さんの独自UEFI実装 yabits (Yet Another UEFI coreboot Payload) の話を聞いてきました。起動時間が速いそうなので、QEMU + OVMF で UEFI 上の自作OSをやってる人は OVMF の代わりに使うと便利かもしれないと思いました。https://t.co/GCDsCfRMDd https://t.co/TGvQ87r3Kx"
研究千年牛酪情報保管庫菩薩さんのツイート: "MD RAIDのメタデータ領域を壊れたGPTと誤認識して修復しようとゼロクリアするマザボ.... / “scan.php?page=news_item&px=Linux-Software-RAID-ASRock” https://t.co/ULL25yU7Ye"
Some Linux Users Are Reporting Software RAID Issues With ASRock Motherboards - Phoronix
Rui Ueyamaさんのツイート: "lldを使うとUEFIアプリケーションが簡単にビルドできるよ、という話。これよく聞く話なので思わぬところで役に立っているらしい。僕はブートローダーとかは書いたことないです。 https://t.co/2h4ZHk66dX"
Goodbye Gnu-EFI!
NerryさんはTwitterを使っています: 「BGRT正しく表示されない問題どうも液晶の方向と画像の方向に原因がある気がするが、データ上はどの画像も0℃扱いになっててwindowsはどうやって判別してるんだ・・・」 / Twitter
NerryさんはTwitterを使っています: 「画像が縦長か横長で判別することにした:;(∩´﹏`∩);:」 / Twitter
ret2rangeさんはTwitterを使っています: 「UEFI、規格にないだけでEDK2で実装されているがゆえに実質標準で実装されていることになっているProtocolとかたくさんあるんだよなあ」 / Twitter
ret2rangeさんはTwitterを使っています: 「GRUBとかでもそういうのある前提の実装だったりする(Console Control Protocolとか」 / Twitter
ret2rangeさんはTwitterを使っています: 「デバッグでprintfがない環境で値を16進数で出力したいときva_arg使うほどでもないとき、BitVisorのloadvmm.efiにあるprinthex関数が何気に便利だった https://t.co/mfyf4k8HYC」 / Twitter
BitVisor loadvmm.efi printhex
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「fdは「空いている若い番号から使いまわされる整数」と言う点でハマりやすい。 (昔のUNIXはその性質を積極的に使って dup(2) とか…) なお、WindowsのHANDLEはオープン毎のシリアル番号付与で、意図しない再利用はまずない。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy 過渡期の UEFI 2.3b にギリギリ対応してなさそうだけど UEFI なマザーボードは微妙に貧弱なのでマザーボードの設定で CSM(UEFI の Legacy BIOS 互換機能)を無効化しないと,BIOS/UEFI 両方に対応したブートイメージだと BIOS boot のほうを優先して読むようなことがある」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy Windows も 7 とか UEFI boot 対応してるはずなのに CSM を無効化しない限り BIOS boot するようなことがあった(Windows 8 から UEFI 2.3b 対応(つまり SecureBoot 対応)がロゴシール貼る要件になったので,UEFI boot のほうを優先するようになった)」 / Twitter
全手動猫画像RT botさんはTwitterを使っています 「UEFI環境でNetBSDが起動しないときのトラブルシューティング、俺も教えてほしいよ。シリアルコンソールが無いと基本駄目ですね。あとはframebufferにどこまで進んだかをpixelで表現するくらいしかなさげ」 / Twitter
とみながたけひろさんはTwitterを使っています 「ソフトでもハードでもないからファームと呼ばれるようになったのに割と簡単にアップデートできるようになってしまい、何がファームウェアなのかというのも難しくなったなあ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@takehiro_t ROM(ただしフラッシュメモリ)とか、あのへんわけわからんですね」 / Twitter
とみながたけひろさんはTwitterを使っています 「@satoru_takeuchi ですねー。いまどきもうbt,etherとかのmacアドレスが書き換え可能とか全く驚かないけど、ああそうかここもいまやROMじゃないんだと最初は驚いた記憶」 / Twitter
とみながたけひろさんはTwitterを使っています 「PCでない、で思い出したが、アングラ方面ではbiosと言えばゲーム機の本体ROMを吸い出したイメージで、isoと言えば光学ディスクを吸い出したイメージなのである。まあ「強いユニコード」とかと同じですな」 / Twitter
timelerさんはTwitterを使っています 「なんとなくだけどPCでない機器のデバイスドライバーのイメージ😅 いい方変えるとこれ以外はファームウェアとは呼びたくないww」 / Twitter
強いユニコード - Google 検索
Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年ほど前に担当してた「ファームウェア」はフロッピーからブートしてたのでまぁ… 汎用でないハード用のソフトはファームでいいんじゃないかと思うけど、最近はあんまり通じない感もあり、組込ソフト(embedded software)って言っちゃうことが多くなりました。」 / Twitter
retrageさんはTwitterを使っています 「Windows,UEFI Variableがサポートされていない場合を想定していないらしく,BCD由来の値を使った演算を行う場合に特定の環境でゼロ徐算が行われて例外が発生する.」 / Twitter
PG_MANAさんはTwitterを使っています 「ACPIのBootLogo GraphicってEfiBootServiceDataに格納されているんやな...おかげでこの領域をメモリ管理下に安易に置けない...」 / Twitter
retrageさんはTwitterを使っています 「前に見かけたのでDMA attackでメモリ書き換えてチートする、というのがあった」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「普通に調べごとしてたら偶然 Apex Legends のチートの実装にたどり付いたんだけど、特定バイト列探して目的データを見つけるのは古典的な方法として、UEFIにプログラムロードしてるのね……。OSからも見えないところで下でチートツール動いてるやん。これにまともに対処しろってのが無理だわ……。」 / Twitter

Satoshi TandaさんはTwitterを使っています 「#seccamp のUEFI BIOSセキュリティの講義スライドと事前課題資料を公開しました! UEFIマルウェア、UEFIベースのゲームチートモジュール、SMMの脆弱性を解析したり、対策方法や解析方法を一緒に議論したりしました。考えつかなかったアイディアも聞けて楽しかったです https://t.co/AjDXz2jrnm https://t.co/auO5CUJeJO」 / Twitter
tandasat/SecurityCamp: セキュリティキャンプ2021
セキュリティ・キャンプさんはTwitterを使っています 「全国大会選択コースC4「UEFI BIOSセキュリティ」では、UEFI BIOSのアーキテクチャーと実装、アタックサーフェイス、それに対する悪用/攻撃の事例を学習します。また、実在する脆弱性の解析などの演習を通して、土台となる技能を得ることを目指します。 https://t.co/KOEahFhQc9」 / Twitter
retrageさんはTwitterを使っています 「EmulatorPkg,2009年あたりにはAppleが使ってメンテナンスしていたっぽいけど,もう放置状態でGCC5でビルドしたときにSEGVするという問題ですらWAが示されているだけで修正されていない.」 / Twitter
Satoshi TandaさんはTwitterを使っています 「For friends who wanted to play with the Windows Platform Binary Table (WPBT) in response to Eclypsium's report, here is the tool for you. https://t.co/DxHJMUAsnd @HackingThings Thank you a lot for helping me reproduce this! https://t.co/NzM3TzV2H0」 / Twitter
MickeyさんはTwitterを使っています 「Want to make your own persistent rootkit? Just sign your native windows binary with one of Hacking Team's revoked code signing certificates and you are all set! https://t.co/exqAYnxR4S Certificate: https://t.co/h3rVU7hRt7 https://t.co/7zfDgZX3oE」 / Twitter
Everyone Gets a Rootkit - Eclypsium
retrageさんはTwitterを使っています 「最近あんまり追っていなかったけど、MosaicRegressor後に出てきたやつか。今時BootGuardとかあるし、DXE_CORE書き換えてhookするようなのって、もう無理なんじゃないかな」 / Twitter
retrageさんはTwitterを使っています 「https://t.co/JZcnWV1FYt」 / Twitter
MoonBounce: the dark side of UEFI firmware | Securelist
SecurelistさんはTwitterを使っています 「#MoonBounce: the dark side of UEFI firmware. https://t.co/ATUKfAfRDe」 / Twitter

Specifications and Tools | Unified Extensible Firmware Interface Forum
Acknowledgements · EDK II UEFI Driver Writer's Guide
UEFI Driver Writer's Guide · tianocore/tianocore.github.io Wiki
Unified Extensible Firmware Interface - ArchWiki
UEFIBooting - Community Help Wiki
UEFI CPPC2 - Google 検索

WebAssembly

WebAssembly Studio

mbebenita.github.io/WasmExplorer/
WasmFiddle
WebAssembly Studio
wasdk/WebAssemblyStudio: Learn, Teach, Work and Play in the WebAssembly Studio
Rockridgeさんのツイート: "既存のWasmExplorerとWasmFiddleを統合し、新機能を追加して、新たなオンライン統合開発環境であるWebAssembly Studioに生まれ変わるという。今のところAlpha版に近いBeta版の状態。 / “S…” https://t.co/o88We9ZzA3"
Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE - Publickey
Coding WebAssembly? New IDE Offers Alternative to Visual Studio -- Visual Studio Magazine
WebAssembly Studio: MozillaによるオンラインWASM IDEツール
AST explorer
chikoskiさんのツイート: "WebAssembly Studioってコールグラフを可視化する機能があったのか。https://t.co/4iP8e3qcvC #webassembly"

WebAssembly

WebAssembly/proposals: Tracking WebAssembly proposals
WebAssembly Specification — WebAssembly 1.0
WebAssembly Core Specification
WebAssembly Specification
WebAssembly
Roadmap - WebAssembly
Binary Encoding - WebAssembly
Tanks! Demo - WebAssembly
Submitting Feedback & Issues - WebAssembly
Modules - WebAssembly
JavaScript API - WebAssembly
Web Embedding - WebAssembly
NectarJS - JavaScript's God Mode
WebAssembly Tail Call - Chrome Platform Status
Embedding — WebAssembly 1.0
Instructions — WebAssembly 1.0
WebAssembly Core Specification
Introduction to WebAssembly — Rasmus Andersson
WebAssembly Reference Types - Chrome Platform Status
「Google Chrome 78」リリース | OSDN Magazine
WebAssemblyソースコードがGDB、LLDBを使ってブラウザ外でデバッグ可能に
WebAssembly/wasm-c-api: Wasm C API prototype
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「暗号関係の計算をサイドチャンネル攻撃から守る、などのためにconstant timeな命令をWasmに追加しようというproposal / 1件のコメント https://t.co/lzLoLIk7pr “GitHub - WebAssembly/constant-time: Constant-time WebAssembly” https://t.co/dkekeCzMFR」 / Twitter
WebAssembly/constant-time: Constant-time WebAssembly

MDN

WebAssembly Concepts - WebAssembly | MDN
WebAssembly テキストフォーマットから wasm に変換する - WebAssembly | MDN
WebAssembly JavaScript API を使用する - WebAssembly | MDN
WebAssembly テキストフォーマットを理解する - WebAssembly | MDN
WebAssembly のコンセプト - WebAssembly | MDN
WebAssembly | MDN
WebAssembly.Module - JavaScript | MDN
WebAssemblyコードのロードと実行 - WebAssembly | MDN
コンパイルされた WebAssembly モジュールをキャッシュする - WebAssembly | MDN
WebAssembly.instantiate() - JavaScript | MDN
WebAssembly.compile() - JavaScript | MDN
WebAssembly - JavaScript | MDN

W3C

WebAssembly Core Specification
WebAssembly JavaScript Interface
WebAssembly Web API
W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開 - Publickey
Rockridgeさんのツイート: "W3CでWebAssembly Working Groupが発足。WebAssemblyの標準仕様化を目指す。なお、引き続きCommunity Groupにおいて新機能の検討が行われる。 / “Launching the Web…” https://t.co/CnyEYnYFAJ"
WebAssembly Working Group Charter
Launching the WebAssembly Working Group | W3C Blog
public-webassembly@w3.org Mail Archives
W3C Strategic Highlights: Strengthening the Core of the Web (Web Assembly) | W3C Blog

asm.js

HTML5Experts.jp

Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーJavaScript が動く仕組み | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーC / C++をasm.jsに変換するツールEmscripten | HTML5Experts.jp

blog

JavaScriptの実行速度を劇的に改善するasm.jsの特徴は、CやC++のような言語をJavaScriptのサブセットで記述すること - Publickey
asm.jsの基本的な使い方・まとめ
ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く:CodeZine(コードジン)
Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか? : document
asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話 - ひつじのにっき
Extending Emscripten to Support Objective-C — running iOS Apps on the Web

スライド

20170222-emscripten-fs // Speaker Deck
asm.js 減量やってみた // Speaker Deck
asm.jsとWebAssemblyって実際なんなの?
asm.js x emscripten: The foundation of the next level Web games
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略

Qiita

asm.js: 仕様と実装の今 - Qiita
asm.jsの速度検証 -その1- 何も考えずに書いてみる - Qiita

Twitter

Rockridgeさんのツイート: "asm.jsの並列的コンパイルについて解説した記事。Firefoxではasm.jsとWebAssemblyの処理パイプラインを共通化しており、asm.jsでもwasm IRがベースになる。これを独立したスレッドで最適化する。 https://t.co/fvEoHlZ05X"
Rockridgeさんのツイート: "Fx49:5MBを超える巨大なJavaScriptはメモリ内で圧縮が行われる。asm.jsの消費メモリ抑制に効果があるという。 / “1219098 – re-enable compression on large sources” https://t.co/BxTPVFXEgA"
chikoskiさんのツイート: "Emscriptenでサポートされているioctl のフラグですが、ざっと読んだ限りFIONREADとTIOCGPGRPだけが実装をもち、TCSETSとTIOCSPGRPはエラーが返るようです。他のは"bad ioctl syscall"となるようです。 #emsn"
Rockridgeさんのツイート: "asm.jsが何であって、何でないかということは、2013年6月という初期の段階でかなり詳細に説明されていた。 / “azakai: What asm.js is and what asm.js isn't” https://t.co/ivGMTBQa61"
Fadisさんのツイート: "Linuxカーネルの中にはインラインアセンブリが使われている箇所があるが、JavaScriptエンジン上でLinuxカーネルを動かすには、emscriptenのasm(JavaScriptを挟める)に置き換える必要がある #kernelvm"
maoさんのツイート: "WASMのパフォーマンスについて👀 良いのう。まぁ将来的にasm.jsはどの道廃止されるし。(2018.3からは非推奨警告が出る) WebAssembly Load Times and Performance https://t.co/bIVG7WrwRT"

Embind — Emscripten 1.37.3 documentation
WebIDL Binder — Emscripten 1.37.3 documentation
asm.js
PyPy.js
kripken/emscripten: Emscripten: An LLVM-to-JavaScript Compiler

LEB128

KMC Staff Blog:DWARF と有限状態機械
DWARF 3.0 Standard
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
左シフト演算子および右シフト演算子 (<< および >>)
Little Endian Base 128 in JavaScript - Google スライド

関数へのポインタ

WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
【WebAssembly】C/C++からJavaScriptで実装した関数を実行する - shogonir blog
【WebAssembly】wasm側で動的に作成したインスタンスをJSに渡す - shogonir blog
WebAssembly モジュールの作成と操作 | Mozilla Developer Street (modest)

スライド・PDF

20160903-WebAssembly // Speaker Deck
20161005-WASM // Speaker Deck
WebAssemblyに足りないもの - Google スライド
WebAssembly 入門 // Speaker Deck
コンパイラの人からみたWebAssembly | κeenのHappy Hacκing Blog
WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
NickBray_WebAssembly.pdf
詳説WebAssembly
はじめてのWebAssembly // Speaker Deck
20170924-html5conference-wasm // Speaker Deck
20171018-WASM // Speaker Deck
WebAssembly Proposals - Google スライド
chikoskiさんのツイート: "WASM 今の提案まとめスライド(TPAC2017でつかわれたもの)。今の状態、レポジトリ、提案者がまるっとわかって便利 https://t.co/50lGscy6wA #emsn"
WASM(WebAssembly)入門 ペアリング演算やってみた
WebAssembly future - Speaker Deck
WebAssemblyとABI | κeenのHappy Hacκing Blog
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
TypeScript で WebAssembly 処理系を書いた話 - Speaker Deck
AsteriusでHaskellの関数をJSから呼べるようにしてみた(けど失敗) (1)
tweag/asterius: A Haskell to WebAssembly compiler
C/C++とWebAssemblyを利用したライブラリ開発
emscripten_night_7.pdf - Speaker Deck
reg-viz/reg-cli: 📷 Visual regression test tool.
WebAssemblyが切り拓くフロントエンドWeb開発の未来
Updates in 2019 Q2 / WebIDL bindings - Google スライド
WebAssembly outside of the browser - Speaker Deck
Tiny WebAssembly Builds / WebAssembly Summit 2020 - Google スライド
Wasmコンパイラー作りの楽しみ (1)
Wasmリンカのつくりかた - Speaker Deck
WebAssemblyのWeb以外のことぜんぶ話す
Wasmで広がるEnvoyとIstioの世界 - Speaker Deck
チェシャ猫さんはTwitterを使っています 「多分、世界初の日本語資料です。#k8sjp Policy as Code と言えば OPA が有名ですが、Rego を書くのは実際つらい。Kubewarden では、好きなプログラミング言語で書いたポリシを Wasm にコンパイルして利用できます。 Kubewarden を使って任意の言語でポリシを書こう https://t.co/zPtygOKckA」 / Twitter
Kubewarden を使って任意の言語でポリシを書こう #k8sjp / Kubernetes Meetup Tokyo 42nd - Speaker Deck
WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~ - Speaker Deck
“世界最速”のペアリング暗号化技術をどう実現するか? ペアリングを使うのに固定多倍長演算が必要な理由 - ログミーTech
WebAssembly向け多倍長演算の実装
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyを、中間表現を介さずに直接interpretする / 1件のコメント https://t.co/BlZT0Jt04Y “Interpreting WebAssembly” https://t.co/2Tnt8P3S0T」 / Twitter
Interpreting WebAssembly - Google スライド
WebAssembly-illustrated - WebAssembly_illustrated.pdf

スタックマシン

Twitter

chikoskiさんのツイート: "Stack machineでジャンプすると、スタックはどうなるんですかね。全部ポップしちゃっていいのかしら。"
からふるさんのツイート: "ジャンプ先とバランスするようにポップ、もしくは必要ならプッシュしてからジャンプが基本だと思います。… "
chikoskiさんのツイート: "バランスするがイメージつかないですが、例えば例外のようにジャンプしたまま戻ってこない場合は、必要なもの以外、全部捨ててしまって良いのかしら。… "
からふるさんのツイート: "単に外に抜けるだけでしたら、基本的にその「外」に相当するスタックの位置まで全部ポップします。ただ、ポップする前にしないといけない操作があれば、もちろん行ってからポップする事になります。ループに飛び込むとかであれば逆に必要なものを積んでから飛びます… "
chikoskiさんのツイート: "なるほど。積む時もあるんですねえ… "
からふるさんのツイート: "ジャンプ先は基本的に合流ポイントなので、スタックの状態を他の実行パスと合わせる必要があるのです。なので、積むか下ろすかは状況次第です… "

スタックマシン - Wikipedia
www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
プログラミング言語処理
プログラミング言語処理

Relooper

Alon Zakaiさんのツイート: "New C++ Relooper (blocks to JavaScript loops) now in great shape https://t.co/aLvxhFl9 , and ready for emscripten 2.0 https://t.co/v48XhKAx"
kripken/Relooper: this repo is deprecated, see the main emscripten repo
Zakai-Emscripten.pdf
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
azakai's blog: Reloop All The Blocks
emscripten/docs at master · emscripten-core/emscripten
emscripten/paper.pdf at master · emscripten-core/emscripten
emscripten/splashpres.pdf at master · emscripten-core/emscripten

Emscripten

Getting Started — Emscripten 1.37.3 documentation
Introducing Emscripten — Emscripten 1.37.3 documentation
API Reference — Emscripten 1.37.3 documentation
Porting — Emscripten 1.37.3 documentation
CyberDWARF Debugging — Emscripten 1.37.3 documentation
API Limitations — Emscripten 1.37.3 documentation
File System Overview — Emscripten 1.37.3 documentation
File System API — Emscripten 1.37.3 documentation
Portability Guidelines — Emscripten 1.37.3 documentation
FAQ — Emscripten 1.37.3 documentation
Debugging — Emscripten 1.37.3 documentation
Emterpreter — Emscripten 1.37.3 documentation
Interacting with code — Emscripten 1.36.11 documentation
Emscripten and WebAssembly
EmscriptenからSSEとかpthreadを使って爆速にする : KLabGames Tech Blog

blog

herumi

melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon

V8

Up to 4GB of memory in WebAssembly · V8
What’s in that .wasm? Introducing: wasm-decompile · V8
WebAssembly Dynamic Tiering ready to try in Chrome 96 · V8

Publickey

WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly JavaScript Interface 」の3つ - Publickey
WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など - Publickey
WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応 - Publickey
WebAssemblyがSIMDをサポート、「WebAssemlby SIMD」がChromeやFirefoxで標準実装。画像処理や物理演算など高速実行 - Publickey
CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応 - Publickey
VMよりコンテナよりもさらに軽量な分離技術、V8のIsolateを用いてサーバレスコンピューティングを提供するCloudflare Workers - Publickey
PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中 - Publickey
Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
Fastly、WebAssemblyランタイムのサーバレス「Compute@Edge」ベータ公開 - Publickey
WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも - Publickey
uint256_tさんはTwitterを使っています 「https://t.co/dyOhAhlQry 時代が追いついてきた」 / Twitter
ブラウザがJavaScriptを直接サポートしない世界 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「参照型の説明が違う気がする。WASMの参照型は他の変数への参照ではなく、ホスト環境のオブジェクトへの参照のはず。」 / Twitter
PublickeyさんはTwitterを使っています 「ブログ書きました: スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など https://t.co/K2Nwu5mzv1」 / Twitter
スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など - Publickey
WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021 - Publickey
Fastly、JavaScriptエンジンをWebAssemblyで実装。CDNエッジのサーバレス環境「Compute@Edge」でJavaScriptサポート発表(訂正済み) - Publickey
クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた - Publickey
Amazon Prime Videoが動画再生にWebAssemblyを採用。再生デバイス上にWasm VMをデプロイ、高フレームレートなど実現 - Publickey
WebAssembly製のx86仮想マシン「WebVM」が登場、Webブラウザ上でLinuxや各種コマンド、アプリがそのまま実行可能 - Publickey
Webブラウザーで「Debian」Linuxが動く! WebAssembly製のx86仮想マシン「WebVM」 - 窓の杜
WebAssemblyのパッケージマネジメントとレジストリ「WAPM」がリニューアルして登場 - Publickey

借り初めのひみつきち

Wasm on Wasm - 借り初めのひみつきち
wasm ランタイムの高速化 - 借り初めのひみつきち
今週の MYOS - 借り初めのひみつきち
今週の MYOS - 借り初めのひみつきち
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
今週の MYOS - 借り初めのひみつきち

histric

histric-1

WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
WebAssembly Troubles part 3: What About Alloca?
WebAssembly Troubles part 4: Microwasm
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | ヌーラボ
WebAssembly(wat)を手書きする | 株式会社カブク
Writing WebAssembly By Hand
WebAssembly を使って自作言語をブラウザで動かしてみよう - はやくプログラムになりたい
パフォーマンス向上の次の一手はWebAssembly | フロントエンドBlog | ミツエーリンクス
Google V8 JavaScript EngineでのWebAssemblyのi32.addの実装を見てみる - めもちょー
Learning the Webassembly type system | Mauro Bringolf
C. Gerard Gallant: WebAssembly – Caching to HTML5 IndexedDB
Hijacking the control flow of a WebAssembly program
Wasabi
Olin – Defining a new operating primitive for event-driven services - 掃文資訊
The future of WebAssembly - A look at upcoming features and proposals
WebAssembly: 「なぜ」と「どうやって」 [翻訳記事] - DEV Community 👩‍💻👨‍💻
HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
WebAssembly版NCMBのビルドを簡単に行う方法 - ニフクラ mobile backend(mBaaS)お役立ちブログ
WebAssemblyを使って乱数調整ツールをWebに移植した話 - mizdra's blog
emruby: emscripten でブラウザで動く MRI - まめめも
WebPerl | Run Perl in the browser with WebPerl!
WebAssembly が WebGL ビルドのスタンダードに! – Unity Blog
[続] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
WebAssembly 開発環境構築の本 | WebAssembly 入門
WebAssemblyを出力するMinCamlコンパイラを実装しました - a_kawashiroのブログ
例のアレをWebAssemblyで動かした - うひょー(ブログ)

histric-2

[続々] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
WebAssemblyちょっとやる - バランスを取りたい
WebAssembly doesn’t make unsafe languages safe (yet) | Frank DENIS random thoughts.
WebAssemblyのAOTコンパイラを作った - 飽きっぽい人のブログ
|詳説|線形メモリとArrayBuffer |〜 wasm-bindgenではどのように文字列を扱っているのか?〜 - Mi in progress
WebAssembly: Neither Web, Nor Assembly, but Revolutionary — JavaScript January
Mozilla Hacks' 10 most-read posts of 2018 - Mozilla Hacks - the Web developer blog
Chrome Dev Summitに参加しました! - from scratch
ただの素人がフロー解析を通過した – 言語実装 Advent Calendar 2017 – kekyoの丼
Episode 49 – Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code – Misreading Chat
WebAssembly Troubles part 4: Microwasm
Rust/WebAssembly でレトロシンセをエミュレートする | hiromasa.another :o)
Lucet's performance and lifecycle
Vim on Wasm on Web Worker on Browser with Atomics - はやくプログラムになりたい
WASMでPCエミュレータ作った。 - 借り初めのひみつきち
neri/vpc: A PC Emulator implemented by WebAssembly
Virtual Playground
続・WASMでPCエミュレータ作った。 - 借り初めのひみつきち
夏休みだョ!WebAssembly Proposal全員集合!! | Kabuku Developers Blog
Running Wasm on V8 Without JS API – kanejaku.org

Fastly and partners form WebAssembly-based, open-source community Bytecode Alliance
mallocを使えるようにする(libcのコンパイル) | ブログ - Sumire Articles
ClangでWebAssemblyにコンパイル | ブログ - Sumire Articles
What should the memory layout look like for wasm modules? · Issue #81 · rustwasm/team
WebAssembly.Memory() - JavaScript | MDN
物体検出器 EfficientDet をブラウザで高速推論 - OPTiM TECH BLOG
Web 以外でも期待される WebAssembly - Blockchain との親和性について - LINE ENGINEERING
Using WebAssembly threads from C, C++ and Rust
RubyとWebAssemblyの関係についてわかる範囲でまとめる | うなすけとあれこれ
UTCTF 2020 writeup - Wasm Fans Only - こんとろーるしーこんとろーるぶい
出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか〜エンジニアが語る技術愛 #03〜|ミクシル
Bytecode Alliance
WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech
自作プログラミング言語と WebAssembly コンパイラ. このエントリでは、僕が趣味で作っている自作プログラミング言語の話を書こうと思う。… | by Yosuke Kurami | Dec, 2021 | Medium
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmに書き換えただけでそんなに速くなるというのもまた珍しい。随分前にMarkdownのrendererも速くできた、って例も聞いたことがあるのでまとまった文字列を組み立てるのは意外といいユースケースなのかも / “Rust+wasmでSVGを生成する” https://t.co/pV4Uu9OgMm」 / Twitter
Rust+wasmでSVGを生成したら10倍速くなった | lacolaco/tech
WebAssemblyランタイム「Wasmer 2.2」が公開 | OSDN Magazine
Cloudflare WorkersをRust(WASM)で書くと速いのか - console.lealog();
WebAssemblyでLISPインタプリタを書いた | zick pages

WASI

setjmp

Cedec 2015 : EmscriptenとC++で作る ネイティブライクな 商用ブラウザゲーム(Making WebApp like…
Emscriptenチュートリアルコードの移植性と制限事項(a) - YUEDY
How would setjmp/longjmp be implemented in WebAssembly? - Stack Overflow
LLVM Weekly - #140, Sep 5th 2016
A cartoon intro to WebAssembly | Hacker News
src/setjmp/longjmp.c - external/github.com/WebAssembly/musl - Git at Google
Drop emscripten-fastcomp in favor of WebAssembly ? - Google グループ
⚙ D24121 [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302)
jfbastien/wasm-setjmp: Experimenting with setjmp / longjmp and exceptions in wasm
Does WASM share a stack with JS? · Issue #126 · WebAssembly/design

Asyncify

Asyncify — Emscripten 1.39.2 documentation
GoogleChromeLabs/asyncify: Standalone Asyncify helper for Binaryen
Pause and Resume WebAssembly with Binaryen's Asyncify
Using asynchronous web APIs from WebAssembly

Twitter

その他

CloudABI

Introducing CloudABI
NuxiNL/cloudabi: Definitions for the CloudABI data types and system calls
NuxiNL/cloudlibc: CloudABI's standard C library

histric

histric-1

dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「MozillaとFastlyが推進してきたWebAssemblyのシステムプログラミング対応版WASIを更に押し進めるため昔からJS向けSIMD実装など貢献し続けてるIntelとRedHatが参加する形でBytecode Allianceを設立するとのこと。WASIのランタイムには組み込み想定のもあるし楽しみ過ぎる。 https://t.co/GHcgVVBsCb」 / Twitter
Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「長大だけど背景とか技術的視点で解説したHacksブログ記事もオススメ。 Nodeなどの既存エコシステムで問題になっている安全性の課題をランタイム設計から安全にすることで解消しつつハイパフォーマンスランタイムを実装していく。素敵。 https://t.co/qNwX8fm4zx」 / Twitter
New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing - The Mozilla Blog
WasmerさんはTwitterを使っています: 「Great presentation by @kripken showcasing Asyncify to enable async calls in #WebAssembly. ...with a demo using setjmp/longjmp with WASI and Wasmer! 😍 🎥 Talks are recorded and will be published by @wasmsf soon https://t.co/DFmf0iHVqX」 / Twitter
chikoskiさんのツイート: ""Running WebAssembly on the Kernel" 衝撃的なタイトルですが、kernelモードでwasmを実行した話。wasmerのローダと、WASIの実装をkernel moduleとして実装するこで、ring0での実行を実現。TCPサーバーの例も付属。なおネイティブより10%程度の速度向上があった。理由は不明。 https://t.co/t1r6xSIhdh"
Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks – the Web developer blog
Masaki Haraさんのツイート: "https://t.co/saiSjSeTNr Rustのwasm32-unknown-wasiサポートが早速実装されてる。wasiはWebAssemblyをブラウザ以外(のサンドボックス用途)でも使うというやつらしい"
Add intial support for wasm32-unknown-wasi by alexcrichton · Pull Request #1307 · rust-lang/libc
chikoskiさんのツイート: "Lucet: fastly産のc / wasm32-unknown-wasiコンパイラ(Sandboxing WebAssembly コンパイラ、と彼らは呼んでいる)。バイナリの処理系もついてる。これもCraneLiftをバックエンドに使ってる。https://t.co/S0W0s9mJAn"
chikoskiさんのツイート: "clangのターゲットにwasm32-unknown-wasiを追加するには / WASI向けにCをLLVMでコンパイルするには。LLVM8はwasm-32-unknown-unknownをサポートしているので、そこにwasi-sysrootからlibclang_rt.builtins-wasm32.aを追加することで、コンパイルできるようになるらしい:https://t.co/Tom22DOcpg… https://t.co/5L6mPOH733"
Compiling C to WebAssembly using clang/LLVM and WASI. | Frank DENIS random thoughts.
WebAssemblyWeeklyさんのツイート: "Compiling C to WebAssembly using clang/LLVM and WASI https://t.co/qYBrzqfUab this brief little guide shows you how to get the latest LLVM and WASI tooling working together"
chikoskiさんのツイート: "WASIは周到に準備されてたんだなー感はあるな。もちろん様々な主体による継続的なツールに対する投資の結果ではあるのだけれど。"
chikoskiさんのツイート: ".@wasmerio 0.3.0リリース。WASIに早速対応。すばやい。Lua, SQLite, PHPも実行可能に。デモ有り。… "
chikoskiさんのツイート: "「既存プロジェクトをWASIに移植するには」1. clan-8を使うこと、2. setjmpやsocketをサポートしないので適切に修正すること、3. llvm-ar/llvm-ranlibなどのパスを正しく設定すること、4. configureも忘れずに修正すること、の4点がポイント、とのこと。移植の実例もあり。https://t.co/iJevDHWifX… https://t.co/dBvFUniyva"
Porting projects to WASI: the flite program
WebAssemblyWeeklyさんのツイート: "Porting projects to WASI: the flite program https://t.co/dwNDTilGFg flite is a tet-to-speech app - this post looks at porting it to WebAssembly using the WASI system interface"
WASI resources.md
chikoskiさんのツイート: "https://t.co/nMtZpZc33U あれ? --target wasm32-wasi になったの?"
wasi-sysroot/expected/wasm32-wasi at master · CraneStation/wasi-sysroot
Rui Ueyamaさんのツイート: "ブラウザ外でのWASMとか、それで大きなプログラムを動かすことを視野に入れて、ビルド速度のためにファイルフォーマットを多少変更してもらったことがある。 https://t.co/6hW1NkOpX4"
Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
chikoskiさんのツイート: "さままざまな言語の資産を使える方がネットワーク効果が高まっていいもんね。"
Capsicum: Practical Capabilities for UNIX | USENIX

chikoskiさんはTwitterを使っています: 「Emscriptenにstand aloneモードが追加:1) -oオプションにwasmファイルを指定するとこののモードに。2)WASIのエントリーポイントである_startを出力 3) WASIのAPIを可能な限り使う4) リロケータブルメモリのサポートが不要なのでサイドモジュールとして作ったものより軽量 https://t.co/ALCAtAmHIW」 / Twitter
Outside the web: standalone WebAssembly binaries using Emscripten · V8
WebAssembly Standalone · emscripten-core/emscripten Wiki
emscripten/runtime.js at 65271b0ed8e77d07ced7f6873c3582b6b0ae2719 · emscripten-core/emscripten
ドッグさんはTwitterを使っています 「ブラウザ外 Wasm の一番のユースケースは個人的にはプラグイン機構だと思ってるけどどうなんだろう.クロスプラットフォームで動くし,サンドボックス内で動かせるから使える API に制限かけてやれば比較的安全にサードパーティプラグインを動かせるし」 / Twitter
ドッグさんはTwitterを使っています 「セキュリティをしっかり考えたいなら gVisor みたいな VM 使って実行環境を隔離したほうが良さそうではあるけど」 / Twitter
chikoskiさんはTwitterを使っています 「@Linda_pp プラグインは有力なユースケースだと思います。Shopify は柔軟性とセキュリティの両方を提供するために、WASM プラグイン採用してますよね。あと Server-less での利用も同じ文脈かなと理解してます。」 / Twitter
Yohei KusakabeさんはTwitterを使っています 「@Linda_pp EnvoyProxyのフィルターがWasmプラグインになったのはまさにそれですよね。同一プロセス上でWasmバイナリを動的にダウンロードして実行出来るしランタイムもある程度管理出来るしでかなり適したユースケースだと思います。最初に聞いたときはどゆこと?ってなりましたけどw」 / Twitter
ドッグさんはTwitterを使っています 「@yo__ohei Envoy のフィルタが Wasm で書けるの知りませんでした.ありがとうございます.まだ試験的みたいですが,確かに用途にフィットしていて良さそうですね」 / Twitter
FadisさんはTwitterを使っています 「wasmがどんなにサンドボックス内に隔離されていても、外とやりとりするAPIに穴が開いていたら安全ではなくなるので、WASIのようなAPIには独自にセキュリティ機構が求められる #kernelvm」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kotatsu_mi wasm-c-apiはWasmの処理系を埋め込むアプリケーションが、どうやってWasmファイルをcompileしたりinstantiateしたり実行したりするのかを規定したAPI群です。 WASIはWasmファイルがwasi-libcなどを通じておなじみprintfなどを実行するときに必要な、syscall相当のAPI群です。」 / Twitter
Public preview: AKS support for WebAssembly System Interface (WASI) workloads | Azure の更新情報 | Microsoft Azure
monochromeさんはTwitterを使っています 「そうか、Fiberもコンテキストスイッチする関数を差し替えて対応してるんだった(教えてもらったのに忘れていた wasmでこんな低レイヤっぽいこともできるんだなあ… https://t.co/y5V0LpcZpW」 / Twitter
[wasm] add asyncify based setjmp, fiber, register scan emulation · ruby/ruby@65f95f2
市川 真一さんはTwitterを使っています 「WASI で JavaScript 実行環境が存在していることを前提にしてるコード例を見かけるけど、その際の JavaScript 実行環境はサンドボックス化されている保証はあるのだろうか。WASI は使う予定はないので、思っただけで深追いはしないけども」 / Twitter

2022年に注目したいCloudNative関連技術:新春特別企画|gihyo.jp … 技術評論社
MozillaがWASIイニシアティブを発表、WebAssemblyをすべてのデバイス、コンピュータ、オペレーティングシステムで動作可能に
Experiments in C# and WebAssembly Interface Types | by yowl yowlxx | Medium
Updates in 2019Q1: specs and WASI - Google スライド
Capability-Based Computer Systems
Amoeba (オペレーティングシステム) - Wikipedia
WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど - Publickey
WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同 - Publickey
WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
Bytecode Alliance
コンテナ技術を捨て、 WASIを試す. こんにちは、NTTの藤田です。 | by FUJITA Tomonori | nttlabs | Medium
Rust で WASI 対応の WebAssembly を作成して実行 - なんとなくな Developer のメモ
WebAssemblyランタイム「Wasmer 2.1」リリース。WASI用に仮想ファイルシステムを実装し、ブラウザでもWASIが利用可能に - Publickey
RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように - Publickey
Rubyのコミッタになりました - kateinoigakukunのブログ
Ruby On BrowserとRuby WASM/WASIの雑感 - ブログのおんがえし

Mozilla

5x

Rockridgeさんのツイート: "Fx52:WebAssemblyがデフォルト有効化。 / “1342060 – wasm: enable by default” https://t.co/zoPVRYdMbO"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルに、WebAssemblyの段階的コンパイルに関する試験的実装が投入された。 / “1277562 - Wasm: tiered compiler” https://t.co/JDSGMaOgrN"
Rockridgeさんのツイート: "Fx58:WebAssemblyでも、JavaScriptと同様にまずはBaselineがすべての関数をコンパイルし、必要に応じてIonMonkeyが最適化を行う。 / “1391196 - Enable wasm tierin…” https://t.co/sN68l2TzC7"
Rockridgeさんのツイート: "Fx58:WebAssemblyからJITコンパイルされたJavaScriptを呼び出す処理が約50%高速化された模様。参照:https://t.co/N8YOBj3Z7u / “1360211 - Merge WasmActi…” https://t.co/eUXUP41rp8"
Rockridgeさんのツイート: "Fx58:WebAssemblyのコンパイラが改良され、ダウンロード完了前のコンパイル開始(ストリーミング)が可能になったほか、メインスレッドで高速なコンパイルを行いつつ、別スレッドで最適化を進める仕組みも入った。 / “Mak…” https://t.co/1oBtpUzXk9"
Rockridgeさんのツイート: "Firefox 58でWebAssemblyのコンパイラが改良された効果は大きく、コンパイルの所要時間が数分の1で済むようになっている。参照:https://t.co/Wt4o5HTRBo / “Impressive WebAs…” https://t.co/DRdvXbmp8l"
Rockridgeさんのツイート: "Fx58:WebAssemblyのストリーミングは本バグが取り扱ったものとみられる。 / “1406421 - Baldr: actual streaming compilation of WebAssembly.compile…” https://t.co/A28nM21M6C"

6x

Rockridgeさんのツイート: "Firefox 60では、JIT entry stubの仕組みを導入してJavaScript関数とWebAssembly関数とで呼び出しに差がないようにし、WebAssemblyの高速化を図った。また、JIT entry stub… https://t.co/xADYt0JAM3"
Rockridgeさんのツイート: "Fx63:WebAssemblyテキストフォーマットの生成機能は、debugger.htmlに委ねて、SpiderMonkeyから削除。メンテナンスの負担が低下した。 / “1447591 - wasm:: Investigat…” https://t.co/zZjj0dXscY"
SIMD.js(ECMAScript 7)
SIMD型について - JS.next
Rockridgeさんのツイート: "Fx63:SIMD.jsの実装を削除。今後はWebAssemblyにおけるSIMDのサポートに注力していくことになるようだ。参照:https://t.co/XpYmu7g1WF / “1416723 - Remove SIMD.…” https://t.co/nYli69PpbO"
Rockridgeさんのツイート: "CraneliftはMozillaが開発中の低水準コード生成システムであり、FirefoxのWebAssemblyコンパイラとして導入され、将来的にはIonMonkeyの一部機能を置き換えてJavaScript JITコンパイラに… https://t.co/RVYYbGlWVz"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルでは、既にCraneliftが導入済みであり、javascript.options.wasm_craneliftの設定をtrueに変更すれば有効となる。参照:… https://t.co/WjKgkWCY1L"

@rockridge07

連載

Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第1弾。2008年のJITの導入以来、久々にJavaScriptのパフォーマンスが大きく向上するフェーズに入るという。 / “A cartoon intro to WebAssem…” https://t.co/TC0W4jBmPP"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第2弾。まずは前史であるJavaScriptインタープリタとJITのおさらいから。stubやbailing outの概念に加え、最適化についてもわかりやすい説明があって素晴らしい。 https://t.co/3rzNKlETYa"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第3弾。まだWebAssembly自体は出てこない。機械語とアセンブラ、さらに中間表現(IR)について、図を交えながら説明している。 / “A crash course in as…” https://t.co/t1Cpy2pWLZ"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第4弾。LLVMのIRからWebAssemblyへの変換についてや、モジュールの構造とコードの動作についてなど、一挙に核心に迫る。 / “Creating and working …” https://t.co/qXZod0OJ2F"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第5弾。WebAssemblyが通常のJavaScriptよりも高速に処理される理由を、Parsing/Compiling + optimizing/Re-optimizing/Ex… https://t.co/c9RUO6LEvm"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第6弾(最終)。2017年2月28日をもって、WebAssemblyはブラウザプレビューの段階を脱した。各社デフォルトで有効化していく。将来的にはDOMを直接操作可能にし、並列処理も… https://t.co/HdO4Hzemte"

histric-1

Rockridgeさんのツイート: "レイトレーシングのデモによる速度比較。JavaScript版よりもWebAssembly版(Rustから変換)のほうが、およそ9倍高速になったという。 / “Ray Tracing: WebAssembly vs JavaScr…” https://t.co/R6weunJ5lE"
RockridgeさんはTwitterを使っています: "WebAssemblyは、Mozillaが提唱するポータブルなバイナリフォーマット。LLVMなどを通じて生成される中間コードは、当初からasm.js相当の機能が確保され、動作
Rockridgeさんのツイート: "WebAssemblyはasm.jsとの互換性を保ちつつ、実マシンのコードに近い仮想的な命令セットが定義され、メモリが連続的に確保されるなどの特徴を有する。本スライドの最後あたりに将来的な機能についても言及がある。 / “201…” https://t.co/OBNvFx6Jls"
Rockridgeさんのツイート: "WebAssemblyは規格が候補版の段階に達し、各ブラウザでの実装も進んでいることから「ブラウザプレビュー」のフェーズに突入。MozillaはFirefox 52リリース版で有効化を目指す。既にasm.jsを超えるパフォーマンス… https://t.co/xeFEDDFrBC"
Rockridgeさんのツイート: "WebAssemblyとWebGL 2.0を組み合わせた美麗なデモの動画。なお、デモ本体はファイルサイズが約100MBあり、動作にかなりのマシンパワーとメモリを必要とする。参照:https://t.co/z9SNQej2dc https://t.co/mwqnQ0f5jX"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyは様々な点でasm.jsよりも高速に動作するよう設計・実装されている。コンパクトで解析の容易なバイナリフォーマットの採用、JavaScriptの制約を超えたCPU機能の活用、生成用ツールチェーンの改善など。 https://t.co/aT7e6rcQOU"
Rockridgeさんのツイート: "FigmaはWeb上でUIデザインを共同編集するためのアプリ。asm.jsからWebAssemblyに移行したところ、Firefox上で使用した場合におけるドキュメントの読み込み時間が3分の1になったという。 / “WebAss…” https://t.co/GpjtLnctH1"
Rockridgeさんのツイート: "「ブラウザプレビュー」フェーズ後のWebAssemblyのロードマップについて。 / “WebAssembly” https://t.co/TtgqkKKhSk"
Rockridgeさんのツイート: "WebAssemblyのコードの構造と機能を詳細に分析した記事。WebAssemblyにおいて、プログラムとライブラリの区別はなく、すべてがモジュールとして取り扱われるという。 / “Introduction to WebAss…” https://t.co/tmzOgBstp7"
Rockridgeさんのツイート: "HumbleNetはWebRTCとWebSocketsのラッパーとなるクロスプラットフォームなネットワークライブラリ。asm.js/WebAssemblyの形式でWebゲームに組み込むことで、対戦プレイを可能にする。 / “In…” https://t.co/joNpZrOJ9M"
Introducing HumbleNet: a cross-platform networking library that works in the browser ★ Mozilla Hacks – the Web developer blog

histric-2

Rockridgeさんのツイート: "コンパイル済みのWebAssemblyモジュールは今のところJavaScriptのインスタンスを生成して利用することになっている。生成時にはimportsオブジェクトという入れ物にvalues/function closures/… https://t.co/yhQjUcrfZX"
Rockridgeさんのツイート: "WebAssemblyのメモリ管理はArrayBufferを通じて行われる。これによりメモリは他の部分から分離されて安全性が高まり、ガベージコレクションの対象にもなりつつ、JavaScriptとの値のやりとりが可能になるという。 https://t.co/cot74Cf7Wg"
Rockridgeさんのツイート: "WebAssemblyには管理領域外のメモリに対しtableを通じて間接的にアクセスする仕組みがある。現在は利用ケースが限られているものの、将来的にDOMへのダイレクトアクセス機能を追加する際に生きてくるらしい。 / “WebA…” https://t.co/hgEqxUU6sl"
Rockridgeさんのツイート: "WebAssemblyコミュニティグループは現在、SIMDやマルチスレッディングによる並列処理の有効化に注力しており、Firefoxでも2018年初めにはそうした機能がリリース版に実装されて、ネイティブゲームのWebへの移行を後押… https://t.co/edPq6X7wb6"
Rockridgeさんのツイート: "OpenCVベースのリアルタイム顔検出デモを作成してWebAssemblyに変換した結果、パフォーマンスが同一アルゴリズムを用いたJavaScript版の10数倍になったとのこと。参照:https://t.co/7vfNAWG6Ph https://t.co/3wcMDiCiED"
Rockridgeさんのツイート: "WebAssemblyの最新動向をトピックとして掲載しつつ、情報交換や議論のためのフォーラムでもあるようなWebサイト。 / “Home | WebAssembly Rocks” https://t.co/JIPIbBX81E"
Home | WebAssembly Rocks
Rockridgeさんのツイート: "Safari 11とEdgeHTML 16ベースのMicrosoft Edgeがリリースされたことにより、メジャーなブラウザすべてでWebAssemblyがサポートされるに至った。WebAssembly自体の用途が広がっているほか… https://t.co/nNPUSXMbAM"
Rockridgeさんのツイート: "binaryen.jsはBinaryenのWeb移植版であり、JavaScriptからWebAssemblyのバイナリコードを生成できるという。TypeScriptもサポート。参照:https://t.co/JxXU0IIEXw https://t.co/LaybgGvW2S"
Rockridgeさんのツイート: "「Unityなどのゲームエンジンなどで普通に出力される」数十MbのWebAssemblyファイルは、「現在のブラウザだと起動までに大変時間がかかってしまい」、「『タップしてすぐに起動』という世界には遠いのが現状です」。 / “巨…” https://t.co/GL3iRTCjVe"
Rockridgeさんのツイート: "サムスンの調査によれば、配列のサイズが小さい場合、JavaScriptはWebAssemblyを上回るパフォーマンスとなる。大半のWebアプリはJavaScriptで十分であり、WebAssemblyはゲームのような計算量の多いW… https://t.co/k5XKvZwssk"
Rockridgeさんのツイート: "Rust言語をWebAssemblyに変換するモジュールは、JavaScriptとWebAssemblyを協調して動作させる仕組みを学ぶのに適しているという。 / “Baby’s First Rust+WebAssembly m…” https://t.co/GySOyIkzcr"
Rockridgeさんのツイート: "2018年7月にリリースされたUnity 2018.2では、WebGL出力の際にデフォルトでWebAssemblyが用いられるようになった。asm.jsが用いられていた従来に比べてコードサイズが10数%減ったという。 / “We…” https://t.co/irEQxQAGZL"

Rockridgeさんのツイート: "Large-Allocationヘッダは、目標よりも少し遅れてFirefox 53で有効化されるようだ。ただし、32bit版限定。 / “Web Games Platform: Newest Developments ★ Moz…” https://t.co/LwWYzkkIYR"
Rockridgeさんのツイート: "MozillaがWebAssembly Explorerと呼ばれるツールを開発中。ブラウザ内でC/C++のコードをコンパイルしてWebAssemblyに変換するとともにその過程を可視化する。生成されたWebAssemblyもテキス… https://t.co/RdcS92vr4Q"
Previewing the WebAssembly Explorer ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "Mozillaの構想では、将来的にWebAssemblyはメール、SNS、ワードプロセッサなどのアプリやJavaScriptフレームワークにも採用されていく。文字どおりWebを変えていく力を持つので、MozillaはWebAsse… https://t.co/sZyjNr10ZP"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyベースのゲームなどが大量の連続的なメモリを確保できるように、Fx52でLarge-Allocationヘッダという仕組みを導入予定。e10s有効化を前提に独立のプロセスを割り当てる。32bit版Firefox… https://t.co/hGIg3w4sZx"
Rockridgeさんのツイート: "MozillaはWebassemblyのコードをまずBaselineがコンパイルし、その後バックグラウンドにおいてIonMonkeyがコンパイルしたものに順次置き換えていくという段階的コンパイルの仕組みを開発中だ。 / “Was…” https://t.co/SFYzOVC0Gp"
Rockridgeさんのツイート: "Emscriptenの開発スタート、asm.jsの導入、WebAssemblyへの発展という一連の流れを、Mozillaの開発者が語る。ゲームはユースケースであると同時にショーケースでもあり、他の分野にもWebAssemblyが広… https://t.co/GIsTGyx51x"
Rockridgeさんのツイート: "ソースマップ・パーサの一部をWebAssemblyで置き換えた(従前はJavaScript)ところ、最大5.89倍の高速化を達成し、パフォーマンスのバラツキも抑えられた。RustからWebAssemblyにコンパイルしている点もポ… https://t.co/HgW3lAeEnH"
Rockridgeさんのツイート: "最新のEmscriptenでは、生成するWebAssembly/JavaScriptについて不要なコードを含めず、無駄なコードを削除することで、サイズを従来の数分の1に減らすことに成功した。 / “Shrinking WebAs…” https://t.co/8UVetvYKj0"
Rockridgeさんのツイート: "2018年3月に発表された構想を実現させるべく、wasm-packの開発がアナウンスされた。Rust言語のクレートをWebAssemblyに変換してnpmパッケージ化する。 / “Hello wasm-pack! – Mozil…” https://t.co/bGIOywM1c8"
Rockridgeさんのツイート: "Binaryenコンパイラの最適化処理に新しくレベル4が加わった。レベル3と比較すると、生成されるWebAssemblyのサイズを20%削減できる一方、コンパイル時間は3倍かかるという。 / “Binaryen goes up …” https://t.co/9ntwdmcOxE"

Firefoxバージョン58でWebAssemblyが10倍高速化
Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え - Publickey
Firefox 58でWebAssemblyの起動を大幅に高速化 - Mozilla Flux
Mozilla HacksのWebAssembly連載記事の和訳が開始 続編に期待(追記あり) - Mozilla Flux
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは? | HTML5Experts.jp
WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! | HTML5Experts.jp
清水智公@chikoski氏が語る「WebAssemblyで何ができるのか?」#html5jplat|CodeIQ MAGAZINE
WebAssembly を速くするには? | Mozilla Developer Street (modest)
MozillaがWebAssemblyに向けたツールチェインの取り組み「Binaryen」を明らかに | OSDN Magazine
WebAssembly's post-MVP future: A cartoon skill tree - Mozilla Hacks - the Web developer blog
MozillaはWebAssemblyのパフォーマンスと機能に焦点を当てている
ドッグさんはTwitterを使っています 「Mozilla はブラウザの Wasm 実装に注力することになって,ブラウザ外の Wasm 処理系 Wasmtime のチームは Fastly が引き取ることになったのか.Fastly の Wasm 処理系 Lucet に Wasmtime が吸収されるのかな? | 'Bytecode Alliance: One year update' https://t.co/8to9T0g03Y」 / Twitter
Bytecode Alliance
ドッグさんはTwitterを使っています 「ちなみに Firefox では Wasm の JIT コンパイラ実装に Cranelift を使ってるので,Cranelift の開発は Mozilla も引き続き参加する」 / Twitter
κeenさんはTwitterを使っています 「WebAssemblyのエコシステムを牽引するBytecodeAllianceにはWebAssemblyのランタイムが2つあった。Mozilla製のWasmtimeとFastly製のLucet。今回の移籍で元々計画されていた2つのマージが進展する見込。」 / Twitter
Calls between JavaScript and WebAssembly are finally fast 🎉 - Mozilla Hacks - the Web developer blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「#WebAssembly でJSのAPIをたくさん呼んでDOMの操作をするのは効率が良くないだろうと思っているんですが、世の中のWebAssemblyの事例を見ると、WebGLのAPIをたくさん呼んで複雑なグラフィックを描画する例が多くあるようです。これらは実はJSから直接呼んだ方が効率が良かったりしないのでしょうか?」 / Twitter
WebAssemblyを利用したFirefox 95の新しいサンドボックス技術「RLBox」 | TECH+
新サンドボックス技術を導入した「Firefox 95」が公開 | OSDN Magazine
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Firefoxの新しい権限分離 (sandbox)方式 RLBoxの説明。従来、ブラウザの権限分離はプロセスを分けることによって達成されていたが、これは効率に問題があった。RLBoxではコードを一度wasmに変換後、ネイティブに再コンパイルする。これによりアドレスの安全性が保障される。 https://t.co/v0ILe2qj9P」 / Twitter
WebAssembly and Back Again: Fine-Grained Sandboxing in Firefox 95 - Mozilla Hacks - the Web developer blog
ドッグさんはTwitterを使っています 「信頼されてないコードを実行する目的で Wasm の sandboxed なコードにコンパイルして実行したいけど,それだと遅いので,(ポータビリティと引き換えに)そこからさらに AOT コンパイルして最適化したいという話っぽい」 / Twitter
ドッグさんはTwitterを使っています 「まあでも straightforward に Wasm の命令を C に落とし込めば,そんなにポータビリティ悪いコードにもならなさそう(コンパイラは要るけど)」 / Twitter
Miura HidekiさんはTwitterを使っています 「WASM → ネイティブコード、抽象解釈によるプログラム解析がすごく有効な気がするけど、あまりやる気が起きないな。明らかにうまく行く話はときめかないのかもしれない。」 / Twitter
Miura HidekiさんはTwitterを使っています 「凄く勝率が高そうなので誰かやればいいのに。もっとカオスなRubyからの変換にときめいちゃうのなんでだろうね。もっと現実的になればいろいろ幸せだろうに」 / Twitter

Google

Twitter

chikoskiさんのツイート: "V8に入ったWASMのコンパイルを速くするLiftoffの紹介。 Streaming APIとの組み合わせでコード出力がTurbofanと比べて10倍高速に。(最適化という意味での)品質は二の次で、スピードを重視。WASMを使ったアプリの起動がグッと速くなる https://t.co/3S9vvtb4pc"
V8 JavaScript Engine: Liftoff: a new baseline compiler for WebAssembly in V8
Rockridgeさんのツイート: "LiftoffはChrome 69でデフォルト有効化されるV8搭載のWebAssembly向けベースラインコンパイラ。既存のTurboFanで最適化する場合と比べ、コードのパフォーマンスは半分程度に落ちるが、生成は10倍近く高速に… https://t.co/UlBWojjT4S"
Rockridgeさんのツイート: "GoogleがPNaClを捨てて全面的にWebAssemblyにコミットする。2018年第1四半期にはChromeアプリと拡張機能以外ではPNaClはサポートされなくなるという。独自仕様による囲い込みの危険がなくなったのは素晴らし… https://t.co/NmM7lT9A6k"
Rockridgeさんのツイート: "Chrome 57(V8 5.7搭載)では、WebAssemblyがデフォルト有効化されている。 / “V8 JavaScript Engine: V8 Release 5.7” https://t.co/to7mwgq5Wl"
Rockridgeさんのツイート: "ChromeでWebAssemblyがデフォルト有効化へ。 / “Intent to Ship: WebAssembly” https://t.co/rRC6nqJGnt"
Rockridgeさんのツイート: "Firefoxと並んでWebAssemblyの実装が進んでいるChromeだが、現在もフラグを有効化しないと試すことができない。もっとも、規格が完成する2017年第1四半期にはデフォルト有効化の見込み。 / “V8 JavaSc…” https://t.co/t0u6WAE6mj"
Rockridgeさんのツイート: "GoogleはこれまでWebAssemblyのコードをasm.jsに変換してV8のTurboFanに処理させていたが、2016年12月にWebAssemblyをネイティブサポートした模様(デフォルト無効)。既にMassiveなどの… https://t.co/JM9sqkFaJZ"
dynamis (でゅなみす@もじら)さんのツイート: "V8はそもそもFullcodegenとかCrankshaftとかが残ってるのを今年捨ててBaseline JITのIngitionとOptimizeのTurboFanのセットに切り替えることもあって、TurboFanにJS由来のバイトコードも.wasmも突っ込むシンプル設計になる"
ドッグさんのツイート: "Google Earth で Wasm のマルチスレッド対応してるのか(あまり内部実装の話は無かったけど).sourcemap サポートは Chrome 71 から | 'Using WebAssembly and Threads (Chrome Dev Summit 2018)' https://t.co/BvT9X4i2j6"
Surmaさんのツイート: "If you start Canary with the `--js-flags="--experimental-wasm-simd"` CLI flag, you can play with SIMD in WebAssembly 🎉… https://t.co/uILOfpYdBb"
chikoskiさんはTwitterを使っています 「Chrome95 から Wasm module (WebAssembly.Module) を origin を超えて共有できなくなる、というアナウンス。 https://t.co/kVDpuB3i9O」 / Twitter
Restricting Wasm module sharing to same-origin - Chrome Developers

Google Developers Japan: V8 で WebAssembly を試験運用開始
Chromium Blog: Goodbye PNaCl, Hello WebAssembly!
Google Developers Japan: さよなら PNaCl、こんにちは WebAssembly
bitWalk's: WebAssembly と Google Chrome 51
Google Online Security Blog: Android Security Ecosystem Investments Pay Dividends for Pixel
rL318539
JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了 - Publickey
external/github.com/WebAssembly/v8-native-prototype - Git at Google
external/github.com/WebAssembly/musl - Git at Google
Project Zero: The Problems and Promise of WebAssembly
V8 release v7.0 · V8
WebAssembly Threads ready to try in Chrome 70  |  Web  |  Google Developers
Google、画像圧縮WEBアプリ「Squoosh」公開。ブラウザだけで圧縮やフォーマット変換が可能 - Engadget 日本版
Intent to ship: WebAssembly Threads - Google グループ

MS

EdgeでWebAssemblyを動かしてみる - ぷろじぇくと、みすじら。 - Misuzilla.org
Get started building .NET web apps that run in the browser with Blazor | ASP.NET Blog
aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly
Rockridgeさんのツイート: "MicrosoftもChakraCoreにWebAssemblyを実装中。数か月以内にMicrosoft Edgeの開発版で使えるようにするという。うまくいけばWindows 10 Creators Updateに間に合うだろう。 https://t.co/Tl13XoFqqO"

Apple

Rockridgeさんのツイート: "次期Safari 11ではWebAssemblyをフルサポートする。B3 JITコンパイラをベースに、Build Bytecode Quickly(BBQ)とOptimized Machine-code Generator(OMG… https://t.co/iZ7DskdRPb"
Assembling WebAssembly | WebKit

Swift

kateinoigakukunさんはTwitterを使っています 「嬉しいお知らせです。WebAssemblyに提案していた相対アドレッシング向けの再配置タイプ実装がマージされました。がんばった。 [WebAssembly] Add new relocation for location relative data https://t.co/QYMGPzYvqH」 / Twitter
⚙ D96659 [WebAssembly] Add new relocation for location relative data
kateinoigakukunさんはTwitterを使っています 「コレが入ることで何が嬉しいかというと、Swiftのメタデータが使っている相対ポインタというテクニックがWasm上でそのまま使えるようになって、プラットフォーム間でデータ構造の差異がなくなります。とくに64bit対応を考えると絶対ポインタだとアドレスサイズが変わって全部壊れます。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「詳しくは https://t.co/etuOYSMnqy」 / Twitter
SwiftのWebAssembly対応の進捗 | メルカリエンジニアリング
Swiftの関数型の実行時表現 - Speaker Deck

GitHub

rhmoller/wasm-by-hand: Small cookbook examples of writing WebAssembly by hand in .wast format
GoogleChromeLabs/wasm-feature-detect: A small library to detect which features of WebAssembly are supported.
WebAssembly/wabt: The WebAssembly Binary Toolkit
WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly, in C++
WebAssembly/design: WebAssembly Design Documents
design/Rationale.md at master · WebAssembly/design
design/Semantics.md at master · WebAssembly/design
design/Portability.md at master · WebAssembly/design
WebAssembly/spec: WebAssembly draft specification, reference interpreter, and testsuite.
WebAssembly/meetings: Information on in-person WebAssembly meetings
webassemblyjs · webassemblyjs
jfbastien/musl: musl libc experiment
Standalone WebAssembly Example
maierfelix/glmw: WebAssembly powered Matrix and Vector library
mbasso/gccx: Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
chikoskiさんのツイート: "JavaScript のようなWASMのテキスト表現。全ての式に型アノテーションが付いてないところが、asm.jsより素晴らしい(それだけで十分)。https://t.co/JwIuBytJZb… "
Lord Of The Boardsさんのツイート: "I'm loving walt #javascript #WebAssembly https://t.co/0gGMPYh90z… "
ballercat/walt: Walt is a JavaScript-like syntax for WebAssembly text format
stevespringett/disable-webassembly: Browser hacks to disable WebAssembly (WASM)
hajimehoshi/wasm-bench: Wasm Benchmark Experiment
Kimundi/greenwasm: An implementation of the Webassembly spec in Rust
Toru KomatsuさんはTwitterを使っています 「Container Security 🤝 WASM (@wasmerio) youki has succeeded in executing WASM files directly in a container instead of commands. This makes it easy for WASM to benefit from container security and resource control. Repo 👉 https://t.co/dMTFxshU97 Details 👉 https://t.co/qWsAFNQeFE https://t.co/MNBOFr6ed6」 / Twitter
containers/youki: A container runtime written in Rust
Webassembly - Youki User and Developer Documentation
オレオレ言語を作る - Togetter
オレオレ言語を作る
sfpgmr/sgl2: TDOPパーサをベースとした言語を作っていく
rianhunter/wasmjit: Kernel Mode WebAssembly Runtime for Linux
https://wwwg.github.io/web-wasmdec/
wwwg/wasmdec: WebAssembly to C decompiler
WebAssembly
kgtkr/cl8w
WasmVM
WasmVM/WasmVM: An unofficial standalone WebAssembly process virtual machine
Wasmer
wasmerio/wasmer: High-Performance WebAssembly JIT interpreter
WebAssembly/threads: Threads and Atomics in WebAssembly
design/FutureFeatures.md at master · WebAssembly/design
WebAssembly逆アセンブルして調べるテスト
wasm-usui-book/get-started-webassembly.re at master · ukyo/wasm-usui-book
dcodeIO/webassembly: A minimal toolkit and runtime to produce and run WebAssembly modules.
Putting in All the Stops: Execution Control for JavaScript
cloudflare/worker-emscripten-template
retrageさんはTwitterを使っています 「今回のKernel/VMでWebAssemblyの話が出てくるらしいので,唾つけときます.WIPですがNetBSD RumprunをWebAssemblyにコンパイルしてリンクまで出来たのソースコードが以下にあります.https://t.co/P1ZEkAA8Cw」 / Twitter
retrage/frankenlibc at rump-wasm
retrageさんはTwitterを使っています 「rumpkernel+libcを合わせたもので136.5 MBのwasmバイナリができます.(なお,動くとはいっていない) https://t.co/xj7XoKJq2Q」 / Twitter
FadisさんはTwitterを使っています 「Proxy-wasm: wasmの実行環境に双方向の任意の言語で書かれた物に対するAPIハヤース https://t.co/IBJQezEH1n #kernelvm」 / Twitter
Proxy-Wasm
ドッグさんはTwitterを使っています 「Wasm module を事前に初期化してモジュールを初期化した状態に書き換えることで,Wasm のロードを速くするツールか.その分バイナリサイズは増えそうだけど | 'bytecodealliance/wizer' https://t.co/Xu1ArN7zIQ」 / Twitter
ドッグさんはTwitterを使っています 「結果として初期化以外で使わなかったコードとかは wasm-opt で消えるのか.なるほど」 / Twitter
bytecodealliance/wizer: The WebAssembly Pre-Initializer
Virtual x86
vshymanskyy/wasm2native: Turn WASI apps into native executables

infoQ

WebでZoom: WebAssembly SIMD、WebTransport、およびWebCodecs
WebAssemblyランタイムのwastimeがReference Typeを実装、Wasmで複合型の処理が可能に
Ashley Williams氏がWebAssembly SummitでWebAssemblyの未来を語る
WebAssemblyでコンテナレスの未来を築く - WebAssemblyサミットでのKevin Hoffman氏の講演
Bytecode Allianceは、サーバサイドでのWebAssemblyの計画を示す
markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー
WebAssembly: デフォルトで安全なエコシステムの構築 - WebAssembly SummitでのLin Clark氏の講演
"Wasmer" WebAssemblyランタイムを一般提供
V8 JavaScript Engine 9.0で、JavaScript to WebAssemblyのパフォーマンスを向上
ブラウザ内でNode.JSを実行するWebContainers
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「概ね全部読めたはず。WebAssembly Component Model結局はっきりとは分からなかったな。Interface TypesとModule LinkingとWASIを総合した何か、くらいか。 / 1件のコメント https://t.co/svht41FQv3 “Lin Clark on the WebAssembly Component Model” https://t.co/3QaOPYp4qi」 / Twitter
Lin Clark on the WebAssembly Component Model
コマンドラインJSONプロセッサJQをWebAssemblyでブラウザに移植する - Robert Aboukhali氏とのQ&A
V8がWebAssembly SIMDをサポート
WebAssembly 1.0がW3C推奨としてブラウザ上でネイティブ動作する第4の言語に
新たに創設されたBytecode Alliance、モジュールの安全使用のためにWebAssemblyナノプロセスを提案
WebAssemblyでホットリローディング、リモートデバッグ、統一的なハードウェアアクセスを実現する
WebAssemblyをブラウザの外で動かすWasmerを触ってみた
Istio 1.5: Lin Sun氏とNeeraj Poddar氏がistiod、Wasm、およびマルチクラスタサポートについて議論
Rustから生成されたWASMをCloudfareサーバレスワーカにデプロイする
WebAssemblyとBlazor: 何十年の問題を解決する
Grain: WebAssemblyファーストプログラミング言語 - WebAssembly Summit 2021
PyodideがWebAssemblyを使ってPythonとその科学スタックをブラウザに提供

Zenn

Webassemblyコンパイラを自作しよう
WebAssemblyで利用する|実践:形態素解析 kagome v2
何も考えずにWASMインスタンスを混ぜると危ないかも
WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
WebAssemblyのメモリ領域をスナップショット取ってレストアする実験
Webassemblyマルチスレッドクレート:wasm-mtを試す
WebAssembly の GC Proposal とは何か / どこに向かおうとしてるのか

Qiita

WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
(Learn the Hard Way)nodejs-8でのWebAssembly自体を調べてみた - Qiita
lldでwasmをリンクするまで - Qiita
WindowsでWebAssemblyの環境を整える - Qiita
WebAssemblyのloopはまりどころ - Qiita
WebAssemblyのテストプログラム - Qiita
Rustで書いたWebAssemblyに文字列を渡すときにUTF16, UTF8, StringBuilderのどれが速いか計測してみた(ついでにNative RustとWebAssemblyの速度差も調べた) - Qiita
RustでWebAssemblyのライブラリを作るときは配列を引数にとらないように気をつけよう - Qiita
なぜWebAssemblyはasm.jsより速いのか - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
初めてRustでWebAssemblyするときに紹介したいチュートリアル (入門) - Qiita
NuxtでWebAssemblyが使えるようになったみたいなので動かしてみた - Qiita
オールRubyでフロントエンド開発を夢見て <デモあり> - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
WebAssemblyにコンパイルする言語を実装する - Qiita
WebAssembly / Rust / AudioWorklet でシンセ作ってみる - Qiita
WebAssemblyでカメラをリアルタイムにWebM動画に変換する - Qiita
RustからWebAssemblyを出力するまで(2019年3月現在) - Qiita
2019年のWebAssembly事情 - Qiita
WebAssemblyのbr命令について - Qiita
tkrさんはTwitterを使っています: 「あ、そっかwasmのlabelって完全にスタックスコープ離隔されてるのか」 / Twitter
tkrさんはTwitterを使っています: 「ブロック外のスタックにはアクセス出来ない(スタックを受け取らずに0 or 1の結果を返す事しかできない) i32.const 1 i32.const 2 block (result i32) i32.add end」 / Twitter
tkrさんはTwitterを使っています: 「(このwasmコードは無効)」 / Twitter
tkrさんはTwitterを使っています: 「つまりスタック的には frame→label→codeの完全な階層構造と考えて良さそう」 / Twitter
Node.jsでつくるNode.js-WASMコンパイラ - もくじ - Qiita
標準ライブラリ無しのWebAssemblyでDOOMを動かす実験 - Qiita
RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
Envoy での WebAssembly サポートと WebAssembly Hub, WASM OCI Image Specification について - Qiita
WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita
WebAssembly: data セクションの最適化 - Qiita

Wikipedia

WebAssembly - Wikipedia
WebAssembly - Wikipedia

Twitter

その他

GC

mizchiさんはTwitterを使っています 「最近 wasm の gc proposal ちゃんと読んでるんだけど、「wasm 内のセマンティクスとして gc 導入したい」という大目標に対して、いくつもの仕様に分割して個別にMVPしつつ統合していく流れがとても綺麗で、VM実装の進め方としてとても参考になる」 / Twitter
mizchiさんはTwitterを使っています 「こんな感じに分割されてる - 参照型を定義する reference types - 外部から import した関数への inteface-types と type system - wasm 同士で動的リンクするための module link 仕様 - JS API で型 struct を定義 tc39 proposal structs との協調 - 新しく追加する heap のセマンティクス」 / Twitter
mizchiさんはTwitterを使っています 「とにかく野心的なので最終的に GC が乗るかは五分五分だしかなり遠そうなんだけど、その過程で生まれたものは無駄にならないようになってる」 / Twitter
mizchiさんはTwitterを使っています 「GC 追加されるにしても新しく作ったメモリ空間でやるので、既存のものがすべて gc 対応する必要はないようになってる」 / Twitter
mizchiさんはTwitterを使っています 「実際に自分で仕様策定の流れを追うには overview を読みつつ、meeting log で何考えたり考慮してるか、みたいなのを読むのがいいです https://t.co/DIkWqcgbVJ https://t.co/48sQ3nSj8c」 / Twitter
gc/Overview.md at master · WebAssembly/gc
mizchiさんはTwitterを使っています 「gc proposal の中でも参照型の externref と anyref は正式に仕様になって、wasmtime とか各ブラウザでフラグつけると動くようになってますね」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GC proposal, GC typesとしてWasm自身ではなくホストが管理できる高レベルな型を導入しましょう、くらいの認識だったけどそこまで大きなものなのか。やはり自分十分に追えてないねぇ >RT」 / Twitter
chikoskiさんはTwitterを使っています 「最後のセッション。スピーカーはW3C WASM CGのチェア。歴史の振り返りから。やると決めてから2週間でプロトタイプ作った。」 / Twitter
chikoskiさんはTwitterを使っています 「工程。パーザーはやっぱり時間がかかる https://t.co/st1UTJ7yoU」 / Twitter
chikoskiさんはTwitterを使っています 「2017年時点での仕様の分類 https://t.co/iqJLnzGfQV」 / Twitter
chikoskiさんはTwitterを使っています 「2017年の時点で、GCは作ろうと思ったら作れた。全ての変数が線形メモリ上にあるなら。実際は、仕様上ローカル変数はスタックの上にあることが大切だったし、embedder側からの参照の解決も決まってなかった。」 / Twitter
chikoskiさんはTwitterを使っています 「2018年の時点でのGC。参照や構造体を表す型が導入された。参照は、Embedder側の物も指せるのでなかなか大変。 https://t.co/IgQWboL5d7」 / Twitter
chikoskiさんはTwitterを使っています 「C APIも2018年に定義された。これはプログラムからWASMランタイムをコントロールするためのAPI。」 / Twitter
chikoskiさんはTwitterを使っています 「2019年の仕様。Host bindingsがInterface Typeに名前を替え、WASIが登場。 https://t.co/mHrwQb0qr6」 / Twitter
chikoskiさんはTwitterを使っています 「2020年。参照型はPhase4になりそう。 どんどんパイが拡大していった様子を見ていった、という話でした。 終わり」 / Twitter

シフト

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「C言語とかでunsigned intな値を32bit以上シフトするのって未定義動作なんですかね。 https://t.co/BpKdcBSxpp が手元と結果が違うな。」 / Twitter
6Rr5UX - Online C Compiler & Debugging Tool - Ideone.com
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/sV2MCUIQpe いわくそうらしいな。」 / Twitter
c - What's bad about shifting a 32-bit variable 32 bits? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「未定義動作がないように作っているからWasmのi32.shlはmod 32した上でシフトするのか。なるほどなー。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうの漫然と仕様書読んでたときは全然気づかなかったなあ。やっぱ手動かしてこそやね」 / Twitter

Table

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのTableってどういうユースケースを想定してるんじゃろうか。大抵のホストの関数をimportすれば賄えるようにも見えるような...?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/TyUbPpRfF7 に詳しく書いてあるっぽいな。」 / Twitter
WebAssembly table imports… what are they? - Mozilla Hacks - the Web developer blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、そうか。ホストの関数をWebAssemblyで書かれたコールバックを受け取る関数に渡したいときか。」 / Twitter
S.F.さんはTwitterを使っています 「あとはtableだなあ。。これいわゆる関数ポインタを収めるテーブルなんだよね。関数の間接コールを実現するための仕組み。むかしむかしだとジャンプ・テーブルですな。」 / Twitter
S.F.さんはTwitterを使っています 「線形メモリ上に関数のアドレスを置くというのはセキュリティ上の考慮からNGとなっていて、関数への参照をこのテーブルにセットするんだよね。そしてこのテーブルへのインデックスと関数の型(type)を指定して間接コールを実現する。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あれ、どういう場合に破壊的な書き換えが発生するのかわからなくなってきた... https://t.co/gtwIE299XX で紹介されているサンプルでは明らかに破壊的に変更してるのに、私が作ったサンプルでは書き換えられない...」 / Twitter
WebAssembly.Table() - JavaScript | MDN
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「どうもコンパイルするwasmの内容に依存しているようなので、何か書き間違えてるんだろうけど...」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「(elem $tableName ...) ではダメで、 (elem (i32.const 0) ...) じゃないといけないのか。前者の方法ではtableの初期化が無視されている?」 / Twitter

wasm-decompile

chikoskiさんはTwitterを使っています 「WebAssembly Binary Toolkit (wabt) に wasm-decompiler が追加されたよ、という記事。wasm を与えると、人間が読めるコードを出力するツール。同種のツールである wasm2wat よりも可読性は高い模様。メモリのインデックス操作やコントロールフローの解析は頑張ってる様子: https://t.co/tOYL9MMC5d」 / Twitter
What’s in that .wasm? Introducing: wasm-decompile · V8
chikoskiさんはTwitterを使っています 「wasm-decompiler の README: https://t.co/d3MEH5mcNK」 / Twitter
wabt/decompiler.md at master · WebAssembly/wabt

Fiber

monochromeさんはTwitterを使っています 「wasmにFiber移植できるの?? それはすごい」 / Twitter
monochromeさんはTwitterを使っています 「これか https://t.co/nsmitzzdmB」 / Twitter
rb-wasm-support/fiber.c at main · kateinoigakukun/rb-wasm-support
monochromeさんはTwitterを使っています 「うーん、これでなぜwasmで動くのかわからん」 / Twitter
ドッグさんはTwitterを使っています 「@s_isshiki1969 emscripten の asyncify 使ってるからですね.コンパイル時に LLVM の Pass 使って bitcode を書き換える実装になってます https://t.co/CULTe0Ptwt」 / Twitter
Asyncify — Emscripten 2.0.33-git (dev) documentation
monochromeさんはTwitterを使っています 「@Linda_pp なるほど、同期的な C/C++ 関数を非同期にしてJSから呼び出せるようにする…」 / Twitter

バイトコード

Miura HidekiさんはTwitterを使っています 「P-System, Mesa, JVMと歴史を見ると共通のバイトコードを普及させる試みは大体失敗しているので、WebAssemblyも失敗すると思っている。JVMは失敗したかどうかは議論が分かれるけど、個人的には失敗したと思っている」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmは成功したな。そういえば」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmのbitcodeを共通バイナリにする話があまりないのは不思議」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 LLVM だと JIT 向きじゃないとかの理由で WebAssembly が出来たとかいう話が真なら、LLVM も失敗していることになりますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、確かに。そうすると、インタプリタ(JITを含む)を前提としたバイトコードは失敗しがち、ってことになりますね。この方がしっくりきます。」 / Twitter

インタプリタ

chikoskiさんはTwitterを使っています 「次。JSC の WASM インタプリタについて。JSCはWebkitに載ってるランタイム。」 / Twitter
chikoskiさんはTwitterを使っています 「JSCは2段階の最適化をする。BBQとOMG。どちらも同じ最適化エンジンを使うけど、最適化オプションが異なる。」 / Twitter
chikoskiさんはTwitterを使っています 「コンパイルと実行前処理が時間がかかるので、インタプリタを導入した。offlineasmやbytecodeなどJSのインフラを再利用した。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その1。関数の呼び方。JSと同じやり方では、実行コードを切り替えられなかったので、インタプリタ用に中間層を入れた。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その2。コールスタックの扱いについて。レジスタの退避と書き戻しをすることとなった。 これらの苦労点は、ある関数はコンパイルされ、別の関数はインタプリタで動く、といったことが起こるから発生してる。」 / Twitter

サンドボックスで処理速度低下

ドッグさんのツイート: "Wasm をサンドボックスの外で走らせると,マイクロベンチマークで C++ の95%の速さで実行できるらしい | 'Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed' https://t.co/G1ZABHv2rH"
Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed
ドッグさんのツイート: "ちなみに Wasm には LLVM のベクタライゼーション最適化を阻害する問題があって,それが直ればさらにこの差は小さくなるらしい"
ドッグさんのツイート: "メモ: サンドボックスを有効にすると C++ の 75% の速さまで落ちる"
イスラエルエリカちゃんさんのツイート: "サンドボックスやっぱそれなりにオーバヘッドでかいんやな"

memory_immediate

tkrさんのツイート: "memory_immediate is 何"
tkrさんのツイート: "オフセットとか指定出来るっぽい"
tkrさんのツイート: "flagは意味分からん"
tkrさんのツイート: "バイナリ読んだ感じデフォルト2っぽい?"
クワーティさんのツイート: "デフォルト2?そんなはずは・・・"
クワーティさんのツイート: "spec見落としあったっぽいな"
クワーティさんのツイート: "規格は隅々まで読まないと駄目"
tkrさんのツイート: "データ構造アライメント - Wikipedia https://t.co/D868WNYNFy"
データ構造アライメント - Wikipedia
クワーティさんのツイート: "wasm(バイナリの方)のmemoryのalignって実はalignそのものではないよね"

Security Model

Kazuho Okuさんのツイート: "WebAssembly VMのセキュリティモデルざっと理解したけど、とても美しいな。NaClで問題だった点が全て解消されていて、かつ簡潔になっていて、これマジ速いわーという感じ。これ見てるとJava VMは完全に過去の遺物だと思う"
Kazuho Okuさんのツイート: "x86-64で動かす場合、ユーザ空間は32bit。ベースポインタ加算して実際のアドレスにマップ。6GBのガードページを置いてゼロコストでメモリ保護。リテラルとスタックはユーザ空間(実行不可)にアプリが自由に設定。コードとリターンアドレススタックはユーザ空間外 https://t.co/SawKNZeSpj"
Kazuho Okuさんのツイート: "64bitレジスタで32bitのポインタ演算すると上位32ビットはゼロ拡張されるからdisp(basereg,ptr)的なコードでアドレッシング可能。LLVM IR等でその最適化も期待できる。スタックもユーザ空間のグローバル変数にしちゃって、コンパイラに最適化させる感じ https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "x86-64のネイティブコードに対するオーバーヘッドは、indirect call、アドレッシングモードが少ない、使えるレジスタが実質2つすくない、くらいなんじゃないかな。indirect callの最適化はJITの得意領域だし、あとの2つはあまり問題にならなさそう https://t.co/G3pvKctc01"
Kazuho Okuさんのツイート: "RISC(32bit,64bit問わず)の場合はx86-64と違って自動的なゼロ拡張使えないけど、それでもネイティブコードのオーバーヘッドはNaCl on ARMの5%を超えることはないんじゃないかな https://t.co/ksvZ1qEugL"
Kazuho Okuさんのツイート: "i386の場合はセグメントレジスタ使えばゼロオーバーヘッドに。他のアーキについては https://t.co/sq50adLOkQ https://t.co/GP1zYhC5DG"
Kazuho Okuさんのツイート: "ちなみになぜガードページが6Gかと言うと、出力されるx86-64のアドレッシングモードoff32(basereg,ptr)のoff32が0からINT32_MAXの間まで最適化する前提だからですね。ptr書いたとおりゼロ拡張されるuint32なのでこれでおk https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "んなとこです。主な参考資料: https://t.co/crxSDWBdMP https://t.co/LGyQwknaOY https://t.co/h0NYNGklDz"
七誌さんのツイート: "WebAssemblyのスタンドアロンVM。ブラウザと関係なく、独立したバイナリをmainから始まるプロセスとして実行。やっぱりこういうのを作っている人がいるんだ。 https://t.co/ddKeoHQEWV"
Non-Web Embeddings - WebAssembly
WebAssembly/wasm-jit-prototype: Standalone VM using LLVM JIT
35649.pdf
Yuki Yugui Sonodaさんのツイート: "実行コードeipをメモリ空間の凄く離れた場所に置いて、且つ危険な領域に戻れるほど長いjmpがないことを確認すれば安全だよねとか、なかなか攻めていて良い"
小倉唯さんのツイート: "wasm の memory bound check は論文にある. JSC は signal か, pinned reg からの範囲チェック"
小倉唯さんのツイート: "segv 取ってなんなら CONTEXT 書き換えられるのか. Wasm signaling memory なんとかなるっぽいな https://t.co/ALaC1x5sLN"
Cleanly recovering from Segfaults under Windows and Linux (32-bit, x86)

SIMD

S.F.さんのツイート: "SIMD Extensionをちょこっと読んでる。 https://t.co/UHnG03JRSX"
simd/SIMD.md at master · WebAssembly/simd
S.F.さんのツイート: "仕様見てるとやっぱりモバイル・ターゲットなんだなぁと思う。これも時代の流れか。。"
S.F.さんのツイート: "128bit長だとインテルCPUだとSSEレベル。 今どきのデスクトップCPUは512bitとかだからね。並列度が半端ない。。"
S.F.さんのツイート: "違うか。。AVX-512はハイエンド仕様か。。デスクトップだと256bitか。。"
S.F.さんのツイート: "しかし512bitだと32bit floatであれば16個パック可能となって、レジスタ1個で4×4の行列がパックできるんですな。恐ろしい時代ですわ。。"
S.F.さんのツイート: "私のCPUだとAVX-2どまり。YMMレジスタ(256bit長)が16本か。それでもすごいな。。"
S.F.さんのツイート: "行列の乗算が一発でできる命令とかはないから、コーディングには工夫は必要だろうな。。"
S.F.さんのツイート: "ここにAVXを使った行列の乗算コードが載っている。8x8行列だが。。うーむ。。 https://t.co/ETZlMQEaHi"
小行列演算におけるインテル® AVX の利点 | iSUS
S.F.さんのツイート: "Long SIMDというProposalもあるのか。。 https://t.co/QPz3FJpB3z #webassembly"
design/FutureFeatures.md at master · WebAssembly/design
S.F.さんのツイート: "Intelだと、4x4行列の乗算はSSE(128bit)とAVX(256bit)では1.8倍ほどAVXのほうが速いと書いてあるな。。"
chikoskiさんはTwitterを使っています 「SIMDを有効にしたWASMでdot積を計算したら、JSより500倍早かった、というRedditへの投稿。デモサイトへのリンクあり。デモサイトはWASM SIMDを有効にしたChromeでしか動かないので注意(有効にする方法は記事の先頭に記載がある)。https://t.co/xQBu2KeYB2」 / Twitter
Wasm SIMD is almost 500x as fast as JS at calculating dot product : WebAssembly

Go

chikoskiさんのツイート: "GoのWASM出力、LLVMじゃなくて自前で書いてるみたい。https://t.co/u2OsYM5oHd https://t.co/ZQhvxNpNle 作るにあたって考えたことまとめ:https://t.co/mrOIy8pgDE GC, long jump, メモリの予約、スレッドなどが考慮されているみたい"
chikoskiさんのツイート: "https://t.co/mrOIy8pgDE にはスタックマシンのWASMで、レジスタマシンのGoのセマンティクスを再現するために必要なことも載ってる。WASMのスタックを使わずメモリ上にGoのコールスタックを作る、レジスタを参照する演算を「WASMのスタックへの操作+演算」に書き換えるといったことをしてるh"
chikoskiさんのツイート: "腑に落ちないのは"Note that the two SSA instructions can not be generated sequentially anymore, because their WebAssembly instructions are interleaved." WASMの命令って不連続なの?むしろ連続的だと思うんだけど。あれかなー、ロングジャンプを無理くり対応したからかな。"
WebAssembly architecture for Go - Google ドキュメント
Google、「Go 1.11」を公開。WebAssemblyを実験的にサポート | OSDN Magazine

reference types

ドッグさんはTwitterを使っています 「Wasm の reference types 実装のために LLVM に複数アドレス空間対応を Igaria が提案.今はプログラムとデータは同じアドレス空間に置かれる前提になってる.別アドレス空間にある funcref と externref にコード側から触りたい | 'RFC: Multiple program address spaces' https://t.co/tuHL4ozmTz」 / Twitter
[llvm-dev] RFC: Multiple program address spaces
ドッグさんはTwitterを使っています 「もともとアドレス空間を指定する仕組み自体はある(例えばポインタ型はどのアドレス空間に属するかを持ってる)ので変更自体は小さいな https://t.co/t7BFrRQVVH」 / Twitter
⚙ D91428 Add support for multiple program address spaces

WebAssembly for Proxies (ABI specification)

bells17 / べるさんはTwitterを使っています 「specはこれかな? https://t.co/uIjJ1y381a #wasmnight」 / Twitter
proxy-wasm/spec: WebAssembly for Proxies (ABI specification)
bells17 / べるさんはTwitterを使っています 「こっちはあくまでproxy-wasmにおいてのABIという感じの理解で良いのかな?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「proxy-wasmの難しいところ: - 任意のプログラムをproxyに挟んじゃって大丈夫? - 変なwasmを読んで変なところでクラッシュしない? #wasmnight」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラッシュについてはwasm-smithがいいテスト方法になるはず https://t.co/Bzbi3FRl7U 有効なWasmを生成するfuzz tester #wasmnight」 / Twitter
wasm-tools/crates/wasm-smith at main · bytecodealliance/wasm-tools
Proxy-Wasm: Wasmを利用したPlugin機構の開発 - Speaker Deck

Rust

ドッグさんはTwitterを使っています 「rustc に WebAssembly 専用の "wasm" ABI が入った.Wasm の関数シグネチャに直接マップされる extern "wasm" fn 関数が定義できるようになる | 'rustc: Add a new wasm ABI #83763 - rust-lang/rust' https://t.co/yLKEOUVTjY」 / Twitter
rustc: Add a new `wasm` ABI by alexcrichton · Pull Request #83763 · rust-lang/rust
ドッグさんはTwitterを使っています 「今の Rust の Wasm 対応では,関数は C ABI で定義し,wasm-bindgen がグルーコードを吐くことで間をつないでる.でも実は C ABI は Wasm と互換なわけではなく,コンパイラ側に wasm-bindgen 互換な C ABI を設けるなどのハックが必要になっていた.新しい "wasm" ABI ではそれが不要」 / Twitter
ドッグさんはTwitterを使っています 「この問題は Wasm の多値対応で決定的になったっぽい.Wasm は関数から多値を返せるようになったけど,C にはその仕組は無いので,C ABI では対応できない.」 / Twitter
Shinji KonoさんはTwitterを使っています 「@Linda_pp 一応、構造体は返せるんだけど、ABIで複数レジスタで返すのはないんですよね。」 / Twitter
ドッグさんはTwitterを使っています 「@shinji_kono はい,構造体に詰めて返すのとはまた話が変わりますね」 / Twitter

多倍長演算

WebAssembly向け多倍長演算の実装
FadisさんはTwitterを使っています 「ペアリングには楕円曲線暗号を使う→長い整数の演算が必要→多倍長演算ライブラリが欲しい→多倍長演算のアイデアは手で乗算をするときの筆算と同じで64bit同士のキャリーつきの乗算を行う事が筆算の1回の計算に対応する #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「多倍長乗算をする過程でmul命令がキャリーフラグを破壊するのが割と邪魔になるのでIntel CPUにはキャリーフラグを破壊しない乗算命令mulxが用意されている、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「wasmで多倍長演算を実装する場合キャリー付きの64bit演算がない→加算の場合は加算後の値と加算前の値を比較する事でキャリーフラグを取り戻せる #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「32bit単位で計算する方式と比較した結果、64bitで計算+carryを復元の方が若干早かった→32bit単位だと複数の加算のキャリーをまとめて扱える→これを活用して最適化した結果32bit単位で計算した方が速くなった、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「_ExtInt: clangの拡張で任意の長さのint型を作れる。多倍長演算はclangが勝手にやってくれる。C++に入れようという話もある #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「uint1024_t、パワみがある #kernelvm」 / Twitter
herumiさんはTwitterを使っています 「[z] += [y] * xの形([]は多倍長, xは64bit)の形を中間レジスタ少なくして計算するのに2個のCF, OFがあれば十分なので、長いビット長でもそれ以上フラグを増やす必要はありません。 https://t.co/8XtC1GB6is」 / Twitter
hotpepsiさんはTwitterを使っています 「512bitの乗算だとさらにもう一段のcarry flagが必要になるんですか? #kernelvm」 / Twitter
herumiさんはTwitterを使っています 「typedef unsigned _ExtInt(13) T;でand 8191(=0x1fff)するコードが生成されました。#kernelvm https://t.co/VBtv01UA9O https://t.co/Km3oxAoFEE」 / Twitter
Compiler Explorer
Takahiro YamashitaさんはTwitterを使っています 「_ExtInt 、発表では1024bitのインパクト凄かったけど、例えば13bit変数なんかも定義できちゃう? https://t.co/nQnZrwhnIy #kernelvm」 / Twitter
The LLVM Project Blog
mod_poppoさんはTwitterを使っています 「Knuthの本読んで多倍長整数の除算の勉強してるけど、ここに載ってるアルゴリズムは2桁を1桁で割る割り算が使えると仮定してるのな。64ビット環境な場合基数は2^64じゃなくて2^32とかにしておくのが無難か」 / Twitter
mod_poppoさんはTwitterを使っています 「GCCとかのint128みたいなやつはどうやって実装してるんだろう」 / Twitter
mod_poppoさんはTwitterを使っています 「IntInfのquotRemのバグを取って十進文字列化ができるようになったけど、効率化されてないせいでフィボナッチ数の表示が桁が大きくなるにつれて遅くなっていくの、笑える」 / Twitter
mod_poppoさんはTwitterを使っています 「Wordが64ビットな環境下ではWord32を要素にする方が良さそうなのと、乗算を高速化した方が良いのと、多倍長×単精度の特殊化された演算を用意した方が良い」 / Twitter
mod_poppoさんはTwitterを使っています 「IntInf.toString(十進表記)が遅い件は10で割る代わりに10^9とかで割るようにすれば定数倍の高速化にはなるかな。本当はもっと抜本的な高速化をしたいところだけど」 / Twitter

制御フロー・例外

Solving the structured control flow problem once and for all
Eliminating go to's while preserving program structure | Journal of the ACM
Bytecoder/SRC-RR-4.pdf at master · mirkosertic/Bytecoder
WebAssemblyでgotoをつくる | zick pages
Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
κeenさんはTwitterを使っています 「@s_isshiki1969 もう少し詳しくいうと普通のジャンプくらいならloopや(名前つき)breakでどうにかできます。直接表現できないのはループの中に飛び込むgotoですね(双頭ループといわれるらしい) goto label; while(1) { label: } もちろん、チューリング完全な言語同士なので何かしらの翻訳は可能です。」 / Twitter
monochromeさんはTwitterを使っています 「@blackenedgold なるほど、それを許すと静的な解析が色々と辛くなりそうですね。 まあ機械語に落とせるものならRustでエミュレータ書けば翻訳可能ですね(こういう話ではない」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「へぇ、もうLLVMやV8はWasmのexceptionを一応サポートしてるのか。 https://t.co/dgBIuIqDh4」 / Twitter
Plan for Phase 4 · Issue #179 · WebAssembly/exception-handling
Miura HidekiさんはTwitterを使っています 「ステートマシン記述用のswitch・caseはどうでしょうか?ステートのレジスタの設定をトレースして到達しないステートにワーニングを出したり効率的なステートのエンコードを生成するとか」 / Twitter
Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています 「switch~case文の構文木を作るコードを書いてるところです。 HLSならではのswitch~case文って何をやったら面白いのかは依然として検討中です。 caseを排他的じゃなくして、マッチした物を全部並列ってのはどうやろか?スケジューリング側がメンドクサイですが……」 / Twitter
WebAssemblyのgotoを妥協する | zick pages

users

@chikoski

chikoskiさんのツイート: "各ブラウザベンダ連名で出ているWASMの論文。簡約と検証のルールが明示されているのが良い。他のところにちゃんと明記されてないもんね。特にどのような簡約を行うとTrapが発生するのかがわかるところが重要:https://t.co/q0EeWovUsa"
Bringing the Web up to Speed with WebAssembly - PLDI 2017
chikoskiさんのツイート: "WebAssembly.compileStreamingが追加された意味。ファイルを全部ダウンロードしなくても、データが来たそばからコンパイルできる。… "
chikoskiさんのツイート: "WASMからCのソースコードとヘッダファイルを作るコンバーター。https://t.co/DrGr0V9jDf これは結構強力な気がする。うまくするとTypeScript(AssemblyScript)で書いたプログラムをCに変換できるのではないかしら。"
wabt/wasm2c at master · WebAssembly/wabt
chikoskiさんのツイート: "JS vs AssemblyScript vs Rustから出力されたWASMの速度比較がメインのWASM紹介記事。配列と文字列操作については、JSが圧倒的に速い。ブラウザに任せられるものは任せよう、というゴールデンルールはここでも健在かな… https://t.co/6HjJMy9D6z"
chikoskiさんのツイート: "Unityプロジェクトを使ったWASMの起動およびパフォーマンステストの結果。Firefoxがとても早く、Edgeも健闘。ストリームコンパイルを有効にしたChromeはロードがとても早くなっているのを見ると、ストリームコンパイル有無が大きいのだろうな https://t.co/UDU2h8zaP2"
chikoskiさんのツイート: "WASMからbuiltin関数を呼ぶより速いのウケるけど、当然といえば当然か。… "
Yosuke FURUKAWAさんのツイート: "まじか、JSからJSの関数呼び出すよりもJSからwasmの関数呼び出すほうが早くなるケースが大部分になりつつあると。JITとwasmのコンパイル後の距離が近くなったんだな。 / “Calls between JavaScript…” https://t.co/Y6Xbvs8VoG"
toVersusさんのツイート: "JIT/wasm で Activation Record を統一して JS => wasm が JS => JS 並に速くなった。JIT-ed JS も WebAssembly も機械語に翻訳されるのに、以前は別々の Activation Record を C++ でセットアップしており、コストが高かった。"
toVersusさんのツイート: "JS 側のパラメータを WebAssembly 側の関数に渡す前の unboxing 処理を C++ から JIT 直呼びに変更して、JS => wasm を高速にした。C++ のオーバーヘッドが無くなった。"
toVersusさんのツイート: "JS がインライン関数を持っている場合、JS => JS の速度に勝てないが、将来的に JS の中に WebAssembly をインライン化できるようにする予定。"
Wasabi - WebAssemblyにインジェクションしてデバッグを促進 MOONGIFT
toVersusさんのツイート: "JS のビルトイン関数の中で C++ で実装されている関数の呼び出しにファストパスを設け、wasm => JS built-ins を高速化した。現状、WebAssembly の値型の制約で、math 関数のみ有効。近々、WebAssembly に参照型が追加されるので、wasm-bindgen のように JS を経由する必要がなくなる。"
chikoskiさんのツイート: "Chrome CanaryでWASMのスレッド機能がプレビューできます。chrome://flags/#enable-webassembly-threads のフラグをenableすると使えます。スレッドについてはこちらにスペックがあります。https://t.co/lXH3TwY4xe… https://t.co/cEyD7AvlfI"
threads/Overview.md at master · WebAssembly/threads
bokuwebさんのツイート: "https://t.co/katFUFyNL8 のshared: trueでworker間で共有してるやつですよね?いまいちわかってないんですけど内部的にはsharedArrayBufferなんすか?… "
chikoskiさんのツイート: "サーバレスWASM…… "
chikoskiさんのツイート: "「WASMを君の洗濯機にも!」って書いてあって意味不明(褒め言葉)。FPGAに実装されたWASMのスタックマシン。https://t.co/AKt15VHcnf… "
piranna/wasmachine: Put WebAssembly in your washing machine
chikoskiさんのツイート: "「コンパイルはダウンロードよりも50M bit/s 速い」忘れがちだけど、ネットワークって随分と遠いところにあるのよね。https://t.co/h6WcuiVLog… "
chikoskiさんのツイート: "「低水準APIを提供するWebRTC NVと、WASMとの組み合わせでできることは広がる。カスタマイズされたWebRTC実装の持つ機能を、実装をWASMに出力してWebRTC NVと組み合わせて実現するといったこともできる」… "
chikoskiさんのツイート: "システムコールの呼び方を整理して、WASMの相互運用性をあげようという活動(かな)。今はRustで作ったWASMとEmscriptenで作ったものは、システムコールの呼び方が違うので、そこを統一したい、ということかな。面白いなー。 @wasmerio らしい要求だと思う。https://t.co/gn34VBSEkx"
WebAssembly & CloudABI – Wasmer – Medium
chikoskiさんのツイート: "https://t.co/XM7i4Bia1M によると、 命令セット、エンディアン、データ型、配置、呼出規約 システムコール、ファイルフォーマットを定めたものがABI。WASMの仕様で決まっていないのは、システムコールの部分だけ(こうなってるのは理由がある)。"
chikoskiさんのツイート: "面白い試み。評価のところが面白い。"Speed comparison per browser"のbrowser 3, 4が大勢なら効果大って言えるけど、1,2だけならどうなんだろう?ってところが特に面白い。JS/WASMの呼び出しコストと、JSに対する最適化の結果がブラウザによってバラバラなのが、この差を生んでるのかしらー。… https://t.co/yRGUJ74rZ9"
Yosuke FURUKAWAさんのツイート: "くぁーJSのホットスポットのところだけ最初からwasmにするっていうかっこいいアプローチ / “Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers” https://t.co/EZcSLKoIxN"
Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers
chikoskiさんのツイート: "twiggy is a code size profiler. https://t.co/2rMvCfcanE"
Introduction - Twiggy🌱
chikoskiさんのツイート: "WebAssemblyアプリの起動時間のほとんどはコンパイルに使われている。コンパイル結果をキャッシュして1000倍起動が早くなったよ、という記事。例に使ってるNginxはパーズとインスタンス化がそれぞれ10ms,20msなのに対し、コンパイルは1000msかかってる。これをキャッシュでほぼ0にするのでそりゃ速い。… https://t.co/2GUE83DHCS"
chikoskiさんのツイート: "ついでにハッシュアルゴリズムをSHA256からmeowashに変えて、1MBのバイナリのハッシュ値生成にかかってた時間が5msから4μsへと125倍も速くなった。meowashはこれかなhttps://t.co/3gG4xlwZnc"
chikoskiさんのツイート: "meowashはセキュティ目的に開発されていないが、https://t.co/e5cQzZBJTK のテストは全てパスしているし、開発陣が持っている大きなデータセットでも今のところハッシュ値の衝突は起きてないとのこと。キャッシュ用途には使えるってことかしら。"
chikoskiさんのツイート: "インストールという形を取れないから、インストールの最後に「最適化の作業中です」と言いつつコンパイルして、その結果をキャッシュするといったことは取れない(?)。モジュールに分解した上で、小さいプログラムを動かしつつ、裏でコンパイルしていくというアプローチになるのかな。"
chikoskiさんのツイート: "そういう賢いやつより、とりあえずバーストで転送してしまってガンガンコンパイルする方がいいのかもしれない。"
chikoskiさんのツイート: "C/C++からのWebAssembly作成解説本。導入から既存プロジェクトの移植まで幅広く対応してる感じ。ファイルの扱いに関する記述があることと、Web workersとの連携について述べられていることが、他にはない特徴だと思う。https://t.co/0FBeCHYr6M #webassembly… https://t.co/Ey0VmZyUFE"
Level Up with WebAssembly
chikoskiさんのツイート: "インラインWASM …… "
chikoskiさんのツイート: "WASMコンパイルされたwat2wasm (from https://t.co/ToKxthdHxQ)を使えば、watで書かれたWASMを、ダイナミックに評価することもできるよね。理論的には #webassembly"
chikoskiさんのツイート: "SIMD in wasm: Chrome Canaryでフラグつきで使えるようになったWASMのSIMDですが、Emscriptenでの試し方をざっくり解説した記事 https://t.co/vdxPv3T5re"
SIMD in WebAssembly – tales from the bleeding edge – brionv
chikoskiさんのツイート: "旧聞ですが、WebAssembly.compileとWebAssembly.compileStreamingの比較: https://t.co/xqj5YE6EYK"
Loading WebAssembly modules efficiently  |  Web  |  Google Developers
chikoskiさんのツイート: "Twiggy: https://t.co/aFJNd9dRGT #webassembly の関数呼び出しを解析するツール。使われていないコードや、逆によく使われているコードを探すのに使える。バイナリサイズを大きくしているコードも探せる。"
rustwasm/twiggy: Twiggy🌱 is a code size profiler
chikoskiさんのツイート: "WASMになったエンコーダを使って、音声をブラウザ上でmp3にしているみたい。おもしろー… "
Shunya Shishidoさんのツイート: "こえのブログ、すごいとは思っていたけど解説読んで震えている。FastlyとGCPのフル活用、PWA、Web Components、a11y、WASM、Perf Budgetsと、現代の技術全て注ぎ込んであそこまでの完成度に持って行けるのか〜悔しい!という気持ち。 https://t.co/ATSUQqggfD"
アメブロ2019: こえのブログでのPWA
chikoskiさんのツイート: "WASM向けJITコンパイラ/コードジェネレータのCrainlift。すでにFirefox Nightlyで使えるのか。フラグをつければ有効になる、とのことらしい。https://t.co/FfyO0Z409s"
In Firefox Nightly, an option has arrived to use cranelift for wasm compilation : rust
chikoskiさんのツイート: "その環境でサポートされているWASMの機能を調査するJSライブラリ。いまはミュータブルなグローバル変数、多値関数、多倍長整数のJSとの統合について調査できる。それぞれの機能を使った小さいWASMをインスタンス化して、その成否で調査をするという戦略。単純だけど、効果的だと思う。… https://t.co/q0SRRxZ7vV"
chikoskiさんのツイート: "ソースコードはこちら https://t.co/MHIEHZ3R9j。デモへのリンクもある。"
xtuc/webassembly-feature: Test if a WebAssembly feature is supported
chikoskiさんのツイート: "autoconfという向きもあるでしょうが、polifillが実装済みの不要な機能を落とすといった使い方もあるかと思います。どっちにしてもWebAssemblyはバージョンレスであることを歌っているので、プログラムがランタイムの能力に合わせることが必要だと思います。… https://t.co/n2MKQ9W9XZ"
Takashi Kawasakiさんのツイート: "autoconfの再来か。いろいろ先が心配にはなる。… "
chikoskiさんのツイート: ".@wasmerio による、各WASMバックエンドの性能比較。ベンチマークによる性能比較と、ビルド時間を比較している。時間をかけて最適化をすると計算は速くなるという結果。Craneliftがコンパイル時間が短い割には性能が出ている点が面白い。https://t.co/bo3vBhvk8D"
Benchmarking WebAssembly Runtimes – Wasmer – Medium
Intent To Shipさんのツイート: "Blink: Intent to Ship: WebAssembly Bulk Memory operations https://t.co/0lZNT6uZ6d"
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: ""Bulk Memory Operations and Conditional Segment Initialization": https://t.co/wFM4BD9lw5 memset / memcpy相当の命令を #webassembly に追加するプロポーザル。パフォーマンス向上が主なモチベーション。Blinkへのship approval request: https://t.co/rOAcpyWKch"
bulk-memory-operations/Overview.md at master · WebAssembly/bulk-memory-operations
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: "命令はまあ足せば足せるんだろうけど、どう足していくつもりなんだろう。CISC / RISCどっちのアプローチを取るんだろう?それとも、最近はそれ以外にもアプローチがあるのかしら?"
chikoskiさんのツイート: "WASMバイナリを呼ぶためのPythonライブラリ。"🐍+🦀+🕸 Python extension to run WebAssembly binaries."というリード文が可愛い。内部は@wasmerio とうまくPythonを繋げてる模様。… https://t.co/MModWL9nam"
chikoskiさんのツイート: "仕事を引き寄せる 愛され言語2019春(仮)の第6位がWebAssemblyの模様(StackOverflow調べ)。あれは言語、そう言語だけれども。… "
WebAssemblyWeeklyさんのツイート: "WebAssembly - one of the most ‘loved’ languages in the StackOverflow developer survey 2019 https://t.co/kAqWTgLmca… "
Stack Overflow Developer Survey 2019
chikoskiさんのツイート: "用途にあわせて @wasmerio がバックエンド(wasm-nativie codeコンパイラ)を切り替えられるようにした話。とにかく起動を早くしたい、もしくはハードウェアが重たいコンパイル処理に耐えられない→シングルパス。性能が欲しい→LLVM。その中間→CraneLift https://t.co/LE6Szk31T4"
A WebAssembly Compiler tale – Wasmer – Medium
chikoskiさんのツイート: "WebAssembly Package Manager(WAPM). npmライクなWebAssembly向けパッケージマネージャ。今のところはパッケージ数も少ないし、パッケージの粒度もまちまちなので、よくわからないけれど、依存グラフの解決をやってくれると楽しくなる、かもしれない https://t.co/rEDWrABK4Q"
Announcing WAPM: The WebAssembly Package Manager – Wasmer – Medium
chikoskiさんのツイート: "公開されているパッケージの一覧はこちら:https://t.co/znQZHYUFjH ."
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "wapmの利用ガイド:https://t.co/C8DrMCuTaf npm同様に install でパッケージを取得する。公開はpublicコマンド。package.jsonの代わりにwapt.tomlにパッケージのメタ情報を記述する。tomlを使うところはRust由来な感じ。"
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "publicではなく、publishコマンドでした。タイプミス"
chikoskiさんのツイート: "しゅーまい @__syumai さんにlikeされて思い出したけど、denolandと組み合わせると、結構面白くなるのでは。"
🦀 Ivan 🐘🐍💎 Enderlin 🕸さんのツイート: "JavaScriptCore as a WebAssembly binary, https://t.co/aQA2qyJObr. $ wapm install -g jsc $ jsc >>> function multiply(a, b) { return a * b } undefined >>> multiply(10, 20) 200 >>> Date() Mon Apr 15 2019, … Crazy :-). #webassembly #javascript #javascriptcore"
jsc - wapm
chikoskiさんのツイート: "Zephyr project(組み込み向けリアルタイムOS)の上で動くWASMランタイム。libcのサブセット(ほんとに小さい)付き。ワクワクするな!… "
Anas Nashifさんのツイート: "Nice to see a WebAssembly Micro Runtime project from @IntelOpenSource running on @ZephyrIoT. https://t.co/djBVKTv5bO"
intel/wasm-micro-runtime
chikoskiさんのツイート: "ざっとREADME読んだ限りでは、割り込み周りはOSが面倒みてくれて、WASM的にはイベントとして抽象化される感じ。より細かいアクセスはネイティブコードをインポートとして与える感じになるのかな… "
bokuwebさんのツイート: "うお、intelなのか。割り込みとのつなぎとかどうなるんだろうか。。。"
chikoskiさんのツイート: "WASM Unikernel…パワーワードすぎる。@wasmerio をOPS unikernel上で走らせてみた話… "
WebAssemblyWeeklyさんのツイート: "Running WASM Unikernels https://t.co/JJMoBksOoX - taking a simple Hello World app, compiling to wasm, running it on @wasmerio within an OPS unikernel"
Running WASM Unikernels
chikoskiさんのツイート: "WASM向けのtracing allocator。デバッグ向け。Rust製。Rustから作られたWASMのメモリ使用状況を調査できる。ブラウザでもNodeでも動作。 https://t.co/N54smbHKnz"
rustwasm/wasm-tracing-allocator: A global allocator for Wasm that traces allocations and deallocations for debugging purposes.
chikoskiさんのツイート: "1Passwoed、WebAssemblyを利用することで、Chromeでは最大13倍、 Firefoxでは同じく最大39倍の高速化に成功。… "
1Password X: May 2019 update | 1Password
chikoskiさんのツイート: "味わい深い結果。v8の型推論は強力なのだなとも思えるし、生存期間が長く計算能力が必要な処理にはWASMを使った高速化は有効なのだろうとも思える。さて実行回数に対する損益分岐点はどこらへんになるのだろうか、などなど。"
hiroppy🇮🇪さんのツイート: "Node.jsのECMAScript ModulesでWebAssemblyが使えるようになる🎉🎉🎉 https://t.co/LNPiT4UKvq… "
esm: --experimental-wasm-modules integration support by guybedford · Pull Request #27659 · nodejs/node
chikoskiさんのツイート: "WASMとES modulesとの相互運用性に関するプロポーザル(の説明スライド)なんだけれど、インポート、エクスポート、instantiationで、それぞれ何をやっているかを説明しているので、面白いかもしれない。文字がないのでわかる人はわかる、てきな感じかも、しれない。https://t.co/lFsG9XIoVc"
WASM ES module proposal
Running WebAssembly on the Kernel – Wasmer – Medium
chikoskiさんのツイート: "この速度向上は、kernelモードとuserモードの切り替えがないことに由来する模様。なお今回の結果は、起動は早いが最適化は不十分なシングルパスバックエンドを利用したもの(@wasmerio はバックエンドを切り替えられる)。最適化をより行うCrainliftやLLVMのバックエンドを使えばより早くなる見込み。"
chikoskiさんのツイート: "Bllockly (https://t.co/lwNdsDJCBO)向けのAssemblyScriptコードジェネレーターが作成された模様。つまり、ブラウザ上で動作しWebAssemblyにコンパイルできるビジュアルプログラミング言語がある、ということ。… https://t.co/VwZL2wQlv9"
Blockly  |  Google Developers
Robert Longさんのツイート: "Working on an @AssemblyScript code generator for Blockly and compiling it to WebAssembly in browser. Still a long way to go, but it looks doable. I'll open source it after I get a little further.… https://t.co/AuMqKuE4CS"
chikoskiさんのツイート: ".NetのアプリをWebAssembly化するまでの話。Blazorを使って.Netで書かれたHello Worldアプリを、WASM化するまでの流れが説明されている。https://t.co/uTjWM1ln8a"
WebAssembly-ifying .NET with Blazor
chikoskiさんのツイート: "Compiling C to WebAssembly without Emscripten: https://t.co/zoV5YJSoYP Clangを使ったCからWASMへのコンパイルを、step by stepで解説している。前提知識があまりなくても読めます。一般のCコンパイラ話として読んでも楽しい。"
Compiling C to WebAssembly without Emscripten — DasSur.ma
chikoskiさんのツイート: "あと超適当ではあるけれど、メモリアロケータを実装してみてもいるので、何気なくnew Array();とかやっている裏で、何がおきているかに興味ある人もどうぞ。https://t.co/zoV5YJSoYP from @DasSurma"
chikoskiさんのツイート: ""Audio Worklet Design Pattern":タイトルはAudio Workletだけれど、実質WASMを使ったストリーム処理のデザインパターン集になってる。データの受け渡し方法と、スレッド間の同期するかしないかが、デザインの分かれ目になっている。 https://t.co/qvJbiPmzQo"
Audio Worklet Design Pattern  |  Web  |  Google Developers
chikoskiさんのツイート: "サンプルコードはこちら:https://t.co/X7HG82OTop"
web-audio-samples/audio-worklet/design-pattern at gh-pages · GoogleChromeLabs/web-audio-samples
chikoskiさんはTwitterを使っています: 「さらっと書いてあるけど興味深い:Ayncifyによる非同期呼び出し。そして setjmp/longjmpのデモ。これでgoto文やexceptionを実現できる。 https://t.co/7S7YxHocwh」 / Twitter
chikoskiさんはTwitterを使っています: 「EmscriptenがLLVMバックエンドを使うようになったので、./emsdk install latestでPost MVP機能が使えるコンパイラがインストールされるようになりました。そして、fastcompを使いたいときは、latest-fastcompと明示するようになりました。」 / Twitter
chikoskiさんはTwitterを使っています 「Emscriptenを使わずに、Cでmp3デコーダをつくった話。 ヒープの管理方法についての説明が主なので、CプログラムのWASM化するさいにひろく参考になると思う。スタックの起点から上にヒープが伸びていく、ところがポイント https://t.co/bO8eSEaqua」 / Twitter
Minimp3 Wasm Without Emscripten – kanejaku.org
chikoskiさんはTwitterを使っています 「Conditional Sections. いくつかのsectionを複数回出現可能にした上で、sectionを有効にするための条件を記述するための conditional section を追加する。JS API も有効な機能セットを渡せるように拡張される、らしい: https://t.co/T0JbSAt73z」 / Twitter
conditional-sections/Overview.md at master · WebAssembly/conditional-sections
chikoskiさんはTwitterを使っています 「Firefox で使われているライブラリの一部を、WASMサンドボックス内で動かしてるよ、という話。 プロセスを作るまではいかないけど、メモリアイソレーションしたいというニーズに応えるため、RLBoxというサンドボックスを突くった、とのこと: https://t.co/sckg8jYfFB」 / Twitter
Securing Firefox with WebAssembly - Mozilla Hacks - the Web developer blog
chikoskiさんはTwitterを使っています 「論文:https://t.co/E6vAKhcnDi "we find the end-to-end memory overhead of RLBox to be modest—25% with SFI, 18% with process isolation—and transient, appearing only at content load time. The impact on page latency is small: 3% and 13% with SFI and process isolation, respectively"」 / Twitter
LibrarySandboxing/paper.pdf at master · shravanrn/LibrarySandboxing
chikoskiさんはTwitterを使っています 「NaCLについて、何も知らないんだけど、やっぱり振り返った方がいいんだろうか。」 / Twitter

@qwerty2501

クワーティさんのツイート: "どうしてwasmにはfloatにだけmax,min命令があるんですかねぇ。しかも条件が結構複雑で実装がだるいという"
クワーティさんのツイート: "wasmのfloatのminとmax命令よくわからんからlibcのfminとfmax関数にぶん投げてええか?"
クワーティさんのツイート: "relopとfbinopを実装したし、今日の進捗としてはこんぐらいでいいだろ"
クワーティさんのツイート: "LLVMBuildAShrとLLVMBuildLShrの説明がどこにも見つけられなくて困っている"
Atsushi Enoさんのツイート: "arithmetic shift right とlogical shift rightでは… "
クワーティさんのツイート: "あーそれだ。多分 ありがとうございます… "
クワーティさんのツイート: "LLVMにrot命令が存在しない・・・"
クワーティさんのツイート: "end命令のときに対応する命令がloopか、そうじゃないかで振る舞いが変わってくると思うんだけど"
7594591200220899443さんのツイート: "WASM案外遅くねえか?っていう報告が出ている https://t.co/sSZM7zkCPk"
[1901.09056] Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code
qwerty2501さんのツイート: "遅い理由として考えられるのは、 - 規格上余計にマシンコードと比べて余計に仮想メモリの処理が入る - ブラウザの最適化実装が甘い - スタックマシンなので言語のコンパイラが最適化しにくい? かな。現状遅い理由で多いのは2番目っぽそうだけど"
qwerty2501さんのツイート: "個人的にWASM vs Native CodeよりもWASM vs JVMの比較のほうが妥当な比較な気がする。"

@blackenedgold

κeenさんのツイート: "wasmは最初の引数がスタックの底。最後がスタックトップ。 #κeenメモ"
κeenさんのツイート: "webassemblyのバイナリツール、セマンティクス的に間違っててもフォーマットが正しかったらとりあえずディスアセンブルしてほしい"

@rockridge07

Rockridgeさんのツイート: "JavaVMのような実行環境があれば、将来的にWebAssemblyベースのデスクトップアプリケーションも作成可能になる。 / “WebAssembly is more than the web” https://t.co/77uD4mFOlU"
Rockridgeさんのツイート: "Rust言語から生成されたWebAssemblyがマルチスレッドで動作し、各スレッドがメモリを共有するという仕組みができつつある。 / “Multithreading Rust and Wasm | Rust and WebAs…” https://t.co/r3PF3bUG87"
Rockridgeさんのツイート: "WebAssemblyがMinimum Viable Product(MVP)に達した時点で、ゲームでいう「スキルツリー」が開放され、様々な領域へと発展していけるようになった。本記事では獲得間近の「スキル」に当たる各種新機能を紹介… https://t.co/rq0iPTUp4q"
Rockridgeさんのツイート: "Doom 3をEmscriptenを用いてWebAssemblyに移植した話。サイズがおよそ400MBあるといい、読み込みには相当な時間がかかる。参照:https://t.co/kfsfSODK2i / “Google グループ” https://t.co/cdbKMmijAn"
Rockridgeさんのツイート: "サイトに登録されたMIDI形式のファイルを再生できる。その数11万以上。C言語で書かれたプレイヤーをWebAssemblyとJavaScriptに移植したという。参照:https://t.co/axJZ5LsZXe / “Pop…” https://t.co/FbxpLWDpjW"
The Lost Art of MIDI – Bringing <bgsound> Back to the Web - Speaker Deck

histric

histric-1

七誌さんのツイート: "WebAssemblyを少し眺めた。分岐で相対アドレスを使わずに構造化されているようで、ちょっとBrainf*ckに似ていると思った。 https://t.co/MrB6JRgGqP"
Kazuho Okuさんのツイート: "goto 禁止教を信じていた頃は while (...) { switch (...) { ... continue; } } とか書いたりもしてたなぁ。最近は while ブロックの最後にラベル置いて goto します"
Makoto Kato ︎︎さんのツイート: "Linが書いたHacksのWASMのbaseline compilerの話、HNではhttps://t.co/V45io6o5qq のベンチマークの話になってたけど、EdgeのWASMコンパイラでValidationがLazyだからロードだけは速いってのは初めて知った"
https://lukewagner.github.io/test-tanks-compile-time/
Rust and WebAssemblyさんのツイート: "Announcing the `web-sys` crate! 🎉🎈🎊 Bindings to ✔️ the DOM ✔️ Web Audio ✔️ 2D canvas ✔️ Web GL ✔️ fetch and the whole Web API!"
ドッグさんのツイート: "Wasm にコンパイルする前提の C++ のウェブフロントエンドフレームワーク,C++ のコードに唐突に JSX 記法が出てくる(仮想DOMが生成されるっぽい) https://t.co/rRvZYUh8eT"
asm-dom/todos.cpp at master · mbasso/asm-dom
herumiさんのツイート: "intを返す関数をvoidを返す関数ポインタ(引数の型は同じ)にキャストして使うとx64では大丈夫だけどwasmだと実行時エラー。それをチェックするにはwasm-ldに--check-signaturesをつける。しかしwasm-ld-6はバグっててそれをつけると逆にエラー。ld-7ではOKでした。@blackenedgold #compiler_study"
Yosuke FURUKAWAさんのツイート: "AudioWorkletからSharedArrayBuffer経由でwasm threadと直接データやりとりして、最後にAudioMixingEngineでUIにつなぎこむ、、!!ゴクリ #ChromeDevSummit_ja… "
petamorikenさんのツイート: "@tkihira 突然失礼します。こちらの記事のコンパイル済みの WebAssembly を IndexedDB にキャッシュする件についてですが、 https://t.co/QF98zqUFpA 残念ながら仕様から消えてしまい、Firefox の実装からも無くなってしまったので、追記していただけると幸いです。 https://t.co/qTsuGa3kLn"
dynamis (でゅなみす)さんのツイート: "貧弱だったWebRTCのエコーキャンセラーは年末あたりにバージョンアップして改善される一方、そもそもオーディオのコーデックとかも含めてWebAssemblyで実装してしまうアプリケーションが出てきてたりブラウザはメディア系も低レベルAPI提供の方向に向かいそうな話。 https://t.co/kF8T4X3e6R"
ドッグさんのツイート: "Wasm はスタックマシンだと仕様にあるけど実際 locals はそうなってないという話.元々 asm.js のバイナリ表現としてレジスタマシンで設計されていたものからスタックマシンに切り替えた経緯があるのか | 'WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine' https://t.co/BEwMJf7AnT"
WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
Makoto Kato ︎︎さんはTwitterを使っています: 「パフォーマンストークでFFIが絡む話をする場合は、FFI部分を排除したデータがないと残念なプレゼンになるけど、まぁ結論として残念ですね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「WASMのJITもTierがあるので、JSのTierをなくしたデータを取るんだったら、WASMも同じようにInterpreter/BaselineJITだけのデータをとって比較しないと意味ないのでは?」 / Twitter
VさんはTwitterを使っています 「WASM が未来なのすごくわかるなぁ。いつか汎用的な負荷試験ツールを作る日が来たら、シナリオは全部 WASM 化したい。好きな言語で好きなように書ける。」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています 「@voluntas 同感です。まずはプラグインとかスクリプト機能がWASMになるんでしょうね。ゆくゆくはユニバーサルバイナリーの地位を確立するかもというのも気になります。 ただ現時点だとLuaJITのほうが軽かったりしないのかなあと気になっているのですが。まあでもWASMが広まっていくんでしょうね。」 / Twitter
VさんはTwitterを使っています 「@hnakamur2 まず Lua を覚えてもらうのと LuaJIT Binding を維持するコストが高いと思うんですよね。k6 がシナリオを JS にしたのは英断だなぁと思っています。「WASM にさえすれば何でもいい」というのは本当に強くて、あとは API をアプリ側に用意するというのは一番キレイな形だなと。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「アプリを動かすための仮想機械を作ったとしても、新しいプラットフォームで動かすには誰かがその仮想機械を移植する必要があるんだよな(そしてそれは「再コンパイルすれば済む」ような自明な作業ではない)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「元ツイートとは関係ないけど、Write once系の技術はdebug everywhereになりがち(抽象化に漏れがあったり、抽象化レイヤーの提供する機能が少なくて環境依存な方法を使ったりするような場合)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのセキュリティーについて https://t.co/MWJgBZqE4g とか読んで調べてるんだけど、Control Flow Integrityの辺りって処理系側が工夫しないと結構簡単にバッファーオーバーランとかで破られちゃうよな…」 / Twitter
Security - WebAssembly
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いや、もちろん他の仕様も処理系がアホだと危ないのは当然なんだけど、ジャンプ先の制御って今自分が作ってるコンパイラーじゃ全然守れてないな…って。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「&gt; wasm-ldに関する公式サイトというかドキュメントみたいのはどれを見ればよいでしょう? wasm-ldはlldのwasm向けポートなのでLLVMが公式ドキュメントということになるのかな? 一応申し訳程度のドキュメントがありますが、あまり期待しないほうが良いと思います!https://t.co/0gXTJKiEaK #wasmnight」 / Twitter
WebAssembly lld port — lld 12 documentation
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmの例外やGCが実装してなお残る、高級なプログラミング言語のランタイムに必要な機能ってなんだろう。boxing・unboxingとか?軽量スレッドなんかも言語によっては必要かな?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@miura1729 物理CPUのinstruction setはハードウェアなので仕様先行にせざるを得ないが長い期間の蓄積がある& WebAssemblyみたいな仮想マシンコードも、50年くらい前からp-codeやAS/400の中間コードとして存在し、JVMや.NETのVM命令セットを含め、何度も何度も実装されて知見が蓄積されていますからね…」 / Twitter
FadisさんはTwitterを使っています 「Wasmer 2.0が出たらしい。WasmerはWeb以外でWebAssemblyを動かす実行環境。2.0ではNaNの振る舞いが中間表現の仕様に入ってfloatの最適化がかけやすくなる、バックエンドにCraneliftが使えるようになる、wasmのデシリアライズが爆速になる等の性能面で影響の大きい改善が目立つ https://t.co/o72eOOATzy」 / Twitter
Wasmer 2.0 Released With Significantly Faster Runtime Performance, Quicker Deserialization - Phoronix
ノーンさんはTwitterを使っています 「AssemblyScript雑なまとめ - WASMのInterface Type(外部とやり取りする型)で文字をUSVに移行するという提案(セキュリティーに問題があるため) - 8/3の会議でGoogleやMozillaなどに可決されそう - でもAssemblyScriptは死ぬので、「巨人には勝てんわ。すまん」と声明を発表 https://t.co/wJIstrB3A4」 / Twitter
mod_poppoさんはTwitterを使っています 「AssemblyScriptが死ぬ話、全然把握してないけど初期のUnicodeを16ビットに収めようとした連中が諸悪の根源であることだけはわかる」 / Twitter

idさんはTwitterを使っています 「Jupyterliteすごい。 wasm製のpython runtimeであるpyodide(のkernelのpyolite)を使ってるので、サーバ無しにJupyterが動く https://t.co/0AALJsgCyp」 / Twitter
JupyterLite: Jupyter ❤️ WebAssembly ❤️ Python | by Jeremy Tuloup | Jul, 2021 | Jupyter Blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「wasmer-jsみたいにブラウザーのWasm処理系を使うんじゃなくて、Rustで書かれたwasmerそのものがブラウザーで動くようになるってことか。Wasm3もそういえばやってたな / “Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer · GitHub” https://t.co/7Fw0jQmaPb」 / Twitter
Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ちゃんと確かめてから記事にしようと早N月経ってるんだけど、WasmでDOMを操作するのはreference typesを使えば最早JS経由とすら言えないし、すでに直接操作できると言っていいのでは? https://t.co/uHZaaml4HN 曰くもうChromeもサポートしてるっぽいけど、ツールチェインがサポートしてないのかな。」 / Twitter
WebAssembly Reference Types - Chrome Platform Status
yukiさんはTwitterを使っています 「終わってから思い出したんですが、WebAssemblyをコンパイルターゲットとするGrainという言語があって、これも関数型プログラミング言語みたいです。個人的に注目してます。 #func_party https://t.co/lff4XxbFK0」 / Twitter
grain-lang/grain: The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
かめのこにょこにょこさんはTwitterを使っています 「今のところの JavaScript と比べたときの WebAssembly のTwitter上で観測される欠点は - 同じことをするにもサイズが 10倍以上に膨れがち - (JS側の) ArrayBuffer をそのまま扱えず、コピーが必要になる - .html ダブルクリックでローカルに実行できない - デバッガが貧弱すぎる ほかにもありそう」 / Twitter
かめのこにょこにょこさんはTwitterを使っています 「- &lt;script src="*.wasm"&gt; で読み込めない - 学習コストが高い (Rust, C, AssemblyScript などを学ぶしかなく、既存の JS 資産を活かせない) - (画像処理などの重い処理で)ブラウザAPIを使うときより遅くなってしまう」 / Twitter
mod_poppoさんはTwitterを使っています 「一昔前のコンパイラーだとアセンブリーに落とす前提で抽象機械を好きに設計できたけど、今時のコンパイラーはLLVM IRやWebAssemblyを出力する前提で抽象機械を設計しなければいけないのかなあとか思った」 / Twitter
ノーンさんはTwitterを使っています 「「ユーザーに自由にプラグイン書いてほしいけど、プログラミング言語限定したくないし、早く動かしたいし、でもセキュアじゃないとやだ」みたいなユースケースだとwasmは完璧なので、もっと知られてほしい。」 / Twitter

WebAssembly Community Group
WebAssembly Specifications
WebAssembly バイナリ表現 | WEBASSEMBLY USUI BOOK

Unicode

ucd

Index of /Public/11.0.0/ucd
https://unicode.org/Public/11.0.0/ucd/UnicodeData.txt
https://unicode.org/Public/11.0.0/ucd/PropertyAliases.txt
https://unicode.org/Public/11.0.0/ucd/PropertyValueAliases.txt
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakTest.txt
Grapheme Break Chart
https://unicode.org/Public/11.0.0/ucd/extracted/DerivedCombiningClass.txt

数字

Unicodeにある数字の一覧 | hydroculのメモ

書記素クラスタ

UAX #29: Unicode Text Segmentation
UAX #15: Unicode Normalization Forms
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
Unicodeの特殊な文字 “結合文字列” – ものかの

SV・IVD・絵文字

The Unicode Standard, Version 11.0
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
UTS #37: Unicode Ideographic Variation Database
Ideographic Variation Database
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita

大文字・小文字

Unicodeの大文字と小文字のまとめ | hydroculのメモ
Unicodeの仕様に基づいた大文字小文字を変換するには | hydroculのメモ
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicodeで定義されている多言語のアルファベットは約1400種類ある。大文字&lt;-&gt;小文字の変換はASCII文字であれば簡単だが、Unicodeでこれを高速に (小さい参照テーブルで) 処理するにはどうする? これは結局、多段階の間接参照をする最適なlatticeを発見すればよいことになる。 https://t.co/H1tgxAgc78」 / Twitter
notes/fast-case-conversion at master · apankrat/notes
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「いま気づいたが、データの可逆圧縮ってのはどれも繰り返し構造を再利用するわけだから、結局どれもなんらかの latticeの構築 (探索) 問題として定式化できるわけだ。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「さらに気づいたが、(JPEGなどの) 非可逆圧縮はたいてい可逆圧縮の処理を含んでいる。結局これは「元データを繰り返し構造が現れるような形式に (DCTなどで) 変換する」という前処理が入った可逆圧縮、と考えることもできる。」 / Twitter

Wikipedia

Variant form (Unicode) - Wikipedia
Unicode control characters - Wikipedia
Variant Chinese character - Wikipedia
List of typographic features - Wikipedia

Unicode 11.0.0
Unicode利用規約
UAX #44: Unicode Character Database
The Unicode Standard, Version 11.0
C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
はじめてのにき(2018-12-24)
はじめてのにき(2018-12-25)
char8_tによせて - なるせにっき
CJK互換漢字とは?新元号「令和」の「令」Unicode符号に注意! – cod-log

C

言語仕様

その他

仮定義
日記 (2016 年 6 月上旬)
初期化子は定数 - とくにあぶなくないRiSKのブログ
CとC++のIdent - in neuro
NAKAMURA Minoru's Diary (2016年12月)
C言語の現代化を目指すC2
how-to-c-response/README.md at master · Keith-S-Thompson/how-to-c-response
Origin of C Language
Origin of C Language's 'struct'
Language C FAQ
ロボ太さんはTwitterを使っています: 「「-1/2」の結果がC/C++とRubyで違うということを初めて知った。」 / Twitter
herumiさんはTwitterを使っています: 「https://t.co/LhrwyBIl7u 処理系依存が気になる古いC/C++の処理系ではdivを使う、までがセットですね。 https://t.co/Y1e4xaouPm」 / Twitter
div, ldiv, lldiv, imaxdiv - cppreference.com
/devさんはTwitterを使っています: 「C言語のお前そんな機能あったのシリーズ https://t.co/qZIUU2hjts」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCで-std=c99したらDBL_TRUE_MINが定義されてなかったんだけど、もしかしてこれC11以降の機能だな?」 / Twitter

未定義の動作・値

Twitter

議論

画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n &lt;= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
のぶしみさんはTwitterを使っています 「def f(n): if n&lt;=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
Compiler Explorer
7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
N1528: Why undefined behavior for infinite loops?
7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
Masaki HaraさんはTwitterを使っています 「&gt; My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ &gt; As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「標準化されたCはOSの開発には向いてない (PLOS'21論文)。ISO標準はあまりに抽象化されており、ほとんどのOSはコンパイラ依存の仕様に頼っている。そして未定義動作を最大限活用したコンパイラによる最適化がある。多くの場合、これら最適化によるメリットはさほど大きくない。 https://t.co/Sn3BfijR6x」 / Twitter
[2201.07845] How ISO C became unusable for operating systems development
zehnpaardさんはTwitterを使っています 「ISO標準がなんでOS開発に適さないかというと、未定義動作による(特にgccによる)アグレッシブな最適化が、システムの安全性を損なう割に最大で16%くらいしか性能に貢献していないようだから、なのか Coqで形式検証されたCompCertの話も出ていて面白かった」 / Twitter
yoh2さんはTwitterを使っています 「> 未定義動作はエラーになるとは限らない これほんと忘れがちなんだよね。 ヌルポ参照で落ちるのは許容範囲だからと油断してるとコンパイラが ・NULLチェックされてないから(※)NULLでない前提で最適化できる ・そういやこれNULLかhogeしか入らんな ・なら常にhogeに展開しちゃえ とかやるからな。」 / Twitter
yoh2さんはTwitterを使っています 「※の補足書こうとしたけど、前提書き間違えてた。 NULL チェックされてるかどうかは関係ない。 *p という式が評価される時点では NULL であってはならないというそれだけのこと。 で、NULL か hoge しか取らないという場合、コンパイラが常に hoge に展開する最適化をするのは合法、と。」 / Twitter
yoh2さんはTwitterを使っています 「Q. じゃあ実際に NULL だったときに落ちないじゃないか A. そうですが、なにか? NULL だったときの挙動は未定義なんだから落ちてもいいし hoge に評価されたって構わない。 なんだよなあ (´・_・`)」 / Twitter
本の虫: 誤り:paizaの問題はC++17でも成り立つ
ツイッターで出題した未定義問題のお詫びと調査と解説について - paiza開発日誌
水島宏太(Parser)さんのツイート: "ただ、 "未定義だと、動作が言語の実装に依存しますので、コンパイラなどの環境によって、結果が変わってしまいます。" 実装依存と未定義の区別がついてないような。未定義というのは本当に何が起こってもいいということであり、実装によって挙動が一つに定まるというのは違う。"
水島宏太(Parser)さんのツイート: "実際には、未定義動作を使ったCコードというのはあり、そういうコードを動かすためには、未定義動作だから何でもいいというのは困ることがあるけど、ともあれ未定義は未定義として区別されなければいけない。"
Eijiro Sumiiさんのツイート: "「どうやら、"sequence points"の範囲の中でside effectが評価されるようです。」待て待て待て、副作用完了点も知らないでC(やC++)の問題出題したりエンジニア向けサイト運用してたのか…!? https://t.co/iJfbmMbP3I"
本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)
本の虫: C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合
C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
未定義動作により最適化レベルで結果が変わるコード - Qiita
ロボ太さんのツイート: "安全装置において、警告にとどめるか緊急停止させるかって、もちろん想定させる危険性に依存するじゃない?例えばコピー機で用紙サイズが合わなくても警告でいいけど、工業カッターが異物を検知したら緊急停止させなきゃいけない。「警告音で手を引っ込める」ことの賭金として指切断は高すぎるから。"
ロボ太さんのツイート: "これ、別に言語仕様を変える必要はなくて、「未定義動作を検出したらエラーで落とす」というオプションつけて、それをデフォルトでオンにすればいいと思う。なんか互換性で問題起きたらオフにすればいいんだし。結局、安全側と便利側どっちに倒すか、という問題だと思う。"
ロボ太さんのツイート: "同様に、もしコンパイラが未定義動作を検出してud2吐いたりretを消したりするなら、警告吐くだけじゃなくてエラーで落とすべきだと思う。それは明らかに重大事故だから。それを「ハナカラアクマ」って呪文唱えて、知らない人を締め出す先にあるのは、コミュニティの緩やかな死だと思う。"
Undefined behavior can result in time travel (among other things, but time travel is the funkiest) | The Old New Thing
mcyoungさんはTwitterを使っています 「char* null = 0x0; char* one = 0x1; null + 0 // UB in C and Rust, not C++ one + 0 // UB in C and C++, not Rust what does LLVM think? no one seems to know well done everyone」 / Twitter
yoh2さんはTwitterを使っています 「ところで「Cは高級アセンブラ」という認識は罠にずっぽりハマるワードだと思うのでやめとけとなる。」 / Twitter
yoh2さんはTwitterを使っています 「これを言う人、符号付き整数のオーバーフローとか type-punning とかに頓着しないコードを書いては「コンパイラがバグってるから最適化禁止 (本当はがっつり UB 引き起こすコードを書いてる)」と言い放ちがちなイメージ (ど偏見」 / Twitter
yoh2さんはTwitterを使っています 「符号付きオーバーフローに無頓着というか、オーバーフローしたら一周すると信じてる、かな。 int n; ... if(n + 100 &lt; n) { /* 100 足すとオーバーフローする場合 */ ... } みたいなコードとかね。んで最適化して if がごっそり消えるなど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「でもアセンブラでも符号に無頓着でバグる事があるから...」 / Twitter
キャストに関わるGCCの謎挙動 - 豪鬼メモ

未規定の動作
未定義の動作
処理系定義の動作
文化圏固有動作

Clarification Request Summary for C11
n1731.txt
N1804: Discussions on DR440, DR441, DR442, DR444, and DR445
Resolving DR444

ビットフィールド

_ko1さんはTwitterを使っています 「0幅のbit fieldなんて初めて知ったよ...」 / Twitter
Miura HidekiさんはTwitterを使っています 「なんかで見たな。なんだったっけ 明示的なパティングだったかな」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@miura1729 ですね https://t.co/cjEV1gCwT0」 / Twitter
Bit field - cppreference.com
複数のビットフィールドを持つ数値の並列演算

ISO

History of C - cppreference.com
C99 - Wikipedia
C11 (C standard revision) - Wikipedia
C18 (C standard revision) - Wikipedia
ISO/IEC JTC1/SC22/WG14 - C
www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
ISO/IEC 9899:2017
Clarification Request Summary for C11
N2349 - Toward more efficient string copying and concatenation
Clarification Request Summary for C11
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語 C++11: 属性を導入して[[noreturn]]と書けるようにします ←わかる C11: _Noreturnを追加して&lt;stdnoreturn.h&gt;で#define noreturn _Noreturnします ←バカ C23: C++ライクな属性を導入します ←noreturnはどうなるの……」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C23のnoreturnに関してはこういうproposalが出てるけどまだworking draftには取り込まれてなさそう https://t.co/AxwUXEdjZi」 / Twitter
n2410.pdf

JIS

JISにおける規定を表す言葉の表現形式 - 水底の血

C23

予約語の扱い

yohさんはTwitterを使っています 「ISO C2xドラフト眺めてたら C言語標準での予約語が明確に記述されるようになってんね(J.6 Reserved identifiers and keywords, J.6.1 Rule based identifiers) 改めて見ると広すぎて酷いよなぁ https://t.co/NZenSxHmMp」 / Twitter
ドッグさんはTwitterを使っています 「tolower みたいな関数名(to の後にアンダースコア入れない)は厳密には駄目なのか」 / Twitter
ドッグさんはTwitterを使っています 「というか toggle みたいな普通の単語もダメだし無理がある…」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp 実例として "token" とか (Rectの)"top" が挙げられていて、そりゃ無理だわとなりました。」 / Twitter
ドッグさんはTwitterを使っています 「E[0-9A-Z][a-zA-Z0-9_]* もだいぶすごいけど」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp C17現在は「予約語だから使うな」で、次期C2xからは「予約語になる可能性があるけど今は使ってもいいよ/コンパイラは将来予約語になった時ちゃんと警告しようね」という優しさを見せています。」 / Twitter

blog

2進数リテラル in 標準C - yohhoyの日記
C2x標準の属性(attribute) - yohhoyの日記
mod_poppoさんはTwitterを使っています 「次期C標準であるC23の紹介記事 / C-ing the Improvement: Progress on C23 https://t.co/W3VIUBoluy」 / Twitter
C-ing the Improvement: Progress on C23 | The Pasture
realloc(ptr, 0)は廃止予定 - yohhoyの日記
2進数フォーマット出力 @ 標準C - yohhoyの日記

Twitter

その他

クロージャ

FUJI GoroさんはTwitterを使っています 「それでも…それでも型推論と無名関数は欲しいんです!!!(現役Cプログラマーより)。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「C言語は化石なままでいいと思うんだけどねぇ。C言語はそのポジションやロール的に下手に弄って互換性崩される事が不味い。近代的な機能を使いたいなら素直に C++ なり Rust なり使えよ!って話だし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@__gfx__ わかりみな一方で、クロージャは変数キャプチャする関係で関数ポインタと互換性ないし、暗黙の参照カウンタ処理が入るはずで微妙感ある」 / Twitter
FUJI GoroさんはTwitterを使っています 「@kazuho キャプチャするやつへの懸念はそのとおりですが、キャプチャしない無名関数(つまり純粋な糖衣構文)もできるはずで、それだけでも使えるといいなあと。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@kazuho @__gfx__ gccの関数内関数のような仕様にすれば関数ポインタと互換は取れるのではないでしょうか?クロージャを生成元からエスケープするとダメだけど、Cはもともとローカルなものをエスケープできないですし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「クロージャ使いまくるc2xで、ヒープに確保したデータの寿命管理、皆ちゃんとできるのかなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@miura1729 @__gfx__ gccのやり方でもスタック上にコード生成するわけで、仕様レベルでは入れづらい(し、今日の実行可能ページをできるだけ減らす方向にはそぐわない)と思います」 / Twitter
Miura HidekiさんはTwitterを使っています 「@kazuho @__gfx__ 確かに、スタックにコード生成する実装くらいしか考えられない言語仕様を入れるのは考えにくいですね。あとは、ヒープに生成して参照カウントくらいですか。それもCの思想にそぐなわそう。」 / Twitter

histric

histric-1

Urabe, Shyouheiさんのツイート: "次のCで20年ぶりくらいにCのfor文の挙動が変わるぽい。 https://t.co/CIY58JZBIt"
scope of a for loop control declaration
7594591200220899443さんのツイート: "そろそろintmax_tは間違いだったと認めようや、なあ。という提案がCに来ている https://t.co/ad910VQix9"
N2303: intmaxwidth.3emt, a way out
7594591200220899443さんはTwitterを使っています 「ちなみにc2xからポインタはアドレスじゃなくなります。詳細は https://t.co/RkF7ZVxFHB を参照してください」 / Twitter
N2362: Moving to a provenance-aware memory object model for C - n2362.pdf
7594591200220899443さんはTwitterを使っています 「これが__attribute__((__malloc__))に対する委員会からの回答なのだと理解している。つまり「このポインタはこの瞬間には他のオブジェクトとエイリアスしません」みたいなやつを取り込もうとしているんだと思う」 / Twitter
papers on formalized memory models
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
井山梃子歴史館さんはTwitterを使っています 「ポインタはベースアドレスとオフセットとprovenanceの束だよ」 / Twitter
provenance - Google 検索
束 - Wikipedia
propagation - Google 検索
7594591200220899443さんはTwitterを使っています 「Provenance-aware memory object model はC2xに入れるんじゃなくて別のTSにすることにしたのか。 https://t.co/m7yjs4P9VR」 / Twitter
n2577.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の「boolの代わりにintを返す関数」についてはintbool_t(C23の段階ではintのtypedef)を返すようにしよう、という提案がある https://t.co/FURMOzNdDE」 / Twitter
N2712: intbool_t
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の次期標準(C2x)は「C23」になる見込みなのかな。順調に行けばの話だけど https://t.co/DIxPvxXNrO」 / Twitter
WG 14 Document log
だめぽラボ@技術書典9さんはTwitterを使っています 「C++にある二進リテラルや桁区切り文字はC言語に入るのかなあと気になってたけど、Proposalは出てるみたい https://t.co/sR4Y3483Vx https://t.co/LUx5Fl3eLp」 / Twitter
n2549.pdf
n2606.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「C23 (C2x) の新機能は今のところ ・浮動小数点数周り(最新のIEEE規格への追従;各種関数の追加、十進など) ・C++の機能の取り込み(属性、u8文字リテラルなど) ・一部のPOSIX関数の取り込み(strdupなど) ・K&amp;Rスタイルの関数定義の削除 が主なものかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C++やPOSIXの機能の取り込みはともかくとして、浮動小数点数周りは目新しい機能で、単なるライブラリー関数だけではなく#pragma等も含めるとまともに実装する処理系は現れるのかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「だいたいC99のFENV_ACCESSすらメジャーなC処理系で実装されてなくて……と思ったけどClangに#pragma STDC FENV_ACCESSを実装する奴がマージされとるやんけ。Clang 12で使えるようになるのかな? https://t.co/HzL0M2yyUf https://t.co/gopObQBHtX」 / Twitter
⚙ D87528 Enable '#pragma STDC FENV_ACCESS' in frontend
Clang Compiler User’s Manual — Clang 12 documentation

histric-2

だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にもC++ライクなlambdaを入れようという提案はある https://t.co/IW2ZEXFaao」 / Twitter
n2736.pdf
mod_poppoさんはTwitterを使っています 「C言語の予約識別子が増えすぎて、逆に「絶対に予約されない識別子」の規定を追加しようぜ、という提案が出てきた https://t.co/823U3Ugu7R」 / Twitter
N2807 identifiers for use by users
mod_poppoさんはTwitterを使っています 「C言語にconstexprを追加する提案。この提案では再帰呼び出しができなかったりするので、C++11のそれよりも貧弱。 https://t.co/5r00eOuLNE」 / Twitter
n2851.pdf
mod_poppoさんはTwitterを使っています 「C言語のvoid *を型安全に使えるようにするための属性を追加しようという提案。 https://t.co/VfR7rIaL9y」 / Twitter
n2853.pdf
mod_poppoさんはTwitterを使っています 「C23にtail-call eliminationを追加する提案。Clangのmusttail属性といい、今C言語でのtail-call eliminationがアツい(ほんまか) https://t.co/llRoVC9p9r」 / Twitter
n2855.pdf
mod_poppoさんはTwitterを使っています 「C言語に多段breakを追加する提案。見た目がアレ。もうちょっとJavaみたいなやつにできなかったのか(それを言ったらgotoでいいだろとなりそう) https://t.co/9EU9lKGqvn」 / Twitter
n2859 – break break - n2859.pdf
mod_poppoさんはTwitterを使っています 「C言語にfatな関数ポインターを追加する提案 https://t.co/TU5Lo6dC5f」 / Twitter
n2787.pdf
平田豊@フォロバ100さんはTwitterを使っています 「K&Rスタイルの関数定義は、C言語の仕様として規定されていたのですね。Optionalだけど。 そして、この仕様がC23でなくなるみたいです。 https://t.co/pgWhrHvJ5V」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではautoとlambdaの導入が検討されているみたいで、楽しみです。 しかし、開発の現場で導入するかは揉めそう。 年寄り「新しいものは保守できなくなる。そもそもチャラチャラしたのが嫌いじゃ!」 若者「開発効率上がるからいいんですよ!そうやって古いものにしがみつくから…」 https://t.co/JmnDDP5MYt」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではmemccpy関数が追加されますが、一生使うことがなさ…ゲフンゲフン #include <stdio.h> #include <string.h> int main() { char dst[16]; char *p; p = memccpy(dst, "55_kumamon", 'a', sizeof(dst)); if (p) *p = 0; printf("%s\n", dst); } https://t.co/fwcPmRpnjJ」 / Twitter
progerさんはTwitterを使っています 「@yutakakn memccpy?何これ?と思ったけど、他の言語でいうところのsplit()みたいなことをしたいのですかね。機能的には、用途はあるとは思うものの、特定の文字列処理に特化した機能っぽいので、memcpyの一種みたいな位置付けは気持ち悪いですね。」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「@proger strccpyならまだわかるけど、memccpyはどういった場面で使うのかちょっと想像が付かないですよね。」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではlocaltime_r関数が追加されるようですが、やっとなのか!という思い。 localtime関数では内部でstaticにバッファを持つので、thread safeじゃないのですよね。 https://t.co/y2lRlKiCO7」 / Twitter
arbor@プログラマー(サブ垢)さんはTwitterを使っています 「@yutakakn スレッドの概念自体がC11でやっと導入されたので、スレッドセーフにしていくのは次の段階だったんでしょうね。」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「C23で[[fallthrough]]のような属性がサポートされる予定になっていますが、C言語で角括弧2つの記載はなんだか違和感がありますね。 https://t.co/ogk7t198xR」 / Twitter
arbor@反ワクチンではありません💉💉さんはTwitterを使っています 「@yutakakn もうC++で慣れたし、Cにバックポートされただけなのでほかの記法だと余計に違和感があります。」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「@arbor2018 gccだとコメントで、 /* FALLTHROUGH */ とつけるのが定番でしたよね。」 / Twitter
arbor@反ワクチンではありません💉💉さんはTwitterを使っています 「@yutakakn ごめんなさい。 なんかコメントで書いていた記憶はありますが、定番の作法というのは馴染みがありません。 微妙に文化が異なる気がします。」 / Twitter
ふろど#つくばセンターの主さんはTwitterを使っています 「@yutakakn __attribute__((used))とかの拡張なんですかね、これ。」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「@BoufrawFrodo2 C++の属性構文というやつみたいです。」 / Twitter
ふろど#つくばセンターの主さんはTwitterを使っています 「@yutakakn なるほど、いまいち嬉しさがわかんなかったんですが、マクロでwarnとか書かなくて良くなるってことですかね?」 / Twitter
平田豊@フォロバ100さんはTwitterを使っています 「@BoufrawFrodo2 コンパイラによって書き方がいろいろだったので、C言語の仕様として統一しよう、ということですね。 2023年に嬉しくなる?😂」 / Twitter

Miura HidekiさんはTwitterを使っています 「longjmpにどう対応するのかワクワクして見たけど見た限り触れられていなかった。残念」 / Twitter
mod_poppoさんはTwitterを使っています 「書き忘れたけどC23の変更に「K&amp;Rスタイルの関数定義の廃止」もあった。」 / Twitter
mod_poppoさんはTwitterを使っています 「C23が出れば堂々と「C言語には言語組み込みのbool, true, falseがある」と言えるようになる(かもしれない)(N2654, N2655参照)」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C言語についにラムダが入るのか!? C23に入る(かもしれない)予定の "defer" 構文の提案: double* q = malloc(something); defer [q]{ free(q); }; のように、変数スコープが消える際に実行されるコードを記述できるというもの。 https://t.co/k4KvoF4pB9」 / Twitter
A simple defer feature for C
mod_poppoさんはTwitterを使っています 「glibcの新しいのが出て、C23で追加される浮動小数点数周りの関数が実装されたりしているらしい https://t.co/H6N6ri4V7X」 / Twitter
The GNU C Library version 2.35 is now available
mod_poppoさんはTwitterを使っています 「C言語の標準ライブラリーってOSと密接に関係していたり他の言語からも利用されてたりして異質というか、よくある「言語の標準ライブラリー」とは違うよな。何が言いたいかというとC23で追加される関数がLinux以外でいつ使えるようになるかわからないのがアレ」 / Twitter
Bastard BjörkさんはTwitterを使っています 「Oh, right. C meeting is over. C23 added: - typeof(...) is standard - call_once is mandatory - char8_t (as a typedef) is in (u8"💣"[0] is mandated-unsigned!) - unreachable() for optimization - "\U12967849" is illegal (too-big for 21 bit code point) - = {} to replace memset is in.」 / Twitter
Bastard BjörkさんはTwitterを使っています 「We also: - killed K&R declarations and definitions and made foo() mean that it takes no arguments - properly defined "primary-block" and "secondary-block" in the grammar (basically, nerd shit) - @, $, and ` (backtick) to the source character set - made attribute _Noreturn real」 / Twitter
Bastard BjörkさんはTwitterを使っています 「Finally, we also fixed assert(). It now takes (...), which means you don't need to eat shit if you pass something that can be interpreted as multiple macro arguments. Same fix is headed for C++: thanks @PeterSommerlad!」 / Twitter
Bastard BjörkさんはTwitterを使っています 「Oh, and a big deal: true/false are KEYWORDS NOW, and all of the bool/thread_local/etc. are all KEYWORDS NOW!!!! YEEESSSSS!!!」 / Twitter
7594591200220899443さんはTwitterを使っています 「`int foo();` の意味がC++に寄せられた(引数0個の意味になった)のはrubyに直接の影響がありますね、ANYARGSがぶっ壊れるので。」 / Twitter
yohさんはTwitterを使っています 「Ever Closer - C23 Draws Nearer | The Pasture https://t.co/v0DDCq5UOA C23でようやくK&R仕様の亡霊...もとい下方互換性が全廃されるのか とうとうC言語でも「void f();」が引数なし関数プロトタイプ宣言になる」 / Twitter
Ever Closer - C23 Draws Nearer | The Pasture
yohさんはTwitterを使っています 「onceプラグマ, defer, ラムダ, 多重loopからのbreak, constexprなどは C23入りはしないとのこと っつーか"break break"とかセンスが...(個人の見解です」 / Twitter
mod_poppoさんはTwitterを使っています 「To Save C, We Must Save ABI https://t.co/xZxLRLFRNT 長いので全部は読んでないけど、CのABI互換の話とC23に提案されている_Aliasの話っぽい」 / Twitter
To Save C, We Must Save ABI | The Pasture
mod_poppoさんはTwitterを使っています 「提案されてるというか、この記事の著者が提案してるんだけど」 / Twitter

C2x Charter(C2x 憲章) - Qiita
C言語の次期ISO標準となるC2x
C2x - Wikipedia
WG 14 N 2086 -- C2x Charter
ISO/IEC 9899:yyyy - n2731.pdf
The ISO C WG has started working on a new standard: C2X : C_Programming
C – Preliminary C2x Charter | Hacker News
最近のC言語と、次期C標準(C23)

C11

スラド

[C/C++規格: 10] C11の新機能 その1 -- 新機能概要 | Yoh2の日記 | スラド
[C/C++規格: 11] C11の新機能 その2 -- 型ジェネリック式 | Yoh2の日記 | スラド
[C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
C言語は滅びるべきか | スラド デベロッパー

Qiita

C17 (not C++17) - Qiita
C11 の _Generic の罠 - Qiita
C言語(C11)で可変長の配列を使う方法 - Qiita

Twitter

LLVM / Clang 6.0 Should Be Released Soon With Its Many New Features - Phoronix
Fadisさんのツイート: "PhoronixによるとLLVM 6.0からC言語の標準にC17が選べるようになるらしい。そんな標準あったんか、と思って調べたらC11から既知の問題を修正したマイナーアップデートらしい。そしてもう2018年だけどまだドラフトらしい… https://t.co/8qTVqGgxWg"
ドッグさんはTwitterを使っています: 「今の C って配列の最後の要素の1つ後ろまでポインタ取れるのか int main() { int array[3]; int *p = NULL; return p &lt; &amp;array[3]; }」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion 詳しくないのですが,どうやら C11 からの仕様らしいです: https://t.co/hiLd35nmHf (6.5.6-8)」 / Twitter
www.iso-9899.info/n1570.html
M.KさんはTwitterを使っています: 「@Linda_pp これって,ポインタの計算がオーバーフローするかどうか,とかの話では?」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion ポインタを足した結果が配列の最後の要素の1つ後ろを指す時,それがオーバーフローしてはいけない(逆に言うとオーバーフローしなければ OK)→ 1つ後ろの要素を指すポインタは合法 と読んだのですが,間違ってるかもしれないです」 / Twitter
M.KさんはTwitterを使っています: 「@Linda_pp どちらかというと,ループの終了条件として最後の次のポインタを指すことはままあることなので,それがオーバーフローしないことを保証すること,って話なのかなと.1つ後ろを取ることが合法って言うよりは.」 / Twitter
FadisさんはTwitterを使っています 「Linuxがgccの最低要求バージョンを4.8から4.9に上げるらしい。ARM向けのカーネルをビルドする際にgcc-4.8がICEする不具合の回避などのつらいコードを消したい、C11の_Genericを使いたいといった理由かららしい https://t.co/bb1C2EKelc」 / Twitter
Linux Kernel Raising Compiler Build Requirement To GCC 4.9 - Phoronix
FadisさんはTwitterを使っています 「まだサポートが終了していないRHEL7は標準のコンパイラがgcc-4.8だが、そんな環境で標準のコンパイラで最新のカーネルビルドするヤツの為にgcc-4.8をサポートし続けるのは辛くなったという判断らしい」 / Twitter

C11 の機能 - Oracle® Solaris Studio 12.4: C ユーザーガイド
C言語の最新事情を知る: C11の仕様-脆弱性対応に関連する機能強化点 - Build Insider
C11の仕様-それ以外の主な機能強化点[C言語] - Build Insider
DCL03-C. 定数式の値をテストするには静的アサートを使う
_Static_assert とは - とくにあぶなくないRiSKのブログ
アトミック操作ライブラリ - cppreference.com
IBM Knowledge Center - _Static_assert 宣言 (C1X)
c - The concept of a type name scope in C11 - Stack Overflow
N1570 April 12, 2011 ISO/IEC 9899:201x
Wayback Machine
/std (言語の標準バージョンの指定) | Microsoft Docs
Visual Studio に C11 および C17 サポートをインストールする | Microsoft Docs
Visual Studio での C++ の新機能 | Microsoft Docs
Microsoft C/C++ 言語の準拠 | Microsoft Docs
7594591200220899443さんはTwitterを使っています 「この論文の例やべえ」 / Twitter
Shafik YaghmourさんはTwitterを使っています 「This paper "A Simple, Possibly Correct LR Parser for C11" is a treasure trove of cursed code: https://t.co/D2zS3Fzl59 #programming https://t.co/ewsWNnqE0M」 / Twitter
A Simple, Possibly Correct LR Parser for C11 - jourdan2017simple.pdf

C99

除算

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、知らんかった。 C言語系: -13 / 10 --&gt; -1 Python3: -13 // 10 --&gt; -2 (そして Python3の方が数論的には正しいと) https://t.co/pX8Rd3Qfb4」 / Twitter
python - Integer division by negative number - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお C99とC++11以降は上記の通りだが、それ以前は処理系依存だったらしい。 (ただし、このC99/C++11仕様は現状追認で決まっただけだろうな) https://t.co/x8L0ur3lvi」 / Twitter
整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス

引数

va_argマクロの奇妙な制限事項 - yohhoyの日記
可変引数リストと文字列とヌルポインタの特別な関係 - yohhoyの日記
関数パラメータリストと配列型 - yohhoyの日記
C/C++関数引数の評価順序 - yohhoyの日記

書式文字列

書式指定%lsとwchar_t型 - yohhoyの日記
printfファミリ書式指定%nの応用例 - yohhoyの日記
printfとsize_t型 - yohhoyの日記

文字列・メモリ

scanf文字列取得と動的メモリ確保 - yohhoyの日記
strncpy関数仕様のナゾ - yohhoyの日記
パスワードとmemset関数 - yohhoyの日記
malloc(0)の振る舞い - yohhoyの日記
長さゼロ on 文字列/メモリ操作関数 - yohhoyの日記
Duff's device - yohhoyの日記

配列・ポインタ

可変長配列の正式名称 - yohhoyの日記
配列有効範囲外を指すポインタ値は存在が許されない - yohhoyの日記
ポインタ型への非NULLアノテーションもどき - yohhoyの日記

リテラル・定数・初期化

初期化子リスト要素数不足時の初期値 - yohhoyの日記
文字列リテラル最大長の最低保証 - yohhoyの日記
size_tと値-1 - yohhoyの日記
複合リテラルの有効期間 - yohhoyの日記
数字から数値への変換: ch - '0' - yohhoyの日記
文字列リテラルは変更できないlvalue - yohhoyの日記
ヌルポインタの内部表現 - yohhoyの日記
mod_poppoさんはTwitterを使っています 「C言語の\uxxxxってコードポイントが00A0未満の文字を指定できないんだ(ただし$,@,`は例外的に指定できる)」 / Twitter
mod_poppoさんはTwitterを使っています 「識別子中で使えないのは仕方ないという気がするが、リテラル中でも使えないのは意外」 / Twitter

演算子

条件演算子と左辺値の扱いの差 - yohhoyの日記
sizeof演算子とオペランドの評価 - yohhoyの日記

blog

C言語の標準規格一覧 - yohhoyの日記
環境依存コード切り替えマクロ - yohhoyの日記
asmキーワードの扱いの違い - yohhoyの日記
ビットフィールド幅の上限値 - yohhoyの日記
main関数のreturn省略 - yohhoyの日記
main関数returnと他スレッドの関係 - yohhoyの日記
C11/C++11/POSIXスレッドAPI比較 - yohhoyの日記

C言語の最新事情を知る: C99の仕様 - Build Insider
プログラミング言語 C の新機能
IBM Knowledge Center - 複合リテラル式
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
関数定義の一部である関数原型形式の関数宣言子の仮引数型並びと、非原型形式の関数宣言子の識別子並び・宣言並び、および関数定義の一部でない関数原型形式/非原型形式の関数宣言子について - Qiita
Array initialization - cppreference.com
yoh2さんはTwitterを使っています 「C99 以降、 for ステートメントは for の () 内で宣言した変数が外に漏れないよう、それ自身が独立したブロック (※) になったというのは知ってたけど、if, switch, while, do-while もブロック扱いになってたことをたった今知った。 ※ C99 の for(;;) ... は C89 だと { for(;;) ... } のようなもの」 / Twitter
ARR32-C. 可変長配列のサイズ引数は適切な範囲内にあることを保証する
MEM05-C. スタック上で大きなサイズの割り当てを行わない
The Linux Kernel Is Now VLA-Free: A Win For Security, Less Overhead & Better For Clang - Phoronix
Warning Options (Using the GNU Compiler Collection (GCC))
Variable Length (Using the GNU Compiler Collection (GCC))
本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張

OpenMP

インテル® C++/Fortran コンパイラーによる OpenMP* 3.1 仕様のサポート | iSUS
OpenMP* 4.x による新しいレベルの並列化 (全2回) | iSUS
現在と将来の OpenMP* API 仕様 | iSUS
OpenMP* 5.0 TR7 の仕様抜粋訳 | iSUS
Fadisさんのツイート: "OpenMPの最新の仕様、OpenMP 5.0がリリースされた。OpenMP 5.0では明示的にflushしないと一貫性が保たれないメモリのサポートや、タスク間でのリダクションのサポート、配列から範囲と間隔を指定して部分配列を取り出す文法他大量の機能が追加される https://t.co/ppnZMPGBBT"
OPENMP 5.0 IS A MAJOR LEAP FORWARD - OpenMP

C++

本の虫

EzoeRyou/cpp-book: C++11 textbook
EzoeRyou/cpp14-appendix: Appendix for C++14 features
EzoeRyou/cpp17book: textbook for C++17
cpp17book/003-cpp14-core-binary-literals.md at master · EzoeRyou/cpp17book
cpp17book/004-cpp14-core-digit-separator.md at master · EzoeRyou/cpp17book
cpp17book/017-cpp17-core-u8-character-literals.md at master · EzoeRyou/cpp17book
本の虫: P1337R0: 標準ライブラリへのエイリアスを追加してC++を復活させる提案
Ryou Ezoeさんのツイート: "転職先を探しているのだが、この私のコネを持ってしてもC++17を使っている企業はなかなか見つからないぞ。"
Ryou Ezoeさんのツイート: "プログラマー以外の仕事をするとしたら何だろ。クライミングジムのスタッフとかやりたい。給料低いだろうけど。"
Ryou Ezoeさんのツイート: "C++を単に書くだけの仕事なら、普通に海外に行ったほうがいいんだろうなぁ。"
本の虫: 標準C++規格が3年おきに制定される理由
本の虫: C++20標準規格がほぼ固まった

プリプロセッサ

可変引数が空でない場合のトークン置換 - cpprefjp C++日本語リファレンス
__has_include - cpprefjp C++日本語リファレンス
トライグラフの削除 - cpprefjp C++日本語リファレンス

キーワード

auto - cpprefjp C++日本語リファレンス
registerキーワードを非推奨化 - cpprefjp C++日本語リファレンス
非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
alignas - cpprefjp C++日本語リファレンス
alignof - cpprefjp C++日本語リファレンス
static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス
P1152R0: Deprecating <code>volatile</code>
論理 AND 演算子:&& | Microsoft Docs

リテラル

生文字列リテラル - cpprefjp C++日本語リファレンス
UTF-8文字リテラル - cpprefjp C++日本語リファレンス
2進数リテラル - cpprefjp C++日本語リファレンス
数値リテラルの桁区切り文字 - cpprefjp C++日本語リファレンス
十六進浮動小数点数リテラル - cpprefjp C++日本語リファレンス
Ryo SuzukiさんはTwitterを使っています 「size_t 用の整数リテラルサフィックス uz が C++23 に入った! auto i = 0uz; // size_t 型」 / Twitter

式と文

整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
厳密な式の評価順 - cpprefjp C++日本語リファレンス
if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス
constexpr if 文 - cpprefjp C++日本語リファレンス
非推奨だった bool 型に対するインクリメント演算子を削除 - cpprefjp C++日本語リファレンス
非推奨だった古い例外仕様を削除 - cpprefjp C++日本語リファレンス
ビットフィールドのメンバ変数初期化 - cpprefjp C++日本語リファレンス
C++ if文再訪 - in neuro
高梨陣平さんはTwitterを使っています 「この記事がものすごくわかりやすかった。C++のLambdaの話。contextのcaptureが内部でどのように実装されているか、コンパイラの解説になっている。 https://t.co/aR0eDTQwCH」 / Twitter
LobstersさんはTwitterを使っています 「Demystifying C++ lambdas https://t.co/u1dgCRTSfL #c++ https://t.co/cHk3zxlKeB」 / Twitter
Demystifying C++ lambdas - Sticky Bits - Powered by FeabhasSticky Bits – Powered by Feabhas
一貫比較 - cpprefjp C++日本語リファレンス

属性

[[fallthrough]]属性 - cpprefjp C++日本語リファレンス
[[maybe_unused]]属性 - cpprefjp C++日本語リファレンス
[[nodiscard]]属性 - cpprefjp C++日本語リファレンス
名前空間と列挙子への属性付加を許可 - cpprefjp C++日本語リファレンス
不明な属性を無視する - cpprefjp C++日本語リファレンス
[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - Qiita
謎の用語niebloid - にゃははー

静的リフレクション案

島鉄雄さんのツイート: "Common(Emacs) Lisp のマクロはただのリスト操作に過ぎないんで、他の言語が真似する事は絶対出来ないだろう。 強いて言えば C のマクロで既にある程度カバーできてる。 リフレクションやメタクラスは、Meta Object Protocol (いわゆる MOP)の範疇でしょ。マクロではない。… https://t.co/UDQ62hNh7D"
Ryou Ezoeさんのツイート: "今、C++は関数型プログラミングを取り入れるめどがついているので、C++20でお手軽な関数合成ぐらいできるようになるし、次かその次の規格ではモナドも入るだろう。次にC++が狙うのはCommon Lispのマクロだ。"
Ryou Ezoeさんのツイート: "それを言い出すと本物のオブジェクト指向を実装している言語はSimulaかSmalltalkだけになってしまう。… "
島鉄雄さんのツイート: "Simula とか知らないけど、静的リフレクションとメタクラスを Lisp のマクロに結びつける事に違和感があった Lisp のマクロはリストをいじって見た目を変えるだけのものと考えるべき (dolist (a b) ...) dolist はマクロで、b はリスト型でないといけないけど、マクロはそんな事分からず変形だけする… https://t.co/ctaYDsrq7E"
Ryou Ezoeさんのツイート: "C++の静的リフレクションも、どのように実装するべきかまだ議論中だが、1つの案としてはソースコードのトークン列を得てそこに対して変形ができる案がある。… "
島鉄雄さんのツイート: "なるほど! それなら納得です。Elixir は Lisp 並みのマクロがある事も売りの一つのようだけど、AST をいじくるという地獄の様な仕様になってしまってるので、そうならないように祈るばかりです。… "
Ryou Ezoeさんのツイート: "C++で策定中の静的リフレクション機能は、ソースコード情報をコンパイル時処理で得るだけではなく、改変するという機能もセット。… "
島鉄雄さんのツイート: "了解です!説明ありがとうございました。… "

パターンマッチの網羅性検査の仕様案

ケケモコソカメニハさんはTwitterを使っています 「@gogo_gaspard @wraith13 @mandel59 到達しないコードに警告を出してくれるコンパイラは大概パターン漏れにも警告出してくれる気がしますので、逆にdefaultを書いていると要素を追加した時に警告が握りつぶされて困ることないですか」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/jdau702kNX C++のパターンマッチ(の網羅性検査の仕様案;5節)でこの話があって、はは〜と思ったの思い出した。C++なのでenumの外の値は来得るので防衛的default書きたくなるが、それで網羅性検査が無効になるは困るので、ハックで避けるか網羅性に寄与しないdefaultみたいな構文いれるか」 / Twitter
Exhaustiveness Checking for Pattern Matching - p2211r0.pdf

std::unreachable()

FadisさんはTwitterを使っています 「C++23ではコード上のある位置に到達しない事を明示する関数std::unreachable() (P0627)が追加される。C++コンパイラは[[noreturn]]された関数が返る可能性がある場合警告を出すが、[[noreturn]]でない絶対返らない関数を呼んでいる場合コンパイラには判断がつかず警告が出る https://t.co/l4ctAuj6wL」 / Twitter
p0627r6.pdf
FadisさんはTwitterを使っています 「[[noreturn]]はC++の機能なので、戻ってこないC言語の関数には[[noreturn]]は付いていない。このような場合に関数の呼び出しの後でstd::unreachable()を呼ぶと、コンパイラはstd::unreachable()に到達する事は決して無い(=そこに分岐してこないかそこまでのいずれかの処理が返らない)と解釈する」 / Twitter
FadisさんはTwitterを使っています 「面白いのはstd::unreachable()の定義で、この関数は「必ず未定義動作になる」事が保証される。C++ではある条件でコードを実行した結果未定義動作になる場合、コンパイラはそのコードの実行時にそのような条件が決して成立しないと考えて良い事になっている(N4860 §4.1.1-5) https://t.co/wlccdE614g」 / Twitter
C++ Draft International Standard - N4860.pdf
FadisさんはTwitterを使っています 「直前の関数が返ったらstd::unreachable()が実行される(=未定義動作になる)のであれば、直前の関数が返ることは決して無いと判断できる。このため複数のコンパイラで独自拡張で提供されているstd::unreachable()相当の機能が既に未定義動作になる関数として実装されており、標準はそれに合わせたらしい」 / Twitter
FadisさんはTwitterを使っています 「関数にある値が入ってきた場合に未定義動作となる場合、コンパイラは入力値がその値で入ってくる事は決して無いと考えて良い。これは最適化の過程で値がとりうる範囲を絞り込むための重要な情報として用いられる。このためstd::unreachable()は不要な条件分岐を削る為のヒントとしても活用が期待される」 / Twitter
FadisさんはTwitterを使っています 「libc++15からこのstd::unreachable()が利用可能になるらしい。Clangには元々同様の「必ず未定義動作になる」ビルトイン関数__builtin_unreachable()が用意されていたので、libc++の実装はこのビルトイン関数が利用可能な場合それを呼ぶだけのラッパーになっている https://t.co/vqort5jKoD」 / Twitter
llvm-project/unreachable.h at main · llvm/llvm-project

UCN

FadisさんはTwitterを使っています 「C++のuniversal-character-namesの定義をUnicodeのUAX#31に基づく物に変えようという提案がなされている。C++の識別子に絵文字を使った場合の不思議な振る舞い等をを解消するのが狙い。また提案には移植性のあるC++のコードにはNFCによる正規化を要求する事も盛り込まれている https://t.co/DgYWjxOV5I」 / Twitter
C++ Identifier Syntax using Unicode Standard Annex 31
FadisさんはTwitterを使っています 「C++11以降のC++では識別子にUnicode文字を使う事ができる。ただ識別子である以上制御文字等を好き放題使われても困るので、識別子に使えるUnicode文字を定める必要があった。この機能が提案された当時Unicodeには丁度良い文字の分類が無かった為、C++の規格には使える文字の範囲が全て列挙されている」 / Twitter
FadisさんはTwitterを使っています 「このリストがuniversal-character-namesだが、Unicodeは膨大なので実際には入っていないと困る文字がこの範囲に入っていなかったり、入っているべきではない文字が含まれていたり、比較的最近Unicodeに追加された絵文字等はダメだったりするなど「ちゃんと調べないと使える文字かわからん」状態だった」 / Twitter
FadisさんはTwitterを使っています 「UAX#31はUnicodeの文字のうち識別子に使うのに適している文字のグループをUnicode側が定めた物で、提案はこれを使ってuniversal-character-namesをID_Startまたは_から始まりXID_Continueが0個以上続く物、と定義し直し、リストの問題を解消すると共にC++の規格が最新のUnicodeに追従する必要をなくす」 / Twitter
FadisさんはTwitterを使っています 「現行のC++ではUnicode絵文字の一部だけが識別子に使える状態になっているが、提案されている変更では全ての絵文字が使えなくなる。使えなくする側に倒したのは、絵文字にはEmoji Modifier Sequence等のややこしいルールがあり、C++がこれらをどう扱うかについてはより慎重な議論が必要だかららしい」 / Twitter
FadisさんはTwitterを使っています 「で、ここのgccの実装状況によると、gcc-12以上なら-std=c++2bが指定されている場合に識別子に使えるUnicode文字が新しく提案されている物になるらしい https://t.co/XPytv0cVgX」 / Twitter
C++ Standards Support in GCC - GNU Project
FadisさんはTwitterを使っています 「仮にEmoji Modifier Sequencesを認めるとすると、肌の色が異なる👋は同じ識別子と見做されるべきなのか、違う識別子と見做されるべきなのか、みたいな問題が出てくるもんな…」 / Twitter

blog

Designated Initialization @ C++ - yohhoyの日記
C++20 Contract - in neuro
[C++]さらに出来るようになったconstexpr(C++20) - 地面を見下ろす少年の足蹴にされる私
static variableの初期化順序 - in neuro
コンセプトのパラメータ置換失敗はハードエラーではない - yohhoyの日記
Static Initialization Order Fiasco - in neuro
[C++]Boost.PFRの実装の解説のような。 - 賢朽脳瘏
コンセプト制約式の包摂関係とオーバーロード解決 - yohhoyの日記
WG14 redirect service - yohhoyの日記
WG21 redirect service - yohhoyの日記
[C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私
[C++]コンセプトの5景 - 地面を見下ろす少年の足蹴にされる私
C++ 規格書 - C++ の歩き方 | cppmap
C++23 の新機能 - C++ の歩き方 | cppmap
Taku KudoさんはTwitterを使っています 「auto (型推論) の多用は単に怠け者と勘違いされがちだけど、暗黙の型変換が動くのではといった余計な詮索が入り、いまとなっては左辺に型を書くのは読みにくく感じる。議論の余地はあるが、AAAスタイルで書きたい。https://t.co/b6ncBDWpKu」 / Twitter
GotW #94 Solution: AAA Style (Almost Always Auto) – Sutter’s Mill
Eigen: Common pitfalls
本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
seyko2/cfront-3: self education and historical research of the C++ compiler cfront v3
1 << 31 == ? - yohhoyの日記
おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
可変長テンプレートでもstd::source_locationを使いたい! - in neuro
C++のiostreamの<<を導入したのはストラウストラップ - Arantium Maestum

Qiita

C++20便利機能の紹介:自動joinスレッドと停止機構 std::jthread, stop_token - Qiita
C++20コルーチンで遊ぶ with OpenSiv3D - Qiita
C++20コンセプト入門以前 - Qiita
C++コルーチン拡張メモ - Qiita
トライグラフが廃止だって??! - Qiita
mod_poppoさんはTwitterを使っています 「C++のエラーメッセージの改善のために本当に必要だったのはコンセプトではなく、アドホックなオーバーロードの廃止だったのか……?」 / Twitter
C++20コンセプト時代のエラーメッセージとの付き合い方 - Qiita

Twitter

histric

histric-1

Fadisさんのツイート: "Haskellを学んできたマンはしばしばC++で>>=をオーバーロードして関数を繋ぎたがるが、大変残念な事にC++の>>=は右結合なので、ストレートに実装した場合その関数は期待した順序で実行されない"
でちまるさん(実際かわいい)さんのツイート: "なので<<=を使えば全て解決する… "
Fadisさんのツイート: "C++20で符号付き整数の表現が規格で定まった事でC++17まであった不思議仕様「符号無しを符号付きに変換すると2の補数表現の値が得られるが、符号付きを符号無しに変換した結果は実装依存(n4659 §7.8)」がC++20では「整数型は他の整数型に変換できる(n4800 §7.3.8)」だけになったのは大きい"
Fadisさんのツイート: "Unicodeでは大文字小文字の対応がある文字はどれかが規格で定められていて、全角アルファベット等も含まれている。ここに大文字小文字を区別しない古典的なファイルシステムが合わさると、UTF-8のファイル名はascii外の文字でも大文字小文字を区別しないべきではという悪魔のproposalが誕生するらしい"
Fadisさんのツイート: "C++20のconceptは少なくとも言語自体にとっては「boolを返すメタ関数をconceptと一目でわかる書き方で書く方法」と「そのメタ関数を使ってconceptと一目でわかる書き方でSFINAEする方法」のセットだから従来のC++から大きな変化ではないよ。標準ライブラリ側はこれを活用して大きく変わるけど"
FadisさんはTwitterを使っています: 「C言語のポインタは幅広い用途で使えるが、その万能さこそが静的型付け言語のチェックを甘くする原因になる。だからC++ではポインタの用途の一部だけを満たす参照やoptional、スマートポインタ等が提供されていて、ポインタはどうしてもポインタの万能さが必要な時にやむなく使う物になっている」 / Twitter
FadisさんはTwitterを使っています: 「gcc10からC++20のコルーチンの試験的なサポートが入るらしい。コルーチンは特定の位置で実行を止め、後で続きから実行ができるような関数で、非同期処理をまるで同期のような読みやすい形で書く、無限に値の列を吐き出す関数を作る、といった使い方ができる https://t.co/kXoubQDT0M」 / Twitter
Experimental Support For C++20 Coroutines Has Landed In GCC 10 - Phoronix
セクスィ・ナカナカピエロさんはTwitterを使っています: 「@fadis_ @adhara_mathphys Pythonでいうgenerator(yield文)みたいなやつですか?」 / Twitter
FadisさんはTwitterを使っています: 「@NakanakaPierrot yieldのようなものをC++で実装するために使うことはできますが、コルーチン自体の返り値はIterableではありません。コルーチンはPythonで言うyieldやasync/awaitといった物をライブラリで実現するための土台となる機能です」 / Twitter
FadisさんはTwitterを使っています: 「コルーチンには「コルーチンから呼んだ関数がyieldしたらコルーチンの呼び出し元まで戻る(=スタックを丸ごと保存する)」stackfulと「コルーチンから呼んだ関数がyieldしてはいけない(=コルーチンのローカル変数だけ保存する)」stacklessの2種類があって、C++の言語機能に入ったのは後者」 / Twitter
島鉄雄さんはTwitterを使っています: 「C++ の場合は A を継承した B と C が有って、B と C を継承した D は A を2つ持つ事になって人間が混乱するってのがあって良くないのだろう。(コンパイラは曖昧な時はエラーにするので混乱しない) なので、仮想継承を使う事になるけど、そうすると仮想関数呼び出しがかなり遅くなるというのがある。 https://t.co/fh1ub7l2zu」 / Twitter
mattn and 100 othersさんはTwitterを使っています: 「オブジェクト指向じゃなく多重継承が良くないよねって言われてるのに「オブジェクト指向は悪」って言ってるの見るとモヤモヤする。そもそもオブジェクト指向のコンセプトに継承とか無い気がするけど。」 / Twitter
島鉄雄さんはTwitterを使っています: 「仮想継承時の仮想関数呼び出しがどれだけ遅くなるか、ベンチマークしてみた。 この状況だと倍遅くなった。(正しい計測コードになってるかは若干不安が有るが…) https://t.co/4qI3IglOfr https://t.co/vbUPt2sZom」 / Twitter
仮想継承時の仮想関数呼び出しのベンチマーク
7594591200220899443さんはTwitterを使っています 「ところで四半世紀前ならいざしらず今となってはC++はCの上位互換でもなんでもないわけだけれど、じゃあ具体的にどこのへんが違うんですかというのはたとえば以下のレポジトリによくまとまっている。 https://t.co/BT5DWTcRyn」 / Twitter
shafik/determine_c_or_cpp: Determine programatically C from C++ as well as various versions
FadisさんはTwitterを使っています 「もう1つの大きな新機能coroutineも言語機能としては入ったけど、言語が提供するのはstacklessコルーチンなので、現状どこからでも気軽にyield出来るstackfulなコルーチンが欲しかったら「気合で作れ」という修羅の道になっている。C++23も、大きな変化になる気がする」 / Twitter
yohさんはTwitterを使っています 「d=std::move(s) データ取出し後にはもう興味がない(実際にはデータが残ってることもある) / d=std::exchange(s, {}) 確実にデータ取出し&クリアしておきたい みたいなニュアンスの違いが」 / Twitter
にゃっほい屋さんはTwitterを使っています 「C++17の畳み込み式を使ったらもうC++14には戻れない。再帰でやるのに比べると圧倒的にコードが読みやすい。ただVisual Studio 2017だとテンプレートの&lt;&gt;の中で畳み込み式をやろうとするとエラーになってしまうのが残念。2019では直ってるらしいけど。」 / Twitter
ぬるぽへさんはTwitterを使っています 「C++のベストプラクティスにJSと同じで可能ならばすべてconstを付けようというものがあるんですが、(ついさっきまで忘れてた、Effective C++参照)、一方でmoveのためにconstを付けてはいけない場所というものもあって大変だ」 / Twitter
キノコになりたい🍄さんはTwitterを使っています 「暗黙のムーブ、returnしたい暗黙のムーブ対象オブジェクト(ローカル変数の値or右辺値参照)をすべて右辺値として戻り値型を構築するためのオーバーロード解決にかけて、結果ムーブコンストラクタ等が選択されれば自動ムーブされる なんだ簡単じゃん()」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最新C++でもスマートな解決は無いのだっけ…? (const/non-const operator [] が混在すると(non-const object に対しては)常に non-const operator[] が選ばれる問題) https://t.co/6udj1CuXI9」 / Twitter
c++ - Force compiler to choose const operator overload - Stack Overflow
SODA NoriyukiさんはTwitterを使っています 「C++言語の作者であるStroustrupが「int* foo;」のように型名に寄せて書く派で、そのせいで広まったのよね。 でも抽象構文木的には「int *foo;」的に解釈されてるわけで(「int* foo, bar;」がどう解釈されるかを考えても明らか)、誤解を招くので昔から嫌い…」 / Twitter
masaniwa❕❗⭐さんはTwitterを使っています 「これは完全に偏見なんだけど、C++でint* hogeとかint&amp; hageとか書く人は初心者みたいなイメージある」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「1988年刊の最初の「プログラミング言語C++」(もちろん著者はStroustrup)の時点で既に「int* foo;」って書き方をしている。 C言語風の構文規則が嫌いなら(実際C言語の「*」演算子の構文には問題がある)、違う文法を定義すればいいのに… 言語の作者なわけだし…」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「thisを明示的に引数として書けるのはもっとはやくにやるべきだった。cv-qualifierとかref-qualifierみたいなクソみたいな特殊な文法を生み出す前にやれただろうに。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C++でstd::moveをちゃんと使うために、無駄な構造体・クラスのコピーを減らそうとコピーコンストラクタを=deleteしていくと、アホみたいにコピーしてるところ見つかるので、move or copyを明示的に使うRustはわかりやすくて便利。人間は暗黙的な変換に慣れすぎてる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C++でPromise的なコードや現在のスレッドやバックグラウンドスレッドに小さなタスクを作るときにラムダ多用することになるけど、暗黙的なコピーになっちゃうので一見わからん」 / Twitter

7594591200220899443さんはTwitterを使っています 「https://t.co/llp4igzqlo 今時C++例外なんて時代遅れですよねーみたいな話。ABIがいけてないからunwindがマルチスレッドにできないとかへーそうなんだという感じ」 / Twitter
P2544R0: C++ exceptions are becoming more and more problematic
でちまるさん(実際かわいい)さんはTwitterを使っています 「C++例外は「自爆するしかねえ」ってときに遺言を残すために使うようであって,よその言語みたいにセーフlongjmpとして使おうとするのは誤りやろがい,という定番の話が久々に登場」 / Twitter
FadisさんはTwitterを使っています 「正常系のループの中でジャンプ目的で飛んでる例外をgdbが拾って発狂する経験を経て人は例外を正しく使おうという気持ちを身につける」 / Twitter
c++ - How to get the actual type of a template typed class member with Clang? - Stack Overflow
algorithm - cpprefjp C++日本語リファレンス
にゃっほい屋さんはTwitterを使っています 「たしかstd::variantのインデックスでのgetのための処理。コンパイル時に処理される部分なので、実行時の処理負荷はどのみち0なのだけれど、コンパイル時間短縮のためにコンパイル時バイナリサーチとかしている。すごいけどstd::variantに64個とか型を指定することあるんだろうか。」 / Twitter
てゃいのさんはTwitterを使っています 「見てはいけない部分を見てしまった... https://t.co/98rKsdKLT6」 / Twitter
にゃっほい屋さんはTwitterを使っています 「バイナリサーチじゃないか。64、32、16のようにまとめて処理することで、効率的に再帰回数を少なくしている。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++はCから派生したにもかかわらず、まったく違う哲学の言語になった。C開発者から見ると、C++は頭がおかしい。一方それ以外の言語の開発者からは、Cは「ABI記述言語」に見えるのだ。Cはプログラマを信頼するのに対して、C++はコンパイラを信頼する言語といえるかもしれない。 https://t.co/Ae8j25xmvH」 / Twitter
The problem with C | cor3ntin
FadisさんはTwitterを使っています 「P2036R3: Change scope of lambda trailing-return-type 従来のC++では後置の戻り値型を使っても直前に書かれたラムダのキャプチャが戻り値の型の決定に用いられないため、decltype等で型を決定した場合にキャプチャより遠くで宣言された値が使われるのが罠いから変える提案 https://t.co/BHMi5BdrKt」 / Twitter
Change scope of lambda trailing-return-type

ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP
C++20 - cpprefjp C++日本語リファレンス
is_pod - cpprefjp C++日本語リファレンス
algorithm - cpprefjp C++日本語リファレンス
符号付き整数型が2の補数表現であることを規定 - cpprefjp C++日本語リファレンス
C++20は最終版に、C++23がスターティングブロックに
オープン化が進むC++の現状と展望 - Speaker Deck
ISO C++ Standards Committee
MSVC C++20 and the /std:c++20 Switch | C++ Team Blog
14882: Contents

man

付録 C ISO/IEC C 99 の処理系定義の動作 (Sun Studio 12: C ユーザーズガイド)
6.12 互換型と複合型 (Sun Studio 12: C ユーザーズガイド)
GCC online documentation - GNU Project - Free Software Foundation (FSF)
C Extensions - Using the GNU Compiler Collection (GCC)
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能

きじねこ

第10回 翻訳フェーズ | 株式会社きじねこ
第9回 浮動小数点数と実数 | 株式会社きじねこ
[迷信] 0xe-0xe はゼロ | 株式会社きじねこ
[C99] 第2回 オブジェクトの宣言 | 株式会社きじねこ
[C99] 第11回 その他、細部のちがい | 株式会社きじねこ
[C99] 第9回 リテラル | 株式会社きじねこ
[C99] 第7回 修飾子と記憶クラス指定子 | 株式会社きじねこ
[C99] 第3回 関数 | 株式会社きじねこ
[C99] 第5回 型と型変換 | 株式会社きじねこ
[迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ

本の虫

本の虫: 最近のC言語の配列
本の虫: fcloseはリソース解放を失敗しない
本の虫: CとC++の違い:式編
本の虫: C++03とC++11の違い: 式編
本の虫: C++で、(a/b)*b + a%b != aとなる例

Twitter

C の auto/ラムダの提案

だめぽラボ@技術書典9さんはTwitterを使っています 「C言語のWG14の1月の文書が出ておるな。C++ライクなautoやラムダ式を入れようという提案がある https://t.co/DIxPvxXNrO」 / Twitter
WG 14 Document log
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にはstd::functionもテンプレート関数もないし、キャプチャーを持つラムダを他の関数に渡す手段はないのかな?(キャプチャーがなければ関数ポインターに変換できる)(変数への格納はautoがあればできる)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「type-generic lambdaも入れば「キャプチャーを持つ関数を他の関数に渡す」ことができるようになったりするのかな?」 / Twitter
FadisさんはTwitterを使っています 「括弧が多すぎることに定評のあるC++のラムダ式から関数の引数が空の場合に()を省略できるようにする提案がなされていて、これがC++23で標準に入りそうな雰囲気だからgcc 11とclang 13から試験的に使えるようになってるらしい https://t.co/ijFBsYQTEZ」 / Twitter
P1102R2: Down with ()!
FadisさんはTwitterを使っています 「現行のC++でも関数にmutable等の修飾が何もついていない場合()の省略が許容されているけど、この提案では修飾が付いていても引数が空なら省略していいじゃん、って話っぽい」 / Twitter

配列

hsjoihsさんのツイート: "実は、アドレスも型も一致しているのにポインタとしては別、という状況は普通にあり得たりします。… "
hsjoihsさんのツイート: "過去にブログに書いてました。「ちなみに、話が逸れますが、アドレスが同一で型が同一でもポインタとして同一であるとは限りません。」のところです。このことを知らなかったことに由来するバグの話も。 https://t.co/AfS0fgeCQN… "
C(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diary
yoh2さんのツイート: "int d[4][8] で、d[0][10] が d[1][2] と同じにならないことがあるというのは、 &d[0][10] と &d[1][2] が同一アドレス、同一型で結果が異なるというより、 &d[0][10] というアドレス自体が UB により算出不能と考えるべきだと思います。 うーん、言葉だけの問題かなぁ。… https://t.co/K66AFBX7D5"
hsjoihsさんのツイート: "「アドレス値が同じで共に合法なポインタ」という条件を満たす、↓に書いてある「配列の最終要素の次を指すポインタ」vs.「その配列にたまたま隣り合って置かれている配列の先頭要素へのポインタ」とかのほうがよい例かもですね https://t.co/WhmcFM5kYd… https://t.co/JXaaQEYd8M"
Pointers Are Complicated, or: What's in a Byte?
デダルス・ユメノさんのツイート: "「異なるポインタ」の意味するところが曖昧なんですが、その両者は==で比較すれば真になるわけですよね。あれ、もしかしてコンパイラ最適化によって(実行時に本当に同じアドレス値になるとしても)偽になることもある?… "
Shinya Katoさんのツイート: "ubを踏んでいるのでそもそも同じアドレスになる保証がされていないというだけで、実行時に運よく同じアドレスになれば真になるんじゃないですかね?… "
置き引きにあったマヌケな鳥頭さんのツイート: "one past the end ポインタと、隙間なく置かれている次のオブジェクトへのポインタは == で true になるとC言語の規格に明確に書かれていますね… もちろん one past the end ポインタへの関節参照は UB なので、同じはずなのに違うポインタってことになるのかな…… https://t.co/H4VwVPHfrW"

オブジェクトの初期化

Kazuho Okuさんのツイート: "struct の初期化が = {}; じゃダメだとすると {0} か {NULL} かはともかく {{0}} みたいなパターンはちゃんと考えて書かないとダメなのか。めんどくさ"
Fadisさんのツイート: "グローバル変数の0初期化、規格がどうなってるか気になって見たんだけどC11の規格読む限り§5.1.2で「静的に確保されたオブジェクトプログラムの開始前に初期値で初期化される」って書かれてるけど整数型の初期値とは0の事であるとはどこにも書かれてないように見える…"
Fadisさんのツイート: "§6.7.9の10項に静的またはスレッドローカルなストレージを持つ算術型の値はゼロに初期化しろよって書かれてた。よかった、グローバル変数の初期値0はやっぱり期待しても良かったんだ"
ちゃーしゅーねこさんのツイート: "C言語の規格としては未初期化の変数が0ないしnullになるとなっているとしても、それがbssに置かれるかは別問題じゃないの知らんけど"
黄前 久美子さんのツイート: "C 言語の規格として,static や グローバル変数みたいな静的に確保される変数は必ず 0-fill されなければならなくて,ELF の bss はそのために生まれたセクション,というのを正確さを欠いて書いたけどまあそういうことです。… "
黄前 久美子さんのツイート: "普通にスタックに乗る変数は初期化しないと単なる未定義値… "
Yusuke Endohさんのツイート: "次の C プログラムが 0 を出力することは保証される? typedef struct foo { int a; int b; } foo; int main() { foo v[1] = {{0, }}; printf("%d\n", v->b); }"
Yusuke Endohさんのツイート: "何人かに「される」という回答をもらったので仕様書見たら、確かにされるようでした(途中まで初期化してあったら残りは 0 初期化されるらしい)。ありがとうございました… "

register 変数

yoh2さんのツイート: "のっけから濃いのキター! 結論から言うとエラーになるのが正解かと。ISO/IEC 9899:2011 6.7 にある脚注121でアドレスが取れない例として配列→アドレスの暗黙変換が挙げられてます。 #質問箱 #peing_yoh2_sdj… https://t.co/k6Om9ahoBF"
yoh2さんのツイート: "ところで、手持ちの環境では gcc 4.5.4, 4.9.3, 5.4.0, 6.4.0 でエラーに。clang 3.9.1 ではエラーにならず。"

C99 プロトタイプ宣言

Kazuho Okuさんのツイート: "えっCで引数にnon-null制約を宣言すふ方法があるってこと?すごい便利じゃん… "
Keigo Imaiさんのツイート: "Modern C (pdf) https://t.co/fCcGkR0zpr"
Modern C
Keigo Imaiさんのツイート: "puts のプロトタイプ宣言: int puts(char const s[static 1]); この static is 何"
Keigo Imaiさんのツイート: "長さゼロの配列って何だっけと思ったのですが(たしか構造体の最後のフィールドでのみ宣言可能?)、 それとは別に NULL が渡されるのを排除するために static 1 が使える、とのこと。 https://t.co/BjczgzaW1B @objectxplosive"
A nice, little known C feature: Static array indices in parameter declarations
KUDO Muttonski Takashiさんのツイート: "知らなかった、C99 付いていけてないな。… "
Kazuho Okuさんのツイート: "つまり、引数の型が type* ならnullable pointerで type [static 1] ならnon-nullable pointer ってこと"
Kazuho Okuさんのツイート: "とか言ってたら、自分の管理してるコードで `[static NN]` が使われてて、それをC89互換性のために廃止する PR が来てたことに気づいた"
Rui Ueyamaさんのツイート: "C89はさすがにもうよくないですか。… "
Kazuho Okuさんのツイート: "正確にいうと、「C++にないC99の機能」には依存したくないという文脈なんだろうと思います。Visual Studio... https://t.co/WXfdMh7y1e… "
Reader Q&A: What about VC++ and C99? | Sutter’s Mill
Rui Ueyamaさんのツイート: "それはまっとうな要望な気がしますね。… "
Keigo Imaiさんのツイート: "あまり深追いはしてくれない模様ですね… https://t.co/GTKNgfflAv… "
ryochackさんのツイート: "うーん、当然ながらポインタ渡しでは検出してくれないのでやらないよりはマシかな、くらいの感覚。配列のアドレスをそのまま渡すってケースは結構少ないんだよなぁ。 https://t.co/UwX1zjBE7R"
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

void 引数

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "ANSI Cより前の話が、もはや忘れられつつある昔話であることを実感する。 / “【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報” https://t.co/OYjiCJd8Mo"
【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報
AoiMoe a.k.aしお兄Pさんのツイート: "ちなみに「引数が無い関数は f(void) と書いたほうがいい」ではなくて、「関数プロトタイプにおいて、引数が無い関数であることを明示したければ f(void) と書かなければならない」だからね。"
SODA Noriyukiさんのツイート: "1980年代後半~1990年代にC書いてた人間には完全に常識だったので、時の流れを痛感する。"

後置演算子

やねうら王さんのツイート: "私にはコンパイラの気持ちはわからないが、コンパイラ作成者の気持ちはわかるので、returnと後置インクリメントを併用したときに適切なコードを生成するのが難しいことはわかるし、当時はそういう地雷を踏みそうなコードはなるべく避けながらプログラムを書くのが常識であった。(と思う)"
FFFumihiro MMMatsuiさんのツイート: "あー確かにコード生成のやり方によってはスタックに積んで即 ret で飛んで直後の加算が実行されないとかのバグありそう"
FFFumihiro MMMatsuiさんのツイート: "後置インクリメントは式の中では加算前の値を見せつつその後に変数が加算されてないといけないから演算子一個なのに吐くコードがちょっと複雑"
FFFumihiro MMMatsuiさんのツイート: "なんであれ演算子にしたんだろう"
FFFumihiro MMMatsuiさんのツイート: "あれが演算子であるために副作用完了点まわりで未定義動作のコードが結構たくさん生産されてるよなたぶん"

式の評価など

まあぼ@cubさんのツイート: "つまり「添字演算子を評価した結果の"値"にアドレス演算子を評価できるのはなぜか」ということか。言語仕様そのままだとコンパイラが作れないってことだよね。指摘した人しゅごい。"
Masaki⊣Haraさんのツイート: "型aの値を単に横にn個並べたものが配列で、アドレスであって参照先が型aであると見なせるものがポインタというイメージ (つまりぜんぜん違う) 似ているように見えるのは、配列のrvalueが特定の文脈で自動的に配列の先頭へのポインタのlvalueに自動変換されるから という認識"
るくすさんのツイート: "まあ別にローカルスコープ内でしか使わない変数をchar *s=" "としようがchar s[]=" "としようが、ホットスポットでも無い限りキャッシュ効率がどうのとかでも無いんだけど、前者の書き方は普通にイラッとくる"
なぎせ ゆうきさんのツイート: "int i = -(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-5; ひゃっほーい… "
りあね xa1 ver 21.5.0さんのツイート: "CastExpressionはUnaryExpressionNotPlusMinusの一種で、それはUnaryExpressionの一種。前置演算子やプリミティブ型へのキャスト演算子の右にはUnaryExpressionが来れるので、キャストと前置演算子は同じ優先度のはず。「-(int)-5」が通ると思う"
Rui Ueyamaさんのツイート: "うわー、C言語初心者レベルで勘違いしてた。xが配列のとき&xもxもxのアドレスなんだった。&xなんてか書かないから忘れてたわ。フルスクラッチからCコンパイラを書いたことすらあるのに。"

水島宏太(ゆる糖質制限)さんのツイート: "一つ提案してみたいのだが、C, Java, Ruby, Python, 等の値渡ししかない言語で、そもそも参照渡しという用語が登場する意味がないので、それらの入門書において、値渡し/参照渡しという用語を使うこと自体をやめてみてはと思う。"
Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonの %演算子は (Cと違って) ちゃんと負の値に対しても正のモジュロを返す (-1%3 == 2)。これに対してCの%はモジュロでなく「剰余」なので (-1%3 == -1)、インデックスの計算などに使えない場面が存在する。」 / Twitter
John CarmackさんはTwitterを使っています 「I only just noticed that python, unlike C, had the mod operator always return a positive number, even if the first argument is negative, which is great for wrapping buffers! Who ever wanted negative mod results?」 / Twitter

CERT C

PRE

PRE05-C. 字句の結合や文字列化を行う際のマクロ置換動作をよく理解する
PRE10-C. 複数の文からなるマクロは do-while ループで包む
PRE32-C. マクロの引数内で前処理指令を使用しない

MSC

MSC06-C. コンパイラの最適化に注意する
MSC24-C. 非推奨関数や時代遅れの関数を使用しない
MSC15-C. 未定義の動作に依存しない

ARR

ARR02-C. 初期化子が暗黙的にサイズを定義する場合であっても、配列のサイズは明示的に指定する
ARR30-C. 境界外を指すポインタや配列添字を生成したり使用したりしない

DCL

DCL12-C. 抽象データ型は opaque な型を使って実装する
DCL13-C. 関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
DCL21-C. 複合リテラルの記憶域を理解する

MEM

MEM02-C. メモリ割り当て関数の結果は、割り当てた型へのポインタに即座にキャストする
MEM03-C. 再利用可能なリソースに格納された機密情報は消去する
MEM04-C. サイズ 0 のメモリ割り当てを行わない
MEM07-C. calloc() の引数は乗算した結果がラップアラウンドしないようにする
MEM08-C. realloc() は動的に割り当てられた配列のサイズ変更にのみ使用する
MEM09-C. メモリ割り当て関数がメモリを初期化すると仮定しない
MEM36-C. realloc() 関数呼び出しでオブジェクトのアラインメントを変更しない

STR

STR05-C. 文字列リテラルの参照には const へのポインタを使用する
STR11-C. 文字列リテラルで初期化される文字配列のサイズを指定しない
STR30-C. 文字列リテラルを変更しない
STR32-C. 文字列を引数にとるライブラリ関数に null 終端されていない文字配列を渡さない

EXP

EXP34-C. null ポインタを参照しない
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
EXP30-C. 副作用が発生する式の評価順序に依存しない

FIO

FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

INT

INT09-C. 列挙定数が一意の値に対応することを保証する
INT10-C. % 演算子を使用する際、結果の剰余が正であると想定しない
INT33-C. 除算および剰余演算がゼロ除算エラーを引き起こさないことを保証する
INT34-C. 負のビット数のシフトやオペランドのビット数以上のシフトを行わない
INT02-C. 整数変換のルールを理解する

ERR

ERR30-C. 関数を呼び出す前に errno をゼロに初期化し、関数の異常終了時にのみ errno を参照する
ERR33-C. 標準ライブラリ関数のエラーを検出し対処する

FLP

FLP00-C. 浮動小数点数の限界を理解する
FLP03-C. 浮動小数点エラーを検知して処理する
FLP34-C. 浮動小数点の型変換は変換後の型の範囲に収まるようにする
isgreater - cppreference.com
isless - cppreference.com

fno-delete-null-pointer-checks

KMC Staff Blog:fno-delete-null-pointer-checks
第5回 Linuxのカーネルに潜む脆弱性をつぶすパッチ
JVNVU#162289: ある種の範囲チェックを破棄するC コンパイラの最適化の問題
情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構
Using the GNU Compiler Collection (GCC): Optimize Options
[llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang

fread

_sopen_s、_wsopen_s
_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32
_fdopen、_wfdopen
fread
fclose、_fcloseall
Man page of FREAD
FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
CERT C コーディングスタンダード
実例で学ぶ脆弱性対策コーディング

Entry Point

TLS(DLL)

Fiber Local Storage

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
Fibers - Windows applications | Microsoft Docs
Be aware: FLS-Fiber Local Storage – Slava Oks's WebLog
Fiber local storage - 1.66.0
windows - FLS vs TLS, can I use Fiber Local Storage in place of TLS? - Stack Overflow
実行時メッセージ「JMP0015I-U」のシステムからのエラーコードに「0x45A」が通知されます。
Fiber Local Storage - How is Fiber Local Storage abbreviated?
FLS (Fiber Local Storage) limitations in Windows
How does one emulate c++11 thread_local but for fibers (Fiber Local Storage)? · Issue #179 · boostorg/fiber
Fiber (computer science) - Wikipedia
Windows 10プレビュー、“Cドライブ”への圧迫を軽減する機能 - PC Watch

スレッド ローカル ストレージ (TLS: Thread Local Storage)
DLL_THREAD_ATTACHで割り当たTLSをDLL_PROCESS_DETACHで解放するには?
スレッド局所記憶 - Wikipedia
6.6 .tlsセクション
TLS Callbacks - セキュリティごった煮ブログ|ネットエージェント
DLLのマルチスレッド対応
第V部~マクロから呼び出すDLLの作り方
__thread で指定した変数の領域はスレッド終了時に開放されるのか? -> できるだけ使いまわすようです - Qiita
スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)
IBM Knowledge Center - __thread ストレージ・クラス指定子
Using the GNU Compiler Collection (GCC)
スレッドローカルストレージ - cpprefjp C++日本語リファレンス
Thread local storage - 兼雑記
__thread、マルチスレッド変数
c - How does the gcc `__thread` work? - Stack Overflow

プログラムはどこから始まるの? ~ WinMain とは? - Web/DB プログラミング徹底解説
main関数 ‐ 通信用語の基礎知識
スタートアップルーチン ‐ 通信用語の基礎知識
-ENTRY (Entry-Point Symbol)
Assembler/ForFun(x86_32)/06, 32bit Windows with NASM - Glamenv-Septzen.net
winapi - C++ Windows return vs ExitProcess - Stack Overflow
x64 アセンブリーの概要 | iSUS
x64 Architecture | Microsoft Docs
If you return from the main thread, does the process exit? – The Old New Thing
Assembly Programming on x86-64 Linux (04)
プログラミングノート - x86
アセンブラに手を出してみる - Qiita
関数実行の流れを紐解く(弊研究室の某課題について考える2日目) - ごちうさ民の覚え書き
C - CreateThreadで指定するスタックサイズ(43694)|teratail
マルチスレッドのWindowsプログラミングでは、スタックはどう扱われてい... - Yahoo!知恵袋
OSとプログラミング言語の関係 - 現在組み込み系のプログラムを学習中です。... - Yahoo!知恵袋
64ビット環境におけるリバースエンジニアリング - セキュリティごった煮ブログ|ネットエージェント
アレ用の何か
Fadisさんのツイート: "x86_64のABIでは%raxで返り値を返す為、C言語のmain関数でreturnしなかった場合%raxがステータスコードになる #kernelvm"
Fadisさんのツイート: "スタートアップルーチンの段階でスタックポインタの設定などを行う段階で%raxを使っており、ASLRでスタックポインタのアドレスが毎回変わる為毎回異なるステータスコードが帰ってくる #kernelvm"
Fadisさんのツイート: "ちなみにこれ、C++の場合規格でmain関数のreturnが省略された場合return 0;を書いたように振る舞う事が定められているから、C++としてコンパイルすると必ず0が返ると思う #kernelvm"

プリプロセッサ

mcpp

(macro-of-inline report) mcppという選択肢 - テストステ論
還暦過ぎても、こんなすごいプログラムが書ける: ホットコーナー
mcpp -- a portable C preprocessor with Validation Suite
h8liu/mcpp: A portable C/C++ preprocessor
www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html

本の虫

本の虫: Raw String Literalとプリプロセッサ
本の虫: C/C++で0xf+1は合法なのに0xe+1はコンパイルエラーになるのはなんで?
Shinya Katoさんのツイート: "pp-numberは全ての整数と浮動小数点の形式を内包していて、その形式に則って字句解析すると0xe-8は一つのpp-numberトークンになるはず で、プリプロセッサの処理が終わって値と型を特定するタイミングで整数表現としも浮動小数点としてもありえない0xe-8が出てきてエラーになるということだと思われる"
OS開発ゼミ担当 uchan_nosさんのツイート: "0xe-8は整数/浮動小数点数として解釈できないが,規格では字句解析の段階でpp-number(整数と浮動小数点数を表す)型のトークンになってしまい,後段で整数にも浮動小数点数にも解釈できずコンパイルエラーになる,という話だそうです.添字に浮動小数点数が使えない,というのは関係ない話ですね.… https://t.co/vh1fEHlaKa"
ぷりさんのツイート: "演算子の前後に空白を入れないのがダメなのはコンパイラによっては構文解析に失敗してコンパイルエラーになる場合があるためです。… "
ぷりさんのツイート: "a[0xe-8] とかいうコードを書くとエラーになるんですよ。… "
本の虫: なぜGCCのCプリプロセッサーはlinuxという名前のマクロ名を定義するのか
本の虫: cstdint.hのMIN/MAXマクロ

整数定数式

suzuki shingoさんのツイート: "C でコンパイル時に式が整数定数式か判断するマクロを考えた人がいるみたい。良くこんなの思いついたな » Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming https://t.co/pgOp6AR36O"
Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming
SODA Noriyukiさんのツイート: "非定数式xについて「(x) * 0L」をコンパイラが 0に最適化『できない』ことに依存しているので、コンパイラのバージョンに依存しそうだなと思ったら、gcc-4.4以前だと副作用のない整数式を、このマクロが誤って定数式と見なしてしまうことがスレッドの続きで指摘されてますね: https://t.co/OvdSHP2kTg… https://t.co/HDvdBk3igb"
SODA Noriyukiさんのツイート: "新しいバージョンのコンパイラの方が、最適化能力が落ちているように見えるのがなんか不思議… LLVM 8.1.0 では gcc-4.5以降と同じ結果でした。… "
前田敦司さんのツイート: "「(x) * 0L」を0に最適化したとしても,それはC99規格でいう「整数定数式」ではなく「0になるとわかっている整数式をvoid *にキャストしたもの」に過ぎず,sizeofの結果が異なるということのようです. https://t.co/rO4U40Ffqr… https://t.co/bqaKLblELW"
前田敦司さんのツイート: "あ,それは「0になる整数式」とはまた話が違って,「整数式を整数定数式扱いしちゃった」ってことですね.それは規格違反のバグということになるんでは.たしかにバグのあるバージョンなら動かない,ということはあるでしょうね.… "
前田敦司さんのツイート: "null pointer constant(npc)は「値が0である〈整数定数式〉をvoid*にキャストしたもの」と定義されていて https://t.co/VMHqNU2JYZ たとえば「変数 * 0L」は整数定数式でないのでnpcじゃない,ということですね.… https://t.co/JCZTcQxcoz"
前田敦司さんのツイート: "また,a?b:cで,bかcのどちらかがnpcで他方がポインタなら,結果はnpcでない方のポインタ型になる. そうでなくてどちらかがvoid*なら結果はvoid*になる,と書いてありました. https://t.co/LeYT6XZkml 6の最後.… https://t.co/p2RLZzkfpl"
前田敦司さんのツイート: "まさにこの仕様を用いて,1 ? ((void*)((x)*0L)) : (int *)… は  xが整数定数→ :の左はnpc → 全体は(int*)  xが整数定数でない→ :の左はnpcでないvoid* → 全体は(void*) となってるわけですね.… https://t.co/LU1OAnSGWk"
前田敦司さんのツイート: "補足: ・?:のポインタ型変換の仕様が肝なので,a?b:cの値がbかcかは関係ない.実際 (1 ? …)を(0?…)に変えても動きます. ・ 整数定数式はcaseラベル,(可変長でない)配列のサイズ,プリプロセッサディレクティブなどで使われ,処理系や最適化レベルによらず必ずコンパイル時に値が決まります.… https://t.co/L1dtyfPQYu"
KaiGai Koheiさんのツイート: "https://t.co/25XfMZpHnV PostgreSQLでintやfloatのプリミティブ型演算子のオーバーフローチェックって割とexpensiveなんだけど、ビルド環境によってはこーゆーの使ってもいいよね。(検算するよりキャリーフラグ見た方が軽い)"
Using the GNU Compiler Collection (GCC): Integer Overflow Builtins
Arithmetic overflow checks in C++ Core Check | Visual C++ Team Blog
c++ - How to detect integer overflow? - Stack Overflow
x64 (amd64) Intrinsics List | Microsoft Docs
__readeflags | Microsoft Docs
rL256686
Kirill Yukhin - Re: [PATCH i386] Introduce __readeflags () and __writeeflags () intrinsi

#pragma once 等

mod_poppoさんはTwitterを使っています 「最近のコンパイラーだとinclude guardを認識して2回目以降はファイルの読み込みをスキップするようになってなかったっけ」 / Twitter
mod_poppoさんはTwitterを使っています 「https://t.co/Wy6zofeANa "CPP optimizes even further. It remembers when a header file has a wrapper ‘#ifndef’. If a subsequent ‘#include’ specifies that header, and the macro in the ‘#ifndef’ is still defined, it does not bother to rescan the file at all."」 / Twitter
mod_poppoさんはTwitterを使っています 「#pragma onceみたいなやつをC言語に入れようとする直近の試み。識別子を与えると旧来のインクルードガードっぽく、与えないと(細かい挙動が実装依存の)#pragma onceっぽく振る舞う。なお否決されてC23には入らないらしい。 https://t.co/1QzQGNwTZw」 / Twitter
`#once`
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「include guard は一度ファイルを読んだ上で無視するのでオーバーヘッドがあるのだが、一方 pragma once も挙動が明確化というと怪しく……」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「pragma once の怪しさ、たとえば symlink や hard link や junction で別のパスの同じファイルを読んだらどうなる? などがある」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「インクルードガードとpragma once - にゃははー https://t.co/3jTcvxjqhv いい感じのページあったわ、これ読んで」 / Twitter
インクルードガードとpragma once - にゃははー
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「> また一部では#pragma onceは2回目の時プリプロセッサが展開を行おうとしないので早いみたいな記述も見受けられますが、現代のプリプロセッサではそんなことは百も承知で、if-defined-endifの流れを見つけると完全に省略する最適化をすでに実装しています*1。 そっかー……」 / Twitter

blog

最近プリプロセス時処理が楽しい - 茅の下
Kazuho's Weblog: pthread_once が嫌いすぎて再実装した話
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
__VA_ARGS__の引数をループするやつはなぜ動くのか - in neuro
C言語のマクロであんまり使わないけど(低レイヤプログラミングにおいて)猛烈に便利な演算子 - FPGA開発日記
#elifdefと#elifndef - yohhoyの日記
プログラマーの理想と現実 - C言語のテクニカルバグ—マクロの問題 | 株式会社創夢 — SOUM/misc
printf 用のマクロの話 - 兼雑記
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
プリプロセッサのトークン結合演算子「##」の仕様が不明 - satosystemsの日記

interface

mattnさんはTwitterを使っています 「C99 で interface を実現するライブラリ(ヘッダオンリー) / “GitHub - Hirrolot/interface99: Zero-boilerplate interfaces for C99” https://t.co/9mpldfb2My」 / Twitter
Hirrolot/interface99: Zero-boilerplate interfaces for C99
mattnさんはTwitterを使っています 「COM ぽさある。」 / Twitter

C++でCプリプロセッサを作ったり速くしたりしたお話
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
x3J11-86-196.pdf
cpp.algo.pdf
C言語/前処理指令 - Wikibooks
C/C++ プリプロセッサ リファレンス
Preprocessor Reference
How to remove lines added by default by the C preprocessor to the top of the output? - Stack Overflow
#include ディレクティブ (C/C++) | Microsoft Docs
Clarification Request Summary for C11
herumiさんはTwitterを使っています 「dirty hackが必要になって #define AAA aaa #if AAA == aaa void foo() {} #endif #undef AAA #define AAA bbb #if AAA == aaa void foo() {} #endif というようなコードを書いたらfoo()が二重定義のエラーになってしばらく悩んだ。よく考えたら確かにそうなる。マクロむずい。」 / Twitter
std::めるぽんさんはTwitterを使っています 「BOOST_PP_STRINGIZE が存在してる理由を知ってたおかげで原因不明の問題を解決できた。ほんとプリプロセッサの挙動怖いな…」 / Twitter
std::めるぽんさんはTwitterを使っています 「#define REGISTER(func) void func() { ((Func)dlsym(mod, #func))(); } REGISTER(foo); REGISTER(bar); みたいなことをした時に、foo や bar が実は #define で foo_v2 や bar_v2 みたいな別の名前になってた(しかも foo や bar 関数も dll 内に存在してる)って問題だった」 / Twitter
822823回マクロを展開するとGCCが死ぬ - Qiita
入谷 優さんはTwitterを使っています 「とあるマクロに与えた __VA_ARGS__ が単一引数として扱われて困っていたのですが、MSVC ではちょっとした回避策が必要になるのですね。マクロの展開順序について理解を深めなければ…… https://t.co/tzDtyubnWq」 / Twitter
visual c++ - MSVC doesn't expand __VA_ARGS__ correctly - Stack Overflow
C言語でよく定義するマクロまとめ - Qiita
Masaki HaraさんはTwitterを使っています 「しかしCのパーサーパイプラインはすごいよな。trigraph → line concat → pre-tokenize → preprocess → tokenize → parse ってなってるわけで……」 / Twitter

型名と関数名重複

根っこさんはTwitterを使っています 「C++で型名と関数名重複した場合、使用時、関数名が優先されるのか。型名の方を使いたいときの書きかたってないのかな(識別子変える以外で) なんかなかったっけ… https://t.co/LTuiU1seeo」 / Twitter
mmYYmmddさんはTwitterを使っています 「@nekko1119 struct 'hoge' is hidden by a non-type declaration of 'hoge' なるほどこうなるのか https://t.co/uhOGXqYzqz」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
根っこさんはTwitterを使っています 「@mmYYmmdd です。あー、めっちゃエラー文にstructつければいいって書いてありますね…」 / Twitter

型変換

punningの意味・用例|英辞郎 on the WEB:アルク
型変換
型変換
C/C++における整数型の昇格 - Qiita
C言語で暗黙の型変換が発生する16のパターン(+演算子の結果型5パターン) - Qiita
hikaliumさんのツイート: "え…整数の縮小変換って -Wall -Wpedantic -std=c11 つけていてもだめでさらに -Wconversion つけないと教えてくれないの?コンパイラさん、信じてたのに…(想定通りの値が出ないのでQEMUのソースまで読みに行った挙句の初歩的ミスだった)。… https://t.co/p9joqP2nqO"
herumiさんはTwitterを使っています: 「今日の気づき : clangで(unsigned int)(-2.0)はでたらめな値を返す。https://t.co/P0oktu52Br 未定義なのは知っていたけどx86環境なら(unsigned int)(-2)ぐらいになるだろう(こちらはvalid)と勝手に思っていた。VCはそうなった。gccだと0だった(バーションやオプションにもよる)。」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
herumiさんはTwitterを使っています: 「補足。clangだと-fsanitize=undefinedで実行時に「runtime error: -2 is outside the range of representable values of type 'unsigned int'」と怒ってくれる。 https://t.co/gQneIrIyuW」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さすがはclang…B.メイヤー先生の品質基準の一つ「ロバストネス性(仕様外領域の(なるべく安全な)グレードダウン)」みたいな発想は皆無(笑) なお、float f = 2.0; を(u_int)f; にキャストした場合は、他と同じ結果になる様子。 https://t.co/WMuDyQjmBH」 / Twitter
汎整数拡張 - Wikipedia

キャスト

Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「朝起きたら、Twitterがfj.comp.lang.cになっていた」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「記事読んでみたけど、インターフェースの記事の方が正しいですね。 不要なキャストを書くと、せっかく(弱いながらも)存在する型チェックが台無しになるってのが最大のデメリット。 不要なキャストは書くべきじゃないです。」 / Twitter
mattnさんはTwitterを使っています 「@n_soda 気になったのですが pseudo code で表して頂く事、可能でしょうか。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@mattn_jp 記事では関数プロトタイプ ER tk_wai_sem(ID smeid, INT cnt, TMO tmout); という関数に対し tk_wai_sem((ID)id, (INT)cnt, (TMO)tmout) のように無駄なキャストをつけて呼び出すことを批判してました。 キャストなしなら型チェックが効きますが、無駄なキャストをつけると効かなくなります」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@mattn_jp ただ記事が勧めている方針自体は正しいんですが、「型チェックが効かなくなるから」という説明はないので、文章の内容は改善の余地ありって感じです。 でもまあ「無駄でもキャストをわざわざ書くべき」っていう方針よりは遥かにマシです。」 / Twitter
mattnさんはTwitterを使っています 「@n_soda ありがとうございます。同意です。警告消す為に機械的にキャストしまくったら動作変わってしまったとかよくある話ですね。」 / Twitter

アライメント

構造体・共用体

Kazuho OkuさんはTwitterを使っています 「全てのメンバが uintX_t である struct の alignof は alignof(uintX_t) に等しい、って C99 の規格上言えるんでしたっけ?」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho alignof は C11 で規定されたものと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 あっすみません、アラインメントが、という意味です」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho JIS §6.7.2.1 構造体又は共用体オブジェクトのビットフィールド以外の各メンバの境界は,その型に適した処理系定義の方法で調整する。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 ありがとうございます。たとえば union U { struct { uint32_t x, y; } s; uint32_t a[2]; }; において、offsetof(U.a[1]) == offsetof(U.y) である保証はないと」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho 構造体の padding (メンバ間と末尾のメンバの後)が入る条件が処理系定義だから、その保証はないと解釈しました」 / Twitter
Miura HidekiさんはTwitterを使っています 「ビット演算のバイブル、ハッカーの楽しみは凄いという感想はたまに見るが、内容に関する議論は殆ど見たことが無い (私も凄いと言う感想しか言えない」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 アライメントの padding の計算くらいしか活用できてないです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 1引くとビットマスクになる奴ですね。私はaと-aの論理演算がどうも苦手です」 / Twitter

倍数

倍数 - Wikipedia
C言語について質問です。 - 以下の仕様を満たす倍数判定プログラムを... - Yahoo!知恵袋

MS

Alignment | Microsoft Docs
Padding and Alignment of Structure Members (構造体メンバーのパディングとアラインメント) | Microsoft Docs
MM_BAD_POINTER macro - Windows drivers | Microsoft Docs
x64 software conventions | Microsoft Docs
align (C++) | Microsoft Docs

Intel

Align and Organize Data for Better Performance
Coding for Performance: Data alignment and structures

通信用語の基礎知識

XMMレジスター ‐ 通信用語の基礎知識
__m128 ‐ 通信用語の基礎知識
YMMレジスター ‐ 通信用語の基礎知識
__m256 ‐ 通信用語の基礎知識
ZMMレジスター ‐ 通信用語の基礎知識
__m512 ‐ 通信用語の基礎知識

きじねこ

第3回 境界調整(アラインメント)を調べる | 株式会社きじねこ
5.3 アラインメント調整のため、オフセットを切り上げる。 | 株式会社きじねこ
データ型のアラインメントとは何か,なぜ必要なのか?
C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)
アラインメントの大きなメモリ領域を確保する方法

Twitter

x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
Intel GoldmontとMPXとゆるふわなごや
assembly - Does x64 support imply BMI1 support? - Stack Overflow
BMI support in Skylake - Intel Community
X86 Bit manipulation instruction set - Wikipedia
_tzcnt_u32/64
Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
Izumi Tsutsuiさんのツイート: "であれば、「ARM用としてカーネルをいじるようなヤツならちゃんとルール守ったコードを書け、 unaligned access なんぞするんじゃねえ」ということで、カーネルは常に -mno-unaligned-access 付きでビルドせよ、という姿勢が正しいのかもしれない"
SASANO Takayoshiさんのツイート: "x86/x64であってもunaligned accessは禁止、という方向に持ってった方が良いんじゃないかな…(確か禁止するフラグありましたよね?"
OS作れないマン WalB担当さんのツイート: "C++11から導入されたalignasいいね。手軽。"
Kazuho Okuさんのツイート: "sizeof は変数を引数に取れるのに、alignof / _Alignof はなぜ型しか引数に取れないのか"
Kazuho Okuさんのツイート: "@objectxplosive まあ __alignof__ なければ16にするとかでいいので"
Yaðuaki Möritaさんのツイート: "@kazuho なんででしょうね、alignasでアラインを大きく取った変数の参照取ってデリファレンスしてalignofとかが実装依存になりそうだからかな、、"
Kazuho Okuさんのツイート: "@MoritaYasuaki あー。 p = aligned_alloc(alignof(*p), sizeof(*p)) って書きたいだけなんですけどねぇ"
yohさんはTwitterを使っています 「(n+N)&amp;~N派かな N=(1&lt;&lt;B)-1」 / Twitter
\助けよや/さんはTwitterを使っています 「アラインメント揃えのパディングに便利なイディオム。 [0,1,2,3,4,5].forEach(n =&gt; console.log(n, (n+3) &amp; -4)); 0 0 1 4 2 4 3 4 4 4 5 8」 / Twitter
\助けよや/さんはTwitterを使っています 「2の補数表現ビット列に依存したコードなので、あまり期待してなかった。」 / Twitter
\助けよや/さんはTwitterを使っています 「-1 は当然 all 1 の 11(略)1111で、-2 は 11(略)11110、-4 は 11(略)1100、-8 は 11(略)1000 … ((1 + 3) &amp; -4) =&gt; 4 &amp; 11(略)1100 = 4 ((2 + 3) &amp; -4) =&gt; 5 &amp; 11(略)1100 = 4 ((3 + 3) &amp; -4) =&gt; 6 &amp; 11(略)1100 = 4 ((4 + 3) &amp; -4) =&gt; 7 &amp; 11(略)1100 = 4 ((5 + 3) &amp; -4) =&gt; 8 &amp; 11(略)1100 = 8」 / Twitter
\助けよや/さんはTwitterを使っています 「@yohhoy 確かにそっちの方が直感的ですよね。」 / Twitter
yohさんはTwitterを使っています 「@yoya まぁ小さいBに関しては定数を覚えてしまってるので、どっちでもさほど変わらない疑惑👻」 / Twitter

データとコードの並べ替え: 最適化とメモリー – パート 2 | iSUS
AoS and SoA - Wikipedia
データ構造アライメント - Wikipedia
Data structure alignment - Wikipedia
剰余演算 - Wikipedia
端数処理 - Wikipedia
ARM64 で非キャッシュ領域に memset() を実行するとバスエラーになる件 - Qiita
メモリアライメントの話 @ゲームプログラマの小話[開発:メモリ] - Qiita
アライメント計算 : Follow The Master
アライメント(バイト境界)
アライメントを知る - 組込屋
メモリ上での配置に関して、多次元配列と構造体の配列の比較 - in neuro
C++17: 動的メモリ確保とアライメント - in neuro
アライメント解説 - in neuro
GCC - __attribute__ ((packed)) 指定に反してアライメント調整が適用される(29684)|teratail
c - Why does GCC pad functions with NOPs? - Stack Overflow
c - Question about round_up macro - Stack Overflow
Skyrocketing
アライメント(アラインメント)とは - IT用語辞典 e-Words
アライメントとか、ワード境界とか
Blog Alpha Networking: ビット(bit)演算操作の覚え書き
C言語で2の累乗(2^n)への切り上げ&切り捨て | ハングスタック

ビット演算

ビットフィールド

とみながたけひろさんはTwitterを使っています 「@yohhoy webkitという辛いブツがあるんですよね https://t.co/ADzU8yYXlx 「一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです」」 / Twitter
WebKit について (コード) - 兼雑記
2007-06-01
\助けよや/さんはTwitterを使っています 「実際のコードでバイナリ記述に使おうとすると struct の word アライメントで、byte がパッキングしたりしなかったりで死ぬ。(何度か死んだ」 / Twitter
yohさんはTwitterを使っています 「@yoya https://t.co/V371DTSGiG プログラマの期待に反して、外部データとのやり取りには使い物にならないですよね。」 / Twitter
EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
yoh2さんはTwitterを使っています 「環境によって宣言順が異なる struct iphdr の version フィールドと ihl (ヘッダ長) フィールド……」 / Twitter

POPCNT

ビットを数える・探すアルゴリズム
x86x64 SSE4.2 POPCNT
Popcntによるハミング距離計算
__popcnt16、__popcnt、__popcnt64 | Microsoft Docs
marisa-trie の PopCount を改良しました - やた@はてな日記
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
Binary Hacks と 64bit popCount 問題 | TAKESAKO @ Yet another Cybozu Labs
x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
SIMD TZCNT: TERNLOG 0x22 -> ANDN · InstLatx64/InstLatX64_Demo@b672b0a
InstLatX64さんはTwitterを使っています 「An example on how useful are the new #AVX512-levels: SIMD TZCNT emu, POPCNT vs LZCNT - Byte/Word, not just DWord/QWord - faster, 5vs8 clks on TGL - tzcnt(a)=popcnt(tzmsk(a))=popcnt(~a&amp;(a-1))=popcnt(ternlog(a, a, a-1, 0x22)) - 0-case handled Free source: https://t.co/3sbGqNKn3J https://t.co/41UEv3SUNc」 / Twitter
SIMD TZCNT w/AVX512 · InstLatx64/InstLatX64_Demo@2ed2029
InstLatX64さんはTwitterを使っています 「Thx! Fixed, I hope now it is correct: https://t.co/RdcVyaF5Lp」 / Twitter
SIMD TZCNT: undefined handling · InstLatx64/InstLatX64_Demo@f2405bf
TZCNT — Count the Number of Trailing Zero Bits
整数データのビット操作の組込み関数
__lzcnt16、__lzcnt、__lzcnt64 | Microsoft Docs
LZCNT — Count the Number of Leading Zero Bits
Intel GoldmontとMPXとゆるふわなごや
assembly - Does x64 support imply BMI1 support? - Stack Overflow
BMI support in Skylake - Intel Community
X86 Bit manipulation instruction set - Wikipedia
_tzcnt_u32/64

Twitter

herumiさんのツイート: "整数絶対値のトリックは昔Oh! FM(-TOWNS)に載っていて感動して高速化にはまった(当時のHigh-Cが既に利用)。ビット演算で今まで一番頭をひねったのは某コーデックのプロファイルで70%を占めてたやつ。 https://t.co/W3xh7jK9jh 「calcは最適化可能」というヒントありでもかなり難しいと思う。#tcfm"
misc/codec-calc.cpp at master · herumi/misc
herumiさんのツイート: "考えてみたい人のために問題にすると、リンク先のcalc()関数はassertの条件下で分岐無しアルゴリズムに変換できる。テーブル参照は使わない。 https://t.co/6ISKNUBHOB"
shinichiro hamajiさんのツイート: "一行になったけどこれで良いのかな https://t.co/uLVp8o4dZ1 https://t.co/bgNE78joyw"
for https://github.com/herumi/misc/blob/master/codec-calc.cpp
herumiさんのツイート: "レスポンスめっちゃはやっ!! すごい。 私の想定解です。コードから想像すると同値な変形をしながらロジカルに攻めたのでしょうか。ループを消すところにひらめきがいりそうに思いますが。 私の場合は出力結果とにらめっこしながら、その結果になるような式を調整して見つけました。… "
shinichiro hamajiさんのツイート: "a&bはaでいいですね。calc_mine1でこの分岐は上位2bitの組み合わせだなあと理解、calc_mine2で3つ目のブランチが消えて上位1bitが異なるかどうかだけでループ止めてるのでclz一発だな、と。当然実際はもっと試行錯誤しています。これを高速化できるという情報無しでされたのはすごいと思います。… https://t.co/QxVxR1XBRD"
herumiさんのツイート: "ビット演算クイズ回答編 https://t.co/pCg5HtSvaY https://t.co/7gspg4slex"
melancholic afternoon
shinichiro hamajiさんのツイート: "僕の試行過程を書いてみた https://t.co/8j0KDewPSi 一気に書いたのに途中で文体変わる不思議 https://t.co/vsybCYy9vC"
ビット演算クイズを解いた時の話 - 兼雑記
herumiさんのツイート: "ビット演算クイズを解いた時の話 https://t.co/SGgeEwDTXc こういう作業の他人の思考経路を見られることはあまりないのでめちゃ面白い(特にbn\anのテーブル簡略化とループいらなくね?のあたり、そうやって突破するんだという)。 https://t.co/Fftbw6tj73"
shinichiro hamajiさんのツイート: "正直同じ問題を解いた人しか面白くない記述だろうなあ、つまり @herumi さん以外に想定読者がいねえなあ、と思いながら書いていたので、面白いと思っていただいてありがたいです。面白い問題ありがとうございます!… "
とみながたけひろさんはTwitterを使っています 「ビットフィールド、最上位ビットに1ビット割り当てると最適化が進むという特性がある(符号判断でビット判断を置き換えることができることが多いため)。まあ、爪に火を点すビンボーという奴ですね」 / Twitter
とみながたけひろさんはTwitterを使っています 「なお21世紀の近代的なCPUは最上位以外でも「ビットが立ってたら分岐」みたいなのを一命令で実行できるので(ARM64)、こういうビンボーは考えなくてもよくなった。x86-64は…BEXTR命令ょゎょゎやし対応CPU少ないめやからなあ…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「複数のbitを同時に触りたいことがあって (例えば bitset &amp; user_modifiable とか)、bool や bit field を使うとそれが面倒くさくなるので、整数型を使って各ビットに名前を定義する派です←完全にオッサンの発想」 / Twitter
Miura HidekiさんはTwitterを使っています 「ビット演算のバイブル、ハッカーの楽しみは凄いという感想はたまに見るが、内容に関する議論は殆ど見たことが無い (私も凄いと言う感想しか言えない」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 アライメントの padding の計算くらいしか活用できてないです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 1引くとビットマスクになる奴ですね。私はaと-aの論理演算がどうも苦手です」 / Twitter
satさんはTwitterを使っています 「簡単なビット演算といえばenumでフラグ定義して flagset |= 1 << flag flagset &= ~flag if flagset & 1 << flag っていうのはどこでも出てきそうだけどどんなもんだろう。富豪的にbool変数を並べるほうが多いのかな?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi そういや僕がビットフィールド的な整数の使い方便利じゃんと思ったのはこのコード書いたときでした。switchのcaseは定数式が書けるので、"signed"と"int"だけがきっかり1回ずつ出現しているとき、みたいなのがcaseで表現できる。 https://t.co/xocEgvfu0u」 / Twitter
chibicc/parse.c at main · rui314/chibicc
satさんはTwitterを使っています 「@rui314 おお、これは面白い。こんなんよく思いつきましたね」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi これ別々の変数でカウントしてたら、一つ一つのcaseが`if (num_int == 1 && num_long == 0 && num_short == 0 && num_signed == 1 && num_unsigned == 0 && ...)`みたいになっちゃうんですよね。スーパーめんどくさいのでなんとかならないかと考えたらこうなった。」 / Twitter

Blog Alpha Networking: ビット(bit)操作の覚え書き
Big Endian と Little Endian の判別(Kodama's tips page)
すばらしいビット | プログラミング | POSTD
明日使えないすごいビット演算
bit manipulation - Get bit offset in C++ - Stack Overflow
複数のビットフィールドを持つ数値の並列演算

ポインタ

CERT-C

MEM10-C. ポインタ検証関数を定義して使用する
MSC16-C. 関数ポインタの暗号化を検討する
PRE03-C. ポインタ型でない型をエンコードするには define よりも typedef を選ぶ
INT36-C. ポインタから整数への変換、整数からポインタへの変換
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP37-C. 正しい引数の数と型で関数を呼び出す

ポインタ演算
配列とポインタ
3次元配列でのポインタ - C・C++ - 教えて!goo
くいなちゃんさんはTwitterを使っています: "C言語のポインタは簡単です。 例えば、 printf("Hello World!!\n"); と書くところを、 (*************************************printf)("Hello World!!\n"); と書いても動きま
Tsukasa #01さんはTwitterを使っています: "つまり、くいなちゃんの例では * 一回で、"関数型" → "関数へのポインタ型" (暗黙の変換) → "関数型" (* 演算子) という変換が行われてることになる。C9
関数ポインタと実体で引数が違うと、CではエラーにならないがC++ではエラーにな... - Yahoo!知恵袋
C FAQ 5
人はなぜポインタで苦しむのか - Qiita
プログラマでいたい:[C言語]voidポインタの演算 - livedoor Blog(ブログ)
EncodePointer function (Windows)
DecodePointer function (Windows)
Protecting against Pointer Subterfuge (Kinda!) – Michael Howard's Web Log
NAKAMURA Minoru's Diary (2010年4月)
S.F.さんのツイート: "タグ付きポインタか。。なるほど。。現代のCPUアーキテクチャは32/64ビットで、4/8バイト でアラインメントされるのが通常だから、アドレスの下位2ビットもしくは3ビットをタグ(フラグ)として利用するのか。。"
S.F.さんのツイート: "更には64ビットCPUであってもアドレス空間は実質はそれ以下だから、更にタグ用に使えるビット数は増えるのか。。"
uchanさんはTwitterを使っています 「なんでstrtol()の第2引数はconstポインタじゃないの??? long strtol(const char *str, char **str_end, int base)」 / Twitter
にゃははー仙人さんはTwitterを使っています 「@uchan_nos 説明が雑すぎた。char*な文字列を使っている場合にconst char*にはできるけどconst char**にはできないのでそうなってるはず。元からconst char*な文字列を使ってればいいんだけど、Cって大体mutableな方を優先して提供している感じなので(正確な議論は知らないけど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ポインタを純粋なアドレスとして使うのは太古から strict aliasing rule に引っかかって問題になるし provenance 以前にそのあたりを説明するべきだと思う / https://t.co/JLwsBhkCvV」 / Twitter

strict aliasing rules

(翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
strict aliasing rules, type punning解説 その1 - gununuの日記
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
C - strict aliasing ruleについて|teratail
16.1 strict alias rule · ThePolitewaylearntoCPP17
SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
strict aliasing rules, type punning解説 その1 - gununuの日記
C - strict aliasing ruleについて|teratail
c - What is the strict aliasing rule? - Stack Overflow
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
What is Strict Aliasing and Why do we Care?
GCC いろいろ - akcnvの個人的備忘録 @ ウィキ - アットウィキ
【C/C++】Strict Aliasing Rule - Togetter
ISO Cの型違いポインタアクセス禁止規則 - sumiiのブログ
OS自作したい。技術書典6・う38さんのツイート: "strict aliasing ruleとunionてどんな関係になってるんや?"
OS自作したい。技術書典6・う38さんのツイート: "https://t.co/Mhzu2hcon2 にはstrict aliasing rulesに抵触しないエンディアン変換方法としてmemcpyやunionを使った手法が紹介されているけど,普通にビットシフトとor演算を使った方法でも,最適化によってbswap命令に置き換えてくれるみたい.テストコード→ https://t.co/Ez50MPHGwY"
convert_endianness_optimization.cpp

旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
Kazuho OkuさんはTwitterを使っています 「Cのポインタをどう説明するかについては、型ごとのviewであって、viewが重なるか(重なりうるか)に関しては、、、って aliasing, restrict, provenance あたりを説明するのが、僕は一番伝わりやすいと思う」 / Twitter
Pointers Are Complicated II, or: We need better language specs
井山梃子歴史館さんはTwitterを使っています 「某記事ってCの話したいわけじゃないんだよね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「UBの話,最適化と安全性のトレードオフという言語デザインの話であってクリスプに〇×別れるものではない,というのは広く知られていないと思う」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「「有益な最適化をできるだけ残したい」vs「最適化によってプログラムの意味を捻じ曲げたくない」のどこでバランスをとるか,という話なんだよね」 / Twitter
κeenさんはTwitterを使っています 「CとかRustとかにはポインタの来歴という概念があるけど、それが何故必要なのかを最適化によってプログラムが壊れる例を挙げて解説している。ほとんどのコンパイラがその問題を踏んだので難しいよねとも Pointers Are Complicated II, or: We need better language specs https://t.co/oDZfQPhsaJ」 / Twitter
Miura HidekiさんはTwitterを使っています 「関数呼び出しと関数へのポインタを返す式は、デリファレンスを1回やるかどうかの違いだけなので、大した違いではない」 / Twitter

long double

long double ‐ 通信用語の基礎知識
www-an.acs.i.kyoto-u.ac.jp/~fujiwara/server/longdouble.html
long double - Wikipedia
calculation with long double precision

128 ビット整数

C - 64bit以上のビットボードを扱いたい(18432)|teratail
gcc拡張、128bit integer | messier42の日記 | スラド

@kazuho

Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
Kazuho Okuさんのツイート: "C言語にはクロージャがないからコールバック関数定義してデータ構造体を持ちまわってる? マクロつかえばいいのに、ご苦労じゃね"
Kazuho Okuさんのツイート: "と思ったけど、100行以上続くマクロ展開のあるCコードとか書いてるわ。闇技術www https://t.co/PTgNiPTrbL"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "構造化データのcodecをCで書いてるとマクロにブロック埋め込むの超便利でクロージャ気分なんだけど、マクロ内のステートメント単位でデバッガで追えないのだけが辛い。ちなみにこんな感じ https://t.co/k8xRffKEzg"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "僕のCコードの中で再頻出のメンバ名は super です。なぜなら struct Dog { struct Animal super; void (*bark)(Dog *dog); }; ... struct Dog *dog = (Dog *)get_animal(...); とか書くから。今時のCなら当然ですよね。"
Kazuho Okuさんのツイート: "言語のもつパラダイムによって特定のデザインパターンを強制されないのがC言語のいい(わるい)ところです"
Kazuho OkuさんはTwitterを使っています 「ふと気になって試してわかったけど、↓みたいな感じで書けば関数宣言をコピーすることできるんだ。。。 typedef __typeof(fprintf) fprintf_t; fprintf_t foo; int main(int argc, char **argv) { foo(stdout, "hello world\n"); return 0; }」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu プロトタイプ宣言しかしてないのでリンクできない感じですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「何をやってたかというと、プロトタイプを全く書かずに、ライブラリ実装のコンパイルタイムでの切り替えをサポートすることはできるのかなーって試してたのでした。(実際にやるかどうかほ別として)できそうという結論に達した https://t.co/RUh0FZEJwM」 / Twitter
introduce `h2o_sysfn` macro; allows deployments to replace certain syscalls with their own by kazuho · Pull Request #2418 · h2o/h2o

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「C言語が単純だ」なんて誰が言った? たとえばsizeof()の値はつねにunsignedなので、 (1 - sizeof(int)) >> 32 は算術シフトではなく論理シフトになり、答えは-1でなく0となる。 こんなん全部知ってたら神だな。 https://t.co/UVroy5P8TB」 / Twitter
Who Says C is Simple?
今までに遭遇したことのない警告が出て困っています。 - Windows7 3... - Yahoo!知恵袋
Hideyuki Tanakaさんのツイート: "式の型と値の型の区別がついてない人が多いんじゃない?(知らんけど)"
alignas - cppreference.com
/J (既定の char 型の unsigned への変更) | Microsoft Docs
とが🍀🌈🎵さんはTwitterを使っています 「C 言語の宣言で * とか [] が右側に付く理由 https://t.co/NsmgruqH59」 / Twitter
とが🍀🌈🎵さんはTwitterを使っています 「・「もとは」というのは B 言語まで遡ります ・今のような型の概念は C 言語から(B では配列や右辺値/左辺値程度の区別しかなかった)なので「もともと型の違いを表していた」というのも正確には「今の型の概念のうち配列型・ポインタ型・関数型に相当する部分が右側の書き方で区別されていた」です」 / Twitter
とが🍀🌈🎵さんはTwitterを使っています 「https://t.co/LbcV47i5dM」 / Twitter
しる@人口知能モドキ(IQ3)さんはTwitterを使っています 「@57tggx そういえば昔は「int型のポインタ変数」だったのが、いつの間にか「intポインタ型の変数」になりましたね。」 / Twitter
Slashdot | Interviews | C++ Answers From Bjarne Stroustrup
paul-j-lucas/cdecl: Composing and deciphering C (or C++) declarations or casts, aka ‘‘gibberish.’’
Interview with Dennis Ritchie, Bjarne Stroustrup, James Gosling
Kazuho OkuさんはTwitterを使っています 「いい質問。 ・拡張性不要なら型を表すenumとunionで十分 ・関数ポインタを直接入れるのは型enumと比べて空間効率が悪い。vtbl形式は実行効率で劣位 ・なので関数ポインタを入れるのは大規模かつ拡張性が必要なプログラム(例. カーネル)以外では珍しい みたいな感じかな」 / Twitter
mitsuo_suwaさんはTwitterを使っています 「#C言語 の構造体に #関数 の #ポインタ を持たせて #クラス っぽく使ったり出来ます。privateっぽくメンバ変数を持つことも出来ます。つまりはC言語でも #OOP が出来ます。なのになぜか、そうする人がいないのです。手を抜いてるのか能力がないのか、その両方なのか。困ったものです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「このあたりの話、bit連載の7bitsの「必然的にオブジェクト指向」でとても良い議論をやっているだけど、もう手に入らないかな (ソフトウエア千一夜にあった気もする」 / Twitter
Miura HidekiさんはTwitterを使っています 「うろ覚えだけど、優秀で遠慮のない新人プログラマが上司と上司の恩師の所に行って話をするという話。新人君がオブジェクト指向なんて優雅なこと言ってるけど、現場のプログラマにはそんな余裕はないですよ(まあ30年くらい前の話だし)、みたいなことを言って話が始まる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「恩師はそんなことは無いと言うことで、UNIXのファイルデバイスを例に挙げる。ファイルデバイスはopen/write/readなどのシステムコールに対応した関数ポインタメンバーを持った構造体を使うことでデバイスの詳細が分からなくてもファイルを扱うことが出来る。」 / Twitter
Miura HidekiさんはTwitterを使っています 「みたいな感じで話が進む。構造体のメンバーが大域変数と同じくらい重要なものであるとかそんな感じで当時の現場で使うようなCでもオブジェクト指向の考え方が有用だよと言う話。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「昔は盛んにやられてましたが、規模が大きくなるとひたすら面倒になること、俺OOを持つライブラリと別の俺OOを持つライブラリとを一緒に使おうとすると組み合わせの数だけ手間が増えること、等から、面倒を自動的にみてくれる言語に流れるのは無理からぬことでしょうねえ。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「類似の構造はメモリ管理にも言えるかも。リファレンスカウンティングとかマークスイープとかを自分のライブラリだけで実装するのは難しくないけど、複数の独自実装を混ぜて使おうとすると超面倒になるので、言語でサポートされるならそれに越したことないってなる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Cのvirtual関数相当のことをやっている実例を2つ挙げておくと * OpenSSLの暗号エンジン (たとえばrsa_st::methodが仮想関数テーブル https://t.co/8UGRJhp5oG) * linuxの仮想ファイルシステム (たとえばinode::i_fopが仮想関数テーブル https://t.co/VCh1tat8AO) みたいな感じ」 / Twitter
openssl/rsa_local.h at OpenSSL_1_1_1l · openssl/openssl
linux/fs.h at v5.14 · torvalds/linux

オーバーラップ判定

ほっとさんのツイート: "C/C++で、異なる配列内の要素を指すポインタ同士の大小比較は未定義っての、同僚に指摘してもらって初めて知った。 メモリのオーバーラップを検知したいという状況だったけど、調べてみたらなかなか奥が深いのな… https://t.co/SCZqm5ci8v とか https://t.co/rC9W7i4E0P とか"
C++においてメモリブロックのオーバーラップ判定は不可能なのか - センニジュウヨン
How to check if a pointer is in a range of memory | The Old New Thing
Fadisさんのツイート: "あー、でもundefined behaviorになった時点でコンパイラはこの比較をそれらしいマシン語に落とす必要が無くなるから、それも保証されないか"

データ構造とパフォーマンス

眼力 玉壱號さんはTwitterを使っています 「cache miss penalty が 30年位前とは比較にならない位デカイんだよねえ…なので pointer で繋いでいくタイプの data structure は理論性能と実性能が乖離しやすくなってる cf. https://t.co/YQ2cIuYuPV」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/UE5Q4LKWva の p.40 位に Hurb Shutter センセの『黙って array 使え』的な話が…勿論問題規模に依存はするけど、かなりの場合 array で行ける的な感触スね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyでは動的にサイズ変更できるVBufという、アドレス空間予約(MEM_RESERVE)利用の Arrayを多用している。 Win32アドレス空間予約は、mmap等の仮想メモリ確保と違い、 ・PTD/PTEすら消費しない ・プロセス/OSの仮想メモリ量は増えない のが良い点。 https://t.co/Y8mvNKscpm」 / Twitter
SHIROUZU Personal Log
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、64bit OSでアドレス空間が増えてから特に威力を増した印象ある。 (予約だけならPTD/PTE増えず、タスクマネージャでも仮想ページ増えないため、遠慮なく大きくできる) 1dir直下に2000万ファイルといった状況にも対応できるよう、stat領域に8GB空間予約していたりなど。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そして何より、性能と使い勝手はArrayそのものというのが良い」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこれ、スタック的な成長方向だけでなく、やろうと思えば基底側の成長できたりする。 (でもそれが必要な状況が浮かばない…思考が制約されてるのだろうか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オープンアドレス法は、MS-DOS時代に全盛だった方法くらいに捉えていて(想定以上のコリジョンで指数的に破綻、削除で嫌らしい話が出る)、大人になってこの方、チェイン法ばかり使っていたなぁ…ちょっと勉強し直すかな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ、「テーブルとデータ配列は別確保」という変則オープンアドレス版の話であって普通のそれは敬遠したほうが良さそう)」 / Twitter

MiraclePtr<T>

Kentaro HaraさんはTwitterを使っています 「MiraclePtr(みらくる☆ぽいんた!!)が記事に取り上げられてた。まだ実験段階のプロジェクトですが、Chromiumの生ポインタを「Use-after-freeを検知して安全にクラッシュするポインタ」に性能劣化0%・メモリ劣化0%・コード自動書換で置き換えるというみらくるな構想で、 https://t.co/qXowPSx0Nt」 / Twitter
MiraclePtr<T> One Pager [PUBLIC] - Google ドキュメント
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Miura HidekiさんはTwitterを使っています 「プログラム解析を駆使して、必要なければGCをスキップして生ポインタを使って必要ならGCを使うっていうことはmmcの経験から可能だろうなーっておもう。問題は、GCとかメモリ管理のランタイム側をそのように対応しないといけないこと。この辺もプログラムに合わせて自動生成するようになっていくと思う」 / Twitter
hikaliumさんはTwitterを使っています 「MTECheckedPtr, めっちゃおもしろい。アロケータのメタデータにタグ情報を突っ込んでおいて、derefするときはそのtagで上位16bitをxorしてからderefする。freeされたらtagを違う値に書き換えておけば、derefするときにnon-canonicalになってuse-after-freeを防げる。うおお。 https://t.co/JVaIsdZhEm」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/tjZR3BEWlU MTECheckedPtr&lt;T&gt; 、なるほどと感心した。セキュリティ的にはオーバーヘッドに対してこれどのくらいカタいのかな。任意アドレスに書く状況になってたらアドレス漏れててタグも漏れてそうで、入口部分の、読ませちゃダメな領域を読んじゃう機会が減るという感じかな」 / Twitter
Kentaro HaraさんはTwitterを使っています 「@shinh タグが漏れてるとアウトだし、せいぜい16bitが限度なので回数攻撃で突破できるかもですね。結局はリスクの程度問題で、いまはUaFのバグ修正に膨大なエンジニアリングコストとインフラコストを費やしてるので、UaFのリスクを減らすことでそれを減らせないかなというお話です。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@xharaken なるほど、やっぱり mitigation で、トレードオフの問題になる感じですよね。 16bit 限度なのは ASLR の上位 bit に犠牲になってもらえば巨大 null page 作って増やせそうですね……まあ別の mitigation 弱めるのは本末転倒感がありますが。面白いドキュメントありがとうございます!」 / Twitter

Linux

連結リスト

FadisさんはTwitterを使っています 「Linuxカーネルの連結リストを舐める操作を安全に行うための新しいマクロについて。連結リストのノードの型は値の型によって変わるため、Linuxではlist_head型の値を持つ構造体を連結リストのノードと見做す。未知の型が対象になるためリストの操作はマクロで実装される https://t.co/sK4YH9XRWB」 / Twitter
FadisさんはTwitterを使っています 「list_for_each_entryは連結リストの全要素を舐める為のマクロで展開するとfor文になる。現在のノードを指す為にポインタ(イテレータ)が必要だが、ノードの型が不明なのでイテレータはマクロの外でユーザが宣言する必要がある。これはfor文の外のブロックでイテレータが見える事を意味する。」 / Twitter
FadisさんはTwitterを使っています 「list_for_each_entryの外でイテレータの参照先を触った場合、おそらくその操作はプログラマが意図した物ではないにもかかわらず、何の警告もなくコンパイルが通ってしまう。そこで、何とかしてこの状況でコンパイラが怒るようにできんか、という試行錯誤がなされている」 / Twitter
FadisさんはTwitterを使っています 「色々な方法が提案された中でLinus氏が提案したのは、変数名に ## でsuffixを付けた名前を持つノードの型へのポインタ型の変数を、リストの先頭を表すlist_head構造体の宣言時に一緒に作り、リストの変数名からtypeofでノードの型を求め、その型でfor文のブロック内のみで有効なイテレータを作る方法」 / Twitter
FadisさんはTwitterを使っています 「C言語、autoがなくてかわいそう、っていう気持ちでいっぱいになるハックだ…」 / Twitter

LLVM

本の虫

本の虫: MPEG RVCからLLVMアセンブリを出力するJADE
本の虫: LLVMに電力効率を最適化するコンパイルオプションの議論

blog

LLVM + clang で LLVM IR やアセンブリを出力する – ymyzk’s blog
C のコードから LLVM IR コード(LLVM アセンブリ)を生成したり LLVM ビットコードに変換したりする | Meta Meta Lab.
LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ - 脱力系日記
LLVM bitcodeのCFGを生成する - 脱力系日記
LLVMについて調べたことまとめ - kotetuのブログ
HaskellでLisp to LLVM IRコンパイラ その4 (SSA中間言語) - Arantium Maestum
オープンソース活動がフルタイムの仕事になる仕組みの話|Rui Ueyama|note
2019年度未踏体験記 | カオスの坩堝
LLVM IR: The Esperanto of Computer Languages - Pat Shaughnessy

OSDN

LLVMのコンパイラ「Clang」、セルフホスティングに成功 | OSDN Magazine
性能を改善した「LLVM 2.5」がリリース | OSDN Magazine
LLVM 2.6リリース | OSDN Magazine
C/C++/Objective-Cサポートが強化された「LLVM 2.8」がリリース | OSDN Magazine
LLVM Project、最後の2.xリリースとなる「LLVM 2.9」を公開 | OSDN Magazine
LLVM Project、LLVM 3.0をリリース | OSDN Magazine
LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
コンパイラ環境「LLVM 3.2」をリリース、最適化機能を強化 | OSDN Magazine
最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現 | OSDN Magazine
「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
Goバインディングが加わった「LLVM 3.6」リリース | OSDN Magazine
「LLVM 3.9」リリース | OSDN Magazine
「LLVM 5.0」リリース | OSDN Magazine
「LLVM 6.0」リリース | OSDN Magazine
「LLVM 7.0」リリース | OSDN Magazine
「LLVM 8.0」登場、WebAssemblyを正式サポート | OSDN Magazine
「LLVM 9.0」リリース、asm gotoのサポートでLinuxカーネルのビルドが可能に | OSDN Magazine

Qiita

Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) - Qiita
LLVM bitcode基礎知識 - Qiita
「LLVM bitcode はポータブルでない」ってどういう意味なの? - Qiita

Twitter

その他

SSA

Miura Hidekiさんのツイート: "llvmでは基本ブロックがすべて独立していて、IRコードが字面上連続していてもジャンプ命令が必要。今度作るのはどうしようか考えている。llvmの仕様はインプリメントでは楽できるが、使う人が大はまりするおそれがある、というか大はまりした。"
zehnpaardさんのツイート: "いったんASTを自分が定義した別のSSA IRに落とし込んでからllvm irに変換するようにした方がスッキリする"
Shunsuke Shidaさんのツイート: "ASTからLLVM IRを作ってた頃は支配辺境が自明な構文(for, if等)ではあっさりとSSA形式に出来たけど、breakやcontinue等で苦労する羽目に。 バイトコードからの方が最終的には正確にやれそう。"
ドッグさんのツイート: "SSA な処理系の中間言語は割とそんな感じかと(LLVM IR とか)… "
Kenta IDAさんのツイート: "LLVM-IRはやっぱ解析するの前提やし、レジスタマシン、SSAなので楽やなーと思ったりする。 #dotnetconf"
Urabe, Shyouheiさんのツイート: "LLVM IRそんな読みづらいかなあ?いやSSAだから手書きは面倒だし書けとは俺も言わんけどさ。読むのは普通じゃね? http://t.co/0AAS8FH0bx"
Urabe, Shyouheiさんのツイート: "LLVM IRがCよりマシな理由第1位として「手書きがめんどう」という話がある(手でSSA変換できるやつは少ない)。なのでクソコードが書かれる蓋然性が低い。"
光のインターネットの闇さんのツイート: "LLVM IRってSSAだからmovっぽいものがない?"
azuさんのツイート: "LLVM IRはSSAなので変数を再利用しない"
κeenさんのツイート: "LLVMのmem2reg、適当なコード吐いても最適化しくれるくらいにしか思ってなかったけどレジスタが全部SSAなLLVM IRだとミュータブルな変数は全部スタック使うしかなくてmem2regがないとまともな速度出ないのか。"
ロックフリーのkumagiさんのツイート: "x86はmov命令だけでチューリング完全の域に達しているのにLLVM-IRにはmov命令が存在しないからやる気が足りない(SSAを根本から冒涜した無知な発言)"

最適化

うー@技術書典8 Day1う31 BitNOSさんはTwitterを使っています: 「Clangってcosやsinなどの数学関数を副作用が無い前提で最適化してくれないっぽい?引数が同じなら何回も計算し直す必要無いはずなのに,律儀に何回も呼び出してくれちゃう。」 / Twitter
yohさんはTwitterを使っています: 「@uchan_nos https://t.co/aVORPK6mI4 -ffast-mathオプションとかどです?」 / Twitter
Compiler Explorer
とみながたけひろさんはTwitterを使っています: 「@yohhoy @uchan_nos fastmathなしだと毎回例外が起きることを期待するからですねー」 / Twitter
yohさんはTwitterを使っています: 「@takehiro_t @uchan_nos https://t.co/VQGtBfFSzw 同じ効果を得るなら、-fno-math-errnoオプションの方が-ffast-mathより"安全"かもですね。」 / Twitter
c++ - How to force GCC to assume that a floating-point expression is non-negative? - Stack Overflow

LLVM 14

FadisさんはTwitterを使っています 「LLVM 14のリリースタグが打たれたらしい。まだWebの方には反映されていないがgithubのReleasesからソースを落とせる状態になっている。LLVM 14の目玉はプロファイルベースのバイナリ最適化BOLTがメインラインにマージされた事だが、その他にも様々な改良が加えられている https://t.co/LfUkm3d7ht」 / Twitter
LLVM / Clang 14.0 Prepared For Release With With Armv9, BOLT, More C++20 & C23 - Phoronix
FadisさんはTwitterを使っています 「LLVM 14は新しめのXeonに載っているAVX-512 FP16拡張命令を吐けるようになる他、デフォルトのデバッグ情報の形式がDWARF5に変更される。LLVM 14で入ったLICM(ループ内で毎回やらんで良い処理を外に追い出す最適化)の改良は複数のベンチマークで顕著な性能向上が見られるらしい https://t.co/bGsRWhr9Xq」 / Twitter
LLVM Clang 14 Lands An "Amazing" Performance Optimization - Phoronix
FadisさんはTwitterを使っています 「libc++14ではC++23で追加される見通しのstd::optionalのmonadic operations(P0798)が実装される。これはstd::optionalにメンバ関数transform、and_then、or_elseを追加する物で、transformはHaskellのMaybeに対するfmap、and_thenはbind(>>=)に相当する操作を提供する。 https://t.co/ZxdSHO96N3」 / Twitter
P0798R8: Monadic operations for std::optional
FadisさんはTwitterを使っています 「C++に型に依存しないmonadic interfaceを生やす提案(P0650)は結構昔からあがっているが、今の所標準には入っていない。P0650は言語のシンタックスシュガーの追加なしには辛い記法を強いられる為P0798はP0650のインターフェースに合わせていないが、簡単なラッパーでP0650に対応できるようになっている」 / Twitter
FadisさんはTwitterを使っています 「libc++14ではこの他にも型安全な次世代printfことstd::format(P0645)が実装される。この機能はMSVCが真っ先にサポートした事で話題になったが、以降他のコンパイラでの対応はまだ無く、libc++14が2番手になった。 https://t.co/0h9uHhLbqA」 / Twitter
Text Formatting

histric

histric-1

x86-64-128さんのツイート: "戻り値がvoidではない関数でreturnを書き忘れた場合,Clangだとret命令が生成されないんだね.戻り値がゴミになるだけかと思ったらプログラムが暴走してびっくりした."
Kazuho Okuさんのツイート: "LLVM の bitcode 使うことで GCC のインラインアセンブリよりも(場合によっては)高速なコードが書く方法 / “Kazuho's Weblog: Writing fast code using C++, LLVM b…” http://t.co/tMHWNmCF"
Kazuho's Weblog: Writing fast, processor-independent code using C++ and LLVM bitcode
Kazuho Okuさんのツイート: "内部中間表現として bitcode 使ってるだけならそれで問題ないですしねぇ RT @Constellation: LLVM, 基本くるくる変わるから, project に突っ込むのが常套手段っぽい."
Kazuho Okuさんのツイート: ".@wasabiz コンパイラは、仕様が不安定な LLVM bitcode より C 言語を出力すべきみたいな話をこのまえ同僚とした"
Taisuke OEさんのツイート: "UnityのWebGLサポートの仕組み。 C#ソース -(mcs)-> .NET bytecode -(IL2CPP)-> C++ソース -(clang)-> LLVM bitcode -(emscripten w/ asm.js)-> Javascript #unitej"
Hajime Moritaさんのツイート: "ところで Vulkan といえばセットになってるシェーダ用バイトコードの SPIR というのがまたやばい。LLVM の bitcode そのまま標準かした仕様。一方でシェーダコンパイラを実行時に動かす OpenGL もそれはそれでやばい。グラフィクス近づくべからず。"
Atsushi Enoさんのツイート: "KotlinのIRからLLVM bitcodeを生成するのがKotlin/Nativeの核心で、LLVM bitcodeさえ出来てしまえば後はllvmがやってくれる領域です(純粋bitcodeではないかもしれない)。Kotlin/JVMと共通化できるKotlin IRを設計したのもすごいけど多分これはK/N部隊の仕事じゃない気がする。… https://t.co/ulm8s4JGyZ"
sicさんのツイート: "C拡張を動かすために LLVM bitcode のインタプリタ持ってるの異常 #rubykaigi"
ぬるぽへ@技術書"典"5か31さんのツイート: "「LLVMの真実」、LLVM bitcodeはarch依存の色々なものが入っていて全然portableじゃないしあーき共通じゃない #kernelvm"
Fadisさんのツイート: "LLVMにbinutilsのstripの置き換えを目指す新しいツールllvm-stripが追加された。stripはオブジェクトファイルや実行可能バイナリから不要なシンボルを削除してバイナリを小さくしたり、うっかり必要なシンボルまで削除して実行不能バイナリを作るのに用いられる https://t.co/CxUZNEwHQv"
LLVM-Strip Introduced As An Alternative To GNU Strip - Phoronix
shinichiro hamajiさんのツイート: "#rebuildfm のSwift話、Swiftはclangと違ってもともとSILていう中間言語がLLVM bitcodeの前にあったので、アクセラレータに投げられるTFグラフの抽出がこのレイヤで自然に行なえる、て話があるのも面白いところだと思う。SILについては https://t.co/4u2GuUI07K"
SIL v13.key
朝はむずかしいさんのツイート: "MS がLLVM IRへのデコンパイラを出したっぽい。今のところ、ELFにのみ対応。https://t.co/DJeVnAPKrq"
Microsoft/llvm-mctoll: llvm-mctoll
10/27,28はOSC Tokyoさんのツイート: "Clangに-fno-pltを付けることが自作OSだと重要かも."
OS自作したい。技術書典6・う38さんのツイート: "vimの補完にclangdを使っているんだけど,しばらくvimを起動しっぱなしにするとclangdがめっちゃメモリ食ってある瞬間にほぼ動作が止まってしまう."
Fadisさんのツイート: "clang9から新しいオプション-ftime-traceが追加されている。gccやclangは以前から-ftime-reportでコンパイルのどの段階にどの程度の時間を要したかを出力できたが、-ftime-traceでは更に階層的な処理の内訳をchrome://tracingで読めるJSON形式で出力する事ができる https://t.co/jIyy3xv6yQ"
LLVM Clang 9.0 Adds "-ftime-trace" To Produce Useful Time Trace Profiling Data - Phoronix
Makoto Kato ︎︎さんのツイート: "The Clang AST can now be dumped to JSON. https://t.co/PTLLZ1yknh まじか"
rL360622
Fadisさんのツイート: "GoogleがLLVMと組み合わせて使う新しいlibcを作ろうとしている。新しいlibcは既存のlibcよりモジュラ−で、non-PIEやstatic-PIEな実行可能バイナリをロードでき、基本的には標準に沿って実装するが今日では使われないような機能まで網羅するつもりはないとしている https://t.co/KoEd3Wl1G6"
Google Developers Are Looking At Creating A New libc For LLVM - Phoronix
Fadisさんのツイート: "LLVMメーリングリストに投稿された内容では、このlibcは少なくとも当初はx86_64だけをターゲットとして実装するとされているが、それに対して別のGoogleの中の人が「Fuchsiaで使いたいからAArch64で動かしたいんだけど、どのへんがアーキテクチャ依存になるの?」って返してる https://t.co/oYxtjLR0u7"
[llvm-dev] A libc in LLVM

uint256_tさんはTwitterを使っています: 「実際, CilkがどのようにIRをアセンブリにまで落としているのか簡単な経路を書くと, IR &gt; DAG &gt; MachineInst &gt; アセンブリ となる」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t さっさとDAGの説明に移りましょう. IRはDAG(directed acyclic graph)形式へと変換される. なぜこんなことをするのかと言うと, グラフ構造のほうがパターンマッチなどを使った変換がやりやすいから.」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t この時点で, 例えば ((node + c1) + c2) のようなグラフが, (node + (c1 + c2)) と変換されます. (cXは定数, c1+c2は定数畳込みされる) ほかにも, x86など複雑なアドレス指定ができる環境では, loadやgetelementptrのまとまりを一つの命令に置き換えるなどの処理もする」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t 次はMachineInst. DAGはMachineInstへと変換されるが, これは何なのかというと もはやグラフ構造ではなく命令の列. どんな命令なのかと言うと, 特定の命令セットの命令や, Cilk特有の命令が混じった状態のもの.」 / Twitter
uchanさんはTwitterを使っています 「__attribute__((interrupt))を付けているのに,Clangがスタックの計算をミスっている気がするよ。」 / Twitter

LLVM - Wikipedia
LLVM Language Reference Manual — LLVM 9 documentation
LLVM Bitcode File Format — LLVM 8 documentation
LLVM Bitcode Introduction
emit-llvm - Google 検索
clang - the Clang C, C++, and Objective-C compiler — Clang 10 documentation
"compiler-rt" Runtime Library
libunwind LLVM Unwinder — libunwind 8.0 documentation
LLVM Backend の紹介
AddressSanitizer — Clang 11 documentation
Compiling Native Projects to LLVM Bitcode
Intel Fully Embracing LLVM For Their C/C++ Compilers - Phoronix
[下書き] LLVMバックエンド for RV16Kv2 開発文書
手を動かせばできるLLVMバックエンド チュートリアル
LLVM入門 - javascript使いがLLVM(Rust:inkwell)でjavascriptをJITコンパイルするまで

GCC

KMC Staff Blog

KMC Staff Blog:cast-as-lvalue
KMC Staff Blog:gccの便利なオプション (-save-temps)

本の虫

本の虫: GCCのSVN trunkをビルドする方法
本の虫: Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる
本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
本の虫: GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話
本の虫: GCC 4.8でぶっ壊れるSPECのお粗末なコード
本の虫: GCCエクスプローラー
本の虫: ソフトウェアの思想が設計にもたらす影響
本の虫: GCC 6にインデントミスの警告機能が追加

blog

x86/x86_64関数呼び出しチートシートを書いた | d.sunnyone.org
[GDB] Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録
はじめてのにき(2018-09-28)
SEGV探偵が往く - なるせにっき
gcc 組込み関数(memcpyとか)のインライン展開抑制
GCCの拡張機能を使ってSTLもどきを作る | 株式会社きじねこ
melancholic afternoon
gccのインラインアセンブラ内からcのラベルにgotoでジャンプ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
GCCの-Wshadowとその推移について、あとお前を消す方法 - in neuro
GCC 11のビルドとldconfig - uchan note
LD_LIBRARY_PATH を設定しても反映されないことがある | 穀風
【知っておくと便利】C++で問題を解くときにおすすめのコンパイルオプション - TechFULの中の人

OSDN

GCCプロジェクト、25周年記念リリースとなるGCC 4.7.0を公開 | OSDN Magazine
C++への移行が完了、最適化機能も強化された「GCC 4.8」リリース | OSDN Magazine
C++11やC++14のサポート改善や最適化機能の強化が行われた「GCC 4.9」リリース | OSDN Magazine
GCC 5系初のリリースとなる「GCC 5.1」登場 | OSDN Magazine
「GCC 5.2」リリース、多数のバグが修正される | OSDN Magazine
140件以上のバグを修正した「GCC 5.3」リリース | OSDN Magazine
5系で最後のリリースとなる「GCC 5.5」公開 | OSDN Magazine
「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
「GCC 6.4」リリース、不具合修正がメイン | OSDN Magazine
「GCC 7.1」リリース、長らく使われていたReloadがLRAに置き換えられる | OSDN Magazine
「GCC 7.2」が公開 | OSDN Magazine
「GCC 7.3」リリース、CPUの脆弱性「Spectre」への対応も含む | OSDN Magazine
「GCC 7.4」が公開、バグ修正が中心 | OSDN Magazine
GCC7系の最終リリースとなる「GCC 7.5」リリース | OSDN Magazine
「GCC 8.1」リリース | OSDN Magazine
8系最初のポイントリリースとなる「GCC 8.2」が公開 | OSDN Magazine
「GCC 8.3」リリース | OSDN Magazine
「GCC 9.1」リリース、D言語サポートが追加される | OSDN Magazine
「GCC 9.2」リリース | OSDN Magazine
「GCC 9.3」リリース、157件以上のバグを修正したポイントリリース | OSDN Magazine
「GCC 10.1」リリース、静的コード解析機能が実験的に導入される | OSDN Magazine

Qiita

GNU コンパイラ・コレクション C言語拡張 - Qiita
x86-64プロセッサのスタックを理解する - Qiita
MacのGCCで返り値を返さない関数を書くと鼻から悪魔が出る - Qiita
コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita
最低限のクロスコンパイラの作り方 - Qiita

Twitter

histric

histric-1

Fadisさんのツイート: "メモリ1GBのマシンではもはやGCCのアップデートが自力でできないという厳しい現実に直面している"
Fadisさんのツイート: "gcc「警告: {}無しのif文の次の行に同じインデントで文を書くの、if文の中身と見間違われるからやめといたほうがいいんじゃないかな」"
品川 高廣さんのツイート: "MinGW の gcc は -mno-ms-bitfields を付けないと struct の __attribute__((packed)) を黙って無視するのか。これは酷い。"
Kazuho Okuさんのツイート: "gccにも__has_builtinが来そうな流れ? / “66970 – Add __has_builtin() macro” https://t.co/Zacd0derfz"
NOKUBI Takatsugu野首貴嗣さんのツイート: "SEGV探偵が往く - なるせにっき https://t.co/1FXYvbbQcM 「CFLAGSの行に-save-tempsを追加してビルドし直すとコンパイル中の一時ファイルが残ります」知らなかった。ずっとgcc -Eしていた…結構前に新設されたオプションのようだ"
Kazuho Okuさんのツイート: "union使った型変換はコンパイラ依存。GCCでは合法 https://t.co/zqOrxLkF3K"
Structures unions enumerations and bit-fields implementation - Using the GNU Compiler Collection (GCC)
とみながたけひろさんのツイート: "そうそう、最近のgccって「おまえバージョンコントロールソフトでコンフリクトした部分を直してないだろ」とか「これはgoto failバグじゃねーの」みたいなのを専用の警告で教えてくれるんだよな。なんか笑ってしまうが笑ってはいけないんだろうな…"
taklさんのツイート: "昔相当頑張って調べた記憶がある。昔の話だけどEBP使わずにESPだけを使うと遅くなるケースがかなりたくさんあった。gcc3の頃は-O3付けても-fomit-frame-pointerが有効にならなかった。最近は-O3付けると-fomit-frame-pointerが自動で有効になるから、コンパイラかCPUの進化で良くなったんだろう(昔話)"
はぇ~☆さんのツイート: "ローカル変数にEBPを使うのはABIでそう定められているからなので、本来、最適化とは関係ないっぽいです。ESPを使えば汎用変数が1つ自由になるので確実に速くなります。EBP / ESPどちらにしてもスタックのアライメントに注意しないとローカル変数の参照が遅くなります。… https://t.co/aeyDBYlgSl"
はぇ~☆さんのツイート: "んで、EBPを使う場合はスタックのアラインメントとは別にEBPのアライメントが可能なので、コード生成が楽になります。とはいえESPとてスタックに積むサイズに注意を払えばアライメントは維持できるわけで。そんな程度の差だそうです。… "
taklさんのツイート: "こんにちは。気になったので少し調べてみたのですが、最適化マニュアルの1997年版では「葉関数ではEBPをGPRとして使え」1999年版では「デバッグ情報が不要なときはESPベースの、必要なときはEBPベースのスタックフレームを使え」になっていました。世代毎に色々ありそうですね。… https://t.co/xKWo4ndu8C"
Kazuho Okuさんのツイート: "sprintf(char [6], "%" PRIu16, ...) が GCC でバッファサイズが足りないと言われることがあるというのと、それが HEAD で修正されたという話を読んだ。なるほどこれはこうなるわ... https://t.co/R8961RXSTB"
Kazuho Okuさんのツイート: "習性としては、予約済のマクロを再定義した場合の挙動は未定義という規約を利用して、GCC側で PRIu16 のマッピングを "%hu" あたりにハードコードしたのかなと想像"
ともきさんのツイート: "gcc -g でコンパイルして objdump -S すると (VS でよくある) アセンブラと C を同時に見るモードになることがわかった https://t.co/Wat6thyOgE"
Shiro Kawaiさんのツイート: "うお、いつの間にかgccが、未宣言関数呼び出しのwarningに似ている関数名をdid you mean...?ってサジェストしてくれるようになってる"
Fadisさんのツイート: "gccの-Wallが名前に反して全ての警告を有効にしなくて、更に多くの警告を有効にするための-Wextraがあるけど、それでも有効にならない警告があって、そいつらを1つづつ有効にするのめんどくさいから、-Weverythingで全部有効になるようにしようぜ、という提案がなされている https://t.co/ygUtTq7uwJ"
GCC Unlikely To Adopt A "-Weverything" For Exposing All Possible Code Warnings - Phoronix
Fadisさんのツイート: "gccの警告全部盛り-Weverything、一見良さそうに見えるけど「お前のインデントが気に入らない(-Wmisleading-indentation)」とか「Effective C++読んで出直してこい(-Weffc++)」とかものってくるわけでだな…"
Fadisさんのツイート: "コンパイルエラーを人間が読みやすい形で出力する事は一方でコンパイルエラーをパースするスクリプトを発狂させる事になる為、gcc9はコンパイルエラーをより読みやすい形式に変更すると同時に、コンパイルエラーをJSONで出力できるようになるらしい https://t.co/tgysp6OBnu"
にゃははー仙人さんのツイート: "インクルドガードがわからないから2回読まないといけないというの、もう何年も前にコンパイラはインクルードガードを識別して展開をスキップしてるからそれは速度向上の理由じゃない https://t.co/MdEYZD2Njp #cppmix"
The GNU C Preprocessor Internals: Guard Macros
Fadisさんのツイート: "svnからgitへの移行を進めるgccが一部のまだ変換されていないブランチを除いてgithubで見れるようになったらしい。gccはsvn上の全てのブランチ、全てのコミットをgitに移そうとしていたが、gccの歴史が長すぎて難航、メモリ価格の高騰によって頓挫しかかったりしていた https://t.co/arBhv3e3iI"
A Linaro Developer Has Taken Up The Effort Of Converting GCC's SVN To Git - Phoronix
Fadisさんのツイート: "これ、コンパイラのバージョンの問題じゃなくてNXビットまたはそれに類する仕組みを持つアーキテクチャであることと、ldがそれを活用していることの2つが条件じゃないかな"
←↓↑→さんのツイート: "今日一部の識者と話した結果、main = 195;は最新のgccでコンパイルした場合だとSegmentation faultが発生してしまうけど、__attribute__((section(".text"))) main = 195;ならば動くという事を知った。 実行結果:https://t.co/Yg3pVuNDHT"

Kazuho OkuさんはTwitterを使っています: 「C互換のクロージャは昔のGCCが-fnested-functionでやってて、あれはスタック上にトランポリンコード生成してたけど、ヒープにコードと変数領域わけるとか近代的なやり方すれば今でも可能だとは思うんですよね」 / Twitter
taklさんはTwitterを使っています 「「GCCだと」整数をポインタにキャストしたときのビット表現がどうなるか定められている。 https://t.co/uTEjdbk3Gn ヌルポインタは「定数の」0をポインタに変換したときに得られるので、ヌルポインタでないビット表現が0のポインタを得るには (void *)(uintptr_t)0 とかでいいと思うけど、自信ない。」 / Twitter
Using the GNU Compiler Collection (GCC): Arrays and pointers implementation
herumiさんはTwitterを使っています 「https://t.co/37AzusUhoc Cの規格(6.3.2.3 3)では整数定数0か(void*)0がヌルポインタ(NULL)。NULLへのアクセスは未定義。したがって0へのアクセスは不可能。それ以外の整数からポインタへのキャストは処理系依存。 このコードはNULLへのアクセスと等価とみなしてgccやclangはud2を生成するようです。」 / Twitter
hikaliumさんはTwitterを使っています 「@uchan_nos uint8_t *p = 1; p--; *p = v;」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@hikalium @uchan_nos アドレスを即値指定した時点でUBになったりしません? だとしたら0番地に書くのも処理系・プラットフォーム依存なのでその処理系特有のマクロが用意されていると仮定して良さそうな」 / Twitter
herumiさんはTwitterを使っています 「ちなみにud2は無効例外を出す命令。 CPUのパイプラインでud2を検出すると継続する命令のデコードを停止してCPU負荷を下げる働きをします(Intel最適化マニュアル3.4.1.5 Branch Type Selection)。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi これカーネルや組込だと怖い感じがするのですが、別途0番地へのアクセスを許可したりNULLを別の値に変えるコンパイラオプションがあるのでしょうか」 / Twitter
herumiさんはTwitterを使っています 「@kazuho ちゃんと調べてないですがgccだと-fno-isolate-erroneous-paths-dereferenceというオプションがありました。 *(char*)0 = 1;が-Ofastでも期待通りの出力をしました。clang-8はそのオプションは無いようです(同様のものがあるかは未確認)。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho -fno-delete-null-pointer-checksだとgcc/clangともに*(char*)0 = 0;で期待する(?)コードがでました。dereferenceしてるのでその先のポインタはNULLじゃないとみなす? 本来int a = p-&gt;v; if(!p)...の後ろのチェックを省略するやつ(デフォルトon)なので意味的に逆な感じもするのですが。@hikalium」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @hikalium おー。名前はともかく https://t.co/PrJRKGyXl9 の説明みると、これが null へ理由があってアクセスしうる場合に設定すべきフラグのようですね」 / Twitter
C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
mod_poppoさんはTwitterを使っています 「GCCに__has_builtinが実装されたのはバージョン10から #だめぽメモ」 / Twitter

Q & A

C - アセンブリとC言語(47437)|teratail
c - Trying to understand gcc option -fomit-frame-pointer - Stack Overflow

depfile gcc format - Google 検索
GCC -mtune 何やってるか
微妙に便利なgccのオプション - in neuro
difference between gcc and vc
C++とCは互換ではないです (#2214382) | GCC、CからC++への移行が完了 | スラド
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
新しいGCC 8.1がC++2aのいくつかの機能をサポート
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
C言語におけるラムダを関数マクロで実現したものです。 GNU拡張文法(複文の式化、関数内の関数定義)を用いているので、gccでしか用いることができません。 また、トップレベルで用いることも不可能です。 C++でもコンパイルエラーにならないように、C++0xのラムダに変換するようにしています。 利便性を考え、ある程度の省略表記を許すようにしています。
GitMirror - GCC Wiki
Instrumentation Options (Using the GNU Compiler Collection (GCC))
Krister Walfridsson’s blog: Writing a GCC back end
Shiro KawaiさんはTwitterを使っています 「gcc11でsha1 digestの結果が変わってたの、キャストしたポインタの参照先へのストアが最適化で削られてたからなんだけど、これってUBだったっけ? https://t.co/cwtaX1CgGw」 / Twitter
Gauche Devlog - Is this an Undefined Behavior?
FadisさんはTwitterを使っています 「最近のgccの警告昔と比べてとても賢くなったんだけど、最近のgccで古いgccビルドするとうっかり「配列のサイズが負になる」とか見つけてきて頭抱える」 / Twitter

list_head ‐ 通信用語の基礎知識
list_entry ‐ 通信用語の基礎知識
container_of ‐ 通信用語の基礎知識
linux-2.6.25/container_of() - コグノスケ
ユーティリティー - container_of() - linuxのメモ
container_ofマクロ - Linuxの備忘録とか・・・(目次へ)
container_of(マクロ): ふらふら日記
container_of()/linux2.6 - LinuxKernelHackJapan
おべんきょーぶろぐ: container_of
container_ofでsysfsのコールバック関数を一元化 - shimada-kの日記
Callgrind + Kcachegrindで関数呼び出しのトレースをする - Qiita
ソースコード直接実行のテクニック - 何とは言わない天然水飲みたさ
bcc(1): Bruce's C compiler - Linux man page
あじのり→ᓚᘏᗢ ‹ロボマス!さんのツイート: "関数の型を書いたあと改行するスタイルは初めて見た… "
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "それはUnixでは標準的なスタイル。こうすると^hogeで関数定義を探せる。GNU https://t.co/JQuSui39Oi もこのスタイル。https://t.co/7N1kAyiaDH"
GNU Coding Standards
SODA Noriyukiさんのツイート: "*BSD系のカーネルで使われているスタイル KNF - kernel normal form もこのスタイルですね: https://t.co/njRYAuY76V… "
src/share/misc/style - view - 1.54
社会人でもOSを作りたいさんはTwitterを使っています: 「初心者がC言語でまず覚えるべき構文 __attribute__((interrupt))」 / Twitter
電子工作室
Unicode 14に対応した「GNU C Library 2.35」が公開 | OSDN Magazine
GNU Binutilsバージョン2.38がリリース | TECH+
バイナリツールセットの「GNU Binutils 2.38」が公開 | OSDN Magazine

blog

はてなブログ

C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
マジックナンバー0x03F566ED27179461の求め方とHD流のNLZ - Koonies/こりゃいいな!
atoi関数のかしこい実装 - yohhoyの日記
条件変数 Step-by-Step入門 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 紹介編 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 実装編 - yohhoyの日記(別館)
独自診断メッセージ diagnose_if属性 - yohhoyの日記
ビルドもできるヘッダオンリーライブラリ - in neuro
絵で見てわかるC言語入門 - 第1章 - w_o’s diary
自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する
レトロPCとレトロプログラミング カテゴリーの記事一覧 - 少ないリソースを酷使する
cccコンパイラのバックエンド - molecular coordinates
compilium v2 におけるdeclarationの実装 - /var/log/hikalium
コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
セルフホスティングCコンパイラを書いた - 茅の下
const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
10年ほど後のBinary Hacks - 兼雑記

NASA 小野雅裕氏に聞く、なぜ宇宙では「C言語」が使われるのか 『宇宙兄弟』の人気コラムニスト|ビジネス+IT
メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
はじめてのにき(2018-06-21)
プログラミング、リファクタリング、そしてすべてにおける究極の疑問 | iSUS
巡回的な添字
Cの配列はa[i][j]とa[i*Nj+j]のどちらが速いか試してみた | ナンクル力学系
CASL II 入門講座 第5章 数値を10進数の文字列に変換する
10進文字列と整数値の相互変換 - プログラミングのメモ帳
整数を文字列に変換してみる: 毒を食らわば皿までど~ぞ
低レイヤを知りたい人のためのCコンパイラ作成入門
本の虫: MSVCのSTLがGitHubで公開
microsoft/STL: MSVC's implementation of the C++ Standard Library.
Kazuho's Weblog: C言語で配列の要素数を安全に数える話
C言語のワイド文字入出力 | 雑記帳
プログラミング言語の構文とセミコロン - ベインのブログ
Cコンパイラを作っています | KOZOSのブログ

スライド

コンパイラのいじめかた / How to fight the compiler - Speaker Deck
C言語プログラムの構造とほんの少し解釈 - Speaker Deck

POSTD

学校では習わないコーディングスキル:オブジェクト所有権 | プログラミング | POSTD
C言語 | POSTD
高速なハッシュテーブルを設計する | プログラミング | POSTD
C言語パズル集:Cにまつわる興味深い問題あれこれ | プログラミング | POSTD
2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
C90, C99, C11, C++98, C++11で異なる動作をするコード | プログラミング | POSTD
C++11のスレッド、アフィニティ、ハイパースレッディング | プログラミング | POSTD
C言語、知ってるつもり? | コンピュータサイエンス | POSTD
私はC言語を知らない | コンピュータサイエンス | POSTD
型安全性とは何か | プログラミング | POSTD

Zenn

Clang のスレッドセーフ分析
プログラムがメモリをどう使うかを理解する(1)
プログラムがメモリをどう使うかを理解する(2)

Qiita

printf のマイナーな機能の紹介 - Qiita
linuxカーネルで学ぶC言語のマクロ - Qiita
1バイトが8bitに定まったのは2008年 - Qiita
char の符号 - Qiita
sizeof演算子にまつわるアレコレ - Qiita
C言語のバグ回避をするための習慣 - Qiita
C言語分かってなかった (I Do Not Know C) - Qiita
C言語のポインタを含む構造体の初期化まとめ。 - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第2回 : 符号無し整数型のチェック) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第3回 : C言語の整数の性質を知る) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第4回 : 符号付き整数型のチェックと動機の動機) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第5回 : 続・符号付き整数型のチェック) - Qiita
printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
Asyncify を使ってみた - Qiita
reallocの怪 - Qiita
C言語における多次元配列の動的な確保 - Qiita
MISRA related document - safety and security on c and c++ - Qiita
Ancient C探訪記
shinichiro hamajiさんはTwitterを使っています 「式だと 6B が最短だと思ってて、その中では --*""; が好きで SEGV デバッグする時に使ってる https://t.co/3r8zdb42JH」 / Twitter
C言語で16文字でセグフォらせる - Qiita
C言語でオブジェクト指向を表現する (クラス、継承) - Qiita
無料になったIntel compilerをCentOS8にインストールしてみる - Qiita

GitHub

mimalloc

ドッグさんのツイート: "MS が公開した新しい汎用メモリアロケータ mimalloc 気になる.3500 LOC の小ささで高速高効率(benchmark あり)セキュアで,malloc をそのまま置き換えて使える | 'microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.' https://t.co/NSYMGEXf8N"
microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
ドッグさんのツイート: "まだよく読んでないけど,でかい1つの free list ではなくページごとの小さい free list をたくさん持つらしい.あとページ内のメモリが全開放されると積極的に OS に返すらしい.technical report の paper: https://t.co/Bt9lC3zhMz"
Mimalloc: Free List Sharding in Action - Microsoft Research
Microsoft、高性能メモリアロケータ「mimalloc」公開 | マイナビニュース

libdivide, optimized integer division
ridiculousfish/libdivide: Official git repository for libdivide: optimized integer division
はじめてのにき(2018-03-13)
8cc/parse.c at master · rui314/8cc · GitHub
rui314/9cc: A Small C Compiler
https://maierfelix.github.io/mini-c/
maierfelix/mini-c: C to WebAssembly compiler
まさみさんは語りたいさんのツイート: "G-FreeはROPで利用されるガジェットになりうるコードシーケンスを生成しないCコンパイラのようだ。そしてx86のガジェットコード面白い。CISCだけにやりたい放題だ(笑)。 https://t.co/xm0vGaR1Tk… "
acsac2010rop.pdf
pagabucさんのツイート: "Today we are releasing clang-gfree, a set of LLVM machine passes to produce (almost) gadget-less binaries for x86-64! Go check it out: https://t.co/ZSUIe4gJtr"
pagabuc/gfree: Implementation of G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
Fadisさんのツイート: "libxsmm: Intelアーキテクチャ上で小さい行列を効率よく計算するために作られたライブラリ https://t.co/JCouuNTCnW #kernelvm"
hfp/libxsmm: Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives.
gifnksm/gifcc: Tiny c compiler
chikoskiさんのツイート: "ES5をCにコンパイルするツール、JS2C https://t.co/zkhgpD4DzY 開発中のようで、ノート(https://t.co/m9rliFekyO)やブログ(https://t.co/GQBeobM22z)は示唆に富んでて面白い。"
js-to-c/NOTES.md at master · timruffles/js-to-c
septag/sx: Portable base library for C programmers, designed for performance and simplicity.
cdecl.c
Rui Ueyamaさんのツイート: "不必要に難しいことで有名なC言語の型の構文を解説してみた。これを読めばvoid (*signal(int, void (*)(int)))(int)とかも読めるようになるはず(多分)。 https://t.co/a85pc5FsV2"
低レイヤを知りたい人のためのCコンパイラ作成入門
(*(void (*)())shellcode)() とは - Qiita
hiromi-miさんはTwitterを使っています: 「というわけで #seccamp 2019 Y-II Cコンパイラ自作ゼミに参加してきました、ありがとうございました. 結局、C++のクラス機構の一部、ステップ実行情報の出力、template &lt;typename T&gt;add&lt;T&gt;(T a, T b); のような関数定義を実体化できるようにしました. 進捗は次の通りです: https://t.co/tiEFbPYtG0」 / Twitter
hiromi-mi/hanando-fukui: Self-hosted (Subset of) C Compiler
DoctorWkt/acwj: A Compiler Writing Journey
Cello • High Level C
orangeduck/Cello: Higher level programming in C
arithy/packcc: A packrat parser generator for C
Rui UeyamaさんはTwitterを使っています 「いままでにないレベルでchibiccに機能追加している人からメールがきた。GCC互換inline asmとかint128みたいな機能とかが増えてる。これはすごいな。https://t.co/LlyFPZiD6z」 / Twitter
cosmopolitan/README.cosmo at master · jart/cosmopolitan
blog/bit-operation.md at main · herumi/blog

Wikipedia

演算子

条件演算子 - Wikipedia
エルビス演算子 - Wikipedia
Null合体演算子 - Wikipedia
Null条件演算子 - Wikipedia
Three-way comparison - Wikipedia
CとC++の演算子 - Wikipedia
CとC++の演算子 - Wikipedia

ライブラリ

ssize_t ‐ 通信用語の基礎知識
time_t - Wikipedia
printf - Wikipedia
printf - Wikipedia
strlcpy - Wikipedia
strlcat - Wikipedia
strlcpy(3)
strscpy
まさみさんは語りたいさんのツイート: "TLの皆さんから教わったstr*cpy再度まとめ ・strncpy:固定長の配列に文字列をコピーするための関数 ・strlcpy:ユーザが勘違いしているstrncpyの挙動をするように作られた ・strscpy:挙動をより安全側に倒したstrlcpyの実装(ただし極端なアドレスを渡せば死亡する)"
まさみさんは語りたいさんのツイート: "ちなみにlinuxカーネルのstrncpy_from_*は動作が違う・・・ ・strncpy_from_user:strncpyとほぼ同じだがdstの残りを0埋めはしない ・strncpy_from_unsafe:strscpyとほぼ同じだが-E2BIGを返さない。"
まさみさんは語りたいさんのツイート: "strscpyの実装、面白いな。2つのループになってるのか。1つ目はlong型でaligned access、2つ目はcharで1byteずつアクセスしてる。"

引数 - Wikipedia
評価戦略 - Wikipedia
結合法則 - Wikipedia
冪乗 - Wikipedia
端数処理 - Wikipedia
絶対値 - Wikipedia
フリースタンディング環境 - Wikipedia
C99 - Wikipedia
C11 (C言語) - Wikipedia
mattnさんはTwitterを使っています 「C言語の switch 文、緩すぎて脱法できちゃうからなぁ。 https://t.co/lS7fAWSXZL」 / Twitter
mattnさんはTwitterを使っています 「ちなみにこれは Duff's device という手法です。 https://t.co/iBSCogYHQp」 / Twitter
Duff's device - Wikipedia
Kazuho OkuさんはTwitterを使っています 「これ send(short to, short from, int count) { if (count &gt; 0) to[0] = from[count -1]; } と等価だよね、という」 / Twitter
CPL (プログラミング言語) - Wikipedia
BCPL - Wikipedia
B言語 - Wikipedia

Twitter

その他

最初のコンパイラ

Miura HidekiさんはTwitterを使っています 「多分、B(かBCPL)」 / Twitter
Shinya KatoさんはTwitterを使っています 「C コンパイラの最初の実装って何の言語で書かれていたんだろうか」 / Twitter
Miura HidekiさんはTwitterを使っています 「ごめんなさい、アセンブラだそうです... https://t.co/VtEH7n4sec」 / Twitter
c — Cコンパイラの歴史は何ですか?
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 最初のフルセットのCコンパイラはCで書かれていた可能性もあるかな。もっとも、何をもって「フルセットのCコンパイラ」とするかは言語仕様も厳格でなかったでしょうからどうとでも言えそうですが :)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 仕様が固まったCの最初はPCC(Portable C Compiler)でしょうかね。もちろん、Cで書かれています。」 / Twitter
Miura HidekiさんはTwitterを使っています 「と思ったら、やっぱりBを順次拡張していったっぽい https://t.co/PN8ZvyyGuh」 / Twitter
Chistory
Shinya KatoさんはTwitterを使っています 「@miura1729 B を1度セルフホストして、そこから拡張していったっぽい感じがしますよね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@0x19f 論文を読む限りそんな感じですね。Bそのもの(と拡張の末に作られたC)以外はアセンブラで書いたっぽいですけど」 / Twitter

C++

kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (true) int a = 1; else int a = 0; まあ書けるだろうけどなんとも違和感がある」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (false) int32_t int32_t; else int32_t int32_t;」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「for (int i = 0; i &lt;100; ++ i) ... だけでなくて for (100; ;) ... とかも書ける (それはそう)」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「int a = 0; ← これは declaration using ll = long long; ← これも declaration static_assert (true, ""); ← これも ; ← これも」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「0ull や 0llU などは書けるが 0lul とか 0lL とかは書けないらしい」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「pure virtual method を宣言するときの ... = 0; の 0 の部分があるために integer-literal のうちで 0 だけ特別扱いしないとだめに見える」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「どう考えてもおかしいと思ってたら参考にしてた文法の表のミスだった」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「C++ の文法、複雑すぎます」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「std::set に対する std::lower_bound で TLE する C++ 初心者の話はたまに聞くけど、このミスは clang-tidy に -checks=perf\* を付けて実行したら自動で指摘してもらえるようです https://t.co/w3xKjahP9K」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「-fix って付けたら自動で修正までしてもらえました」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばSpider MonkeyをWASIで動かしたというあのプロジェクト、現状のwasi-sdkだとC++の例外が使えない問題とかどうしたんだろう。まさか例外を一切使ってない?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「聞いてみたら本当にSpider Monkeyは例外をそもそも使ってないらしい。おまけでV8やJavaScriptCoreも使っていないらしいことを教わった。マジか。」 / Twitter
エヌユルさんはTwitterを使っています 「@igrep C++の例外割と忌み嫌われてますからねえ Googleも基本的にコーディングルールで使わないらしい」 / Twitter

_Atomic

Nerry さんはTwitterを使っています: 「usbcmdレジスタを_Atomic uint32で定義して usbcmd |= hogehoge すると機種によってはうまく動かない」 / Twitter
Nerry さんはTwitterを使っています: 「usbcmd |= hogehoge をコンパイルすると lock or [usbcmd], hogehoge になるが、うまく動く機種と動かない機種がある。 usbcmd = usbcmd | hoge に書き換えると以下のような機械語になって動く mov eax, [usbcmd] or eax, hogehoge xchg [ucbcmd], eax」 / Twitter
Nerry さんはTwitterを使っています: 「以上から A |= B と A = A | B は必ずしも等価ではない。」 / Twitter

メンバ関数へのポインタ

鯉江さんのツイート: "メンバ関数のポインタは確認してないですが、メンバのポインタは素朴に実装すると構造体の先頭からのオフセットになって、それだと0に特別な意味は持たせられないのでnull pointerのビット表現には別のものをつかう、というはなしがARM書いてあったような記憶です。 https://t.co/uwEdj5dzaR… https://t.co/Q7Y6J3ZTBR"
Ideone.com - YK4oHe - Online C++ Compiler & Debugging Tool
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い、x64でもそうなりますね。知らなかった。… "

opaque pointer

ゆたかさんさんのツイート: "C言語で構造体は使えるけれど、構造体のメンバーに直接アクセスさせないようにするにはどうすればよいでしょうか? 答え:構造体をtypedefしたものだけを開示してポインタとして使う… "
SODA Noriyukiさんのツイート: "このイディオムはopaque pointerと呼ばれててその名でググれます。 typedefはせず struct foo; で済ませ、またヘッダ内で宣言されてる関数呼ばない場合は # include "foo.h" の代わりに struct foo; で済ます変種もあったり(再コンパイルの必要性が減るのでこっちの方が好き) https://t.co/u0BXaV0O0H"
まさみさんは語りたいさんのツイート: "私はelfutilsで知りましたが、デバッグが大変面倒なので死にそうになりました。全部ソースコードひっくり返して実装調べた記憶が。… "
SODA Noriyukiさんのツイート: "その辺は良い開発支援ツールがあるか、あるいはコーディング規約の縛りがあればあまり困らないような。 もう30年くらいopaque poniterばかり使ってプログラム書いてますが、「struct foo の関数宣言は foo.h に入れ、構造体定義は foo.c に入れる」程度の規約で運用していて特に困った覚えがないです… https://t.co/q5yAWmsBsf"
KOYAMA Youichiさんのツイート: "私も同様に foo.h には関数だけ書いて foo.c に構造体を書くのですが、 foo をライブラリとして提供する場合 (おそらく strip しちゃうので)、それを使ったプログラムをビルドすると gdb とかでのデバッグ時にロクに構造体の中身が表示できないというワナはありそうですね。… https://t.co/qd1yeCaw5I"
SODA Noriyukiさんのツイート: "プロプライエタリのライブラリの内部でコケてると、死んで!って気持ちになりそうですね…^^;… "
なかのん&マジックさんのツイート: "こういうの常識では……違うの……?"
y-Akiさんのツイート: "C(++)言語で大きな物を作るときは必須と言える手法ですね。大規模C++本とかにもあるっけか ちっちゃいプログラムしか扱ってないなら知らない事も多いかも… "
なかのん&マジックさんのツイート: "OSのAPIがそもそも使ってる手法なのに……… "

qrintf

Kazuho OkuさんはTwitterを使っています 「呼びました? https://t.co/66DW6gsNz6」 / Twitter
h2o/qrintf: sprintf accelerator for GCC and Clang
Hideki EIRAKUさんはTwitterを使っています 「そういえば、C の printf ってやつはランタイムで文字列から % 記号を見つけ出して解釈して中身を置き換えるっていう、ある意味インタープリター的に計算資源を浪費する仕組みなんだけど、昔から使われているよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「実際問題として速度差が出るのはI/Oを含まないsprintf系だけで、規格はそのような最適化を認めてるしstrcpyへの変換とかはCコンパイラもやると思うけどCプログラムでそこがボトルネックになる場合は専用コード書く人も多くて…みたいな印象。qrintfで速くなるプログラムはある」 / Twitter

NULL

Kazuho OkuさんはTwitterを使っています 「NULLが0じゃないみたいな、esotericなアーキテクチャでいうと、WebAssemblyのメモリモデルは結局、ノイマン型になったの? それともデータ空間と関数ポインタで値が被ったりするハーバード型なの?」 / Twitter
yoh2さんはTwitterを使っています 「C 界隈のめんどくさい人はそこで NULL のビットパターンはゼロではないかもしれないが 0 をポインタにキャストすると NULL であることは確かだと言い始める。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「構造体をmemsetでゼロクリアするコード見るたびに苦笑いするやつ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「*a = (struct S){.i = 123}; とか書けば、i を123にセットしつつ、他のメンバーは数値型の場合はゼロ、ポインタの場合はNULLに初期化してくれるし、よっぽど便利」 / Twitter
Kazuho OkuさんはTwitterを使っています 「それはそうとNULLのビットパターンがゼロじゃない処理系には近づかないのが一番ですね」 / Twitter

NUL 終端していない文字列の printf

けろ🐸さんのツイート: "最近C言語で「ほえ~」ってなったのは、 char buf[4] = 'ABCD'; printf("%.*s", sizeof(buf), buf); でNULL終端してないchar*が簡単にprintfできること……はよ知りたかったわ"
けろ🐸さんのツイート: "コンパイル通さずに書いて怒られたけど、一行目はchar buf[4] = {'A','B','C','D'};の間違いだから、ゆるして…。(まあ雰囲気は伝わるはず)"
株式会社クローバーフィールドさんのツイート: "char buf[4] = “ABCD”; でもOKですね。 あと、厳密なことをいうと、*はint型の実引数を期待するので、sizeofの評価結果を渡すと未定義になります。 明示的にintでキャストしましょう。… "

フォーマット文字の文字数

るくすさんのツイート: "int len = sprintf(NULL, 0, format, args)でフォーマット文字の文字数返ってくるテクニック良くみるんだけど、これPOSIXに書いてある仕様なんすかね https://t.co/8pYFEklqsn"
まさみさんは語りたいさんのツイート: "カーネル内ではよくお世話になっています・・・。… "
Hiroaki Nakamuraさんのツイート: "おお、そんな技あったんですね。検索してみると https://t.co/xKejO9kgJU のRETURN VALUEに int len = snprintf(NULL, 0, format, args) で文字数取れるようなことが書いてありました。… "
fprintf, printf, snprintf, sprintf - print formatted output
herumiさんのツイート: "char buf[10]; int n = snprintf(NULL, 0, format, args); if (0 <= n && n < 10) { sprintf(buf, format, args); } がバッファオーバーフローする状況はありえるか(10点)。 https://t.co/U3OJlbAsk0"
herumiさんのツイート: "私の想定解は次のものでした。 const char *fmt="%'d\n"; int v = 12345678; // LC_NUMERIC=Cだった n=snprintf(NULL, 0, fmt, v);// 12345678なのでn=9 // 別スレッドでsetlocale(LC_NUMERIC, "en_US.UTF-8");が呼ばれた sprintf(buf, fmt, v); // 12,345,678が書き込まれてバッファオーバーフロー… https://t.co/5kU9QwuPUV"
herumiさんのツイート: "グローバルな状態に依存したくないときのために非標準ですがロケールを指定できるsnprintf_lとかWindowsだと_vscprintf_lとかがありますね。… "
herumiさんのツイート: "C++もずっとCのロケールを引きずっていて、数値と文字列の相互変換ですらロケール非依存でできる標準ライブラリが入ったのはC++17になってからです。… "
Kazuho Okuさんのツイート: "そもそもs(n)printf実行中に別スレッドでsetlocale呼ばれる可能性のあるコード、ということになると未定義動作になるような気がしました。未定義動作にバッファオーバーフローも含まれるという点に異論はないですが… "
herumiさんのツイート: "一応たまたま二つの関数の間で呼ばれたというつもりでした。 実行中にsetlocaleが呼ばれると未定義というのには同意です。 まあ、あまりよい問題ではなかったですね。すいません。>るくすさん。… "
るくすさんのツイート: "いえいえ。 この手の限られた制約からの状況把握はシステムの脆弱性を突いてエクスプロイトを書く際の重要なステップなので良い訓練になります。面白かったです。結構使うんですよね、TOCTOUは。 例えばメモリ使い果たして文字数の返り値だけネガティブにしとくとかも。race conditionはキリがないすね… https://t.co/pUiIYbPzCp"

klib

Kazuho Okuさんのツイート: "最近は klib とか使うイメージ。部品ごとに分かれてるし https://t.co/AVmoh0Zfw9… "
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library
NaOHaq(苛性ソーダ)さんのツイート: "Cで書いてると連結リストも連想配列も基本的に自前で実装せざるを得ないんだよな……。既製品を使おうとするとものごっついフレームワークの一部だったりするし……。"

3-stage bootstrap

Fumihiro MatsuiさんはTwitterを使っています: 「そういえばセルフホストは複数世代検証が要るんだっけか。まず既存コンパイラで自作のをコンパイルしてAを作って、それ使ってBを作って、さらにBでCを作って、BとCが等しいか比較検証とかするんだっけ。BもCも自作コンパイラ由来(Aは違う)なので入力等しければ本来は同じはずで。全然詳しくないけど」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「でもコンパイラって、リンクされるライブラリの寄与とか除いても、自身のソースには無いけど自身をコンパイルした親コンパイラに由来するバイナリが普通に混じり得るはずで、そういうのの伝搬とかちゃんと考えるとなんかそれ自体結構面倒そうだな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんか3回って数字が妙に記憶に残ってるんだけど単にGCCのビルド&検証がそうだったからかも」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「そうだそうだ、3-stage bootstrap ってやつだ」 / Twitter

配列とポインタの判別

Kazuho OkuさんはTwitterを使っています 「C言語で、ある値がポインタなのか配列なのかを知る方法ってあるのかなぁ(gcc/clang拡張でも可)。意図としては countof(array) みたいなマクロで、引数arrayに渡されるものがポインタではなく配列であることをビルド時に保証したい cf. https://t.co/izurmOdiTl」 / Twitter
_countof Macro | Microsoft Docs
Yuki Yugui SonodaさんはTwitterを使っています 「@kazuho &amp;してからintptr_tにキャストして、元の値と比較したらイケませんか? もっと移植性のある方法もあった気はするんですが」 / Twitter
mattnさんはTwitterを使っています 「@kazuho gcc だとこのマクロがうまく動きそうです。 # define IS_ARRAY(arg) __builtin_choose_expr(__builtin_types_compatible_p(typeof(arg[0]) [], typeof(arg)), 1, 0)」 / Twitter
mattnさんはTwitterを使っています 「@kazuho ビルド時じゃないか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@mattn_jp いや __builtin_constant_p に食わせてOKなら使えばいいので、これもいけそうな気がしますねありがとうございます」 / Twitter

GNU

Kazuho OkuさんはTwitterを使っています 「char buf[256]; strerror_r(errno, buf, sizeof(buf)); printf("%s\n", buf); このコードが未定義動作になっちゃうことがあるlinuxの罠に(また)はまった」 / Twitter
Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の場合は buf に格納されるとは限らない、ってことですか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tkihira yes! そのせいで、どっかで _GNU_SOURCE が定義されていると未定義動作になります」 / Twitter
Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の仕様、気持ちはわかるけれど、これはひどいですねw」 / Twitter
asariさんはTwitterを使っています 「@tkihira @kazuho 知らなかったです。戻り値を受け取っていればコンパイル時に警告が出てはくれるわけですね。うーん https://t.co/LY6oEJVbYk」 / Twitter
MSC14-C. 必要もなくコードをプラットフォーム依存にしない

変わったエンディアン

FadisさんはTwitterを使っています 「リトルエンディアンとビッグエンディアンの両方に対応して万全なつもりでいるアプリケーションに襲いかかるPDPエンディアン」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「K.トンプソンの名付けたNUXI問題、PDPよりさらに変態な順序あるとP.J.プラウガーが書いていたっけ…8byteだと更に悪夢に。」 / Twitter
R. ShioyaさんはTwitterを使っています 「解析されないように,狂ったエンディアン(3,1,2,0 とか)を持つオリジナルの命令セットの VM を作って,その上で認証とかのコードを動かしたりしてるのを見たことがあったり」 / Twitter
R. ShioyaさんはTwitterを使っています 「ちなみにこれ確か最終的にはクラックされてしまったのだけど,あそこまでやってダメならやっぱアルゴリズムを秘密にすることで守る方法はダメなんだなというのを体感する良い機会だったように思う」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya ほほぅ…カジュアルな解析を防ぐ、みたいな意味ですかね。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu 大分むかしの話なんですけど,コピー対策としてできる事はなんでもやるというような雰囲気だったと思います.一番やられると困るのが解析の結果プロダクトキーのジェネレータを作られてしまうことなんですが,そこは今は一般にネットワーク認証の導入で解決されているように思います.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そういうコンテキストでしたか。 (昔は守る方も破る方も良く考えるなぁ…と思うマニアックなこと多かった印象ありますね…FDD/FDCを直接操作して不正セクタ存在が正規品とか)」 / Twitter

加算のキャリービット

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Verilogで、加算のキャリービットを取得することってできるのだろうか?こんなことがやりたいのだけど。 c, addr &lt;= addr + 11'd1; addrは11ビットのレジスタ。インクリメントしていって、オーバーフローした瞬間を捉えたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uchan_nos https://t.co/hxGl6B4OuC 出力を1bit余分に多く宣言すればいいみたいですね」 / Twitter
FPGAで信号処理:加算・減算とエラー処理
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@miura1729 1ビット以上大きな信号を定義して代入する方法ですね。なるほど。」 / Twitter

簡易なレジスタマシン

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「ASTからいきなりレジスタマシンの機械語を吐くのは辛いことが分かった。スタックマシンの機械語を吐く様にした後、本物の機械語ではなく中間言語(無限のレジスタを持つ機械語みたいなもの)を吐く様にしてから、レジスタ割り付けを行うというのが9ccでの手法みたい。」 / Twitter
monochromeさんはTwitterを使っています 「@uchan_nos 最新作のchibiccでは、シンプルな方法でASTから直接レジスタマシンっぽいアセンブリを吐くようになってますね。」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 おお、そうなんですか」 / Twitter
monochromeさんはTwitterを使っています 「@uchan_nos 加算命令だと①右辺を評価してraxへ②raxをpush③左辺をraxへ④右辺をrdiへpop⑤add rdi,raxみたいな感じですね。CPUスタックも使うので本物のレジスタマシンよりは遅くなりますが、シンプルでそこそこ速い割り切ったやり方です。 https://t.co/2P7BqgGvHE」 / Twitter
chibicc/codegen.c at 90d1f7f199cc55b13c7fdb5839d1409806633fdb · rui314/chibicc
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 なるほど。これなら1 passなのにそれなりのレジスタマシンぽいコードが吐けるんですね。しかし、私が昨日考えた方式では、1 passなのにスタックを全く使わず、限られた個数のレジスタで任意の四則演算式を計算できるのではないかと思っています。これから検証しますが。」 / Twitter

bss

DQNEOさんはTwitterを使っています 「ネットで見かけて都市伝説かと思ってたけど、本当にあるんですね…」 / Twitter
Takuo KihiraさんはTwitterを使っています 「組み込み機器向けのCコンパイラで、起動の高速化のために.bss領域をゼロクリアせず、結果としてstatic変数がゼロで初期化されない奴に出会ってから、仕様に書いてあるからこうやって使っても安全、みたいな考え方が出来なくなってしまったw」 / Twitter
どぅーあきさんはTwitterを使っています 「@DQNEO こういうのに限らず、C言語はコンパイラのバグって結構あった印象ある」 / Twitter
DQNEOさんはTwitterを使っています 「@do_aki Cコンパイラの多様性ってすごいですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「コンパイラの問題なのかな、というか、コンパイラがANSI準拠してることと、プログラムがある環境のある条件で実行される場合に、その実行環境がANSI準拠かは割と別問題だと思うので(たとえば、一定の条件下ではstatic変数が一切使えないとかあるよね)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、昔の Palm OS だと、起動条件によってはアクセスできるのは code segment の一部(最大32KBのみ)で、static 変数も使えなかった。僕は自分でローダ書いて展開してたけど」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「bssのクリアはコンパイラじゃなくてランタイム(startupルーチン)の分担で、組み込みだとstartupルーチンもカスタマイズしてるってのもよくある話なので、単にそのプロジェクトでよく分かってないにも関わらずカスタマイズしててバグらせただけっていうオチの可能性が残ってるような気もする…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「あるいは元ツイートに「起動の高速化のために」って書いてあるように、そのプロジェクトでは意図的にstartupルーチンをカスタマイズしてて、自前で初期化するコード規約にしているとか。 どちらかというとこっちかな… その場合もコンパイラのせいじゃなく、言語仕様に反するカスタマイズも可能って話」 / Twitter
Kazuho OkuさんはTwitterを使っています 「んー、別にそう決まっているわけでもないと思う。たとえば、昔懐かしCOMだとtextもdataもbssも区別なく、ただコンパイラが吐いたファイルをそのままメモリにロードするだけじゃなかったでしたっけ」 / Twitter
椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「初期値なしのグローバル変数や static 変数は bss 領域に配置され,main() が呼ばれる前に startup でゼロクリアされることは言語仕様として明記されている。でもそれはコンパイラの仕事ではなく,ランタイムシステムで実装されるべきこと(普通はアセンブラで書いてある)。」 / Twitter

可変長引数

眼力 玉壱號さんはTwitterを使っています 「引数を全部 stack で渡す場合、可変長引数を考えた時に右側から評価すれば計算しては push を引数の数だけ繰り返す事で実装出来る。左側からだとちょっと頑張らないといけない。」 / Twitter
ロボ太さんはTwitterを使っています 「@Masa_nus 複数の引数を持つ関数に、副作用を伴う処理を引数として渡した場合、その処理の順番は規定されておらず、未定義ないし処理系依存動作になるんだったと思いますが、x86とARMで逆になる実装を採用した理由は私は知りません……」 / Twitter
𝙎𝙪𝙨𝙝𝙞𝙧𝙤𝙪 🍆𝙉𝙖𝙨𝙪🍣さんはTwitterを使っています 「@kaityo256 これ、メモリが後ろから確保されるか前から確保されるかみたいな話なんでしょうか?」 / Twitter
ロボ太さんはTwitterを使っています 「おー、有名なこれ、ちゃんとx86では「3 2 1」に、ARMでは「1 2 3」になるんだ。 https://t.co/dLF8voQvHF」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「Resister 渡しが一般化したんでその辺はどうでも良くなった感じ…」 / Twitter

void*

ケケモコソカメニハさんはTwitterを使っています 「実際にサイズ0のvoid型変数を使えてしまうと、void *へのポインタ演算が足しても引いても同じ値ということになって、多くのコンパイラでのvoid *の演算は生のアドレス演算というのが変に。規格ではvoid *の演算はどうでしたっけ……?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@ytomino void *の演算は規格では未定義、GNU Cではchar *の演算と同じ、だったはずです」 / Twitter
ケケモコソカメニハさんはTwitterを使っています 「@rui314 ありがとうございます。未定義なら仮にvoid *p; ++p;してもpの値が変化しない実装をしても違反ではないですね。若干の希望が!?(でもvoid x[2];で&x[0] == &x[1]になってしまうのは違反っぽいです)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@ytomino void x[2]というのが未定義ですよね? void *x[2]なら合法ですけど。」 / Twitter
ケケモコソカメニハさんはTwitterを使っています 「@rui314 や、すみません。voidを他言語のunit型同様に扱えるようにするならば、という仮定の上での話です。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@ytomino 一般に&x[0] != &x[1]にならないといけないんでしたっけ? あとvoid以外にstruct{}というのもゼロ幅な型としてはしっくりくるような。」 / Twitter
ケケモコソカメニハさんはTwitterを使っています 「@rui314 各オブジェクトのポインタの値は全部違ってなければいけなかった気がします……と思って試してみたら、gcc/clangではsizeof(struct { }) == 0になりますね(????)」 / Twitter
ケケモコソカメニハさんはTwitterを使っています 「@rui314 http://t.co/MkFkwf9rAW gcc拡張でした。」 / Twitter
Empty Structures - Using the GNU Compiler Collection (GCC)
ケケモコソカメニハさんはTwitterを使っています 「@rui314 g++を使うとsizeof(struct { }) == 1でした。ああ冷や汗をかきました。」 / Twitter

2 つの uint の中点の計算

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2つのuintの中点を計算するいくつかの方法: よく言われる (a+b)/2 はオーバーフローする危険性があるので low+(high-low)/2 を使え、というのは知られているが、(a/2)+(b/2)+(a&b&1) というのは知らなかった。ほー。これらをSIMDを使って書く方法も紹介されている。 https://t.co/TdOlendXF2」 / Twitter
On finding the average of two unsigned integers without overflow - The Old New Thing
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: C++に入ったstd::midpointは、実はこんだけ奥が深い。型の差異、アセンブラ、移植性、ポインタ、そしてINFやNaNも考慮しなければならない。 https://t.co/VjXzCHqkY1」 / Twitter
Shiro KawaiさんはTwitterを使っています 「おお、これは賢い。しかし2016年までSamsungが特許持ってたんだ。https://t.co/o2xgy1Etwx」 / Twitter
US6007232A - Calculating the average of two integer numbers rounded towards zero in a single instruction cycle - Google Patents

@kazuho

その他

Kazuho OkuさんはTwitterを使っています 「sprintf使えばいいのに。正しいコードを書くのが目的なんであって、バグがあるかもしれないけどバッファオーバーランしないコードを書くのが目的ではないでしょ」 / Twitter
FUJI GoroさんはTwitterを使っています 「snprintf(NULL, 0, "...", ...) とすると生成するはずの文字列の長さだけを得られるのだけど、何度もsnprintfを呼び出して文字列を生成するときに最後のsnprintfの第2引数でNULのぶんを考慮していなかったため、format文字列が1文字削れてNULが差し込まれるというバグだった。」 / Twitter
FUJI GoroさんはTwitterを使っています 「Cでsprintf()ではなくsnprintf()を使っていたがゆえにおきたバグと格闘して学びがあった。 sprintf()に書き直したかったけど、そうするとlinterがうるさいんだよな…というわけでsnprintfを使うままで修正。はあ疲れた。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「https://t.co/CocyabJ20Z」 / Twitter
Kazuho OkuさんはTwitterを使っています 「全てのケースでstrcpy_sでエラーチェック頑張るのも大変だし、文字数制限がないなら動的メモリ確保、あるなら長さチェックしてからstrcpyとかでいい」 / Twitter
Takafumi YonekuraさんはTwitterを使っています 「僕はプログラミングに対して一家言*無い*人なので、「え?strcpy使ってるの?ニマァ」みたいなのほんと苦手なんだよね。もうちょっと世界を良くする方向性で生きたら?と思ってしまう。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「strcpyとかsprintfのかわりにstrlcpyとかsnprintfを勧める人、バッファオーバーランを防げばプログラムが正しく動くようになると思ってるんですか、って話なんだよね。実際はtruncationによるデータ破壊や脆弱性とかあるし、他の言語同様に動的にメモリ確保するのが一番 (e.g., strdup, asprintf)」 / Twitter
FUJI GoroさんはTwitterを使っています 「@kazuho 100%同意なんですがlinterを黙らせるのが面倒くさくてつい…いや…lieterのせいでバグを誘発しやすいコードを書くくらいならそのルールはdisableすべきですね……。本来あるべき姿にします…!!!!!!」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「すべてのケースでstrcpy_sで置換、、、って話、それWindows XP SP1でやった話だけどな。でもstrcat_sと書き換えようとしてstrcpy_sになってたというとあるタイポは笑った」 / Twitter

Kazuho OkuさんはTwitterを使っています 「strcpyとかsprintfのかわりにstrlcpyとかsnprintfを勧める人、バッファオーバーランを防げばプログラムが正しく動くようになると思ってるんですか、って話なんだよね。実際はtruncationによるデータ破壊や脆弱性とかあるし、他の言語同様に動的にメモリ確保するのが一番 (e.g., strdup, asprintf)」 / Twitter
Takafumi YonekuraさんはTwitterを使っています 「僕はプログラミングに対して一家言*無い*人なので、「え?strcpy使ってるの?ニマァ」みたいなのほんと苦手なんだよね。もうちょっと世界を良くする方向性で生きたら?と思ってしまう。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「全てのケースでstrcpy_sでエラーチェック頑張るのも大変だし、文字数制限がないなら動的メモリ確保、あるなら長さチェックしてからstrcpyとかでいい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「プログラミング言語、特に習熟の過程で「よくわかんないけど動いた」みたいなのは絶対必要なんだけど、C言語の場合、「よくわかんないけど動いたり動かなかったり、なんか関係ないところ破壊しながら動いてたりする」。バグを踏むケースで危険な副作用出る可能性が高いがゆえに...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「新しいCプログラマが育ちにくい(育てにくい)というのがC言語の限界なんだと思う」 / Twitter
BasukeさんはTwitterを使っています 「@kazuho ユーザーランドで何やったって何が壊れるわけでもないので、バンバン書いてクラッシュさせればいいのにねーと思うんですよね。誰が死ぬわけでもなし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@basuke ええ。最近だとasanとかubsanとか使えば、だいぶマシにはなりますからね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「char buf[sizeof("255")]; sprintf(buf, "%" PRIu8, uint8_val); みたいなコードを書いてる時に、snprintf使わないんですかって言われて、勘弁してよ... ってなるわけです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「プログラミングと標準化の技術的アプローチって、ちょっと違っていて。 プログラミングが、一番正しい答えを追い求めて駒を進めて作業だとしたら、標準化は、前提条件によって異なる様々なパターンを想定して、その中で許容できるものを最大限にしつつ定石を求めていくのに近いっていうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえあば、ある種の設計は仕様としては許可されるけど、なんらかの問題がある設計だから、パフォーマンス要件上は無視して構わない、とか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「んー、言語仕様的には線形合同法よりマトモな方法で実装しても構わなくて(つまり昔からあるCライブラリ特有の問題で)、昔からあって互換性重要なCライブラリの場合はrandomとかdrand48とか、よりマトモなものがPOSIXに定義されてる」 / Twitter
徳永広夢さんはTwitterを使っています 「C言語のrand、新しい標準の関数を追加するなり、deprecateするなりされないのが不思議」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ISO Cみたいな仕様で介入するとなると、一定品質以下のPRNGを非推奨にするみたいな形になるんだろうけど、品質の定義で合意とるの大変だろうなぁ」 / Twitter

histric

histric-1

Kazuho Okuさんのツイート: "Cのソースファイルから(プリプロセッサかけた後でもいいので) ASTをサクッと、JSON等で取り出すプログラムってないのかしら。structをダンプするコードを生成したい"
Kazuho Okuさんのツイート: "こういうコードを手書きするの嫌なんです… "
成瀬さんのツイート: "libclangとか使う感じですかねぇ。前に書いたスクリプトだと https://t.co/tcqh5OJUIm こういう… "
Add CRubyBot · nadoka/nadoka@1b7ae45
Kazuho Okuさんのツイート: "libclang を使うプログラムを書くのは嫌じゃーって思ってたんですが、なるほど FFI で叩くという手は良いかもですね… "
Daisuke Makiさんのツイート: "うろ覚えですが、これがgoで似たようなことしてた気がします https://t.co/OLAFiEnzhp… "
Kazuho Okuさんのツイート: "srd!!! ありがとうございますありがとうございます… "
Yoshimasa Niwaさんのツイート: "`clang -cc1 -ast-dump` の結果をなんかスクリプトでちょいちょいする感じですかね… "
Keigo Imaiさんのツイート: "大昔に Haskell の Language.C で似たようなことをやりました。この手のことをやるの代数的データ型があると最強ですね。 https://t.co/kzjJukBpUH… "
Language.C を使ってC言語のソースコードを解析する (with Data.Generics) - keigoiの日記
ケケモコソカメニハさんのツイート: "https://t.co/L82sPEejNW ocamlですが、まさにそういうことを目的としたCILもあります… "
cil-project/cil: C Intermediate Language
Qさんのツイート: ".oO(CIL開発が停滞しているのでは。。。)… "
島鉄雄さんのツイート: "stdio バッファは printf 等が改行を出力する度にバッファをフラッシュするもんだと思ってた。 printf は改行かもしれないけど、fwrite はファイルに書き出した後に fflush() せずに close() (fclose() でない)すると何も書きだされない。 I/O のたびに自動的にフラッシュするは違うような気がする…… https://t.co/s6nvyep2Pq"
島鉄雄さんのツイート: "#include <stdio.h> #include <unistd.h> int main() { FILE* file = fopen("test.txt", "w"); fwrite("test", 1, 4, file); // fflush(file); close(fileno(file)); } このコードを実行すると 0 バイトの test.txt が書きだされる。(Linux, Windows とも) fflush() すれば勿論 4 バイトになる"
島鉄雄さんのツイート: "Wikipedia を見ていたら uint64_t xorshift128plus(uint64_t state[static 2]) { [static 2] みたいな書き方を始めて見た… stackoverflow に答えがあったけど、少なくとも2要素があるという事らしい でも1要素の配列を渡してもワーニングすら出ないのはC言語らしいがw https://t.co/cTYZuD0pn9… https://t.co/QrK99wKVS9"
c - What is the purpose of static keyword in array parameter of function like "char s[static 10]"? - Stack Overflow
コンパイラ作りの魅力を語る / Making compilers is fun - Speaker Deck
DQNEOさんのツイート: "PHPerKaigi 2019で、C/Goコンパイラを作る過程で学んだことについて話しました! 資料を公開しました。 「コンパイラ作りの魅力を語る」 https://t.co/CRvivRYFAa #phperkaigi"
Kazuho Okuさんのツイート: "C言語、だいたいいいんだけどクロージャがないことだけが辛い"
Fadisさんのツイート: "ベアメタルC++動かす準備ってCで使ってたldscriptにvtable置き場足して、bssとdataを初期値にして(Cでもやるやつ)preinit_arrayとinit_arrayの中のポインタを全てcallして(Cでもやるやつ)、ハードウェアのセットアップして(Cでもやるやつ)mainに飛ぶだけ(Cでもやるやつ)だったと思うんだけどな"
Fadisさんのツイート: "ベアメタルC++でnewするにはメモリ確保できる必要があるけど、libstdc++のlibsupc++を使う場合最終的にlibcのmallocが呼ばれる。libcにnewlibを使う場合最終的にプラットフォーム毎に実装する関数_sbrk()にたどり着く為、「newされたらどうしよう」はここで解決すると良い"
品川 高廣さんのツイート: "gcc/clang限定。 #include <stdio.h> int main(int argc, char *argv[]) { if ((void*)main < __builtin_return_address(0) && __builtin_return_address(0) < &&e + 0xff) return argc > 1 ? *argv[argc-1]-'0' + main(argc-1, argv) : 0; printf("%d\n", main(argc, argv)); e: return 0; }… https://t.co/V5IzQQX9y9"
hikaliumさんのツイート: "これの何がおもしろいのかというと、低レイヤの人なら親しみのある「その型のアドレスの下位ビット、常に0では?」というネタに加え、ポインタ-整数キャストをできないなら隣接要素のアドレス差が1byteのchar*にキャストして(char*)0との差分を取ればいいじゃない、という狂った発想です。 #w2019progB… https://t.co/zTUX91qJfR"
hikaliumさんのツイート: "ついにワンライナーになった(誰も嬉しくない)。 #include <stdio.h> int main(int c, char*v[]) { return c>=2? ((char*)v-((char*)0))&1? ((char**)(((char*)v-((char*)0))-1))[1][0]-'0'+main(c-1,v+1) :printf("%d¥n",main(c,(char**)(((char*)v-((char*)0))|1))) :0; }"
品川 高廣さんのツイート: "関数末尾のアドレスを正確に求められないのが難点。このコードは clang -O3 でコンパイルすると、ラベル e の後ろで main() を呼び出すコードが生成される。asm volatile ("") を挟むと clang では回避できるが、今度は gcc で動かなくなる。UNIX 限定なら etext が使える。"

histric-2

島鉄雄さんのツイート: "C11を使ってオブジェクト指向もどきをしてみた。 https://t.co/fG0XngOOfp 自前プリプロセッサでオブジェクト指向する方法は色々あるけど、C11だと合法的(?)にここまで出来るっていうテスト。 自前プリプロセッサを突き詰めると別言語になってしまうけど、この程度なら全然良いんじゃないかね。… https://t.co/nmmm8OqDyi"
C 言語でオブジェクト指向(案)
島鉄雄さんのツイート: "ほんとはコンストラクタとか凝りたかったけど、長くなるので今回は割愛。 C11 でオブジェクト指向する標準的な規約(プロトコル)を少し考えたくなった。 最終的には GObject に行きつくだけかもしれないが… いや GTK の API にこのプリプロセッサをかませばいいのか…"
Kazuho OkuさんはTwitterを使っています: 「return a == b; を書き直させられた話、「言語仕様知ってればわかるだろ」って批判するなら、GCCの「ビット演算子と比較演算子を組み合わせる場合には () を使え」っていう警告(-Wparentheses)も同じ勢いで批判してほしい気持ちある」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「なんていうか、言語仕様知ってればわかるだろ、っていうのは読みやすさに関するコンパイラの警告全否定する話だし、return a == b が許容されるのは、return a = b が警告を出すという前提において、読み誤りようがないから、とかそういう理由づけになるんじゃないか」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「sprintfで「%.8s」という記法が役立つ日が来た。%sに対して精度(.n)を与えることで配列の末尾がnul終端されてなくても使えるんだよ。っていうのを以前ベテラン組み込みエンジニアさんから教えてもらった。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「(Cの)const外しキャストは従来から違法だったわけだけど、const外しキャストが違法であることを積極的に活用してconst外し==dead code判定==最適化で消すコンパイラが爆誕して人類とバグとの戦いは新たなステージへと https://t.co/P8R6MnVMLB」 / Twitter
7594591200220899443さんはTwitterを使っています: 「const外しキャストは明示的なキャストなので、プログラマの意図を尊重するため型の不一致の警告とかは出ない。出ないが、const外しキャストをdead codeの意図で使ってるプログラマなどいないはずなので、結果的に警告も何もなく既存のプログラムがなぜかぶっ壊れるという惨状が発生している」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「me freaks, adds `#define const` https://t.co/iHMVgTHXmC」 / Twitter
Shiro KawaiさんはTwitterを使っています: 「そうか、constなオブジェクトを変更することがUBなんであって、const落としても変更してなければ大丈夫なのか。 https://t.co/AlXoj5CheU」 / Twitter
yohさんはTwitterを使っています: 「@n_soda このケースはconst-ness objectそれ自身に対してconst除去したからマズイいのであって、const char* process0(const char*)内部実装をchar* process1(char*)で代用する程度の話には影響しないと思いました。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ごもっとも。 C/C++の規約原理主義的な最適化は、そろそろ何とかして欲しい。 (未定義のアクロバティックな活用ではなく、警告 or エラー停止する方向に) https://t.co/eWPAQsBxKC … https://t.co/oif4y0wVJ5」 / Twitter
島鉄雄さんはTwitterを使っています: 「メモリマップドI/Oの場合はその領域はそもそもキャッシュしない指定になってるはずだけど、通常のメモリ領域の場合は普通にキャッシュに載るでしょ。 で、CPUのキャッシュコヒーレンシにより一貫性が保たれてるはず。 DMAする為だけのデータをキャッシュに載せたくない場合は専用の命令がSSEにある。」 / Twitter
島鉄雄さんはTwitterを使っています: 「元記事の &gt; volatileなオブジェクト(volatileと指定されたメモリ領域)へのアクセスは、CPU内部のキャッシュ機構を通り越してその領域へ直接読み書きする形になっているはずです。 は間違ってると思われる。 volatileは最適化でレジスタに値を保持せずに、逐一メモリにアクセスするってだけでしょ。 https://t.co/voiP4LxzGZ」 / Twitter
FadisさんはTwitterを使っています: 「if「文」と三項演算子は別モンで、一番大きな違いは文であるため評価結果の型を決定する必要がない点」 / Twitter
yoh2さんはTwitterを使っています: 「?: 演算子の左端がCとC++で違うという割とどうでもいい気付きを得た。 cond ? a : b = c; がこうなる。 C: (cond ? a : b) = c; と同じ (エラー) C++: cond ? a : (b = c); と同じ」 / Twitter
yoh2さんはTwitterを使っています: 「ちなみにC++ で (cond ? a : b) = c; と書くと a か b へ c を代入する意味に。 代入演算子の左辺もCとC++で違うんだよね。Cでは unary-expression, C++では logical-or-expression。」 / Twitter
yoh2さんはTwitterを使っています: 「s/左端/右端/」 / Twitter
重巡洋艦 キノガッサさんはTwitterを使っています: 「@yoh2_sdj https://t.co/HiFMrmPJ0f」 / Twitter
条件演算子と左辺値の扱いの差 - yohhoyの日記
uint256_tさんはTwitterを使っています: 「clang, return 0 の 0のために alloca i32するのなんでだろう」 / Twitter
DrumatoさんはTwitterを使っています: 「@uint256_t これは結果論なんですが, int main(){ int x = 40; if(x == 30){ return 1; } } みたいなコードをclangに入力すると, true-block内でalloca i32した仮想レジスタに1を代入しています. main関数内で明示的にreturnされなかったときのために利用されているのかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています: 「LLVM, 賢いからmem2regとかそのあたりの最適化でallocaとかが消えて, phiとかで代用するのかな https://t.co/hBzjs8VNVR」 / Twitter
uint256_tさんはTwitterを使っています: 「@drumato clangを軽く読んでみました. どうやらこの方法のほうが, コードが簡単になりそう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t LLVMのallocaは確実にスタックに領域を取ってくれると思っていると最適化で酷い目に合います(それで泣いた」 / Twitter
uint256_tさんはTwitterを使っています: 「@miura1729 賢くなりすぎたコンパイラが人間を苦しめるいい例ですね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t 確かに。仕様をちゃんと読まないのが悪いと言えば悪いんですけど...」 / Twitter

histric-3

うーさんはTwitterを使っています: 「システムコールからの戻り値って基本はint型の戻り値だけなので,どうやってその値からerrnoに代入する値を決めているのかなあと思ったらこのコードにたどり着いた。-256&lt;result&lt;0なら,符号反転した値をerrnoに代入してる。 https://t.co/bQSGe54e08」 / Twitter
libc/bionic/__set_errno.c - platform/bionic - Git at Google
島鉄雄さんはTwitterを使っています 「これは、いわゆるパターンマッチに漏れがあるとエラーになる言語を使えば防げるバグだろう。 なのでこれは糞コードではない。 最近の C/C++ のコンパイラは switch で漏れがあると警告を出すから分かるけど、エラーにしてしまうべきだろう。 そういうオプションが無いかちょっと調べてみる。 https://t.co/lLpwF38si8」 / Twitter
島鉄雄さんはTwitterを使っています 「-Werror=switch で、switch の漏れをエラーに出来た。 C++ の場合は enum class があって int 等には無理やりキャストしない限り変換できないから、より安全になる。 あと、if 文の羅列で分岐されると漏れをチェックできないから、やっぱり古い言語では限界があるのかね… https://t.co/Nh2YlqmJWy https://t.co/WIHFSX2FgY」 / Twitter
Kazuho OkuさんはTwitterを使っています 「名前つき番兵のメリットは値を読めるところなので、ポインタをデリファレンスすることで(も)終端判定したい場合には使ったりする https://t.co/vXyBV3CbHy」 / Twitter
ハガさんはTwitterを使っています 「@kazuho うーん、僕はむしろ、デリファレンスできない可能性を持っていることがポインタのメリットだと思っているので、特に終端判定の場合にデリファレンス後に判定というのはちょっと想像できませんでした。」 / Twitter
藤枝和宏 - ぱんなこった@佐鎮さんはTwitterを使っています 「この番兵は高速化のためだと思う。linked listでキーを探すときに番兵にキーをセットしてから探す。最後で必ず止まるので次が最後か調べずにループを回せて条件分岐1回お得。 / “ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)” https://t.co/ZrCqgKPJID」 / Twitter
ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)
FadisさんはTwitterを使っています 「ポインタがめんどくさい事になるのはSEGVした時じゃなくて、SEGVせずに走ってしまった時だよ。読んではいけないものを読んでリモートにぶちまけたり、書き換わってはいけない物を上書きしたり、飛んではいけないところに飛んで実行してしまったり」 / Twitter
あわねずみさんはTwitterを使っています 「C言語の授業 ある子がarray[i]とi[array]を間違える。 先生「i[array]はできません」 私「*(i+array)です」 先生「*なんてありません」 私「*はあります。ポインタの参照演算子が*です」 先生「誰に教えてもらったんですか?」 私「お母さんです」 →懇談会で母親に事前学習をしないように念押しされる」 / Twitter
kinabaさんはTwitterを使っています 「A Simple, Possibly Correct LR Parser for C11 https://t.co/jPKTn3ikIN めっちゃ面白かった。C言語文法の決定性文脈自由じゃないところ全集。「lexerに情報共有して識別子毎に型名か否か区別してトークンを出させる」という、概念としては定番の実装なんだけど、細部の罠と解決策が楽しい」 / Twitter
A Simple, Possibly Correct LR Parser for C11 | ACM Transactions on Programming Languages and Systems
kinabaさんはTwitterを使っています 「特にdangling-else問題と識別子の文脈依存性の問題が混ざるとより問題が深まる(GCCも昔のバージョンで構文解析バグっていたらしい)というの考えたことがなかった。おもしろいなー」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/athh4LqnMQ #define N 16 char str[N]; memset(str, 0, N + 1); この例のコードならcppcheck, Visual Studioの/analyze, pvs-studioなどの静的解析ツールやclang-9で警告出ますね。https://t.co/Oj0EEqANG4 #yurubug」 / Twitter
なたがわさんはTwitterを使っています 「a[i]とi[a]が意味的に等価なのはe1[e2]が*((e1) + (e2))のsugarだから、ってのは知ってるけど、そもそもこの加算が意味的に非対称な演算なのに逆も許してる (というかint + ptr要る?) のは謎だし、i[a]を許しても嬉しいのはparserで即desugarしてASTサボれるくらいでは...? なんか歴史/理由あるのかな」 / Twitter
FadisさんはTwitterを使っています 「volatileは、コンパイラは言われたのと同等の結果になるアセンブリは吐くけど、言われた通りの順序で計算するアセンブリを吐くとは限らないぞ(=計算過程を横から覗き見できる場合、期待したのと違う状態が観測されるかもしれないぞ)、という前提知識を要するから、初心者への説明は詰まりがちだよな…」 / Twitter
FadisさんはTwitterを使っています 「横から覗き見する手段とは具体的には、シグナルハンドラや割り込みで実行を中断して別の処理を行なっているとか、ハードウェアのレジスタを操作しているといった状況が該当する。別のプロセッサが同じメモリを見ている状況はキャッシュやアウトオブオーダーの影響が載る為volatileでは救いきれない」 / Twitter
対鉱物用武装さんはTwitterを使っています 「volatileの法則 1. つけるな。 2. (上級者限定)まだつけるな。」 / Twitter
対鉱物用武装さんはTwitterを使っています 「MMIOはふつうベンダ提供のマクロで隠されてるし、シグナルハンドラは同期化して受けるほうが安全」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語で struct S s; load(&amp;s); みたいなやつ、2行になるやん? 実は struct S s = (load(&amp;s), s); と書けば1行でvalidなCになる?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「パフォーマンス意識したコードをメンテしていくのはCの方が楽だと思う」 / Twitter
ハガさんはTwitterを使っています 「まぁ、いまどきC++ではなくCを使う[理由]はあっても、[利点]は無いよなっていう。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C++、Cよりロジックを組み合わせてコードを構築する手法が多いのはいいんだけど、その複雑性が利点になるか弱点になるかはケースバイケースだと感じてる。コードを書き捨てるケースではC++使うけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「もうちょっと具体的に書いておくと、たとえば、C++の優位点というのは、汎用的なデータ構造があるという点に多分に依存しているが、速度重視でコードを書く場合は専用のデータ構造を起こすことが多いので、汎用的なデータ構造をあまり使わない、とか」 / Twitter

histric-4

くいなちゃんさんはTwitterを使っています 「「三項演算子とは、三項の演算子すべてを指す広い言葉だから、?: は三項演算子ではなく条件演算子と呼ぶべき。」 とよく聞きますが、条件演算子以外の三項演算子を見たことがありませんでした。 あります…?」 / Twitter
しさしさんはTwitterを使っています 「@kuina_ch SQL の BETWEEN 演算子とかどうですか? x BETWEEN y AND z」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「整数オーバーフロー例外発生のコンパイルオプション付けると、整数演算が3-12倍遅くなる(前者clang, 後者gcc)という実験。 わざわざ調べてる人いるのね。 https://t.co/eEjmc2ZWEV」 / Twitter
How expensive is integer-overflow trapping in C++? – Daniel Lemire's blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語に register というキーワードあるけど、今時だと firstcache とか lastcache みたいなキーワードがあっても良いかも。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチスレッドコードが動いている時にいきなり _exit (3) を呼ぶの、なんとなく正常終了できるつもりだったけど、スレッド破棄順序によって他のスレッドのスタック参照してるスレッドが SEGV する可能性があるのかぁ、ってなってる。そりゃそうだよな」 / Twitter
yoh2さんはTwitterを使っています 「「C89 と C99 のどちらでも well-formed でありながら結果の異なるプログラムを定義済マクロに頼らず書ける」並に重箱の隅。 (知ってるのは enum 使うやつ)」 / Twitter
yoh2さんはTwitterを使っています 「これね。 https://t.co/fP8aCUvAQ2」 / Twitter
yoh2さんはTwitterを使っています 「類似でちょっと思い出したネタ。 # include &lt;stdio.h&gt; enum E { A = 1 }; int main(void) { int n = 0; for(n = 0; n &lt; (enum E { A = 2 })1; n++) /* (enum { ... }) はキャスト兼 enum 宣言 */ ; printf("%d\n", A); /* C99以降: 1, それより前: 2 */ }」 / Twitter
yoh2さんはTwitterを使っています 「C オタクに C++ オタク、妙なところに宣言を埋め込みがち。」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「一般 C++er「using によるエイリアス宣言は typedef の上位互換」 C++ 規格オタク「typedef だけ許される文脈がある」 https://t.co/ZbTY3SCir1 https://t.co/2lKIzwGsfT」 / Twitter
A typedef for when an alias declaration cannot // [unfold] Bits of awareness
mattnさんはTwitterを使っています 「C言語のポインタが初学者を悩ませる理由は宣言時と使用時に * が付いたり付かなかったりする int *p; p = &amp;v; のと配列の参照方法が *(p+2) と p[2] の2つがあるというのが原因だわね。 Go は意図的にこれをさせない様にした。」 / Twitter
KateさんはTwitterを使っています 「finally worked out how to make a function for addition. C isn't as hard as people say https://t.co/OFdqEKs6HR」 / Twitter
yoh2さんはTwitterを使っています 「int a[n] とint *a が別物だというのと同じように int a[m][n] と int (*a)[n] は別物だが、 int a[n] と宣言した変数が式中で表れると一部を除き int * 型になるように int a[m][n] と宣言した変数は式中に表れると int (*)[n] 型になる。 ……を一言で説明できる語彙力を下さい。」 / Twitter
yohさんはTwitterを使っています 「ISO/IEC9899 (違」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「C言語できる人」で、芋づる式に、disasコードも読める、ダンプ解析できる、カーネソース読める(OSの諸概念知ってる)、みたいなニュアンスまで含むこともあったり…(笑)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「C言語ができるできない」ではなくて、他のプログラミング言語を使えて、かつ、OSやCPUについて学んでいれば、Cは読めるはずだし、すぐ書けるようになる、という話じゃないのかな。高級アセンブラなので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語、プログラマにとっての英語みたいなもので、日常、できなくて困らない人も多いけど、たまに使って何かを得てる人もいれば、毎日使ってそれでご飯を食べてる人もいる、くらいのもんでしょう。 英語同様できたほうがいいけど「できないとダメ」みたいな呪いじゃない」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆にそういう人達は、単にC言語書ける人より何倍も強いので、それを目指すべく、C言語から吐き出すdisasコードを読んだり、ダンプを眺めたり、OSの本を読んだりすると良いかも。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「極めて普通だし、共通型を構造体の先頭に置いて super とか名前をつけてポインタキャストするのも普通」 / Twitter
mattnさんはTwitterを使っています 「C言語をずっとやってると第一引数がオブジェクトに見えてくるし関数呼び出しがメソッドに見えてきます。(なにその GTK)」 / Twitter
kiwanamiさんはTwitterを使っています 「まあ、分かるけど、JavaとかC#とかJS書いてる人がたくさんいる中で、オブジェクト指向いらないんですと言われても、では今書いているこの言語や実行環境は何なの?みたいな感じになる。」 / Twitter
きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「オブジェクト指向について書いたゾ https://t.co/b1gDtbUMRS」 / Twitter
オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

histric-5

Rui UeyamaさんはTwitterを使っています 「@taijin_t 構文解析が簡単になるんですよね。Cだとx *yは、xが型名ならxのポインタ型の変数yの宣言になるけど、xが変数ならxかけるyになるので、これを解決するには型の解釈と構文解析を同時に進めないといけない。GoとかPascalの順番だとそこがキレイに分離できる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter
齊藤敦志さんはTwitterを使っています 「@rui314 C11 だと (初期化されているなら) 構造体のパディングはゼロということになっているっぽいです。 (私は英語が不得意なので解釈に自信がありません。 当該項目を提示しておきます。) https://t.co/rbGnAxhGQi https://t.co/BHwKYPcrtW」 / Twitter
Kazuho OkuさんはTwitterを使っています 「こういうやつ https://t.co/WiBv5VMn4D」 / Twitter
Kazuho OkuさんはTwitterを使っています 「まーそれはそれとして、 「なぜ data ポインタをもたないのか?」 「構造体の中に部分型を入れてアドレスオフセット&キャストすればいい」 「???」 「C++になったつもりで考えて」 みたいなやりとりは、ありがち」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語でオブジェクト指向の話、「container_of って何?」て聞いて知らなかったり、自分で書けなかったりする人は詳しくないと思っていいです」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho 初めて知った…😨 https://t.co/00kyqUwu22 スか # ワシ、そういうのに触る前に C++ 行っちゃった感はある(で cfront が吐いた C を読んでたりしてた😅)」 / Twitter
linux-4.4.1/container_of() - コグノスケ
Kazuho OkuさんはTwitterを使っています 「補足しておくと、メンバへのポインタからコンテナへのポインタを得るというのはインターフェイス継承実装時に求められることなので、その具体例を知らない、かつ、実装もできないのであれば、C言語でオブジェクト指向プログラムを書く難易度について正しく評価できるのか疑問符がつく、という意味です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「格好つけようとして複雑にしてバグしこんじゃうやつ?」 / Twitter
mumumuさんはTwitterを使っています 「C言語でconstをたくさん置けることを知った. const const const const int c = 0;みたいなのが許されるっぽい.めっちゃ強調できるじゃんw」 / Twitter
FadisさんはTwitterを使っています 「RISC-V、ポインタとlong long long intの長さが128bitになるRV128 ISAが提案されていて力強い https://t.co/3ZXkYuRlup」 / Twitter
riscv-meta/rv128.md at master · brucehoult/riscv-meta
FadisさんはTwitterを使っています 「64bitのISAと互換を取りやすいLP64FP128では近くのアドレスを表すポインタは64bitで表現して、遠くのアドレスを指すポインタ(far pointer)は128bitで表現する、って遠くのアドレスどんだけ遠いんだw」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS-DOS時代、far/near/hugeポインタに悩まされた記憶が… (といいつつ、機械語の中ではshort/near/far jmpとか良くある)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(関数ポインタとデータポインタで、ポインタサイズが違うことあった。あと32bit far ポインタもインクリメントでは16bit範囲だけを回るとか、お約束多すぎ)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語ですら検出できる誤用を検出できないプログラミング言語を使っている皆さん!!! (clang, gccあたりは関数宣言に__attribute__((__format__(__printf__)))属性をつければ、コンパイラが書式文字列が定数かチェックしてくれる)」 / Twitter
Moriyoshi KoizumiさんはTwitterを使っています 「printf(3)の第1引数に誤って書式文字列ではなく任意の文字列を与えるという間違いは割と避けることができているが、ロガーの関数で同様のことを気遣いできる自信はあまりない。APIの設計にもアフォーダンスというものがあると思う」 / Twitter
Moriyoshi KoizumiさんはTwitterを使っています 「とはいえ、log4jの脆弱性という見方には違和感がなくもない...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「真面目な話としては、 logger.format(fmt).emit(param1, param2) みたいなAPIにすべきだ、という話なのかな」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「ところが、今回の問題の場合 param1, param2 に相当すうるものも置き換え対象になり攻撃を受けるらしく、本当にひどい ソース: https://t.co/og2vj5Gwhv の「unfortunately the lookup is performed after formatting the message」のところ」 / Twitter
[LOG4J2-3198] Message lookups should be disabled by default - ASF JIRA
令掛ベインさんはTwitterを使っています 「Cのコンパイルユニットをむりやり1個にするのアマルガメーション(amalgamation)というらしい / [How to Write Portable C Without Complicating Your Build](https://t.co/qD2bmTkCse)」 / Twitter
How to Write Portable C Without Complicating Your Build
Kazuho OkuさんはTwitterを使っています 「Rustのさまざまな支援はあると助かるけど、並列安全性を気にしなくていいCプログラムで、所有権以外のバグっていっぱいあるんですよね。結局ロジックが複雑になって「動いてるからヨシ」になる問題はどの言語でもかわらんと思う」 / Twitter
Ph.D.ritaさんはTwitterを使っています 「これを、オブジェクトの所有権や並列安全性の観点で大リーグ養成ギプス的なガチガチの制約と優しいエラーメッセージでサポートしてくれるのがRust、という認識なんだけど、そこまで導いてくれるのかしら。。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ごく一握りの、課題を単純な問題に帰着させてからのみプログラムを書くような自律と問題解決力があるエンジニアにとっては良い言語であることは確かだと思う。djb…」 / Twitter

fjのYog教祖様さんはTwitterを使っています 「@n_soda これ、案外大事で、 bit field の特定のビットを「0にする」のに x: bit field y: 0にしたいビットだけが1になっているbit field が与えられて、 x ^= y; をやっちゃう人が多い。 (正解は x &= ~(y);) 手癖なのか何なのか、結構な人数を見かける。」 / Twitter
FadisさんはTwitterを使っています 「kmallocしてmemsetでゼロクリアする事多いからゼロクリアするメモリ確保kzmallocを用意したい→既存の膨大なコードをどうやって置き換えよう→Semantic Patch。具体的にはCoccinelle https://t.co/TtIo1wfNCG #kernelvm」 / Twitter
Coccinelle: A Program Matching and Transformation Tool for Systems Code
FadisさんはTwitterを使っています 「難題: CPPで変換されているコード→ CPPをかけた後のコードのASTを作って変換することはできる。しかし、変換後のコードはCPPをかける前の形になっていなければならないがCPPで逆変換をする事ができない #kernelvm」 / Twitter
Coccinelle — The Linux Kernel documentation
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関数がinline宣言されたからといって、必ずインライン展開されるわけではない。C++ではinline宣言された関数はたとえ使わなくてもリンカが残す。いっぽうCでは"inline"宣言され使用されない関数は削除されるが、"inline extern" や "inline static" では事情が異なる。 https://t.co/UovN5VSChb」 / Twitter
[llvm-dev] Inline function not eventually inlined is removed
Kazuho OkuさんはTwitterを使っています 「一応マジレスしておくと、アセンブリ読み書きできなくてもプログラム書くためのツールがC言語だし、APIを整理したりインタプリタ作ったりすることで、Cを読み書きできなくてもプログラム書いたりできるようにしてきたわけですね。まあ、読み書き必須な類の仕事というのはあるけど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「定理証明とか構成的プログラミングでバグ0を狙う方向は、あまりに難しい。(生産性が上がらない) 設計/開発での予防とテストでの確認、でバグを一定以下に抑えるほうが、稀に事後バグ対応コストがあったとしてもトータルで低コストというのが多くの開発者の感触かな。 (予防法の進化は歓迎だけど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(元ツイートは、カーニハンだかの言葉「デバッグは開発より2倍難しいから、あなたはあなたのプログラムをデバッグできるほど賢くない」を思い出す(笑))」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(皆、能力不足の地位になるまで昇進するから、安定ポジション=皆能力不足説とか。何の法則だったか忘れた)」 / Twitter
kenichiudaさんはTwitterを使っています 「@shirouzu ピーターの法則でしょうか。 最近ググりました。」 / Twitter
`('-' )’さんはTwitterを使っています 「@shirouzu この法則は「その組織の仕事は、まだ出世の余地のある人間によって遂行される。」が論理的な帰結として導き出されてしまうところが上手いなと。 https://t.co/u5DGkF8wzM」 / Twitter
ピーターの法則 - Wikipedia
Reservoir sampling - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうはいっても、昔よりは随分と安全サイドに最初からコストかけるようにはなったとは思う。 (太古のサッカーはほぼ全員が攻撃手だったが、研究が進むにつれ攻撃手は1,2人になり、直感より防御優先の方が合理的となった歴史を連想したり)」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「標準化されたCはOSの開発には向いてない (PLOS'21論文)。ISO標準はあまりに抽象化されており、ほとんどのOSはコンパイラ依存の仕様に頼っている。そして未定義動作を最大限活用したコンパイラによる最適化がある。多くの場合、これら最適化によるメリットはさほど大きくない。 https://t.co/Sn3BfijR6x」 / Twitter
[2201.07845] How ISO C became unusable for operating systems development
zehnpaardさんはTwitterを使っています 「ISO標準がなんでOS開発に適さないかというと、未定義動作による(特にgccによる)アグレッシブな最適化が、システムの安全性を損なう割に最大で16%くらいしか性能に貢献していないようだから、なのか Coqで形式検証されたCompCertの話も出ていて面白かった」 / Twitter
Kazutoshi SATODAさんはTwitterを使っています 「@kaityo256 未定義動作に至る「可能性がある」という時点でエラーで落とすというのはおそらく規格に違反することになってしまうので、デフォルトでオンにするという判断は取りにくいだろうと思います。 https://t.co/Cr5uC0fCeZ」 / Twitter
[intro.compliance]
Kazutoshi SATODAさんはTwitterを使っています 「@kaityo256 まぁ「ここは安全のため意図的に規格に違反してるよ」ってコンパイラの仕様に明記しておけば可能になるんですけどね。」 / Twitter
zehnpaardさんはTwitterを使っています 「@shirouzu 元の論文にDennis RitchieがこういったISO Cの過激な最適化に批判的だった、という話も出ていました “the committee is planting timebombs that are sure to explode in people’s faces. “」 / Twitter
zehnpaardさんはTwitterを使っています 「@shirouzu 続き “Assigning an ordinary pointer to a pointer to a ‘noalias’ ob- ject is a license for the compiler to undertake aggressive optimizations that are completely legal by the committee’s rules, but make hash of apparently safe programs.”」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@zehnpaard ありがとうございます。参考になります。 さすがはD.リッチーさん、ホント「時限爆弾」ですね。」 / Twitter

SAL 注釈を使って C/C++ のコード障害を減らす方法 | Microsoft Docs
llvm-project/clang/INPUTS at master · llvm/llvm-project
ソフトウェア1 (2020)
C99 - Ruby master - Ruby Issue Tracking System
Learn c in Y Minutes
C Reference Cheat Sheet by Ashlyn Black - Download free from Cheatography - Cheatography.com: Cheat Sheets For Every Occasion
memory efficiency - Google 検索
Shiro KawaiさんはTwitterを使っています 「polkitの脆弱性、mainに渡ってくるargcが0のケースを想定しておらず、その場合argv[1]を書き換える動作をしてしまうのだが、そこは環境変数の領域なのでうまく仕込めばPATHを書き換えられる、と https://t.co/uc7BVF2qub」 / Twitter
PwnKit: Local Privilege Escalation Vulnerability Discovered in polkit’s pkexec (CVE-2021-4034) | Qualys Security Blog
Shiro KawaiさんはTwitterを使っています 「argc == 0 のケースってのは確かに盲点かも。てかLinux、それでexecve()できたんだ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「参考までに、Linuxカーネルでは goto 結構使われてる話。 https://t.co/SYjjP5rkPu あとdeferある言語でリソース開放用ならgotoより早期リターンがいいという話。 https://t.co/jfCKkZ0TNs」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当たり前だけど、goto無しで「書ける」ことと、goto無しが「常に分り易い・メンテ性良い」かは別の話と。 (例えばC言語での異常処理や深いネスト脱出はgotoが合理的) 最新Linuxのkernel/sched/core.c だと 72個のgoto(全8079行)。 https://t.co/GHGOJTnOvF」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter

1バイト == 8ビット

histric

histric-1

Why is one byte formed by 8 bits? - Quora
Kazuho OkuさんはTwitterを使っています 「360説は有力だと思うけど、技術的合理性の説明にはなってなくて、じゃあただの100%偶然なの?技術的合理性があるんじゃないの、とツッコミいれたくなるクラスタ」 / Twitter
Miura HidekiさんはTwitterを使っています 「1byte = 8bitの理由、TLで流れている説を総合すると、IBM 360という理由が一番大きいのかな?EBCDICが広まらないのはなぜ?という話はあんなクソなものが広まるわけないだろで終わりということで」 / Twitter
Miura HidekiさんはTwitterを使っています 「パンチカードを使うことを前提に考えると分からないでもないのだが」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 たぶん唯一の要因ていうのは無くていくつかのイベントのカスケードだと思うんだけど、言語処理系実装の観点からだとPDP-11 (1970) の影響は大きかったんじゃないかって気がする。それまで18bitや12bitワードだったのを16bitワードにしたのは文字が6bitじゃ足らなくなったせいだろうけど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana 何気にDECのマシンの影響は大きそうです。今の主流はメインフレームよりUNIXの流れですので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そもそも1byteが何bitかはっきりしなかった頃のコンピュータって、文字をどの程度どうやって使ってたの? 国鉄の予約システム(マルス)とか1960年だし、多数の専用通信端末と一定規模のストレージをもつシステムだけど、中の構造が具体的にどうなってなのか、ハードもソフトも知らない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「コアメモリとドラムディスクだったのかな? バックアップと障害からのリカバリどうしてたんだろ? 内部データ構造は? 通信規格は? ...」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho PDP-10 (36bit word machine) の場合、アプリによりけりで 6bit×6文字、7bit×5文字、8bit×(1~4文字)を32bitに詰めるといったパターンがあって、カオスだったっぽいような? https://t.co/GFHfsWM4O4 実際に使ってたわけじゃないので自信ありません…」 / Twitter
PDP-10 ASCII
SODA NoriyukiさんはTwitterを使っています 「@kazuho あ、Portable C Compiler の 9bit×4文字を書き忘れてました…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「COSMACって知らなかった… (SC/MPは知ってます、大学時代の無線部の1年先輩が好きだった奴w) メインフレームのSystem/360が8bit byteだったことと、ミニコンベストセラーのPDP-11が8bit byteだったことで、1970年代中盤には趨勢がほぼ確定してたのかしら?」 / Twitter
Hacker MaskeeさんはTwitterを使っています 「70年代のマイクロコンピュータ 8080 の他にも 6800,6502,SC/MP,COSMACとかあったけど、どれも 8bitなのよね。この頃には、CPUの基本単位として 8bit がメジャーというのは確立していたような気がする」 / Twitter
Hacker MaskeeさんはTwitterを使っています 「もちろん、アドレッシング巾の話とデータバス巾の話と1byteは何bitかという話は一応独立した話というのは承知の上で」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@n_soda 1980年頃のカタログです (日立に 1980年10月改版とあるので他社もその頃のはず)。 4bit 1 チップマイクロコンピュータが組み込み制御系等でそれなりにあったと思います (実物は見たことありませんが)。 COSMACは RCA 1802ですね。 https://t.co/PDa0oLkfyo」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@ogawa_tter ありがとうございます。 この中だと16bit CPUへの言及のない富士通のが一番古そうですね…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バイトサイズがバラバラだった1960年代って、まだコアメモリの時代で、職人さんが1ビットごとに手編みしてた時代だから、配線減らせるとかそういうレベルじゃないと思う... 違うのかな🤔 https://t.co/dlg26Fk29D」 / Twitter
磁気コアメモリ - Wikipedia
Hideyuki TanakaさんはTwitterを使っています 「1バイトは基本的にパラでデータを持ってくるデータバスの幅がこの倍数になるだろうから、これが多すぎるのも、初期のマシンには配線が多くなりすぎてつらかったんでは。バイトより小さい単位でしかデータを取ってこれないマシンは、いくら何でもめんどすぎるし速くしづらい気がする。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「メモリが半導体になってすぐに多ビット化が始まるあたりでバス幅が2の累乗に整理されるというのはその通りなのかもというのは https://t.co/CMLV3mhegp のスレ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「実際、ワードマシンの中でもメジャーな部類の DECSYSTEM-20 (PDP-10。1985年くらいにアスキー社内で使われているのを見せてもらったことがある)は36bitマシンで、6bit byteや9bit byteなら整数倍になるけど、7bit byteや9bit byteで使われてたケースもあるっぽい→ https://t.co/gOqsuvWkV2」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「バイト幅が 8bit に定まる前のマシンの趨勢はワードマシンなので、ワード幅がバイト幅の整数倍にすらなってないのも珍しいことではなかったり」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「s/7bit byteや9bit byteで/7bit byteや8bit byteで/」 / Twitter
artonさんはTwitterを使っています 「@kazuho 8ビットのうち1ビットをパリティに利用して物理8ビット論理7ビットということはないですか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@arton パリティを求めるようなハイエンドなシステムが、市場全体の製品構成を決めるほどの数が出るのか(実際出ていたのか)という話かなと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @arton byte machineで、1byte != 8bit であるマシンって存在したんでしょうか。 1byte != 8bit であるマシンはほぼすべて byte machine ではなく word machine じゃないかと疑ってます。 というわけで、parity 説には不賛成かなあ。」 / Twitter

histric-2

SODA NoriyukiさんはTwitterを使っています 「うーん、そうなのかなあ… シリアル通信では7bit + parityも使ったけど、あれはあくまで通信プロトコルでの話で、いったんメモリに取り込んだ状態でparity bitって使った経験ないっす。 UNIX系のコマンド群でも、昔は最上位ビットを別用途で使ってたものはあったけど、parity用途はなかったと思う。」 / Twitter
ひろせつよしさんはTwitterを使っています 「@nagise まず、文字系のASCII7ビット+パリティ1ビットありきだった気がします。送らないときはパリティいらないので7ビット。 で、メモリ読み書きするときに効率よくするには8ビット単位で読んで…みたいな。日本語とかだと8ビットは文字数に対して領域足らないので16ビットにして…みたいな感じだったかな。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そもそもなぜSystem/360が1バイト8bitになったのか。360に先立つEBCDICが8bitコードである主な理由について、1979年に書かれた書籍(著者はIBM)は2点挙げていて * 1960年代の想定では計算機の想定用途の75%が数値計算でpacked BCDによる空間効率向上が文字コードの非効率性よりも重要」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* 7030(スパコン)がバイナリ指向で64bit浮動小数を想定したアドレシングで、その整数分の1である8bitが都合よかった https://t.co/RUAAClseQW」 / Twitter
Coded Character Sets: History and Development: MacKenzie, Charles E.: 9780201144604: Amazon.com: Books
Kazuho OkuさんはTwitterを使っています 「いいですか!これ面接で聞かれるからね!!!(絶対ない)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「https://t.co/fTJi3AfFDc のp.122です」 / Twitter
Mackenzie_CodedCharSets.pdf
Kazuho OkuさんはTwitterを使っています 「Q「なぜ1byteは8bitなのか」 A「EBCDICも8bitだし」 Q「なぜEBCDICは8bitなのか」 A「浮動小数に64bitが都合よかったから」 この展開は想定外すぎる」 / Twitter
FadisさんはTwitterを使っています 「IntelがLinuxのIntel GPUのドライバをARM向けにビルドできるようにする変更を用意している話。Intel GPUは従来統合GPUだった為そのドライバはx86以外でのビルドを想定せずに実装されてきたが、IntelがディスクリートGPUを作った事でハードとしてはx86以外に繋げるようになった https://t.co/dQC7hYKgMg」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「やっぱりASCII 7bit + parityが理由ってのは勘違いってことでいいと思う>RT参照」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda ハードウェアでのパリティビットサポートはありますが、メインメモリのパリティビットをCPUの命令セットからいじるというのは速度的にも機能的にも良く分からないですね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho ハードウェアの場合も、8bitの倍数のバス幅+parity bitっていうのがほとんどで、7bit + parity はシリアル通信以外だと思いつかないです。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「面接で聞いていいの、せいぜいが 「ASCIIの制御コードのうち、なぜDELだけが離れたところ(0x7f)にあるのか?」 くらいまでだと思うんだよね #ダメ」 / Twitter
KOIZUKA, AkihikoさんはTwitterを使っています 「パンチカードで全部に穴を空けるやつだ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ASCIIが投票で7 bitに決まった(8 bitよりも多くの票が集まった)経緯も書いてて、標準化委員会の決定文に「まぁ7bitとか内部コードでは使われないんだろうけど」とか色々書いてあるってさ p.217」 / Twitter
Kazuho OkuさんはTwitterを使っています 「追記「1文字6bitじゃ足りなくなってきたというのは些細な話。そうではなく上記2点の根本的理由から、Syste/360で1バイト8bitにすると決め、その結果として文字数を増やしたんだ」とも、はっきり書いてある」 / Twitter
Katsuhiro SuzukiさんはTwitterを使っています 「パンチカード時代の文字消去に都合が良かった。間違った文字に全部穴を開け0x7f = DEL文字にする。DEL文字はシステムに無視されるので、間違った文字を消したのと同義。 しかしもはやどうでもいい知識だし、これ聞く面接官いたら「何が聞きたいのか??」と相手を困惑させるだけだろうなー……。」 / Twitter
Masayoshi TakahashiさんはTwitterを使っています 「@kazuho https://t.co/dvmV34v9Ox MARS-101(最初の試作機MARS-1ではなくてその後の本格版の方)については日立評論1964年6月号の特集が詳しいようでした。1ワードは40bit+パリティ1bitだったそうです」 / Twitter
1964年6月号:日立評論

histric-3

Kazuho OkuさんはTwitterを使っています 「IBMが7030/360での2進法への移行に「1バイト8ビットでええんや。BCD考えても効率いいし」ってやったのに対し、360より後にでたPDP-8とかが可変長バイトに対応していたりするのは、やはり製品価格帯の違い(PDP-8のがずっと安い)のと市場への影響力(仕様を押しつける力)の違いなんですかね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「僕は通信屋だけど、パリティビットはハードウェア処理しないと遅くて意味がないから命令セットの議論には関係ないし、System/360系の議論の典拠となっている書籍の著者は文字コード屋さんだ(正確に言うとパンチカードの標準化委員会の議長とか勤めた人)、というのは指摘しておきたい」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「1バイトが何ビットなのか問題、そもそもCPUにとっての「バイト」っていう単位がなんなのかそもそも分かってないので誰か教えてください。」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@igrep ビット生だと扱いづらいのでまとめてビットアレイにしましょう.その単位をbyteと呼びましょう.低レイヤーなのでCPUレベルでサポートして高速化しましょう.物理でビットアレイの長さを決めなきゃいけないのでソフトがどのCPUアーキでも使い易いように規格化で8bitにしましょう.って感じですかね.」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マイナーメーカーの戦略が標準技術がんばることで市場リーダーの優位性なくすってのは昨今かわらないし、ASCIIが6ビットでなく7ビットになった時点でバイト=8ビットになる流れは決まったんじゃないの? 7ビットは内部アーキテクチャとして筋が悪いわけで(というのはASCIIの決定文にも出てくる)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ASCIIが6 bitのシフトつきコードになってたら、内部アーキテクチャ6*nビットが主流になってた世界線もひょっとしたらありえたんじゃないの? System/360やASCIIと同時期に開発された12ビット機PDP-8の話だけど」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@kazuho IBM Sytem/360の方向性を検討した SPREAD task group, Final, Dec 28 1961 (Sep 1966) のここですね https://t.co/cXLqIYzAFu 参考にされた IBM 7030 Stretchは英語版 Wekipediaによると https://t.co/KQOsBwBnB6 Bytes: Variable length (1 to 8 bits) "the eight-bit byte for I/O" とあり確認中です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @sarashinoio @igrep @methane @kotatsu_mi 昔の文書だと4-bit byte and 8-bit byte(つまりBCDの1ニブルと8bit文字をそれぞれバイトと呼んでいる)のような言及はあるので、「処理するデータ単位」くらいの意味もあるでしょう。英語版Wikipediaみるとそもそも揺れがあったようですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @sarashinoio @igrep @methane @kotatsu_mi "Decimal digits and alphanumeric characters will be represented in four-bit and eight-bit bytes." https://t.co/dD7vTtAKen」 / Twitter
Final report of SPREAD task group with associated correspondence and notes | 102713231 | Computer History Museum
Kazuho OkuさんはTwitterを使っています 「バイトがなぜ8ビットかって、昔のコンピュータは10進演算で数字一桁格納するのに4ビット使ってて、その「倍」だから「バイト」なんだよ。日本製のコンピュータが強くてIBMが訴訟起こした頃の話」 / Twitter
Hacker MaskeeさんはTwitterを使っています 「まあ、70年代マイコン少年だったから、1byte = 8bit は当然というか定義だったし、K&R に「1byte = 8bit を想定するとポータビリティ無くすよ」って言われて「マジかよ」って思ってたクチではあります」 / Twitter
Hacker MaskeeさんはTwitterを使っています 「昨日からTL眺めてたので、「何故1byte = 8bitか?」の答えは「大ヒットした System/360 が採用したので業界標準になった」と即答できるようになった」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@methane @n_soda @igrep @kotatsu_mi 正確にはwordっていうのも間違いじゃないんです,ibm stretchではbyte=可変wordだったので.そこからbyteが巣立ったということだと思います.」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@methane @n_soda @igrep @kotatsu_mi >It combines fixed word length arithmetic for performing floating point operations with the flexibility of variable word length arithmetic in which the words can be composed of "bytes" with from one to eight bits in a byte. https://t.co/8caHc2kNuS」 / Twitter
Organization Sketch of IBM Stretch -- Mark Smotherman
SODA NoriyukiさんはTwitterを使っています 「でもって System/360 が 1byte=8bit とした理由はこちらのスレッドに→ https://t.co/iZMVNqdfTj」 / Twitter

histric-4

まさみさん⋈語りたいさんはTwitterを使っています 「1バイト8ビットの由来、System/360系からはPacked BCDや計算効率、浮動小数点計算から2進数を選んだことになっていて、文字コード勢からはASCII+パリティビット由来になっていて、誰かが「これはこう!」と決めたわけではなく、デファクトがデ・ジュールになっただけなんだろうなあ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「System/360が全ての計算機の元祖ではないっていう話ですあしからず。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@kazuho 個人的な感想としては「System/360が1バイト=8ビットを選んだ」ことと「今殆どのアーキテクチャで1バイト=8ビット」になっていることの間に何があったのかの方が気になりました。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@kazuho System/360がそれを選んだ理由については調査ありがとうございます。大変勉強になりました。追随した製品が同じ方式を選んだのはやっぱり売れたから、ということになるんでしょうね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@mhiramat 😘 データ互換性がどれだけ求められたかはわかりませんが(パンチカードは基本的にEBCDICでもASCIIでもなかったわけで)、IBMが市場の過半を抑えていた以上、周辺機器等エコシステムは引っ張られたでしょうね。System/360の周辺機器ケーブル(Bus and Tag; FIPS 60)は8 bit+parityだったようですし」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@mhiramat cf. https://t.co/xLhe2aK8H9」 / Twitter
FIPS_60 2_IO_Channel_Interface_Jul83 FIPS 60 2 IO Channel Interface Jul83
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「1バイトが何ビットなのか問題、そもそもCPUにとっての「バイト」っていう単位がなんなのかそもそも分かってないので誰か教えてください。」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@igrep ビット生だと扱いづらいのでまとめてビットアレイにしましょう.その単位をbyteと呼びましょう.低レイヤーなのでCPUレベルでサポートして高速化しましょう.物理でビットアレイの長さを決めなきゃいけないのでソフトがどのCPUアーキでも使い易いように規格化で8bitにしましょう.って感じですかね.」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 複数ビットをまとめたアドレス可能な最小単位という意味では、byteだけではなく、word machineのword(36bitとかで、それを分割してbyteとして扱っていた)でも同じことなので、byteの定義にはならないと思います。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 初期のコンピュータの主用途は数値計算・会計計算なのでintがそのまま扱えるword machineの方がある意味自然でしょう。 ではbyteの主用途とは?というと https://t.co/bPqCwMxlT9 にもある通り文字だと思います。」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@igrep ビット生だと扱いづらいのでまとめてビットアレイにしましょう.その単位をbyteと呼びましょう.低レイヤーなのでCPUレベルでサポートして高速化しましょう.物理でビットアレイの長さを決めなきゃいけないのでソフトがどのCPUアーキでも使い易いように規格化で8bitにしましょう.って感じですかね.」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 複数ビットをまとめたアドレス可能な最小単位という意味では、byteだけではなく、word machineのword(36bitとかで、それを分割してbyteとして扱っていた)でも同じことなので、byteの定義にはならないと思います。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 初期のコンピュータの主用途は数値計算・会計計算なのでintがそのまま扱えるword machineの方がある意味自然でしょう。 ではbyteの主用途とは?というと https://t.co/bPqCwMxlT9 にもある通り文字だと思います。」 / Twitter
Sarashino(晒野)さんはTwitterを使っています 「@n_soda @igrep @methane @kotatsu_mi アドレス可能な最小単位とは一言も言ってないですw あんまり私が言ってることと相違ないようですがなにか意図ありますか?」 / Twitter
Inada NaokiさんはTwitterを使っています 「@sarashinoio @n_soda @igrep @kotatsu_mi 「アドレス可能な」と言ったのは私ですね。 「CPUにとって」というよりC言語にとってのバイト(sizeof(char))という意味でした。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi リプライ元だった https://t.co/DubIHQLPCT への引用ツイートである https://t.co/i0k9vCsKiE および https://t.co/i0k9vCsKiE への返事でしたが、スレッドを分岐させると読みづらくなるので @sarashinoio さんのツイートにぶら下げてしましました。 わかりづらくて済みません。_o_」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@ogawa_tter ありがとうございます。この資料の存在、知りませんでした。4-bit単位でのアドレッシングも想定されていたんですね(BCD考えると当然)。System/360で実際できたんでしょうか」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@kazuho 当時の IBMの超々極秘プロジェクトの報告書で歴史的価値が非常に高いので公開されてるのでしょう。IBMの歴史を眺めていたらここで紹介されていて見つけました https://t.co/C4iSgPDsHU ※これは IBMメインフレームの歴史等々のスレッドです。 360での 4bitアドレッシングは実装されてないと思います。」 / Twitter

histric-5

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho System/360の1byte=8bit決定の理由ついては、ブルックスの見解では違うように見えます。 (下記に続くの小川さんのツイートも参照下さい) https://t.co/ra86NEfsTV」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。これは当時の関係者間で見解が割れるパターン!!!」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「System/360のF.ブルックスが「従来は6bitだったが、(浮動小数点関連に加えて)、将来の小文字対応のために 6→8bitにした」と書いていて、「それが決め手だったとは…(長期の技術的展望でなく)」と少し驚いた覚えが。 https://t.co/DzMsATPLRD https://t.co/wxFabcIt6H」 / Twitter
satさんはTwitterを使っています 「https://t.co/yGOy9LLaL5」 / Twitter
1バイトが8bitに定まったのは2008年 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@shirouzu 出典は F.ブルックス「デザインのためのデザイン」 https://t.co/cXN4GJY5md」 / Twitter
デザインのためのデザイン | フレデリック・P・ブルックス Jr., 松田 晃一, 小沼千絵 |本 | 通販 | Amazon
OGAWA, TadashiさんはTwitterを使っています 「@shirouzu .@shirouzu アルファベット向けに 8-bitを 1Byteとするは、IBM System/360の方向性を検討した SPREAD task groupのレポートで提言されてますね (画像 4枚目) https://t.co/HMzYK64cEv 1つ前のツイもご参照に。 https://t.co/9bYll5ua5J」 / Twitter
Shiro KawaiさんはTwitterを使っています 「データバス幅減らすとアドレス(アドレスバス幅ではなく、総量)が増えるので、手配線ならむしろ広めのワードアドレッシングの方が有利じゃないかな。なのでむしろ初期のマシンは36bitとか18bitとかだったわけで。 IC使うようになってバランスが変わったというのも要因のひとつかも。」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「1バイトは基本的にパラでデータを持ってくるデータバスの幅がこの倍数になるだろうから、これが多すぎるのも、初期のマシンには配線が多くなりすぎてつらかったんでは。バイトより小さい単位でしかデータを取ってこれないマシンは、いくら何でもめんどすぎるし速くしづらい気がする。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@kazuho @shirouzu F. Brooks氏の Turing Awardサイト https://t.co/dLKG0gKmvg 公開されているビデオで 360 and adoption of the 8 bit byte https://t.co/tVSSxDFbyZ 6/8 bitの議論が紹介され、 Really better for 6 bit: Scientific 8 bit: Commercial 最終的に Brooks氏が決定と。 Stretchの可変 bit Byteは過剰と…」 / Twitter
Frederick Brooks - A.M. Turing Award Laureate
Brooks on the System 360 and adoption of the 8 bit byte - YouTube
Kazuho OkuさんはTwitterを使っています 「まあBrooksがインタビューの中で「商業分野においては1バイト8ビットが優れていると判断された」って言ってるのはpacked BCDの話だろうし、そう考えると、両者の言ってることはそこまでずれてもいない」 / Twitter

histric-6

AoiMoe a.k.aしお兄PさんはTwitterを使っています 「昨日も書いたけど、「世界で初めて商業的に成功したバイトマシンである IBM System/360 が 8bit を採用した理由」は、「現在 8bit である理由」の大きな要因の一つではあっても、理由のすべてではないので、それだけでは理由の説明としては片手落ちです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@AoiMoe 流れとしては https://t.co/jDnMGFPhWg な感じで、このツイートの「?」のところの正確な理由が何かってことですね。 で、「?」の部分には、「System/360の選択に合わせた」以外に、「System/360が8bitを選択した理由が、ミニコンやマイコンにも当てはまった」というのがあると思います」 / Twitter
ひろせつよしさんはTwitterを使っています 「@n_soda あー。そうかもです。30何年前にモデムでインターネットつなげるときにどっかのサイトと通信できなくて「相手がパリティ取ってないから」みたいな。 CPUの読み書き単位が文字基準、は当時いた会社の開発課長から聞いた気が…ダンプ読みやすいでしょ、とか言われて読めねーよ、と思った記憶があります。」 / Twitter
ひろせつよしさんはTwitterを使っています 「@n_soda いったん4040(でしたっけ?)行ったときに4ビットひとくくりにしなかったのは流石に小さすぎたんでしょうね。勉強になりました。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@vdmkt RS-232Cでの通信は8bit non-parityか7bit parity付が主流で、これがあってないと文字化けしましたからね。(文字化けの理由はbaudrate違いなど他にもありましたが) 1byte=8bitの起源の方は https://t.co/iZMVNqdfTj でしょう」 / Twitter
ひろせつよしさんはTwitterを使っています 「@n_soda 8ビットにした理由、は理解したんですけど8ビットが勝った理由、はやっぱり8080のバカ売れでしょうかね? あるいはダンプ読みやすいから?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@vdmkt ・メインフレームの世界で System/360 が商業的に成功したこと ・(System/360の影響で?) byte==8bit を採用した PDP-11 および VAX-11 がミニコン分野での覇者となったこと ・ (ミニコンの影響で?)マイコン(intel 8080を含む)がすべて byte==8bit を採用したこと みたいな流れだと思います。」 / Twitter
ひろせつよしさんはTwitterを使っています 「@n_soda いったん4040(でしたっけ?)行ったときに4ビットひとくくりにしなかったのは流石に小さすぎたんでしょうね。勉強になりました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @AoiMoe 文字コードについては多分に外部性の議論がありそうな気がします。弱小が独自規格でがんばるのは辛い」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho byte machineじゃなくて、36bit くらいの word machine が世界制覇してた可能性はありえたと思います。 ただアドレスの最小単位のbit数が2の冪乗であることは、初期の計算機(初期のマイコンも含む)だと無視できないメリットとしてあると思うので、36bit wordよりも32bit wordの方がありえたかも?」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@n_soda @kazuho 東芝の 12ビットマイクロプロセッサ TLCS-12A https://t.co/B6QkRCQdR5 がありましたね。TLCS-12:1973年、TLCS-12A:1975年。 チップではありませんが、4bit BIt-Sliceを 3個使った 12bitマシン (オフコン) もあったはずです。4bit BCD 3桁は 000桁表現と相性が良いとの理由だったはずです。」 / Twitter
TLCS-12A - Wikipedia
Kazuho OkuさんはTwitterを使っています 「@ogawa_tter @n_soda 6bitで1byteなら、12bitアーキ、24bit、48bitって進化になったんですかね。それなりにうまくいったと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @ogawa_tter よく知らないんですが、成功したword machineには、PDP-10、UNIVAC 1103のように36bit wordが多かったんではないかという印象があります。 NECのNEAC-2201は40bit/32bit/36bit/37bitのバリエーションがあり、このうち36bitのNEAC-2203の系列で後継機が作られたとか: https://t.co/MAlXEdxWpz」 / Twitter
NEAC - Wikipedia
Kazuho OkuさんはTwitterを使っています 「@n_soda @ogawa_tter 6bitが1バイトの世界でも普通にバイトマシンは作れた(intは2^nバイト)でしょうし、ワードマシンの生き残りに寄与する理由はない気がします」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama バスを3bitの倍数で作り、アドレシングは6bit単位(つまりはバイトマシン)にすれば普通にいけると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama バス幅を」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @ogawa_tter たぶんbyte machineが生まれたら、そちらが勝つ可能性の方が(もしそれ以外の商業的要因が同一であれば)高く、 word machineが覇権をとる可能性というのは以下のどちらかのケースじゃないかなと… ・byter/word 以外の商業的要因の方が支配的だった ・byte machineがそもそも生まれなかった」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama いますぐには思いつきませんが、bit数が2の冪乗でないと面倒くさくなる処理って、他にもありませんかね?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama データが1文字6bitなら問題ないと思います。データがASCIIで、1文字7bitだったりすると死ぬし、1文字12bitだと空間効率悪いですね」 / Twitter

histric-7

fjのYog教祖様さんはTwitterを使っています 「@kazuho MPUはmicro codeで命令セットを定義していたぐらいでメモリIOの方がMPU処理速度より速かった時代なので。 なので、6bit MPU上でASCIIを処理したければ内部で6bit register pair を定義する形にすれば良かったはずで、こういう形式が禍根になるのは大分後だと思う。 そう考えると「なんともわからん」」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama @kazuho うーん、6bit byteだと、アドレス算出でシフト演算じゃなくて6による除算が必要になるわけで、除算命令もバレルシフタもない時代のマイコンでそういうのはきついと思います。」 / Twitter
fjのYog教祖様さんはTwitterを使っています 「@n_soda @kazuho アドレス計算では、何も変わらないと思いますよ。だって「1バイトが」何ビットなのかは影響を受けても「何バイト動くのか」は1byte何ビットなのかの影響を受け無いもの。 bit field の利用は頻度が下がる、と言う程度だと思う。メモリ利用効率が悪化するので「マイコン」は普及が遅れると思うけど」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama @kazuho モノクロframe bufferやbit vectorのアドレス計算が、 offset = n >> 3; bit = 1 << (n & 7); から offset = n / 6; bit = 1 << (n % 6); に変わるわけで、現代のCPUなら全然問題ありませんが、8bit CPU時代だと、かなりキツイと思います。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama それは逆のことも言えて、ASCII文字は古来5x7のマトリックスに1ピクセルの余白なので、6bitが有利なんですよ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama フォントはシフトするだけですけど、割り算はそうもいかないので、割り算の方が辛い印象が。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama もちろんルックアップ組み合わせるんでしょうけど、その複雑さは例えば5x7文字のラスタリングの複雑さと、そう変わらないと思うんですよね。別に6bitが良かったとは思わないですけど、差がつくほどのものがあるかと言われるとない気がします。カラーグラフィックになると3の倍数は有利だし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama ふーむ、なるほど。 でもbit vectorの方だとその有利さはないですよね。 あとPC-98育ちなので、石器時代のカラーグラフィックはモノクロフレームバッファ×3プレーンと刷り込まれてたり。^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama それは逆のことも言えて、ASCII文字は古来5x7のマトリックスに1ピクセルの余白なので、6bitが有利なんですよ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama フォントはシフトするだけですけど、割り算はそうもいかないので、割り算の方が辛い印象が。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama もちろんルックアップ組み合わせるんでしょうけど、その複雑さは例えば5x7文字のラスタリングの複雑さと、そう変わらないと思うんですよね。別に6bitが良かったとは思わないですけど、差がつくほどのものがあるかと言われるとない気がします。カラーグラフィックになると3の倍数は有利だし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama ふーむ、なるほど。 でもbit vectorの方だとその有利さはないですよね。 あとPC-98育ちなので、石器時代のカラーグラフィックはモノクロフレームバッファ×3プレーンと刷り込まれてたり。^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama bit vectorは一般はおっしゃるとおりで、空間効率を犠牲にすることになったんでしょうね。4/6で入れるか16/18で入れるか、みたいな。そういえば56001は割と最近まで使われていた24bit archになるんでしょうか。ワードマシンですが。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama 56001って知らないなあと思ったらDSPですか。 24bit wordなんですね…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama んー、10で割る専用回路のほうが需要高そうな気がしません?(でもない)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama たしかに。 8bitマイコン黎明期にはどっちも入れる余裕なかったし、余裕ができたころには除算命令が入って不要になったって奴なんでしょうね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama BCD命令ないやつってあるんですか?(よく知らない) 文意としては、特定の変換が頻出として除算命令じゃなくデータの持ち方で問題回避する方法もあるよという意図です」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama 10進補正命令か10進加算命令のどちらかは、知ってる8bit CPUには全部あります。回路規模もたぶん小さいですし。 問題回避の方はなるほどです。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「LARC(初期のスパコン)が48bit(BCD11桁)だったり、1バイト8ビット化の過程でBrooksが「科学分野は6ビットのが便利」って言ってたりするの、有効精度を10進で10桁くらいあれば十分みたいな考え方があったんですかね? みたいなのは、まだ気になってる。2進浮動小数にしてもその精度なら48bitなので」 / Twitter
成瀬さんはTwitterを使っています 「アルファベットに小文字がなかったら1バイト6bitになっていただろうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@nalsh ASCIIの制定過程にしても、大文字のみの6bit規格を複数カバーすると決まった時点で7bitになり、その結果、小文字も入れることにした、という流れなので、小文字がなかったとしても、どのみち1バイト8bitに落ち着いたんじゃないでしょうか」 / Twitter
成瀬さんはTwitterを使っています 「@kazuho 小文字やアクセントがあるからある程度拡大するのは不可避だと思われていただろうわけで、実際モールス信号時代から4->6->8と増え、その次は16間で飛ぶわけじゃないですか。6bitのタイミングで普及帯で磁気テープが使われるようになり、通信路も6bitベースで設計されてしまったらどうかなと」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@nalsh 実際はSystem/360での8bit以降と同時に周辺回路も8bitで統一された (cf. https://t.co/0vcOzDzds2) だと思いますが、それがもし6bitだったら、しばらくは文字は6bit、やがて12bitで行ったんでしょうね。別にそれでなんとかなるし。シフトコードもSystem/360以前から既に使われてわけで」 / Twitter
Bus and Tag - Wikipedia

histric-8

「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から(1/7 ページ) - ITmedia NEWS
かりやみつらない 3042798775655さんはTwitterを使っています 「「欧州向けには複数の国の文字に対応するISO/IEC 8859-1という規格が定められたが、これもやはり8bitに拡張し、前半はASCIIコードそのままで後半にいろいろ詰め込んだ(しかも複数のマッピングが存在する)」 いや 8859-1 には複数マッピングは存在せんやろ… https://t.co/9P0mmb36O9」 / Twitter
かりやみつらない 3042798775655さんはTwitterを使っています 「「前半分はASCIIコードそのままで、後半分に半角カナ」 C 6220 のカナは 7 ビットコードで使えるし後半分と決まってる訳では無いのでは… https://t.co/9P0mmb36O9」 / Twitter
Kazuho OkuさんはTwitterを使っています 「良い記事だし概ねあってると思うけど、典拠が明記されてないと確認できないし悪い記事と区別つかないし、良い記事だからこそ参考文献貼ってほしい / https://t.co/dq6YK7ARna」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「今では当たり前のことが、昔はそうじゃなかったんだなあ…」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@sakamotoh @n_soda @wtnbgo bit / Byteから離れますが、Brooks氏のビデオを見てて、今では一般的な "(全てのモデルでの) binary compatible" は当時としては革新的で技術的難題で、「あ!」っと感じました https://t.co/cXLqIYhZgU "This report- recommends a new family of compatible processor~ for the IBM. product line." https://t.co/WqpfdPZbcP」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「IBM System/360 https://t.co/A4PKD8aERB Final report of SPREAD task group with associated correspondence and notes, Dec 28 1961 (Sep 1966) https://t.co/HMzYK64cEv Formats & Addressing "Decimal digits and alphanumeric characters will be represented in four-bit and eight-bit bytes." https://t.co/2880k4IaHq」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@kazuho @shirouzu "IBM's 360 and Early 370 Systems", History of Computing, MIT Press, 1991 https://t.co/Bs73LynwMU 著者は IBM Research を眺めてますが  6-bit Byte: Gene Amdahl  8-bit Byte: Gerrit Blaauw https://t.co/JjH57PbY8a (↑ Wikipediaにも記載)。 貴重な写真も多く人間ドラマ的にも興味深い大著」 / Twitter
IBM's 360 and Early 370 Systems | The MIT Press
Gerrit Blaauw - Wikipedia
Kazuho OkuさんはTwitterを使っています 「「インターネットは、ずっと1バイト8bit」論をどこかでみたけど、IP網は確かにそのとおり。 でもインターネットを使うプロトコルの多くはサーバ(中継含む)を経由して、HTTP以前は7bitしか通さない実装も、ままあった。また、インターネットは必ずしもIP網のみから成り立つわけではなくuucpのようなバ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「どうみても1ツイートには収まらない新たな老人ホイホイ」 / Twitter

1byte = 8bitsにしたのは「人月の神話」のフレッド・ブルックス? - Arantium Maestum
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「バイトのビット数、「ワードマシン(計算に都合のいいビット数を1単位にしてアクセスするアーキテクチャ)が先にあって、ワードだと一文字を表現するのに大きすぎるので、1ワードに複数文字をパックするためにバイトという単位が作り出された」みたいなところから話が始まるので即答は無理だ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バイト指向のメモリアクセス命令をもつCPUで8-bitの倍数じゃない幅を使うアーキテクチャって、過去にほとんどないんじゃないの? 文字を使わない場合の4-bitを除く」 / Twitter
とみながたけひろさんはTwitterを使っています 「1byteが8bitになった経緯はなかなか難しいが、1bitが二値なのは何故とか、コンピューターはなぜ二値をベースにしてて三値じゃないの、とかも十分に難しいな」 / Twitter
とみながたけひろさんはTwitterを使っています 「なお最近の個人的流行はMIPIのC-phyの基本思想を学ぶことです。」 / Twitter
とみながたけひろさんはTwitterを使っています 「3値の状態変数って正負零にすると使いやすいよね。 68000とかだとtst命令ひとつでフラグ変えたあと、正負零の3通りの任意のパターンで分岐するというのができるし、MIPSとかならtstすらいらない」 / Twitter
roentgen/技術書典3 か-46さんはTwitterを使っています 「8bit かどうかはともかく固定ワードとバイトアドレッシングは低コストで高クロックのマシンを作るのに絶対必要で、これがなきゃ俺ら未だに 166MHz の java machine みたいなカスの上で flash の AS みたいなデータ表現で計算してたかも知れない。対するに EBDIC はただのクソ」 / Twitter
びばのん/馬鹿家元さんはTwitterを使っています 「だが待って欲しい。 1byte=8bitが一般的になった理由をSystem/360が売れたから“だけ”で説明するなら、標準的文字コードがEBCDIC文字コードにならなかった理由が説明出来ないのでは? https://t.co/YbcngeEzmK」 / Twitter
KOIZUKA, AkihikoさんはTwitterを使っています 「↓これが割と一言で言うのにかなりの要点をカバーしている気はする。つまり、汎用機の歴史として、System/360が当時の選択として8bitを意識して採用していて、文字コード体系も決定し、各種ハードを揃え、かつ売れたようだしなぁ https://t.co/xmTNYwlCBG」 / Twitter
Shin AdachiさんはTwitterを使っています 「なんで1Byte=8bitになったか、の即答は結局なんなのか? System/360が売れたから?」 / Twitter
しょうゆさんはTwitterを使っています 「@koizuka 多分想定している答えが「2進数で、10よりも0b1000の方がキリがいいから」と言わせたいんじゃないんでしょうか。 そもそもオクテットとバイトは同じでない場合もある気がしますが。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「1byteは何故8bitなのか?」いい質問だと思う。確定的な答えをする人は、何か知識がずれているか、知ったかぶりをする人だってわかるってことでしょ? えっそういう話だよね?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「7-bitが使い勝手悪かっただろうってのは、命令セットの点よりもハードの点から言えるだろうってのはあって。メモリバスの幅がx-bitだと、チップをy個積めばx*y bitのバスをもつマシンができるけど、7って大きな素数なのよね。メモリ製造のエコシステムとして無駄が多い」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Intel 1101 はデータピンは1-bitだったみたいだけど、その後の製品はどうだったのかしら」 / Twitter
Kazuho OkuさんはTwitterを使っています 「確かインテルは70年代の最大手メモリ企業だったわけだけど、4004と同時に出したROM(4001),RAM(4002)は4-bitバスだし、4-bitの累乗で製品展開しない理由ってのがないと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Intel の初期のメモリ製品みても、バス幅は2の累乗っぽいな。例外は7 row * 5 bit のROMだ!(何に使うかと言うと、もちろん文字描画) cf. https://t.co/CAgU6Sl5wB https://t.co/XOU58FOkXb」 / Twitter
Collectors Guide to - VintageIntelMicrochipsRev4.pdf
Kazuho OkuさんはTwitterを使っています 「1byte8bitのアーキテクチャを4bitバスのメモリに対応させようとすると、データピン4本とか8本とか16本とかで作れるのに、7bitなら28本必要(もしくは複雑な回路挟むことになる)わけで、1bit節約する意味なかったんじゃない、という」 / Twitter
Kazuho OkuさんはTwitterを使っています 「文字のビット数に関していうとASCIIが7 bitになった経緯は英語版Wikipediaに書いてあって、いわく、ITA2やEBCDICなど複数の先行技術をカバーする必要があって7 bitになった。6 bit+シフトコードと8 bit案は却下された、らしい。これ日本語版Wikipediaには書いてない https://t.co/vAxUbHefYX」 / Twitter
ASCII - Wikipedia
OGAWA, TadashiさんはTwitterを使っています 「@n_soda G. Amdahl; G Blaauw; F. Brooks氏らの "Architecture of the IBM System/360", IBM J of R&D, Apr 1964 の Abstを確認したら (本文は要登録) https://t.co/cq7CUTIGiA Four innovationsの一つが 4. "Strict upward and downward machine-language compatibility over a line of six models " ですね。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=> "Architecture of the IBM System/360", G. Amdahl; G Blaauw; F. Brooks, IBM J of R&D, Apr 1964 https://t.co/WBLFlDriLW 1. An approach to storage 2. An input/output system 3. A truly general-purpose machine organization 4. Machine-language compatibility https://t.co/TVBc332lDh https://t.co/O4y4GwLN2E」 / Twitter
Architecture of the IBM System/360 | IBM Journals & Magazine | IEEE Xplore

Assembly

UTF-8 validation

ドッグさんはTwitterを使っています 「Lemire 氏次は UTF-8 の validation か.SIMD の pshufb 命令を使って 16バイトごとの table lookup に vectorize して,それを3回やるだけでできるのか | 'Ridiculously fast unicode (UTF-8) validation' https://t.co/sfVDunjaAL」 / Twitter
Ridiculously fast unicode (UTF-8) validation – Daniel Lemire's blog
ドッグさんはTwitterを使っています 「paper: https://t.co/Vz0fa836MD 6.1 の最後の段落と TABLE 9 に具体例が載ってる」 / Twitter
2010.03090.pdf
ドッグさんはTwitterを使っています 「Rust も String や str の値の動的な生成には unsafe 使わない限り UTF-8 validation が必ず入るので高速化すると嬉しい気がする」 / Twitter

ABI

その他

その他

shinichiro hamajiさんのツイート: "ABI 地獄は Qt/KDE で10年以上 C++ ライブラリを配るということにつきあってた人の、この話が面白かった気がする https://t.co/fx80ZQ4teS #cppmix"
Cover Slide Title
Thread Local Storageの初期値について調べた - Qiita
ABI の境界 (Modern C) での移植性 | Microsoft Docs
C言語系/呼び出し規約/x86/naked - Glamenv-Septzen.net
KMC Staff Blog:QEMU の Microsoft x64 環境での不具合
APIとかABIとかシステムコールとか - Qiita
Makoto Kato ︎︎さんはTwitterを使っています: 「Linux/aarch64のコードをWindows/arm64にポートする時に気をつけないといけないのは、x18がLinuxだとスクラッチレジスタだけど、Windows (iOSもだけど) だとスクラッチレジスタではないので、ちゃんと値を保持しないといけないってところ。ABIの定義みたら、プラットフォーム依存と書かれたはず」 / Twitter
FadisさんはTwitterを使っています 「intのサイズがいくつでlongのサイズがいくつってのはC++の規格じゃなくてABIが決めるところで、ABI次第では両者は同じサイズになり得る。でもサイズが同じである事と、型が同じであることは別の話で、両者が同一の型扱いされることは無い」 / Twitter
ARM64EC Support in Visual Studio | C++ Team Blog

objdump

[reverse-engineering] objdumpを使用したフラットバイナリファイルの逆アセンブル [disassembly] | CODE Q&A 問題解決 [日本語]
2590 - x86-64 validator allows addressing mode with the redundant "%riz" encoding - nativeclient - Monorail
【ベースアドレス】の例文集・使い方辞典 - 用例.jp

POSIX

可変長引数

ロボ太さんはTwitterを使っています: 「C/C++で、以下の実行結果が「3 1.200000」になることを知って震えている。 printf("%d %f\n", 1.2, 3);」 / Twitter
Masaki HaraさんはTwitterを使っています: 「これどういうことかと思ったらva_listの構造も特殊なのか。たとえばPowerPC64 System V ABI V2だとva_listは引数を順に並べたものになっているので、可変長な関数を呼ぶときはcalling conventionが変化するんだけど、AMD64 System V ABIでは%alに使用したSSEレジスタの個数を入れるだけしい」 / Twitter
Masaki HaraさんはTwitterを使っています: 「まず前提条件として ・固定長引数関数は、できるだけ引数をレジスタに入れて渡したい ・可変長引数関数はどうせva_listに入るのでスタックに入れて渡したい という要件があるんだけど、ここでnon-prototype関数という厄介なやつがいる (伝統的なC言語にある、引数型が不明な関数)」 / Twitter
Masaki HaraさんはTwitterを使っています: 「こいつは呼び出し側からは固定長か可変長かすらわからないので、わからないなりに上手く呼べる必要がある。なので基本的に以下のような戦略になる ・引数はできるだけレジスタに入れて渡す ・可変長引数のときは必要に応じてレジスタからスタックにコピーしなおす」 / Twitter
Masaki HaraさんはTwitterを使っています: 「で、レジスタとスタック上の位置が1対1対応してればここまでの議論で完結するんだけど、多くの場合は整数と浮動小数点数は別のレジスタに入れたほうが効率がよい (固定長引数のときはそうしたい)。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「しかも、できれば沢山レジスタに入るほうがいいので、整数レジスタは整数レジスタで詰めて入れたいし、浮動小数点数レジスタも同様。 ところがスタック部分は共用なので、「どこからがスタックに溢れたのか」がわからなくなる。」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「レジスタに置いて呼んでからスタックにコピーされるのかあ」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんかレジスタ経由して「書式文字列通りに引数並べてあったらレジスタにこう置いてあるでしょ他は知らん」みたいなノリなのかな、でもなあって思ったら意外と部分的にそういうノリっぽい上にもっとあれな話だった」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「Cの処理系は初期の仕様をカバーしつつ効率的なコードを吐く事の両立を求められるとほんときつそう。gccとかclangとか超感謝」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「発展課題: これが当然だと思った皆さんは、va_start, va_arg, va_stop の実装を考えてみましょう https://t.co/jXo8DhCdd9」 / Twitter

値渡し

uint256_tさんはTwitterを使っています 「#cilk 構造体を値渡しするためには,かなり大がかりな改修が必要なことが分かった.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t ほんとあれややこしいんで、そんなに得になっているのか誰かにちゃんと説明してほしい。あと、 struct { double x, y; }みたいなやつは2つのXMMレジスタで渡されたりしますよね(さらにトリッキー)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 xmmなどのレジスタが関わってくる場合については,どこかに詳細なドキュメントが置いてあったりするのでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t https://t.co/1SIFcKzwpt の 3.2.3 Parameter Passing のあたりです」 / Twitter
psABI-x86_64.pdf
uint256_tさんはTwitterを使っています 「@rui314 ありがとうございます (確かにこれはややこしい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t まあx87の80ビット浮動小数点数とか__m256あたりはとりあえず無視していいとは思いますけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そこらへんをとりあえず置いておくと、 - 16バイトより大きいとかunalignedなメンバがあったりするとスタック渡し - それ以外の場合、8バイトごとに区切って考えて、8バイトに含まれているメンバが全部浮動小数点数型ならXMM、そうでなければ整数レジスタ渡し というルールのはず。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 かなりすっきりしますね.わかりやすい.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t struct { int a; float b; double c; }だと、aとbは(上位32ビットと下位32ビットで)まとめて1つの整数レジスタで渡して、cはXMMという。そこまで詰めるメリットあるのかなぁという感じですけど。」 / Twitter

_ko1さんのツイート: "https://t.co/Wlk3omuOir (VALUE)(*funcptr)(VALUE) と (VALUE)(*funcptr)() で呼び出し時のコンベンションが違うようなんですが、後者って何? eax なんて callee は見ないよね?"
Shiro Kawaiさんのツイート: "funcptrがvarargだった時にFP引数の数をalに入れることになってるので、それを0にしとくため?… "
_ko1さんのツイート: "FP引数!! 知りませんでした… "
Shiro Kawaiさんのツイート: "callee側でどう使ってるのかはよく理解してない。スタックにスピルした場合でも結局va_argで渡される情報を信用してアクセスするしかなさそうだけど…xmmの退避に関係する?… "
Kazuho Okuさんのツイート: "va_startは引数かもしれないレジスタを全部スタックに展開するけどxmmでそれやるとさすがにメモリ食い過ぎるから… "
Shiro Kawaiさんのツイート: "なるほど。va_listの実体をスタックに持たないとならないからか。全部va_argで使い切られてたらどのレジスタ使えばいいのかわかるけど、va_listのまま他の関数に渡される場合があるからコピーは必要と。… "
mpx-linux64-abi.pdf
Cの可変長引数とABIの奇妙な関係 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SPARC(32bit)で構造体を渡す時、レジスタに収まるサイズでも、ポインタ経由になるの、考慮漏れだったのかな? v9でもx64でも、レジスタサイズより大きい場合にはじめて、ポインタ経由になる。」 / Twitter
kubo39@求職中さんはTwitterを使っています 「@rui314 @uint256_t x86においてebxレジスタをGOTのために予約していた話でしょうか。GCC 5以降はそうではなくなりました。 https://t.co/m571IdUGTV」 / Twitter
New Optimizations for X86 in Upcoming GCC 5.0: PIC in 32-Bit Mode
Assembly 2: Calling convention – CS 61
2021-05-04_-The-Complete-Guide-to-return-x-1.pdf

x64 ABI

WINAPI とは何か? - C/C++ 入門
melancholic afternoon
ACCU :: Windows 64-bit Calling Conventions
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
Makoto Kato ︎︎さんのツイート: "@d_toybox (Unix ABIだと6個だけど)。uint64_t -> uint32_t の暗黙的な変換とかは別に命令実行する必要ないんでそんな関係しない"
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"

x32 ABI

本の虫

本の虫: x32 ABIの簡易的なまとめ
本の虫: GoogleのNative ClientチームがLLVMにx32を所望
本の虫: glibc 2.16がリリース。x32をサポート
本の虫: LLVMにx32のサポートを追加するパッチ

x32-abi
Fadisさんのツイート: "Linuxカーネル開発者達がx32 ABIの廃止を検討している。x32はx86_64のハードウェアを要求しながら32bitのアドレスを使う事でx86_64の機能を利用した性能の向上と、アドレスが短い事による性能とバイナリサイズでの強みを共に享受しようというABIで、あまり流行っていない https://t.co/hvFqRfIW66"
Linux、x32のサポート終了か - ト―バルス氏は賛成 | マイナビニュース

kABI

kABIとは何か - 赤帽エンジニアブログ

スタック

[C言語]コールスタック(スタックフレーム)の仕組みを復習する | KentaKomai Blog
WIN64スタック | さすらいのプログラマ - 楽天ブログ
スタックと割り込み ―― プログラムが動く仕組みを知ろう|Tech Village (テックビレッジ) / CQ出版株式会社
スタックフレーム - 関数に渡される引数を知る - Web/DB プログラミング徹底解説
windows - newbie trying to understand disassembled code - Reverse Engineering Stack Exchange
c - マシンコード実行時のランタイムエラーが不明確

エンディアン

エンディアン - Wikipedia
エンディアン - デバイスドライバの記述
PCI - OSDev Wiki
Ext4 Disk Layout - Ext4

ソフトウェア規約

x64 でのソフトウェア規約 | Microsoft Docs
x64 software conventions | Microsoft Docs
__fastcall | Microsoft Docs
/favor (アーキテクチャ固有の最適化) | Microsoft Docs
/Zp (構造体メンバーの配置) | Microsoft Docs
コンパイラ組み込み | Microsoft Docs
呼び出し規則 | Microsoft Docs

呼び出し規約

x64 での呼び出し規則 | Microsoft Docs
x64 calling convention | Microsoft Docs
__m128 | Microsoft Docs
setjmp | Microsoft Docs
longjmp | Microsoft Docs
コンピューター:C言語講座:構造体・共用体・ビットフィールド

スタックの使用

x64 スタック使用量 | Microsoft Docs
x64 stack usage | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
malloc | Microsoft Docs
__m128 | Microsoft Docs
_aligned_malloc | Microsoft Docs
_alloca | Microsoft Docs
align (C++) | Microsoft Docs
__declspec | Microsoft Docs

プロローグとエピローグ

x64 プロローグとエピローグ | Microsoft Docs
x64 prolog and epilog | Microsoft Docs
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
X64 Memory segmentation – Is the game over? | AaLl86 Security
或るプログラマの一生 » x64 環境でのアセンブラプログラミングにおける注意点
x64 Assembly Language Programming
64-bit _alloca. How to use from FPC and Delphi? | Atelier Web
Saving Space When Saving Space - emsea
Thread’s Stack – Satyem
assembly - Meaning of BND RET in x86 - Stack Overflow
assembly - What does `rep ret` mean? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "余談ですが、x64は概ねプロローグでstack事前確保(alloca系は別として)なので、関数内でcall毎のpush/popがない分、x86よりダンプが読みやすい印象があります。 (ただダンプ解析では、引数がスタックにない分、若干解析しづらい)… "

例外処理

x64 例外処理 | Microsoft Docs
x64 exception handling | Microsoft Docs
MSVC の例外処理 | Microsoft Docs

x86-64とARM64の可変長引数関数の呼び出し規約 - Qiita
2x-3x Performance Improvements for Debug Builds | C++ Team Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「x86の引数はpushでズルズルとスタック確保していくけど、x64は呼び元関数のプロローグで事前に引数分のスタックは確保済み。 引数セットはレジスタかmovなので、実装次第で、引数評価順はどちらでも作りやすいそう。」 / Twitter
ロボ太さんはTwitterを使っています 「うげ、インクリメント演算子関係なく、純粋に引数の評価順序が処理系に依存するのか。 https://t.co/jhvIAT7eRI」 / Twitter

MS

定義済みマクロ
WINVER および _WIN32_WINNT の変更
/DISASM
/HEADERS
/SECTION (DUMPBIN)
Microsoft Macro Assembler Reference
MASM for x64 (ml64.exe)
ML and ML64 Command-Line Reference
PROC
.ENDPROLOG
SEGMENT
COMM
EXTERN (MASM)
INCLUDELIB (MASM)
INCLUDE (MASM)
PUBLIC (MASM)
Directives Reference
.MODEL
Symbols Reference
ML Error Messages
Operators Reference
MASM Numbers and Operators - Windows 10 hardware dev
アセンブリ言語の式
operator IMAGEREL

x64

その他

X86 Opcode and Instruction Reference
Intel XED
SSSE3: fast popcount
WojciechMula/sse-popcount: SIMD (SSE) population count --- http://0x80.pl/articles/sse-popcount.html
Expression templateとfmaについて - in neuro
maveの中身について - in neuro
SIMDベクトル・行列ライブラリを作った - in neuro
本の虫: 今でも乗除算をビット演算に展開する意義はあるんだろうか
part03.pdf
アセンブリ – 64ビットコールゲートの使い方 - コードログ
Nerry さんはTwitterを使っています: 「deadbeefみたいなの、x64ではあまり適当に設定しすぎるとpage faultの前にcanonical violationに引っかかって例外のエラーコードとして取れないのしんどい」 / Twitter
パフォーマンス – x86_64:IMULは2x SHL 2x ADDより速いですか? - コードログ
minix86
アセンブリ – x86で相対的な短いjmpをエンコードする方法 - コードログ
エンコーディング – 相対JMP(x86)はアセンブラーにどのように実装されていますか? - コードログ
x86 の汎用レジスタのルーツ - 借り初めのひみつきち
x64で配列の添字にintを使うと遅い - in neuro
InstLatX64さんはTwitterを使っています 「#Intel refreshed the "Data Streaming Accelerator Architecture Specification" to 1.1 with #ENQCMD/ENQCMDS of #SapphireRapids https://t.co/SDQ1mg5Tpt https://t.co/Z9jztPsq2Y」 / Twitter
INTEL® DATA STREAMING ACCELERATOR ARCHITECTURE SPECIFICATION - 341204-intel-data-streaming-accelerator-spec.pdf
PEXT/PDEP - Google 検索
中村 実さんはTwitterを使っています 「日高 徹・青山 学著『8086マシン語秘伝の書』は面白いので知らない人は一読をおすすめする。全文がEPUBやPDFで公開されいるみたいだし。 https://t.co/Dm1CpJQmzh」 / Twitter
8086マシン語秘伝の書 : 日高徹, 青山学 : Free Download, Borrow, and Streaming : Internet Archive
アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)

herumi

introduction to x86-asm
x64 Assembly Language Programming
Intel optimization
misc/fence.md at master · herumi/misc
herumiさんのツイート: "mclの基礎体のx64(Xbyak)実装の多少詳しめの解説(書きかけ)。今日の社内勉強会の資料。adoxやadcxの解説ってあまり見かけない(というか命令の存在自体知らない人が多そうな印象)。 https://t.co/FCz6Zm7NMW"
opti/field-impl.md at master · herumi/opti
melancholic afternoon
MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
herumiさんのツイート: "先日のIntel MKL-DNNについてのブログを書いてるときに見つけたAVX-512用指数関数expの改良(22命令→19命令)のpull requestがmergeされた。 https://t.co/nviKW0gyrK そしてvcvtps2dq + vcvtdq2psはvrndscalepsに出来るというのを知った。これはvroundpsの拡張だったのか。 https://t.co/o2DiBVCRZZ"
herumiさんのツイート: "xchg eax, eaxは64bit環境じゃnopじゃないよと説明したよね、と思ったけど@sksat_tty さんはその日は休んでいたのだった。 https://t.co/93Hh1WE9R6"
melancholic afternoon
melancholic afternoon

iSUS

x64 アセンブリーの概要 | iSUS
Microsoft* Windows* 10 における新しい命令セットの利用 | iSUS
ソフトウェアは実際に新しい命令セットを使用しているのか? | iSUS

命令

melancholic afternoon
MULX — Unsigned Multiply Without Affecting Flags
ADCX — Unsigned Integer Addition of Two Operands with Carry Flag
ADOX — Unsigned Integer Addition of Two Operands with Overflow Flag
算術命令
xorpd | xchg rax,rax
X86-64 Instruction Encoding - OSDev Wiki
AMD64の特徴と機械語コーディング (1/2):CodeZine
assembly - Why did GCC generate mov %eax,%eax and what does it mean? - Stack Overflow
MOV命令
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
Nerry さんはTwitterを使っています: 「x64ってデフォルトオペランドサイズ32bitだけど、32bitと64bitでそれぞれ意味のある命令、強制的に64bitで実行される命令、明示的に64bitにしないと実質意味のない命令が混在してて禿げる」 / Twitter
Nerry さんはTwitterを使っています: 「push/popやcall/ret(near)は強制64bit iretqとかは明示的に64bitにしないと禿げる奴」 / Twitter
BitTest 命令 - 借り初めのひみつきち
PDEP/PEXT命令 - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています 「インテルなんてsha256とかの拡張が32bitでも提供してるのはびっくりした」 / Twitter
FadisさんはTwitterを使っています 「Arch Linuxがx86-64-v3版の提供を検討しているらしい。x86_64には多くの拡張命令が追加されてきた為、初代Athlon64に合わせてビルドしたバイナリは今日のCPUを活かす事ができない。 この為Archでは以前からx86_64ならどこでも動くv1とNehalem以上を要求するv2が提供されていた https://t.co/7GjGxZGB9W」 / Twitter
Arch Linux Developers Discuss Idea Of Providing An x86-64-v3 Port - Phoronix
FadisさんはTwitterを使っています 「新しいx86-64-v3ではAVX、AVX2、MOVBE、XSAVE等が使えるようになり、最低でもIntelならHaswell以上、AMDならZen以上のCPUを要求するようになる」 / Twitter
SIMD-accelerated regular expression matching | Proceedings of the 12th International Workshop on Data Management on New Hardware
Rust の勉強と CPUID の実践と | Coelacanth's Dream
InstLatX64さんはTwitterを使っています 「@PerforatedBlob Thank you very much! You are right, ternlog is unnecessary here. Fix: https://t.co/dqvq82omja」 / Twitter

二分探索

Kazuho OkuさんはTwitterを使っています 「いい紹介記事。参考にコード書く上では、分岐予測があたる場合「CMOVのほうが遅くなりがち」なことも注意必要だと思う。基本的に分岐予測が当たらない時に使うものという認識 / https://t.co/FposYiiW60」 / Twitter
Binary search with modern processors - Speaker Deck
Kazuho OkuさんはTwitterを使っています 「aarch32 で全命令に predicate(実行条件指定)があったのが aarch64 でなくなったのも、反映されない命令を常に実行するよりも、分岐予測を使って実行する命令数を減らすほうが有効だという現実があるからなわけで」 / Twitter
Kazuho OkuさんはTwitterを使っています 「演算器があまってる場合はCMOV使っても問題ないとか、そうすることでBP/BTBの消費が抑えられるとか言い出すと沼」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ところで論旨に関係ないけど、CMOV使う版は配列の要素数が2のベキ乗じゃない場合の処理をさぼってない?」 / Twitter

Intel Key Locker

Intel Key Locker Specification - 343965-intel-key-locker-specification.pdf

OFFSET FLAT:

x86 Disassembly/Variables - Wikibooks, open books for an open world
It's science, but it works like magic.: Gas Problems
ia32_chap_04.pdf
ブートストラップローダ領域でHello, World! - Qiita

Unreal Mode

“Unreal mode”と呼ばれているx86の状態について | KEI SAKAKI's PAGE.
Unreal Mode - OSDev Wiki
Unreal mode - Wikipedia
savaさんのツイート: "めも:(i386の)アンリアルモード略史 https://t.co/aYuRbCWKxM インテルは最初、i386でも(286と同様に)プロテクト→リアルモードに戻る手段を提供しない予定だった、というのははじめて知りました…"
A Brief History of Unreal Mode | OS/2 Museum

リアルモード

X86アセンブラ/x86アーキテクチャ - Wikibooks
x86_mode - OS-Wiki
リアルモード - Wikipedia
8086による機械語入門 - Qiita
リアルモードでも32bitのレジスタを使うことができる - 脱力系日記

blog

原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
はじめてのにき(2010-07-06)
x86 でリンクコール - Think Stitch - PRINCIPIA
gccのx86インラインアセンブリに関して
はじめてのにき(2009-03-31)
Assembly Programming on x86-64 Linux (05)
Assembly Programming on x86-64 Linux (02)
2014.seccon.jp/mailmagazine/backnumber07.txt
2014.seccon.jp/mailmagazine/backnumber08.txt
Intel Ice Lakeのプロセッサは整数除算命令がアツい - chroot("/home/hibari")
Ice Lakeプロセッサは整数除算がアツい 数値計算編 - chroot("/home/hibari")
日記 (2019 年 7 月中旬)
日記 (2019 年 7 月中旬)
或るプログラマの一生 » Zen は PEXT/PDEP 命令が遅い

スライド

SSE4.2の文字列処理命令の紹介
あなたの知らないnopたち@ラボユース合宿
Shinjuku.rs#15 Rustでつくるx86アセンブラ - Speaker Deck

Qiita

x86-64プロセッサでGNU assemblerを使う - Qiita
ハードウェア乱数 RDRAND命令の使い方 - Qiita
初学者向け x86/MacOSX 64bit アセンブリ - Qiita
FMA (fused multiply-add) の話 - Qiita
NOP WORD PTR? - Qiita

Twitter

16 ビット long モード

Nerry さんはTwitterを使っています: 「今まで16bitロングモードがうまく動かない理由がやっとわかった:;(∩´﹏`∩);: https://t.co/DkozHhnKZj」 / Twitter
Nerry さんはTwitterを使っています: 「実際には16bitロングモード自体は以前から動いていたけど、ロングモードに遷移直後のfar jump命令が間違っててそのままGPF→triple faultみたいな」 / Twitter
Nerry さんはTwitterを使っています: 「これによって今までは起動時に RM16→PM16→PM32→LM32(CM32)→LM64 という遷移が必要だったのが、RM16→PM16→LM16(CM16)→LM64 に直接遷移できるようになって中間の32bitセグメントがいらなくなったヽ(•̀ω•́ )ゝ✧」 / Twitter
Nerry さんはTwitterを使っています: 「x86の命令エンコーディングの複雑さを改めて実感した。 x86命令って16bitと32bitの単純な2種類あるわけじゃなくて、デフォルトオペランドサイズと66 67の組み合わせで(命令によっては)4種類の命令が混在している。」 / Twitter
Nerry さんはTwitterを使っています: 「困ったことに4種類の命令全てにちゃんと名前がついてるわけじゃなくて、アセンブラや逆アセンブラ上では表現できない命令も存在している」 / Twitter
Nerry さんはTwitterを使っています: 「スレッドディスパッチャ完成する前にSMPのAP起動コード動いた🤔」 / Twitter

整数乗算

R. ShioyaさんはTwitterを使っています 「一時期はそうだったけど最近のインテルだと整数乗算がレイテンシ3サイクルで,SIMD の FP だと 4 なので整数のが速いかも.整数乗算がボトルネックになるのは構造体の配列アクセスとか,固定値での除算からの変換,ハッシュ表のハッシュ値の計算とか暗黙な場合が多いかも https://t.co/yCoJ6a5rdR」 / Twitter
instruction_tables.pdf
Kazuho OkuさんはTwitterを使っています 「除算はともかく、乗算については(特にSIMDの)浮動小数でやった方が整数でやるよりも速いCPUの方が多いんじゃないかなぁ。結局、実用途でボトルネックになる乗算は大抵浮動小数なので」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこの間、塩谷先生に教えてもらった資料に、こんな記述あったっけ。 ---- 「Alphaは整数除算命令を欠いており…驚くべき結果として、ほとんどの実装で浮動小数点除算が整数除算よりも大幅に高速になりました」 https://t.co/sjOdraolxv」 / Twitter
Waterman_berkeley_0028E_15908.pdf
FadisさんはTwitterを使っています 「乗算が加算より遅いかはプロセッサによる。シフトより乗算のほうが有利なアーキテクチャさえ存在する。コンパイラはプロセッサが命令を処理するのに必要なサイクルに基づいて等価な命令への置き換えを行うので多くの場合高級言語における計算式はその意味通りに書いて正しいmarchを指定したほうが良い」 / Twitter

REX

uchanさんはTwitterを使っています 「MOVZX r64, r/m8は何のために存在するのか分からない - uchan note https://t.co/kxARiS5J4G」 / Twitter
MOVZX r64, r/m8は何のために存在するのか分からない - uchan note
yohさんはTwitterを使っています 「@uchan_nos へーときになって検索だけしてみたのですが https://t.co/mG50BAKT2D が答えになっています?」 / Twitter
assembly - What's the point of instructions with only the REX prefix in 64bit mode? - Stack Overflow
yohさんはTwitterを使っています 「@uchan_nos 良く読み直したら REX-prefix 有無じゃなくて EAX / RAX の違いに関してなんですね。失礼しました(r64直指定とr32指定+上位32bit自動Zero化で何か違うかという点)」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: 趣旨がよく似た https://t.co/1tmIUpiP0y "Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86" ってのがありました。」 / Twitter
assembly - Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86 - Stack Overflow
Yasuo ItabashiさんはTwitterを使っています 「@uchan_nos 元記事の通り「規則性を満たすために項目だけは用意されている」のだと思います。命令のデコーダを作る観点からするとプレフィックスを付けた時の意味に対する(上位32bitがクリアされる)動作が(結果的に重複したものだとしても)妥当であるのに、わざわざr64のものを弾くのは回路が無駄に複雑になります」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「raxやripレジスタのr、REX prefixとは何か調べていたら "Register EXtension"らしい。ラテン語の王様ではないのか。 » assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow https://t.co/GvTykx3BV6」 / Twitter
assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow
Keigo NitadoriさんはTwitterを使っています 「Accumulator, Base, Counter, Dataでa b c dの8-bitレジスタだったけど、16-bitになったときah, alみたいに上下触れてaxがその両方。 ソースは不明だが32-bitに拡張されたeaxのeもxもextend由来という記事も。 https://t.co/WNmPXLtucj」 / Twitter
レジスタ (コンピュータ) - Wikipedia

histric-1

るくすさんのツイート: "まあrex prefixの有無がdec %eaxに解釈されるかされないかで判定するというのはあまりにも有名なテクだけど、test $0xF9F9F9F9,%eaxでsetcondに解釈されるというのは、なるほどという感じ"
Urabe, Shyouheiさんのツイート: "x86というのは同じことをするのに様々な書き方ができるISAなわけだけれども、同じことをするのであれば短く書いたほうが速い、という話。 ようは最近のx86ではfetchの帯域が律速している。 https://t.co/a9AVqgJWTN"
Micro-op fusion in x86. | Denis Bakhvalov | C++ enthusiast.
はぇ~☆さんのツイート: "いろいろ制約があって、コード次第で状況が毎回違うんですよね。… "
まさみさんは語りたいさんのツイート: "ああ、REXが。。。… "
Fadisさんのツイート: "x86_64のpop %r15の命令の途中にジャンプすると%rdiがpopされる。pop %rdiを必死で探し回ったけど見つけられなかったROPerは覚えておくと時々役に立つ"
OS自作 uchan_nosさんのツイート: "x86-64アーキテクチャのretfとlretqとREX.Wプレフィクスの関係を学んだ."
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
まさみさんは語りたいさんのツイート: "Modifier + Register/Memory indicator = ModRM"
解答略さんのツイート: "x86の機械語をざっと見渡すには、このpdfが世界で一番整理されてると思う。https://t.co/00G7QFh8sN これはx86エミュレータ作るとき大変世話になった。人力objdumpするなら、とりあえずこの表を小一時間眺めるのが良さそう。nopはxchg eax, eaxとか色々わかる。これのx64版、誰か作ってくれないかな"
Wayback Machine
解答略さんのツイート: "前ツイートのpdfは、このサイト https://t.co/9Zw3y6hZIG のpdfがリンク切れなのでwebarchiveから拾ってきたものです。ModRM周りを理解するために、僕はニーモニックをnasmでアセンブルして表と見比べてた。強者はIntelの仕様書眺めりゃ理解できるのだろう。あとx86エミュレータ本は実装の参考になった"
ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
Nerry@さんのツイート: "x64ってデフォルトサイズが32bitになってて ・暗黙的に64bitで解釈される命令 ・32bitと64bitでそれぞれ意味のある命令 ・実質的に64bit専用なのに64bitの明示が必要な命令 が混在してるんだよね"
Kazuho Okuさんのツイート: "VMとかステートマシン書いてると、分岐先予測があたるようにコールサイト(分岐元)を複数に分けるのは常套手段ですよね?"
Kazuho Okuさんのツイート: "詳しくはこのへん https://t.co/owIgORoNEy"
assembly - X86 prefetching optimizations: "computed goto" threaded code - Stack Overflow
Kazuho Okuさんのツイート: "絶対アドレスやip相対の無条件分岐命令が、それ以外の分岐命令と同様にbtbを消費するのかは気になってる(実務上はそこまでシビアなコードは書かないから気になるどまりなんだけど)。cpu的にはそこ節約することは可能だと思う一方、そこがんばるかわりにbtbのエントリ増やしてそうでもあり"
Kazuho Okuさんのツイート: "僕はデータキャッシュやTLBよりも圧倒的に分岐予測を気にしてコード書いてる。キャッシュはb-wayだから一個あてなくてもペナルティは発生しにくいんだけど、あたりにくい条件分岐は一個ホットパスにおいただけで確実にペナルティ食う… "
成瀬さんのツイート: "CPUの気持ちって分岐予測とキャッシュかなぁって感じだけど、パフォーマンスカウンターを読めるようにならないとだめかなぁってところでとまっている"
島鉄雄さんのツイート: "https://t.co/cpb2LfGJV6 Zen 2が最強の分岐予測を実装してIPCが大幅に向上したようだけど、やっぱり条件分岐自体がコードを遅くする原因だから、なるべくcmovになるようにコーディングすべきなんだよね。 試したら2つ目の書き方がcmovになった。 (gcc -Ofast でコンパイルした)… https://t.co/PJDhXk3Hk8"
Nerry さんはTwitterを使っています: 「滅多に使われないDFのために要所要所にCLD命令を配置しなければならないx86のstring命令の設計ミス」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「far retは低い権限レベルに戻るときと権限レベルが変わらないときで,SS/RSPをポップするかどうかが切り替わるの知らなくて数十分ハマった」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「関数コールが即値アドレス,変数読み書きがRIP相対になるのはなぜという話。callは即値としてRIPを基準にしたオフセットを取るが,movはRIP相対とするためには[rip+...]のような形式のアドレッシングが必要だから,逆アセンブルしてみるとcallは即値コール,movはRIP相対に見えるだけでは?」 / Twitter

Kazuho OkuさんはTwitterを使っています 「えー aes128gcm、パケットサイズが 1KB とかになると i7-4870HQ (4th gen Core i7) と Atom x5-Z8350 (Cherry Trail) でスループットが10倍違うのマジですか。。。通常のワークロードだと4倍くらいなのでビビってる」 / Twitter
mattnさんはTwitterを使っています 「Windows で動く x86/x64 アセンブリの REPL。 / “GitHub - zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows” https://t.co/UnLQMtDh1V」 / Twitter
zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows
Miura HidekiさんはTwitterを使っています 「意味がわからなかったけど、PC8001のマシン語モニターの1行アセンブラみたいなものか」 / Twitter
ロボ太さんはTwitterを使っています 「SIMD化をすると早くなったり遅くなったりするぞい。」 / Twitter
InstLatX64さんはTwitterを使っています 「@mjcharney refreshed #Intel XED. These #AlderLake and #SapphireRapids datafiles detail the #GoldenCove and #Gracemont ISA capabilities https://t.co/nyQ0LEZKRv https://t.co/5vPFG6JTiW https://t.co/fJgfOCa74v」 / Twitter
DQNEOさんはTwitterを使っています 「* ジャンプ先未定の可変長命令を、未決定リストに登録 * 未決定リストのメンバーについて、相対距離を特定できるものは卒業扱いにする * 相対距離が未定でもレンジ(min,max)がわかれば命令長は決定可能 * 「命令長が決まった」と「ジャンプ先が決まった」を別の状態として扱う」 / Twitter
DQNEOさんはTwitterを使っています 「以上の処理を、メンバーが全員卒業できるまで無限ループ という自作アルゴリズムで動かしてみたら見事に全ジャンプ命令を決定できた。」 / Twitter
herumiさんはTwitterを使っています 「Xbyakにfar jmp/callのサポートPRが来て、そんなマニアックな機能要らね?と返事したら、AArch64上でx86/x64を動かすエミュレータで使うらしい。 https://t.co/ans2GhKSWw それならとサポートすることにしたのだけどasm表記がアセンブラによって違って調べるのに時間がかかった。」 / Twitter
FEX-Emu/FEX: A fast usermode x86 and x86-64 emulator for Arm64
herumiさんはTwitterを使っています 「nasmのjmp far[rax]は yasmでjmp far qword[rax]で gasならrex64 ljmp *(%rax) だって。 yasmのjmp far[rax]はdwordの意味でデフォルト値がnasmと異なってる。 Xbyakではサイズを明示するようjmp(qword[rax], T_FAR)にした。」 / Twitter

Intel® Intrinsics Guide
asmjit/asmjit: Machine code generation for C++
intelxed/xed: x86 encoder decoder

MASM

MASM32によるアセンブラ入門:パート1 - インターネットコム
Win32 MASM プログラミング入門
VC++のデバッグモードとリリースモードの違いについて。 - VC++を使って... - Yahoo!知恵袋
visual studio 2013で「最適化コンパイルのオプションを切る」ってどうすれば... - Yahoo!知恵袋
Visual C++ 2010 express のインラインアセンブラのOFFSET演算子に... - Yahoo!知恵袋
CX's Hello, World! » Hello, MASM World!
MASM のデータ型
MASM のデータ型
MASM の 実行時比較演算子,TYPE演算子, 他
Microsoft Macro Assembler のメモ セグメント
Entis Laboratory
Microsoft Macro Assembler のメモ モデル
MASM 6.1 Documentation
MASMReference.pdf

MASM 以外

Yasm

The Yasm Modular Assembler Project
Libyasm · yasm/yasm Wiki
yasm/yasm: Yasm Assembler mainline development tree
Yasm - Wikipedia
yasm/COPYING at master · yasm/yasm
Amd64 · yasm/yasm Wiki
Libyasm · yasm/yasm Wiki
libyasm: File List
yasm-doc/manual.txt at master · yasm/yasm-doc
Chapter 16. win64: PE32+ (Microsoft Win64) Object Files
Win64object · yasm/yasm Wiki
Programmerreferences · yasm/yasm Wiki
Codeviewdebug · yasm/yasm Wiki
Dwarfdebug · yasm/yasm Wiki
Faq · yasm/yasm Wiki
Visualstudio2005 · yasm/yasm Wiki
yasm-1.3.0
yasm-1.3.0
Yasmのコンパイル&インストール お気に入りの動画を携帯で見よう
猫科研究所 - 今更MinGW 2009.06(5) nasm,yasm
1.7. Supported Debugging Formats
Yasm User Manual
Yasm 1.2.0 - The Yasm Modular Assembler Project
x86 - Debugging assembly code created with yasm - Stack Overflow
c++ - How can I use gdb to debug code assembled using yasm? - Stack Overflow
Ubuntu Manpage: yasm - The Yasm Modular Assembler

NASM

Netwide Assembler - Wikipedia
Netwide Assembler - Wikipedia
NASM
Public Git Hosting - nasm.git/summary
NASM
NASM - The Netwide Assembler
NASMとMASMの違い - その他(プログラミング・開発) 解決済み| 【OKWAVE】
https://web.archive.org/web/20100719062549/http://www.yuasa.kuis.kyoto-u.ac.jp:80/~nobu/study/nasm/chap2.html
NASM - The Netwide Assembler
nasmのバグ? - 借り初めのひみつきち
WindowsでNASMを使ってアセンブラを動かしてみる - Qiita
アセンブラ環境 NASMとALINK - Namareba食べたい
アセンブリでWin32APIを呼んでみよう! | Developers.IO
南関東開発機構 : アセンブリ言語でWindowsプログラミング
アセンブリ言語入門 | nasmの使い方-4 | サラリーマンがハッカーを真剣に目指す
NASM - The Netwide Assembler

GAS

Linux のアセンブラー: GAS と NASM を比較する
KMC Staff Blog:gas のインテル構文
GNU アセンブラ - OS Project Wiki
GASとNASMとNASKについて - Project_Rena_( unofficial plan : shoko ) - Seesaa Wiki(ウィキ)
GAS と NASM ではどちらが使い易いのでしょう? - 「はじめて読む8086... - Yahoo!知恵袋
GAS_基本書式 CapmNetwork
Using as: Pseudo Ops
Using as: i386-Dependent
Using as - Assembler Directives
日記 (2017 年 7 月中旬)
日記 (2017 年 7 月中旬)
uchanさんはTwitterを使っています 「https://t.co/xIXWlggjpu これが答えっぽい。GNU asはqword==8として解釈するから push qword [rax]は push 8 [rax] に解釈されるらしい。 おそらくAT&amp;T記法によるところのpush 8(%rax)の意味になっていると思われる。これなら筋が通る。」 / Twitter
assembly - Gnu assembler gives unexpected memory operand - Stack Overflow

Xbyak

XBYAK
herumi/xbyak: a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header
xbyak/readme.txt at master · herumi/xbyak
Xbyakで始めるx86(IA-32)入門 (mitsunari@cybozu labs)
暗号の世界最速実装を目指す ── 光成滋生 - Cybozu Inside Out | サイボウズエンジニアのブログ
S.F. Blog:Xbyakのしくみ
Xbyakで簡単な関数を実行時に生成する - Kludge Factory
C++/Xbyak - discypus
Xbyakの紹介とその周辺
melancholic afternoon

Function Calling Convention (x86-64) - Qiita
assembly - How to generate plain binaries like nasm -f bin with the GNU GAS assembler? - Stack Overflow

Wikibooks

X86アセンブラ/x86アセンブラ - Wikibooks
X86アセンブラ/GASでの文法 - Wikibooks
X86アセンブラ/MASMでの文法 - Wikibooks
X86アセンブラ - Wikibooks

通信用語の基礎知識

オペコード (IA-32) ‐ 通信用語の基礎知識
オペランド ‐ 通信用語の基礎知識
ModR/M ‐ 通信用語の基礎知識
SIBバイト ‐ 通信用語の基礎知識
命令プリフィックス ‐ 通信用語の基礎知識
REXプリフィックス ‐ 通信用語の基礎知識
REX.W ‐ 通信用語の基礎知識
プリフィックス ‐ 通信用語の基礎知識
XOPプリフィックス ‐ 通信用語の基礎知識
VEXプリフィックス ‐ 通信用語の基礎知識
EVEXプリフィックス ‐ 通信用語の基礎知識
Intel AVX ‐ 通信用語の基礎知識
Intel AVX2 ‐ 通信用語の基礎知識
__m256 ‐ 通信用語の基礎知識
Intel AVX-512 ‐ 通信用語の基礎知識
__m512 ‐ 通信用語の基礎知識
FMA3 ‐ 通信用語の基礎知識
FMA4 ‐ 通信用語の基礎知識
HLE ‐ 通信用語の基礎知識
RTM ‐ 通信用語の基礎知識
AMD64 ‐ 通信用語の基礎知識
cpuid (x86) ‐ 通信用語の基礎知識

Wikipedia

x86 calling conventions - Wikipedia
呼出規約 - Wikipedia
Calling convention - Wikipedia
Application Binary Interface - Wikipedia
Application binary interface - Wikipedia
コールスタック - Wikipedia
Call stack - Wikipedia
符号拡張 - Wikipedia
3DNow! - Wikipedia
SIMD - Wikipedia
コンピュータアーキテクチャの話(314) Teslaアーキテクチャが採用した「SIMT方式」 | TECH+
単一命令列・複数データ(SIMD: シムディー)の並列 - Qiita
x86 - Wikipedia
x64 - Wikipedia
プロテクトモード - Wikipedia
積和演算 - Wikipedia
80x86 の命令の自己書き換え (#1559838) | もうやらなくていい昔のコーディングテクニックあれこれ | スラド
自己書き換えコード - Wikipedia
Self-modifying code - Wikipedia

Qiita

アセンブラに手を出してみる - Qiita
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
C言語の勉強がてら、CASL II処理システムを実装した話 - Qiita
EVEX - Qiita
Pelemay 0.0.10 で生成されるアセンブリコード - Qiita
2で割ることと3で割ること - Qiita
IA32(x86)汎用命令対応のアセンブラ実装方法(1) - Qiita
IA32(x86)汎用命令対応のアセンブラ実装方法(2) - Qiita

Twitter

その他

ひらナツさん@散文家さんのツイート: "AVXとSSEの命令がミックスされて実行されると、SSE命令の過去互換性を保つために、SSE命令が遅くなる(エミュレートされた状態になる?)AVXのレジスタ上位をクリアする命令をAVX実行後に実行してやると、もとのSSE命令に戻る。 #spkai"
インターネットの闇さんのツイート: "@func_hs load effective addressですね~~~"
InstLatX64さんのツイート: "A Venn-diagram to understand the 12 levels of #AVX512 in #Intel processors https://t.co/5cV9nTDTRb"
Fadisさんのツイート: "128bit整数があると64bitのアドレスにタグやカウンタをくっ付けた物をatomic演算で書き込む(今日の主要な64bitプロセッサは128bit atomic演算をサポートしている)のを高級言語で書けるんだ。これができるとロックフリーデータ構造におけるABA問題をあまり頭を使わずに解決できる"
ロボ太さんのツイート: "アセンブリの話になると必ず「アセンブラ言語は誤りで、アセンブリ言語が正しい」という人が湧いて、それはいいんだけど、とりあえずIBMは「Assembler language」と呼んでることと、ARMが「Unified Assembler Language (UAL)」を規定していることは知ってても良いかもしれない。"
ロボ太さんのツイート: "まぁARMは「アセンブリ言語(assembly language)」派だけれども。なのになぜ「UAL」が「Unified Assembly Language」ではなく「Unified Assembler Language」の略なのかは知らない。"
uint256_tさんはTwitterを使っています: 「関数呼び出し時に保存されないといけない(仮想)レジスタがどれかを判断するには, 呼び出しの周りで個々レジスタの生存期間を参照して判断すればいいかと思っていたけど, そもそも呼び出しがレジスタの値を破棄する物と扱えば, レジスタ退避のための処理と統合できるという(当たり前の)事実に気づいた.」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「32 bit 整数値を 1 bit ずつ回転させた 32 個の整数をすべて加えてから 2 の補数をとると、はじめの整数に含まれていた 1 の数(popcount)になる。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t コードの実行時間や利用可能な並列性をモデル化したアセンブラがあると良いなと思っています。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 モデル化というのはどういう意味でしょうか」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t たとえば命令スケジューリングをするときの指針になるような機能が欲しいと思っていて,いろいろな命令の並びに対して実行時間をシミュレーションできるようなモデルがあると良いんじゃないかと思いました。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 可能な命令の並び方に対して一つずつベンチマークできると便利かもしれませんね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MASM/GAS/Apple AS/ARM ASMのフォーマットの違いで痛い目にあっている自分としては、特殊なCPU命令ごときでアセンブラを使うのは得策ではないという知見。できるかぎりintrinsicを使うべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GNU AS/Apple AS/ARM RealView (Microsoft) ASとARMであっても三種類のシンタックスがあるんだから、ARMでもnasm的なの必要だよな」 / Twitter

分岐

uint256_tさんはTwitterを使っています 「フレーム内での位置を決定する前に命令を選択しているから, s0-10000みたいな位置に変数が置かれると, sd a5, -10000(s0) というinvalidなアセンブリが生成されてしまう.」 / Twitter
uint256_tさんはTwitterを使っています 「先にとても雑にフレームの位置を計算すればいいのか??」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t これは分岐命令とかも同じじゃないですか? こういう問題は、命令を生成した後に自分が生成した命令をスキャンし直して、大きすぎるオフセットを持ってる命令を複数の命令列で置き換えるという処理を入れるしかないような。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t しかも分岐命令だと収束するまで繰り返し再スキャンしないといけないですよね。1つの命令を複数命令列に置き換えることで、既存の命令のジャンプ先へのオフセットが若干大きくなることがありえるので。」 / Twitter
msyksphinz_devさんはTwitterを使っています 「LLVMだとeliminateFrameIndex()がその修正を担いますかね。 MachineInstrの状態でオフセットを計算し、即値が入り切らなければ、そこでさらに1命令突っ込みます。」 / Twitter

AT&T 記法

Tsukasa #01 [要出典]さんのツイート: "AT&T 記法、オペランドの向きが一般的なアセンブリ言語と逆なことまでは許せる。が、lea 命令をあんな形式にしたのはどう頑張っても擁護できない。"
Tsukasa #01 [要出典]さんのツイート: "lea 命令だけじゃないな。レジスタ 2 個以上がかかわる全てのアドレッシング形式 (特に Intel シンタックスでいう [4*ecx+esi+8] のような表記は AT&T シンタックスだと……)。"
Tsukasa #01 [要出典]さんのツイート: "[4*ecx+esi+8] → 8(%esi, %ecx, 4) …………。"
Tsukasa #01 [要出典]さんのツイート: "これは重要なことだと思うけど、アセンブリ言語は機械語そのものじゃない。"
rnurachueさんのツイート: "disasmすると落ちる情報もあるんやで(asmの表現力によるかもしれないが)"
rnurachueさんのツイート: "アーキによるかもしれんな"
Tsukasa #01 [要出典]さんのツイート: "まぁアーキ次第ではあるけど言いたいことはよく分かる。ジャンプ幅を意図的に決められる nasm のような処理系でも、8B 50 00 と 8B 90 00 00 00 00 は区別する方法が無いし、disasm 結果のアセンブリ部分を使うとバイナリが変わる。"
Tsukasa #01 [要出典]さんのツイート: "あるいは x86 における 87 c0 と 90。このときは ndiasm はバイナリの違いをちゃんと復元するが、nasm が気を利かせて前者を 90 にコンパイルし直す。"
herumiさんのツイート: "よく使われる命令はよいですがfsubrp, fsubpのAT&T記法の扱いはバグだと思いました(昔めちゃくちゃはまりました)。後、例えばvcvtpd2dq xmm0, yword [eax+32]といった新しい命令がどうなるかいちいち調べないといけないのも二度手間です。Intelが本家なのだからそれに従うのがよいと思います。… https://t.co/bFmd2lZY9j"
herumiさんのツイート: "補足するとIntelでのfsubrpはfsubrp st1,stの略(rはreverseでバイトコードはde e1)で意味はstからst1を引いて結果をst1に格納してレジスタポップだけどAT&Tでは何故かrがないfsubp %st, %st(1)になる。逆にfsubpはfsubrpになる。引数の順序だけでなく命令も入れ代わる。 https://t.co/hPLHkN7O1o"

インラインアセンブリ

Hideyuki Tanakaさんのツイート: "オッ(´・_・`) / “[Pre-RFC]: Inline assembly - language design - Rust Internals” https://t.co/GXv8c1KgHx"
Hideyuki Tanakaさんのツイート: "rustのインラインアセンブリのstable化にあたって、gcc互換の実装じゃなくて、もうちょっとわかりやすくするような文法定義する動きがあるのか。現状の案では、文字列ベースで似たような感じではあるみたいだけど、どうせやるならVCとかのようなEDSLタイプがいいんすけどね~"
Hideyuki Tanakaさんのツイート: "ただアレでやるには、ただバックエンドに文字列送るだけじゃなくて、引数とかのどれが書き換えられるとかそういうのの知識が必要になるから、コンパイラレベルでISAの知識が必要になるよな~まあそのほうが使い勝手はいいし、今時それぐらいはやってもいい気はするが。"
Hideyuki Tanakaさんのツイート: "D言語もVCみたいなEDSL形式のインラインアセンブリ持ってるんすねえ。あれ新しいプロセッサに対応するときD言語のバックエンドにそれ用のコードを追加しなきゃいけないんすかね~(´・_・`)"
Hideyuki Tanakaさんのツイート: "@ishitatsuyuki ふむふむやっぱあれはとりあえず必要だから入れてたけど理想の形ではなかったでしたか"
品川 高廣さんのツイート: "インラインアセンブラも -masm=intel を指定すれば Intel記法に出来ますよね。あまり見たことないですが。… "
技術書典4 け-51 x86-64-128さんのツイート: "Clangだと、インラインアセンブラの先頭行に.intel_syntax noprefixと書けば良いらしい。-masm=intelは不要。 https://t.co/8wRykdWsk3… "
品川 高廣さんのツイート: "gcc で Intel 記法を使うときはコマンドラインオプションで -masm=intel を付ける。clang で Intel 記法を使うときはインラインアセンブラの先頭で ".intel_syntax noprefix\n" と書く。両方やっておけば、gcc でも clang でもコンパイルできる。"

mov 命令

解答略さんのツイート: "昨晩からx86-80386のCPUをFPGAで自作してるんだけど、ようやくMOV命令が動いた。あと半日あればかなりの量の命令が実装できる気がする。FPGA慣れてきた。#低レイヤ https://t.co/L7oZSvx4aF"
Fadisさんのツイート: "x86のmov命令は1命令だけでチューリング完全の要件を満たせる事が知られている( https://t.co/01OSrCDOTX )し、mov命令が動くCPUは完全なCPUと言って良いのでは"
Fadisさんのツイート: "そして驚くべき事に、実際にmovしか吐かないC言語コンパイラ(フロントエンドはLCC)を作ってしまった猛者がいるらしい / M/o/Vfuscator https://t.co/DyXoBYQ4T7"
Mov is turing-complete
xoreaxeaxeax/movfuscator: The single instruction C compiler

即値埋め込み

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「OpeLaをx86-64からAArch64に移植していて分かったのは、即値を使う命令でAArch64だと余分にレジスタが必要になり、余分なpush/popが必要になって困ることがしばしばあること。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@uchan_nos 複数回演算とかコード上のをPC相対とか色々方法はあるけど。よく使う数値は命令に埋め込めるはず。」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@shinji_kono 「コード上のをPC相対」っていうのは、コードの他の部分に埋め込まれた即値をldrで取ってくるってことですか?なるほど……」 / Twitter

@7shi

七誌さんのツイート: "VAXのアセンブラを作り始めた。まずはオペランドのパーサから。ランダムなバイト配列を逆アセンブルして、それをアセンブルして元に戻るかで確認。乱数ではなく定理証明するべきだと言われそうだけど…"
七誌さんのツイート: "機械語を調べるために1行アセンブルはよくやっていたのだけど、REPLがあれば効率化できるという発想はなかった。だからrappelを見て驚いた。完全にインスパイアされた… https://t.co/EbLbs6ap2d"
七誌さんのツイート: "総当たりで逆アセンブラを作ろうとしたとき、先に分析を済ませてからコードを書こうとしたのは、あまり良くなかったと気付いた。分析と並行してコードを書いて、うまくいった部分は分析対象から除外していかないと、複雑なものではなかなか収拾が付かない。"
七誌さんはTwitterを使っています: 「RETRO UNIX 8086(UNIX V1の8086移植)でもMulticsと同じようなlist形式を見付けました。私は知らなかったのですが、どうやらこういう形式があるようですね。 https://t.co/i2qycHaDts」 / Twitter
https://www.singlix.com/runix/runix8086/unix.lst
SODA NoriyukiさんはTwitterを使っています: 「@7shi https://t.co/rBSLFpGfPi の Example code とか https://t.co/75vJ7L8XQd みたいなアセンブリ言語と機械語を併置する奴ですか? アセンブリ言語でプログラミングし、機械語を見ながらデバッグする時代には一般的でした。」 / Twitter
Zilog Z80 - Wikipedia
Assembly language - Wikipedia
ぬん。さんはTwitterを使っています: 「@7shi @n_soda linuxでも、 objdump --disassemble &lt;binary&gt; するとでてくる形式ですかね。(コメントはないですが)」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@7shi @amasawa_seiji マニュアル見てみたら GNU as でも -al オプションで出すことができるみたいですね。」 / Twitter

@kazuho

Kazuho Okuさんのツイート: "@nalsh @shyouhei @n_soda オーバーフローは例外的なケースだから、cmovより分岐予測あてるほうが良いのでは?"
Kazuho Okuさんのツイート: "mov eax,eax はx86-64だとnopじゃなくてraxへのゼロ拡張なのか #spkai"
Kazuho Okuさんのツイート: "@kazuho で、ymmいじられたかどうか覚えてるのは、コンテクストスイッチの際に退避すべき量を最小限にするためじゃないのかな #spkai"
Kazuho Okuさんのツイート: "任意順序でのビット列並び替えが20命令前後で書けるのか / “Bit manipulations using BMI2 — bitbashing” https://t.co/aAQRwNaQS0"
Bit manipulations using BMI2 — bitbashing
Kazuho Okuさんのツイート: "direct-threaded codeの効果はNehalem世代で10.1%だったのがHaswellで2.8%に減少 / “Branch Prediction and the Performance of Interprete…” https://t.co/R9loLePdjF"

@kariya_mitsuru

ngtkさんのツイート: "@uchan_nos 64bitモードで32bit命令を実行すると64bitレジスタの上位32bitは0クリアされるとかそういう話ですか?"
OS作れないマン 技術書典3 あ11企さんのツイート: "REXプレフィックス付けなくても上位32ビットクリアされて嬉しいなーということだな。汚い。"
disassembly - xor eax, eax in x64 - Reverse Engineering Stack Exchange
置き引きにあったマヌケな鳥頭さんのツイート: "@uchan_nos s/push cs/push es/ で、push es の前にオペランドサイズプレフィックス(0x66)付けたら16ビットでプッシュ出来たりしません?"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos あ~、push es は 8086/88 の時からあります"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos pop cs はテロ行為っぽいですからね…"

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++例外処理の詳細 (2013年)。やや古い記事でgcc/x86のケースを対象にしているが、ABIからスタックフレームの復元までアセンブリレベルで説明している。 (新山は読む気なし) https://t.co/Rez7LkG2Kx」 / Twitter
Infinite monkey - Nico Brailovsky's blog: C++ exceptions under the hood
とみながたけひろさんはTwitterを使っています 「CPUのエミュレータ書くときはキャリーとかオーバーフローとかいったフラグ処理が辛いのだが(PS1のアレとかとてもめんどくさい)、8bitマシンだと楽をする方法があり、それは「計算結果は普通に計算して求めるが、フラグは全演算パターンの変化の仕方をテーブルにしてそれを読むだけにする」である」 / Twitter
とみながたけひろさんはTwitterを使っています 「x68kで作ったファミコンとかz80エミュはこれをやった。ハーフキャリーとか絶望的に計算大変やからな… D$サイズの関係で一時期真面目にif文書いたほうが有利になったけど、最近はまたテーブルの方が楽になりつつあるみたい」 / Twitter
とみながたけひろさんはTwitterを使っています 「遅延評価で必要なときだけあとから再計算とかそういうのもありだがコードがむずくなる割に成果が小さくてつらく、実用に持っていけたことがない JITコンパイルする場合はフロー解析でフラグ不要部は計算しないコードを生成とかできるけど、こっちはいい感じに実装できたことが多い」 / Twitter
とみながたけひろさんはTwitterを使っています 「あれファミコンはPentium100MHzぐらいのlinuxでの話やな。まちがい」 / Twitter
Miura HidekiさんはTwitterを使っています 「ハーフキャリーは確かにクソめんどくさいからハーフキャリーだけをテーブル参照すればいいじゃんって思ったけど、他のフラグもなんだかんだめんどくさそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「ゼロフラグとオーバフローフラグで条件ブランチが発生してパイプラインが乱れそうだな。キャリーは9bitで計算すればいいだろうけど」 / Twitter

Introduce assembler macros by DQNEO · Pull Request #22 · DQNEO/minigo
A bug story: data alignment on x86
NOP命令と都市伝説
タネ明かし: Whitespaceコンパイラを作った話の裏側 | κeenのHappy Hacκing Blog
なぜCPUメーカはレジスタの数を増やさず、最先端の64ビットCPUでも16個しかないのですか? - Quora
富岳のディープラーニング処理を支えるJITコンパイラ「Xbyak_aarch64」誕生秘話:インタビュー|gihyo.jp … 技術評論社
実行した命令数をカウントする - Fixstars Tech Blog /proc/cpuinfo
2の補数表現をちょっと違った見方をしてみる - Fixstars Tech Blog /proc/cpuinfo
takenobu-hs/cpu-assembly-examples: CPU assembly examples
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「8bit整数の -128は、符号反転しても -128である (16bitの-32768とかでも同様)。なぜなら2の補数表現では、符号反転は「ビット反転して+1」だから、-128 (10000000) を反転してそこに+1すると、元に戻ってしまうのだ! このバグはGCCやClangでは検出できないが、Adaでは可能。 https://t.co/Nkq80xpffT」 / Twitter
Signed Integers are Asymmetrical
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、32bitモードだけBCD(10進)内部80bit演算が使えたのだけど、つい最近、この命令は廃止されたらしい。 https://t.co/Qiudaxiu6q」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「x86 BCDの場合、80bit FPUに載せて、80bitBCDで取り出したり、加算したりという感じで、そもそも精度は64bitが限界。」 / Twitter
簡易アセンブリの相対ラベル - Tociyuki::Diary
アセンブリのコメントファイル。命令の位置を記録 - Google 検索

Linker & Loader

その他

ABI Navigator
ソフトウェアの互換性と僕らの"User-Agent"文字列問題|Rui Ueyama|note
「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
LLVMの新しいリンカLLDがLLVM 4で導入へ
LLD - The LLVM Linker — lld 6 documentation
The ELF and COFF Linkers — lld 6 documentation
LLVM Link Time Optimization: Design and Implementation — LLVM 6 documentation
Winux Project 7
KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法
2011年11月2日 脱GPLとBSDライセンスツールチェーン - 最後の砦「リンカー」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
Linkers and Loaders
カジュアルに実行時リンク&ロードする - 事例2 - 関数を呼んでる関数を呼びたい
リンカ
Terse Executable Format - PhoenixWiki
CRubyとLink Time Optimizationについて - なるせにっき
melancholic afternoon
リンカの役割 自分メモメモ - Qiita
⚙ D69607 Add a feature to explain why some file gets included to the linker's output
カジュアルに実行時リンク&ロードする - カジュアルに実行時リンク&ロードする
SwiftコンパイラのAuto-linkingとそれを直した話 - kateinoigakukunのブログ

PE

その他

Hexacorn | Blog
PEファイル (PortableExecutableFile)(2) – ヘッダについて « 来栖川電算
PE(Portable Executable)ファイルフォーマットの概要
Exeファイルを解読してみよう(後編)
日記移転先(゜▽゜)::EXEヘッダ/PEヘッダ/NEヘッダ
リンカ作ろうJP$1 - yutopp's blog
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
Windowsプログラミング その1
d4.princess.ne.jp/diary/201411.html
PEファイルの謎
linker_kernelvm5.pdf
C言語/システム/実行ファイル/COFF | LaboICT.
Tiny PE
最小のEXEファイル? - 借り初めのひみつきち
/DYNAMICBASE一問一答 « 他人の空似
Windows support — lld 10 documentation
windres - Google 検索
i-saintさんはTwitterを使っています: 「VicualC++ は string literal は 16384 byte までという上限があるらしい。でかいデータを埋め込みたい場合 http://t.co/MJLnzo4E ここの Binary to MS COFF で .obj ファイルにしてリンクするといいっぽい。」 / Twitter
Vortex's Utilities, Tools And Toys
Tiny PE
PEを理解したかったのでreadpeってものを作った - Qiita
Effectiveさお

MS

その他

DUMPBIN のオプション
ValveTimeさんのツイート: "Former Microsoft Architect and MS-DOS Pioneer Mark Zbikowski joins Valve as a Software Engineer. https://t.co/Le02aK5LLS #valve https://t.co/9Us2aIWZjF"
savaさんのツイート: "https://t.co/xtJD4LzUGi おいマジかよ… (MS-DOSのメモリ周りを見る(弄る)プログラムを作った人なら誰でもメモリブロック先頭にあるMやZの文字のことをご存知のはずですが、これってこの人のイニシャルなんですよ…)"
Mark Zbikowski - アメリカ合衆国 グレーター・シアトル エリア | プロフィール | LinkedIn
任意の64ビットバイナリにHigh Entropy ASLRを適用する設定を見つけるまでの備忘録 - Togetter
Address Space Load Randomization

PE Format - Windows applications | Microsoft Docs
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format | Microsoft Docs
Windows ISV Software Security Defenses | Microsoft Docs
/BASE (Base Address) | Microsoft Docs
/HIGHENTROPYVA (Support 64-Bit ASLR) | Microsoft Docs
/DYNAMICBASE (Use address space layout randomization) | Microsoft Docs
Migrating 32-bit Managed Code to 64-bit | Microsoft Docs
C の装飾名の形式 | Microsoft Docs
重箱の隅のデバッグ(1) – インポートセクションで設定するブレークポイント – JAPAN Platform SDK(Windows SDK) Support Team Blog
ImageHlp Structures - Windows applications | Microsoft Docs
-SECTION (Specify Section Attributes) | Microsoft Docs
LIB リファレンス | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
DUMPBIN リファレンス | Microsoft Docs
/BASE (ベース アドレス) | Microsoft Docs
/FIXED (固定ベース アドレス) | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
/LARGEADDRESSAWARE (大きいアドレスの処理) | Microsoft Docs
/OPT (最適化) | Microsoft Docs
/PROFILE (パフォーマンス ツール プロファイラー) | Microsoft Docs
/ORDER (関数の順序) | Microsoft Docs
Rui UeyamaさんはTwitterを使っています: 「VS2019でリンカが速くなったのは、間違いなくlldがMSリンカより何倍も速いのを見てMicrosoftが真剣になったからなので、間接的にもいろんな人の役に立ってると言えるかもなぁ。あと競争は重要だね。競争がないと重要なコンポーネントでも放置されがち。 https://t.co/3tHRSefWMB」 / Twitter
Improved Linker Fundamentals in Visual Studio 2019 | C++ Team Blog
Rui UeyamaさんはTwitterを使っています: 「まあ大幅な高速化が可能であるということが実証された後で、しかもそのソースコードを読んだりもできるという状況で、うちもエンジニアリングリソースを割いてキャッチアップしよう!とならないのは逆にありえないんだけど。」 / Twitter
New Compiler Warnings for Dynamic Initialization and User Defined Sections | C++ Team Blog
/bigobj (.obj ファイル内のセクションの数を増やす) | Microsoft Docs

CheckSum

PE Checksum Algorithm的较简实现 - 011 - 博客园
An Analysis of the Windows PE Checksum Algorithm - CodeProject
RFC 1071 - Computing the Internet checksum
RFC 1141 - Incremental updating of the Internet checksum
RFC 1624 - Computation of the Internet Checksum via Incremental Update
Standard PE checksum - Source Codes - rohitab.com - Forums
windows research kernel(work) - Google 検索

鷲ノ巣

PE ファイルについて (1) - IMAGE_DOS_HEADER - 鷲ノ巣
PE ファイルについて (2) - IMAGE_FILE_HEADER - 鷲ノ巣
PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER - 鷲ノ巣
PE ファイルについて (4) - IMAGE_SECTION_HEADER - 鷲ノ巣
PE ファイルについて (5) - IMAGE_DATA_DIRECTORY - 鷲ノ巣
PE ファイルについて (6) - 補足 - 鷲ノ巣
PE ファイルについて (6.5) - 相対仮想アドレス - 鷲ノ巣
PE ファイルについて (7) - エクスポート編 - 鷲ノ巣
PE ファイルについて (8) - インポート 基本編 - 鷲ノ巣

Glamenv-Septzen.net

技術/Windows/PE(Portable Executable)フォーマットの実験 - Glamenv-Septzen.net
技術/Windows/PE(Portable Executable)フォーマットの実験/02, 再配置情報で遊ぼう! - Glamenv-Septzen.net

PE_FORMAT

目次
目次
1.基本概念
2. 概要

ファイルヘッダ

3. ファイル ヘッダ
3.1 MS-DOSのスタブ(イメージのみ)
3.2 シグネチャ(イメージのみ)
3.3 COFFファイル ヘッダ(オブジェクトとイメージ)
3.3.1 マシン タイプ
3.3.2 特性
3.4 オプション ヘッダ(通常はイメージのみ)
3.4.1 オプション ヘッダの標準フィールド(イメージのみ)
3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ)
3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)

4. セクション テーブル(セクション ヘッダ)
4.1 セクション フラグ
4.2 Grouped Sections(オブジェクトのみ)
5.2 COFFの再配置(オブジェクトのみ)
5. 他のファイル内容
5.1 セクション データ
5.2.1 タイプ インジケータ

シンボル情報

5.3 COFF行番号
5.4 COFFシンボル テーブル
5.4.1 シンボル名の表現
5.4.2 セクション番号の値
5.4.3 型の表現
5.4.4 ストレージ クラス
5.6. COFF文字列テーブル
5.5 補助シンボル レコード
5.5.1 補助形式1:関数定義
5.5.2 補助形式2:.bf および .ef シンボル
5.5.3 補助形式3:弱い外部参照
5.5.4 補助形式4:ファイル
5.5.5 補助形式5:セクション定義
5.5.6 COMDATセクション(オブジェクトのみ)

6. 特殊セクション

デバッグ情報

6.1 .debugセクション
6.1.1 デバッグ ディレクトリ(イメージのみ)
6.1.2 デバッグ タイプ
6.1.3 .debug$F(オブジェクトのみ)
6.1.4 .debug$S(オブジェクトのみ)
6.1.5 .debug$T(オブジェクトのみ)
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート

6.2 .drectveセクション(オブジェクトのみ)

.idataセクション

6.4 .idataセクション
6.4.1 インポート ディレクトリ テーブル
6.4.2 インポート ルックアップ テーブル
6.4.3 ヒント/名前テーブル
6.4.4 インポート アドレス テーブル

再配置情報

6.5 .relocセクション(イメージのみ)
6.5.1 fixupブロック
6.5.2 fixupタイプ

6.8 .textbssセクション(イメージのみ)

アーカイブファイル形式

7. アーカイブ(ライブラリ)ファイル形式
7.1 アーカイブ ファイル シグネチャ
7.2 アーカイブ メンバ ヘッダ
7.3 第1リンカ メンバ
7.4 第2リンカ メンバ
7.5 長い名前メンバ

インポートライブラリの形式

8. インポート ライブラリの形式
8.1 インポート ヘッダ
8.2 インポート タイプ
8.3 インポート名の種類

ダイジェストに含めないフィールド
付録:イメージ メッセージ ダイジェストの計算

アレ用の何か

アレ用の何か
アレ用の何か
アレ用の何か
アレ用の何か

CodeZine

x86系CPUのネイティブコードを解析する (1/3):CodeZine
プログラムからEXEファイルを生成してみよう (1/3):CodeZine
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine(コードジン)
Windows実行ファイルのバイナリ概要 (1/2):CodeZine(コードジン)

リソース

実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう

DLL

MS

LoadLibraryEx 関数
GetProcAddress 関数
FreeLibrary 関数
FreeLibraryAndExitThread 関数
DllMain 関数
SODA Noriyukiさんのツイート: "thread local storage を持つ shared object を dlopen() したら、その TLS をスレッドライブラリに通知して各スレッドの TLS を拡張するみたいな処理がたぶん必要だよね? このあたりは完全にOSおよびそのバージョン依存になるから、OS付属のrtldを拡張する方針にしないと死ぬばっかじゃないかなあ。"
NaOHaq(仮性ソーダ)さんのツイート: "Windows だと、thread が作られたときにDllMain関数 https://t.co/hM1IbMgqiW が呼ばれてそこで処理しろってなってるっぽいですね… "
DLL の植え付けの脆弱性のトリアージ – 日本のセキュリティチーム
Dynamic-Link Library Search Order (Windows)
Load Library Safely – Security Research & Defense
PROCESS_MITIGATION_IMAGE_LOAD_POLICY structure (Preliminary)
Masaru IritaniさんはTwitterを使っています: 「今日のチーム内勉強会では、DllMain でお行儀の悪いことをするとシステムのハングを引き起こせることを学びました。時間ができたら試してみましょうか。 https://t.co/OaYB0NuVXu」 / Twitter
Another reason not to do anything scary in your DllMain: Inadvertent deadlock | The Old New Thing
yohさんはTwitterを使っています 「DLL の植え付けの脆弱性のトリアージ https://t.co/1yfe3WYY23 "DLL planting" とも言うのか... hijackingやpreloadingしか聞いたことなかった」 / Twitter
DLL の植え付けの脆弱性のトリアージ - Microsoft Security Response Center
Dynamic-Link Library Best Practices - Win32 apps | Microsoft Docs
Dynamic-Link Library Redirection - Win32 apps | Microsoft Docs
GetFullPathNameA function (fileapi.h) - Win32 apps | Microsoft Docs
SetSearchPathMode function (winbase.h) - Win32 apps | Microsoft Docs
SetErrorMode function (errhandlingapi.h) - Win32 apps | Microsoft Docs
Dynamic-Link Library Search Order - Win32 apps | Microsoft Docs
ダイナミックリンクライブラリのセキュリティ-Win32アプリ| Microsoft Docs

Export Address Table

ITセキュリティのアライ出し (46) EAF出撃す | マイナビニュース
6.3.2 エクスポート アドレス テーブル

Import Address Table

IAT:インポートアドレステーブルについて - Log.i53
騙せるPE解析ツールのImport API表示機能(2016-11-28)
マニュアルアンパックのIAT再構築を手動でやった話 - Qiita
wivern.com | 「リバースエンジニアリングバイブル」勉強メモ#5
PEの.idataをアセンブラで考える - 七誌の開発日記
GOT、PLTとIAT - 脱力系日記
騙せるPE解析ツールのImport API表示機能(2016-11-28)
IAT | すなのかたまり
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識(続き)
コグノスケ
インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説

ASLR

第三話:ASLRの意味をデバッガで見てみる|トリコロールな猫|note
WindowsでASLR(Address Space Layout Randomization)を確認してみる。 - バイナリの歩き方
本の虫: Windows 7におけるプリコンパイルドヘッダーのエラーについて
WindowsのASLRに脆弱性、米セキュリティ機関が対策呼び掛け - ITmedia エンタープライズ
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
Positive Technologies - learn and secure : Windows 8 ASLR Internals
Proj 9x: Understanding PE Files and ASLR on Windows (15 pts.)
設定によりWindows8以降のASLRが不適切に行われる可能性 | SCTブログ | 三和コムテック
-DYNAMICBASE (使用してアドレス空間レイアウトのランダム化) | Microsoft Docs

遅延ロード

/DELAYLOAD (遅延読み込みのインポート)
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
DLLの遅延読み込みをフックする | ::Hikaru's blog
VS2008/VS2010 memo
リンカーによる DLL の遅延読み込み
遅延読み込みする DLL の指定
DLL の遅延読み込みの制約

プリロード

golang の DLL プリロード対策

Vim界の声の大きい人さんのツイート: "ちなみに golang は既に DLL プリロード対策がされていて、起動時に LoadLibraryEx と AddDllDirectory が使える環境はそれが設定され、使えない環境はシステム DLL は直パスでロードされてます。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "?? System32配下のDLLは沢山あると思いますが、全てロード or それとも限定する選択基準があるのでしょうか? >システム DLL は直パスでロード… "
mattnさんのツイート: "限定的です。ここに列挙されてる DLL のみ、フォールバック時に直パスで読まれます。 https://t.co/t2YOTqsoyN… "
go/zsyscall_windows.go at master · golang/go
Shirouzu Hiroaki(白水啓章)さんのツイート: "参考になります。 この選択の基準があれば知りたいですね。… "
mattnさんのツイート: "僕はその際の改善には関わらなかったですが、眺めてた所だと、golang の標準パッケージが使っている DLL を列挙した様でした。なのでユーザが追加でロードする物に関しては(AddDllDirectoryが使えない環境は)問題が起きうると思います。これは仕方ないかなと思ってます。… https://t.co/GEWqnZHWHz"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、了解です。exeの横に危険なdllが置かれるのは、主にインストーラなので、そうでなければ、そこまで神経質になる必要はないですね。… "
mattnさんのツイート: "ちなみにその際の issue がこちらです。 https://t.co/7oGxhnRDhy… "
syscall: guard against Windows DLL preloading attacks · Issue #14959 · golang/go

JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実行に関する問題
第35回 2017年6月~EOLなWindowsへの修正ファイル提供と,DLLプリロードの問題:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
UNLHA32.DLLにおける任意のDLL読み込みに関する脆弱性
Windows DLLプリロード攻撃の新しいパターンと防御法
Windows Defender Advanced Threat Protection で反射型の DLL 読み込みを検出 – 日本のセキュリティチーム
第43回 2018年2月~いまも発見される,DLL読み込みに関する脆弱性~どう悪用されるのか?&対処は?:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
Windows DLLプリロード攻撃の新しいパターンと防御法
脆弱性ポータルサイトJVN、Windows 7に存在する“DLLの植え付け”脆弱性を注意喚起 - 窓の杜
LoadLibraryAによるDLL読み込み順序とDLLプリロード攻撃 - Qiita
DLLプリロード攻撃のチェッカーをリリース « 他人の空似
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ダウト。2010年頃のDLLハイジャックと2016年以降のそれは別物。「3-4年も経つのに…」が正解。(トレンドマイクロがダメダメな点は賛成) JPCERT戸田さん「DLL読み込みの問題を読み解く」 https://t.co/w47xvkATgf 私「Windows DLLプリロード攻撃の新しいパターンと防御法」 https://t.co/prt4LLm1oH https://t.co/UdQEW4GX8j」 / Twitter
DLL読み込みの問題を読み解く
Windows DLLプリロード攻撃の新しいパターンと防御法
DLL プリロード攻撃を防止するためのライブラリの安全な読み込み
Process Monitor | Microsoft Docs
DLLの検索

インジェクション

Rapport

なかのん&マジックさんのツイート: "なんか、Rapport入ってるとFirefoxクラッシュするとかいう話が昔あった気がする。"
Makoto Kato ︎︎さんのツイート: "Firefoxのバージョンが上がる度にクラッシュしてた。IBMに直してよって投げてたけど、最近はそんな聞かない… "
Makoto Kato ︎︎さんのツイート: "DLL blocklistを読み込む前にDLLが注入される作りで、ブロックできないんだよね"
Makoto Kato ︎︎さんのツイート: "ああいうセキュリティ対策系のソフトで一番素直なつくりはMSなんで、MSのが一番いいと思うよ"
Makoto Kato ︎︎さんのツイート: "何処かのベンダーのやつは、注入したDLL内でクラッシュするんでFirefoxが強制終了しまくる話があって、いろいろ問い合わせたら聞いたこないっていってたけど、体験版ですぐ再現する話だったのは、ホントイラついた"
Makoto Kato ︎︎さんのツイート: "アドオンごとブロックリスト行きにしたら、直してくれたけどさ"
なかのん&マジックさんのツイート: "あれって、XULアドオンだったわけじゃなくて、外部アプリなのにやらかしてくれてたんですか?… "
Makoto Kato ︎︎さんのツイート: "そうです。アドオンじゃなかったんですよ。プロセス起動時にDLLを注入しちゃうタイプで。。。… "
なかのん&マジックさんのツイート: "もはや、マルウェア……… "

Rockridgeさんのツイート: "Firefoxプロセスのアドレス空間にインジェクトされるDLLは、現在ブラックリスト方式で管理されているが、将来的にこれをホワイトリスト方式に改める。参照:https://t.co/mXNDx0IYAZ / “Platform/…” https://t.co/vDVhfKue2B"
CreateRemoteThread関数によるDLLインジェクションをやってみる - ももいろテクノロジー
DLL injectionでWindows APIによる暗号化処理を覗いてみる - ももいろテクノロジー
DLLインジェクション - Wikipedia
DLL injection - Wikipedia
DLLインジェクションを学ぶためのオンラインパッチの実験 - Qiita
早川顕太:Windows 上における危険な処理の... - Google Scholar
Rockridgeさんのツイート: "Fx53:アドオンやサードパーティー製ソフトウェアがFirefoxのプロセス内にDLLを読み込むことは、原則としてできなくなるようだ。WebExtensionsのNative Messaging API(Fx50でサポート)を使う… https://t.co/PgVacMWk7Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsの場合、サードパーティDLLが勝手にプロセスに dll injectionして例外を起こすことがある。 (先ほど、香港ユーザから届いた例外ダンプを解析したら、google検索に1件も引っ掛からない、謎DLLで例外が発生していたというオチ) https://t.co/hBqrjpv8iR"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション問題(EXEフォルダ用)でのMSさんの解決策は、PreferSystem32というSYSTEM32を優先するオプション増設っぽい。 https://t.co/I3NvwwBAWa だがデフォルトだと、WinAPIやCOM I/F経由での、パスなし標準DLL読み込み問題は残ったままの様子。(手元で再確認) https://t.co/YZs6GBMXyc"
【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】 - Windows 2000 Blog

NyaRuRuが地球にいたころ

DLLの闇 (0) - NyaRuRuが地球にいたころ
DLLの闇 (1) - NyaRuRuが地球にいたころ
DLLの闇 (2) - NyaRuRuが地球にいたころ
DLLの闇 (3) - NyaRuRuが地球にいたころ
DLL の闇 (4) - NyaRuRuが地球にいたころ
DLL の闇 (5) - NyaRuRuが地球にいたころ
TLS Callbacks - NyaRuRuが地球にいたころ

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLが自分自身でアンロードするための、FreeLibraryAndExitThread というAPIがある。 FreeLibrary と ExitThread を発行するだけのコードだが、それが標準DLL側コードに存在するため、FreeLibrary後もExitThreadが実行できる。 https://t.co/tqpkwFae6r"
What is the point of FreeLibraryAndExitThread? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション後のクリーンナップのために設計された感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は pragma でリンクするDLLを指定するのは邪道だと思っていたが、(Win32以外に移植予定が無いなら)こちらの方がメリットが多いな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "kernel32.dllは遅延ロードできない。 (GetProcAddressといった遅延ロードに必要なAPI自体が存在するため) https://t.co/j4HLtmgrvt kernel32関数の場合、昔ながらの GetProcAddress で解決するしかなさそう。"
Why can't I use the linker to delay-load a function from kernel32? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "現状では Vista 以降をサポート。(非公式にはXPでも動作) 新しいOSでは、主に遅延リンクで追加APIを使う形。 (ただしkernel32内APIだけは、それが出来ないのでGetProcAddress利用)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のマルウェアは、rundll32経由dllロード→svchostを起動してdllインジェクションして、そのsvchostが永続動作、みたいな形が増えてる? (確かにsvchost多すぎて気づき辛い) https://t.co/TjFBzlXHJz」 / Twitter
日本国内の組織を狙ったマルウエアLODEINFO - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
rundll32.exeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ダイナミック リンク ライブラリ(DLL)の基礎知識
DLL から「正しい」LIB ファイルを作るには
DLLファイルからLIBファイルを作成する(_stdcall宣言)
Microsoft Windows library files - Wikipedia
新しい低レベル バイナリ
ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
アレ用の何か
C言語系/memos/VC++/06, DLLの事前バインド(BindImageEx()) (v1) - Glamenv-Septzen.net
How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses? – The Old New Thing
ReadApiSetSchema更新 « 他人の空似
VirtualDLLの仕組み « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~DLLプリロード攻撃~ « 他人の空似
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
碧落 - Win64 開発
4億円超の広告枠を中国のハッカーが購入して詐欺広告を表示しまくった手口とは? - GIGAZINE
Adaptive DLL Hijacking – Silent Break Security
Why am I getting a crash at shutdown inside the thread pool? | The Old New Thing

COFF

COFF - Wikipedia
COFF - Wikipedia
coff.h Source File
COFF - OSDev Wiki
DJGPP COFF Spec
Common Object File Format (COFF
avrcoff.pdf

GitHub

erocarrera/pefile: pefile is a Python module to read and work with PE (Portable Executable) files
notes/index.md at master · yukitos/notes
COFF形式ファイルのいろいろ · HobbyOSs/opennask Wiki
study-re-201805/study-memo-dynamicbase at master · SecureSkyTechnology/study-re-201805

Wikipedia

Portable Executable - Wikipedia
Portable Executable - Wikipedia

PE - OSDev Wiki
x86 Disassembly/Windows Executable Files - Wikibooks, open books for an open world
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
wivern.com | 見る価値のある5つの PE 解析ツール
PE Explorer: EXE File Editor, Resource Editor, DLL View Scan Tool, Disassembler.
WJR Software - PEview (PE/COFF file viewer),...
PE形式バイナリ変換ツール
PEダンパー兼PEエディタ「UMPE」
C11/C++11 TLS変数への間接アクセス - yohhoyの日記
Auto-linkingまとめ - kateinoigakukunのブログ
daem0nc0reさんはTwitterを使っています 「PEファイルに悪意のあるコードを埋め込むための、アンチウイルス検知回避の手法 https://t.co/vFtpH0cOkc」 / Twitter
undetectable backdooring PE file

ELF

Explore cs in depth!

実行プログラム作成基盤をフルスクラッチで書いた - Explore "Full-Stack" in depth!
TUIベースのELF解析ツールを作りました - Explore cs in depth!
ELFバイナリに含まれるnullセクション/ヘッダの真実…? - Explore cs in depth!
オブジェクトファイルのシンボルテーブルを最低限理解する。 - Explore cs in depth!
readelf -S を簡易実装してセクションヘッダを理解する - Explore cs in depth!
readelf -lを簡易実装してELFフォーマットの理解を深める。 - Explore cs in depth!
バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説 - Explore cs in depth!

@IT

Linuxカーネルに見る、システムコール番号と引数、システムコール・ラッパーとは:main()関数の前には何があるのか(7)(1/2 ページ) - @IT
あなたが知らないプログラムの真の始まり――main()関数の前にあるスタートアップとは:main()関数の前には何があるのか(8)(2/3 ページ) - @IT

ABI

Linux Foundation Referenced Specifications
gabi41.pdf
System V Application Binary Interface - DRAFT
x86_64-abi-0.99.pdf

GOT, PLT, PIC, PIE, ASLR

C - C言語の位置独立コード、GOT(53994)|teratail
アーキテクチャ - GOTとPLTについて確認です。(48163)|teratail
PIC,PIE,shellcode,ASLR
Akira Kawata (a_kawashiro)さんはTwitterを使っています 「Architectural Support for Dynamic Linking https://t.co/PpqTEZHDjr Dynamic Linkしたライブラリ中の関数を呼び出すときは、PLTからGOTのアドレスを読んで間接ジャンプすることになるが、GOTは一度書き込まれると基本変わらないので、分岐予測を改良すれば、このオーバーヘッドを削れる。」 / Twitter
Architectural Support for Dynamic Linking | Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems

readelf

readelf (GNU Binary Utilities)
readelf コマンド – ELFファイルについての情報を表示する | Linuxコマンド.NET

blog

ELFから公開されている関数名を抜き出す - ククログ(2009-05-22)
DSAS開発者の部屋:Android で今後ネイティブ実行形式を扱う際に注意すべきこと
eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - Tier IV Tech Blog
.note.ABI-tagとはなにか - VA Linux エンジニアブログ
最小限のELF | κeenのHappy Hacκing Blog
Some Assembly Required*: Relocations, Relocations
Reversingとかpwnとかを解くときのメモ(かきかけ) - 忖度
PIE(position-independent executable)なオブジェクトの中身を見てみる - 情弱ログ
Brainf*ckトランスレータ (5) 位置独立コード - 七誌の開発日記
バイナリ解析についてのメモ
GOT、PLTとIAT - 脱力系日記
共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証 - 誰にも見えないブログ
静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - (iwi) 備忘録
Goのバイナリから依存するmodule情報を取り出す方法 - knqyf263's blog
ELFファイルを取り扱うためのlibelfライブラリ調査 - FPGA開発日記
BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
GNU_IFUNCとは何か - a_kawashiroのブログ
【CTF入門】ELFバイナリのリバースエンジニアリングに入門してみよう - かえるのほんだな
LD_AUDITとGlobal Offset Table - a_kawashiroのブログ

スライド

EuroLLVM 2016: New LLD linker for ELF - Google スライド
ELFの動的リンク
セキュリティ・キャンプ2019 Z2. ELFマルウェア検知エンジンの試作 成果報告 - Speaker Deck
cybozu-labs-youth-10th - Speaker Deck
soldスライド for kernelvm 2021/11/20 - sold_kernelvm_20211120.pdf

Qiita

C++ユーザーの為のリンクの話1 - Qiita
assemblyからhello world programを追いかける - Qiita

Twitter

C

Rui Ueyamaさんのツイート: "Cコンパイラ本に初期化式についての説明を足してみた。プログラムはなぜ動くのか、みたいな本になりつつあるけど、その説明なしに解説するのは逆に無理だ。 https://t.co/dGjZVzZJEe"
低レイヤを知りたい人のためのCコンパイラ作成入門
Rui Ueyamaさんのツイート: "Cの仕様書だとこのあたりの動作はすごく抽象的に書いてあって、意味も必然性もわからない。僕が説明してるような特定のモデルを念頭に置いて読むといろいろ腑に落ちるんだけど、それをできるだけ一般的に説明しようとするとああなってしまうんだと思う。いいんだか悪いんだか。"
_ko1さんのツイート: "init section とかは ELF (とかa.out?)だと思いますが、具体名かいちゃわないんでしょうか。Linuxの実行ファイルといえば一意に決まるから、要らんのかな(一意に決まるかどうか、知らないのだけど)… "
Rui Ueyamaさんのツイート: "ELFだと名前は重要ではないということになっているので、SHT_INIT_ARRAYタイプのセクションは一応全部initセクションということになるんですよね。とはいえ`.init_array`であるのを前提にしちゃってるプログラムが多いですけど。… "
_ko1さんのツイート: "おお、なるほど、私のうろ覚えの理解も間違ってました(詳細はさっぱり知らなかった)。「initと呼ばれる特別なセクションに出力する」とあったので、特定の環境を想定しているのかな、と思ったんですが、その特定の環境かいてないなあと思った次第でして。… "
Rui Ueyamaさんのツイート: "initというのは一般名称のつもりでした。確かにそれは伝わらないかも。… "
shinichiro hamajiさんのツイート: "「initセクション/セグメント」と言われると.initセクションとDT_INITのことかな、と思ってしまう(この方式の時は実際関数ポインタが入ってたセクションは.ctorsでした)ので、ちゃんとinit_arrayという名前を明示してほしい気持ちあるかもです… https://t.co/mTpGnUNT5G"
Rui Ueyamaさんのツイート: "まあ足しとくか・・… "

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「共有ライブラリ (.so) の依存関係を木構造で表示するツール。といか、なぜlddはデフォルトでこれをやってくれないんだ。 https://t.co/ZPaUI0wH0J」 / Twitter
haampie/libtree: ldd as a tree with an option to bundle dependencies into a single folder
るくすさんのツイート: "分かった... リンカが物理アドレス節約のために、セクションが小さい場合は全部まとめて先頭の空きスペースに持ってこようとするから、先頭からのオフセットが変わってるんだ... 気付くかよそんなの..."
るくすさんのツイート: "リンカスクリプトに陽に指定していないセクションは、なるべく空きスペースに置くようにしているのか いやまあそりゃそうだろって感じだが... まさか先頭に置いたつもりのセクションがこれの影響でずれるとは"
るくすさんのツイート: "あああ まさにこれだ。 linker scriptでセクションの順番を指定しても、物理アドレスは変わるけどELF内のオフセットが制御できなくてブートローダーから飛べない問題。 質問している人がいた https://t.co/LyFtwAU8uy"
るくすさんのツイート: "まあこの人は、ブートローダーとかじゃなく.textの前にシンボル置いたんだけど、実際のELF内オフセットは.textより後になっちゃう って言ってる"
るくすさんのツイート: "まあブートローダーでELFをちゃんとパースしろやwというのが正論だし、物理的な配置をELF側に求めるのは間違ってるんですが..."
るくすさんのツイート: "物理アドレスのオフセット値とelf内のオフセットが合わない仕様、やはり何とかするべきでは... 直感に反しすぎる..."
るくすさんのツイート: "何が起こるかというとELFを0x40100000に置いた後、0x40101000にアクセスすると先頭からオフセット0x1000のセクションにアクセスできそうなのに、実際は対応するセクションは0x2000にあるなどが起こる。"
るくすさんのツイート: "OFFSET 0x2000のセクションが0x40101000に配置されるの、マジで直感に反するからやめろ"
るくすさんのツイート: "いやまあbssセクションの後とかだったら、実際のELFオフセットと物理アドレスがずれるとかはあると思うんですけど、これ一番初めの(NULLの次)セクションで起こってるんだよな... 2,3,4番目のセクションが一番目のセクションより先に配置されるなどする"
Rui Ueyamaさんのツイート: "今調べている時間がないからここに書くけど、.gnu.hashをある方法で作るとUnixでのプロセスのスタートアップがかなり速くなるぽいんだけど、なぜそんなに違いが生じるのか誰もよくわかってません。数%は違いが出るので、わりと世の中的に役に立つはずなんだけど。誰か調べてほしい。"
ファッション自作OSマンさんのツイート: "ELFローダーを作る際のハマりどころ ・PT_LOADは複数になることがある ・PIEバイナリの場合、sh_addrやp_vaddrなどは0オリジンなので、実際のロードアドレスを加算する必要あり  ・もちろんリロケーション時にも。… "
ファッション自作OSマンさんのツイート: "ところで、PT_LOADが複数あるELFバイナリの場合、すべてのPT_LOADは基本的に連続(アライメントのために多少隙間はあるにせよ)と考えてOK?"
C++でOS自作 技術書典5 お05さんのツイート: "ELFのDYNAMICセグメントに基づきリロケートした結果、C++のvtableの内容が正しくアップデートされ、仮想関数が動くようになった。画面表示バグが直って正しく描画されると嬉しい。"
Rockridgeさんのツイート: "Fx64:Linux版の実行ファイルが位置独立実行形式(PIE)になった。参照:https://t.co/quDHNpLxZD / “1079662 - Enable PIE on Linux” https://t.co/BIF3z3Icrl"
品川 高廣さんのツイート: "ELF ファイルの PT_LOAD セグメントで対応するファイルサイズ(p_filesz)が 0 ということはあり得るんだな。"
Rui Ueyamaさんのツイート: "リンカは、ELFを読んだあとに同じ名前のセクションをそのまま連結して、.rela.*で指示されている箇所のアドレスをfix upすれば完成、という感じですよ。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「/proc/[pid]/maps に、同じ.soファイルが、異なるページ属性で別の位置にマップされている理由。 https://t.co/hVzNTKGEWV」 / Twitter
linux - Shared library mappings in /proc/pid/maps - Unix & Linux Stack Exchange
shinichiro hamajiさんはTwitterを使っています: 「最近、ことあるごとにglibcのローダはシンボルテーブルがフラットで、DT_NEEDEDをRTLD_GLOBALで解決するのがダメ、Bionicやdyldの方が良い、あとC++標準はDLL的なものに言及すべき(visibilityとかdllexport的なやつ)と主張してるのだけど、そう言う人を見ない気がする。みんな困っていないのかなあ」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「linuxのx86バイナリ、かなりcrazyなことになっていて、ビルドした後に独自のobjtoolでバイナリを解析してエラーチェックとかシンボル抜き出し、セクション追加などを行っている。non-blockingな自己書き換え手法が確立した後のはっちゃけ具合が凄い。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「両方の技術の元ネタ(kprobe jump optimization+x86 instruction decoder)を提供した身としてはwktkしてる。」 / Twitter
DrumatoさんはTwitterを使っています 「ELFをパースしたときにはbytes:Vec&lt;u8&gt;にしておいて,あとからシンボルテーブルを使う場合のみ構築する方法を取ったけど, ユーザ側が計算量のこと考えないと毎回テーブル作り直す重い処理になってしまう.」 / Twitter
DrumatoさんはTwitterを使っています 「というこでEnum実装に変更して, パース時のコストを許容し,その後スマートに使用できる仕組みを取ろうと思っている.」 / Twitter
DrumatoさんはTwitterを使っています 「抽象的で使いやすいELFライブラリを作るためには,ユーザが考慮すべきことを減らさなければ」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:単純な動的リロケーションの問題; ・ダイナミックリロケーションを行うべき場所は、普通はとても多い ・全部リロケーションするとロードが遅くなる ・物理メモリの共有もできなくなる #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:PLTとGOT: ・間接参照を導入 ・テーブルを作り、リロケーションする場所を集約 ・一個のモジュールについての相対的位置は変わらないので、まずはPLTに飛ぶようにしておけば良い ・PLTやGOTはリンカが作る #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「共有ライブラリ内のあらゆるアドレスをロード時に書き換えると書き換え箇所が多すぎる→PLTやGOTの値を見て共有ライブラリの中身のオフセットを知る→ライブラリの中身の並び順はどこにロードしても相対的には変わらないので、これらの値だけで全てのアドレスを書き換えるのを代替できる #kernelvm」 / Twitter
retrageさんはTwitterを使っています 「なんか最近見かけた問題に近かった気がする。ELFのローダを作っていたんだけど、最低限必要なものとしDT_RELAのPT_DYNAMICに対してR_X86_64_RELATIVEのときだけrelocationをするんだけど、実装によって元の値を足したり足してなかったりで異なっていた https://t.co/HDDox4Jgv3」 / Twitter
rust-hypervisor-firmware/elf.rs at 6c6fddf2eb290a1c2f10b54d5b659ac1b08edb2b · retrage/rust-hypervisor-firmware
retrageさんはTwitterを使っています 「で、rustcが吐くELFだと全部元の値が0で問題にならなかったので足さないようにした」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「.debへの言及だけじゃなくて .a への言及も欲しかったかなあ(Linux 使ってる人は「ar tv /usr/lib64/libc.a」とか試してみてね) 今のarはシンボルテーブル構築機能まで含んでるけど、昔はranlibコマンドがその担当で、アーカイブの中身の先頭の __.SYMDEF ファイルとしてシンボル情報を追加してたのね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「シンボルテーブル構築機能を ar コマンドへ統合したのは System-V 系だと思う。1990年代初頭の 4BSD系 UNIX だとまだ ranlib コマンドの実行が必要だったけど、その頃既に System-V 系 UNIX だと不要になってた記憶が… 統合は機能分割的には微妙な判断だと思ってたなあ…」 / Twitter
retrageさんはTwitterを使っています 「ld\.soのman pageにHardware Capabilitiesという項目があり、SSEとかのCPU拡張命令が使えればそれに対応したオブジェクトファイルにリンクする、っていう機能があるらしいんですが、最近の拡張命令がなくて誰も使ってなさそう https://t.co/YOw1zwU5jf」 / Twitter
ld.so(8) - Linux manual page
DQNEOさんはTwitterを使っています 「びっくりしたんだけど、ELFの仕様って1995年から変わってないのねw なんという息の長い技術や... https://t.co/29CdJt6aoJ」 / Twitter
sjiさんはTwitterを使っています 「@DQNEO 実際には仕様化されてない GNU 拡張がデファクト気味に広がったり、新しいプロセッサに対応する補遺が出たり、TLS 対応の拡張が入ったり、みたいな増築はあったりします」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「elfshaker - バイナリファイル用に最適化されたgitのようなもの。多数のバージョン違いのビルド (clangなど、数百MBあるもの) を高速で切り替えるのに使う。 https://t.co/Jry3xNQg42」 / Twitter
elfshaker/elfshaker: elfshaker stores binary objects efficiently

Kazuho OkuさんはTwitterを使っています 「linuxの場合、実行中のバイナリは書換え不可能(ETXTBSY)だが共有ライブラリは書換え自由。バイナリの書換え禁止機構も今後廃止される可能性が高い、と。 "current Linux systems will happily allow a suitably privileged user to overwrite in-use, shared libraries." https://t.co/MNP4fOoj25」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シェルスクリプトは実行途中に読み込まれるから実行中にファイルを書き換えてはいけない、って、ネイティブコードにコンパイルされたプログラムも同様じゃないの? 何か違う条件でもあるの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「MAP_SHAREDでマップしてることは覚えててもETXTBSYとか存在忘れてたわ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「"For extra fun, the changed code will only be read if it is faulted into RAM, meaning that said unhappy outcomes might not happen until hours (or days) after the file has been overwritten." えっ、いつの時代の話してるの(偉そう)??? と思ったら、コメントでツッコミ入ってた。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「答え: https://t.co/C9eKGT4Gxy」 / Twitter
ichimalさんはTwitterを使っています 「NFSクライアント側で実行中のバイナリをサーバ側で書き換えてSEGV発生余裕です なので、正直なところETXTBSYには存在意義を感じない」 / Twitter
ELF Golf
binstudy/ELF-section.txt at master · warabanshi/binstudy
GNU Hash ELF Sections | Oracle Ali Bahrami Blog
違法素数 - Wikipedia
最小限で理解しつつ作るELF parser入門 in Rust
共有ライブラリーを解剖する
Linux Insides : カーネル起動プロセス part5(終) | POSTD
技術レポート「Linuxのライブラリ開発」|ソフテックだより|株式会社ソフテック
Man page of ELF
ELFの動的リンク(1) - 七誌の開発日記
linker - What does R_X86_64_IRELATIV mean? - Stack Overflow
mods/android/bionic/linker/arch/nacl/begin.c - arc/arc - Git at Google
ELF - osdev-j
ELF/実行時の話 - osdev-j
ELF/実行時の話/プロセッサに依存する話/i386 - osdev-j

高速化

BOLT

Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
まさみさんは語りたいさんのツイート: "Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey https://t.co/BxqLSo1Bk4 おっ、これは。関数単位じゃなく分岐単位にするのかな?"
suzakiさんのツイート: "FaceBookのBOLT:Binary Optimization and Layout Toolは面白いが、やっていることはPGO: Profile Guided Optimizationではないのか? PGOはプロファイルを取り、そのプロファイルをコンパイラに与えて、最適化するもの。違いはソースコードを必要とするかしないか、が大きく違いますが。… https://t.co/qgIw73yWLb"
suzakiさんのツイート: "最近、この周りの調査をしているのですが、正しく『関数の実行時間』に苦労ししています。ThreadingやMulti Coreが当たり前となり、正確な時間が取れない。 使っているのはgporf, Google Perf, Oprofileですが、それぞれ一長一短あり。"
suzakiさんのツイート: "BOLTのHPによるとバイナリはnon-PIEのみとある。現在のディストロだときつそうに思えるが、実はPIEはあまり使われてないと言う調査をACSAC17ポスターで発表しました Analysis of Code Protection Technologies in ELF binaries in Major Linux Distributions and Generations https://t.co/6oUL31K4XL"
まさみさんは語りたいさんのツイート: "単に今実装していないだけの可能性がありますね。中を読むと機械語命令単位で解析と再構築をしてるようなので、そちらの実装を優先したのかも。… "
Miura Hidekiさんのツイート: "https://t.co/xGnFIJn4pU 手前みそだけど、こんな感じで出来るような気がする https://t.co/9e3Rs0McNB"
まさみさんは語りたいさんのツイート: "BOLTの場合、ホットスポットを纏めることでキャッシュヒット率の向上を狙ってるようなので、あまり個々の関数の実行時間は気にしてないのではないでしょうか。要するにバイナリ全体に対してunlikelyマクロを適用する感じでは。… "
suzakiさんのツイート: "perfで性能評価しているので関数単位ぐらいしか取れないと思ったら perf data with LBR (branch information) と記述がありました。 https://t.co/xzdaACuvm5 Branch単位でコードのレイアウトを変えることで、ヒートマップにあるように最適化できるのか?それにしてもヒートマップが効果が良すぎる。… https://t.co/jIfcMNx0Ba"
まさみさんは語りたいさんのツイート: "そもそもプログラムのコードの殆どはエラー処理なので、それを追い出せたら綺麗になるということなのでしょう。なのでunlikelyだなと。… "
LLVM Weeklyさんのツイート: "Applying the BOLT post-link optimiser to Clang for up to 15% performance improvement <https://t.co/KI7RQd0YYo>. A member of Google's compiler optimisation team shares some detailed thoughts on improving scalability with linker assistance https://t.co/a1xKohkyk2"
BOLT/OptimizingClang.md at master · facebookincubator/BOLT
[llvm-dev] Making Clang/LLVM faster using code layout optimizations
Fadisさんのツイート: "BOLT: 実行可能バイナリと、それを動かして得たプロファイルを入力として、分岐の確率に基づく最適化、キャッシュやTLBによりヒットしやすくする為のバイナリレイアウトの変更等を行った実行可能バイナリを生成するリンク「後」最適化コンパイラ https://t.co/jkGgM3eVvk"
facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
Google Propellerが大規模LLVMバイナリからさらなるパフォーマンスを引き出す
FadisさんはTwitterを使っています 「Facebookが同社のリンク「後」最適化BOLTをLLVM本家に入れたがっているらしい。BOLTはx86_64の実行可能バイナリを実行して得たプロファイルをもとに、実行可能バイナリに分岐のヒントを挟んだりキャッシュに当たりやすい配置に入れ替えたりといった最適化を行う https://t.co/5wODv8QlLd」 / Twitter
Facebook Is Looking To Upstream Their BOLT Binary Performance Optimizer Into LLVM - Phoronix
R. ShioyaさんはTwitterを使っています 「@shirouzu 一般的な最適化というよりは,確か命令列の配置方法により特化していたと思います.よく通る実行パスの命令を連続した領域上に再配置することで命令フェッチの効率を上げたり(分岐で飛ぶと読み出しが止まるので連続になっててほしい),キャッシュやTLBのヒット率を上げるのを狙っていたと思います.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、ありがとうございます。 逆に言うと、バイナリのみだと目立った改善点はそのあたりだけになるんでしょうねぇ。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu なにかあれが出てきた背景としては,バイナリ最適化で試行錯誤した延長というよりは,最近?コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていたので,それを何とかしたくて考えてああなったって感じじゃないかなと思っています.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そんな話があったのですね。勉強になります。 &gt; コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていた」 / Twitter
ドッグさんはTwitterを使っています 「Facebook の BOLT 最適化フレームワーク,LLVM に入れたいという話は前からあったけど,正式に RFC 出たのか | '[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization' https://t.co/jq5gWi76Hz」 / Twitter
[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization
FadisさんはTwitterを使っています 「FacebookがLinuxカーネルをBOLTで最適化できるようにした話。既にLinuxカーネルに用いられた事例があるプロファイルベースの最適化PGOと組み合わせてコンパイルベンチで最大で49%の性能向上が見られる、としている https://t.co/DOmIG8n9Xy」 / Twitter
Facebook Has Been Working On BOLT'ing The Linux Kernel For Greater Performance - Phoronix
FadisさんはTwitterを使っています 「BOLTはFacebookが開発したリンク後最適化フレームワークで、x86_64またはARMのバイナリを実行して得たプロファイルをもとに、頻繁に触られる実行可能バイナリがメモリ上にかたまって配置されるようにバイナリを編集する。キャッシュのヒット率が上がる為性能向上に繋がる https://t.co/jkGgM3eVvk」 / Twitter
facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
FadisさんはTwitterを使っています 「s/ARM/64bit ARM/」 / Twitter
R. ShioyaさんはTwitterを使っています 「これはキャッシュのヒット率が単純に上がると言うよりは(ヒット率が上がらないことは無いだろうけど),実行パスが連続アドレス上に乗るので一度にたくさんフェッチできる効果と,I-TLB ヒット率向上の効果が特に効いてたんじゃなかったかなと.」 / Twitter
R. ShioyaさんはTwitterを使っています 「条件分岐が成立して離れたアドレスに飛ぶとそこで命令キャッシュの読み出しが1回途切れるけど,不成立で次のアドレスにいくなら同じラインに乗ってる限りは一度にガバッと取れるので,if 文の条件を変換する感じでなるべく不成立が続くようにバイナリを編集するみたいなことしてたはず.」 / Twitter
R. ShioyaさんはTwitterを使っています 「リンク済みバイナリ内の配置を変えるのは結構しんどくて,BOLT の論文内でも何回か「これは簡単な仕事ではない」と強調されてたけど,特に関数ポインタとか仮想関数,C++例外とかがどこからどこに飛んでるのかをバイナリから把握して書き換えるのは一筋縄ではいかないのではなかったかなと」 / Twitter
hrk先生さんはTwitterを使っています 「@r_shioya 最後のものが大きいのじゃないかな?」 / Twitter
R. ShioyaさんはTwitterを使っています 「@Prof_hrk 図は clang バイナリを実行した際の,各手法を適用した場合のミス数の減少率ですが,やっぱり I-TLB が特に効いてそうです.D-Cache や D-TLB まで減ってるのは特に説明されていないのですが,ちょっと謎です・・・ https://t.co/7fgSo6bC6Q」 / Twitter
hrk先生さんはTwitterを使っています 「@r_shioya それは、実は謎シミュレーションだったりするかもしれません。」 / Twitter

FadisさんはTwitterを使っています 「雑なアムダールの法則: 処理の中にスケールしない部分があると、並列度が上がるほどその部分が深刻なボトルネックになるぞ! #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldはなぜ速いのか: ・中間表現を作らず、mmapした入力ファイルのデータを可能な限りそのまま使う ・可能な限りすべての内部パスを並列化 →並列化されていないとそこがボトルネックに #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「リンカが扱うデータ(シンボル名)は沢山あるから、手法を慎重に選ぶとデータ並列で性能を稼ぎやすいのか… #kernelvm」 / Twitter
𝚊𝚖𝚎𝚖𝚒𝚢𝚊.𝚍𝚎𝚟さんはTwitterを使っています 「rustでいうrayonみたいなアプローチか &gt; データ並列 #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:データ並列: ・同じタイプのでーたが大量にあって、1つ1つを個別に処理 ・スレッド間の依存性がないのでよくスケールする #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・単なる並列forループなので、複雑な同期メカニズムやメッセージングメカニズムを使った並列化と比べてい理解しやすい #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:並行コンテナ: ・Intel TBB のものを使っている #kernelvm #kernelvm_tw」 / Twitter
Hiroshi ShimamotoさんはTwitterを使っています 「Intel TBB使って、並列forループ #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldにおけるシンボル解決: ・シンボルを並行ハッシュマップに同時に追加する #kernelvm #kernelvm_tw」 / Twitter
KOBA789さんはTwitterを使っています 「ここでマークルツリーの名を聞くことになるとは #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:Map-reduceパターン: ・リンカに-build-idオプションを渡すと、出力ファイルを生成した後に、ファイルのハッシュ値を取ってそれをファイルに埋め込むことができる #kernelvm #kernelvm_tw」 / Twitter
データ検証などで利用するMerkle Treeのメモ – Siguniang's Blog
KOBA789さんはTwitterを使っています 「マージソートみたいな見た目だな #kernelvm」 / Twitter
kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「ほー。コンカレントハッシュマップ。通常、並行な処理は共有するデータに書き込む際にはそこをクリティカルクションに入れるため低速になってしまうが、コンカレントハッシュマップを利用するといい感じに並行な処理をしつつ且つ高速に動作すると。 #kernelvm」 / Twitter
Susumu MiwaさんはTwitterを使っています 「Parallel Scanパターン #kernelvm」 / Twitter
KOBA789さんはTwitterを使っています 「ファイルを上書きしたほうが速い、それなー #kernelvm」 / Twitter
百千万億 萬さんはTwitterを使っています 「Prefix Sum の並列化テクやん~ https://t.co/g9nNepI4Ai #kernelvm」 / Twitter
Prefix sum - Wikipedia
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:細かい高速化テクニック: ・glibcのデフォルトのmallocはあまりコア数に対してスケールしない →mimallocを使っている #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・新規ファイルを作ってそこにデータを書き込むより、すでにバッファーキャッシュ入っているファイルを上書きするほうが速い #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・大量のファイルをmmapしている場合、プロセス終了に数百ミリ秒かかる #kernelvm #kernelvm_tw」 / Twitter
基礎から学ぶ 組込みRust 4/20 発売予定さんはTwitterを使っています 「いっぱい mmap しているとプロセスの exit が遅いから、子プロセスを作って exit させることで、そっちは時間かかってもユーザーには見えないから良し! #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:速いプログラムを書くためのヒント: ・推測せず、計測する ・凝ったコードを書くのではなく、自然と速くなるようなデータ構造を考える ・複数実装してみて一番速いものを選ぶ ・何度か同じプログラムを書く #kernelvm #kernelvm_tw」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「差分リンクうまく実装しないと遅い。リンクしなおした方が今は早い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「差分リンクはアイデアとしては速そうだけど、1個のシンボルを足した時に影響がある範囲を調べるのはローカルな処理では済まず、そのチェックに時間がかかって差分リンクは思ったほど速くならない、と #kernelvm」 / Twitter
hotpepsiさんはTwitterを使っています 「link time optimization って中間コードをまとめるみたいな仕組みなのか、なるほど #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「LTOの挙動(llvm)中間言語として出力、リンク時にモジュールを超えた最適化を行う。処理としては重い。moldは今のところすぐに実装する予定はない #kernelvm」 / Twitter
mold: modern linker - Google スライド

Wikipedia

リンケージエディタ - Wikipedia
Linker (computing) - Wikipedia
名前修飾 - Wikipedia
位置独立コード - Wikipedia
EXEフォーマット - Wikipedia
New Executable - Wikipedia
COMファイル - Wikipedia
きしもとさんのツイート: "@knok 一応英語版のほうは、いくつかの例を挙げる形で、どれが決定版だとも言えないよ、ぐらいのスタンスに見えます https://t.co/0UIBmDCnjM"
.bss - Wikipedia
.bss - Wikipedia
システムイメージ - Wikipedia

Twitter

Plankalkuel

Shinya KatoさんはTwitterを使っています 「ENIAC の頃には既にリンカとローダーのような仕組みが存在していたらしいんだけど、アセンブリすら存在しない頃からリンカとローダーが存在したってのは本当におもしろいよなぁ」 / Twitter
Miura HidekiさんはTwitterを使っています 「リンカもローダーもアセンブラも無かった時に、いきなりプランカリキュールですからね。ほんとうにコンピュータの歴史は面白い」 / Twitter
Miura HidekiさんはTwitterを使っています 「プランカルキュールでした」 / Twitter
Hjul(ゆーる)さんはTwitterを使っています 「プランカルキュールのRubyラッパ、とりあえずこのPlankalkuelLoaderクラスの実装がすべてな気がする&gt;&gt;plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby · GitHub https://t.co/rzV3nq64sr」 / Twitter
plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby

@rui314

mold

グラフ同値性判定

Rui UeyamaさんはTwitterを使っています 「グラフの同値性判定の実用例(名前が違うだけで全く同一の振る舞いをする関数を見つけてマージするという最適化)。関数呼び出し関係というのがグラフになるので、グラフにおける同値性判定問題になる。 https://t.co/UGyHkOucy7」 / Twitter
mold/icf.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「2つの関数について(無限に深いかもしれない)コールツリーを作ったとして、コールツリーの形と、コールツリーのそれぞれのノードのマシンコードが同じなら、その関数は全く同じ振る舞いをするので、同値ということにする。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「実際にリンカで行ないたいことは2つのグラフの同値性判定より大変で、与えられたグラフのすべてのノードのペアについて、それらから到達可能なサブグラフが同値かどうかを判定したいので、うまくやらないとめちゃくちゃ遅い。moldのアルゴリズムは暗号的ハッシュ関数を使ってその辺うまくやっている。」 / Twitter

依存関係の出力

Rui UeyamaさんはTwitterを使っています 「I added the `--print-dependencies` flag to mold to print out all dependencies between input files. Here is an example output: https://t.co/eUIBbrFJHb If you like or dislike it, please leave a comment here: https://t.co/bLLT1pkkNc I haven't decided if we'll ship this flag.」 / Twitter
gist:e1d70bbdebfabb881be7167314b58f48
[ELF] Add --print-dependencies · rui314/mold@a1287c2
Rui UeyamaさんはTwitterを使っています 「@HaskRay Do you have any opinion? I thought that just printing out not one but all undefined references between input files can be a one-stop solution for several feature requests.」 / Twitter

histric

histric-1

Rui UeyamaさんはTwitterを使っています 「前回パースした結果をうまくメモリに持っておくことで、ホントにChromiumが2秒でリンクできるようなリンカを作れる可能性がある気がする。初回起動時はやっぱり12秒くらいかかってしまいそうだけど、初回ビルドはどうせ遅いので別にいいし。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@rui314 リンカデーモン?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@anohana 初回起動したときに勝手にデーモンみたいに裏で動き続けるようになるとか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカをメモリに常駐させておけば勝手に速くなってくれるということはなくて、ファイルを読み込むときにやってよい処理と、本当にコマンドが起動されたときに行わないといけない処理の2つにうまくステージを分割して、後半が極力早く終わるように前半をうまくやるということが必要になってくる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じのデータ構造を考えつくかどうかで、こういう分割がうまくいくかどうかが決まるんだよね。実際、コードよりも、データをどう持つかというのがプログラミングで一番重要なところなんだよな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いまのところChromeをリンクするとき、実際のデータのコピーを始められるまでの処理に400ミリ秒くらいかかってる。もう一声縮めたいけど、100万個単位で存在するシンボルとかセクションとかを扱っているわりには悪くない数字。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカたるもの、入力から出力にデータコピーするところはどうやっても省きようがないので、 - 出力ファイルのレイアウトを極力早く決めてデータコピーをとにかくさっさと開始する - データをコピーしている間に、余っているコアで付加的なデータを構築する というのが肝になるかなと。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeの入力オブジェクトファイルを出力ファイルにコピーし終わるまでちょうど1秒くらいだ。実際にはまだやらないといけないことがあるけど、目標の2秒までまだ1秒もバジェットが余ってる。これは本当に2秒切れる可能性ある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「新しいリンカの名前、modern linker、略してmoldにしようかな。理由はカビっぽくてなんとなく面白い名前だから。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldリンカのソースアップロードしておいた(まだ使い物になるとかそういうレベルじゃないけど)。日本人らしくいらすとやの画像を貼っといた。 https://t.co/V5MIFw4jJB」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「いろいろ実験して、どういう処理がどれくらいの時間を必要とするのか調べてみてるんだけど、Chromeのリンク、2秒どころか1.5秒も可能かもしれない。とりあえずそれを目標にしてみよ。」 / Twitter
Adam Van ProoyenさんはTwitterを使っています 「@rui314 lldだと?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@docileninja 12 seconds」 / Twitter
Rui UeyamaさんはTwitterを使っています 「My linker is now able to create an statically-linked executable that does nothing but runs an infinite loop.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Next I have to support common symbols, and I want to do that really quick. I mean I don't want to spend more than, say, 20 milliseconds for them in total even for a &gt;1GB executable.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「It looks like my new linker can fix the layout of an output file for Chromium in 300 milliseconds. Copying file contents takes 700 ms, and I guess applying relocations would take another 500 ms. So a linker that links Chromium in 1.5 seconds is possible?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「For comparison, lld takes 12 seconds, and GNU gold takes more than 50 seconds to link Chromium.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Constructing a string table was a tough one because it's simply huge (~600 MiB for Chromium), but I think I managed to create it with less than 300 milliseconds overhead.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末までにまだ40日あるからChromeをリンクできる完成度まで高めるの可能かもしれないな。Chromeが2秒でリンクできたらさすがにA+くれるんじゃないか(というかそんなの授業で作るレベルのものかっていう)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか今作ってるリンカ、64コアマシンなのに16スレッドくらいで性能が伸びなくなっちゃうんだよな。小さなデータセットについてじっくり計算するタスクだともっとスケールするんだろうけど、大きなデータセットを素早く処理するみたいなやつだとメモリバスが厳しくてコアを全部使い切れないみたい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Ryzen 3990Xは癖が強すぎで、やっぱ3950Xがコスパ的にも最強マシンだったか。今なら5950Xだな。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@rui314 L3キャッシュを共有するCCXあたりで8コア16スレッドなのが関係してるかもしれませんね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マルチコア向けのプログラムを書くための高水準ライブラリとしてIntel TBBというのがあるんだけど、これの出来がとてもよい。とりあえず使っとけばいいという感じ。あと、こういうよくできたライブラリがあるからC++で書いててよかったなってなる。やっぱりC++はよい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こんなライブラリ作ってくれてるのにAMDのCPUで動かしていてすまんな・・って思うけど、でもこれとはそれと別で、なんで最近こんなダメダメなのっていう。Intelは数十年に渡って絶対王者的ポジションを占めていたのに。」 / Twitter

histric-2

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このレベルになると、OS固有機能を活用しての高速化したい感じ。 (書き込み後にもOSキャッシュ載せたい場合は(DirectI/O使えないので)、fallocate + mmap後に、msyncで最後に手動一括sync出来ると良いのかな…だがlinuxにはmmapの自動syncをpendingする仕組みが無いっぽい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うわー、tmpfsだとめちゃくちゃ速いな。RAMディスクだから当たり前なのかもしれないけど。tmpfsに出力するようにしたらChromeのリンク1秒切るのももしかしたら余裕なのかもしれない。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 でもそれ、最終的に何処かへ copy する必要があるのでは…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive ビルドディレクトリ全体をtmpfsに置くというのはわりと普通に行われているので。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 source まるごと置くのが一番速そうだけど、何か不幸な事があると消えるスよね😅。out-of-source-tree build で artifacts だけ tmpfs 送りスか?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive リンカなのでソースは置かなくていいです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Wow, copying file contents is extremely fast on tmpfs. We might be able to link chromium in less than a second on tmpfs if these numbers are true.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そろそろHello worldくらいは動くようにしないといけないな。今のところは壊れた実行ファイルを誰よりも素早く作成できるリンカになってしまっている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hello worldを動かすために、まずシンボルテーブルを出力できるようにしてから、_startからディスアセンブリをたどっていく作業してる。何かをゼロから作るとHello world表示するまでが遠いんだぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうの普通はよく知らない仕組みにぶち当たって学びながら作っていくので、ときには途中でデザインを基本から変えないといけなかったりすることがあるけど、僕は一応2回めだから根本的に間違ってるところはない、はず。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか.gotを作るようにしたら_startから__libc_start_mainまでたどりつけるようになった。けどまだmainにたどりつく前にクラッシュしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Improved my new linker to emit a symbol table for debugging and then investigating why a "hello world" crashes before main(). If you create something from scratch, "hello world" isn't the first step but is actually an achievement.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I don't know why, but this kind of mysterious low-level errors can almost always be fixed in a few days. The most difficult part is to set my mind to dive into disassembly and hexdump. I guess I've spent far more time for procrastinating than for debugging.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeのリンク、2秒じゃなくて1秒目指そうぜという気分になってきた。cpがちょうど1秒くらいだから、cpと同じ速さというとインパクトがでかい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「出力ファイルをcpするのと同じくらい速いリンカなんて原理的に不可能そうだけど、①そもそもcpがファイルコピーコマンドとしてあまり速くない、②ファイルの内容をコピーしてる間に別のコアで時間のかかる計算をする余地がある、というので、絶対無理というわけでは多分ない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「_startの直後に呼ばれる__libc_start_mainの中でクラッシュする問題は直したけど、まだmain()より前のどっかで落ちてる。正直こういうバグ直すのめんどくさい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「"Hello world"が静的リンクできる程度のリンカを書くの、プログラムが低レベルでどう動くのかを理解しないといけないのでめっちゃ勉強になるな。一回書いたでしょという話はあるけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか芋づる式にいろんな機能を実装する必要があって終わりが見えない。Hello world難しすぎワロタってなってる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おおお、数日間のデバッグの末ついに自作リンカでhello worldがスタティックリンクできた! main()より前に実行されるコードの実行を逆アセンブリでひたすら追ったりして、なかなか大変だったぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「やはりこういうプログラムを作るときに一番必要なのは、くじけない心。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hey, so I managed to fix critical bugs so that my new linker is now able to statically-link a "hello world" program against glibc.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今クオーターの終わりまでにChromeがリンクできるようになるわけ?という質問には、善処しますとしか言えなかったわ。Hello worldやっとできたところからChromeを出力できるまで1ヶ月で足りるか・・?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Bumped up my (already ridiculously ambitious) goal from 2 seconds to 1 second to link chromium. I *believe* that's not entirely impossible. https://t.co/V5MIFw4jJB」 / Twitter

histric-3

Rui UeyamaさんはTwitterを使っています 「自作リンカでビルドしたhello world、./helloだとメッセージがでるのに./hello | catだと出なくなるというバグがあった。単に一つリンカの機能が欠けてただけだったけど、こんなバグどうやって直すんだ(直したけど)。」 / Twitter
gitster@ Git v2.30 12月28日発売 予約受付中(うそよ)さんはTwitterを使っています 「@rui314 こんなバグどうやって発現するんだ?という方が気になりますね。実行時にwrite(2)の行き先がttyかパイプかによって挙動を変えるなんて、狙ってもリンカレベルでどうやるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 デフォルトだとstdoutは行バッファリングですけど、isattyがfalseだとフルバッファリングになるので、そのときにはexitするときにバッファをフラッシュするんですよね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 フラッシュする関数のリストは__libc_atexitというセクションに入っているんですが、リンカが定義するべき__start___libc_atexitと__stop___libc_atexitというシンボルを定義しわすれていた。その結果exitのタイミングでstdioの後始末をする関数が全然呼ばれていなかったという。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ここ1ヶ月くらい土日もなく起きてる時間コードばっかり書いてる気がする。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現段階で2500行くらいか。僕の野生の勘ではトータル6000行くらい書けばとりあえずChromeをリンクして動かせるんじゃないかと思うんだけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コードも凝ったところがなくてかなりわかりやすく書けてると思うし(こういうあまり誰もよく知らない低レイヤだと「何をする必要があるのか」というのを知るほうが大変なんだけど)、速度も出るし、いまのところ結構よい感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「僕は自由研究の工作としてのプログラミングが好きなだけなので、あんまり競技プログラミングとかにはやる気がわかないのであった。食わず嫌いもよくないからやろうと思ったことはあったけど、結局やらずじまい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最近は競技プログラミングの人気が上がっているので、ある程度以上できるプログラマだとそういうのやってると思われることもあるけど、別にそんなことはないです。というか一般にはそういう話をあまり見聞きしない。趣味でやってていい成績だしている人はすごいなぁとは思うけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを作っているとどんなバグがでてくるのかをまとめてみた。これからも更新予定。https://t.co/SuxohXLQTO」 / Twitter
mold/BUGS.md at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「I decided to keep a note about interesting linker bugs before I forget. I'll update this doc as I meet a new one. https://t.co/SuxohXLQTO」 / Twitter
Rui UeyamaさんはTwitterを使っています 「When working on the binary level, a very subtle bug can cause a program crash with a very little trace of what was wrong. I still don't know how to efficiently debug this kind of issues, but it looks like patience is most important...」 / Twitter
Rui UeyamaさんはTwitterを使っています 「んー、やっぱり10ミリ秒単位の最適化を考えたりするのは、コンピュータをうまく使っている感じがして楽しいな。1000ミリ秒でchromeをリンクするという目標があると張り合いがあってよい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「速度を知りたいだけだから、やっつけなプロトタイプ作ったら、変種パターンでの確認も必要となり、速度実験用プロトタイプこそ最初から拡張性考えて作っとけ、みたいな羽目になることある(笑)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「高速化できそうなアイデアがあったので実装してみたけど速くならなかったのでボツ。こういうの、いろいろアイデアがあっても結局最後は実装して試してみるしかないので、プログラムを高速化するためには自分のプログラミングも速いほうがずっと有利っていう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一般的には、最初から拡張性を仕込むのは悪手なこと多い。 思考実験的に、こういう拡張はここを変えればいける、という見通しだけくらいで良い。 YAGNI https://t.co/KqTrhwJLM6」 / Twitter
YAGNI と premature complication #4
Rui UeyamaさんはTwitterを使っています 「Chromeを1秒でリンクするのはどうやっても無理かも。データをコピーするだけで0.75秒くらいかかるから、まともな処理をするには残りの時間が少なすぎる。1.5秒でリンクするのなら現実味あるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「データをmemcpyでコピーするところは数コアでサチるので、根本的にメモリバスがボトルネックで、速度を上げようがない(多分)。」 / Twitter

histric-4

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても仮想ページの初期化コストって、0初期化よりも、割り込み→物理ページ割り付け、にコストが掛かっている感じある。 …だとすると large page明示指定できるなら高速化可能?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 手元のWindowsだと(i5-8600K)、memcpy自体より仮想メモリのページ初期化コストが大きいですね。 1GB領域のmemset/memcpy速度実験。 VirtualAlloc(≒mmap(anon)) .. ほぼノーコスト 1st memset ... 2.5GB/s(4KBページの先頭のみ初期化だと3.3GB/s) 2nd memset ... 21GB/s 2nd memcpy ... 10.6GB/s」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu mmapしたタイミングでページテーブルも埋めるMAP_POPULATEというフラグがあるんですが、それをつけても速くならなかったんですよねぇ・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 同じmmap領域に、memcpyのセットを2回以上行っても、速度は大して速くならない感じでしょうか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの large page は使い辛そう。 https://t.co/cEh2whGBfX」 / Twitter
やねうら王、Large Page対応で10数%速くなった件 | やねうら王 公式サイト
SODA NoriyukiさんはTwitterを使っています 「@shirouzu メモリが十分余っているなら、連続する仮想アドレスに対するアクセスを検知して後続する有効な仮想アドレスを事前に割り当てるサイズを適応的に拡大していけば、page fault handler の呼び出し回数と page table の書き換え回数の両方をだいぶ減らせそうな気がします。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu やねうら王の場合、ページ自体は既に割りつけられていてアクティブに使われている状況下での高速化でしょうから、TLB miss低減の方の効果でしょうね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda 検知+適応的に、というのはOS側がそんな挙動をすれば…という意味でしょうか?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu その意味でした。 カーネルの改造が必要なのでWindowsの場合、Microsoftでないとできないっすね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえずChromeは大きすぎだから、gitを自作リンカでリンクして動かすというのを目指すのがよさそう。自作Cコンパイラでgitをコンパイルして動かすのよりずっと簡単な目標でしょ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VirtualAlloc(MEM_LARGE_PAGES) の結果。 やはり物理ページ割り付け・初期化コストが物凄く減った。 (なおVirtualAlloc自体の時間は僅かに掛かる…遅いと125GB/s、速い場合は計測不能) 1st memset ... 21.2GB/s 2nd memset ... 31.7GB/s 2nd memcpy ... 10.6GB/s https://t.co/xPUE5uqvS5」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu 入力ファイルをMAP_POPULATEつきでmmapして効果ないなぁと思っていたんですが、出力ファイルをMAP_POPULATEつきでmmapすると顕著に効果ありました。その代わりmmapが非常に遅くなりますが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 mmap(anon) + write1回の方が速かったりしませんかね。 (direct I/O write 1回(必要あれば追加truncate)が一番速そうですが、リンカだと通常writeでキャッシュに載せた方が後々嬉しいのでしたっけ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 あと、Win32だと large page で初期ページ割り付けコストがかなり減るみたいですね…mmap(MAP_HUGETLB)で意味があるかはわかりませんが。 https://t.co/BOaM1tVLDu」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ただし 2nd memcpy が 15.8GB/s 出ないのがやや謎…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この結果を見ると、もう少しWin32でもlarge pageの利用ハードル(gpeditでユーザ許可必要、原則要admin)を下げて欲しいところ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ついにいい方法を見つけた気がする。出力先のファイルがすでに存在する場合、新たなファイルを作るかわりに、既存ファイルをそのままmmapして内容を上書きしてしまえばいいんだ。遅いのはページフォールトではなく、ファイルシステムが新たなブロックをファイルに割り当てるところだった(多分)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これでファイルの書き込みにかかる時間が750msから500msになって、1秒切りのゴールにぐっと近づいた感がある。まあデメリットとしては、中途半端なところでリンカが殺されると食われた状態の出力ファイルが残るというのがあるけど、これは速度のために許してもらおう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux kernel を漁る時に、関数ポインタテーブルになってる部分が追いづらい… fop-&gt;write() みたいなコードになっている時、代入されうるxxx_write がリスト選択して追えるサイトって無いのかしらん?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 昔のSolarisのコードだと write(2) の entry部分で rw_lock(inode, writer_mode) みたいなコードでシリアライズ強制でしたが、今時のwrite(2)でも同一fdでは並列動作しないという感じですかね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu MAP_ANONでmmapした領域にmadviseをするとtransparent huge pagesを有効にできたりするんですが、そういうのを試しても速くなりませんでしたね。最後のwriteが遅すぎて(O_DIRECT使って、かつ複数のスレッドから呼んでも)。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…通常の方式だと、物理デバイスへのmsync/fsyncは待たずに終了なのでしたっけ。 (だとしたら、O_DIRECTは遅くなる方向にしか効かないですね) あと、O_DIRECT + 複数スレッドというのは、write(2)を複数回実行ということでしょうか…?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu そうです。writeに2GBのバッファへのポインタを渡してもカーネル内でシングルスレッドでデータコピーしているぽいので、バッファを複数のブロックにわけて複数のスレッドからpwriteしてみました。」 / Twitter

histric-5

Brian GesiakさんはTwitterを使っています 「@rui314 I'm not an expert by any means, but would it be possible to install a signal handler to delete the file if mold is halfway through updating it? Or is the overhead of adding a signal handler not worth it?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache The usual technique to create an output file is to create it with a temporary name and then rename it an output filename. Since renaming is atomic on filesystem, it is either you'll have the original file with the original name or the new file will replace the original one.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache But if you overwrite an existing file, you can't undo it easily. If you keep the original file contents somewhere, you may be able to write it back, but that incurs the cost of copying file contents at the beginning.」 / Twitter
Brian GesiakさんはTwitterを使っています 「@rui314 Oh yeah, totally. I thought a concern would be having a file remain there, but with broken content. If mold is interrupted, I thought it'd be nice to delete the half-overwritten file, since it almost certainly shouldn't be used.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache Ah, sure, good point. Deleting a broken file is probably better than leaving it as-is.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「一回作ったことがあるリンカをもう一回作るというよく知ってるテーマでここ一ヶ月ほど暇を惜しんでコードを書いてて、自分一人でやっているし、条件としては最もよいはずなんだけど、月産2700行しか書いてない。プログラマの生産性なんてこんなものです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「簡単なプログラムがリンクできるようになったので、リンカのソースをいじっていろいろ整理してる。動くようにする(なにをするべきかを学ぶ)のと、その過程で学んだことを元にコードを整理するというのは、やっぱり小さいステップで交互にやるのがよさそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうのは多分ある程度は経験が必要で、経験が浅いと不必要に汎用的(と自分は思っているけど本当は単にややこしいだけ)なコードを書きがち。多くの場合、とりあえず動くやつを書いて、あとから必要に応じて整理したり書き直したりするほうがいいと思う。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「あとこういうのは、コードを大切にしすぎないのが多分重要で、リファクタリングしたつもりで書き直したけどやっぱり後で元の方法に戻した、とかもいいと思うんだよね。そういう試行錯誤をするためにはコーディングとかタイピングが速いほうが有利なので、量が質に転化するみたいなところはある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldもいい感じに開発が進んでて、8コアくらいの中堅PCでもChromeみたいな巨大なプログラムを1秒以内でリンクできるようになる可能性ある。しかしこの目標達成できたら、ビルドのリンクのステップが遅いという何十年もプログラマを悩ませてきた問題が、ついに完全かつ最終的に解決されてしまうのでは?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえず自作リンカでgitをリンクできるようにしようとしてる。なんかすごく似たことをつい数ヶ月前にもやってたような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんかリンカばかり作ってるけどこれは偶然の成り行きで、最初にlldを作ったときは、コンパイラとリンカを作らないといけないけどどっちがいい? とマネージャに聞かれたので、コンパイラはむずそうだけどリンカは気合いで作れそうだなと思ってリンカにしますと言ったからそうなっただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「言語処理系好きなひとはコンパイラをやりたがるからリンカを選ぶ人は珍しいなと言われたんだけど、そもそもそれまで僕はJavaとJavaScriptでWebフロントエンド書くみたいなことをやっていたので、まいっかという感じであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今また別のmoldというリンカを作っているのは、学校での研究としていい感じに動くコンパイラを作ろうと思ってたんだけど、学期が始まった後に「作ってみました」だけじゃどうかなぁ・・と教授に言われたので、しょうがなく超速いリンカを作るというプロジェクトに切り替えただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じに動く面白いものを作りたいとは思うけど、具体的なテーマそのものにはあんまりこだわりないかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マネージャにはWindows向けのちゃんと動くリンカを作ってよと言われただけだったんだけど、すごく速いやつを作ったらこれをUnixに移植して使いたいという人たちが出てきて、僕もそれに取り組んでた。なので高速Unixリンカを書くというのは完全に脱線状態なだけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週の教授との定例ミーティング終わり。なんでmoldが速いくてどこらへんに新規性があるのかをプレゼンを用意して説明したら喜んでもらえたぽい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお? 自作リンカでリンクしたgitが動いた! なんかコマンドが終了するタイミングで必ずクラッシュするけど・・。」 / Twitter
dancerj 🗾さんはTwitterを使っています 「@rui314 .finiセクションかなんだったかデストラクターのセクションだったかが順番間違ってるとかありがち・・・」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@dancerj 普通にありえる」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今日のプレゼン資料の1枚目には、「catコマンドより速いリンカを作ってビルドのリンクが遅いという問題を最終的かつ完全に解決する」とババーンと書いておきました。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git --helpが最後に落ちるのは、stdoutがあらぬところを指しているからだった。コピーリロケーションを実装したら動くようになった。stdoutがデタラメな値なのに途中まで動くっていうのもすごいけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「次はenvironがあらぬところを指しているらしい。オールスターだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「environ変数が見えない問題は直した。なんかコピーリロケーションの微妙な問題だったんだけど、こんな世界でも100人くらいしか実際の仕様を知らなさそうな微妙な動作(文章化されてない)にあらゆるLinux実行ファイルが依存してていいんだろうか? 低レイヤだとありがちな状態だけど・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや、なんか違うかも。仕事ももちろんフルタイムで取り組んでいたし、OKRとかで期末までに成果を上げてほしいという仕組みがあったし、いい仕事をするインセンティブもあったと思うけど、今ほどのやる気はなかったような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「A+が欲しいから選んでみたテーマだけど、最速リンカを作るというのはいいテーマだったかも。というかフルタイムで取り組める時間と、学期末までに成果を出したいという気持ちの両方があれば、いろんなテーマでそこそこ面白いものが作れるんだろうけど、学校というのはそういう意味で悪くないのかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんとなくあと数日デバグを頑張ったらgitが動くようになりそうという気がする。moldでgitがリンクできるようになったら、chibiccとmoldでgitをビルドしてみて自作ツールチェインの完成度の高まりを感じてみたい。」 / Twitter

histric-6

Rui UeyamaさんはTwitterを使っています 「よっしゃ。chibiccでコンパイルしてmoldでリンクしたgitのバイナリで自作ツールチェインのリポジトリをgithubにpushするのに成功した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現在3677行。そんなに欠けてる機能があるとは思えないから、多分4000行でChromeをリンクできるリンカを書ける。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git range-diffの表示するdiffが少しだけ違うという問題をデバグしてる。リンカのエラーでこんな微妙な問題、どうやったら生じるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これはlibcにregexecという同名の関数が複数含まれていて、想定してるのと違う古いバージョンのを偶然使ってしまっているからぽい。つまりシンボルバージョニングに対応しないといけないぽい。バージョニングには対応しなくても動くと思っていたけど、想定甘すぎた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでリンクしたgit、テスト完走した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git linked with mold (my new linker) can now pass all its tests.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末まであと1週間半で、目標のchromeはまだ動かすには至ってないけど、gitが動くところまで来てるんだし、現時点でもA+もらえるんじゃないかなぁ。lldの10倍速いリンカを作ってみるなんて、学生の一学期分の研究成果としては正直やりすぎなくらいだろうし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでmold自身をリンクして全部普通にテストが通った。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週のウィークリーミーティング終わり。USENIX ATCに出すかーみたいな話をしたけど、それなら論文提出締め切り1月15日なんだよね。忙しくなりそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお?? 新作の自作リンカことmoldでリンクしたChromiumが、あっさりと普通に起動してしまった。ここまで2ヶ月しかかかってないぞ。 https://t.co/Vj9iHq7Kdh」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ いまのところ5秒弱かな。これでもlldより倍以上速いけど、ファイル読み込みんだ後のイメージをデーモンにしてメモリに常駐させることで1秒切るところまで縮めるつもり。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ 実際ファイル読み込みのところとかを除くと0.8秒くらいしかかかっていないので、1秒切りは普通に可能な目標という感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Looks like Chromium linked with mold (my new linker) started working just fine. I've spent only two months so far for this project, though. https://t.co/WOEAJPtReg」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを書くのは実はそんなには難しくなくて、moldも4000行しかない。ただ、ドキュメント化されていない隠れた仕様が多い上に、それを正しく実装してないとわけのわからないエラーで落ちる実行ファイルができてしまうパターンが多いというのがつらい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「教授との最終のミーティングが終わった。なんかポリシーとして(?)A+はないけどAだし、PhDいくならいい推薦状書くよと言っていたけど、A+ないんか〜 最初から言ってくれ〜。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この論文、USENIX ATCよりACM OOPSLAに出すほうがよくない?という気がしてきた。教授に相談してみるか・・。しかし教授も正直この分野そんなに詳しくないと言っていたからどうしたもんか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMをライブラリとして使ってELFファイルを読み込んでたんだけど、自前コードで書き直してLLVMを使わなくすることに成功した。そんなに重要じゃない使い方なのに大きいライブラリに依存してるのってあまりよくないので。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMへの依存性をなくした代わりに、string_viewとかspanみたいなC++17/C++20の機能使いまくりのコードになってしまった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うーん、やっぱりC++は手に馴染むな・・。書きやすいし性能も出るし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「C++に慣れれば慣れるほど構造体に毛の生えた程度のbetter C的な書き方になっていくのは気のせいか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold普通にリンカとして悪くないのでは? という完成度になってきたけど、コードはC++で4600行。C++標準ライブラリにしか依存してないし(マルチスレッドのためにIntel TBBは使ってるけど意味的には無視できる)、シンプルで高性能で結構よいのでは。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、お膳立ては揃ったから、いよいよChromeを本当に1秒でリンクできるようにしてみるかな。ただ、予備実験ではfork(2)をすると(多分copy-on-writeのオーバーヘッドのせいで)リンクに1.5秒くらいかかるようになってしまったので、ちょっと別の方法を考えないといけない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うまくやれば多分1秒どころか800ミリ秒くらいでいけると思うので、単なるファイルコピーより速いリンカという目標を達成できると思う(cpとかcatだと1.1秒くらい)。」 / Twitter
成瀬さんはTwitterを使っています 「よっしゃ、vfork(1)の出番だ!!」 / Twitter
Rui UeyamaさんはTwitterを使っています 「あら? moldでのChromeのリンク時間、mallocをtcmallocとかtbbmallocに換えただけで4.5秒→2.5秒になってしまった。glibcについてくるデフォルトのやつはマルチスレッドでそんなに遅かったのか・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「メモリをたくさん使っているプロセスは_exit(2)ですら500ミリ秒くらいかかったりするので、それを隠蔽するようにしたら2.0秒になった。lldだと11.5秒くらいかかるから、もうデーモン化みたいなしゃらくさいことをしなくてもこれで十分じゃないか?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするのにかかる時間です。64コアマシンだけど、16スレッド動かせば十分という感じ。もっといい感じにスケールしてほしいけど、まあこんなもんかなぁ・・。 https://t.co/gZM7ejtbEt」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかし2秒だと普通に使ってて「はやっ」ってなるわ。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@rui314 「アムダールの法則」のカープになっているように見えます。」 / Twitter
アムダールの法則 - Google 検索

histric-7

Rui UeyamaさんはTwitterを使っています 「mold、完全に目処がついたと言ってよさそう。Chromeをリンクするのに2.5秒、直前に同一コマンドを実行してファイルをプリロードしておくと、ほとんどの入力ファイルが同じ場合に0.8秒という結果になった(16スレッドでテスト)。ほかのリンカだと最低10秒かかるから、めちゃくちゃ速いといっていい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「どう考えても仕事をやめた後のほうがいいプロダクトを作れている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この個人プロジェクト、別にGoogleでやるのも不可能じゃかったとは思うけど、こういう自由研究みたいなのを一人でできる立場になるのって結構大変だと思うんだよね。かといって別の本業プロジェクトの片手間でやるとなんか肩身狭いし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかし2ヶ月頑張っただけでこんなに劇的に速いリンカが作れるというのも、簡単すぎてちょっと変な話なんだよな。リンクが遅いというのは多くのプログラマがビルドコマンドを叩くたびに感じていることで、なぜそういう日常的な問題がこんなに放置されていたのか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「まあ「作るという発想がないから」というのが答えなんだろうけど、同じ理由で、広く使われているのにしょぼい状態で放置されているものってたくさんあるのかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Intel TBBがなければこんなに簡単にパラレルなプログラムは書けなかったのでIntel TBB様々だわ。よいライブラリだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldにバックグラウンドでのファイル読み込み機能を実装して、直前(数秒前とか)に同じコマンドを--preloadオプション付きで実行しておくとChromeが1秒でリンクできるのを実際に確認した。これで数ヶ月前に立てた目標を無事達成! 無理そうな目標があっさりと実現できてしまいましたね・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最後の最後にUNIXドメインソケットとかfile descriptor passingみたいな知識が必要になって、UNIX詳解プログラミングを読んでおいてよかったなと思いました。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldリンカいまでも十分に速いけど、一層速くするには自分でコンカレントなハッシュマップを自分で書かないとダメかもな。ここらへんを参考にちょっと書いてみてもいいかも。 https://t.co/O2alK8E3jS」 / Twitter
Algorithmic improvements for fast concurrent Cuckoo hashing | Proceedings of the Ninth European Conference on Computer Systems
Rui UeyamaさんはTwitterを使っています 「64コアThreadripper使い切るの難しいというか、アプリケーションによってはほとんど不可能だな。今書いてるやつだと10コア20スレッドくらいで性能が頭打ちだし、これ以上スケールするように書ける気がしない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I/Oが少なくてずっと計算をするようなタイプの処理がたくさんあるなら、64コアまでスケールするのかもしれない。そういうワークロードじゃなければ、Ryzen 5900X(12コア)か5950X(16コア)あたりで十分そう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「もう十分に速いから最適化はこれくらいにしとこうかな。2GBのChromeのファイルを10コア20スレッドで1.8秒でリンクできるし(デーモン化みたいなトリックなしに)、これ以上はどんなにがんばっても数百ミリ秒しか速くならないだろうし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いつのまにかmoldがRedditに投稿されていた。この作者の目標は過大すぎて疑わしいみたいな感じのことを言っている人もいるけど、README更新してなかっただけでもう結構実証されてるんだよな・・😅 https://t.co/VX2I0PXfeD」 / Twitter
mold: A Modern Linker : cpp
Rui UeyamaさんはTwitterを使っています 「C++で例外をスローできるようになった(なんかリンカがテーブルを作成したりしないといけない)。これなしでChromeをリンクして動いてたってのはすごいな。。しかしこれで主要機能を全部実装したのでは。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 Chromeは例外使ってないのを徹底してるってことですか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 でもなんかいろんなライブラリが入っていて、どれでも使ってないというのはありえるのかなぁ。まあ、起動してちょっとサーフィンするくらいなら使ってないのかも。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 使ってたらビルドできなそうじゃないすか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 リンクはできちゃうんですよ、ただそのままだと例外が投げられたタイミングでハンドラが見つからなくてクラッシュするだけで。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 なるほど、単にセクション無視しちゃうだけと」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 例外のハンドルの仕方がわかるレコードがたくさん入っているセクションがあるんですけど(.eh_frame)、これをリニアにスキャンするとめちゃくちゃ遅いので、関数のアドレスで二分探索できるテーブルがあって(.eh_frame_hdr)、これを作らないと例外がキャッチできないという。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 (多分あんまり)undocumented world だ」 / Twitter
Rui UeyamaさんはTwitterを使っています 「高速化のためのアイデアとそれを実装しなかった理由というのをREADMEに追記してみた。実装からは何が実装されたのかがわかっても、何がなぜ実装されなかったのかはわからないので。 https://t.co/V5MIFw4jJB」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカの機能を説明するためにUnixの歴史を説明するというアアプローチになった(未完)。 https://t.co/iCaLUnJSzi」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「moldのマルチスレッドの使い方について追記してみた。 https://t.co/IS736Nd7lT」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするときにgoldで50秒、lldで5秒かかる機能を1秒に縮めることができた。新規性あるアルゴリズムぽいから論文書くか。」 / Twitter

histric-8

Rui UeyamaさんはTwitterを使っています 「しかしグラフの問題に帰着するのでいかにも先行研究がありそうなんだけど、あんまり詳しくなくて(というか分野が深すぎて)どうしたもんだか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「goldで50秒かかる処理をlldで5秒にしたときは、何週間もアルゴリズムについて考えていたし、結果として劇的に速くしたと思ったもんだけど、数年後にまたいいアイデアがわりと簡単に出たりするから面白いもんだ。今回は1〜2日しか考えてないし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや、これは去年、学校の授業(具体的には暗号の授業)でいろいろ課題をやったから簡単に考えつくことができたアルゴリズムだな。数年前より成長している。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じに計算量が少なくて並列化もしやすいアルゴリズムを考えて、実際のコンピュータでいい感じに動くように実装するの(コンパクトなデータ構造を考えてキャッシュによりやすくするとか)、腕の見せどころという感じだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「アルゴリズムを考案するのは面白いけど、それを性能評価できるレベルまで実装するのは結構辛い。実装してみたら大して性能出ませんでした、というのもあるし。どうしても根性みたいなものがいる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「さらにちょっと最適化して1秒→770ミリ秒まで縮めた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや違うな、同じコア数だと940ミリ秒くらいだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最近考えていたアルゴリズムについてコメントを足してみようと思ったけど、これこそコメントじゃなくちゃんと書くべきなのかもな。正直こういうグラフの問題は図がないとわからないし。 https://t.co/UGyHkOucy7」 / Twitter
mold/icf.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「今書いてる論文、思ってたよりちゃんと数学的な証明を書かなくてはいけなくて、宿題で証明問題がやたら出ていたグラフ理論の授業ありがとうという気持ちになっている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「昨日まで考えていた証明に穴があったので今日またずっと考えてたんだけど、正しい証明にたどり着いた気がする。数学っぽいやつは時間がやたらかかる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「僕が今まで当然正しいと思って使っていたアルゴリズム、よく考えてみると本当にきちんと動くかどうか全然自明じゃなかったという。怖い話だ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「論文書くの疲れた」 / Twitter
Rui UeyamaさんはTwitterを使っています 「普通にLinuxで動くリンカを作るために必要な機能をまとめたサーベイ論文も書きたいんだよな。これは本当に必要というか、実際のコーディングよりもこの調査のほうが大変という状態なので。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「サーベイ論文というと近年の研究をまとめたものというイメージだけど、こういうなんのドキュメントにもなってないものを文章化するみたいなやつもサーベイ論文と言うんだろうか。まあサーベイではあるからサーベイ論文なのかな?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「論文、アルゴリズムと実装の部分は書き終えたから、あとはベンチマークだ。これは結構手間かかるだろうなぁ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なぜmoldをRustで書かないのかという質問が来たけど、 1. C++が一番慣れてる 2. Intel TBBみたいな良いライブラリがそろってる 3. こういうプロジェクトでは、実装しようとしているもの自体が興味深いのであって、どの言語で実装するかはそこまで重要ではない という感じかな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、Firefoxのビルドもびっくりするほど速い。ビルドしたバイナリが動作しないという点を除けば完璧だな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「お、moldでFirefox動いた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「.soファイルやビルド途中のアーティファクトも含めて、ChromeとFirefoxの全体がmoldでビルドできた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんかリンカの微妙なバグにより、Ctrl-wでウィンドウを閉じたときにChromeがクラッシュするという謎の問題が発生したけど、エスパーにより数時間で原因が判明してしまった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMをリンクしてテストが完走した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold is now able to link Chrome, Firefox and LLVM! Still buggy but getting closer to be a production quality linker.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Everybody loves benchmark, so here are some numbers. mold vs. lld link time: - Chrome (1.9GB): 2.1s vs. 12.0s - Firefox (libxul.​so, 1.3GB): 1.5s vs. 6.2s - Clang (2.1GB): 2.0s vs. 4.7s So mold achieves roughly 1GB/s throughput. All builds are w/ debug info.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「現代的なソフトウェア産業の方向性とは全然違うけど、いい感じのプログラムを一人で作ってるときが一番楽しいな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold isn't just fast but small and simple. Currently 6.5 kloc. IMO its source code is pretty clean. I'd like to write "demystifying ELF linking" paper based on it if I have enough time.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、なんじゃこりゃというくらい新機能追加が簡単だな。目ぼしい機能は実装してしまったから後はバグ出しか。」 / Twitter

histric-9

Rui UeyamaさんはTwitterを使っています 「It is sometimes surprisingly hard to modify a build system to use an alternative linker, so I made it easy by a hack. By running make as `mold -run make`, mold intercepts all invocations of /usr/bin/ld to redirect it to itself. https://t.co/0UXU4iT9xP」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「I was trying to build various programs with mold for testing, but it's not easy to figure out how to make them to use the nonstandard linker. Me: "But isn't this exactly the issue a potential mold user would face on day one?" So I came up with this hack.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「For now, mold can link chromium, firefox, llvm, mysql, postgresl, ffmpeg, libunwind, openssl, zlib &amp; a few more. What else?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現状で9000行くらい。機能を足していくとどうしてもコード量は増えてしまうな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「x86-64以外に移植するためにmoldを改造してみた。アーキテクチャ依存の部分をくくり出すんじゃなくて、ほとんどのクラスと関数をテンプレートにして、実質4パターン(ELF 32/64 little/big endian)のコードをまるごと生成するという荒業だけど、まあ悪くなさそう。 https://t.co/V5MIFw4jJB」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Trying to make mold portable. Instead of separating arch-dependent code from indep one, I made almost all functions and classes template to virtually create 4 different linkers (ELF 32/64 LE/BE) living in a single exe. Kinda brute force and little bit inefficient but not too bad.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold is gaining i386 support. It can read i386 object files and create an i386 exe, though the produced binary crashes inside libc_start_main.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldはx86-64ベタベタで書いてたけど、その気になれば2日でi386サポートが大体動くところまで改造できるわけで、最初は移植性について考えないというやり方で正解だった。新しくプログラムを書くときは、あれもこれもと考えがちだけど、ある程度完成するまで余計なこと考えてもしょうがないんだよね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Dynamically-linked "hello world" program worked with mold/i386! i386-dependent code in mold is just this: https://t.co/JOnDDKiGOO」 / Twitter
mold/arch_i386.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「mold no longer leaks memory. I don't care too much about memory leaks if it is a short-lived program such as a linker, but I did it because it wasn't too hard to fix leaks. It was actually trivial thanks to AddressSanitizer.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I made a few changes to make mold suitable to be installed under /usr/bin. One thing I had to do was to write a man page. https://t.co/gjGgRBmTqr」 / Twitter
Man page of MOLD
Rui UeyamaさんはTwitterを使っています 「Finally figured out why go's gc collects live objects only when some .so are linked with mold. It was extremely puzzling and took a few days to debug. Turned out it was a go's bug and not mine. https://t.co/R1NaMn5Y2Q」 / Twitter
cmd/link: `go tool dist test testshared` failed if linked with lld or mold · Issue #46560 · golang/go
Rui UeyamaさんはTwitterを使っています 「I already made a change to mold to appease go, even though technically it's their fault. It's an inconvenient fact: complying with the standard is not enough, you need to make it bug-compatible to make your linker work in real life.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldのclangのリンク時間を3.6s→2.5sに縮めた。出来合いの並行ハッシュマップだと性能が出ないので、HyperLogLogアルゴリズムでテーブルサイズの見当をあらかじめつける&並行ハッシュマップを自分で書くという合わせ技。 https://t.co/1nJcV4exCV」 / Twitter
Optimize string merging · rui314/mold@41b2fa7
Rui UeyamaさんはTwitterを使っています 「moldリンカは速いけどメモリをそこまで使うわけではない。というかメモリは可能ならあまり使わないほうがキャッシュ効率が上がってよい。なので大量にアロケートする構造体のサイズとかは結構気を使っている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そういえば先月、プログラムのビルドやロード周りとリンカ、および並列プログラミングについて講義をしました。」 / Twitter
42 Tokyo | 仏発ソフトウェアエンジニア養成機関さんはTwitterを使っています 「42東京で行われた「lldリンカ」プロジェクトオーナー植山類さんによる講義のアーカイブを公開しました🎥 学生が直接オファーしたことから実現した講義でした! 植山さん @rui314 ありがとうございました🙇‍♀️ ▼ アーカイブ(全2回) part1: https://t.co/aGvzRDWIa5 part2 : https://t.co/phmmikWyo1 https://t.co/uo4A96bqll」 / Twitter
【第1回】植山類さん講演会 - 42 Tokyo - YouTube
【第2回】植山類さん講演会 - 42 Tokyo - YouTube
FadisさんはTwitterを使っています 「mold初の安定版リリースとなるmold 1.0.0がリリースされたらしい。moldはGNU ldを置き換えて使う事を意図したリンカで、不要なデータのコピーを回避する工夫と並列化可能な処理を積極的に並列にする工夫で同じく高速なldを目指して作られたgoldやlldを圧倒する速さを叩き出す https://t.co/aLJ8xIoje7」 / Twitter
Release mold 1.0 · rui314/mold
Google Chromeのリンク時間24倍高速化、最新リンカー「mold 1.0」登場 | TECH+

Rui UeyamaさんはTwitterを使っています 「mold gained yet another performance optimization. It reduces libQt6Gui.​so link time from 1.10s to 0.05s thanks to the Aho-Corasick algorithm. https://t.co/dqWkLOMdoc」 / Twitter
[ELF] Use Aho-Corasick algo to handle version script patternsC · rui314/mold@d0c1c4d
[ELF] Support LTO plugin API · rui314/mold@46995bc
Rui UeyamaさんはTwitterを使っています 「mold now gained --shuffle-sections to randomize address space by shuffling input sections. This commit uses Xorshift random number generator and the Fisher-Yates algorithm to shuffle sections. https://t.co/wQVMzjtm0d」 / Twitter
[ELF] Add the --shuffle-sections option · rui314/mold@7e91897
リンカー「mold 1.1」が公開、LOTをネイティブサポート | OSDN Magazine

コーディング規約

Rui UeyamaさんはTwitterを使っています 「I tried to explain the coding rules in mold, especially as to why I always use int64 instead of int. https://t.co/nl7TUI8y0D」 / Twitter
mold/coding-guidelines.md at main · rui314/mold
Brandon FalkさんはTwitterを使っています 「@rui314 Oooh! There's actually a slight difference between 64-bit and 32-bit operations in the CPU. It's minor but definitely measurable. That being said, I'm all for strong typing like that (and also like how Rust is like that).」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 The performance difference is pretty minor, but also can affect things like cache locality as you "push" more things out of memory by having things less dense. That being said, not a huge issue. The largest realizable issue from 64-bit is that you 1/2 your performance for SIMD」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 ... but ofc that only matters if you're doing simd (which your compiler might be doing for you, ofc).」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@gamozolabs Which instructions can we observe a difference?」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 Pretty much all! I did this research like ~10 years ago, so tonight I'll try to update it with my more modern coding styles and display. Let me see if I can find the old graph, but it's a pretty noticeable difference on almost all instructions, even `add reg, reg`」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 (unless uarches have changed enough since then) (Going out for dinner right now, so I might not be able to find the graph or the data right now, but if I can't find it I'll reproduce it, I love doing CPU uarch stuff)」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 That being said, this is not really a strong reason to change designs. Ultimately the CPU is probably memory/cache starved, these measurements are really only relevant if you're absolutely saturating and pipelining your integer operations.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@gamozolabs Yup. I guess in my actual application, the difference is hidden in noise. I occasionally change some variables to 32 bits to see if it can speed up some internal passes and got negative results.」 / Twitter
Brandon FalkさんはTwitterを使っています 「@rui314 Yeah, I would totally expect that. Except for raw HPC/mathematical operations it'd be impossible to notice minor changes like this over the noise floor. CPUs just are waiting for memory or dependent operations so much more than they're doing independent work. `u64 ii` ♥️」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@gamozolabs Oh, really. I was thinking that they cost the same. Curious to see if it still stands on modern 64-bit processors.」 / Twitter

histric-1

Rui Ueyamaさんのツイート: "今日説明していて思ったけど、lldは僕の考え方を反映した、普通にはよくないとされているけど僕は良いと思っている手法が導入されているんだなと思った。 - メモリはプログラムの終了時まで解放しない - コード重複はしてもいいのでプラットフォーム共通になるように抽象化しない"
Rui Ueyamaさんのツイート: "lldにおいては成功した取り組みだったと思うけど、いずれにせよソフトウェアエンジニアリングというのは実践的なもので、「正解」があるものではないので、非伝統的や非正統的であっても、単に自分がよいと思うものがあったら追求していってほしい。例えばオブジェクト指向とか別にどうでもいいし。"
Rui Ueyamaさんのツイート: "「メモリを途中で解放してもたかが知れてるから最後まで解放しないほうが単純」とか「抽象化せず多少重複したコードを書くほうが簡単」とか主張するのは勇気がいります。XX原則に従ってないとか必ず言われるからね。でも多分そんなに難しく考える必要ないと思う。簡単に書くのが一番重要。"
Rui Ueyamaさんのツイート: "リンカをより速くするプロポーザル書いた。 https://t.co/tsCOkSOXvO"
[llvm-dev] [RFC] lld: mostly-concurrent symbol resolution
Rui UeyamaさんはTwitterを使っています: 「goldはタスクを小さいジョブに分けて、依存関係を管理しつつ、実行できるジョブを並列にどんどん実行していくみたいな凝った作りになってるのに、単純な並列forループしか使ってないlldのほうがスケールするのは面白い。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldはGNUリンカとの完全互換を目指していたので、あんまり重要ではない、ただ伝統的にそうなっているという動作を同じように実装する必要があって、最適化には限界があった。もっとシンプルな作りで、スピードを第一目標にしたリンカを作ってみたいとは思ってた。ニーズも大いにあるし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldを使っても大規模プロジェクトだとリンクは遅くて、プログラマの生産性を明らかに下げてる。しかし既存リンカとのコマンドライン互換を諦めたらあと10倍くらい速いやつが作れそうな気も?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「小規模プロジェクトだとそもそもリンカに対してニーズが特にないのでコマンドライン互換でそのまま使えればいいという感じだけど、大規模プロジェクトだとビルドファイルに変更を加えてもいいからとにかく速くリンクしたいというニーズがあって、後者にフォーカスすればlldを置き換えれるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「オブジェクトファイルをcatして1つのファイルにまとめるのと同じくらい速いリンカというのを作りたいんだよな。あながち無理でもなさそうというか、catって複数のファイルをまとめるコマンドとしてはあんまり速くないし。」 / Twitter
Junio C HamanoさんはTwitterを使っています 「@rui314 出来上がりのバイナリが実行開始するまでのレイテンシーを犠牲にしてよいのなら、ホントにcat程度にしておいて、起動後、実行時に、通常ならリンカがするはずの大方の処理を行なう、みたいなズルはできそうだけど、そういうのを狙ってるわけじゃないよね😜?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 今までのリンカが並列にやってこなかったことを並列にやるみたいな感じのことを考えてます。コマンドを起動したらまっさきにファイルをコピーし始めるくらいの勢いで動くものを。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「1.9 GBのchromeの実行ファイルをリンクするのにlldで12秒かかる。これを2秒とかでできるリンカが作れないかなと考えてる。理想を言えば1秒にしたいけど(1.9 GBのファイルをcpすると1秒かかるので)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「goldリンカだと54秒かかるので、lld作った時点ですでに相当速くしちゃってるんだよな(自分でハードルを上げていくスタイル)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンクの遅さに対する対策として、プログラムを複数の.soに分割したりインクリメンタルなリンクを実装するというアイデアがよくでてくるけど、なんかいろいろ複雑になっちゃうから、そういうのは根本的にはあんまり筋がよくない解決策だと思う。単にリンカをすごく速くするほうがいいはず。」 / Twitter
ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (2/2)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++のリンカだと、ファイルIOが主要ネックに見えるけど、すでに読み取り1回、書き込み1回的な状態になっているのかしらん?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu ファイルIOがない考えてるだけの時間が長過ぎるんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…オンメモリ処理が1/5~10になるとしたら凄いですね。」 / Twitter
Lizan ZhouさんはTwitterを使っています 「ほしい…ASANでコードサイズが爆発的に増えても速くリンクできるようになるとうれしいな…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ASANでそんなにリンク遅くなるっけ?」 / Twitter
Lizan ZhouさんはTwitterを使っています 「@rui314 コードサイズが倍近くになるはず」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ああそうか確かに」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そういやAndroidもlldに移行すると言っていたけど、もうそろそろ完了してそう。ほかにもPlayStation、Switch、Chromeとかはlldを使っているはずだから、僕らが作ったリンカの出力が我が家でもいたるところにあるな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldを速くするという研究で論文を書いている人がいた。スウェーデンの学生の卒論かな。 https://t.co/moXtdj4WZE」 / Twitter
Optimizing the LLVM ELF linker for a distributed compilation environment : Concurrent Linking with LLVM LLD
Rui UeyamaさんはTwitterを使っています 「僕がオリジナルのコードを書くと、メモリリークしたままexitするのはないわとか、グローバル変数使いすぎとか言われるんだけど、そういう細かいところじゃなくてもっと本質的に何やってるかに着目してくれ〜。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「まああと、メモリ解放しないまま最後にexitでまとめて始末するのもやり方としてはありだし、プログラム中に1個しかないものならグローバル変数を使っても別にいいし(というか多くの人が必要以上に避けすぎ)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コードからファイルを開くのが、例えばmainに渡されるFileOpenerというオブジェクト経由でしかできないみたいな仕様になっていたら、グローバル変数に代入したくない一心でFileOpenerをあらゆる関数の引数に足すひと結構いるんだろうなと思う。つまり実質グローバル変数みんな普通に使ってるのよ。」 / Twitter
市川 真一さんはTwitterを使っています 「メモリ解放せずに exit するポリシーだと、そのような発想になるのは理解できます。それで、実質的にグローバル変数を使ってるという認識は当然あるのですけど、exit せずにプログラム全体を再始動させたりするのに、グローバル変数の参照がプログラムの至る所にあると難しいというのが理由です:」 / Twitter

Rui UeyamaさんはTwitterを使っています 「速いプログラムを書くためには、性能の出そうなコードを結局何パターンも書いて一番いいものを選ぶとかしないといけないので、勘と実装力の両方が問われる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「よさそうなアルゴリズムを思いついたので実装してみたら、かなり有望な数字が出てきた。これ特にVisual Studioのリンカが速くなりそうだなぁ。またMicrosoftに感謝されそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「有向グラフにおいて「あるノードから到達可能なすべてのノードとエッジからなるサブグラフ」を一言で言う用語ないんだっけ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Demystifying Unix linkersなるドキュメントを書き始めた。めちゃくちゃ基本から解説して、誰でもUnixリンカの動作とか機能を理解できるものにしたい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「このテーマだと僕より詳しい人はほとんどいないし(成り行き上詳しくなっただけだけど)、ここまでの調査に要した時間を考えるとドキュメントにまとめないのは大きな損失なんだよな。自分でも忘れてきてるし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@ZebraCakes 英語で書いてます(日本語はないです)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「There are not too many people who know how hard a linker development can be, and Jakub and I are the ones!」 / Twitter
Jakub KonkaさんはTwitterを使っています 「After a lot (and I mean it, a lot) of debugging, and a few rewrites, I am super happy to announce that @ziglang ld (or zld) is successfully able to link C++ on arm64 macOS, and as a result, you can now bootstrap Zig's stage1 compiler from anywhere: https://t.co/jUYoXDdvjY」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Linker is not a very complicated program IMO, but it is hard to develop because of a few reasons: - lack of documentation - debugging a program-generating program is generally hard」 / Twitter
高速なリンカー「mold 1.0」が公開 | OSDN Magazine
コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み - ログミーTech
lldを凌駕する高速な新リンカmold

@fadis_

Fadisさんのツイート: "本日最後のセッション、 @rui314 さんの「 lld: 速くてシンプルなリンカ」が始まります #kernelvm"
Fadisさんのツイート: "lld: ELF、COFF、March-Oを喋る事ができるリンカ #kernelvm"
Fadisさんのツイート: "GPL3のbinutilsを使いたく無いBSDな人たちがシステム丸ごとlldでリンクできるようにしようと頑張っているらしい #kernelvm"
Fadisさんのツイート: "lldでWebAssemblyのリンクも行う事ができる!! #kernelvm"
Fadisさんのツイート: "lldの目標: GNUリンカよりシンプル シンプルなら簡単に理解でき、hackableにできる #kernelvm"
Fadisさんのツイート: "lldはGNU ldの為のリンカスクリプトをできるだけそのまま使えるようにしているが、当のGNU ldも従来のldとgoldでリンカスクリプトの解釈が違っていて厳密な互換はそもそも取れそうにない、と #kernelvm"
Fadisさんのツイート: "プログラムのサイズにもよるがlldはgoldより2倍から5倍速い #kernelvm"
Fadisさんのツイート: "「2ソケット20コア40スレッドのXeonでリンカのパフォーマンスを比較」 「パワフル過ぎでは」 #kernelvm"
Fadisさんのツイート: "新規に作ったリンカである為正確に何が速度の差の決め手になっているかは作者も分かっていないが、問題に対して素直なデータ構造で実装すれば速さはついてくる、というポリシーに基づいて開発している、と #kernelvm"
Fadisさんのツイート: "C++では名前のマングリングが行われる為シンボル名がとても長くなる傾向がある → これが並んだシンボルテーブルの参照は遅い → C++で速いリンカを作るためにはシンボルテーブルの参照を可能な限り減らす必要がある #kernelvm"
Fadisさんのツイート: "リンカをマルチスレッド化する際には出力が決定論的になる(スレッドがどう実行されたかによって順番が違っていても良い情報が入れ替わったりしない)ように注意して実装する必要がある、と #kernelvm"
Fadisさんのツイート: "リンカの実行時間のほとんどは入力ファイルを出力ファイルに置き直す時間と、大量の文字列のマージでと、シンボル名解決で、このうちマルチスレッド化が難しいシンボル名解決以外をマルチスレッド化する #kernelvm"
Fadisさんのツイート: "文字列のマージは従来1つのハッシュテーブルを使っていたが、複数のスレッドが挿入すると順序が決定論的にならない → スレッドごとにハッシュテーブルを作って、全てのハッシュテーブルに対して挿入したい値の存在のチェックをする #kernelvm"
Fadisさんのツイート: "lldとgoldのコードの複雑さをコードの長さで比較しようにも、goldがアーキテクチャ毎にコピペプログラミングをしていてコード量が爆発していてあまり良い指標にならない、と #kernelvm"
Fadisさんのツイート: "clangがきっかけとなってC++のエラーメッセージは随分読みやすくなった → リンカのエラーメッセージも読みやすくしよう、ということでlldはDWARFの情報を呼んで人間に優しいエラーメッセージを出している #kernelvm"
Fadisさんのツイート: "いかに短いC++のコードから膨大なエラーを出すかを競うコンテスト https://t.co/6EbOnBTHaY #kernelvm"
Fadisさんのツイート: "lldにおけるLTOでは、lld自体に複雑な最適化は実装せず、リンクが完了したネイティブバイナリの代わりにLLVM IRを吐き出し、LLVMの最適化機能に最適化を丸投げする #kernelvm"
Fadisさんのツイート: "lldの実装綺麗だなぁ"
Fadisさんのツイート: "lldはホスト依存の暗黙のパラメータを持たない(リンカを呼ぶコンパイラはどうせ必要な情報を全て渡してくるのでリンカ自体はどこで動かしても同じ動きをするように実装する) #kernelvm"
Fadisさんのツイート: "質問者「BSDがGPL3を避けてlldを試みているということはMacもそうなのか」 → 「MacはMach-Oを吐くために独自のリンカを使っているためlldを必要とはしていない」 #kernelvm"
Fadisさんのツイート: "make -jしたビルドが最後のリンクで詰まってマルチコアで性能が伸び悩むの、極めて手軽にアムダール則を体感するヤツだ"
Fadisさんのツイート: "C++、シンボル名が超長いから「シンボルを解決するための文字列比較にやたら時間がかかる」事を想定していないリンカでリンクすると、リンク時間もエグくなりがち"
FadisさんはTwitterを使っています 「linuxカーネルは攻撃者が狙った関数に飛びにくいように関数にASLRが出来るが、カーネルの.textは1つしかないためセクション単位で位置が変わってもアドレスがバレやすい。そこで関数毎にセクションを分けてカーネルのASLRの効果を高めようという提案がなされているらしい https://t.co/RYaxOpE4T8」 / Twitter
FadisさんはTwitterを使っています 「C++、カジュアルに型で計算する言語なので、型のテンプレート引数に膨大な情報が載りがちで、それをマングルすると 長さが100kBを超えるシンボル名 が生み出されて、それを文字列比較するリンクがビルド時間全体の1/3に達したり、デバッグ情報が4GBを超えてRPMに入らなくなったりしがち」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "#ifdef 等によって、機能差を持つバリエーションを作るのではなく、ビルド後のバイナリ内にパッチを当てることで、バリエーションを作るテスト。 (一部ユーザ向けに、slack転送を無効化したIPMsgを用意する)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "有効化するかの条件分岐にnopを入れるという話ではなくて、volatile int64 flag=シグネチャ値; if (flag) というコードを書いた後、バイナリからシグネチャ値を見つけて0にする、という感じ。 (万一偶数のバッティング時はシグネチャ値を変更)"
鯉江さんのツイート: "config.cのようなものにflagをあつめてリンク時につけかえるのではだめ? volatileとなっているところをみるとオプティマイザが頑張ってif(flag)を消してしまう可能性がある?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "volatileを入れているのは、最適化オプションで「プログラム全体の最適化」「リンク時にコード生成」という機能があって、それらを有効にしているとプログラムを1ソースで書いたのに近い最適化が施されるはずなので、その対策です。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、flagはグローバル変数として定義して、複数ソースから参照しています。 (その前提を書いていないと前説明が意味不明だったかも)… "
The SQLite Amalgamation
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、sqliteは、ビルド用にソース群を一つの.cに変換して、強力な最適化を促すという「Amalgamation」というテクニックを使っていて驚いた記憶。 https://t.co/kg6HB6pz3n… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごく一部で欲しい組織があるかもしれないので、Slack等への外部転送無効化バージョンを追加しておいた。 https://t.co/wDjue1IdtK"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、ベース版バイナリにパッチを当てる形で作成。 そのため、pdbやcodファイルは、ベース版のみ保持すればよい形に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「昔は動的リンクで.soを交換すればlibのバグは修正可能。しかし現在はsymbolがversioningされ特定のlibのバイナリに依存」 昔は、DLLがupdateされて既存アプリが動かなくなる=DLL地獄、と言われていた。上記対応(WinだとSxS)で、DLL地獄が解消されたが、同時にDLL更新メリットも消滅した形。… https://t.co/SCKOMkizWI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、SxS導入以降は IPMsg/FastCopyは共に静的リンクでリリースしていたりする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsg/FastCopyは、GUI関係のライブラリ(MFCやQtなど)って、使ってないんですよね。(GDI APIを直接呼んでいます) 静的リンクしているのはC/C++の標準ラインタイムだけですね。… "
SODA Noriyukiさんのツイート: "なるほど、それなら納得です。 Plan 9の場合は gdi32.dll とか user32.dll 相当のものまで静的リンクしてしまい、異なるバイナリで共有して利用されるのはカーネル部分だけってことになるので、さらに大胆な話だと言えると思います。(まあ太古のUNIXはみんなそうだったんですが)… https://t.co/62NThqcbgv"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 ちなみにIPMsg/FastCopyが静的リンク化したのは、VistaのSxSが導入 + VS2005以降crt系バージョン確認が厳格になり、ビルド時と完全同一crtがユーザ環境にも必須になったため、というのが大きかったです。 (この制限はVS2010以降は緩和されましたが)… https://t.co/pG4I7EOB9g"
きしもとさんのツイート: "「バージョンを選択する方法」次第のように思うのですが。バージョン番号 x.y.z の、z については大は小を兼ねる、といったようにして、「特定のlibのバイナリに依存」はしないようにするのが普通とか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにそうですね。 あと、WinSxSだと、Vista時代にWinUpdate程度のcrtのわずかなバージョン違いでもDLLロード拒否を食らった覚えがあるので、OSによる許容ポリシーの違いがあるかもしれません。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確に思い出すと、開発環境VistaをWinUpdateすると、利用者側VistaもWinUpdateしないと、DLL版が動作しなくなる、という話だったと思う。 (もしくは Update版の頒布用crtを別途インストールしてもらうか)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VC++ で .lib を指定した時に使っていない .o が取り込まれる不思議。 しかもリンク時最適化を有効にしているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「通常の静的リンクだと、使っている関数を含む .o だけ取り込まれるはず。 さらにリンク時最適化有効だと、.oの中で利用関数と変数以外は削除、と理解しているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「むむ、関数単位の依存関係は無かったが、.o単位だと隠れた依存関係があった。 プログラム全体最適化を有効にしている場合は、関数単位の依存関係で見て欲しかった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用メモ。 こういう参照関係のときにも、(呼ばれない)mod1_f2() とそれが参照している、mod2/mod3 がリンクされてしまう、という話。 mod1_f1 と mod1_f2 を別ファイルとし、mod1_static をどちらかに寄せて、もう片方は extern参照すれば解決(ただしmod間参照なのでstaticは外す必要) https://t.co/yIYhi6eIZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大昔、同じoだがaだかを二度指定するしか無かった時に、負けた感があった、、、」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@shirouzu あるある。ライブラリ間で循環参照的なのがあったりすると必要になるんですよねえ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「暗記するのは確かに無駄なんだけど、リンカーがどうやってライブラリに含まれるオブジェクトファイルを拾っていくかを想像すると、暗記するまでもなく(昔のヘボい計算機リソースで簡単にできる実装としては)当たり前の動作って感じになります。」 / Twitter
𝒯𝒶𝓉𝓈𝓊ℴ 𝒮ℯ𝓀𝒾𝓃ℯさんはTwitterを使っています: 「確かにちょっとはまった記憶があって、とりあえず 「CFLAGS と LDFLAGS はちゃんと分けて書かないと駄目」ぐらいに覚えてた。 また一つムダ知識が(でも多分、すぐ忘れるw)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「おお、gccのオプションって順番に意味があったのか・・・。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「gcc "CFLAGS" source "LDFLAGS" output みたいになっているようだ。-lcapをCFLAGSに入れたら無視された。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これはgccというよりはベル研時代からの cc ドライバや ld の仕様ですね。cc に渡した順番で (.c が .o に変換されて) 引数が ld に渡り、ld は引数を先頭から解釈していき、ライブラリの中からリンクするオブジェクトを選択するのは、そのライブラリ引数出現時点で、未解決のシンボルのみなので…」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat というわけでライブラリを先頭に書くと、その時点では未解決シンボルが存在しないので、そのライブラリ中のオブジェクトファイルは決して選択されないというハメに」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@n_soda これは酷い仕様ですね・・・。必要のない後方互換性は残すことないのに・・・。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これは UNIX のリンカーに特有ってわけじゃなくて、伝統的なリンカーはだいたいこういう動作だったと思います。CP/M の L80 とか、MS-DOS の link.exe もこうだったような。」 / Twitter
fjのYog教祖様さんはTwitterを使っています: 「@mhiramat @n_soda いや、そうしないと「未解決なシンボル」が無くなるのが「全部のライブラリをリンクした時」(不要なライブラリが無くなってしまう、と言う意味)になる。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@fjs_kyousosama @mhiramat 現代なら計算機が強力なので、未解決シンボルが残ってたら引数を再度頭から舐めるっていう動作にすることは可能は可能だと思います。 とはいえ超大規模プログラムだと、現代でもリンクにかかる時間が馬鹿にならないらしい(だからこそ @rui314 さんのリンカーが生まれた)ので、やっぱダメかも?」 / Twitter

@k_takata

K.Takataさんのツイート: "VCはずいぶん昔から、使っていない関数をリンク時に除外してファイルサイズを小さくする機能があるが、gccには無いのだろうかと思っていたら、あったようだ。 https://t.co/fYP9rIR2bn コンパイル時に -fdata-sections -ffunction-sections を指定し、リンク時に -Wl,--gc-sections を指定する。"
How to remove unused C/C++ symbols with GCC and ld? - Stack Overflow
K.Takataさんのツイート: "ただ、MinGWでは使えないという話もあって調べてみると、--gc-sectionsがPE形式で使えるようになったのはbinutils 2.25かららしい。 https://t.co/8Imo5XHSvm さらにコンパイル時に -fno-asynchronous-unwind-tables も指定する必要があるらしい。"
11539 – ld --gc-sections should work for PE-COFF on MinGW
K.Takataさんのツイート: "で、wxGoをビルドするのに -ffunction-sections を指定してサイズを小さくできないか試してみたところ、too many sections (70137) というエラーになってしまった。従来のCOFF形式オブジェクトファイルだとセクション数は16bitで管理しており、それを超えてしまったらしい。"
K.Takataさんのツイート: "コンパイル時に -Wa,-mbig-obj を指定すると、big-obj形式 https://t.co/5GwXmQGy2x が使われて、セクション数の制限が事実上無くなるらしいのだが、cgoがbig-obj形式をサポートしておらず、エラーになってしまった。 cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE object"

@kazuho

Kazuho Okuさんのツイート: "実際にコンパイルさせてみて成功したらオッケーっていうダックタイピング万歳なautoconfなんやから、リンカの引数も全部試してみたらええねん :-p"
Kazuho Okuさんのツイート: "コンパイラ間の競争が激しくなって __builtin_feature みたいなフィーチャーディテクション機能も導入されたし、リンカもはやくそうなってほしい感ある"
Kazuho Okuさんのツイート: "「シンボル名のハッシュ値計算するのめんどくさいからシンボル名全部sha1とかしときたい」www #spkai"
Kazuho Okuさんのツイート: "未使用の関数やグローバル変数はリンク時になかったことにできると思ってたけど、 ``` void (*foo)(void) = myfunc; ``` みたいなコードがある場合はmyfuncを落とすのが特に難しくなったりするのかなぁ(fooをmyfuncに初期化するためのコードが生成され、それがmyfuncを参照しちゃう的な)"

@liva_jy

Livaさんのツイート: "セクションの開始位置はアラインメントしよう、という知見を得た。 #liva_notebook"
Livaさんのツイート: "きちんとアラインされてない場合、リンク時に上手い具合にずらしてしまう事があって、下手なリンカスクリプトを書いていると、リンカが解決した関数のアドレスと、実際にロードされたアドレスがずれてしまう #liva_notebook"

hikaliumさんのツイート: "なるほど!LLVMで挙動を見てみたところ、翻訳時に既知でないラベル(後方のラベル参照等)は未解決のまま残されるのね。(つまり常にrel32として場所はとられる。) で、リンカがあとでそれを埋めてくれると。なんとまあ。 (まだまだ勉強が足りないというお気持ちになった。こういう発見が楽しい。)… https://t.co/u1OU8WNMCS"
Rockridgeさんのツイート: "Fx63:clang-clを用いたWindows版のビルドにおいてThinLTOとPGOが有効化。64bit版のSpeedometerスコアがMSVC比で6%アップした。参照:https://t.co/ipbr5LRbF0 … https://t.co/euttRNA8Ez"
10/27,28はOSC Tokyoさんのツイート: "僕のLDが壊れている.undefinedなシンボル(operator new)に対してエラーにならない.自分で宣言した関数の場合はエラーになるのに."
Nerry@さんのツイート: "gnu-efi使ってた時ldが未解決シンボルでエラーにならない挙動すごく困った… "
10/27,28はOSC Tokyoさんのツイート: "同じく悩んでる人がいるとは!… "
しんやさん@檸檬堂友の会さんはTwitterを使っています: 「C言語にてテスト時に便利な技術 これができればテストマスターだ! インターポジショニング →既存関数を自由に置き換える Weakシンボル →テスト時のみに関数をリンクさせたい時 objcopy →シンボルを置き換える、最強」 / Twitter
インターポジショニング - Google 検索
weakシンボル - Google 検索
DrumatoさんはTwitterを使っています 「もし読み込んだセクションのオフセット+サイズがセクションのオフセットになっていないとき, 間にパディングがあると考えてセクションヘッダを挿入する,みたいな実装で対応しようと思う」 / Twitter
DrumatoさんはTwitterを使っています 「gccの吐くバイナリ,どこのセクションにも所属していないパディングが沢山存在するのだけれど, これ普通にそういう意図のセクションを作って欲しい. これ凄い困るなあ,どうしよう.」 / Twitter
とみながたけひろさんはTwitterを使っています 「ロードアドレス先頭からのオフセットからシンボル付きバイナリ見るかな。今どきのカーネルやハイパバイザ、aslrあるしロード時に動的書き換えするしモジュール構成取ってたりもするので、専用デバッグ機構がないと基本辛いが、リリース版に入れると今度はセキュリティホールになったりする。つらい」 / Twitter
とみながたけひろさんはTwitterを使っています 「落ちたところのバイナリ並び見て似た命令をシンボル付きelfから探す、が見つからず あ、これロード時とか初期化終わったところで書き換えられるのか、みたいな。Linux頑張りすぎやとおもう…」 / Twitter

c - different type variables with same identifier linked together - Stack Overflow
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:リンカが行うことのまとめ: ・与えられたファイルをすべて読む ・シンボルを解決 ・リロケーションテーブルを読んでPLTやGOTを作る ・出力のレイアウトを決める ・ #kernelvm #kernelvm_tw」 / Twitter
プロセス、実行形式、リンク
A method of machine code translation to intermediate representation | IEEE Conference Publication | IEEE Xplore
リストとマップファイルの生成
クロス・リファレンス情報 | CS+ V4.01.00
マップ情報を出力する | CS+ V8.02.00
Katsuhiro SuzukiさんはTwitterを使っています 「OSもどきを作ってたら.bssのクリアで死んだ。何かと思ったら、 ・スタック領域を.bssにおいてた ・起動時memsetで.bssごとスタックを0クリア ・memsetのret命令で0x00000000に戻る ・Illegal Instruction だから.bssはcallなしでクリアする派と、スタックは初期化しない領域に置く派がいるのか……。」 / Twitter

左再帰

6.pdf
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
4.pdf
compiler_04.pdf
左再帰 - Wikipedia
再帰下降構文解析の間接左再帰の除去方法について具体的な方法... - Yahoo!知恵袋
chainl の正体 - ksmakotoのhatenadiary

Advent Calendar

その他

Rui Ueyamaさんのツイート: "Forth書いたこともWindowsバイナリ手書きしたこともコンパイラのセルフホストしたこともあるけど、この記事すごくよいのでは? 1日ではできないだろうけど腰を据えて読めば。 https://t.co/sCr5wN2uZZ"
一日でできるセルフホスティングForthコンパイラ - Qiita
Shiro Kawaiさんのツイート: "うん、とても良い。セルフホストで立ち上げるの楽しいんで自分も記事書いてみたいと思うんだけどいろいろ細かい話がたくさんあって全部説明しつつ短い記事にまとめるのがすごく難しい。なのでこんだけまとめて書けるのすごい。 https://t.co/ZDjB0sbM3A"
PyPy Advent Calendar 2011 まとめ - pypy-ja
ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita
MPI Advent Calendar 2017 - Adventar
AVX-512 Advent Calendar 2014 - Qiita
AVX/AVX2/AVX512のカレンダー | Advent Calendar 2021 - Qiita
Emacs Advent Calendar 2018 - Qiita
セキュリティツール系 Advent Calendar 2018 - Adventar
Brainf*ck Advent Calendar 2019 - Adventar
Ruby 2.7 Advent Calendar 2019 - Qiita
Elixir Advent Calendar 2019 - Qiita
自作言語 Advent Calendar 2019 - Qiita
意味論 Advent Calendar 2016 - Adventar
型 Advent Calendar 2019 - Qiita
Idris Advent Calendar 2020 - Qiita
型理論のカレンダー | Advent Calendar 2021 - Qiita
Garbage Collection Advent Calendar 2012 - Adventar
Narihiro Nakamura’s Presentations on SlideShare
Rustのカレンダー | Advent Calendar 2021 - Qiita
Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita
Smalltalkのカレンダー | Advent Calendar 2021 - Qiita
C++のカレンダー | Advent Calendar 2021 - Qiita

Theorem Prover

Theorem Prover Advent Calendar 2013 - Qiita
Theorem Prover Advent Calendar 2014 - Qiita
Theorem Prover Advent Calendar 2015 - Qiita
Theorem Prover Advent Calendar 2016 - Qiita
Theorem Prover Advent Calendar 2017 - Qiita

ML

ML Advent Calendar 2014 - Qiita
ML Advent Calendar 2015 - Adventar
ML Advent Calendar 2016 - Qiita
ML Advent Calendar 2017 - Adventar
ML Advent Calendar 2020 - Qiita
ML (Meta Languages)のカレンダー | Advent Calendar 2021 - Qiita

アルゴリズム

グラフ探索アルゴリズム Advent Calendar 2015 - Qiita
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列アルゴリズム Advent Calendar 2017 - Qiita
データ構造とアルゴリズム Advent Calendar 2018 - Qiita
データ構造とアルゴリズム #2 Advent Calendar 2018 - Qiita
データ構造とアルゴリズム Advent Calendar 2019 - Qiita
データ構造とアルゴリズム Advent Calendar 2020 - Qiita
データ構造とアルゴリズム Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita

WebAssembly

WebAssembly Advent Calendar 2017 - Qiita
WebAssembly Advent Calendar 2018 - Adventar
WebAssembly Advent Calendar 2018 - Qiita
WebAssembly Advent Calendar 2019 - Qiita
WebAssembly Advent Calendar 2020 - Adventar
WebAssembly Advent Calendar 2020 - Qiita

C 言語

C言語 Advent Calendar 2015 - Qiita
C言語 Advent Calendar 2016 - Qiita
C言語 Advent Calendar 2017 - Qiita
C言語 Advent Calendar 2018 - Qiita
C言語 Advent Calendar 2019 - Qiita

Lisp

Clojure Advent Calendar 2018 - Qiita
Clojure Advent Calendar 2019 - Qiita
Clojure Advent Calendar 2020 - Qiita
Lisp SETF Advent Calendar 2018 - Qiita
Lisp メソッドコンビネーション Advent Calendar 2018 - Qiita
lisp Advent Calendar 2018 - Qiita
Lisp Advent Calendar 2019 - Qiita
Lisp Advent Calendar 2020 - Qiita
Lispのカレンダー | Advent Calendar 2021 - Qiita

テスト

ソフトウェアテスト Advent Calendar 2016 - Qiita
ソフトウェアテスト Advent Calendar 2017 - Qiita
ソフトウェアテスト Advent Calendar 2018 - Qiita
ソフトウェアテスト Advent Calendar 2019 - Qiita
ソフトウェアテスト Advent Calendar 2020 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2018 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2019 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita

言語実装 Advent Calendar 2015 - Qiita
言語実装 Advent Calendar 2016 - Qiita
言語実装 Advent Calendar 2017 - Qiita
言語実装 Advent Calendar 2018 - Qiita
言語実装 Advent Calendar 2019 - Qiita
言語実装 Advent Calendar 2020 - Qiita
言語実装のカレンダー | Advent Calendar 2021 - Qiita

GUI

情報管理の概念

Kazuho OkuさんはTwitterを使っています 「ディレクトリ(木構造)により様々な種類の情報をまとめて管理するってアプローチ、別に正しい解でもなんでもないもんなぁ。 インターネットでもディレクトリサービス(Yahoo!)は検索(Google)に駆逐されたし、ウェブ上のサービスは、サービス(アプリ)にアクセスしてリスト+ラベル+検索で情報に...」 / Twitter
YAMADA Tatsushi 山田達司さんはTwitterを使っています 「Palmが受け入れられた理由の一つはユーザーに対してファイルやフォルダーという概念を全く見せなかったからだと思ってます。」 / Twitter
Munechika NishidaさんはTwitterを使っています 「一見「なるほど」と思うのだけれど、違うと思っている。実際には、PC初心者にとって常にハードルなのが「ファイルとフォルダ」なので、単にそれらの概念は「覚えないとわからない」という話ではないか、と:「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE https://t.co/FCbwIrXYEf」 / Twitter
「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE
崎村夏彦『デジタルアイデンティティ』日経BPより発売中さんはTwitterを使っています 「@hackerdudesan これはスマホにも踏襲されてますよね。 ある一定以上に情報量が増えると途端に不便になるけど、そこまでは便利。」 / Twitter
YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@_nat ですね。タグや検索をうまく使うスキルが必要ですね。」 / Twitter
YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@kazuho ですよねえ。システムとしてどういった形態が正解なのかと、利用者にどう意識させるかでも違った方法が必要そうですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アクセスするという Palm やスマホと同じモデルですよね。あるアプリのデータを他の(自作の)アプリに読み込ませるみたいな使い方をやらないのなら、ディレクトリなんて要らないんじゃないの」 / Twitter
Kazuho OkuさんはTwitterを使っています 「つまり、データフォーマットと、データを扱いアプリケーションを分割可能な世界というのが、どれだけ必要なのか、という話。分割可能であったほうが進化しやすいだろうというのは言えるんだろうけど。」 / Twitter

セッション管理

Restart Manager

Windows 10プレビュー版、アプリの再起動設定が簡単に - PC Watch
スタート画面の[電源]メニューに新オプション ~プレビュー版Windows 10 Build 21359 - 窓の杜
「Windows 10 20H1」Build 18965が“Fast”リングに ~OS再起動後にアプリを再開するオプションを新設 - 窓の杜
Windows 10 バージョン1709からのシャットダウン/再起動の新仕様、どうしよう?:その知識、ホントに正しい? Windowsにまつわる都市伝説(109)(1/2 ページ) - @IT
RegisterApplicationRestart function (winbase.h) - Win32 apps | Microsoft Docs
c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter
デスクトップアプリのリスタートマネージャー5(テストツール) – nishy software (ja)
Windows Vista のリスタート/リカバリ処理の開発 – tsmatz
Masaru Iritaniさんのツイート: "#WindowsInsiders Skip Ahead ビルド 18855 ではメモ帳で保存し忘れた内容が再起動後に自動で復元されるようです 📝… "
kkamegawaさんのツイート: "Restart ManagerはVistaがリリースされた時に標準アクセサリー全部サポートしているべきだったと今でも思ってます…そうすればみんな使ってくれたかもしれないのにーと。… "
Masaru Iritaniさんのツイート: "元々は Vista の新機能だったのですね。ありがとうございます、勉強になりました。… "

オブザーバビリティ

オブザーバビリティとは何か?まずはその概念を理解しよう | DevOps Hub | SB C&S
オブザーバビリティ(可観測性)とは|定義、実現方法、組織にもたらすメリット|Splunk | Splunk
モニタリングとオブザーバビリティ | AWS マネジメントとガバナンス
オブザーバビリティ(可観測性)入門ガイド
オブザーバビリティとモニタリングの違い | AppDynamics | AppDynamics
オブザーバビリティ(可観測性)がなぜ必要だと考えるのか - YAMAGUCHI::weblog
Elasticオブザーバビリティ | Elastic
ASCII.jp:中堅中小企業にも「オブザーバビリティの民主化」を! New Relic
リモート運用・監視サービス (オブザーバビリティサポート)|システム運用|サービス&ソリューション|ITシステム運用のCTCシステムマネジメント株式会社(CTCS)

ULID

がくぞさんはTwitterを使っています 「わかりみ。連番にしたいという要件だけなら素直にULID使う方が楽そう。 それでもDB側での採番を使いたいなら Entity を Intersection Types で表現しちゃう方が ID をrwap/unwrapするオーバーヘッドも無くせるし諸々取り回し良さそうな気もします?」 / Twitter
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「このへん色々アレしたくなる気持ちめちゃくちゃ分かるんだけど、何やかんや究極的にはidに連番性を期待する仕様を捨てさせる方向で動いた方が良いみたいな所感。あるいはULID。 https://t.co/3rnpr2d9Fq」 / Twitter
EntityのID発番についてTypeScriptで考える
がくぞさんはTwitterを使っています 「こんないめっじ。必要あれば isRegistered みたいな user-defined type guard でも作ればよし https://t.co/DMFj2IAuux」 / Twitter
がくぞさんはTwitterを使っています 「という訳でコメントした https://t.co/3c2EtLRe8y」 / Twitter
がくぞさんはTwitterを使っています 「だたこの方式の問題点は const foo: Message = { ...略 } const bar: UnregisteredMessage = foo これが通ってしまう事」 / Twitter
きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz type Entity = { id: mumber, 〜} を先に定義して type UnregistedEntity = Pick&lt;Entity, Exclude&lt;keyof Entity, 'id'&gt;&gt; とした方がEntityの型定義が正しい(Entityはidを持つ)かなぁと思いました」 / Twitter
がくぞさんはTwitterを使っています 「@curelemonade2 たしかに~」 / Twitter
ulid/spec: The canonical spec for ulid
【WEB】UUIDとULIDの違いって?(’21 6月更新) - 小さなことからこつこつと。
ULID - shimojubox
ULID生成器をScalaで実装してみた - Chatwork Creator's Note
誕生日の問題とユニークな識別子
Introduction to {ulid}
ulid-py · PyPI
ULID の順序性を確保するには|瀬戸口光宏|note
ent ( entgo.io/ent ) で ULID を使う
Shiro KawaiさんはTwitterを使っています 「ULID https://t.co/Otn7Hj4gjU の使い勝手が良さげなのでR7RS Scheme実装書いた。UUIDと同じ128bitだけど文字列にしたとき26文字で生成順にソートできる https://t.co/Qsm52cC8m0」 / Twitter
Kazuho OkuさんはTwitterを使っています 「うーん、セキュリティ面気にするなら、レコード生成日時がミリ秒単位で分かるULIDは下手すると連番よりもヤバいケースがあるので注意が必要だと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「公知な識別子にタイムスタンプ入れる問題、たとえばツイートがULIDで識別されるなら、プロテクテッドな人のツイートでも、いつツイートしたか、ツイートのリンクが手に入った段階で分かってしまう」 / Twitter
伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「結論から言うと外から見えるIDを連番にしないほうが良い。理由は記事冒頭にもある通りスクレイピング問題やセキュリティの問題。 かといってUUIDにもしないほうがいい。理由はMySQLのインデックス実装上の問題。レコード数が増えると顕著にパフォーマンスが低下する。代替案はULID。」 / Twitter
dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「何が悪いの? https://t.co/Sfa8X2qE3k」 / Twitter
idをautoincrementして何が悪いの?
伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「なおMySQLの場合、AUTO INCREMENTの発番実装はわりとチートをしており、パフォーマンスはすこぶる良い代わりに欠番が発生する可能性がある。この点が問題にならず、かつ内部的にしか使わないならAUTO INCREMENTでも問題ない。」 / Twitter
Naoki KuzumiさんはTwitterを使っています 「@ito_yusaku 早くUUIDv6,v7が正式に決まってどんな言語でもライブラリの精査とかの手間なく簡単に扱えるようになってほしいですね……」 / Twitter
大山ゆっけ(蘇る鈴木佑輔)さんはTwitterを使っています 「@ito_yusaku @miu_hiro_ UUIDまわり以外は記事に正解が書いてあるのに乗っ取り引用RTの方がRTされまくっててかわいそう。」 / Twitter

ID

Yoshimasa NiwaさんはTwitterを使っています 「ああ、そういえば、Snowflake っていう64ビットの分散ID生成器があって、某サービスのIDで使われているんですよ。Sony の実装の Sonyflake とかいろいろあるんですけどね。 https://t.co/PI0K5mcsQo https://t.co/y40w7mVgnP」 / Twitter
Snowflake ID - Wikipedia
idをautoincrementして何が悪いの?
Yoshimasa NiwaさんはTwitterを使っています 「で、そのIDの生成規則から、未来に生成されるIDの予測に成功した人いたんですよ。 https://t.co/hSBrakAJ6B」 / Twitter
Predicting Twitter IDs and self-referential Tweets
Yoshimasa NiwaさんはTwitterを使っています 「しかも、それで無限再帰する参照が作られたんですよね。まあ、これなんですけどね。 https://t.co/e84unOuwhy」 / Twitter
fujiwaraさんはTwitterを使っています 「システム内部のID(サロゲートキー)をauto incrementでやるかどうかとそのIDを外に露出させるかは別問題で、そもそも内部のIDは基本外部から使うAPIとして出さないほうがいいと思う」 / Twitter
fujiwaraさんはTwitterを使っています 「ちなみにこれは外部にintのIDを一切晒していなかったためにできた芸当 https://t.co/cpDX4CkGbJ」 / Twitter
Amazon Auroraを活用したソーシャルゲームの複数ワールドデータ統合 / AWS Dev Day Online Japan - Speaker Deck
Gill BatesさんはTwitterを使っています 「@fujiwara これいつも悩みます、参考にさせていただきます!」 / Twitter

GIGAZINE

世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
なぜ複雑なシステムでは障害が発生しやすいのか - GIGAZINE

infoQ

マイクロサービスの次に来るものは何か? Biligin Ibryam氏の提唱するマルチランタイム・マイクロサービス - QCon Londonの講演より
Netflix Presents Telltale、アプリケーションヘルスモニタリングツール
Slackが新しいロール管理アーキテクチャを詳しく説明
HashiCorp Vault 1.8に診断コマンド、キー管理シークレットエンジン、および有効期限マネージャを追加
HashiCorpは、新しいセキュリティワークフローを使用してHCPPackerをGAに移行します
高品質なアラートで開発者のオンコールを軽減する

blog

UUID version 6の提案仕様 - ASnoKaze blog
Crash/Deprecation/Intervention Reporting について - ASnoKaze blog
時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
AndroidアプリにおけるUIの状態保存と復元について調べてみた | Money Forward Engineers' Blog
Kubernetesクラスタ上で動かすSidekiqに対してヘルスチェックを導入した話 | Money Forward Engineers' Blog
分析用ログデータに対する品質保証としての異常検知 - クックパッド開発者ブログ
IOTS2021でゲーム理論のシャープレイ値を用いたシステム異常の原因診断手法について発表しました – さくらインターネット研究所

PBT_APMPOWERSTATUSCHANGE イベント (WinUser.h) - Win32 apps | Microsoft Docs
SYSTEM_POWER_STATUS (winbase.h) - Win32 apps | Microsoft Docs
ウェブサイトがJavaScriptとCookieなしで個人を追跡する方法が一発で理解できる「No-JavaScript fingerprinting」 - GIGAZINE
「推測不可能性」だけで安心?セキュアなURL生成について考える - Flatt Security Blog
MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
なかのん&マジックさんのツイート: "秀丸、昔のアプリっぽく、実にOS自体のクラッシュからの復旧が弱いなぁ……"
なかのん&マジックさんのツイート: "まあ、現職のままで新しいアプリをがっつり趣味で開発するってのは無いけど、やるとしたら、定期的にバックグラウンドのスレッドでセッション情報を書き出し続けるように基本的なところで設計するかな。"
なかのん&マジックさんのツイート: "昔じゃ考えられへんけど。"
Kazutaka MatsudaさんはTwitterを使っています 「OSが再起動のためアプリケーションを閉じるよう催促 → restore sessionできると思い沢山のタブを開いていたFirefoxのウィンドウを閉じる → 実はもう一個ウィンドウが生きていた → 再起動後 restore sessionするも残っていたウィンドウのタブしかrestoreされず……」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@KazutakaMatsuda Firefoxなら複数世代のバックアップが残っているので、セッションを失ってからの起動回数が少なければ復活できる可能性が高いと思います。以下をどうぞ: https://t.co/7NoJ9aDx5v」 / Twitter
Firefoxで開いているタブの復元(ツリー型タブのツリー構造も) | サクエのテック備忘録
ミックさんはTwitterを使っています 「アメリカの物流は超低品質なのでAmazonの荷が届かないことは日常茶飯事だが、感心するのはここで決して「追跡調査」という異常系に踏み込まないこと。「届いてない」ボタンを押すと速攻で同じ荷が発送される。異常系を正常系で回収するオペレーションの方がTCOが低くスケーラビリティがあるのだろう。」 / Twitter
“PCの調子がおかしいな”と感じたときに役立つ「信頼性モニター」 - 窓の杜
Rockridgeさんのツイート: "Fx62:ハングをモニタリングするためのスレッドを整理することで、消費メモリの増加を防ぐとともにパフォーマンスの低下を抑制した。 / “1448040 - clean up hang monitor threads” https://t.co/Neaj0sLEC2"
2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
mattnさんはTwitterを使っています 「机上では1550京年だけど、衝突判定するのにも時間が掛かるので、衝突はするかもだけど判定はもっと時間掛かりそう。」 / Twitter
UUIDを重複させるにはどれだけ時間がかかるのか試してみた
OdashiさんはTwitterを使っています 「UUIDはほぼ衝突しないから安全というの、UUIDの仕様の外でいくらでも衝突に繋がるバグを埋め込まれるので、実用的には特段エラーのチェックから逃げられるわけではない」 / Twitter
OdashiさんはTwitterを使っています 「チェック自体は必要だがダブるケースについての常設のワークフローを組む必要はないくらいのアレ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい時刻ベースのUUID形式(v6,v7,v8)提案。データベースのキーとして使える。どれも128ビットで長さは変わらず、一意ではあるが (バイナリ、テキスト表現どちらも) ソートしたときに時系列順になるように設計されている。 https://t.co/xj2xdhC8VQ」 / Twitter
draft-peabody-dispatch-new-uuid-format-01
チェシャ猫さんはTwitterを使っています 「ElasticQuota: 最初から Quota を決めてしまうと Namespace 間で融通しづらいので、割り当てる最大量と最小量に幅を持たせて CRD で定義。 #k8sjp」 / Twitter
チェシャ猫さんはTwitterを使っています 「Quota は融通が効かない、という話だと PFN 製の kube-throttler とも似ている。これは Quota に引っかかったときにエラーを返すのではなく Pending に留める。 #k8sjp https://t.co/j7YtkY1Vks」 / Twitter
everpeace/kube-throttler: throttling your pods in kubernetes cluster.
10秒で衝突するUUIDの作り方 - Speaker Deck
第707回 シンプルでおしゃれなモニタリングツールUptime Kuma:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

シリアライザ・グラフ

GraphQL・XSLT・グラフのマッチ/差分

infoQ

NetflixがDomain Graph Service Frameworkをオープンソース化: Spring BootのGraphQL
Netflixは迅速なアプリケーション開発のためにGraphQLマイクロサービスを擁した
Netflixは大規模なGraphQLフェデレーションを実装
GraphQLデータフェデレーションを実装したHasura Remote Joins
PayPalがGraphQLを採用し、開発者の生産性向上を実現
Mock Service Workerライブラリにより、復元力のあるRESTおよびGraphQL APIテストが可能に
TypeScript * GraphQLのバックエンド設計プラクティス

Twitter

通信・ORM

FUJI GoroさんはTwitterを使っています 「これはむしろ逆だと思っていて、「サーバーサイドとクライアントサイドを協調しやすくして、クライアントサイドは徹底的に薄くする」ためのQUERYだったりGraphQLだったりだと思っています。」 / Twitter
おれきゅーさんはTwitterを使っています 「GraphQLとかHTTPのQUERY見てて思うんですけどフロントにそんなにデータ持ってきて加工する複雑さ持ち込みたいモチベ強くあるんです? UIのstate管理するの大変だからデータはサーバー側によしなに都合の良い形で返してきてほしいって気持ちのほうが強いと思ってたけど」 / Twitter
FUJI GoroさんはTwitterを使っています 「対局にあるのが「綺麗なRESTful API」で、APIがシンプルなぶん、クライアントサイドで並列リクエストや細かなエラーハンドリングなど画面ごとに複雑な処理が必要になってしまう。そして行き着く先は画面ごとのスーパーエンドポイントを作ることになり、サバクラ双方でアジリティが失われる。」 / Twitter
mattnさんはTwitterを使っています 「「生 SQL 書きたくねぇ」で ORM が出てきた様にいずれ「生 GraphQL 書きたくねぇ」って言われてライブラリ出てきてたら、正直それ REST で良かったって話になったりしない?」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou 生SQLを書きたくないのは、普及の要因のひとつではあるかもしれませんが、ORMが出てきた理由ではなかったような。そもそも初期のORM、生SQL書いてませんでした?実装を意識せずにすむようになるなら、より進化したことになるので良い事なのでは。」 / Twitter
mattnさんはTwitterを使っています 「@potimarimo @EzoeRyou そうすね。ORM にもクエリは生で書かせて fetch した物をオブジェクトで扱わせる物と、クエリジェネレータ持ってる物の両方ありますね。そうなった際には中身が GraphQL でも REST でも、なんなら gRPC でもなんでもいいんですけども。その為に HTTP QUERY が入るのは、なんか違うなぁと思った次第。」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou ORMがあったおかげで、NOSQLやらJSONやらと混ぜてもあまり混乱していないように、上手いこと実装を隠蔽できるように進歩していくといいですね。そうすると、プログラマーが直接叩くことを考えないで済む分よを速いプロトコルが流行るかもしれない。」 / Twitter
mattnさんはTwitterを使っています 「SQL インジェクションがフォームに起因する脆弱性だというツイートを見たけど、どちらかというと ORM 等を使わない事で起きる脆弱性という認識です。」 / Twitter
mattnさんはTwitterを使っています 「SQL インジェクションはバインド変数を使わず SQL を文字列で組み立ててしまう事でエスケープされないクエリが実行されて起きる脆弱性ですので、動的に文字列を繋げて SQL を組み立てる事がない ORM の導入は効果があると思います。」 / Twitter
moajoさんはTwitterを使っています 「SQLインジェクション対策のためにORMを入れよう!って主張を聞いて???ってなってる」 / Twitter
mattnさんはTwitterを使っています 「欲しいのが SQL だけで良いならクエリビルダでも良いですね。」 / Twitter

Status

Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter

KOBA789さんはTwitterを使っています 「REST API の仕様を読んだとき、メンタルモデルとしてオブジェクトグラフを構築し、次にそれらの API をどういう順序で呼び出すかを考える。REST API を使う場合はそれらの作業に多くの資源を費やす。理解を促すために自然言語による説明を追加し、さらに資源を費やす。GraphQL はこの悪習を止めた」 / Twitter
RihoさんはTwitterを使っています 「1人開発で0から開発しているプロジェクトあるんだけど、Railsでテーブルとモデル生成してGraphqQLのコマンドでQuery作成してAPI作成完了。GraphQL codegenでTypeScriptの型定義とリクエストコードを自動生成、Chakra UIでフロント実装してる。便利な世の中ですね…」 / Twitter
shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
成瀬さんはTwitterを使っています 「@shinh っ XSLT」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@nalsh はい。それは僕の世界観では、失敗作ですね。。もちろん、XSLTによってたくさんの研究が…みたいなことはあるんでしょうし、その価値を否定するものではありません。というかXSLT自体は良いと思います。ただまあ、使いやすいものではないですよね。僕が今欲しいのは使いやすいものなのです」 / Twitter
YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「XSLT を使えば、クライアントサイドで XML から HTML に変換できるよ」 エンジニア「サーバサイドでやれば良くない?」 〜 今 〜 エンジニア「Vue を使って、クライアントサイドで JSON から HTML に変換するよ!」 XML「解せぬ」」 / Twitter
7594591200220899443さんはTwitterを使っています 「WDR is a format to separate the website's information and design そう、それこそがまさに古代、Websiteと呼ばれていた概念…セマンティックウェブ…XSLT… https://t.co/6PHEBNA09M」 / Twitter
WDR
7594591200220899443さんはTwitterを使っています 「昔の人の失敗したアイディアを少しは研究してからじゃないと結局失敗するアイディアを再発見してもしゃあないで。」 / Twitter
7594591200220899443さんはTwitterを使っています 「「自分はデザインが苦手だからデザインの事は他人に押し付けたいです」っていうソリューションは結局うまくいかない。ユーザーが求めているのはむしろデザインの方なのであって情報なんてさして必要とされていない。分離すれば苦しむのはデザインできない奴の方。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLは、おっしゃる通りDDDではクエリモデルを扱うものという位置付けにするのが良いでしょう。(続) #Peing #質問箱 https://t.co/ei7KiT6D0k」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLを更新系に使用すると、DB構造を把握してかなり直接的に更新する形になります。そのような方法は、ドメインオブジェクトDB構造を意識させない形で実装して制約を表現する、という実装とは衝突してしまい、相性が悪いため、DDD前提であれば更新系には使用しない方が良いでしょう。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「一方、参照系としてはCQRSが必要になる参照系のパフォーマンス課題を解決する1つの方法としては検討可能です。ただし、少しでも複雑な内容が入ったら更新系と結合テストをして整合性が壊れないように気を使う必要があります。導入に時はテストをどうするかと言う点も考慮しましょう。」 / Twitter
🐶さんはTwitterを使っています 「RDBMS が GraphQL 直接話せたらいいのでは?」 / Twitter
7594591200220899443さんはTwitterを使っています 「まあ実際にはそういうドキュメントDBみたいなのは死屍累々なのだが」 / Twitter
7594591200220899443さんはTwitterを使っています 「直接は関係ないけどRDBMSの前段にWAFかましたりまともな今時の認証認可をかましたりしていきたいというだけのニーズに対して現在我々の手に入るソリューションって必要以上に牛刀じゃんという問題意識はある。」 / Twitter
7594591200220899443さんはTwitterを使っています 「素のDBをポーンと外向けで出すのは怖いねっていうのの対策がいきなりじゃあRailsでAPI立ててやっていくみたいな話にまでいきなりでかい話になる必要は本来ならないべきのはずなんだよなあ」 / Twitter
成瀬さんはTwitterを使っています 「またSQLQLの話してる…」 / Twitter
高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「nextjs(React)、nuxt(Vue)使ったことある? って聞かれることがあるけど、 SSR?SSG? i18n対応は? テストはJEST? Cypressでよか? Validationライブラリは? REST?WebSocket?gRPC?GraphQL? デザイナいる?XDやFigma? コンポーネント設計は?(Storybook作る) CSSはF/Wは?」 / Twitter
ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「他にも npm/yarnの整備 デプロイ先に合わせたビルドパイプラインの設計・実装 デプロイ先の環境整備 と、諸々よしなにできる人を希望されていると思うんだろうけど。 デプロイとかは面倒なので「amplify」で〜。とかいってもamplify cli is 何? みたいな話になり。 手順書作ったり。 大変ね。」 / Twitter

GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL - Speaker Deck
GraphQL(クエリ言語について) - Qiita
技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
サービス間連携のためのGraphQL APIをClojureで開発している話 - Opt Technologies Magazine
Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介 - Yahoo! JAPAN Tech Blog
サーバサイドの進捗に依存しないための Next.js x GraphQL のフロントエンド開発の工夫 | Money Forward Engineers' Blog
GraphQL Federation – API Gatewayの進化 | Money Forward Engineers' Blog
graphql-codegen は validation 用の schema も自動で生成できる (yup と zod)

YAML

libyaml

libyaml-0.2.5
LibYAMLのインストール(Linux / Unix) - Qiita
https://pyyaml.org/wiki/LibYAML
yaml/libyaml: Canonical source repository for LibYAML

JSON, YAML, ini, TOML ざっくり比較
The Official YAML Web Site
Best YAML Validator Online
Best Online YAML Converter - Convert YAML Strings into JSON, XML, CSV
YAML - Wikipedia
YAML - Wikipedia
YAML(.ymlファイル)とは - IT用語辞典 e-Words
プログラマーのための YAML 入門 (初級編)
YAML の記述 - CircleCI
フロントエンド・エンジニアのためのYAML入門 | 第1回 YAMLの基本的な使い方:コレクション | CodeGrid
JSON と何が違う?ってところから始める YAML 入門 | 株式会社ビヨンド
Python入門 (4) - YAMLファイルの読み書き|npaka|note
YAML入門 | tracpath:Works
YAMLとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
【yaml】.ymlファイルの使い方まとめ。&, *, <<の使い方 - Qiita
Yuta @スタートアップ|エンジニアさんはTwitterを使っています 「Haskell製のDhallての知らなかったな、ymlの仕様にないimportの概念取り入れられるの便利そう #rust_jp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Dhallは構文エラーがバグり気味だったり記述が冗長すぎたりしていろいろ難点もあるけどおすすめよ。k8sのmanifestとか結構整理できる &gt;RT」 / Twitter
チェシャ猫さんはTwitterを使っています 「YAML の型はエラーの原因になりがち。例えば 0.1 なら数値なのに 0.1.0 だと文字列になったりする。情報を文字列で埋め込もうとするとエクスプロイトの原因にもなる。 #SoftwareCircusFest」 / Twitter

JSON

extensible data notation

edn(extensible data notation)を使う - Qiita
edn-format/edn: Extensible Data Notation
clojure.edn - Clojure v1.10.2 API documentation
GP Tech Memo: Clojureのプリンタ/リーダとedn
read-string - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
read - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
Learn edn in Y Minutes
EDNのパーズと構築 (Gauche ユーザリファレンス)
いまどきのClojureのはじめかた - 紙箱
Clojure - Deps and CLI Guide

型安全な JSON.parse

Miura HidekiさんはTwitterを使っています 「型安全なJSON.parseってどんなものかわからないのだけど、特定の文字列に対する結果の型が得たいのであれば多分得ている(rubyベースのパーサーだけど)」 / Twitter
ゴリラ@DBナニモワカラナイさんはTwitterを使っています 「ts書いてる人なら誰しもが一度は思ったことはあること 型安全なJSON.parseが欲しい」 / Twitter
Shinya KatoさんはTwitterを使っています 「@miura1729 JSON.parse は TypeScript の型定義上は any を返すとされているんですが、string or number or boolean or null or ... みたいな型をつけて欲しいよねって話なんじゃないかと」 / Twitter
Miura HidekiさんはTwitterを使っています 「@0x19f なるほど。それなら私のプログラムは得ていますけど、それって嬉しいの?という疑問です。」 / Twitter
Shinya KatoさんはTwitterを使っています 「@miura1729 TypeScript の any は型定義を台無しにしていくので避けられるなら避けた方が無難なやつですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@0x19f それは無茶苦茶複雑な型定義を知らない人の感想かと思います。ある程度複雑な型定義が出てくるならanyでスッキリさせた方がましと必ず思うと思います。」 / Twitter
Shinya KatoさんはTwitterを使っています 「@miura1729 any の方がスッキリしているはちょっと僕の感覚ではあんまり共感できないですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@0x19f 例えば、mattnさん謹製のpjsonでparseメソッドの結果の型はこんな感じになります https://t.co/czbABB8Ij9」 / Twitter
gist:5a0d352e3b855ccdbff522ef66d07489
Shinya KatoさんはTwitterを使っています 「@miura1729 一番最初の引用していたツイートの意図としては、まさしくこういう型をつけて欲しいってことだと思います」 / Twitter
Miura HidekiさんはTwitterを使っています 「@0x19f 結局可能な組み合わせを全部列挙しているだけなのであまり意味は無いと思います。特定の文字列をパースした結果とかなら意味がありそうですけど」 / Twitter
Shinya KatoさんはTwitterを使っています 「@miura1729 意味があるかどうかは見方次第だと思うので、欲しい人は欲しいんじゃないですか?」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 型安全なJSON.parseみたいなのはXMLSchemaのようなJSONSchemaでの木構造に対する構文定義で構文検査をすることで得られるけど、型検査なのかと言う話になると、ちょっと違う話になってPrologの型システムあるいは型理論の型システムが欲しいと言う話と同様の問題になると思います。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 TypeScriptの型システムのような合併型を持つ型システムを作る必要が出てくるだろうからかなり難しい話になると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai JSONに型をつけるなら当然合併型は必要でしょうね」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 JSONはS式のような言語なのでLISPのようなプログラミング言語も作れるわけで、そのプログラミング言語の型システムが作れるシステムが欲しいみたいな話になると一階述語論理による型システム定義から型検査ができるようになるなどの多様性のある仕組みが欲しくなると思うのですよね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 XML Schema で構文定義は簡単にできます。同様にJSONの構文検査は簡単にできるのですよ。 型検査となるとプログラムが生成するデータについても検査をしたくなるので難しい。しかし多相ヴァリアントのタグをBoxingするような型システムが作れれば意外と簡単に構築できるかもしれないなと思ってます。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai JOSN全体ならそうでしょうけど、特定の文字列に対するJOSNのパース結果なら一意に型を決定できるかと(かなり複雑な物になるでしょうけど」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 通常のプログラミング言語の型システムを作るようにJSON用の型システムを作れば作れますから特に文字列から検査をする必要はないですが、JSONSchemaのような形でのより汎用的な型システムとなると非常に難しくなるので難しいです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@h_sakurai JSONSchemaが分からないので出直してきます」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 木構造に対する汎用的な構文検査器は通常の文字列に対する構文検査、構文解析よりはるかに簡単に構築できます。Prologのプログラム数行で構築できるほど簡単です。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 JSONでできた言語を普通に構文解析して普通に型をつけた代数的データ型として表すと余計なタグがつくことになって邪魔になるのでタグレスでASTが表せるといいと言う話で合併型とか言う話になるけどBoxing,Unboxingな概念でタグをつけ外しできたらいいんじゃないのかなぁって思うわけです。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@miura1729 でもまぁ、JSONに対してPrologみたいな言語で型システム書けばいいだけとも言えますかねぇ。」 / Twitter
ゴリラ@DBナニモワカラナイさんはTwitterを使っています 「@miura1729 @0x19f 単純にこういうミスを避けたいので、型と合っていないJSON文字列はパースエラーにしてほしいなっていう意味での「型安全」という言葉を使いました https://t.co/DRMK0c87ig」 / Twitter
Miura HidekiさんはTwitterを使っています 「@gorilla0513 @0x19f なるほど、これは難しいですね。JSON Schemaを使うとかだと違う気がしますし。抽象解釈ベースの処理系と型注釈を両方持っているJuliaなら可能かもしれませんけど。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 @gorilla0513 @0x19f @h_sakurai JSON Schema を使って、データの validation をすれば型チェックは出来ますよね: JSON Schemaのすゝめ - Qiita https://t.co/4TuwQEYyks」 / Twitter
JSON Schemaのすゝめ - Qiita

JSON

Standard ECMA-404
Standard ECMA-404-archive
Final draft ECMA-404 2nd edition
RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
JSON
JSON仕様(ECMA-404) を眺めてみる | Money Forward Engineers' Blog
JSON、ECMA標準となる。仕様文書「ECMA-404」が公開 - Publickey
事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
JSON: The JavaScript subset that isn't — Timeless
Subsume JSON
gibson042/ecma262-proposal-json-superset: Proposal to make all JSON text valid ECMA-262
非エンジニアに贈る「具体例でさらっと学ぶJSON」 | Developers.IO
JSONの歴史 - Speaker Deck
個人的なシリアライザの特徴表(作成中)
OSSタダ乗りおじさんさんはTwitterを使っています 「JSに限った話をすると JavaScript においてはJSONで通信する価値が高すぎて class で宣言されたものはシリアライザ・デシリアライザが必要になってその実装にバグが潜むことが多く、冷静に考えるとそもそもいらないことが多いので思考停止でまず class で宣言するのをやめろと言ってる」 / Twitter
厳格なJSONパーザーの作り方 - RoundWide Systems
seriot.ch - Parsing JSON is a Minefield 💣
nst/JSONTestSuite: A comprehensive test suite for RFC 8259 compliant JSON parsers
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CLIアプリの出力形式としてJSONを使うときのTips: - スキーマを作っておくべし - できるかぎりフラットな構造にすべし - キー名は予測可能にすべし - キー名に特殊文字を使うべからず - キー名を重複させるべからず etc. https://t.co/RbdpqN3xDc」 / Twitter
Tips on Adding JSON Output to Your CLI App - Brazil's Blog
2021年に登場したウェブハッキングテクニックトップ10 - GIGAZINE
An Exploration & Remediation of JSON Interoperability… | Bishop Fox

JSON Merge Patch

shinichiro hamajiさんのツイート: "設定にJSONを使いはじめた https://t.co/QFepaqFIJB 今のところのモチベーションはバックエンドの管理などにしようかと。YAML嫌いTOMLそれほど使われてない、ということでmenohでも使われてるJSONになった。JSON merge patch というのが RFC にもなってて素敵だと気付いた https://t.co/QvHZB2nErt"
Declare capability of backends by JSON configs by shinh · Pull Request #281 · pfnet-research/chainer-compiler
RFC 7396 - JSON Merge Patch
ゆきさんはTwitterを使っています: 「Range Patch https://t.co/tuwPJ0bw5a JSON構造に対して直接パッチリクエスト送れる感じ? #yuki_id」 / Twitter
draft-toomim-httpbis-range-patch-00 - Range Patch
設定ファイル(JSON)のdiffをjson patchでやってみようという試み - podhmo's diary
RFC 7386: JSON Merge Patch - 一汁三菜
JSONマージ・パッチによるJSONドキュメントの更新
RFC 7386 - JSON Merge Patch 日本語訳
JSON Merge Patch

JSON Lines

jqコマンドでJSONをJSONL(JSON Lines)に変換する - rochefort's blog
JBoss EAP 7でJSON Lines形式のログをFluentdに渡す – ナッツウェル 技術研究室
Centralized Logging for WildFly with the ELK Stack · WildFly
JSON(Array形式でフラットな)をMarkdownのテーブルに変換
JSON Lines
JSON Lines Examples
JSON Lines
raphaelstolt/json-lines: Library for the JSON Lines text file format.
JSON streaming - Wikipedia
json-lines 0.3.1 : Python Package Index
jsonlines — jsonlines documentation
json-lines
JSON Lines | Hacker News
Sho ShimauchiさんはTwitterを使っています 「CLIでのjsonのパースにjqを使うのは定番だが、 @aodag が python -m json.tool でもパースできるということを教えてくれた。jq入れなくていいので状況によってはかなり便利だな。しかも3.8からはjsonlに対応している https://t.co/HSuoDeVkN9」 / Twitter
json --- JSON エンコーダおよびデコーダ — Python 3.8.5 ドキュメント
jsonl - Google 検索
qwerty2501さんはTwitterを使っています 「正直json linesもやや助長ではあるので、ヘッダーに型情報をもったcsvみたいなのが欲しいかも知れない」 / Twitter

JSON Text Sequences (RFC 7464)

Kazuho OkuさんはTwitterを使っています 「ここでオススメなのが JSON Text Sequences (RFC 7464) です。なんと、ASCII / Unicode のレコードセパレータ (0x1E) を使うことで、ひとつのファイルに複数の JSON を格納可能!!! マイナーな制御文字を楽しめるという特典がついてきます」 / Twitter
Shinya KatoさんはTwitterを使っています 「ふと思ったんだけど、1行に JSON を1つ入れるファイルって普通に配列にすればただの JSON として扱えるのでは……?」 / Twitter
kisaragiさんはTwitterを使っています 「@0x19f jq -sが似たようなことをやりますね (厳密に同じかは存じ上げません、すみません)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「0x1E とかエディタで開いてぶっ壊れないのかなとか僕は思うんですけど知りません」 / Twitter
Kazuho OkuさんはTwitterを使っています 「個人的には、印刷もキーボードも入力できない文字使ってる時点でバイナリファイルだと思うし、バイナリファイルならJSONつかわ... いえなんでもありません」 / Twitter

JSON-LD

Kazuho OkuさんはTwitterを使っています 「手っ取り早く json-ld を json に変換するのってどうやればいいのかしら」 / Twitter
Kazuho OkuさんはTwitterを使っています 「jq のフィルタ一発みたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「とりあえず perl スクリプト書いたけど、絶対既存の超絶簡単手法があるはず... #! /usr/bin/perl use strict; use warnings; my $prefix = "[\n "; while (my $line = &lt;STDIN&gt;) { chomp $line; print "$prefix$line"; $prefix = ",\n "; } print "\n]\n";」 / Twitter

JSON-RPC

JSON-RPC
JSON-RPC 2.0 Specification
RFC 7807 - Problem Details for HTTP APIs
JSON-RPC - Wikipedia
JSON-RPC - Wikipedia
JSON-RPCについて
JSON-RPC over HTTPなサーバを作る - Qiita
JSON-RPCって何? - Qiita
JSON-RPCというWebAPI設計に役立ち、、そうなそうでもないかもな規格 - Qiita
Go で始める JSON-RPC 入門 – osamingo – Medium
REST APIに消耗したらJSON RPCを試そう - タオルケット体操
意外と便利なJSON RPC - TechTalkManiacs
Widebullet〜API Gateway with JSON-RPC〜 - Mercari Engineering Blog
Google Developers Japan: Google API における JSON-RPC および Global HTTP Batch エンドポイントのサポート終了について
渋川よしきさんのツイート: "TypeScript並みに値も使った型チェックが便利になったら、SwaggerとかRESTとか頑張るよりも、JSON-RPCの方がよくね?という気がしている。type findMethod = { method="findByStatus": params: {id: number} }とか書いておけばいいじゃん(クライアントがJS系の場合に限る)。"

JSON Web Token (JWT)

トークンベースの認証とは? 仕様とJWTのメリット、デメリット| Okta
【JWT】 入門 - Qiita
JWT認証と流れのやわらかい解説 - ROXX開発者ブログ
JSON Webトークン(JWT)を使用したAPIデプロイメントへの認証および認可の追加
JWT認証 - Box Developer Documentation
セキュリティ視点からの JWT 入門 - blog of morioka12
JSON Web Token(JWT)の紹介とYahoo! JAPANにおけるJWTの活用 - Yahoo! JAPAN Tech Blog
マイクロサービスの認証・認可とJWT / Authentication and Authorization in Microservices and JWT - Speaker Deck
OpenID Connect の JSON Web Token 認証の構成 - IBM Documentation
JWT 認証 ‒ Qlik NPrinting

jq

jq
jq コマンドを使う日常のご紹介 - Qiita
【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法 - Qiita
jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE
jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | Developers.IO
良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
JSONを扱いやすくするコマンド(jq, gron)のメモ - 脱力系日記

C

yaji

yajl
lloyd/yajl: A fast streaming JSON parsing library in C.
Yajlって速いの? - Qiita

yyjson

ドッグさんはTwitterを使っています 「新たな fastest をうたう JSON ライブラリが…(実装は C) | 'ibireme/yyjson: The fastest JSON library in C' https://t.co/efOoFOxMk6」 / Twitter
ibireme/yyjson: The fastest JSON library in C
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/wrcOZC1N3L デコード側の実装ざっと眺めた感じ別にそこまで変わった実装ではないな(見落としてるだけかもしれないけど).浮動小数点数パース周りの最適化頑張ってるっぽいのと,minify された JSON とインデントされた JSON で実装分けてるのはなるほど」 / Twitter
yyjson/yyjson.c at master · ibireme/yyjson
ドッグさんはTwitterを使っています 「やはり最適化には table lookup ベースのアルゴリズムが大事なんだなぁ」 / Twitter

Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
Jansson — C library for working with JSON data
akheron/jansson: C library for encoding, decoding and manipulating JSON data
Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
parson
kgabis/parson: Lightweight JSON library written in C.
Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
The most simple JSON parser in C for small systems
zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
jq
stedolan/jq: Command-line JSON processor

blog

設定情報をエレガントに管理する方法(解決なし) - まめめも
JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
JSON先進署名フォーマット「JAdES」解説 【第1回】JAdESの概要と特徴 | GMOグローバルサインブログ
JSON::Types ってのを書いた - unknownplace.org
論文メモ: Mison: A Fast JSON Parser for Data Analytics | κeenのHappy Hacκing Blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「JSONだっていいじゃないか、YAMLだもの」の方が趣旨に合っている気がする(本文でも触れているとおりJSONはYAMLのサブセットだし) / 1件のコメント https://t.co/FySezu8Nt1 “YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog” https://t.co/Hbit1aiLb2」 / Twitter
YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いい機会だしpackage.yamlからcabalに戻そうかなぁ。もう新しいcabalならだいたいpackage.yamlの機能はカバーしてるわけだし...」 / Twitter
BigQueryがJSONにネイティブ対応。SQLでJSONに対するクエリが可能に - Publickey

Zenn

設定ファイル言語 cumin を自作している
JSONをいい感じに見るCLIを作った
PlantUML で JSON データを簡単視覚化
Dokkun 進捗
DSONという型注釈の付けられるObject Notationを作ってみた
RustでJSONから値をゆるりと取り出すマクロを書いた話

Qiita

null だけの JSON は合法か? - Qiita
package.json は .yaml で準備して json に直すワンライナーでエクスポートする - Qiita
RFC 準拠的な JSON 形式について - Qiita
JSON にもコメントを書きたい - Qiita
microsoft/node-jsonc-parser: Scanner and parser for JSON with comments.
JSON Schema や JSON から Go の struct を生成する - Qiita
図解 JWS/JWE/JWT/IDトークン/アクセストークンの包含関係 - Qiita
JSON Schema っぽいものを作ってみた - Qiita

Twitter

間違い

7594591200220899443さんはTwitterを使っています 「1.797693e+308を受け付けるのはRFCでMUSTだがゴミみたいな拡張文法を入れるのはMAYなのであって、作者のパーザが完全に誤っていることと他の実装が拡張文法を持っていることを同列に語ろうとするこの記事には賛同しかねる https://t.co/PP4f6meRl5」 / Twitter
JSONパーサにファジングしたら収拾がつかなくなりました - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】
7594591200220899443さんはTwitterを使っています 「ここがfuzzの限界なのでありfuzzerはRFCを読んだりできないからある状態が「違ってる」までしかわからず、正しいか間違っているかを判定できない。その判定を人間が間違えば無価値になる。」 / Twitter
7594591200220899443さんはTwitterを使っています 「世のJSON実装に何も問題がないとは申しませんがこの作者の実装にはそれらとは一線を画す重大な問題(RFC違反)があった。そこを判定できなかったところまで含めて、この作者の至らなさだと思う。」 / Twitter

順序

Kazuho OkuさんはTwitterを使っています 「オブジェクト指向なのかリレーショナルなのかの違いであって、基本的にはキメの問題だし、どっちが便利かはユースケースによるよなぁ」 / Twitter
TetsuさんはTwitterを使っています 「JSON詳しい方にお聞きしたいのですが、Aみたいなデータを返すREST APIの流派があるんでしょうか?? サーバサイドでもフロントエンドでも、なんかAPI呼んでAが返ってきたら使いづらくて仕方ない気がするのですが… ※私はBにすべきだと思うが「Aがモダンでスタンダード」的な主張とぶつかっている https://t.co/O9NGvmXyRu」 / Twitter
BasukeさんはTwitterを使っています 「@kazuho Aにidを入れない理由がわからないかな。gzipしちゃえばほぼコストゼロだしJSONはマップも順番は維持されるわけだから両者ハッピー。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@basuke 主キーが複合キーである場合、JSON Objectのキーにはできませんから、RDBに寄せるなら一貫性の観点から配列を使い方が良いと思います」 / Twitter
BasukeさんはTwitterを使っています 「@kazuho 僕も自分の立場なら迷わず配列」 / Twitter
Tatsuhiko MiyagawaさんはTwitterを使っています 「@basuke @kazuho 順序に意味があるなら後者(配列)ですが、ないなら前者ですかね。キーのユニーク性が担保されるし、順序によってデータのハッシュ値が変わることがない(キャッシュフレンドリー)。ケースバイケースではありますが」 / Twitter
Jun MukaiさんはTwitterを使っています 「@basuke @kazuho JSONのオブジェクトは仕様上unorderedなので、順序に意味がある場合なら前者はありえないと思います」 / Twitter
BasukeさんはTwitterを使っています 「@jmuk @kazuho まあ、そうなんだけど、事実上スクリプト言語はいまみんな辞書型の順番保持するし、もめるくらいならそっちでいけと。」 / Twitter

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「毎秒1GBでJSONをparseできるライブラリ simdjsonの解説。パーザは2-passに分かれている。まずJSONをスキャンして各要素の位置をすべて記録し、つぎに実際のデータを解析する。各処理の分岐を極力少なくし並列実行できるように設計されている。 https://t.co/74s5ZYxGut」 / Twitter
[1902.08318] Parsing Gigabytes of JSON per Second
Kazuho OkuさんはTwitterを使っています: "別の言い方をすると、RFC 4627のJSONは、後続の文字列が何であろうと正しく終端判定できたんだけど、RFC 7159ではそういうことができなくなり、JSONを埋め込む側に別途、終端判定に必要な情報をもたせることが必須になった https://t.co/WZdyoNvlBD"
Kazuho OkuさんはTwitterを使っています: "RFC 7159 において picojson の API を維持する件については、 input iterator をインクリメントするタイミングを遅延させることでいけそうなイキフン https://t.co/A8exerdIs5 https://t.co/zRpMaxV26R"
Kazuho Okuさんのツイート: "2**53内ならJSONで数値として表現できるっていうけど、デコーダによって異なる値として解釈されるような表現は可能なの、ちょっと怖いなと思った https://t.co/G7q03sCkc4"
Kazuho Okuさんのツイート: "[0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100e100] つーJSONパースするとrubyだけ[0]になる(他は100)"
Kazuho Okuさんのツイート: "JSONの話というのは、Ruby固有の問題というよりは、2**53以内の整数ならJSONで相互運用性を保てるというのが実は幻想で解釈の違いがあるんじゃないかという話です https://t.co/9ekr1VoXrb"
watsonさんのツイート: "JSON の定義とか、確かに https://t.co/x7Q0pSZkBj が便利そうだね( ˘ω˘) #tkrk11"
Jxckさんのツイート: "一方頻出 API である JSON.stringify/parse がアレだったのはアレだけど。"
Hiroaki Nakamuraさんのツイート: "DropboxはAPI v2を作るときにRESTは止めてJSONを入出力とするシンプルな方式に切り替えたそうです。 / "Scaling and securing the Dropbox API" https://t.co/Ne3QXJYqgI"
ドッグさんのツイート: "JSON を grep しやすい形式に変換するツール面白い.grep した後に元の JSON の出力に戻す(--ungron)こともできるし,そのまま JavaScript としても扱えるらしい | 'tomnomnom/gron: Make JSON greppable' https://t.co/3MJPqtoQz5"
tomnomnom/gron: Make JSON greppable!
Fadisさんのツイート: "従来の有限状態機械を使ったJSONパーサは分岐命令が頻繁に実行され、CPUの分岐予測ミスによるペナルティが無視できない問題になるため全く新しいJSONパーサを考えた、とか言い出す論文を目の当たりにしてJSONスゲェってなってる"
Mison: A Fast JSON Parser for Data Analytics - Microsoft Research
はやぶささんはTwitterを使っています 「むしろGo の struct から JSON Schema 生成するやつとかあり、JSON Schema を IDL として使うの自体が向いてないって感じだなぁ。コメントとかもかけないし。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「21世紀になってもconfig language設計をナメてかかって、場当たり的にvariable substとか正規表現マッチを足していって一貫性がなくなったりするのを見るとすごく苛つく。 yamlに適当に評価ルールを上乗せしてくのは完全にアンチパターンだよ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「plain json, plain yaml以外は受け付けないと割り切って拡張性はjsonnetみたいのに委ねるなり、starlarkを使うなり、それかチューリング完全な言語の上にDSLを定義するなりしたいものだ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「単純な話、言語設計は難しくて、他の複雑なシステムの開発の片手間にやれるものじゃないんだろう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「JSONに邪魔なもの、カンマ、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同感。 この二つが原因で、設定ファイルに採用しづらいのだよなぁ、、、」 / Twitter
Dan KogaiさんはTwitterを使っています 「// そしてコメント(💩が)」 / Twitter
FadisさんはTwitterを使っています: 「RFC4180ではCSVはMIME typeのパラメータで文字コードが指定された場合に限りその文字コードの文字を使用でき、ない場合はASCIIコードを使うことになっているので、sjisだろうとeucjpだろうとutf8だろうとCSVに0x7Fより上の文字を突っ込んだCSVを単独で交換するのはオススメできない」 / Twitter
伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
Tikhon JelvisさんはTwitterを使っています 「If we moved .cabal files from a custom syntax to YAML, we could get validation and auto-completion "for free" by writing a JSON schema. Here's an example I threw together with auto-complete for SPDX license tags: More details on this GitHub issue: https://t.co/raXWFjJg1W https://t.co/cPH3OtNhvI」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PHPのarray型は、都合によりリストとも連想配列とも解釈される。あるときJSONの {"0": "No", "1": "Yes"} をデコードしたら、PHPはこれを自動的に「キーが連続した整数である」とみなし、勝手にリストに変換してしまったという話。恐るべし。 https://t.co/z4DnaK73Ri」 / Twitter
PHP: Frankenstein arrays - vazaha.blog

JSON, YAML, ini, TOML ざっくり比較
伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
JavaScript Object Notation - Wikipedia
JSON - Wikipedia
ASCII.jp:Windows 10でJSONを扱う (1/2)
JSON Schema | The home of JSON Schema
干潟の生物さんはTwitterを使っています 「CSVは曖昧だしJSONは数値が浮動小数点数だしYAMLはインデント辛いから時代はS式です。S式S式S式」 / Twitter
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「JSON Scheme ではちゃんとinteger/floatは分けられてるんですよ。 https://t.co/kBDlKKEYBf」 / Twitter
Type-specific keywords — Understanding JSON Schema 7.0 documentation
Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter
IPSJ-TPRO0901002.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/xwlpdRySMi」 / Twitter
Rui UeyamaさんはTwitterを使っています 「昔はインターネット上のプロトコルはテキストベースのものが多くていいと思ってたけど、近年はもっと早くProtocol Bufferみたいな汎用バイナリフォーマットが発明されて、どんなプロトコルも基本的にそれを使うようになってればよかったのになと思う。テキストは効率よくないし面倒くさい。」 / Twitter
個人的なシリアライザの特徴表(まだ試行錯誤中) - Google スプレッドシート
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ProtoBuf/MsgPack/JSON/XDR といったシリアライザ間でも違いが大きいので、比較表を書いたことがある。 (特に IDL定義の有無はトレードオフある) https://t.co/lQOSar0iTu」 / Twitter
個人的なシリアライザの特徴表(作成中)
Makoto Kato ︎︎さんはTwitterを使っています 「汎用性を考えてjsonでデータかいたけど、コメント書けるからtomlにした話します?」 / Twitter
YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「データ構造がわかるように、スキーマが定義できるようになってるよ!」 エンジニア「めんどくさいからJSONでよくね?」 〜 今 〜 エンジニア「JSON だとデータ構造がわからないから、JSON Schemaを作ったよ!」 XML「解せぬ」」 / Twitter

TOML

JSON, YAML, ini, TOML ざっくり比較
BurntSushi/toml-test: A language agnostic test suite for TOML parsers.
toml/toml-v0.4.0.md at master · toml-lang/toml
TOML仕様和訳 - Qiita
TOMLは人に優しい設定ファイル言語 - Qiita
Cool Python Tips: TOMLを使ってみよう
TOMLの日時形式
Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
最強のC++実装TOMLパーサーが完成した - in neuro
toml11を60倍高速化した話 - in neuro
toml11をバージョンアップした - in neuro
toml11 v3ができてきた - in neuro
TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
toml11をマイナーアップデートした - in neuro
TOMLで型の異なる要素を持つ配列が許可された - in neuro

XML

成瀬さんはTwitterを使っています 「XMLはattributeが余計だったんだと思っている。あれがあるせいでtraverseが面倒になってるよね」 / Twitter
Hiroshi NakamuraさんはTwitterを使っています 「@nalsh Namespaceですよ。木と木を混ぜるの大変。でも文書の木の管理としては未だに代替がないような。フォーマット定義に使うのがおかしかった。」 / Twitter
成瀬さんはTwitterを使っています 「@nahi 文章管理には確かにまだXMLがベストかもしれませんねぇ。「XML Schemaのレガシーは型定義」って制定当時から言われていて、実際JSON Schemaでもある程度継承されてますからそこはまぁ」 / Twitter

Protobuf

_ko1さんはTwitterを使っています 「XML Schema みたいな木構造の定義(文法)って良いと思うけどそんなに流行らなかったというか、結局必要で JSON Schema とかでてきていると思うけど、なんか決定版つくんないのかな(結局小さくまとまらずにBNF?)」 / Twitter
_ko1さんはTwitterを使っています 「@oza_x86 ASN.1 じゃなくて XML じゃなくて protobuf なのは、Google への信頼感でしょうか」 / Twitter
ozaさんはTwitterを使っています 「@_ko1 観測してる感じですと(いわゆるマイクロサービス化などの文脈で) 性能が求められる場面で golang と一緒に grpc が使われるようになって,一緒に protobuf も使われるよつになってきてるという風に見えてます この2-3年でエコシステムが盛り上がったのかなと(めっちゃ主観です」 / Twitter
Protobuf definition best practices | by Ammar Khaku | Medium

WebBundle

CBOR・MessagePack

FUJI GoroさんはTwitterを使っています 「CBORがMessagePackに対して敵対的フォークを行ったことを批判しているエントリ。IETFの優位性を示したかったのではないかと。さらに、仕様的にもCBORはMessagePackと比較して不必要なまでに複雑になっていると。 / “diziet | MessagePack vs CBOR (RFC7049)” https://t.co/WTlJh2Bnnm」 / Twitter
diziet | MessagePack vs CBOR (RFC7049)
Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter

本サイトの AMP 提供の停止とここまでの振り返り | blog.jxck.io
Non AMP SXG による Prefetch 対応と AMP 提供の停止 | blog.jxck.io
AMP SXG 対応 | blog.jxck.io
Webbundle によるサブリソース取得の最適化 | blog.jxck.io
WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
WebPackaging の Signed HTTP Exchanges | blog.jxck.io

Google Cloud Pythonロギングライブラリのリリースにより、サーバーレスのサポートが改善
Netlify GraphによりWebアプリにおける外部API統合をシンプルに

イベント

イベント

動きのあるデータのイベント処理をシンプルにすることを目的としたQuineとは
オープンソースのCNCF CloudEvents仕様、バージョン1.0のマイルストンに到達
イベントアーキテクチャとイベントストリーミング
イベントソースシステムにおけるイベントのバージョン管理
イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より
イベントは開発者の第一級ツールであるべきだ
イベントは分散システムの将来を変えるか - Jonas Bonér氏のQCon Londonでの講演より
イベントファースト思想はなぜ重要か
イベント駆動システムに対する批判的見解 - Bernd Rücker氏のQCon Londonでの講演より
イベント駆動からイベントソーシングへの移行 - MicroCPHのFangel, Ingerslev両氏の講演より
イベントソーシングシステム開発時の間違いとリカバリ
イベントソースシステムにおける過去と未来のイベント
「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す - Publickey
Linux FoundationがAsyncAPIのホストを発表

イベントストア

Mongo DBとS式検索 - Speaker Deck
AxonDB - イベントストアの新たな実装
data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表
MicroStream 5.0がオープンソースになった

ワークフロー

高可用性ワークフローエンジンZeebeが実運用対応に
ワークフローにイベント駆動型の自動化を提供するPuppet Relay
マイクロサービスからワークフローへの移行

リアクティブシステム・非同期

DDD、イベントストーミング、アクターモデルを使用したリアクティブシステムの設計
RSpcket - SpringOneで発表された、リアクティブアプリケーションのための新たなアプリケーションネットワークプロトコル
QCon London: 非同期イベントアーキテクチャにおけるアクタ導入の可否
Svelteを使ったアニメーション、レスポンシブ、リアクティブなデータ視覚化
カスタムディレクティブとリアクティブAPIを新たに備えたLit 2がリリース
Mobx リアクティブ状態管理ライブラリバージョン 6がリリースされた
JavaScripr言語にリアクティビティを実現するフロントエンドフレームワークSvelte 3 - 作者のRich Harris氏に聞く
Kotlinの新しい非同期処理 - QCon SFでのRoman Elizarov氏の講演より
C# 8の非同期ストリーム
IAsyncDisposableとIAsyncEnumeratorの更新
eBayは非同期API契約としてAsyncAPIを採用
Dropboxがどのようにして大規模な分散非同期タスクフレームワークを構築したか

OpenTelemetry・log

OpenTelemetry仕様が1.0に到達、安定性の保証と新たなリリース候補を提供
OpenTelemetryがメトリック仕様のロードマップを発表
OpenTelemetryがPythonおよびSwift Tracing API/SDKを1.0に移行
Grafanaで、マネージドな可観測性スタックにエンタープライズログを加わる
GitHub用にブラウザで長大なログを表示する

CQRS

DDDで設計するならCQRSの利用を検討すべき - Qiita
CORSまとめ - Qiita
Cutting Edge - CQRS とイベント: 強力なコンビ
Cutting Edge - 一般的なアプリケーション向けの CQRS
CQRS + ESについてのまとめ - Output!!
CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | プログラミング | POSTD
CQRSとイベントソーシングでシステムを構築する
ドメインストーリテリングを使ってコンテキスト境界を見つけ出す
Living Documentation by design, with Domain-Driven Designを読んだ | Web Scratch
#teppeis_sushi でクライアントサイドDDDについて発表した | Web Scratch
CQRSとイベントソーシングのフレームワークであるAxonの基本概念と今後について
リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
松岡@DDDブログ書いてますさんはTwitterを使っています 「#peingddd CQRSのよくある誤解で、導入したら参照系と更新系それぞれのモデルしか使ってはいけないというのがあります。(続) #Peing #質問箱 https://t.co/B2NSJ5ZhbW」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「しかし、そんなことはありません。 こちらの記事に書いたのですが、CQRSは「必要な部分だけ導入する」でOKです。 https://t.co/qHdB1EvQyy 今回のご質問だと、いくつかのテーブルを参照したような複雑なクエリ部分だけ、そこに特化したクエリモデルを使用して検索するぐらいで良いと思います。」 / Twitter
CQRS実践入門 [ドメイン駆動設計] - little hands' lab
松岡@DDDブログ書いてますさんはTwitterを使っています 「ただ、そのあとに更新処理を行う時には、リポジトリから取得したドメインオブジェクトを通じて行う方が良いでしょう。」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「なぜなら、重要なドメイン知識(ルール/制約)をドメインオブジェクトで表現し、そのコードを見ればドメイン知識が理解できることを目指したいのに、その他の部分に知識が分散してしまうとそれが見落とされてしまうことにあるからです。」 / Twitter
Manabu UenoさんはTwitterを使っています 「重要なのは、ユーザーに「オブジェクトを直接操作している」というイリュージョンを与えることである。 記事の例でいえば、Deactivate のタスクを切り出すこと以前に、Deactivate という動詞がユーザーの行為の中で十分な意味性を持つか、ということをまず考える必要があるだろう。」 / Twitter
タスクベースUIとCQRS - Qiita
Manabu UenoさんはTwitterを使っています 「OOUI 本の記述をひとつのきっかけに骨太な議題が掘り起こされている。意味性を排除したデータ操作のUIは滑稽だが、Windows の端々に現れる使役的な「リンク」がオブジェクトをタスクの後ろに隠しがちなのも事実。単純な構文論に回収されないデザインの暗黙知がありそうだ。 https://t.co/SPMk6SMaSi」 / Twitter
かとじゅんさんはTwitterを使っています 「CQRSはCとQを分離することなので、QからCに依存したら便利だとしても、そもそも分離にならないので、CQRSには該当しなくなると思います。これをCQRSと言ってしまうと論理的に矛盾すると思います。つまり、非CQRSとか、CQRSっぽいもの。たとえばこんな感じhttps://t.co/AcNDU2QITg」 / Twitter
ざっくりCQRS/Event Sourcingを解説する - Speaker Deck
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「最近僕は軽量CQRSとかクエリモデルの導入という表現をするようにしてたりします。前のCQRS解説記事も更新したいのですが…本を書き終えたら…orz」 / Twitter
Amazon CloudFrontが設定可能なCORSとカスタムHTTPレスポンスヘッダーをサポート

AWS

AWSがEventbridgeサービスにイベントリプレイとアーカイブ機能を導入
AWSはAmazon MQがRabbitMQをサポートすると発表
Amazon EventBridge Schema RegistryがAWSで一般向けに提供開始される
「AWS Backup for Amazon S3」が正式版に。Amazon S3のデータ変更をイベントドリブンに連続バックアップ、任意の時点へ復元可能に - Publickey
AmazonがS3 Object Lambdaを発表
Amazon SNS、Amazon Kinesis Data Firehose経由でのメッセージのアーカイブと分析が可能に

Google

Googleは、Pub/Subサービス向けの厳密に一度だけの配信機能をプレビュー
GoogleがEventarcサービスを更新し、新しいUI、イベント送信先、ストレージトリガーを提供
GoogleがEventarcをプレビュー版で発表

Apache

「Apache Kafka 3」が登場、KRaftを強化 | OSDN Magazine
Apache Flink、Kafka、およびPinotを使用したUberでのリアルタイムの正確に1回のイベント処理
イベントストリームKafkaとワークフローエンジンZeebe

企業・団体・言語

PayPalは、次世代のデータ移動プラットフォームとしてApache AirflowとApache Gobblinを標準化
WhatsApp、セキュアなマルチデバイス通信のためにSignalプロトコルを採用
NetflixがMQTTとAlpakka-Kafkaのイベントソーシングで信頼性が高くスケーラブルなプラットフォームを構築
O'Reilly Software Architecture Conference NYで発表されたイベント駆動型マイクロサービス
LinkedIn、システムの複雑性低減のためにLambdaアーキテクチャを廃止
Microsoftは、Azure Web PubSubと呼ばれるリアルタイムWebアプリケーションを構築するためのプレビューサービスを発表
MicrosoftがEvent Hubs Premiumのプレビューを発表
HoneycombがRefineryを発表:トレース対応のサンプリングプロキシ
NetflixによるgRPCを使った実用的なAPIデザイン
Uber Riderアプリでのデータ収集、標準化、大規模な利用
Badooのデータエンジニアリング:1日あたり200億のイベントを処理
Asserting JDK Flight Recorder Events with JfrUnit

News

マイクロソフトが買収した「ThreadX」あらため「Azure RTOS」はまだ実体がない (1/3) - MONOist(モノイスト)
2020年8月5日 Linux 5.8がリリース,コーディングスタイルに"inclusive terminology"適用:Linux Daily Topics|gihyo.jp … 技術評論社

blog

Event Driven Architecture
開発生産性と信頼性の両立を目指すための Event-Driven Architecture - より良いマイクロサービスアーキテクチャを求めて | Wantedly Engineer Blog
Oracle Blogs 日本語のまとめ: [SOA/BPM] EDNを流れるメッセージを確認する
Oracle Blogs 日本語のまとめ: [SOA/BPM] Event Delivery Network (EDN) - A practical example
マイクロサービスとメッセージングのなぜ [疑問編] - 赤帽エンジニアブログ
簡単なリアクティブシーケンス - Faith and Brave - C++で遊ぼう
リアクティブシーケンスのフィルタ - Faith and Brave - C++で遊ぼう
CNCFが策定するクラウドイベントの標準仕様「CloudEvents 1.0」が登場。サーバレスのクラウド間互換を促進するか? - Publickey
MessagePipe – .NET と Unityのためのハイパフォーマンスメッセージングライブラリ | Cygames Engineers' Blog

Twitter

令掛ベインさんはTwitterを使っています 「イベントとリソースでテーブルを共有するためにリソースにイミュータブルなデータへの参照を持たせる設計にしたら、毎秒insertしたり被参照数をみてdeleteするコードを書くことになったのですぐにやめた」 / Twitter
令掛ベインさんはTwitterを使っています 「テーブルの直交化、難しがち」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば TCP/IP というより、socket I/F にイマイチ感を昔から感じてたり。 0byte の recv/read に大事な意味持たせるとか、recvfrom に dest addr 無いとか。」 / Twitter
伊津野 英克さんはTwitterを使っています 「データベースにもHTTPのEtag+If-Modified-Sinceと同じ仕組みがあるといいのにと思うことはよくある。」 / Twitter
Yoshinori KosakaさんはTwitterを使っています 「マイクロサービスって各サービスの状態が各サービス間で重複してしまうので、整合性を保つためにメッセージキューを使って状態の変化を他のサービスに通知する必要が出るんだけど、DBがCDCをサポートしているとアプリケーションサイドで状態変化の通知を実装する必要がなくなって便利なんだよね」 / Twitter
shino | ほかいちさんはTwitterを使っています 「@wawoon_jp ご期待のものなのかは分からないですが、SQL + キュー操作 を同じトランザクションとして扱えるんじゃないかなと思います。ドキュメント。 https://t.co/rbYkMPt4uH」 / Twitter
Oracle Transactional Event Queues対応のKafka Javaクライアント・インタフェース
tagomorisさんはTwitterを使っています 「“遅れたログを永久に受け入れていると、ロードシステムの負荷が非常に大きい” これなー、弊社のログマージジョブも大変……(どんな過去のデータも捨てられない / “データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クッ…” https://t.co/FvzF34MhGT」 / Twitter
データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
mumumuさんはTwitterを使っています 「Exploring the Performance of ROS2 ROS2のアーキテクチャを簡潔にまとめており,Pub/Sub通信を提供するミドルウェアの気持ちがわかった.さらに,ノード間通信の性能や,ボトルネックを調査していて非常に役立つ. 面白いな~と思って読み進めていたら共著者に来年~の指導教員いて笑ってしまった.」 / Twitter
κeenさんはTwitterを使っています 「Rust+PostgreSQLでジョブキューを作る記事。DBの扱いの例としても丁度いいのでは。 How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour https://t.co/zGHUUIVoAr」 / Twitter
How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour

WM

ドッグさんはTwitterを使っています 「ウィンドウマネージャ実装したこと無いから一度やってみたい気もするな.タイル型は木なんだと思うけど,レイアウト情報をどう持つんだろう」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp XMonad は位置とサイズのリストを返す関数を保持してる感じ https://t.co/U7T5ITGd5w `a` は Window ID」 / Twitter
anekos / xmonad-conf / src / XMonad / Layout / Harakiri.hs — Bitbucket
ドッグさんはTwitterを使っています 「@anekos ありがとうございます.やっぱ任意のレイアウトに対応するにはウィンドウとそのレイアウト情報の組をリストに平坦に持つべきな感じしますね」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp この場合、持っているのはあくまでも関数だと思います。(都度計算する) また、レイアウト関数を二つとって新しいレイアウト関数を返す LayoutModifier みたいなのもあったり。」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp すみません、Window (ID?) のリストも持ってないとですね。」 / Twitter
ドッグさんはTwitterを使っています 「@anekos 関数を返すのは計算を遅延する目的なんだと思っていたので,あまりそこに焦点を当ててませんでした.レイアウトが分割統治でやれるのかが気になっていました」 / Twitter
ドッグさんはTwitterを使っています 「パネルを分割するのって素朴に考えると二分木なので親は自分のレイアウトだけ持って,その中のレイアウトは子に再帰的にやらせれば良いかなと思ったけど,それだとできないレイアウトが出てきそう」 / Twitter
(っ=﹏=c) .。o○さんはTwitterを使っています 「@Linda_pp 四畳半問題ですね https://t.co/vmXNHuOcxR」 / Twitter
四畳半問題 - Humanity
ドッグさんはTwitterを使っています 「@itchyny おお,まさしく似たようなことを考えてました.読んでみます.ありがとうございます!」 / Twitter

Wayland

技術評論社

2017年9月5日 Waylandでもリモートデスクトップ! Red Hat開発者がGNOMEにAPIを追加:Linux Daily Topics|gihyo.jp … 技術評論社
第652回 キミはMirを憶えているか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第666回 Waypipeを用いてWayland環境で「X転送 over SSH」っぽいことをしてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

blog

Rust製GUIスタック「Kazari」
Life of a Pixel - Google スライド
Introduction - The Wayland Protocol
weston/terminal.c at master · wayland-project/weston
Appendix A. Wayland Protocol Specification
Introduction - The Wayland Protocol
wayland/wayland.xml at master · wayland-project/wayland
Implementing Resea GUI - 1. Porting Cairo 2D graphics library
Implementing Resea GUI (Part 2): Font Rendering with FreeType
Implementing Resea GUI (Part 3): Porting libpng

Mesa API

FadisさんはTwitterを使っています 「KDEのPlasmaワークスペースがNVIDIAのGBMの実装の上で動くようになったらしい。NVIDIAのGBMの実装は現在NVIDIA Linuxドライバのベータ版でのみ提供されている。尚PlasmaはEGLStreamにも対応しているので、安定版NVIDIAドライバでもWayland+KDEで動かす事自体は可能 https://t.co/qwa3eIIns4」 / Twitter
KDE Plasma Readies Its NVIDIA GBM Support, Fingerprint Authentication Added - Phoronix
FadisさんはTwitterを使っています 「WaylandコンポジタはX無しで描画を行う為に生のKMSの上にEGLでレンダリングコンテキストを作りGLES2で描画を行うが、カーネルから見たバッファとEGLから見たバッファの対応が取れない問題を解決する為に多くのWaylandコンポジタはEGLの裏で動くMesaのGPUのメモリ確保抽象化レイヤーGBMを覗き見していた」 / Twitter
FadisさんはTwitterを使っています 「これはEGLのAPIを提供する実装がMesaでないと困る、という事でNVIDIAドライバの上ではWaylandコンポジタを動かせない事を意味した。そこでNVIDIAはEGLから不足している情報を取れるようにする拡張を提案、その上にコンポジタを実装しようと主張したが、これに対応したコンポジタは限られていた」 / Twitter
FadisさんはTwitterを使っています 「このような状況が数年間続いた末についにNVIDIAが折れてNVIDIAドライバにMesaのGBMと互換のAPIが生える事になった。今回の報はKDEのWaylandコンポジタの実装がNVIDIA製のGBMの上でちゃんと動いたぜ!という話。」 / Twitter
FadisさんはTwitterを使っています 「ちなみにこのWaylandコンポジタの実装がMesaに依存しすぎる問題に対しては、コンテキストの作成、メモリの管理が全てAPIに含まれているVulkanの上にWaylandコンポジタを実装すれば、あとは軽微な拡張だけで「VulkanできればWaylandできる」が実現できるんじゃないか、という別解も模索されている」 / Twitter

libdisplay-info

FadisさんはTwitterを使っています 「https://t.co/F8psUD88iQでEDIDパーサライブラリlibdisplay-infoの開発が始まった話。ディスプレイはホストに対して対応解像度等の情報を含むディスプレイの情報EDIDを送っている。送られてきたEDIDはLinuxのユーザ空間から読めるが、これまでパースは自力で行う必要があった https://t.co/C7RPO6l78J」 / Twitter
libdisplay-info Started To Address The Wayland Fragmentation Around EDID/DisplayID - Phoronix
FadisさんはTwitterを使っています 「EDIDはより高い解像度に対応したり、リフレッシュレートの種類が増えたり、新しい色空間をサポートしたり、HDRに対応したり、製品名を取れるようになったり等様々な理由で繰り返し拡張されてきた為、近代的なディスプレイが返すDisplayID拡張付の長い長いEDIDを正しくパースするのは意外とめんどくさい」 / Twitter
FadisさんはTwitterを使っています 「WaylandコンポジタはEDIDを調べて最適なディスプレイの設定を選ぶ必要があるが、従来EDIDのパースはコンポジタ毎にバラバラに実装されていた。EDIDが複雑になるに従いこのパーサの実装がシャレにならなくなってきたのでコンポジタ非依存の共通のパーサライブラリを作ろう、というのがlibdisplay-info」 / Twitter
FadisさんはTwitterを使っています 「このライブラリの開発は始まったばかりで、現時点でgitリポジトリに置かれているのはLICENSEとREADMEだけ https://t.co/16FphPojab」 / Twitter
Simon Ser / libdisplay-info · GitLab

Twitter

Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WaylandになってGTKレベルでちゃんとHiDPI per Monitorがサポートされてるのだが、まぁなんかGeckoのバグ踏んでる」 / Twitter
FadisさんはTwitterを使っています 「glfwがsurfaceを作れない!→waylandをenableしたglfwはX上でsurfaceを作れない→何でwaylandがenableになったの?→次にglfwのバージョンが上がる時にはNVIDIA+wayland事情が改善してると信じてGentooのUSEフラグをバージョン付きで-waylandしてた、を3回繰り返してglfwを常に-waylandするようにした」 / Twitter
FadisさんはTwitterを使っています 「Mozillaにテレメトリを送っているFirefoxユーザのうちWaylandを使っているのは、XまたはWaylandを使っているユーザのうち10%未満だ、という話。ディストリ標準のFirefoxでテレメトリを切っているディストリもあるため、サンプルに偏りがある可能性はあるとしている https://t.co/Twrl1NpyHt」 / Twitter
Less Than 10% Of Firefox Users On Linux Are Running Wayland - Phoronix

Wayland
wayland / wayland · GitLab
MirServer/wlcs: Wayland Conformance Test Suite
Wayland | OSDN Magazine
Wayland - Wikipedia
Wayland (display server protocol) - Wikipedia
Wayland - ArchWiki
Wayland - ArchWiki
Wayland ‐ 通信用語の基礎知識
Wayland | Linux技術者認定 LinuC | LPI-Japan
Waylandとは? - Qiita
Wayland/jp - RawPedia
Waylandのウィンドウのx、y座標を設定するにはどうすればよいですか?
Wayland - 接続と切断
Waylandについて - 雑記
bitWalk's: Wayland と X Window System
GNOMEでWaylandを使う | 普段使いのArch Linux
Firefox 75がLinux向けディスプレイサーバーのWaylandをサポート - GIGAZINE
Ubuntu 19.04 その11 - Waylandセッションのデフォルト化はUbuntu 20.10まで見送りか? - kledgeb
【Ubuntu 17.10】WaylandからXorgに切り替えるべき7つの理由 | LFI
managarm/managarm: Pragmatic microkernel-based OS with fully asynchronous I/O

レンダリング

その他

その他

借り初めのひみつきち

ビットマップクラス統合 - 借り初めのひみつきち
3種のビットマップ - 借り初めのひみつきち
MYOS のウィンドウのつくりかた - 借り初めのひみつきち
今週の MYOS 🧚‍♀️ - 借り初めのひみつきち

株式会社ロジカルビート

【Shadertoy】レイマーチング基礎 – 株式会社ロジカルビート
【Unity】【描画処理】16ビットカラーの中身 – 株式会社ロジカルビート
【描画処理】【数学】16ビットカラーの中身(補足編) – 株式会社ロジカルビート

Flutter

Inside Flutter - Flutter
Flutter の Widget ツリーの裏側で起こっていること. Widget・State・Element・RenderObject… | by mono  | Flutter 🇯🇵 | Medium
Flutter はじめの一歩. はじめに自動的に作られるカウンターアプリを丁寧に解説 | by mono  | Flutter 🇯🇵 | Medium
【Flutter】必要最低限の構造からFlutterの基礎を学ぶ - はなちるのマイノート
社内でFlutterのハンズオンを行ったので、資料を公開します - ペパボテックブログ
Flutter入門のためのDart入門 - Qiita
Flutter:Widget一覧 - Qiita
Flutterの実践導入で用いるBLoC Patternの全体像と押さえておくポイント|yamarkz - Kazuki Yamaguchi|note
Flutter Webの現状調査 - ntaoo blog
最高のクロスプラットフォームを自称するGoogleのUIツールキットFlutter 2.2

革命の日々! Windows VistaのIE7で文字サイズ変更が記憶されない。
MozillaはQuantumプロジェクトで過去と訣別し、未来に賭ける - Mozilla Flux
いまどきのデスクトップ処理系 - Backnumbers: Steps to Phantasien
動画上にコメントを表示する"弾幕"の仕様 - ASnoKaze blog
#html_modules_study アウトラインメモ | Web Scratch
The WHATWG Blog — The state of fieldset interoperability
Proposal for promotable IFRAME - WICG
縦書きWeb普及委員会
FAQ | たてよこWebアワード
カクヨムでの縦組み表示の実装と、縦書きWebの将来に向けて (builderscon tokyo 2018) - Hatena Developer Blog
WEB+DB PRESS の連載はなんとか打ち切りにならず続行中 - Backnumbers: Steps to Phantasien
Blog Title - 第二回部会 - Part 1 (概要)
John Resig - Selectors that People Actually Use
🐛よくハマったFlexboxのバグまとめ|たかもそ|note
NetBSD と Adobe Flash Player の思い出:tsutsuiの作業記録置き場 - ブロマガ
カスタムなSF SymbolsをSVGから自動生成する - クックパッド開発者ブログ
特定の端末のみで起こる WebView プチフリーズを Tracing を利用して追った話 - SmartNews Engineering Blog
Analyze runtime performance - Chrome Developers
実行時のパフォーマンスの分析  |  Chrome DevTools  |  Google Developers
グラフ(ネットワーク)を奇麗に描画するアルゴリズム - mfumiの日記
JavaScript - Fruchterman-Reingoldというグラフを描画するアルゴリズムを実装してみたが、すべてのノードが描画領域の右下に集まってしまう|teratail
CiteSeerX — Graph Drawing by Force-directed Placement
Hugo で <datalist> を活用したタグの選択補完機能を実装する | Coelacanth's Dream
CNNを用いた単一画像からの描画モードへの分解と合成 | Preferred Networks Research & Development
Let's build a browser engine! Part 1: Getting started
What You Need to Know About React 18 | by Sheeraz Shaikh | Jun, 2021 | JavaScript in Plain English
N回目のWebComponents元年: Lit 2.0 - Google スライド
1次B-スプライン曲線の制御点列をそのまま利用して2次B-スプライン曲線で1次B-スプライン曲線を近似する - にせねこメモ
「PipeWire 0.3.44」が公開 | OSDN Magazine

won't fix

won't fix: Adobeが行っている各ブラウザへのコントリビューション
won't fix: Twitterの仕様の認識間違いに対してのMozillaの反論
won't fix: safe-area-insets が本当に使われているとは思えない
won't fix: WebKitとBlinkのスタンスの違い

blog.jxck.io

Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
ブラウザで何が起こっているのかを知る Reporting API と ReportingObserver | blog.jxck.io
img の srcset 指定時に選択される画像 | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Font Display プロパティを用いた FOIT/FOUT 最適化 | blog.jxck.io
CSS Rhythmic Sizing で Vertical Rhythm | blog.jxck.io
mouseover 中に表示される DOM のデバッグ | blog.jxck.io

nhiroki's weblog

crossorigin 属性の仕様を読み解く
リソースの読み込みを助けるウェブブラウザ API の世界
ウェブの進化とウェブブラウザ開発の最前線
environment settings object の origin の仕様を追う

mizchi's blog

この DOM がすごい2018: worker-dom - mizchi's blog
worker-dom-code-reading.md
SPA が、ウェブ開発のベストプラクティスになる時代 - mizchi's blog
実践: React Hooks - mizchi's blog
WebComponents: ReactNative.View のような CSS の既定値を持つだけの x-view を作ってみる - mizchi's blog
React Hooks をどう使っていくか - mizchi's blog
「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
WEB+DB PRESS Vol.106 で仮想DOMアルゴリズムについて書かせていただきました - mizchi's blog
GUI環境でWeb の UIを構築する開発ツールを作りたい - mizchi's blog

水底の血

メモ:CSS Basic User Interface Module Level 3 (CSS3 UI)は勧告案へ - 水底の血
メモ:`scrollbar-*-color`プロパティが標準化への一歩 - 水底の血
CSS Snapshot 2017が発行されました - 水底の血
CSSワーキンググループの示す2015年時点のCSS仕様群の姿 - 水底の血
(メモ)CSS1、CSS 2.0がSuperseded Recommendationへ - 水底の血
`appearance`プロパティはブラウザーでサポートされません - 水底の血
HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血
帰ってくるHTML Ruby(rb/rtc)要素 - 水底の血
『オンスクリーン タイポグラフィ 事例と論説から考えるウェブの文字表現』をほんのちょっぴりお手伝いした話 - 水底の血

Shiki’s Weblog

Shiki’s Weblog: ESウェブブラウザ通信 - HTTPリクエストの並行処理
Shiki’s Weblog: ESウェブブラウザ通信 - CSS 2.1 Test Suite #13

レンダラーの提案

React Native

React Nativeとネイティブアプリでの開発の違いとは | TechAcademyマガジン
React Nativeを用いた初めてのiOSアプリ開発 : 選んだ理由と、開発で学んだこと | プログラミング | POSTD
React Native開発のつらい点まとめ – MMiyauchi Blog
React Nativeとは何なのか - Qiita

やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
Performance Calendar » React’s diff algorithm
Reconciliation - React
Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
Facebook の決断:MVCはスケールしない。ならば Flux だ。
Fluxアーキテクチャの覚え書きを書いた - saneyuki_s log

Adwaysエンジニアブログ

React NativeのレイアウトエンジンYogaの仕組み [前編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [後編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [続編] - Adwaysエンジニアブログ
CSS Flexible Box Layout Module Level 1
CSS Flexible Box Layout Module Level 1

ゆっくりと…

ブラウザ動作の理解-レンダリングツリーの構築と描画のタイミング | ゆっくりと…
ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…
ブラウザ動作の理解-レンダリングの負荷を測る | ゆっくりと…

フロントエンドBlog

BackstopJSを使ったCSSのリファクタリング | フロントエンドBlog | ミツエーリンクス
webpack 4とmini-css-extract-pluginを使ってCSSを別ファイルに書き出す方法 | フロントエンドBlog | ミツエーリンクス
BabelとPostCSS、ESLintとstylelintの設定をpackage.jsonに詰め込んでみる | フロントエンドBlog | ミツエーリンクス
Shadow DOM と CSS Containment によって実現されたCSSのスコープの概念 | フロントエンドBlog | ミツエーリンクス
新たなCSS設計思想 MOCSS の登場 | フロントエンドBlog | ミツエーリンクス
IE9サポート終了・CSS Flexible Box Layout Moduleの利用拡大 | フロントエンドBlog | ミツエーリンクス
「Can I use...」にCSSのtext-orientationプロパティが掲載されるようになりました | フロントエンドBlog | ミツエーリンクス
CSS Template Layout Moduleの面影を追う | フロントエンドBlog | ミツエーリンクス
Google Chrome 61で追加されたscroll-behaviorを考える | フロントエンドBlog | ミツエーリンクス
scroll-behavior - CSS | MDN
3ステップでCSS設計のプロセスを振り返る | フロントエンドBlog | ミツエーリンクス
CSS Paint APIの使いどころ | フロントエンドBlog | ミツエーリンクス
clip-pathを使ってWebページの表現方法を増やそう! | フロントエンドBlog | ミツエーリンクス
CSSが効かない!?fieldset要素でも簡単にテーブルレイアウトを実現できるdisplay: contents; | フロントエンドBlog | ミツエーリンクス
記述次第でAutoprefixerいらず?!CSS Grid LayoutのIE11対応方法と未サポートブラウザのフォールバック例 | フロントエンドBlog | ミツエーリンクス
CSS Painting APIが勧告候補になりました。 | フロントエンドBlog | ミツエーリンクス
サイトにCSSだけで魔法陣を散りばめて新しい表現を模索してみる(前編) | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話 | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話の余談 | フロントエンドBlog | ミツエーリンクス
CSS Working Group の Editor's Drafts に見るCSSの未来 | フロントエンドBlog | ミツエーリンクス
CSSとJavaScriptで円の中に文字を収める | フロントエンドBlog | ミツエーリンクス
JavaScriptで操作するCSS TransitionとCSSOMの関係 | フロントエンドBlog | ミツエーリンクス
VS CodeとMJMLでレスポンシブなHTMLメールを作成する | フロントエンドBlog | ミツエーリンクス
HTMLメールにカウントダウンを組み込む | フロントエンドBlog | ミツエーリンクス
W3C発行のHTMLがすべて廃止された日 | フロントエンドBlog | ミツエーリンクス
いろいろなHTMLのリンター | フロントエンドBlog | ミツエーリンクス
source要素にwidth/height属性を指定して各画像のアスペクト比の維持とCLSの改善を図る | フロントエンドBlog | ミツエーリンクス
2021年に伸びるCSSプロパティ3選 | フロントエンドBlog | ミツエーリンクス
CSS Snapshot 2020が発行されました | フロントエンドBlog | ミツエーリンクス
WHATWGとW3Cとの間の覚書の更新について | フロントエンドBlog | ミツエーリンクス

HTML5Experts.jp

モバイルWebのUIを速くする基本テクニックがわかる──Google I/O 2016 High Performance Web UI | HTML5Experts.jp
「Web Componentsが来る!CSS設計はどうなる?」―CSSのエキスパートに聞いてみた! | HTML5Experts.jp
これからのCSSはmargin禁止!?CSSグリッドレイアウトやコンポーネント指向なCSSについて、矢倉さんに聞いてきた! | HTML5Experts.jp
CSSでバーティカルリズムを実現しよう!line-height-stepを使ってみる | HTML5Experts.jp

本の虫

本の虫: ベンダープレフィクスはクソミソのゲロゲロ
本の虫: ブラウザは須く一部のCSS3 rubyを実装すべし
本の虫: CSS3のプロパティ、text-combine

技術評論社

第586回 waifu2xで画像をきれいに拡大する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
BootstrapでレスポンシブなWebサイト制作:連載|gihyo.jp … 技術評論社

Publickey

W3CとIDPFが正式統合。Web技術と出版技術を融合する将来に向け、ロードマップ作成に着手 - Publickey
Webで縦書きなどを実現する「CSS Writing Modes Level 3」、ついにW3Cの「勧告」に - Publickey
Angular 9正式版リリース。高速かつ軽量なレンダリングエンジン「Ivy」がデフォルトに - Publickey
Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021 - Publickey

ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
Layout、Paintingとは何か?レンダリングから学ぶWebサイトのパフォーマンス | Dress Cording
[フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET
Webエンジニアが知っておくべきブラウザレンダリングの仕組み | 学生エンジニアのプログラミング
2017-09-26のJS: Chrome 62 Beta、Safari 11.0、モダンブラウザのレンダリングパイプライン - JSer.info
A Short Walkthrough of WebRender 2 — Hacking With Caffeine
A Quick Overview of Chrome's Rendering Path — Hacking With Caffeine
Mus and Compositing
Notes from FOSDEM 2017 · Anjana Sofia Vakil
LayoutNG - Google ドキュメント
Building a faster browser: Behind the scenes improvements in Microsoft Edge | Microsoft Edge Web Summit 2017 | Channel 9
LibDOM | DOM Library
Cacheability of render critical resources - Analysis - Discuss - HTTP Archive
How JavaScript works: the rendering engine and tips to optimize its performance
ブラウザの作り方 - Speaker Deck
ちいさな Web ブラウザを作ってみよう

HTML

HTML

HTML

高梨陣平さんはTwitterを使っています 「HTML自体にプログラミングの要素を入れるという提案 Lispの(悪い)再発明だとの揶揄が :-) 個人的には反対です。markup languageはmarkupで閉じていたほうが良い。」 / Twitter
Hacker NewsさんはTwitterを使っています 「HTML Is/as a Programming Language: https://t.co/aLIojmOm0w Comments: https://t.co/Q3gh7Q50cl」 / Twitter
marianoguerra/hiapl: HTML Is A Programming Language
HTML is/as a programming language | Hacker News
てらモス♋️さんはTwitterを使っています 「JSXさんの悪口はそこまでだ!ですか(´・ω・`)?」 / Twitter
てらモス♋️さんはTwitterを使っています 「言語の構文をパースしてASTにするの結構虚無で初めから何かしらのシリアライズ形式でASTくださいという用途はそれなりにあるやつ(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「そしてYAML上に言語が生えがち(´・ω・`)」 / Twitter

Mozilla

その他

Firefoxに「パフォーマンス」関連設定が実装される予定 | スラド IT
本の虫: Firefox 23では、デフォルトでSSLページ内で非SSLコンテンツの読み込みをブロックする
Firefoxの先読み機能の無効化とその確認手順 - ククログ(2017-06-16)
MozillaがFirefoxの拡張機能で難読化コードの使用禁止を発表した2日後、全拡張機能が動作しなくなるトラブルが発生 | スラド デベロッパー
Makoto Kato ︎︎さんのツイート: "いつも思うんだけど、GeckoをServoに置換するなんて言ってないのに、みんな勘違いするのはなんなんだろう https://t.co/5PwG6uh0LS"
IT エンジニアのための 流し読み Windows 10 - 新しい Microsoft Edge - from Build 2019
won't fix: New Firefox Preview for Android

Firefox

Mozilla

Bugzilla

Home :: Bugzilla :: bugzilla.org
なかのん&マジックさんのツイート: "bugzillaのREOPENってもうFIXEDからは禁止で良いと思うんだけどな。パッチの投入があると、そのステータス管理にそのバグは使わないといけないから、REOPENされるとそれができなくなるんだよな。"
なかのん&マジックさんのツイート: "それか、REOPENはFIXEDにした人とAssigneeにのみ可能な特権にしても良いんでは。"

Extension Compatibility Tester

Rockridgeさんのツイート: "Mozillaが、Chromeの拡張機能ファイルをアップロードするとWebExtensionsとの互換性を診断してくれるツール「Extension Compatibility Tester」を公開した。別途コマンドラインツールも提… https://t.co/idngQYPFip"
Introducing the Extension Compatibility Tester ★ Mozilla Hacks – the Web developer blog
Extension Compatibility Tester

MDN

Mozilla Developer Network
Mozilla Developer Network
Mozilla のソースコードに貢献する - Mozilla | MDN
Working with Mozilla source code - Mozilla | MDN
WebExtensions - Mozilla | MDN
Google Chrome からの移行 - Mozilla | MDN

Mozilla Flux

Firefox Developer Editionは早期Beta版として存続 未署名のアドオンも引き続き利用可能 - Mozilla Flux
ワンクリックで以前のセッションを復元する(Firefox 56以降) - Mozilla Flux

WebDINO Japan

WebDINO Japan (旧・一般社団法人 Mozilla Japan)
Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | HTML5Experts.jp
Mozilla Japanが組織名を“WebDINO Japan”へ変更 ~7月3日より活動を開始 - 窓の杜

SecureDrop

Rockridgeさんのツイート: "MozillaがSecureDropというオープンソースソフトウェアに対し過去最高の25万ドルを授与。匿名の内部通報者が安全にメディア組織と文書のやりとりなどができるシステムを構築するもの。参照:… https://t.co/fVe5XGpspY"
SecureDrop | The open-source whistleblower submission system managed by Freedom of the Press Foundation.
freedomofpress/securedrop: GitHub repository for the SecureDrop whistleblower platform. Do not submit tips here!
文書を安全に匿名の情報筋から得ることを可能にするオープンソースシステム「SecureDrop」 - GIGAZINE
SecureDrop - Wikipedia

窓の杜

Mozillaなどが支援するRust製新ブラウザー「Servo」にWindows向けナイトリー版が登場 - 窓の杜
【レビュー】簡単ファイル共有サービス“Firefox Send” ~リンクが24時間経過で自動消滅 - 窓の杜
1,691個のタブを開いたセッションをわずか8秒で復元 ~「Firefox 55」が正式版に - 窓の杜
「Firefox Quantum」が正式公開 ~6カ月前と比べて2倍以上に高速化、新UIも導入 - 窓の杜

Twitter

histric-1

Rockridgeさんのツイート: "Firefox NightlyのリリースノートがAtomフィードに対応する模様。参照:https://t.co/JVw2bIikP6 情報提供感謝:@koyoskeh / “1359037 - Provide some synd…” https://t.co/UDSr8RkXce"
Rockridgeさんのツイート: "Mozilla関連の商標はWebDINO JapanからMozilla Corp.に移管されたらしい。1月にエンジニアとそれ以外でオフィスを分けたのも、エンジニアはMozilla Corp.と直接雇用契約を結ぶことになるから? https://t.co/QWVfZrl6K4"
Rockridgeさんのツイート: "Test Pilotの実験にSend(オンライン上のファイル共有)、Voice Fill(音声による文字入力)、Notes(サイドバーの簡易メモ帳)の3つが追加された。 / “New Test Pilot Experiments…” https://t.co/nX5evt73Bn"
Rockridgeさんのツイート: "Sendは「大きなファイル (最大 1 GB) をアップロード、暗号化し、オンラインで共有でき」「生成したリンクは 1 回のダウンロードあるいは 24 時間後に期限切れとなり、Send サーバーに保存されたファイルは自動的に削除」。 https://t.co/G7YeRCET3f"
Rockridgeさんのツイート: "Mozilla Information Trust Initiative (MITI)はインターネットの信用性・健全性を損なうフェイクニュースの排除を目指す活動だ。調査・研究やリテラシー教育のほか、誤情報に対処する技術の開発にも取… https://t.co/6RdAcdJXRb"
The Mozilla Information Trust Initiative: Building a movement to fight misinformation online - The Mozilla Blog
Rockridgeさんのツイート: "Mozillaは将来的にWindows版FirefoxのビルドツールをMSVCからclang-clへと移行させるつもりらしい。現時点では多数の課題を抱えており、すぐにどうこうできる話ではないようだが。 / “Firefox an…” https://t.co/ArzhX4DczO"
Rockridgeさんのツイート: "Windows版Firefoxのビルドツールがclang-clに移行する場合、リンカはLLDになる模様。参照:https://t.co/cKO2SGhBMC / “1384434 - (linker-lld) [meta] Li…” https://t.co/HPNBmn88kC"
Rockridgeさんのツイート: "Firefoxアカウントのシステムが外部のセキュリティ監査を受けており、安全であることをアピールした記事。 / “A Security Audit of Firefox Accounts | Mozilla Security B…” https://t.co/SwshVq6XbQ"
A Security Audit of Firefox Accounts | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaは音声認識システムをオープン化することで、大手企業による囲い込みを防ぎ、イノベーションを促進させる考えだ。 / “How Could You Use a Speech Interface? - The Mozill…” https://t.co/1y3pQ3JK6l"
How Could You Use a Speech Interface? - The Mozilla Blog
Rockridgeさんのツイート: "about:mozillaの文章がすべて掲載されている。背景の解説つき。 / “The Book of Mozilla - Wikipedia” https://t.co/Wimu01x8iS"
The Book of Mozilla - Wikipedia
Rockridgeさんのツイート: "「Mozilla 製品の日本語を統一感のある高品位なものとするため、用語の対訳表などと合わせて日本語化のガイドラインを作成・公開しています。」 / “styleguides/l10nguideline.md at master …” https://t.co/38KaSc853N"
Rockridgeさんのツイート: "Mozillaはすべてのビルド・テスト環境をクラウドに移行するのかと思いきや、そうでもないらしい。クラウドに適さない部分は新設のデータセンターに残すという。 / “IT/WeeklyMinIT - MozillaWiki” https://t.co/r0wItU30Xx"
Rockridgeさんのツイート: "Mozillaは各種オープンソースプロジェクトに寄付を行っており、その総額は2017年4月以降に限っても53万9000ドルに達する。たとえばwebpackプロジェクトは12万5000ドルを受け取った。 / “Mozilla Aw…” https://t.co/VhTXxYejZC"
Rockridgeさんのツイート: "Mozilla Corp.のDenelle Dixon氏が米TechCrunchの取材に回答したところによれば、Mozilla側が契約上の権利を行使して、Yahoo!(の承継会社)との契約を終了させたそうだ。 / “Mozill…” https://t.co/7u61MKvcXT"
Rockridgeさんのツイート: "Bloombergの報道によれば、Yahoo!の承継会社とみられるVerizon傘下のOath社は、「Mozillaの決定に驚いている。契約条件に関し同社と協議中である。」という趣旨のコメントを出した。すんなり終われないかも。 https://t.co/lbHYZbqeeR"
Rockridgeさんのツイート: "Mozilla Corp.の従業員数が1000人余り(おそらくRead It Later,Inc.を除く数字)、Mozilla Foundationの従業員数が80人と記載されている。 / “The State of Mozil…” https://t.co/xfNINXHbkX"
Rockridgeさんのツイート: "Mozilla Foundation及びその子会社における2016年版監査済財務諸表。検索エンジンとの提携契約収入がロイヤリティの94%、債権残高の79%を占める(注8)一方、ロイヤリティ収入中のYahoo!依存率は75%程度に低… https://t.co/surxlnii5A"
Rockridgeさんのツイート: "ブラウザエンジンを維持し続けるには多大なコストを要するが、Mozillaのミッションがそれを正当化する、との議論。あえて今この話題を持ち出してきた理由が気になる。 / “Eyes Above The Waves: Maintai…” https://t.co/12qge95fUZ"
Rockridgeさんのツイート: "Firefoxアカウントの予備アドレスをメインアドレスに切り替える方法について(未訳)。情報提供感謝:https://t.co/UmSaGf51MO / “Change primary email address on Fire…” https://t.co/obz8qd8rmZ"
Rockridgeさんのツイート: "Mozilla IRC Networkのログが集積されている。 / “LogBot” https://t.co/relGYU650A"
LogBot

Rockridgeさんのツイート: "Mozillaの開発者とMicrosoftの(おそらくEdgeの)開発者が議論するための、プライベートなオンラインフォーラムが存在するようだ。 / “1423550 - A load with an assigned appli…” https://t.co/P8AdYk7KlA"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャであるLockboxは、まずiOS向けの独立したアプリという形で試験的に提供される。参照:https://t.co/mes2CPqjlC / “QA/Mobile/LockboxiOST…” https://t.co/goYYMWMwgH"
Rockridgeさんのツイート: "Firefoxアカウントが二段階認証をサポート。対象ユーザーは順次拡大される。TOTPの採用によりGoogle認証システムなどのアプリを用いた認証が可能。参照:https://t.co/94h4ILkyyC / “Two-ste…” https://t.co/nZ8NQVYGgw"
なかのん&マジックさんのツイート: "Googleアカウントは複数使い分けが困難なサイトの作りしてくれてるんで、コンテナ使い出してるけど、これ基本的には必須の機能って感じだけど、イマイチ使い勝手が……"
なかのん&マジックさんのツイート: "Firefoxのコンテナ、ブックマークとの相性が本当に悪い……"
なかのん&マジックさんのツイート: "ブックマークとコンテナの組み合わせを限定できないんでpin止めしたタブが増えてる気もする。"

Firefox Hardware Report
Mozilla
donate.mozilla.org | Mozilla への寄付をお願いします
利益ではなく、人々のためのインターネット — Mozilla
より優れた、高速でプライベートな最新ブラウザー | Firefox
Mozilla サポート
Servo Developer Preview Downloads
プレリリース版でブラウザーの新機能を試そう | Firefox
Mozilla Firefoxのバージョンの変遷 - Wikipedia
Mozilla Japan コミュニティポータル
Mozilla Japan コミュニティ(@mozillajp)さん | Twitter
mozilla-japan – Medium
MozillaZine.jp
オフィス管理や雑務に時間をとられず、本来の仕事にだけ集中して取り組める環境 | サーブコープブログ
What is “chrome://FirefoxAccounts (Firefox Accounts credentials)” under “Saved Logins” section in Firefox? Can I delete it? : firefox
Thunderbird — メールをもっと簡単に。 — Mozilla
最新 Thunderbird トピック - Mozilla Discourse
Windows ビルド環境の準備 - Mozilla | MDN

ウェブサイトのセキュリティを自動判定する「Observatory by Mozilla」 -INTERNET Watch
【翻訳】ZAP を用いた Web セキュリティのベースライン運用 - Mozilla Security Blog 日本語版
hashedhyphen/mozsec-jp: Mozilla Security Blog 日本語版 (http://mozsec-jp.hatenablog.jp)
Observatory by Mozilla
mozilla/http-observatory: HTTP Observatory
Security/Guidelines/Web Security - MozillaWiki
Security/Server Side TLS - MozillaWiki
インターネットの安全を守る上での Mozilla の役割: 皆さんのご協力も必要です | Mozilla Japan ブログ
Analysis of the Alexa Top 1M Sites | Mozilla Security Blog
Mozilla、“Firefox アカウント”のセキュリティ監査を実施 ~15の問題を悪用前に対策 - 窓の杜
Firefox Release Calendar - MozillaWiki
「Firefox」をもっと安全に! “Firefox アカウント”を2段階認証で武装してみる - やじうまの杜 - 窓の杜
もはやマイナーブラウザの域に? Firefoxのシェアがついに10%を切り一桁台に突入へ【やじうまWatch】 - INTERNET Watch
IdM実験室: [FIDO]Firefox 60の正式版がリリースされたのでWebAuthnを試してみる
IdM実験室: FirefoxにSAML Tracerが復活
Firefoxへのフィードバックの仕方:Windows編 - ククログ(2018-07-03)
一ノ瀬 いろはさんのツイート: "FIrefox 版β も作ってるみたいなんでどうでしょ。 https://t.co/pZlW0Uw5T3 基本的には BOOTH で売ってる英辞郎使うことを念頭に置いてます。… "
Chrome拡張の高速な英語辞書ツールをつくりました - Qiita
Firefox Monitor
モジラ、「Firefoxアカウント」のリカバリキー生成機能を公開 - CNET Japan
Reset your Firefox Account password with Recovery Keys | Mozilla Support
「Firefox 67」正式版リリース、マイニングスクリプトのブロックや追跡防止機能の強化、ページロードの高速化など - GIGAZINE

窓の杜

Mozilla、「Firefox 59」を正式公開 ~新しいキャッシュ技術でパフォーマンス向上 - 窓の杜
HTTPサイトに“Not Secure”ラベルを表示、「Google Chrome」に続き「Firefox」でも - やじうまの杜 - 窓の杜
Mozilla、「Firefox 61」を正式公開 - 窓の杜
Mozilla、情報漏洩の被害に遭ってないかをチェックする“Firefox Monitor”をリリース - 窓の杜

OSDN

性能強化を継続、プライベートモードでのプライバシー保護も改善した「Firefox 59」 | OSDN Magazine
Quantum CSSを強化した「Firefox 61」が公開 | OSDN Magazine
「Firefox 64」リリース、タブの強化や新しいタスクマネージャ表示を導入 | OSDN Magazine
「Firefox 66」リリース、自動再生の音声がデフォルトでオフに | OSDN Magazine
「Firefox 67.0」リリース、仮想通貨のマイニングやフィンガープリントによる追跡をブロックする機能が実装される | OSDN Magazine

Mozilla Flux

Firefoxのパスワードマネージャーを刷新するLockboxプロジェクトが本格始動中 - Mozilla Flux
マウスホイールでページをスクロールする際の小技(Firefox 58以降) - Mozilla Flux
タブのダブルクリックで現在表示させているタブを閉じる小技(Firefox 61以降) - Mozilla Flux
タブの切り替えをスムーズにするTab Warming機能について(Firefox 61以降) - Mozilla Flux
Firefox 63に複数タブの選択・操作機能が実装される見込み - Mozilla Flux
ブラウザの「更新の確認は行わない」設定をFirefox 63で削除 - Mozilla Flux

Mozilla Security Blog

dynamis (でゅなみす)さんのツイート: "Mozillaが遂にすべての新機能はSecure Contextに限って実装していくと宣言。 Service Workerみたいな粒度ではなくCSSプロパティレベルでもHTTP環境には新機能を原則提供しない方針でかなりアグレッシブ https://t.co/dlTJEPeM2D"
Secure Contexts Everywhere | Mozilla Security Blog
Rockridgeさんのツイート: "Android版Firefox Nightlyにおいて、Google検索とFacebookを対象に、UA文字列をモバイル版Chromeに偽装するシステムアドオンが実験的に有効化されている。参照:… https://t.co/XgazSmUMDA"
When does Firefox alert for breached sites? | Mozilla Security Blog

Firefox サイト互換性情報

今後予定されている変更 | Firefox サイト互換性情報
カテゴリ別にドキュメントを参照 | Firefox サイト互換性情報
HTML コンテキストメニュー対応が廃止されます | Firefox サイト互換性情報
Basic 認証情報が ISO-8859-1 から UTF-8 によるエンコードに変わりました (影響あり) | Firefox サイト互換性情報

4x

Rockridgeさんのツイート: "Fx42:Android版で日本の一部Webサイトにおいてユーザーエージェント文字列の偽装を行い、モバイル版が正しく提供されるようにした。Yahoo!関連、mixi、LOHACO、ユニクロ、楽天、NHKが対象。 / “11772…” https://t.co/Oo11q5gtrL"
Firefox 44 は type="password" が暗号化されていないページで使われていると警告を表示 | フロントエンドBlog | ミツエーリンクス
RockridgeさんはTwitterを使っています: "Fx47:JavaScriptによって追加されたHTMLの要素にリンクのプリフェッチの指定が含まれていた場合も、プリフェッチが行われるようになった。 / “580313 – prefetch links not followed…” https://t.co/hOUAhPBbYN"
Rockridgeさんのツイート: "Fx47:CRX形式のアーカイブからファイルを抽出する機能をサポート。 / “1260836 – Add support for CRX file extraction” https://t.co/E9YT5ZpRoq"
Rockridgeさんのツイート: "Fx49:トラッキング防止機能が有効な場合は、Do Not Track(DNT)の設定が無効でも、DNTシグナルを送信するようにした(コメント2)。 / “1258033 – Fix the DNT loophole for t…” https://t.co/NwhRLwZFcK"
Rockridgeさんのツイート: "Fx48:読み込みが許可されていないファイル(Webページ)を読み込んだ際にエラーページが表示されるようになった。 / “682294 – Opening a page which we can't read should di…” https://t.co/VXVdPcfMqk"
Rockridgeさんのツイート: "Fx49:HTML5のdetails要素とsummary要素がリリースチャンネルでもデフォルト有効化。 / “1226455 – (ship-details-summary) ship support for <details>…” https://t.co/gXJtEpBsnG"
Rockridgeさんのツイート: "Fx49:a要素のreferrerpolicy属性にno-referrer-when-downgradeとorigin-when-cross-originの値を指定できるようになった。 / “1178337 – Valid re…” https://t.co/aj8IEovDCH"
Rockridgeさんのツイート: "Firefox 49で起動時に未送信のクラッシュレポートの送信を促すようにした理由は、Firefoxのシャットダウン時のクラッシュが、まさにシャットダウン中であるがゆえにこれまで送信されてこなかったら。 / “Fwd: [des…” https://t.co/xnwwG3qk36"
details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Fx49:マルウェアなどのダウンロードを防止する機能について、対象となるファイル拡張子の種類が増えた。 / “1291472 – Add more application reputation extensions” https://t.co/hKXAqLifkb"
Rockridgeさんのツイート: "Fx49:HTTPで接続したWebサイトに関し保存したパスワードが、HTTPS接続した同一ドメインにおいても自動補完されるようになった。 / “667233 – HTTP passwords should be used on …” https://t.co/5mj1yuHjpC"
Rockridgeさんのツイート: "Firefoxの製品内部で、ブラックリスト・ホワイトリストの呼び方をやめて、ブロックリスト・許容リストに置き換える作業が進んでいる。 / “1149485 - Rename 'blacklist' to 'blocklist' …” https://t.co/iQIdtcIkUh"
Rockridgeさんのツイート: "Firefoxのチャンネルを問わず、インストールするたびに別プロファイルを作成・使用する機能が実現に向けて動き出した。ダウングレードからプロファイルを守る機能と併せてFirefox 66以降に実装される。 / “Coming i…” https://t.co/4aSf8Hzk5c"

5x

50

Rockridgeさんのツイート: "Fx50:起動時に読み込みを保留しているタブがある中で「すべてのタブをブックマーク」すると、保存されたブックマークの名前欄に空欄が生じる問題を修正。 / “754623 – Name field of bookmarks sav…” https://t.co/sGM6GGyMfh"
Rockridgeさんのツイート: "Fx50:履歴とブックマークのデータベースにおいて、URLの同一性を判定するためのインデックスとしてURLの複製ではなくそのハッシュ値を用いるようにした。データベースサイズを圧縮できる。 / “889561 – moz_plac…” https://t.co/1nsi7JbFBb"
Rockridgeさんのツイート: "Fx50:各種パーミッションに関する通知アイコンは、ロケーションバーの「i」アイコンと南京錠アイコンの間(アイデンティティブロック)に表示される。 / “1267617 – Move notification anchors t…” https://t.co/MGSQcNJ6Rc"
Rockridgeさんのツイート: "Fx50:PointerLock APIのパーミッション要求が不要となった。 / “1273351 – Get rid of permission requirement for PointerLock API” https://t.co/HYigR20hla"
Rockridgeさんのツイート: "Fx50:ローテーションセンサーを備えていないPC(タッチスクリーン機能付きデスクトップなど)でもスクリーンキーボードが表示されるようになった。 / “1226522 – On-screen keyboard not displ…” https://t.co/z2T2De5o3w"
Firefox 50でページ内検索結果の表示方法が変更 - Mozilla Flux
Rockridgeさんのツイート: "Fx50:認証が必要なネットワークを検出したときは自動的にログインページを開く仕組みが実装された。当面はNightlyチャンネルでのみ有効。参照:https://t.co/OXgTMzHwCK / “989193 – Open …” https://t.co/mtjEnUqwSw"
Rockridgeさんのツイート: "Fx50:何らかのパーミッションを許可しているサイトでは、ロケーションバーの「i」マーク右上に印が付く。 / “1206246 – Show indication when some permissions have been …” https://t.co/Ykrty1fuI5"

51

Rockridgeさんのツイート: "Fx51:特定のサイトでパスワードを記憶しないという情報は、パーミッションの一部として扱われる。 / “1058438 – Password manager should use the permission manager t…” https://t.co/r6wcftGceQ"
Rockridgeさんのツイート: "Fx51:Yahoo!オークションやYahoo!ニュース、mixiなどについて、ユーザーエージェント文字列の偽装を解除した。 / “1301619 – Update Firefox Android User Agent over…” https://t.co/VydIn8OCRa"
Rockridgeさんのツイート: "Fx51:本体起動時、認証が必要なネットワークを検出したときは自動的にログインページを開く。 / “1282611 – Captive portal not detected at Firefox startup” https://t.co/5lJ56oXyUR"
Rockridgeさんのツイート: "Fx51:ログイン情報の送信にJavaScriptを用いているWebページにおいても、パスワードの保存とオートフィルが行えるようになった。 / “1166947 – Run login capture code upon pag…” https://t.co/MNuJVRw223"

52

Rockridgeさんのツイート: "Fx52:<input type="time">が指定されている場合の入力UIが実装された。参照:https://t.co/W0aCu9JqFX / “1283384 – Implement UI for <input type…” https://t.co/L2zWUtBSo9"
Rockridgeさんのツイート: "Fx52:Yahoo!関連はYahoo!天気・災害を除きユーザーエージェント文字列の偽装を解除した。 / “1314214 – Remove User Agent override for Yahoo! Japan” https://t.co/uI0o8XxJit"
Rockridgeさんのツイート: "Fx52:開発ツールのレスポンシブデザインモードで、低速回線(2G/3Gなど)による接続をシミュレートする機能が実装された。参照:https://t.co/yOZB4sWi9E / “Simulate slow connecti…” https://t.co/Y64SEgEyby"
Rockridgeさんのツイート: "Fx52:Windows版NightlyでQuantum Compositor(旧GPUプロセス)が有効化。 / “1314133 – Enable the GPU process in nightly, on Windows” https://t.co/PpVSi5pEQM"
Rockridgeさんのツイート: "Fx52:リーダーモードにおいても、base要素で指定された基点URLの指定が反映されるようになった。 / “1173823 – Reader View ignores <base href="...">” https://t.co/wTH6BbCnTl"
Rockridgeさんのツイート: "Fx52:Webサイト側で取得できるユーザー側のシステムフォントが、ホワイトリストに掲載されたものに限定された。フィンガープリンティングを防止する。参照:https://t.co/8yVqP7dDVp / “Firefox 52…” https://t.co/OeOFRQ1yX7"
Rockridgeさんのツイート: "Fx52:悪意のあるサイトが認証画面を繰り返し表示してブラウザを操作できなくすることを防止する措置を講じた。 / “1312243 – Trap site uses repeated http auth prompts to k…” https://t.co/IqXucQDfXt"
Rockridgeさんのツイート: "Fx52:リーダーモードのNarrate(音声読み上げ機能)で、現在読み上げられている単語に下線が表示されるようになった。 / “1290173 – Introduce word (and sentence?) tracking…” https://t.co/4MGV5GbYlF"
Rockridgeさんのツイート: "Fx52:巨大なサイズの画像が正しく表示されない場合がある問題を修正。なお、問題となるサイズはDPI環境により変動する。 / “591822 – Images taller or wider than 32767 (signed…” https://t.co/Qc8PW6NV6X"
Rockridgeさんのツイート: "Fx52:Webページ中のパスワードのフィールドでも、自動補完のUIが表示されるようになった。ユーザー名のフィールドが存在しない場合でも自動補完が使える。参照:https://t.co/PoAIjHw4XQ / “1289913…” https://t.co/IY9939kSnF"
Snappy by google
google/snappy: A fast compressor/decompressor
andikleen/snappy-c: C port of the snappy compressor
Rockridgeさんのツイート: "SnappyはGoogleが開発する圧縮・解凍ライブラリ。圧縮率よりも圧縮・解凍の速度を重視しているという。 / “Snappy by google” https://t.co/KpXFudSTEr"
Rockridgeさんのツイート: "Fx52:搭載するSnappyライブラリを最新版にアップデート。IndexedDBやDOMキャッシュなどで用いられているが、更新はFirefox 12以来だとか。参照:https://t.co/GdaSPottr2 / “Hea…” https://t.co/J7LNj4KMYX"

53

Rockridgeさんのツイート: "Firefox 53でapplet要素のサポートを廃止予定。参照:https://t.co/gOKCU0nPe0 / “1279218 – Remove <applet> element” https://t.co/v8xrxhSTk4"
Rockridgeさんのツイート: "Firefox 53ではネットワークライブラリ(Necko)にセキュリティチェック機能を実装し、チェックを必須化する。従来はGeckoの各コンポーネントがリクエストの前にその都度セキュリティチェック処理を行っていた。 / “En…” https://t.co/GgLzOpIErc"
Rockridgeさんのツイート: "Fx53:ページタイトルがタブの幅に収まらない場合、末尾に省略記号を入れずに文字列が薄れて消えるようにした。タイトルが多く表示されたほうがよいだろうとの判断に基づく。 / “658467 – Fade out tab label…” https://t.co/PwRhmpjWZ2"
Rockridgeさんのツイート: "Fx53:Web互換性上の問題を修正するシステムアドオンを導入(Fx49時点では実体がなかったらしい)。特定のサイト向けにユーザーエージェント(UA)文字列を修正する。参照:https://t.co/HZJzqo5ZpF https://t.co/vO76fptP8E"
Rockridgeさんのツイート: "Fx53:リンクをドラッグした際、ページの端にかかると、ページがスクロールするようになった。 / “41708 – Should be able to scroll in the viewport while dragging” https://t.co/sr76LoQkLc"
Rockridgeさんのツイート: "Fx53:<input type="date">が指定されている場合の入力UIが実装された。デフォルト無効でありdom.forms.datetimeをtrueにすると有効化される。 / “1283385 – Implement …” https://t.co/LylhN1wmNK"
Rockridgeさんのツイート: "HTMLフォームで日付・時刻を入力するUIのFirefoxへの実装状況について説明したスライド。参照:https://t.co/CHK2leXhDa / “Date/Time Input Types by Jessica Jong” https://t.co/lZtm7fh2bH"
TPE DOM/Date time input types - MozillaWiki
Rockridgeさんのツイート: "Fx53:Webページのプリレンダリング機能の実装を開始。link要素のrel属性でprerenderの指定がされているURLが対象。browser.groupedhistory.enabledとdom.linkPrerender… https://t.co/tgSs1nsCrx"
Rockridgeさんのツイート: "Fx53:フォームのドロップダウンメニューに40を超える項目が含まれるときは、項目の絞り込み検索が可能になった。 / “1309935 – Add ability to find within select dropdown w…” https://t.co/RWRs2bCLKT"
Rockridgeさんのツイート: "Fx53:他のブラウザからブックマークをインポートする際、処理をまとめて行うことで大幅な高速化を実現した。 / “1344759 - Use insertTree API to import bookmarks from oth…” https://t.co/BUx6WTS9u6"
Rockridgeさんのツイート: "Fx53:同一サイトに複数のアカウントを保有し、それらがパスワードマネージャに登録されている場合、ユーザー名またはパスワードのフィールドにフォーカスが当たった時点で、自動補完候補が表示される。 / “376668 – Impro…” https://t.co/UD4z2vKCBT"

54

Rockridgeさんのツイート: "Firefox 54でHTML5のdialog要素がサポートされる見込み。参照:https://t.co/LstQ4paiuJ / “Intent to implement: HTML5 <dialog> element - G…” https://t.co/O7MlfBikgB"
Rockridgeさんのツイート: "Fx54:Firefox Sync動作時、あるクライアントのブックマークの項目に欠損があると判断したときは、他のクライアントに対し、該当する項目をアップロードするよう求める(そしてこれに応答する)仕組みが実装された。 / “13…” https://t.co/A5DMPOFQRg"
Rockridgeさんのツイート: "Fx54:Firefox Syncがブックマークの欠けた項目を補うのは、他に未処理の項目がない場合に限られる。 / “1345754 - Only validate when there are no pending chang…” https://t.co/3v4mUsRS5J"
Rockridgeさんのツイート: "Fx54:layers.gpu-process.allow-softwareをtrueに変更するとGPUプロセスがソフトウェアcompositorを使用するようになる。そのほうがパフォーマンスや安定性が改善する環境もあるようだ。 https://t.co/6bpXWGo1s0"

55

Rockridgeさんのツイート: "Fx55:<script nomodule>を実装した。参照:https://t.co/CoF7seXJye / “1330900 - Implement <script nomodule>” https://t.co/Yy9cMrG2Do"
Rockridgeさんのツイート: "Fx55:mimeTypes.rdfの内容をhandlers.jsonに移行させ、今後は後者を使用するようにした。 / “1287658 - Migrate from "mimeTypes.rdf" to "handlers.j…” https://t.co/fy5RjLOG8W"
Rockridgeさんのツイート: "Fx55:新しい設定画面では〔アップデート〕のカテゴリーにFirefoxのバージョンが表示され、最新版かどうかも確認できる。アップデート履歴を表示するボタンもある。 / “1356507 - The Updates pane s…” https://t.co/yuWRfFt3AL"
Rockridgeさんのツイート: "Fx55:image.mem.animated.discardableの設定をtrueに変更すると、アニメーションGIFなど動的に変更される画像について、アクティブでなくなったものはデコード済みのデータがメモリから追い出されるよう… https://t.co/55CoESgyrg"
Rockridgeさんのツイート: "Fx55:ヘッドレスブラウジングモードをサポート。GUIのない状態で動作し、自動化テストなどに向く。なお、Chrome 59も同様のモードをサポートする。参照:https://t.co/qNrbFSRZkA / “1338004…” https://t.co/zE2yyvMeFe"
Rockridgeさんのツイート: "Fx55:アニメーション画像が非アクティブの場合にデコード済みのデータをメモリから追い出す機能が、デフォルト有効化された。省メモリ化に効果がある。 / “686905 - Discard animated images to s…” https://t.co/60lN1DASra"
Rockridgeさんのツイート: "Fx55:キャッシュ上のデータを使うか、新たにデータを取得するかを決める新しいアルゴリズムが実装された。network.http.rcwn.enabledの設定をtrueに変更すると有効化される。 / “show_bug.cgi…” https://t.co/NtFSyzMlRI"
Rockridgeさんのツイート: "Fx55:新規タブ内のサムネイルの生成処理が高コストであることから、再計算は1分間以上空けてから行うようにした。 / “1350781 - gBrowserThumbnails._topSiteURLs is super ine…” https://t.co/EWv2g59IhX"
Rockridgeさんのツイート: "Fx55:toolkit.cosmeticAnimations.enabledの設定が追加された。これをfalseにすることでタブやフルスクリーンなど複数のアニメーションを一括してオフにできる。新しい設定画面にはこの設定を操作する… https://t.co/zfLuzF2Esh"
Rockridgeさんのツイート: "Fx55:クリップボードにコピーされた画像を、テキストエリアに貼り付けることができるようになった。 / “1317322 - Pasting image from clipboard fails in some cases” https://t.co/8l4grl9sLf"
Rockridgeさんのツイート: "Fx55:GPUプロセスがクラッシュし、またはキルされた場合も、3回まではプロセスが再起動するようになった。 / “1337131 - Enable restarting the GPU process when it dies” https://t.co/JEdhKtMffq"
Rockridgeさんのツイート: "Fx55:初期状態でスマートロケーションバーにサジェストされる対象を、Alexaのトップ20サイトにまで拡大。 / “1344276 - Make sample list of top 20 websites (of …” https://t.co/8WGrhkdk8Q"
Rockridgeさんのツイート: "Fx55:大量のタブを含むセッションを復元する際、UIが応答可能になるまでの時間を大幅に短縮した。たとえば、330タブの復元だと従来の11秒が1.5秒になるという(コメント11)。 / “1345090 - Modify Ses…” https://t.co/6HeS9UqW4T"
Rockridgeさんのツイート: "Fx55:ブックマークの作成日時も同期されるようになった。 / “676563 - Bookmarks sync does not sync bookmark timestamps” https://t.co/otLpLpgQeN"
Rockridgeさんのツイート: "Fx55:マルチプロセス機能(e10s)有効時、beforeunloadイベントの作動記録を保持することでタブを閉じる際に毎回イベントの有無を確認する必要をなくし、処理を高速化した。参照:… https://t.co/94cHP0qIOj"
Rockridgeさんのツイート: "Fx55:キャッシュサイズの上限値を5%上回った時点でキャッシュの追加を停止するようにした。キャッシュの排出処理が追いつかず、総サイズが増え続ける問題に対処するための措置。 / “1342722 - Firefox cache …” https://t.co/g1klaSwQ3P"
Rockridgeさんのツイート: "Fx55:リンクに対するmousedownイベントを検知した時点で、mouseupイベントの検知を待たずに投機的に接続処理を行うようにした。読み込みの開始が50 - 300ミリ秒早くなるという。 / “1348278 - Spe…” https://t.co/YrWRcEcJiU"
Rockridgeさんのツイート: "現在の計画では、Android版Firefox 55でCustom TabsとスタンドアロンモードのプログレッシブWebアプリを、56でWebExtensionsとブックマークフォルダの操作を、57で新UI(Photon)をそれぞ… https://t.co/2QOm0ICp55"
Rockridgeさんのツイート: "Fx55:サイトがHTTPからHTTPSへリダイレクトされる場合、スマートロケーションバーにはHTTPSのものが表示される。 / “1341350 - Visiting an insecure (http://) site th…” https://t.co/OBetdfKaT6"
Rockridgeさんのツイート: "Fx55:セッションに保存されるDOMストレージのデータを2Kに制限し、I/O処理の低減を図った。 / “1362058 - Further limit the amount of sessionStorage data we …” https://t.co/EG44tHDpeL"
Rockridgeさんのツイート: "Fx55:Display Listの構築処理を改善。Wikipediaの"JavaScript"の項目で、5.5ミリ秒が4.3ミリ秒に。 / “1342009 - A fast path for BuildDisplayList…” https://t.co/uUx7SyzukK"
Rockridgeさんのツイート: "Fx55:font-size: larger/smallerの指定がある際のフォントサイズ計算を、競合ブラウザの処理を参照しつつ単純化した。具体的には、1.2倍ずつ変化する形となる。 / “1361550 - Make font…” https://t.co/8mykLnB03l"
1361550 - Make font-size: larger/smaller a simple ratio
Rockridgeさんのツイート: "Fx55:Firefox Syncの同期処理中にブックマークに変更が加えられた場合、追加で同期処理を行うことでブックマーク間の不整合を低減させた。 / “1335891 - Immediately trigger another…” https://t.co/sD6dBiR6M7"
Rockridgeさんのツイート: "Fx55:Firefoxがデフォルトのブラウザに設定されているかどうかのチェックは、2回目の起動から行うようにした。インストールから初回起動までの流れをスムーズに進ませる措置の一環。 / “1367073 - Ship move…” https://t.co/IyHBdk2HWQ"
Rockridgeさんのツイート: "Fx55:Windows向け軽量インストーラが64bit版をインストールする際に2GB以上のメモリを搭載しているかチェックする。 / “1366860 - Add 64-bit minimum memory requiremen…” https://t.co/0LOGMKjLhz"
Rockridgeさんのツイート: "Fx55:本体起動時のメインスレッドI/Oを減らして起動を高速化。 / “1363398 - GetShellFolderPath is expensive during startup” https://t.co/pYvNqNQwxM"
1363398 - GetShellFolderPath is expensive during startup
Rockridgeさんのツイート: "Fx55:バックグラウンドで動作するトラッキング用スクリプトについては、処理を反復する間隔を強制的に10秒に延ばすということらしい。参照:https://t.co/dUoAeG0Bbr https://t.co/tEUs2wcUhO https://t.co/2zyZyd1hZ4"
Rockridgeさんのツイート: "Fx55:起動時に複数のスクリプトのデコードをまとめて非同期に処理することで、起動完了までの時間を短縮した。 / “1364974 - Allow off-thread decoding multiple scripts for…” https://t.co/iWdwiFQQdv"
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、フォームにカレンダーから日付入力する機能が有効化された。参照:https://t.co/bttKiU6dWs / “1366188 - Enable dom.forms.datetime b…” https://t.co/OTMFEXS59a"
Rockridgeさんのツイート: "Fx55:input要素のtype属性がdateのときはカレンダーからの入力が可能である一方、同属性がtimeのときはそうしたUIが用意されない。この差は、時刻についてはキーボードで直接入力したほうが早いとの考慮によるという。 https://t.co/GlfgrqUdsj"
Rockridgeさんのツイート: "Fx55:Linux版でヘッドレスブラウジングモードがデフォルト有効化。ただしSlimerJSまたはMarionetteとの組み合わせが前提となる。参照:https://t.co/isO8OeR6tf / “Shipping H…” https://t.co/JNrBMBiUL0"
Rockridgeさんのツイート: "Fx55:Cookie用データベースを閉じる処理を非同期で行うようにした。 / “867798 - Cookie Service closes DB on main thread” https://t.co/Zde7cppxfF"
Rockridgeさんのツイート: "Fx55:Windows版で、システムフォントの探索結果をキャッシュして再利用するようにした。開発者いわく150ミリ秒以上の処理短縮になる。 / “1371157 - cache results of system font l…” https://t.co/NJNlJyUnar"
Rockridgeさんのツイート: "Firefox 55.0.1以降、再びNetwork Predictorのプリフェッチ機能が無効化されている。 / “1388160 - Disable predictor prefetch (again!)” https://t.co/Fqac8Xv8LE"
Rockridgeさんのツイート: "Fx55:Firefox Syncのネットワーク処理を完全非同期化。 / “1355677 - Make all Sync network requests promise/async based” https://t.co/QPIeHGkkwb"
Rockridgeさんのツイート: "Fx55:タブIDの割当て処理を非同期化。 / “1337064 - Make tab ID allocation asynchronous” https://t.co/GMuOX7Jawb"
Rockridgeさんのツイート: "Fx55:ユーザーがアドレスバーにhttp、httpsやftpなどの文字を入力したときは、検索サジェストを行わないようにした。 / “show_bug.cgi?id=1280441” https://t.co/aafBIuqjir"
Rockridgeさんのツイート: "Fx55:colSpan/rowSpanの取扱いを最新の仕様に合わせた。 / “1359822 - Match standard for colSpan/rowSpan” https://t.co/gtLQfYZeFJ"
Rockridgeさんのツイート: "Fx55:スクロールバーをドラッグする場合もスクロールが非同期化されるようになった。 / “1211610 - (async-scrollbar-drag) [Meta] Enable async scrolling via s…” https://t.co/8w2DbITfY8"
Rockridgeさんのツイート: "Fx55:Windows版で、ダウンロードパネルに表示されたファイルを開く際、EXE以外のファイル形式(JARなど)であっても、起動の確認が行われるようにした。 / “1369771 - Confirm launching ex…” https://t.co/02WwQoJ9Sg"

56

Rockridgeさんのツイート: "Fx56:設定の保存処理を非同期化した。 / “789945 - Save preferences asynchronously” https://t.co/8urOjUThma"
Rockridgeさんのツイート: "Fx56:rel=noopenerが付与されたリンクを開くときは、新しいプロセスを使うようにした。 / “1370971 - Open `noopener` links in a new process” https://t.co/pHzxYbiKwi"
Rockridgeさんのツイート: "Fx56:style要素のscoped属性のサポートが廃止される見通し。Fx21からデフォルト有効化されていたもの。Chromeは37で削除済みだという。参照:https://t.co/ICNZ85S7gM / “Intent …” https://t.co/FZkQMqEM7O"
Rockridgeさんのツイート: "Fx56:Windows版でもヘッドレスモードをサポート。 / “1355150 - Support headless mode on Windows” https://t.co/Q7x1TkqIbQ"
Rockridgeさんのツイート: "Fx56:ブックマークをJSON形式でバックアップする処理を非同期化した。 / “1095426 - Convert JSON backups code to the new Bookmarks.jsm API” https://t.co/36RZufIan9"
Rockridgeさんのツイート: "Fx56:SQLiteのストレージが使用するメモリについて、圧縮処理をできる限り非同期で行うようにした。 / “1166166 - Shrink Sqlite memory on the async thread when po…” https://t.co/agQaOsszCe"
Rockridgeさんのツイート: "Fx56:Mozillaは以前からHTML Importsをサポートしないと宣言していたが、ついに実装部分を削除するに至った。参照:https://t.co/rBj4JXZcpy / “1197401 - Remove our …” https://t.co/SHEAAve24l"
Rockridgeさんのツイート: "Fx56:フォームコントロールに用いられる要素についてlabelsプロパティをサポート。 / “556743 - Implement the labels attribute” https://t.co/mt2Jmd4Te5"
Rockridgeさんのツイート: "Fx56:スペルチェッカーの動作が文字列の処理速度を著しく低下させないように調整を加えた、ということらしい。 / “1370754 - Setting innerHTML to editor is slower than Chr…” https://t.co/Fr4iOddIZT"
Rockridgeさんのツイート: "Fx56:セッション情報を保存したファイルをLZ4形式で圧縮するようにした。 / “934967 - [Session Restore] Read/write data with lz4” https://t.co/t4BJneL4ru"
Rockridgeさんのツイート: "Fx56:Nightlyチャンネルで行われているトラッキング用スクリプトの動作抑制について、フォアグラウンドタブの処理が重いときはバックグラウンドタブの抑制を強化するといった、きめ細かな制御を行うらしい。 / “1362322 …” https://t.co/4mvEylQkk6"
Rockridgeさんのツイート: "Fx56:ICU(International Components for Unicode)ライブラリが59へとアップデートされた。参照:https://t.co/DvjSCGgiJD / “1353650 - Update o…” https://t.co/am39SqxIR7"
Rockridgeさんのツイート: "Fx56:link要素の"rel=preload"をサポート。参照:https://t.co/wQPIUWPpyR / “1222633 - Add support for <link rel=preload>” https://t.co/4iX9imSbzj"
Preload を用いたリソースプリローディングの最適化 | blog.jxck.io
Rockridgeさんのツイート: "Fx56:Windows版/Linux版NightlyにQuantum CSSがデフォルト無効で投入された。layout.css.servo.enabledをtrueにすると有効化される。参照:… https://t.co/pYPZWUHOpK"
<isindex> 対応が廃止されました | Firefox サイト互換性情報
<applet> 対応が廃止されました | Firefox サイト互換性情報
Rockridgeさんのツイート: "Fx56:フレームが子要素のリフローを複数回発生させる場合の処理を高速化した(コメント62)。AmazonやNew York Timesなど実環境のWebサイトでも効果があるらしい。 / “1308876 - Nested in…” https://t.co/H4hu4ecm12"
Rockridgeさんのツイート: "Fx56:バックグラウンドのタブにおけるHTMLのパースをアイドル時に行うようにし、プチフリを低減。 / “1355746 - Parser should use idle dispatch and not a timer fo…” https://t.co/yDEI7x5yVk"
Rockridgeさんのツイート: "米国のen-US版ユーザーに限定して、Firefox 56でForm Autofill機能が有効化されるかもしれない。クリスマス商戦に間に合わせるべくFx57では全面的な有効化を行う見通し。参照:… https://t.co/FVbaLa8q3k"
Rockridgeさんのツイート: "Firefox 56では、Windows/macOS/Linuxのどのプラットフォームにおいても、Node.jsのselenium-webdriverパッケージを使用することで、ヘッドレスモードを制御できる。 / “Headle…” https://t.co/fUiobSP3sZ"
Rockridgeさんのツイート: "Fx56:フォームにカレンダーから日付入力する際、一定の間隔を空けた日付のみ選択できるUIが実装された。また、現在日を強調表示するようにもなっている。参照:https://t.co/MuMB1KHS64 / “1363672 -…” https://t.co/6UcbOBujVO"
Rockridgeさんのツイート: "Fx56:セッション復元時、復元されるのを待っているタブにおいて投機的なコネクションを実行するようにした。複数のウィンドウを復元する際の待ち時間が減るとみられる。 / “874533 - Use speculative conn…” https://t.co/f2BOWCRRWu"
Rockridgeさんのツイート: "Fx56:「最近の履歴を消去」でIndexedDB、Service WorkerとDOMキャッシュのデータも削除するようにした。参照:https://t.co/97uwog6f8N / “1047098 - 'Clear Rec…” https://t.co/uIN4WyqV4W"
Rockridgeさんのツイート: "Fx56:window.showModalDialogが常時無効化(有効化できない)。Fx57ではこのAPIに関するコードも削除された。参照:https://t.co/CD0DKO3GCa / “981796 - Remove …” https://t.co/e594Nn5s2M"
Rockridgeさんのツイート: "Fx56:アップデータがLZMA形式のデータ圧縮をサポート。従来のbzip2形式と比較して、20%近くデータサイズを削減できた。 / “641212 - LZMA support for updater” https://t.co/uyYV1niBly"

57

Rockridgeさんのツイート: "Fx57:ページの読み込みが150ミリ秒以内に終わるときは、停止・再読込ボタンのアニメーションを行わないようにした。 / “1384180 - Don't animate the stop->reload if the page…” https://t.co/ReVNI1QiQL"
Rockridgeさんのツイート: "Fx57:タブを閉じる際、閉じる処理が終わる前に隣のタブのフォアグラウンド化を先行させることで、体感上の速度を向上させた。 / “1355426 - When closing tabs, select the next tab …” https://t.co/Sa2AR1Oey4"
Rockridgeさんのツイート: "Fx57:Placesデータベースの期限切れ処理について、5分間アイドル状態が続いた場合に大きな処理を行うようにすることで、パフォーマンスの低下を抑えた。 / “1376533 - Use idleDispatch for Pl…” https://t.co/7FPF5o21QS"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、オートスクロールにもAsync Pan/Zoom(APZ)が適用されるようになった。参照:https://t.co/sWDHJLVj0V / “APZ autoscrolling enabl…” https://t.co/HdXj2v28It"
Rockridgeさんのツイート: "Fx57:Lazy Frame Constructionを編集可能領域にも適用。Webメールの入力やブログ記事の編集などの場面でパフォーマンスが向上する。参照:https://t.co/pnk51XaKNm / “1348073…” https://t.co/cB2gw5C4Bb"
Rockridgeさんのツイート: "Fx57:バックグランドのタブへのマウスオーバーがあった時点でタブ切り替え後の処理の一部を投機的に開始しておくことにより、体感上の速度を向上させた。 / “1385453 - Make it possible for async…” https://t.co/yZJkSpDAov"
Rockridgeさんのツイート: "Fx57:browser.tabs.loadBookmarksInTabsの設定をtrueに変更することで、ブックマークを開く際、新しいタブにコンテンツが表示されるようになる。 / “658245 - Open bookmark…” https://t.co/vgoyLKH1fi"
Rockridgeさんのツイート: "ディスプレイのリフレッシュのタイミングに合わせてmousemoveイベントをまとめて処理する仕組みがFirefox Nightly 57に実装されるらしい。イベントの実行コストを削減することが目的。 / “Enable coal…” https://t.co/WEgb5BNc1G"
Rockridgeさんのツイート: "Fx57:browser.xulからスクリプトをロードする際、サブスクリプトローダーを使用することで、プリローダーキャッシュから別スレッドの単一のゾーンに読み込むなどの処理が可能となり、本体の起動が高速化された。 / “1384…” https://t.co/B753EwzC2n"
Rockridgeさんのツイート: "Fx57:アクセシビリティ機能が有効の場合(高DPI環境でディスプレイ設定が拡大表示のときを含む)、タブバー上にインジケータが表示されるようになった。accessibility.indicator.enabledをfalseにする… https://t.co/WJ1RddRVJa"
Rockridgeさんのツイート: "Fx57:タブのコンテキストメニューに「タブを複製」が追加された。 / “455722 - Add context menu item to duplicate (clone) tab” https://t.co/qskO1EL3GD"
Rockridgeさんのツイート: "Fx57:本体起動時に各種設定ファイルやシステムスタイルシートなどを別スレッドで非同期に読み込むようにし、パフォーマンスを向上させた。 / “1363482 - Pre-load files needed during star…” https://t.co/rnjiiJuUcX"
Rockridgeさんのツイート: "Fx57:新規タブのサムネイル生成処理はアイドル時に行うようにした。 / “1348280 - Thumbnail causes jank on sites with a requestAnimationFrame” https://t.co/fhaGFRH9C2"
Rockridgeさんのツイート: "すべてのXPConnect JSモジュールを単一のコンパートメントに読み込む仕組みは、Firefox Nightly 57にデフォルト無効で投入された。この仕組みが有効化された場合のパフォーマンス向上の度合いは大きいようだ。 https://t.co/zPw8mwlmhk"
Rockridgeさんのツイート: "Fx57:ヘッドレスモードのコマンドラインからスクリーンショットを撮影できるようになった。--screenshot=/path/to/fileというコマンドを使用する。 / “1378010 - Take a screensho…” https://t.co/GKweM0uzUW"
Rockridgeさんのツイート: "Firefox 57の起動速度はFirefox 55と比較して約50%も高速化したという。 / “Photon Engineering Newsletter #16 | Dolske's blog” https://t.co/x26ABPpaCW"
Rockridgeさんのツイート: "Fx57:Fluentをベースにした新しいローカライズ用フレームワークを導入。参照:https://t.co/wRK9Vxc6R5 https://t.co/v2sqxF4SSl / “1333980 - Land L10nRe…” https://t.co/DJ8xOstoX2"
Rockridgeさんのツイート: "Fx57:eTLD(effective TLD)のルックアップ機構を改良し、省メモリ化とパフォーマンス向上を同時に実現した。Chromeの技法を採り入れたという。 / “1380154 - Improve Effective T…” https://t.co/BrRY7DEuob"
Rockridgeさんのツイート: "Fx57:Async Iterationをデフォルト有効化。 / “1352312 - Update Async Iteration to follow the proposal change and let it ride t…” https://t.co/qfcsqSTqJS"
Rockridgeさんのツイート: "Fx57:入力イベントの処理の優先順位を高めることで、応答性を向上させたらしい。 / “1351148 - Add an event queue to nsThread for input events and annotate…” https://t.co/VkAm8javR3"
Rockridgeさんのツイート: "Fx57:戻るボタンで履歴を遡る際、新規タブページに戻ることができるようになった。 / “776167 - can't go back to the new tab page” https://t.co/xiwLGviB3B"
Rockridgeさんのツイート: "最小タブサイズを従来の半分にする新仕様に対しては賛同者が多く、Firefox 57にも投入されそうな雰囲気だ。 / “Changes to tab min-width” https://t.co/IfnDzXtZsz"
Rockridgeさんのツイート: "Fx57:ブックマークをHTMLからインポートした場合、Firefox Syncの処理としては新しいブックマーク項目の追加として扱うようにした。これまではリストアの扱いになっていた。 / “1353217 - importing…” https://t.co/FDzZCuVtR4"
Rockridgeさんのツイート: "Fx57:iframe内に読み込まれたデータURLはクロスオリジンとして扱われるようになった。クロスサイトスクリプティング(XSS)の危険を軽減するための措置。 / “Treating data URLs as unique o…” https://t.co/CIAosZzaxO"
Rockridgeさんのツイート: "Fx57:アドレスバーの検索サジェストの候補に、過去の検索履歴の項目が含まれるようになった。 / “1181644 - search suggestions in the awesome bar should include l…” https://t.co/YTT5oiMBWP"
Rockridgeさんのツイート: "Fx57:MS-IMEやGoogle日本語入力を使用しつつアドレスバーにフォーカスを当てると入力モードがオフになるというIME側の仕様に、対策を施した。 / “show_bug.cgi?id=1404206” https://t.co/2lX511vr3T"
Rockridgeさんのツイート: "タブの最小サイズを76にするのは最終決定のようだ。Firefox 57もこれでいく。参照:https://t.co/tsIVZifLOs / “Changes to tab min-width” https://t.co/hxCxWq71om"
Rockridgeさんのツイート: "Fx57:ツールバー上に「伸縮自在のスペース」を配置した場合、それによってできる空白領域をドラッグして、ウィンドウを移動させることができるようになった。 / “1387415 - Use flexible spaces (and…” https://t.co/rZtK0IqiuD"
Rockridgeさんのツイート: "Fx57:設定画面でフォントを列挙する処理を非同期化した。 / “1375978 - Enumerating fonts should not block about:preferences from being display…” https://t.co/B75IaWWwOJ"
Rockridgeさんのツイート: "Fx57:Web版Twitter上で既に多数のツイートを表示している場合などに、タイムラインにおける新規ツイートの表示に時間がかかる問題を修正。 / “1368852 - twitter's load "new results"…” https://t.co/coNg3CdeDr"
Rockridgeさんのツイート: "Fx57:日本語版に初期登録されるフィードリーダーがFeedly/Inoreader/AOL Readerの3つに決まった。Feed Watcherはフィード登録用のURLが存在しないため今回は採用が見送られた。 / “1383…” https://t.co/6oa5Hkp0XQ"
Rockridgeさんのツイート: "Feed Watcherの開発会社がフィード追加用URLを公開し、急遽Firefox 57にも追加されることが決まった。 / “1413155 - [ja] Add Feed Watcher as feed handler” https://t.co/Yk2l9M0YTs"
Rockridgeさんのツイート: "Fx57:フォームにカレンダーから日付入力する機能がデフォルト有効化された。 / “1399036 - Enable date/time input by default on all builds” https://t.co/gSVuvpDgKH"
Rockridgeさんのツイート: "Fx57:設定画面の〔プライバシーとセキュリティ〕にサイトデータのディスク使用量が表示され、ユーザーがサイトデータを個別に・まとめて削除できるようになった。 / “1399398 - Turn on the Storage Ma…” https://t.co/2UF2a7XLCh"
Rockridgeさんのツイート: "Fx57:ウェブ開発メニューのWebIDEで、シミュレーター機能が削除された。 / “1398061 - Remove simulators from WebIDE” https://t.co/EEAd8BPE3G"
Rockridgeさんのツイート: "Akamaiが大規模なデータを基に調査したところによると、Firefox 57はFirefox 52との比較でDOM Content Loadedの時間が24%改善したという。 / “measuring-performance-…” https://t.co/9jfkJeNknt"
Rockridgeさんのツイート: "Fx57:ホームタブ・新規タブのセクションごとに、「?」マークのアイコンを置き、設定画面へのショートカットが表示されるようにした。セクションをオフにする方法がわかりにくいという声に配慮したもの。 / “1404345 - Use…” https://t.co/Za2EigAEVs"
Rockridgeさんのツイート: "Fx57:仕様上、Firefox Screenshotsはプライベートブラウジングモードでは使用不可。 / “1403661 - Stop Screenshots from activating in private brows…” https://t.co/mlvaQpBby1"
Rockridgeさんのツイート: "Firefox 57で発生していた、スクリーンリーダー使用時に本体のパフォーマンスが低下する問題は、Firefox 58でおおむね解消されたとのこと。 / “NVDA and Firefox 58 - The team is r…” https://t.co/1uclU9zVpi"
Rockridgeさんのツイート: "Fx57:検索プラグインにeBayを追加。Fx50で外れていたが、eBayと再契約したことにより戻ってきた。 / “1406164 - Bring eBay back” https://t.co/DYoo3zIDrB"
Rockridgeさんのツイート: "Fx57:Windows版インストーラが使用する画像ファイルが高DPIに対応した。 / “1337856 - Installation assets in Windows are low dpi” https://t.co/DyuRIkoe82"

58

日本語版Firefox 58では初期登録のフィードリーダーが3つに - Mozilla Flux
Rockridgeさんのツイート: "リリース版でPointer Events(マウス・タッチ・ペン入力)がデフォルト有効化されるのは、Firefox 58になる見通し。 / “Firefox/Channels/Meetings/2017-07-06 - Mozil…” https://t.co/ttXU9hB2WU"
Rockridgeさんのツイート: "Fx58:一定の条件を満たす場合にgetComputedStyleがリスタイリングをスキップするようにして処理を高速化。参照:https://t.co/QsQ3FjtetY / “getComputedStyle now ski…” https://t.co/mMrL6L1DFg"
Rockridgeさんのツイート: "Fx58:Windows版Nightlyで、描画処理の非同期化(OMTP:Off Main Thread Painting)が有効になった。 / “1403935 - Enable OMTP by Default on Wind…” https://t.co/7oVJrPLJYk"
Rockridgeさんのツイート: "Fx58:browser.tabs.tabMinWidthの設定を復活させ、その初期設定値を100から50に下げた。Chromeのようにタブバー上に大量のタブが並ぶことになる。 / “1404465 - Add back `br…” https://t.co/TJd9x74IV4"
Rockridgeさんのツイート: "Firefox 58で<a ping>のサポートを検討中。リンクが押された際にリンク先とは別にログ用のURLにリクエストを投げることが可能になる。参照:https://t.co/eGE9yxM3MT … https://t.co/q8zvG775fA"
Rockridgeさんのツイート: "link要素の"rel=preload"はWeb互換性の問題が生じているため、Firefox 57でいったん無効化し、Firefox 58での再有効化を目指すという。 / “Intent to unship: rel=prelo…” https://t.co/NwBqqAD8kD"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58でデフォルト有効化の見込み。 / “Firefox/Meeting/10-Oct-2017 - MozillaWiki” https://t.co/WuQJbntFRW"
Rockridgeさんのツイート: "複数のタブを選択する機能は、Firefox本体に実装の予定があるらしい。Firefox 58に入るかも。参照:https://t.co/yrd8Scdooj / “Firefox/Meeting/10-Oct-2017 - Mo…” https://t.co/JzKaLEVRCb"
Rockridgeさんのツイート: "Fx58:general.smoothScroll.msdPhysics.enabledをtrueにすると、スムーズスクロールの挙動が変更される。新しいアルゴリズムを採用したらしい。変更後の挙動のほうが加速が大きくなる印象だ。 https://t.co/Fp4qts3l2d"
Rockridgeさんのツイート: "Fx58:軽量インストーラがレジューム機能を備えた。ダウンロード中にネットワーク接続が途切れた場合、接続再開後はダウンロードの途中から復帰する。 / “798005 - Add resume support to the stu…” https://t.co/9bm9CnpE46"
Rockridgeさんのツイート: "Fx58:Shiftキー + ホイールの縦スクロールでコンテンツの横スクロールが可能に。16年前に登録されたバグの修正となる。参照:https://t.co/W9z5tNaCz1 / “Intent to ship: New d…” https://t.co/AtTWu05dEi"
Rockridgeさんのツイート: "Fx58:Pointer Events(マウス・タッチ・ペン入力)がデフォルト有効化へ。参照:https://t.co/PT8iVENNx4 / “Intent to ship: Pointer Events (Desktop)” https://t.co/0iJTd4ZGcb"
Rockridgeさんのツイート: "Fx58:パスワードやセキュリティ証明書を保存するデータベースが、SQLiteを用いた新しいファイルフォーマット(cert9+key4)に移行した。 / “783994 - switch Mozilla to use the c…” https://t.co/iunqpvVTvk"
Rockridgeさんのツイート: "Android版Firefox 58でWebアプリマニフェストをサポート。HTTPS接続したサイトが正統なマニフェストを持つ場合、ホームスクリーンに追加するとアプリ的に振る舞う。 / “Add Progressive Web A…” https://t.co/7yPKale3Rg"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58リリース版に投入される見通し。 / “These Weeks in Firefox: Issue 26 – Firefox Nightly News” https://t.co/YcDbKagjZT"
Rockridgeさんのツイート: "Fx58:ポップアップブロックのアイコンが、アドレスバーの右端ではなく、左端の情報領域に置かれるようになった。 / “1331931 - Move the popup blocked icon into the identity…” https://t.co/KgxlTIkYGu"
Rockridgeさんのツイート: "Fx58:Android版Firefoxのビルド環境がGCCからClangに移行した。参照:https://t.co/jNmNvXnqrm / “Fennec now builds with clang instead of g…” https://t.co/guOap9dZxr"
Rockridgeさんのツイート: "Fx58:Android版FirefoxのビルドにGradle Build Toolが用いられるようになる。参照:https://t.co/BdAhqay5zS / “[ann] Default Fennec build con…” https://t.co/FK5aUptWTk"
Rockridgeさんのツイート: "Fx58:Webサイトがcanvas要素のImageDataを使用する際、ユーザーに許可を求めるようになった。ユーザーの識別に利用されるおそれがあるため。 / “Firefox 58 warns you if sites use…” https://t.co/KPOTyvt6YX"
Rockridgeさんのツイート: "Fx58:ユーザーが追加する検索エンジンのアイコンについて、サイズの上限が10KBから20KBに引き上げられた。アイコンが表示されない問題が起きにくくなる。 / “361923 - Can't use remote search…” https://t.co/QHTU72eXw7"
Rockridgeさんのツイート: "Fx58:バックアップしておいたブックマークを復元する際、エラーが出た項目をスキップして処理を行うようになった。一部が原因で全く復元できないという事態を避けられる。 / “1404631 - Firefox 56: "Unabl…” https://t.co/aCzwQknT2z"
Rockridgeさんのツイート: "Fx58:YouTubeのように複数のファビコンが設定されている場合、適切なものを取得してタブに表示するようにした。これまでは最後に記述されたファビコンを取得しているだけだった。 / “1403829 - YouTube ico…” https://t.co/yg8blFHbvP"
Rockridgeさんのツイート: "Fx58:Async Places Transactionsが有効の場合に、フォルダをまたいで大量のブックマークをコピー・移動する際のパフォーマンスが改善された。 / “1413843 - Cut/Copy/Move opera…” https://t.co/Vfi0G8A5Rf"
Rockridgeさんのツイート: "Firefox 58では、WebページがデータURLドキュメントを開くことやデータURLドキュメントに遷移することがブロックされるという。 / “Blocking Top-Level Navigations to data UR…” https://t.co/nRc41rjpEK"
Rockridgeさんのツイート: "Fx58:ページ内検索で、不可視のテキストまでヒットしてしまう後退バグを修正。 / “1302470 - Find in page should only find visible text” https://t.co/o5Qp14cE9m"
Rockridgeさんのツイート: "Firefox 58にデフォルト無効で実装された、Webサイトがcanvas要素のImageDataを使用する際にユーザーに許可を求める機能は、もう少しきめの細かい制御を可能にしつつ、サンドボックス化されたiframeで有効化する… https://t.co/hFoVooV2hn"
Rockridgeさんのツイート: "Fx58:マウスでスクロールバーを操作してスクロールする際、一部のページでバーのつまみ部分が追随しない後退バグを修正。 / “1402995 - Scroll thumb not synchronized with mouse” https://t.co/nem7u17IgR"
Rockridgeさんのツイート: "Fx58:about:profilesで、プロファイルの削除処理を非同期化し、サイズの大きなプロファイルを削除しても本体の応答性に支障が出ないようにした。 / “1406818 - Firefox hangs when dele…” https://t.co/Waj7LdxOJq"
Rockridgeさんのツイート: "Fx58:アドレスバーのメニューから〔リンクをコピー〕した際、「コピーしました」とのメッセージが表示される。 / “1408135 - Copy URL confirmation message should appear wh…” https://t.co/p2vVgWMlqW"
Rockridgeさんのツイート: "Fx58:大きなデータURIが開かれているタブの切り替えを高速化。 / “1408854 - Very slow tab-switching when a tab with a large data URI is open” https://t.co/3HPbCce4Dd"
Rockridgeさんのツイート: "Firefox 58の主な改良点について。Firefox Quantumの前では霞んでしまうが、通常であれば新機能が多数実装された、大きめのリリースと言えるだろう。 / “Firefox/Roadmap/Updates - Mo…” https://t.co/oVJkmx70Y1"
Rockridgeさんのツイート: "Fx58:ショートカットキーを用いてブックマークを登録する場合も、デフォルトのフォルダが「他のブックマーク」となり、挙動が統一された。 / “1120110 - Standardize default output folder…” https://t.co/3fU22oBPBo"
Rockridgeさんのツイート: "Fx58:常に適切なサイズのファビコンが取得されるよう調整を加えた。 / “1347532 - The page-icon protocol should default to the best size for most UI…” https://t.co/mVwLfuyYkm"
Rockridgeさんのツイート: "Fx58:Cookieデータベースの起動処理を非同期化した。 / “870460 - Lazy load of cookie service blocks main thread while cookie database lo…” https://t.co/bkrPRgpn9P"
Rockridgeさんのツイート: "Fx58:プライベートブラウジングモードにおいても、ブラウジングライブラリーで「このサイトの履歴を消去」が使えるようになった。 / “1394824 - "Forget About This Site" is missing i…” https://t.co/WOmj0B1LaK"
Rockridgeさんのツイート: "Fx58:トラブルシューティング情報(about:support)のページに「国際化とローカライズ」のセクションが加わり、ロケール関連の情報が表示されるようになった。 / “1414975 - Add locale inform…” https://t.co/9HzZircWJ9"
Rockridgeさんのツイート: "Fx58:Firefoxをリフレッシュした際、ブックマークツールバーにデフォルト以外のブックマークが4つ以上あるときは、ツールバーを隠さないようにした。 / “1415692 - New/Reset profiles shoul…” https://t.co/ncvaBujGCR"
Rockridgeさんのツイート: "Firefox 58のFirefox Screenshotsはプライベートブラウジングモードに対応しており、スクショのクラウド保存はできないがダウンロードは可能。モード終了時に削除される。参照:… https://t.co/xswmfdeMjW"
Rockridgeさんのツイート: "Firefox 58の紹介記事だが、CSS Font DisplayやPromiseの新機能にスペースを割くあたりがMozilla Hacksらしさか。 / “Firefox 58: The Quantum Era Contin…” https://t.co/cVFKD47t7o"

59

Rockridgeさんのツイート: "Fx59:textarea要素のautocomplete属性をサポート。参照:https://t.co/axCbzT9I7r https://t.co/EFTGGMOuXr / “Intent to Implement and …” https://t.co/JBhwK3kGI5"
Rockridgeさんのツイート: "Fx59:スリープ時におけるFirefox Syncの動作を抑えるべく、スリープ前に簡易同期を、スリープ復帰後に完全同期を行う。参照:https://t.co/ckTeDo2zD1 / “1416322 - Schedule a…” https://t.co/Am50jLUyM2"
Rockridgeさんのツイート: "Firefox Nightly 59でCustom Elementsがデフォルト有効化される見込み。 / “Intent to implement: Custom Elements” https://t.co/B4DkLHshgW"
Rockridgeさんのツイート: "Fx59:@-moz-documentルールがWebコンテンツから使用できなくなる。参照:https://t.co/hlLgfrJHdP / “Intent to unship: @-moz-document from cont…” https://t.co/XbWA54HUWY"
Rockridgeさんのツイート: "Fx59:ページのメタデータは変更があるときのみPlacesデータベースに書き込まれるようになった。無駄な書き込み処理が減ることに。 / “1420571 - Reduce I/O caused by storing page …” https://t.co/t08UABotdy"
Rockridgeさんのツイート: "Fx59:Race Cache With Network(RCWN)がデフォルト有効化。ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワーク要求を送り、応答が早ければそちらを利用する。 / “139284…” https://t.co/NKFFK3xWoD"
Rockridgeさんのツイート: "Fx59:古く、標準化もされなかったpcast/feedプロトコルを削除。フィードの購読機能には影響しない。参照:https://t.co/fDsD8FYi5X / “Intent to remove pcast and fee…” https://t.co/4JJ0i6IFKB"
Rockridgeさんのツイート: "Fx59:オプション画面の「保存されたログイン情報」において、コンテキストメニューからURLをコピーしたり、タブに開いたりすることができるようになった。 / “1334663 - Allow users to copy save…” https://t.co/1AKnxeRATp"
Rockridgeさんのツイート: "Fx59:最近の履歴を削除するなどして、フォーム履歴をまとめて削除した場合、Firefox Syncの同期処理にそれが反映されるようになった。 / “1404427 - Sync mass Form History deleti…” https://t.co/8RzyvKuAij"
Rockridgeさんのツイート: "Fx59:Firefox Screenshotsに、スクリーンショットをクリップボードに追加する機能が実装された。 / “1419148 - Export Screenshots 25.0.0” https://t.co/p5KTIXXrky"
Rockridgeさんのツイート: "Fx59:ピン留めしたタブのコンテキストメニューにも、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目が出るようになった。ただし閉じられるのはピン留めされていないタブに限られる。 / “1419537 - Unabl…” https://t.co/pgriZiNVXX"
Rockridgeさんのツイート: "Fx59:文字列の選択時、アンダースコアを文字列の一部として扱うようにした。従来は文字列の区切りとして扱われていた。 / “196175 - underscore should be part of word, not punc…” https://t.co/gnVqfOedtJ"
Rockridgeさんのツイート: "Fx59:オプションの〔プライバシーとセキュリティ〕内の「許可設定」欄で、通知の許可設定のUIに、すべての通知を拒否する設定が追加された。 / “1368744 - Provide a way for users to deny…” https://t.co/NKtKw6MKQp"
Rockridgeさんのツイート: "Fx59:Activity Stream導入後のホームタブ・新規タブにおいて、トップサイトの項目をドラッグ&ドロップで並び替えられるようになった。 / “1402192 - Top Sites drag and drop” https://t.co/Fz9UukKKZA"
Rockridgeさんのツイート: "Fx59:JAR形式のファイルに対する読み書きが非同期化され、本体の起動が高速化された。 / “1373708 - Convert Jar channels to stop using main thread I/O” https://t.co/vqj2t1HpqT"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、Web Authenticationがデフォルト有効化。参照:https://t.co/wfLGpyeoKL / “1428918 - Web Authentication - Enable…” https://t.co/to6Sb30OBf"
Rockridgeさんのツイート: "2017年12月19日時点のFirefox Nightly 59に約8万6000項目のブックマークをインポートしたテスト結果。Async Places Transactionsが無効だと処理終了までに優に3時間以上を要するが、有効… https://t.co/V3bXMtG39D"
Rockridgeさんのツイート: "Fx59:Placesデータベースの破損を検知した場合、データベースを新規作成して、元のデータベースから可能な限りテーブルを移し、当該新データベースで置き換える処理が、自動的に実行される。 / “1411538 - Add a …” https://t.co/kLYg40TPRH"
Rockridgeさんのツイート: "Fx59:オプション画面の〔検索〕に、アドレスバーにおいて履歴からのサジェストよりも検索結果からのサジェストを優先する設定が追加された。 / “1426216 - Allow users to choose whether se…” https://t.co/wOVt0TmuWV"
Rockridgeさんのツイート: "Fx59:プライベートブラウジングモードでは、リファラーポリシーがデフォルトでstrict-origin-when-cross-originに設定されるようになった。参照:https://t.co/V0ucWrNl6v / “5…” https://t.co/72lIIfzNf4"
Rockridgeさんのツイート: "Fx59:Windows以外のプラットフォームでは、プロファイルのパスが正規のUTF-8でない場合、本体が起動しないようにした。 / “1423855 - Refuse to run on non-Windows platfor…” https://t.co/1RpOPtdKXS"
Rockridgeさんのツイート: "Fx59:ディスプレイリストに変更がない場合もRetained Display Listsが機能するようになった。 / “1419021 - Retain display list when there are no chang…” https://t.co/KLrCoR0XW2"
Rockridgeさんのツイート: "Fx59:ピン留めされたタブ上でCtrl(Command)+ Wキーを押した場合、ピン留めされていない最初のタブがアクティブになるようにした。 / “1420601 - Let Accel+W in a pinned tab s…” https://t.co/oa40Tb6TuX"
Rockridgeさんのツイート: "Fx59:ロケールのリストは、新たに設けられたintl.locale.requestedの設定内に記述されることになった。 / “1414390 - Introduce a pref to store BCP47 locale …” https://t.co/xw6xs76gzU"
Rockridgeさんのツイート: "Fx59:fileプロトコルのURIについては、同期対象から外されることになった。 / “664590 - History sync: ignore file:/// URIs” https://t.co/g9Wj0glJW0"
Rockridgeさんのツイート: "Fx59:table要素内でもposition: stickyが有効となった。 / “975644 - Make position: sticky work on table parts” https://t.co/FGGUilMpMH"
Rockridgeさんのツイート: "Fx59:dom.webcomponents.enabledの設定名をdom.webcomponents.shadowdom.enabledへと変更した。 / “1428685 - Consider renaming pref …” https://t.co/LDyy1rKxdl"
Rockridgeさんのツイート: "Fx59:tab warming機能が有効の場合、タブの閉じるボタンにカーソルをホバーさせた時点で、そのタブを閉じた際にアクティブになるタブのwarming処理が始まる。 / “1430292 - Warm up tab we'…” https://t.co/3UTy7j4YWX"

6x

60

Rockridgeさんのツイート: "Firefox 60リリース版において、USB接続されたFIDO U2Fデバイスがサポートされる見通し。その後もFIDO 2.0デバイスのサポートが拡充されていくという。 / “Intent to Ship: Web Authe…” https://t.co/jYn7i7b5b6"
Rockridgeさんのツイート: "Firefox 60で、Webコンテンツから使用されるjarプロコトルのサポートが廃止される見込み。参照:https://t.co/SwIrq4Fecp / “Intent to unship: remote jar: prot…” https://t.co/Q8mvHfpqXZ"
Rockridgeさんのツイート: "Firefox 60ではNightly/Developer Editionにおいてアプリケーションキャッシュ(AppCache)の利用が安全なコンテキストに限定される見通し。Firefox 62リリース版でも同様の措置へ。参照:… https://t.co/l58xbEEYLd"
Rockridgeさんのツイート: "Firefox 60でPolicy Engineが実装されるのに伴い、AutoConfig機能は廃止予定となる見込み。 / “1434655 - Make AutoConfig ESR only starting with Fi…” https://t.co/gIefqhB6OI"
Rockridgeさんのツイート: "Fx60:Rust言語製の新しい設定パーサが実装された。従来よりも高速かつ安全で、エラーメッセージがわかりやすく正確になり、メンテナンスもかなりしやすくなったという。参照:https://t.co/YlVSP1Gep3 / “N…” https://t.co/DY50wXxS0L"
Rockridgeさんのツイート: "Fx60:設定画面の〔プライバシーとセキュリティ〕の「サイトデータ」で、"すべてのデータを消去"を選択すると確認画面が表示され、キャッシュも削除できるようになった。 / “1422163 - Make a new confirm…” https://t.co/tfEBO7oghi"
Rockridgeさんのツイート: "Firefox 60に実装されたStructured Bookmark Applicationを取り上げている。ブックマークの同期時、サーバから読み込まれた内容をそのままデータベースに書き込むのではなく、中間的なツリーを構築するの… https://t.co/UhQfOqbHmj"
Rockridgeさんのツイート: "Fx60:スクリーンの横幅が十分にある場合、新規タブに表示されるトップサイトを1列あたり8つに増やすとともに、ハイライトのカードサイズを大きくするようにした。 / “1385944 - Support wider layout …” https://t.co/KctiojbENY"
Rockridgeさんのツイート: "Fx60:軽量インストーラがダウンロードを行う際、HTTPS接続を用いるようにした。 / “1246387 - Use https for stub installer requests” https://t.co/rPdBG5f2OZ"
Rockridgeさんのツイート: "Fx60:browser.urlbar.openintabの設定をtrueに変更すると、アドレスバーに入力された内容(URLまたは検索クエリ)は、常に新規タブで表示される。 / “1394304 - Support always…” https://t.co/oyF3ZqvmCv"
Rockridgeさんのツイート: "Fx60:security.insecure_connection_text.enabledの設定をtrueに変更すると、HTTP接続のページでは、アドレスバーに"Not Secure"つまり「安全でない接続」と表示されるようにな… https://t.co/sDMQzLG4ey"
Rockridgeさんのツイート: "Fx60:network.ftp.enabledの設定をfalseに変更すると、FTPプロトコルを無効にできる。 / “1374114 - Add a pref to disable ftp://” https://t.co/2DX18Pxfyo"
Firefox ESR60以降でのPolicy Engineによるポリシー定義の手順 - ククログ(2018-02-19)
Rockridgeさんのツイート: "Fx60:security.mixed_content.upgrade_display_contentの設定をtrueにすると、静的混在コンテンツにおいてHTTP接続が指定されたリソースを、HTTPS接続によって取得するという。 https://t.co/hCExsfu3kB"
Rockridgeさんのツイート: "Fx60:Cookie関連の設定がサイトデータのセクションに移された。Cookieはサイトデータの一部として扱われ、Cookieのみを一覧から削除することはできなくなった。 / “1432743 - Move cookie se…” https://t.co/onK6zsWjpt"
Rockridgeさんのツイート: "Policy EngineはFirefox 60で、ESRに限らず通常版でも利用可能になるようだ。ただし、一部の重要なポリシーはESRでのみ有効となる。 / “Intent to Ship: Enterprise Policies” https://t.co/2vf50eZCg8"
Rockridgeさんのツイート: "Fx60:新規タブ内のセクションごとにコンテキストメニューが設けられた。セクションを閉じたり削除したりできるほか、新規タブの設定を呼び出すことも可能。 / “1422079 - Add section context menu …” https://t.co/nikNbXfr8k"
Rockridgeさんのツイート: "Fx60:「ページのソースを表示」する際、新規ウィンドウに表示させる設定が廃止された。常に新規タブに表示されることになる。参照:https://t.co/JETAsOLAq1 / “Feature Removed: View S…” https://t.co/n6NebKKPCp"
Rockridgeさんのツイート: "Fx60:フレーム数の多いアニメーションGIF画像やAPNG画像を表示させた際、大量のメモリを消費する問題を修正。 / “523950 - Long animated images (GIF, APNG) makes Firef…” https://t.co/iWzpUYTCWc"
Rockridgeさんのツイート: "Fx60:長大なテキストファイルを表示する際、パフォーマンスが著しく低下する問題を修正。 / “1427625 - Performance cliff loading a Taskcluster log” https://t.co/IN56Y6rovT"
Rockridgeさんのツイート: "Fx60:Windows向け64bit版で、プラグインプロセスによるプロセス間通信がSSLによって保護されるようになったらしい。 / “1429643 - Restrict SSL brokering in NPAPI proc…” https://t.co/z7HFh3ohMq"
Rockridgeさんのツイート: "Fx60:Web Authentication利用時のパーミッションUIが実装された。 / “1430150 - Web Authentication - Prompt for permission before permitt…” https://t.co/oNqyW3BPZV"
Rockridgeさんのツイート: "Fx60:フォーム履歴の処理を非同期化。 / “888784 - FormHistory.jsm migration and DB creation should be off the main thread” https://t.co/uJ3qhQQ1rt"
Rockridgeさんのツイート: "Fx60:他のブラウザからブックマークや履歴などをインポートする際の処理について、非同期化を進めた。参照:https://t.co/j4gd1MhPeH / “862127 - profile migrators do all …” https://t.co/SV3KzEXyE0"
Rockridgeさんのツイート: "Fx60:workerが常時有効化。 / “1434934 - Get rid of dom.workers.enabled pref” https://t.co/n5Puw0CfqV"
Rockridgeさんのツイート: "Fx60:HTMLテキストでもCSSのpaint-orderプロパティがデフォルト有効化された。参照:https://t.co/ygLlo9FN8w / “Firefox 60 – Modules and More – Mozi…” https://t.co/ScyIRlmQG1"
Rockridgeさんのツイート: "MozillaがFirefox 60以上を使用するen-USロケールユーザーの1%を対象に、ファイルのダウンロード先としてクラウドストレージを指定可能にする機能の実験を行った。実験は今後も形を変えて継続される見込み。 / “Un…” https://t.co/ebDLXgiJfH"

61

Rockridgeさんのツイート: "Firefox 61以降、ビルドの際にNode.jsが必須となる模様。参照:https://t.co/rKdElYR1j2 / “Intent to require Node to build Firefox 61 and la…” https://t.co/pTb3yIO7k4"
Rockridgeさんのツイート: "Fx61:contentプロセスの生成時、メインスレッドをブロックしないようにした。パフォーマンスの改善が期待できる。 / “1348361 - Remove sync IPC when launching a child pr…” https://t.co/ZNOhFaKKPr"
Rockridgeさんのツイート: "Fx61:Windows版で、Async Pan/ZoomのコントロールをGPUプロセスのメインスレッドが担当するようになった。ユーザー入力時の応答性が向上するという。 / “1441324 - Make the APZ con…” https://t.co/DYPO4Hqtu0"
Rockridgeさんのツイート: "Fx61:browser.tabs.closeTabByDblclickの設定をtrueに変更すると、選択したタブをダブルクリックするだけで、そのタブを閉じることができる。 / “1435142 - Pref to enable…” https://t.co/SpyVyNcaBy"
Rockridgeさんのツイート: "Fx61:最終同期時間の表示が、日時ではなく、相対的にどれくらい前か(例:4時間前)を示すものになった。 / “1184265 - Make last sync date be relative” https://t.co/J1f2flpJ9Q"
Rockridgeさんのツイート: "Fx61:mousewheel.autodir.enabledをtrueに変更すると、縦書きのサイトでふつうにマウスホイールを回転させるだけで横スクロールが行われる。 / “1358017 - (autodir) autodir…” https://t.co/kwYm4EiRBk"
Rockridgeさんのツイート: "Fx61:「ページ情報」ウィンドウのセキュリティ欄からCookie以外のサイトデータも消去できるようになった。 / “1348223 - Organize site data (persistent storage) bette…” https://t.co/IHe1sqedfA"
Rockridgeさんのツイート: "Fx61:新規タブがページのサムネイルを取得する際、トラッキング防止機能が常に働くようになった。データ漏洩を予防するだけでなく、コネクションが減るのでスピードアップも実現できるという。 / “1449294 - Capture …” https://t.co/hXV9luZJqD"
Rockridgeさんのツイート: "Fx61:セッション復元の際、常に、前回終了時にアクティブだったウィンドウがアクティブになる形で、復元が行われるようになった。 / “1034036 - [Session Restore] Load windows by des…” https://t.co/1lD4vhya1W"
Rockridgeさんのツイート: "Fx61:Web互換性上の問題を修正するシステムアドオンがバージョン2にアップデートされた。特定のプラットフォームでUA文字列を上書きする機能や、特定のサイトを対象にJavaScript/CSSを挿入する機能が実装されている。 https://t.co/byIYxS2vKa"
Rockridgeさんのツイート: "Fx61:HTTP(S)ページによるFTPサーバーからのリソース読み込みをブロックする理由について。FTPは古いプロトコルであり、暗号化がされずセキュリティに問題があるので、少しずつ利用可能な範囲を狭めていくようだ。 / “Bl…” https://t.co/NRpjVzzRId"
なかのん&マジックさんのツイート: "自分で書いてたけど却下されてUIチームが引き取ってくれてた"browser.tabs.insertAfterCurrent"という設定、Firefox 61から入ってたことに今気付いた。"
なかのん&マジックさんのツイート: "これで仕事がはかどる。"
なかのん&マジックさんのツイート: "イライラしてカッとなって書いたパッチだったのに投入されてるのに9ヵ月も気付いて無いとか("

62

Rockridgeさんのツイート: "Variable Fontのデフォルト有効化はFirefox 62に延期された。 / “1455785 - Pref off OpenType Font Variations (Variable Font) support” https://t.co/h5EwnqNk2L"
Rockridgeさんのツイート: "Fx61:ブロックリスト関係のAPIを非同期化し、本体のパフォーマンスを改善した。 / “1447680 - Make blocklist APIs asynchronous” https://t.co/rgaLEgUpyw"
Rockridgeさんのツイート: "Fx62:RDF形式のファイルのサポートを廃止した。 / “833098 - Kick RDF out of Firefox and Gecko” https://t.co/6JqJiY55Tz"
Rockridgeさんのツイート: "Fx62:browser.tabs.loadBookmarksInTabsの設定がtrueの場合であっても、現在のタブが空白のときは、現在のタブにブックマークされたページを読み込むようにした。 / “1417133 - When…” https://t.co/VanNJcR53v"
Rockridgeさんのツイート: "Fx62:アドレスバーの自動補完機能のアルゴリズムが改善された。 / “1239708 - Improve the autofill decisions algorithms” https://t.co/vzGQvo57YJ"
Rockridgeさんのツイート: "Fx62:アドレスバーからポップアップされるコントロールセンターに、「Cookieとサイトデータを消去する」ボタンが付いた。ページを閲覧しながら、そのサイトのプライバシー情報を消せるので便利だ。 / “1462469 - Add…” https://t.co/6bPEwgkE8Z"
Rockridgeさんのツイート: "Fx62:browser.tabs.multiselectを有効化し、複数のタブを選択した状態で、うち1つのタブを閉じると、選択したタブすべてを閉じることができる。 / “1458022 - Implement ability …” https://t.co/yZSEZKmkp9"
Rockridgeさんのツイート: "Fx62:Firefox Syncの接続を切断した際、ローカルに保存されたSyncのデータを削除するかどうか尋ねるようにした。 / “1409208 - Provide users on disconnect an option…” https://t.co/ZiYSWtgbDs"
Rockridgeさんのツイート: "Fx62:メニューパネルに、トラッキング防止機能のオン・オフを切り替える項目を追加。Fx63では設定画面から防止対象を細かく制御できるようにする計画がある。参照:https://t.co/63RFOfeJ5U / “146246…” https://t.co/N3yU88pu4d"
Rockridgeさんのツイート: "Fx62:Android版FirefoxでもRace Cache With Network(RCWN)がデフォルト有効化。 / “1377570 - Enable RCWN on mobile” https://t.co/zZZTJdIx69"
Rockridgeさんのツイート: "Fx62:新規タブ・ホームタブ内で使用されるPNG画像について、データURIではなくBlobとすることで、省メモリ化を実現した。 / “1436615 - Lots of memory used for activity str…” https://t.co/CJ7xGZGO62"
Rockridgeさんのツイート: "Fx62:個別のブックマークのプロパティやブラウジングライブラリーから、「説明」欄が省かれた。データ自体は保持されているが、将来のバージョンで自動的に削除される模様。 / “1463738 - Remove the Bookma…” https://t.co/FHJtD297LU"
Rockridgeさんのツイート: "Fx62:アドレスバーの候補表示において、古すぎる履歴がヒットしないよう調整した。 / “1464454 - Consider an higher use_count limit for adaptive history” https://t.co/xMCLbDB1xv"
Rockridgeさんのツイート: "Fx62:storage.localのIndexedDBバックエンドはデフォルト無効化されており、extensions.webextensions.ExtensionStorageIDB.enabledをtrueにする必要がある。… https://t.co/57Ph71fK0T"
Rockridgeさんのツイート: "Fx62:デフォルト有効化予定であるシェイプパスエディタについて。文章が図形を回り込む際の位置関係を直感的に調節できる。 / “Jen Simmonsさんのツイート: "I’m proud to show you the nex…” https://t.co/Q2dCa1OkQK"
Rockridgeさんのツイート: "Fx62:開いているタブを異なるコンテナで開き直すことが可能に。 / “1376119 - containers: "reopen in .." option” https://t.co/fkXyyiqunr"
Rockridgeさんのツイート: "Fx62:アイデンティティパネル中のトラッキング防止機能のUIが改善された。サイト単位のオン・オフを切り替えることができるほか、設定画面にも飛ぶことができる。 / “1462470 - Update Tracking Prote…” https://t.co/WfFojmZvdj"
Rockridgeさんのツイート: "Fx62:複数タブの選択機能を有効化し、現に複数のタブを選択した状態でCtrl+wキーを押すと、選択したタブをすべて閉じることが可能に。 / “1467340 - Ctrl+w/Ctrl+f4 should close all …” https://t.co/bfjzrOVyr4"
Rockridgeさんのツイート: "Fx62:ブックマークの追加時などに表示されるダイアログで、そのページのサムネイルが表示されるようになった。 / “1460248 - Display preview image and favicon in the New B…” https://t.co/et1l8rrw8v"
Rockridgeさんのツイート: "Fx62:ブックマーク追加時、ブラウジングライブラリーに保存した旨のメッセージが表示されるようになった。 / “1459907 - Implement new bookmark confirmation” https://t.co/CPWRvwWxmv"
Rockridgeさんのツイート: "Fx62:アドレスバーにURLを貼り付けた際、URL末尾に空白が含まれている場合はそれを除去するようにした。 / “1460097 - Hidden character in pasted url gets wrongly in…” https://t.co/ZjA6h9rAMR"
Rockridgeさんのツイート: "Fx62:リリースチャンネルで、AutoConfig機能の利用はオリジナルAPIの範囲に限定されることになった。もっとも、general.config.sandbox_enabledの設定を追加してfalseに変更すれば回避できる… https://t.co/wMnyXXYL2o"
Rockridgeさんのツイート: "MozillaはFirefox 62のリリース後、en-US版のユーザーを対象として順次、Firefox Monitor(情報流出判別ツール)を利用可能にしていく模様。参照:https://t.co/zMMiYeTnWV https://t.co/qxmUsBhwEG"
Rockridgeさんのツイート: "Fx62:1つのホストにおけるCookieの上限数を150から180に引き上げた。 / “1460251 - Up limit to 180 cookies and expose limit prefs” https://t.co/2grfhLUH2Q"
Rockridgeさんのツイート: "Fx62:Windows版ではbrowser.startup.blankWindowの設定がデフォルト有効化されているので、起動開始後すぐに空白のウィンドウが表示される。 / “show_bug.cgi?id=1473142” https://t.co/93GQXVmjNI"
Rockridgeさんのツイート: "Firefox 62においてLayout関連で修正されたバグ一覧。CSS Parsing and Computation、DOM: CSS Object Model、Layout、Layout: Block and Inline、… https://t.co/mLXBE7FZaj"

63

Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化し、現に複数のタブを選択した際、現在のタブが選択対象となっているかどうかが判別しやすくなった。 / “1468705 - Cannot tell that a tab is multisele…” https://t.co/Mg3Ug7b9tA"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化した場合、複数選択したタブをまとめてピン留めし、あるいはそのピン留めを解除することができるようになった。 / “1458060 - Implement ability to pin/unpin…” https://t.co/v6iTAfTnkn"
Rockridgeさんのツイート: "Fx63:ブックマークの追加時などに表示される編集パネルにおいて、ブックマーク追加時に同パネルを表示するかどうかを選択するチェックボックスが付いた。チェックを外すと直ちにブックマークの追加処理が行われる。 / “1459878 …” https://t.co/zQMGvABZhN"
Rockridgeさんのツイート: "Fx63:オプションの〔ホーム〕欄で、「既定値に戻す」ボタンは設定の変更があった場合にだけ表示するようにした。 / “1434751 - Add Restore Defaults button to Home” https://t.co/zpd78Itbs1"
Rockridgeさんのツイート: "Fx63:検索結果を新規タブで表示する設定(https://t.co/cuNRKYzzc7.openintabがtrue)にしている場合でも、現在のタブが空白のときは、そのタブに検索結果が表示される。 / “1455326 - When brow…” https://t.co/yS9ifouIZ9"
Rockridgeさんのツイート: "Fx63:ブックマークに付随する「説明」欄のデータが、Placesデータベースから削除された。 / “1402890 - Stop supporting and remove the description annotation” https://t.co/5VOvnk5HVy"
Rockridgeさんのツイート: "Fx63:Placesデータベースのnotificationsシステムに大きな改修が加えられた。今後、ブックマークや履歴に適用されて本体のパフォーマンスが向上する見通し。 / “1340498 - Redesign the Pl…” https://t.co/3z5tSfmEJT"
Rockridgeさんのツイート: "Fx63:ブロックリストの読み込み時にプチフリが起きないようにした。 / “1454378 - Loading the blocklist is janky” https://t.co/wFVB3iaOMf"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効にし、現に複数のタブを選択した状態で、Shift+Ctrl/Cmdキーを押したまま他のタブを選択すると、選択範囲を拡張できる。 / “1473187 - Add ability to selec…” https://t.co/I6xxhK6iqB"
Rockridgeさんのツイート: "複数タブの選択機能は、将来的にデフォルト有効化される見通し。 / “1474938 - Enable the multiselect tabs feature by default for release and beta bu…” https://t.co/qWCCOUZFFT"
Rockridgeさんのツイート: "Fx63:about:performanceから"Memory usage of Subprocesses"欄が削除された。利用率の低さなどが理由だが、開発者の中にも代替機能の実装を望む声がある。参照:… https://t.co/BKyAU4YHKQ"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、複数タブの選択機能がデフォルト有効化された。具体的な機能は今後も随時実装されていく。複数タブのブックマークや別ウィンドウへの移動が実現されてからが本番だろう。 / “1474704 - En…” https://t.co/qI8YeVjoQP"
Rockridgeさんのツイート: "Fx63:Windows版で、ジャンプリストの生成処理を非同期化し、パフォーマンスを向上させた。 / “1425144 - 0.34 severe hangs / khr in CreateFileW while creatin…” https://t.co/yHjVRWsvwz"
Rockridgeさんのツイート: "Fx63:contentプロセス間で本体の設定データを可能な限り共有する仕組みとし、省メモリ化を図るとともにプロセスの起動を高速化した。参照:https://t.co/90Ad0YVcBF / “1471025 - Use sh…” https://t.co/8d8nfxMIb8"
Rockridgeさんのツイート: "Fx63:ショートカットに"-no-remote"を指定していない場合であっても、about:profilesの「プロファイルを別のプロセスで起動」が正しく動作するようになった。 / “1367743 - About:profi…” https://t.co/6wtZJsWw1x"
Rockridgeさんのツイート: "Fx63:about:policiesのページにアクティブなグループポリシーが列挙されるようになった。参照:https://t.co/Uy7ILTieUf / “show_bug.cgi?id=1472528” https://t.co/Myzr4906xT"
Rockridgeさんのツイート: "Firefox Nightly 63で、Content Blocking(旧トラッキング防止)を有効化し、"Slow Tracking Elements"を"Always block"に設定すると、Webページの読み込みが高速化す… https://t.co/TKwSTe48KR"
Rockridgeさんのツイート: "Fx63:オプションの〔プライバシーとセキュリティ〕の「トラッキング防止」は、妨害コンテンツのブロックへと名称が改められ、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能が加わった。 / “1476217 -…” https://t.co/urzksJTKME"
Rockridgeさんのツイート: "Fx63:Content Blocking(妨害コンテンツのブロック)に関する設定UIを常時有効化。 / “1476879 - Remove the privacy.trackingprotection.ui.enabled p…” https://t.co/MUfScrRH69"
Rockridgeさんのツイート: "Fx63:FastBlockでサードパーティのコンテンツを何でもかんでもブロックしてしまうとWebページの表示が崩れるため、スタイルシート、フォントおよび画像はブロックの対象から除かれている。 / “1482129 - Exem…” https://t.co/7xjFgY408E"
Rockridgeさんのツイート: "Fx63:Windows版Firefoxを規定の「メール」アプリに設定できるようにした。 / “675428 - register firefox as default mail client” https://t.co/5G8E7sNAJM"
Rockridgeさんのツイート: "Fx63:browser.newtabpage.activity-stream.asrouterExperimentEnabledの設定をtrueに変更すると、Contextual Feature Recommender(CFR)… https://t.co/sQKhaLdD2F"
Rockridgeさんのツイート: "Fx63:1つのホストにおけるCookieの上限数が180を超えた場合、期限切れのものや古いものから優先的に削除して、150まで減らすようにする。 / “1357676 - Implement batch eviction fo…” https://t.co/C94v54mshX"
Rockridgeさんのツイート: "Fx63:ページ内翻訳機能にGoogle Translation APIのサポートを追加。有料のAPIキーが備わっていないので一般ユーザーが恩恵を受けるには至らない。参照:https://t.co/vK1tCTzXSK / “1…” https://t.co/jDjrmQmzni"
Rockridgeさんのツイート: "Firefox 63においてLayout関連で修正されたバグ一覧。14項目に分かれる。 / “Platform/Layout/ReleaseNotes/63 - MozillaWiki” https://t.co/pvOdGutBbI"
Rockridgeさんのツイート: "Fx63:Windows版で、プロセスの優先度を調節する仕組みが実装された。 / “1394710 - Changing priority on Window processes” https://t.co/Dq8cFgmY0k"
Rockridgeさんのツイート: "Fx63:Policy Engineのポリシーがアクティブになるまで関連するコードを読み込まないようにし、消費メモリを削減した。 / “1470324 - Don't load EnterprisePoliciesContent…” https://t.co/r7gs2jwE8l"
Rockridgeさんのツイート: "Fx63:サイクルコレクションの処理が長引いてプチフリが発生するのを防止。 / “1397297 - nsCycleCollector::FreeSnowWhite() could be more incremental” https://t.co/p6t3FhUgUE"
Rockridgeさんのツイート: "Fx63:Windows版で、firefox.exeが直接メインプロセスを起動させるのではなく、まず起動プロセスを開始し、それがメインプロセスを生成するという仕組みが実装された。Firefox 64で有効化を目指す。 / “14…” https://t.co/WlBue8VCCm"
Rockridgeさんのツイート: "Fx63:contentプロセスに読み込まれるコンテンツ内検索バーのコードを最小化し、消費メモリを削減した。 / “1479318 - Minimize the amount of content Findbar code lo…” https://t.co/ESwy49pzly"
Rockridgeさんのツイート: "Fx63:タブの複数選択時には、コンテキストメニューに「タブを複製」の項目が表示されないようにした。 / “1481473 - Hide the "Duplicate Tab" menuitem when there is a …” https://t.co/1isv7c9cT2"
Rockridgeさんのツイート: "Firefox 63 Beta 5でタブの複数選択機能が有効化された。early betaにおけるテストとのことで、Beta 6でも有効のままだが、通常Beta 5はearly betaの期間外とされていることから、いつまで続くか… https://t.co/yhRsno0R3R"

64

Rockridgeさんのツイート: "Fx64:選択した複数のタブを端末に送信する機能が実装された。 / “1470555 - Implement ability to send a selection of tabs” https://t.co/JnAuJNffCk"
Rockridgeさんのツイート: "タブの複数選択機能のデフォルト有効化はFirefox 64に延期。一部機能の実装が間に合わなかったため。 / “1488904 - Enable multiselect tabs feature on early beta bu…” https://t.co/WTElNXtsLj"
Rockridgeさんのツイート: "Fx64:複数選択したタブをドラッグ&ドロップによってまとめてブックマークに追加できるようになった。 / “1480907 - Implement ability to bookmark a selection of tabs …” https://t.co/jzsdOrqW6T"
Rockridgeさんのツイート: "Fx64:about:crashesのUIが変更され、すっきりした感じになった。 / “1476062 - about:crashes user interface update” https://t.co/oZh6jWUvlm"
Rockridgeさんのツイート: "Fx64:キャッシュの利用によりサイクルコレクションの処理を改善。 / “1488413 - Investigate if CycleCollector could use a cache on top of the graph…” https://t.co/Kebcd4bmRJ"
Rockridgeさんのツイート: "Fx64:ブックマークをエクスポートする際、browser.bookmarks.max_backupsの設定値が正しく反映されるようにした。 / “show_bug.cgi?id=1066992” https://t.co/gebonavwQN"
Rockridgeさんのツイート: "Fx64:Mac版でも、Windows版のグループポリシーに相当するEnterprise Policyをサポートした。 / “1445943 - Enterprise Policy support for macOS” https://t.co/6RT0khRCZe"
Rockridgeさんのツイート: "Fx64:ホームタブ・新規タブで、検索フィールド以外のセクションの表示をすべて無効にした場合、検索フィールドの上部にFirefoxのロゴが表示されるようになった。Activity Stream以前に近い印象となる。 / “148…” https://t.co/PB1A71tQhW"
Rockridgeさんのツイート: "Fx64:タブの複数選択機能がデフォルト有効化された。 / “1474938 - Enable the multiselect tabs feature by default for release and beta builds” https://t.co/okhLNYE9J1"
Rockridgeさんのツイート: "Fx64:ハンバーガーメニューの「その他」にある"Task Manager"から、about:performanceのページを呼び出せるようになった。 / “1498186 - Add a 'Task Manager' item…” https://t.co/iv89VC5iKk"
Rockridgeさんのツイート: "Fx64:当初導入予定だった仕様を撤回し、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目はサブメニューに回らず、従前どおり独立した項目として表示される。 / “show_bug.cgi?id=1502083” https://t.co/xOZh27FAY1"
Rockridgeさんのツイート: "Fx64:選択した複数のタブは別のコンテナに送ることもできる。 / “1500098 - The user is unable to open multiple tabs in Container” https://t.co/sCoXmFwGf6"

65

Rockridgeさんのツイート: "Firefox Nightly 64にFeaturePolicyが実装される。Fx65でデフォルト有効化の見通し。参照:https://t.co/L9pPbp4DPZ / “Intent to implement: Featur…” https://t.co/Qu5vDDWIjd"
Rockridgeさんのツイート: "Fx65:macOS版で、WebブラウジングのHandoffをサポート。参照:https://t.co/89Uhx7z3dH / “1085391 - Support Yosemite Handoff "web browsing…” https://t.co/HITp4eaEPm"
Rockridgeさんのツイート: "Fx65:img要素にalt属性がない場合、src属性の指定の有無にかかわらず、置換要素が生成されるようになった。参照:https://t.co/5uSnkStghd / “show_bug.cgi?id=1196668” https://t.co/t1071LtPz2"
Rockridgeさんのツイート: "Fx65:従前の仕様を撤回し、タブの複数選択時においても「タブを複製」の項目が表示されるようになった。 / “show_bug.cgi?id=1497980” https://t.co/puMGrTPyrp"
Rockridgeさんのツイート: "Fx65:起動時に前回のセッションを復元する設定になっている場合であっても、ブラウザ終了時に警告を出す設定が無効化されなくなった。 / “550559 - Decouple Session Restore from Quit w…” https://t.co/DnuOkkuwaE"
Rockridgeさんのツイート: "Fx65:Nightlyチャンネルで、a要素などにtarget=_blankの設定がされているときは自動的にrel=noopenerが付与されるようにした。 / “1503681 - Make target=_blank on …” https://t.co/Vh5Im3UDfd"
Rockridgeさんのツイート: "Fx65:Async Pan/Zoom(APZ)のrelative scroll offset updatesという機能がデフォルト有効化された。 / “1507356 - Let apz.relative-update.ena…” https://t.co/6DBDWQp08q"

66

Rockridgeさんのツイート: "Fx66:すべてのタブを表示するドロップダウンメニューに「タブを検索する」という項目が追加された。アドレスバーにジャンプして検索が行える。参照:https://t.co/BCAVvM0glv / “1516083 - Add "…” https://t.co/W5LtD6dNiH"
Rockridgeさんのツイート: "Fx66:Scroll Anchoring機能をサポート。Nightlyチャンネルでのみ有効。設定はlayout.css.scroll-anchoring.enabled。参照:https://t.co/eZ2oRu6g5w https://t.co/28QHprCtlm"

67

Rockridgeさんのツイート: "Fx67:タブの複数選択時、選択されたアクティブでないタブについてタブ全体の色が変わるようになった。選択範囲がわかりやすくなる。 / “1515686 - Update multi-selected tab colour so it's more visible in default theme” https://t.co/Pi8vXfzJJH"
Rockridgeさんのツイート: "Fx67:Windows版Nightlyチャンネルで、Process Priority Managerがデフォルト有効化。バックグラウンドのタブのみを含むcontentプロセスについて処理の優先度を下げる。参照:https://t.co/jI2liaOBEW / “1476981 - Turn on dom.ipc.processPriorityManager.enabled in Nig…” https://t.co/WWMu9QGHVB"

Twitter

@rockridge07

histric-1

Rockridgeさんのツイート: "Firefoxのプロファイルフォルダ内に保存されている各種データファイルについて。 / “Profiles - Where Firefox stores your bookmarks, passwords and other u…” https://t.co/uKWJS6uRDn"
Profiles - Where Firefox stores your bookmarks, passwords and other user data | Firefox Help
Rockridgeさんのツイート: "Webブラウザの各種パーミッション機能の動作を試すことができる。 / “https://t.co/oZaDDgu7Vz” https://t.co/EdhybgqFmx"
Rockridgeさんのツイート: "Firefoxのセッション保存機能がSSDに対する大量の書き込みの原因になっているという記事。筆者の環境では1日12GBに達するそうだが、追記によればChromeだと1日24GBになったらしい。参照:… https://t.co/M6i353iuGJ"
Rockridgeさんのツイート: "Race Cache With Network(RCWN)は、ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワークリクエストを送り、応答が早かったデータを利用する新機能。Firefox Nightly 55… https://t.co/oHyzlzgz0J"
Rockridgeさんのツイート: "Firefoxは2017年末までにCustom Elementsをサポートする見通し。Shadow DOMについては未定。 / “1367205 - (QF-Polymer) Very poor Polymer performa…” https://t.co/Ar1HgAJlP3"
Rockridgeさんのツイート: "link要素のrel属性でprerenderの指定がされているURLを対象にWebページのプリレンダリングを行う機能をFirefox 53に実装したものの、先行するChromeが廃止の方針を示したので、有効化されないまま機能が削除… https://t.co/37U7zd8c30"
Rockridgeさんのツイート: "Firefoxは他のブラウザと異なりbutton要素内にリンクを置けない実装となっているが、仕様に適合しているのはFirefoxのほうであるらしい。 / “hyperlinks in buttons are probably n…” https://t.co/DrwqdTohEK"
Rockridgeさんのツイート: "Test PilotのSendで、ファイルのダウンロードに必要なパスワードを設定できるようになった。 / “Firefox Test Pilotさんのツイート: "We added password support to …” https://t.co/p2PPXtww89"
Rockridgeさんのツイート: "Bugzilla@MozillaでもGoogleアナリティクスが有効化される模様。ただしDo Not Trackをオンにしているユーザーは適用対象外となる。 / “208002.html” https://t.co/kZ736XHk9t"
Rockridgeさんのツイート: "MozillaのDoryプロジェクトはFirefoxの既存の設定をドキュメント化し、不要な設定を整理することを目指す。また、パフォーマンスが最適化される設定値の調査も行うようだ。 / “Project Dory - Mozill…” https://t.co/IDyL10TzOm"
Rockridgeさんのツイート: "Mozillaは2018年第3四半期ころまでに、ストレージ/データベース/同期にまたがる新システムを開発する計画だ。デスクトップ版・モバイル版双方で使う。参照:https://t.co/n0Uv6DYQFb / “0008-sy…” https://t.co/eK90st9S4Q"
Rockridgeさんのツイート: "Firefoxのヘッドレスモードにおいてできることの概略を述べた記事。 / “Using Headless Mode in Firefox – Mozilla Hacks – the Web developer blog” https://t.co/1VlvMDSVI4"
Rockridgeさんのツイート: "Firefoxに現存する3000以上の設定を整理したうえ、今後はガイドラインを設けて設定追加の要否をチェックしていく。参照:https://t.co/ojz5nNguyj / “All about Prefs” https://t.co/9X9fcpKE9a"
Rockridgeさんのツイート: "Firefox Nightlyで近々デフォルト有効化される見込みのtab warming機能について解説した記事。タブにカーソルをホバーさせた時点で予めレイヤーのレンダリング等を開始しておくことにより、タブの切り替えをスムーズにす… https://t.co/Cu5obZSjAw"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャでは、最新の暗号化技術によってパスワード等が保護される一方、Firefoxアカウントによるログインが必須になるかもしれない。 / “Firefox Lockbox alpha by Mo…” https://t.co/gZ81L14Enj"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャは、パスワードの生成機能を備えるほか、Firefoxアカウントでのサインインを前提に、クラウドへのバックアップも行えるようになりそうだ。 / “FAQs - Lockbox Extens…” https://t.co/QSxqSkLkgk"
Rockridgeさんのツイート: "2018年1月15日以降にGeckoに実装される、Webページ/サーバーからアクセス可能な新機能は、安全なコンテクスト(HTTPSなど)にあることが求められる。Distinguished Engineerが是認しない限り例外は認め… https://t.co/qlK5bwI4FM"
Rockridgeさんのツイート: "今後、Firefoxにはアドレスバーの入力・検索結果を新規タブに常時表示するための設定(browser.urlbar.openintab)が改めて追加される模様。また、将来的にはオプション画面からこの設定を制御できるようにする。 https://t.co/XEBRZtXZG2"
Rockridgeさんのツイート: "Geckoに新しくAnimationモジュールが設けられ、Brian Birtles氏がモジュールオーナーに就任した。 / “New module proposal: Animation” https://t.co/3Ed1ZHcip3"

Rockridgeさんのツイート: "将来的にFirefoxの軽量インストーラには、Mozillaの公式アドオンをダウンロードしてインストールする機能が実装されるようだ。 / “1414268 - Stub installer allows installing a…” https://t.co/W3mMrCoDhs"
Rockridgeさんのツイート: "Mozillaが2017年12月にアンケートを実施し、11.5万人以上のFirefoxユーザーから回答を得た。それによると、アンケートの際、76%のユーザーは5つ以下のタブしか開いていなかった。 / “The First Ina…” https://t.co/GIn1bO2cgU"
Rockridgeさんのツイート: "Mozillaは、いわゆるLooking Glass問題の再発防止策として、Shieldの実験において遵守すべき原則を公表した。参照:https://t.co/vv30EN0QqP / “Retrospective: Looki…” https://t.co/iMtmQLs8C2"
Rockridgeさんのツイート: "既にバックグラウンドで動作するスクリプト全般を抑制する仕組みが実装されているので、トラッキング用スクリプトだけを強く抑制する措置は執らないようにする模様。 / “Intent to remove: Throttling of t…” https://t.co/cIq9vTYGfS"
Rockridgeさんのツイート: "最小タブサイズを従来の半分(100 -> 50)にする新仕様に対し、Nightlyテスター等から異論が多く出された結果、サイズは70に引き上げられることに。 / “1404465 - Add back `browser.tabs…” https://t.co/b5fdmvDg9A"
Rockridgeさんのツイート: "Firefoxの設定関連のバックエンドにおける改修状況がまとめられている。 / “Platform/PrefsOverhaul - MozillaWiki” https://t.co/Jf9TYfiojH"
Platform/PrefsOverhaul - MozillaWiki
Rockridgeさんのツイート: "Firefox開発版のインストール時、独立したプロファイルを割り当てる機能の開発が進められている。割り当てられるプロファイルは新規のものではなく、リリース版のプロファイルのクローンになるようだ。 / “1419505 - All…” https://t.co/d5t4DrKXZO"
Rockridgeさんのツイート: "Firefoxアカウントにおいて、予備のメールアドレスを追加し、メインのメールアドレスに切り替える機能が、正式に公開された。 / “Changing your primary email in Firefox Accounts …” https://t.co/ogRBlMvo4p"
Rockridgeさんのツイート: "Firefox QuantumでFirefox Screenshotsがツールバーから消え、撮影数が一時減少したものの、概ね回復した。新UIで撮影完了までいく率は高まった。スクショはダウンロードする人が多く、最近はクリップボードへ… https://t.co/EiGzExOzZD"
So, How’s Screenshots Doing? – Firefox Test Pilot – Medium
Rockridgeさんのツイート: "Firefox/Thunderbird搭載のパスワードマネージャーについて、現在の水準からすると暗号化強度が低いのではとの指摘。コメント2では、Mozillaの開発者が、だからLockboxプロジェクトが進行中なのだと述べている。 https://t.co/VmKwBBrASb"
Wladimir Palant's notes: Master password in Firefox or Thunderbird? Do not bother!
Rockridgeさんのツイート: "MozillaはFirefoxのポップアップブロッカーの強化を検討中。必要なデータを収集するため、本拡張機能を通じて、ユーザーにページ内ポップアップが存在するURLを報告してほしいようだ。 / “In-Page Pop-up R…” https://t.co/lm1GM0VYOR"
In-Page Pop-up Reporter – Firefox 向けアドオン
Rockridgeさんのツイート: "tab warming機能は、タブ切り替え時の応答性向上に大きく貢献しているという。また、新規プロファイルでスマートブックマーク機能をなくす計画がある。 / “These Weeks in Firefox: Issue 35 –…” https://t.co/1HpOftnWbb"
Rockridgeさんのツイート: "Firefoxの複数タブ選択時におけるコンテキストメニューの案が掲載されている。また、従来、タブバーにタブが収まりきらない場合にメニューが表示される仕様だったが、このメニューを常時表示させる方針らしい。 / “Firefox b…” https://t.co/Nl7YRmGw4K"
Rockridgeさんのツイート: "MozillaがFirefoxユーザーを対象に調査したところ、Nehalem/Silvermont/Bulldozer以前のCPUを使用する割合が約20%だったという。 / “How much do we care about …” https://t.co/2wJylv0cnR"
Rockridgeさんのツイート: "Firefoxの複数タブ選択機能の実装状況について。モックアップもある。参照:https://t.co/khhPAfyMCX / “Email update for "Multi-Select tab in Firefox" p…” https://t.co/CViHzswxc5"
Rockridgeさんのツイート: "Firefoxのアドレスバー上のアイコンやページ操作メニューの項目を右クリックして表示されるコンテキストメニューから、アドレスバー上のアイコンの追加・削除が可能という小技を紹介。 / “How to add the share …” https://t.co/sCof4BPPn9"
Rockridgeさんのツイート: "Mozillaは、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能のことをFastBlockと呼ぶ。Nightlyチャンネルでは今後この機能をデフォルト有効化する見通し。参照:… https://t.co/vuUIZBM4FW"
Rockridgeさんのツイート: "Firefox 62でFirefox Monitor(情報流出判別ツール)を展開していく計画だったが、延期に。 / “1483430 - Backout fxmonitor system add-on from central …” https://t.co/yEFy0eLaB7"
Rockridgeさんのツイート: "Placesデータベースの新バックエンドとなることを目指したデータストレージシステムのMentatが開発中止に。プロダクトの投入に間に合うように開発することが難しく、採用先がなくなってしまった模様。 / “Pausing wor…” https://t.co/f3RuQkFnCr"
Rockridgeさんのツイート: "デスクトップ版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “notable-moments-in-firefox-desktop-ua-string-histor…” https://t.co/QxHkh1jfZl"
Rockridgeさんのツイート: "Android版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “Notable moments in Firefox for Android UA string h…” https://t.co/7ntQPN84Ul"
Rockridgeさんのツイート: "about:performanceの新UIに関するモックアップ。今後は、コントロールセンターに、閲覧中のサイトに関する消費電力への影響やメモリ使用量を表示するようにしていく模様。 / “Loading...” https://t.co/PjMbbb5dTz"

@d_toybox

サイト分離機能

なかのん&マジックさんのツイート: "意外なことにFissionにはAPZ必須になりそうなので"layers.async-pan-zoom.enabled"はabout:configから削除されるのかな? それとも無効な場合に現在のe10sモードとして動くようにするのかな? / 「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan https://t.co/h5Ww2THbIQ"
「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan
なかのん&マジックさんのツイート: "APZCは真剣に何をやってるのかまったく理解できないんだよな。もはや綺麗なのか汚いのかも分からんレベルで本当に難しい。"
なかのん&マジックさんのツイート: "もし担当辞めたら、まったく引き取れる気しないけど、こっちに来そうで怖い。"

なかのんクエストさんのツイート: "<meta property="og:url" content="http://" /> これで指定されてるURLになるのか、FirefoxのTwitterでの共有。"
なかのんクエストさんのツイート: "ワードラップとかネストとかもありますよ。Firefoxの実装が遅れてるの批判してた人の9割は何も考えてなかった印象。 https://t.co/WD8sWPOVdQ"
なかのんクエストさんのツイート: "日本で昔から見かける、パッチすら書かずに同じような事言ってる場合もアイデアそのものが全然イマイチなパターンの方が多い。逆に共感できたアイデアだと実際にパッチ書いたりしたことある。大きいのだと、マウスホイールにトランザクションの概念追加とか。"
なかのんクエストさんのツイート: "最近はあんまし一般のバグ報告者と直接やりとりすること無くなってるけど、それでも時々、バグである根拠を他のブラウザと違うこと、とする残念な人とのやり取りがつらい時ある。標準仕様に入らないグレーゾーンでなおかつ他のブラウザの動作がベターなら普通に同意するんだけどね。"
なかのんクエストさんのツイート: "グレーゾーンかつレガシーな部分って、今さら動作を変えると、Firefoxをちゃんとサポートしてるサイトが今度は壊れるんだよってパターンも多いんだよね。この場合、新しいAPI使ってくれるようにサイト側にお願いするしかない。"
なかのんクエストさんのツイート: "サブドキュメントがスクロール可能だった場合の処理がChromeとちょっと違うんだけど、Firefox 57の動作の方が何が起きてるか分からない感じは無いと思う。visibility:hiddenにはまだ非対応。ひとまず、よく使われるdisplay:noneだけ。 #もずでぶ"
いざてんさんのツイート: "Chromeは font-family: monospace; するとフォントサイズが一段小さくなるのをまず何とかしてくれませんかねぇ?"
なかのんクエストさんのツイート: "Firefoxも言語が日本語以外だとそうなる。各国の印刷での慣習とかもあるのかもしれないけど、この差異の直接の原因は、漢字のビットマップグリフが綺麗に見えるサイズをデフォルトにする必要があったので、同じフォントサイズを日本語には設定したんだと思う。"
なかのんクエストさんのツイート: "Netscape Navigatorや、初期のGeckoで、MacOSでのみ、日本語のデフォルトフォントサイズが小さかったのは、やはりビットマップグリフの問題で、他と同じ16pxでは綺麗じゃなかったと聞いてる。"
なかのん DAYS''さんはTwitterを使っています: ".@cobodo 最初はchrome 1プロセス、content 1プロセス、plugin 1プロセス。windowed pluginを除けば全てのユーザの入力はchromeプロセスでハンドリングされて、非同期通信で他のプロセスに送信される。"
なかのん&マジックさんのツイート: "ユーザがサイトごとに、Webアプリによる、ブラウザのショートカットキーの横取りを許可・不許可に出来るようになりました。 https://t.co/FbqIuRqSPG #もずでぶ"
なかのん&マジックさんのツイート: "Firefoxのmiddlemouse.pasteってデフォルトtrueで良くない? Ctrl + 中クリックで引用貼り付けという、メニューに無い貼り付けが利用できるんだし。"
なかのん&マジックさんのツイート: ""一番困ったのが Cmd+W に対する反応が遅くて(処理落ちしてる感じ)" https://t.co/Mdu91Cl5fl 体感速度でまだまだってのは分かってるし、感想とかはまあ良いんだけど、この点が私も絡んでるんで気になる。"
Firefox やめた - @kyanny's blog
なかのん&マジックさんのツイート: "Cmd+Wは数少ない、Webアプリに押した通知すら行かないreserved shortcutキーなんだけど、 https://t.co/S8WMeklEFQ つまり、そもそもリモートプロセス(タブの中身を表示してるプロセス)に送信していないので、全てがメインプロセスのメインスレッド内で完結している。"
browser-sets.inc - mozsearch
なかのん&マジックさんのツイート: "ということは、メインプロセスのメインスレッドがbusyということで、これと通信を行う必要のあるリモートプロセスもそもそも高速な動作は期待できない(入力に至っては、全てメインプロセスのメインスレッド経由なので、モロに影響ある)。"
なかのん&マジックさんのツイート: "なので、そもそも、こちら(開発者側)が想定していない何かがこの人の環境で起きてる感じある。それが環境によるものなのか、なんらかのパフォーマンスバグなのかは分からんけど。キー押してからタブが閉じられるまでのprofileをむっちゃ見てみたい。"
なかのん&マジックさんのツイート: "ちなみに、普通は、keydown/keypressイベントがreservedか検査され、すぐにリモートプロセスに非同期で送信される。で、リモートプロセス内でイベントが発火された後、非同期でその結果をメインプロセスに通知、preventDefaultされてなかったらショートカットキーとして実行という流れ。"
なかのん&マジックさんのツイート: "なので、ショートカットキーはどうしても超高速にユーザの入力に対して反応するというのが今のAPIでは無理。Webアプリ独自のショートカットキーを登録するAPIってのがあれば良いんだけど、そういうの要るよねってW3Cで提案したらGoogleとか一部の企業以外には要らんやろっていう理由で却下に。"
なかのん&マジックさんのツイート: "Webアプリを最小限のコードで、あらゆるキーボードレイアウト対応にするには、そういうAPIが無いと困ると思うんだけどな。特にユーザ数の少ない、発展途上国のキーボードレイアウト使っているユーザさんに。例えば、USキーボードレイアウト前提でコーディングすると、だいたい動かない。"
なかのん&マジックさんのツイート: "ただ、この人の書いてる内容で思うのは、そうそう連打する訳ではないショートカットキーって、処理落ち時に過剰に処理されちゃわないように、timestamp見て、ある程度捨てた方が良いんだろうかってのは思う。それはそれで慎重にやらないと処理落ちしてても承知で、先行入力していく人も居てるはず。"
なかのん&マジックさんのツイート: "Ubuntu Weekly Recipe:第540回 Firefoxをあらためて見つめ直す #gihyojp https://t.co/oBwH3WvtF2"
第540回 Firefoxをあらためて見つめ直す:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
なかのん&マジックさんのツイート: "Containerは本当にまだ使いにくい。開発止まってるのかな……これが無いと仕事にならないんだけど、今のところ。"
おこめ/つなもりさんのツイート: "それは…content-typeの設定問題 IEは見てなかったらしいけど… "
アイヴァーンさんのツイート: "なんかアーカイブのダウンロードで、Chromium が勝手に HTML コンテンツそのもののと解釈して展開されてしまい、適切にダウンロードできない、とかいう局所的な問題が生じたことがあった記憶もあるので、Web 側だけでなくブラウザ側の視野狭窄も問題につながりかねない懸念しかない…… https://t.co/3r35zPjQZZ"
池田 泰延 / ICSさんのツイート: "作る人が、目の前の手元のツールで動くことばかりにしか意識しない。 ちらほら増えてきた「Chromeでしか動きません」というやつ。 作ってるのは標準仕様のウェブコンテンツでなく、Chromeという一つのツールでのみ動くコンテンツ。"
なかのん&マジックさんのツイート: "あったなぁ、そんな話。Mozillaも途中から折れて、ASCIIの制御文字にぶち当たったらダウンロードに切り替えるとかそんな感じで対応したんだったか。"

@xharaken

Kentaro Haraさんのツイート: "Firefoxがframe間での協調的スケジューリングを実装したというプレスリリースを見て、どうやったらそんなものを(セキュアに)作れるのか考えてもわからなかったので、Firefoxの中の人に聞いてみたら教えてもらえた。こういうのがオープンソースの良いところ^^"
Kentaro Haraさんのツイート: "最近のWebページは、「本体のコンテンツ+大量の広告」という構造になっている場合が多くて、広告のせいで本体のコンテンツが遅くなるのをいかに防ぐか(=どうやってframe間で性能を独立させてスケジューリングするか)というのが大きな問題になっている。"
Kentaro Haraさんのツイート: "frameごとにユーザレベルスレッドを作って協調的スケジューリング、frameごとにOSスレッドを分離、frameごとにOSプロセスを分離など、いくつか解決法はあるけど、いろんな事情でどれもものすごく大変。"

Form Autofill・Web Payments

5x

Rockridgeさんのツイート: "Fx56:Firefox SyncがForm Autofillの住所情報とクレジットカード情報に対応。同期の有効・無効はUIから制御できる。参照:https://t.co/fHJARwCEBR / “1374500 - New …” https://t.co/lN12ormhK1"
Rockridgeさんのツイート: "Fx56:米国のen-US版ユーザーに限定してForm Autofill機能が有効化された。 / “1385196 - [Form Autofill] Enable the feature based on locale and…” https://t.co/LOlkqS8bWk"
Rockridgeさんのツイート: "Fx57:Form Autofillにおいて、ユーザーがどの程度まで入力すれば次回の入力補完に使うかは難しい問題だ。FirefoxではChromeの挙動を参照しながら調整している。 / “1401411 - Autofill i…” https://t.co/iBdk1Std8Z"
Rockridgeさんのツイート: "Fx57:Form Autofillがクレジットカード情報に対応。参照:https://t.co/L4K0QlRR1n / “1390757 - [Form Autofill] Enable credit card featur…” https://t.co/6fOTBybzLP"
Rockridgeさんのツイート: "Fx58:Form Autofillでクレジットカードの自動補完機能がデフォルト有効化。 / “1417336 - [Form Autofill] Enable credit card autofill by default o…” https://t.co/ZgOP2bCq7I"
Rockridgeさんのツイート: "Fx58:米国のen-US版ユーザー限定という状況に変わりはないものの、Form Autofillの基本機能が、段階的なロールアウトのフェーズからデフォルト有効化のフェーズへと移行した。 / “1430522 - [Form A…” https://t.co/jYxFrKlG9u"
Rockridgeさんのツイート: "Fx58:Form Autofillが有効な環境では、自動補完に用いられるクレジットカード番号もデフォルトで同期されるようになった。 / “1395123 - Unhide credit cards sync engine by…” https://t.co/5C0JZsvHQB"
Rockridgeさんのツイート: "Fx59:Form Autofillにおいて、ハイフン付きのクレジットカード番号をサポート。 / “1413120 - [Form Autofill] Accept credit card numbers with hyphens” https://t.co/RWIkOMAiqn"

Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/ZP2cwSD9kP"
Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/sCmgTxV73M"
Rockridgeさんのツイート: "Form Autofill v2ではローカライズに対応するほか、マルチセクションの概念が導入され、個別の欄に消去ボタンが付く。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/ol53lYB1Vd"
Rockridgeさんのツイート: "検討が開始されたForm Autofillプロジェクトでは、ユーザーがフォーム送信時に許可を与えると、Firefoxが名前や住所などのプロファイルを保持し、別のフォームで自動的に補完するという機能の開発を目指す。 / “Thes…” https://t.co/R9W9LRdHXF"
Rockridgeさんのツイート: "Nightlyチャンネルで有効化されているForm Autofill機能について、フォームに入力した住所を自動的に保存して再利用するようになった。保存時にドアハンガーの通知が出るので、そのときオプトアウトすることも可能。 https://t.co/llIPbB20Qj"
Rockridgeさんのツイート: "FirefoxのForm Autofill機能は、クレジットカードのセキュリティコードを保存しない仕様となっている。 / “Online shopping: Autofill your credit card info safe…” https://t.co/iL5OOCepqg"
Makoto Kato ︎︎さんのツイート: "FirefoxのWeb Payments APIのUX実装って、custom element使ってるんだ"
Rockridgeさんのツイート: "2018年5月末時点でも、Form Autofillはen-US版ユーザーの20%しか有効化されていない。 / “1449055 - Convert formautofill to a webextension” https://t.co/Dd2vXTAihL"
Makoto Kato ︎︎さんのツイート: "AndroidのAutofill Framework使ったアプリ、パッケージ名見てるの多くて、新しいブラウザ作っても動かないパターン多い"

dynamis (でゅなみす@もじら)さんのツイート: "新しいFirefoxではWebフォントブロックできるようになったよ。Androidで通信量削減したい人にお勧め https://t.co/nG6VNCv92J"
Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: HTMLMarqueeElement https://t.co/4SOMK9yEfI"
dynamis (でゅなみす)さんのツイート: "Firefoxがインストール後にUI言語の追加を公式にサポートし始めたので他の言語でのUI確認が楽になった。 https://t.co/XQMRWutqom… "
Changing the Language of Firefox Directly From the Browser | Mozilla L10N

Mozilla Developer Street (modest)
Firefox マルチプロセス化の今後 | Mozilla Developer Street (modest)
local MDC: Downloading Source Archives (/ja/developer_guide/source_code/downloading_source_archives)

Google

その他

Google Chromeに受信データ量を大幅に節約する「データセーバー」モード追加へ - GIGAZINE
Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ - Publickey
WebAssembly、CPU Throttling、Custom Elementsの最新情報を解説──2016年10月のブラウザ関連ニュース | HTML5Experts.jp
Google Chrome、ページロード途中のレイアウト変動を抑える技術を導入 | スラド IT
「Google Chrome 58」はIndexedDB 2.0やフルスクリーン版プログレッシブウェブアプリに対応 - GIGAZINE
Intent to unship: HTML scoped style sheets (<style scoped>) - Google グループ
Official Google Webmaster Central Blog: The new evergreen Googlebot
Web上でお絵描きしやすくなるキャンパスの改善や数字の可読性を向上させるセパレーターなどが含まれるGoogle Chrome 75安定版リリース - GIGAZINE
Chromium ソースコード珍百景

本の虫

本の虫: Chromeがいつのまにかruby要素をサポートしている件について
本の虫: Chromeがいつの間にか縦書きを実装し始めていた

フロントエンドBlog

Google Chrome 58安定板リリースと59の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
Headless Chromeでのスクリーンショット取得とGoogle Chrome 60の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
遂に来る! Chrome 75にてLazyLoadが正式に実装されるようです🎉 | フロントエンドBlog | ミツエーリンクス

Google Developers Japan

Google Developers Japan: ページリロードの高速化および軽量化について
Google Developers Japan: Chrome 59 ベータ版: Headless Chromium、macOS のネイティブ通知、Service Worker のナビゲーション プリロードなど
Google Developers Japan: Chrome 61 ベータ版:JavaScript モジュール、デスクトップ版 Payment Request API、Web Share API、WebUSB
Google Developers Japan: Chrome 68 ベータ版: ホーム画面に追加、Payment Handler、Page Lifecycle

Chromium Blog

Chromium Blog: A secure web is here to stay
Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet
Chromium Blog: Evolving Chrome's security indicators
Chromium Blog: How we designed Chrome 10 years ago
Chromium Blog: 10 years of Speed in Chrome
Chromium Blog: Chrome 70 beta: shape detection, web authentication, and more
Chromium Blog: Trustworthy Chrome Extensions, by default
Chromium Blog: Notifying users of unclear subscription pages
Chromium Blog: Chrome Dev Summit 2018 Day 2: Ready for the next movement
Chromium Blog: Data Saver is now Lite mode
Chromium Blog: Chrome 75 Beta: low latency canvas contexts, sharing files, and numeric separators
Chromium Blog: Improving privacy and security on the web
Chromium Blog: Google I/O 2019: What's new with Chrome and the Web
Chromium Blog: Taking Action on Deceptive Installation Tactics
Chromium Blog: Chrome 76 Beta: dark mode, payments, new PWA features and more
Chromium Blog: New Chrome Protections from Deception
Chromium Blog: Easier Payments with Chrome

INTERNET Watch

Google、2017年1月提供予定の「Chrome 56」で、一部のHTTPサイトに警告を表示へ -INTERNET Watch
Google、10月提供のChrome 62以降で、入力欄のあるすべてのHTTP接続ページで警告を表示 -INTERNET Watch

窓の杜

「Google Chrome 58」が正式版に ~“Indexed DB 2.0”対応と29件の脆弱性修正 - 窓の杜
「Google Chrome 59」は“ヘッドレス”モードをサポート ~ベータ版でテスト中 - 窓の杜
最新版「Google Chrome」では再読み込み処理が大幅に高速化 - 窓の杜
「Google Chrome 62」が正式版に ~HTTP接続のフォームはすべて“非セキュア”扱いへ - 窓の杜
「Google Chrome 63」ベータ版では開発者向け機能が充実 ~非同期イテレーターなど - 窓の杜
Google、不正なリダイレクトやナビゲーションを「Google Chrome」から排除 - 窓の杜
「Google Chrome」の“監視対象ユーザー”機能が廃止、12日以降新規作成は不能に - 窓の杜
「Google Chrome 68」ではすべてのHTTP接続サイトが“安全でない”サイト扱いに - 窓の杜
「Google Chrome 66」では“CSS Typed OM”や“AudioWorklet”などが利用可能に - 窓の杜
「Google Chrome 67」はデスクトップ“PWA”をサポート!……で、“PWA”って何? - やじうまの杜 - 窓の杜
「Google Chrome 70」のベータ版、顔・バーコード・テキストを識別するAPIを搭載 - 窓の杜
Chromeには3種類の“再読み込み”があるって知ってた? Webページ上の画像などを最新の状態にするテク - 窓の杜
「Google Chrome 69」からはHTTPSが“当たり前”に ~“保護された通信”ラベルを除去 - 窓の杜
TLS 1.0/1.1対応などが終了 ~Google、「Chrome 72」の新機能と廃止機能を明らかに - 窓の杜
Chromeで3つ前に見ていたページへ一気に戻りたい! [戻る]ボタンの便利な小技 - 窓の杜
「Google Chrome 77」は新たなパフォーマンス測定の仕組み“LCP”を搭載 ~ベータ版でテスト中 - 窓の杜

TechCrunch Japan

ChromeはHTTPの死を早めている…1月からHTTPSでないページに警告を表示 | TechCrunch Japan
Chromeがモバイルでの不快なページジャンプを追放―スクロール・アンカリングを追加 | TechCrunch Japan

スライド

Future of Blink-in-JS - Google スライド
Chrome の marquee 要素が 優秀だった話 // Speaker Deck
State of Chrome's Memory - Google スライド

OSDN

ページ読み込み時間が5%高速化、「Google Chrome 27」が登場 | OSDN Magazine
新たに「Blink」エンジンを搭載した「Google Chrome 28」リリース | OSDN Magazine
画像検索機能が安定版に登場、米Googleが「Chrome 30」安定版リリース | OSDN Magazine
プッシュ通知にカスタムボタンが加わった「Google Chrome 48」が公開 | OSDN Magazine
開発者向けの機能を強化した「Google Chrome 51」が公開 | OSDN Magazine
IndexedDB 2.0をサポートした「Chrome 58」がリリース | OSDN Magazine
「Google Chrome 72」リリース、TLS 1.0/1.1が非推奨に | OSDN Magazine
「Google Chrome 73」リリース、macOSのダークモードに対応 | OSDN Magazine
「Chrome 74」リリース、Windows向けにダークモードを導入 | OSDN Magazine

Twitter

Chrome loading 下周りの実装

Kinuko Yasudaさんのツイート: "少し前から Chrome loading 下周りの実装の速度・安定性・安全性を高めるためにいろいろ大きめの改良を(ものによっては数年かけて)やってたんですが、それが最近ぼちぼち ship されてるので少しまとめてみました。→… "
Kinuko Yasudaさんのツイート: "It’s a rainy Friday in Tokyo, thought that tweeting about some cool✨ re-architecturing projects Chrome has done around loading could be good😀☕️, because there're many and they're shipping! Network Service, Service Workers, OOR-CORS, infra change for Script Streaming, etc... →"
Kinuko Yasudaさんのツイート: "1) Network Service👾! Chrome has been experimenting moving its network stack into its own service process, and it's now shipped on most platforms! This required massive work🔧 but has also significantly improved stability + security🔒👌"
Kinuko Yasudaさんのツイート: "2) Service Workers⚙ Did you know that Chrome's SW implementation has been completely renewed since around M72? For this @FalkenMatto and the team have done massive redesign, which has reduced per-fetch process-hops, resulted in perf win🚅, correct behavior and healthier code!"
Kinuko Yasudaさんのツイート: "3) OOR-CORS🔐 @toyoshim and @hirano_y_aa have been working on a project to move the CORS implementation out-of-renderer process. This makes cross-origin loading more spec conformant & securer, and CORB behavior more complete. We're *about to* enable it (i.e. fixing bugs)! 🤞🙏"
Kinuko Yasudaさんのツイート: "4) Script Streaming🚀 @hirano_y_aa and @MakotoShimazu have done great loading "data pipe" plumbing🔧 work, which enabled V8's direct script streaming from network to the parser. You can read more about this change in V8 release v7.5 blog: https://t.co/p6rpEe0QhE"
V8 release v7.5 · V8
Kinuko Yasudaさんのツイート: "5) Off-main-thread script fetch✈! @bashik7, @nhiroki_ and the team have been moving top-level worker script loading off-main-thread, which is enabled on ToT (https://t.co/pyWgoGVf6I). This is a part of efforts to make Service Workers startup faster. Let's hope this sticks😀"
service worker: 2nd attempt to enable OTMT service worker script fetch (I774e39d3) · Gerrit Code Review
nhirokiさんのツイート: "最近 off-the-main-thread worker script fetch を頑張っていて、shared worker / service worker 向けには Chrome 76 で有効にしました。今は dedicated worker 向けに実装中です。細かい話は以前記事に書きました (記事書いたのちょうど一年前だ!) https://t.co/iX0emUcuBx… https://t.co/wzRbWQS2nv"
ネットワーク API のメインスレッド依存をなくす話

Rockridgeさんのツイート: "Chrome 51は、Credential Management APIをサポートしたほか、スクリーン外のクロスオリジンなフレームにつきレンダリング処理を行わないことで、消費電力を最大30%削減した。 / “Chromium B…” https://t.co/NW9wOIzPbe"
なかのん DAYS''さんのツイート: "<isindex>って残ってるけど何もできない使えない要素だと思い込んでたけど、動作してたのね……(Blinkはすでにドロップ済みで、Geckoも https://t.co/FoNouOsBwT で作業中) #もずでぶ"
Yosuke FURUKAWAさんのツイート: "パスワードフォームを http で作ろうとすると警告ラベルが出るように / “Google Online Security Blog: Moving towards a more secure web” https://t.co/x1UxdV691D"
Rockridgeさんのツイート: "ChromeとSafariでは、「オートフィル可能なフォームが表示された場合、住所やクレジットカード情報をブラウザがサジェストしてくれ」るうえ、「オートフィルの情報はデバイス間で同期可能」である。 / “モバイルウェブのコンバー…” https://t.co/PPi2H2MxuO"
Kentaro Haraさんのツイート: "Blinkカンファレンスで、「Chromeのメモリ使用量を分解してみた」話をしました。 スライド:https://t.co/KdWXsI05PE"
Rockridgeさんのツイート: "Chrome 56以降で有効化されているスクロールアンカー機能は、Webページ閲覧中に画像が読み込まれるなどしてページの長さが変わっても、スクロール位置が動かず、閲覧を邪魔されないというもの。 / “Chromium Blog:…” https://t.co/wNcJFNA9BQ"
Kentaro Haraさんのツイート: "Blinkに協調的スケジューリングを入れてみようという話を書いてみた。単刀直入に言ってしまえば、Web広告が重たいJavaScriptを実行中に(もっと重要な)メインコンテンツの処理を割り込ませるにはどうすればよいか、という話。 https://t.co/xrBVpNtbIn"
Rockridgeさんのツイート: "ブラウザにいったん機能を追加すると廃止するのがたいへんなので、追加するときに必要性をよく考えるべき、とChrome開発者が実感を込めて語るスライド。 / “Deprecating features (is hard) - Goo…” https://t.co/8guV1SxJrD"
なかのん&マジックさんのツイート: "Mozillaのmarqueeの実装って、たぶん、Netscape 6 (Mozilla M18) よりも前に、中国語圏のマーケット事情で渋々実装したという感じで、それ以降、いじられてないだろうなぁ。 / Chrome の marquee 要素が 優秀だった話 // Speaker Dec https://t.co/4KqG0SAkak"
なかのん&マジックさんのツイート: "<blink>要素の削除の時に、CSS Animationsで<marquee>をもっと軽くできないかなとか思って、ちょっと調べてみたけど、一部属性の実装は(JSでごにょごにょしないと)無理って思って無かったことにした。"
Shigeki Ohtsuさんのツイート: "Chrome69の新UI「Material Refresh」で鍵アイコン等が灰色に変わりました。ChromeでHTTPS通信を緑色で判別する時代は9月に終わりますのでご注意ください。「保護された通信(Secure)」の文字も削除される予定です。https://t.co/jbKxqS4AjG… https://t.co/gIOh4Ra18E"
Rockridgeさんのツイート: "Chromeは2006年に開発が開始された。ユーザーがコンテンツに集中できるようにUIを簡素化し、スピード・応答性・安定性を高め、セキュリティも強化。当初はWindows版のみで後にクロスプラットフォーム化に苦労したという。 https://t.co/PsMVrqClWT"
Rockridgeさんのツイート: "ChromeのOmniboxのデザインを変更するにあたって考慮した事情など。 / “f6af7b8161a2” https://t.co/OmE0RIfFXE"
Makoto Kato ︎︎さんのツイート: "これ、実装したharakenさんがいかにスムーズにしたかっていうプレゼンかブログ見たことあるんだけど、多分発表者は知らないんだろうな。。。 https://t.co/tuZLygLqFc"
Shigeki Ohtsuさんのツイート: "既に Canary で HTTPが not secure になっている。この後に続く最終段階は、赤字に変わるやつ(actively dangerous)です。 https://t.co/XYKSuz1cKB… "
なかのん&マジックさんのツイート: ""Google previously recommended the superior practice for website creators of checking which features are present rather than browser name/version, but has since weakened this stance with their browser's growing market share. " https://t.co/VabMOtGR4R HAHAHA!"
なかのん&マジックさんのツイート: ""Scroll Anchoring"とか、これとか、UX周りは良い仕事してるよな。 / Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE https://t.co/8xvmMdPz9L"
Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE
なつきさんのツイート: "Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ https://t.co/THQKTglTjc Chromeのキャッシュをメモリに保存すれば高速になるのではと思ってはいたけど、ようやくサポートされるのか。"
Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ
なかのん&マジックさんのツイート: "Firefoxがめっちゃ昔から搭載してるヤツだ。むしろ無しで今までやってたんだな。Firefox for Androidでは多めに設定して使ってるけど、デスクトップのブラウジングではあまり恩恵を感じなくなった。たぶん、タブをフル活用できるから、戻る、進むを使わなくなってるんだと思う。"
Chromeの戻る/進むを高速化する技術 - PC Watch
Addy Osmaniさんのツイート: "Native <img> lazy-loading is coming to the web! https://t.co/LgF7F1iMgR <img loading=lazy> defers offscreen images until the user scrolls near them. Shipping in Chrome ~75 https://t.co/4gR7lvx4zx… https://t.co/MVhFCLPqR6"
ゆきさんのツイート: "Blocking high-risk non-secure downloads https://t.co/MymT5sBRr7 Chromeの中のひとが、非セキュアなダウンロードについて対策を考えたいとのこと"
Blocking high-risk non-secure downloads from Emily Stark on 2019-04-09 (public-webappsec@w3.org from April 2019)
KIMATA RobertHisasiさんのツイート: "https://t.co/x0szHUQ54V https://t.co/qFSHLHDesn Mobile版のGoogle Chromeで、body要素配下のtext nodeの合計文字数が244と245でfont sizeが変わり、`position: absolute;`が指定されたcontentの文字のサイズは更に別計算? 何を言っているのか自分でもよく分からない。なんなんだ、これは"
KIMATA RobertHisasiさんのツイート: "はい。あとデスクトップ版でもデベロッパーツール開いて、Android版にしたら発生しました… "
なかのん&マジックさんのツイート: "ASCII文字だけのテキストノードなので、245文字未満だとUTF-16じゃなく、ASCIIでストアしてるとか、そういう感じでの条件分岐だと思います。Geckoも内部でやってます。キリが悪いのは、その差分の部分に何かの内部処理用のフラグを持ってるんじゃないかと。… https://t.co/X08Uu9VGC0"
Makoto Kato ︎︎さんのツイート: "preventScroll、Chrome/Androidで動いてないよねというか誰もテストしてない系ぽいな。Geckoも人のこと言えないが。software keyboardが表示されたというlistenerがAndroidに存在しないからhackなコード入れざるをえないし"
なかのん&マジックさんのツイート: "web-compatとしてChromeの動作に寄せていくのは基本的には誰にとっても良いことになると思ってやってるんだけど、最大の問題はChrome側のバグだった時なんだよなぁ。そしてこの場合にChrome開発者が動いてくれないというのが問題で……"
mattnさんのツイート: "僕「Accept-Language は ja_JP じゃなく ja になるよ」 某「どのブラウザ使ってるの、Accept-Language は - か _ で区切られた ja_JP の様な物を返すんだよ。もしそんなブラウザがあるならそのブラウザだけ特例で回避すべきだ」 僕「Google Chrome だよ」 と返信したらレスが返って来なくなりました。"
なかのん&マジックさんのツイート: "いやその通りにシェアに関係無く、間違ってる実装に対するハックをブラックリスト形式で(かつ、可能なら修正されても壊れないように)やっておかないと、その実装側の修正時に壊れてしまう。Firefox/Geckoの長らく存在するバグを互換性のために修正すると、世界のどこかから壊れた報告が毎度毎度……"
Chrome Developersさんのツイート: "🖼 Image Lazy Loading on the web is happening! and it's as easy as adding `loading="lazy"`. It is available behind flags on Chrome Canary! Go try it out 🙌… https://t.co/fViARDbuSB"
ゆきさんのツイート: "[Chrome] Q1 Summary from Chrome Security https://t.co/TeW7aghynu Chromeのセキュリティについてのまとめ。よい。"
Q1 Summary from Chrome Security - Google グループ

Out-of-Process iframes (OOPIFs) - The Chromium Projects
Experiment Time: Scroll Anchoring  |  Web  |  Google Developers
Simple way to download Google Chrome/Chromium source code - Stack Overflow

Apple

iOS10.changesets · uupaa/WebKitChangeLog Wiki
uupaa/LatestLog
開発者のための WebKit (“WebKit for Developers” 日本語訳)
Rockridgeさんのツイート: "WebKitの新しいポリシーによれば、実験的な機能にベンダープレフィックスを付けず、ランタイムのフラグで管理する。既存のプレフィックス付き機能についてもケースバイケースで見直していく。 / “Updating Our Prefi…” https://t.co/InqdWd6vp8"
WebAssembly(wast)を書こう! - Qiita
Rockridgeさんのツイート: "次期Safariではフォームのバリデーション機能が強化される模様。たとえば空欄のフィールドには入力を促すポップアップメッセージが出る。 / “HTML Interactive Form Validation | WebKit” https://t.co/PDbwXx2EIi"
Rockridgeさんのツイート: "Safari 10.1は高速かつ標準適合度の強化された新URLパーザを搭載。また、CSSパーザもBlinkから移植されたものが有効化され、パフォーマンス、仕様適合度および他のブラウザとの互換性が改善された。参照:… https://t.co/7QZ6izyhoY"
Rockridgeさんのツイート: "次期Safariでは投機的なリソースの読み込みをサポートする。また、バックグラウンドタブの動作を抑制して消費電力を低下させる。参照:https://t.co/hOBf5Ht3pJ / “Release Notes for Saf…” https://t.co/owAS63uTJ6"
Safari 11に新機能追加、プライバシー改善
azuさんのツイート: "iPhone Xなど四角でない画面にフィットさせるための`viewport-fit=cover`やセーフエリアの概念を扱うための`constant()`(`env()`)についての解説 "Designing Websit…" https://t.co/SwRxRllQv4"
なかのんクエストさんのツイート: "えー、プレゼンテーションの指定にmeta要素使わせるの……なんでroot要素にのみ指定可能なプロパティを提案しないんだ。"
Rockridgeさんのツイート: "MozillaがNightlyを強化しているのとは対照的に、WebKitはNightlyのアップデートを止めてビルドのアーカイブを公開する形式に移行した。日常的に使うならSafari Technology Previewをどうぞ、… https://t.co/ESnWxbVcDp"
Eiji Kitamuraさんのツイート: "AppleがWeb App Manifestの実装を開始! https://t.co/ySCc3LlctY"
Safari による User-Agent 固定化と Web における Feature Detection | blog.jxck.io
SafariのUA文字列が固定されて固定されなくなったおはなし - fragmentary
Makoto Kato ︎︎さんのツイート: "https://t.co/XWuOl8QPpa を見てて、Firefox AndroidでUAにAndroidのバージョンを入れる入れないでWeb Compatibilityが向上する話を思い出した。バージョン入ってないとAndroidとして認識してくれないサイトがあるとか"
Web Inspector Styles Sidebar Improvements | WebKit
Apple、「Safari 12」を「macOS Sierra」「macOS High Sierra」向けに一般公開 - 窓の杜
Link Click Analytics and Privacy | WebKit
Intelligent Tracking Prevention 2.2 | WebKit
Dark Mode Support in WebKit | WebKit

MS

Google

高梨陣平さんのツイート: "名前出しての告発。JoshuaJB曰く、Edgeチームで働いていたけどEdgeを止めた理由の一つはGoogleが自社のサイトに他者ブラウザを遅くする変更を加え、我々はそれに追従できなかったから。例としてYoutubeは隠された空のdivを追加してEdgeのハードウェアアクセラレーションを効かなくした。… https://t.co/YNkOvrOcRp"
comexさんのツイート: "“I very recently worked on the Edge team, and one of the reasons we decided to end EdgeHTML was because Google kept making changes to its sites…” https://t.co/BQKYNUlXAm"
"For example, they may start integrating technologies for which they have exclus... | Hacker News
dynamis (でゅなみす)さんのツイート: "YouTubeってブラウザがハードルアクセラレーションのレイヤー境界を判断するコードも標準機能が出来て久しいのにBlink用ハックだけ入れ続けてGecko搭載機器で困ってたし(簡単なCSS追加を指示して解決してもらった)、悪意があるかどうかはともかく他ブラウザへの無配慮は常態化してたと思ってる。"
なかのん&マジックさんのツイート: "この手の話、多分ほじくればなんぼでもbugzilla上にあるんじゃないかな。私のweb-compatは大物がほとんどで件数少ないけどそれでもあるんだから。"
dynamis (でゅなみす)さんのツイート: "MozillaがWebPサポートしないと言ってたのを方針転換したのもYouTubeがWebPサポートしないと表示されない画像を入れ続けてたからだし、Google検索はFirefoxに劣化版出してくるし、あれだけエンジニアと利用者のいるGoogleの主要サービスがChrome以外に配慮しないのはWebの方向性に影響大きいよね"
なかのん&マジックさんのツイート: "自分達が欲しいAPIは迅速に実装、仕様案出して来て、他のブラウザベンダの状況関係なく自分たちで使い出す、逆に興味ないAPIや自分達が困ってないバグ修正は放置してるよね。ビジネスとしては、実験段階のものを実際に使うの以外は普通なんだけど立場を考えて欲しい。"
はじめてのにき(2018-12-17)
KIMATA RobertHisasiさんのツイート: "Chromiumが独占的な地位を得てしまっているので、例えばJavaScriptを独自拡張して「この拡張に対応していないとGoogle DocやYoutubeが使えません(or 激重になります)」みたいになると結果としてFirefoxのSpiderMonkeyエンジンが市場から排除される恐れがあるんだよなあ"
なかのん&マジックさんのツイート: "既にそういうサービスちょいちょい作ってなかったっけ。"
dynamis (でゅなみす)さんのツイート: "Chrome以外のブラウザ無視についてはGoogleなどより中国と日本のサイトが圧倒的に酷くてMozillaが苦渋の思いでwebkit接頭辞サポートをしたのはそれが原因。 修正コードや自動変換ツールまで持って行ったMozillaの修正依頼を、エンジニアに教育するコストが出せないと断った日本の大手IT企業が典型例"
dynamis (でゅなみす)さんのツイート: "明らかにビジネス判断遅かったし他にも都合があるが、Mozillaがモバイルでシェアを獲得できる機会を繰り返し失った主要因はサイト側が修正する気が無かった(サイトに影響力のある企業もそれを推進する気が無かった)ことがあったし、ブラウザ動向を決めるのは結局サイト制作側なんですよね。"
dynamis (でゅなみす)さんのツイート: "ブラウザシェアを大きく左右するのはサイト制作側よりもOSであったり検索サービスなどでの圧倒的な広告であったりするけど、Webの進化の方向を決める最後の鍵を握るのはサイト制作側なんだと理論でなく体感した15年だったなと思う年末です。"
dynamis (でゅなみす)さんのツイート: "即座に修正対応してくれたり、内製から外注に変えて仕様調整が難しいと告白しつつ努力してくれたり、マネージャが断っても現場から変えて数年後に対応してくれたり、無駄ではなかったです。 ただ業界を変えるには人手と時間が足りないし、大手IT企業ほどお断りされたのは事実であり限界はあったなと… https://t.co/izJCLzlCSD"
dynamis (でゅなみす)さんのツイート: "念のため書き足すと簡単なCSS追加をしたのはYouTube再生機能を持った機器側。メーカーからのYouTubeへの修正要望は受け付けられていなかったためブラウザ側にサイト固有ハックを入れるのがYouTubeのプレイヤーとしての性能要件を定めた認証を通す唯一の手段だったケース。"
SKSの申し子さんのツイート: "Edgeの開発をしていたという人がHNで「Googleはyoutubeとかでわざと他のブラウザを遅くしている」みたいなコメントして注目を浴びてるけど,「MSはサービスのクライアントをLinuxで遅くするのやめろ」みたいな突っ込みが入っていて,憎しみが連鎖している"
KIMATA RobertHisasiさんのツイート: "https://t.co/4jMT2MZdq2 https://t.co/t4lhNM483w この話「Web標準に沿ったコードを書いても、それ自体は会社の利益を生まないし、作業者の給料や評価が上がりもしない」のが辛い。だからアクセシビリティなどが優れるサイトは褒め称えるなどして社会的な評価上げないといけないのだろうなあ"
なかのん&マジックさんのツイート: "実際問題、今みたいにブラウザ屋さんになる前からWeb標準化の活動とかし始めたあたりから、この会社は信用できないなとかってのをWebサイトの出来から考えるようになったな。"
なかのん&マジックさんのツイート: "あ、この会社ヤバそうだからお近づきになるのやめとこう、みたいなの。"
なかのん&マジックさんのツイート: "なんでこの人達は全てのブラウザが同じHTML/CSS/Javascriptを受け取ると思い込んだ上でしたり顔トークしてるだろう…… https://t.co/nqAvMlrYsx"
なかのん&マジックさんのツイート: "転送容量の膨大さから、あえてinvalidなHTMLにして容量削減したりしてたぐらいの企業ですよ?"
Makoto Kato ︎︎さんのツイート: "YouTubeの話はpolymerがたまたま変なHTML生成しただけじゃないの?だし、彼らはなんも考えてないだけとしか思わないけどね。Blinkに対して最適化入れてるだけで"
Makoto Kato ︎︎さんのツイート: "自分たちはちゃんとGoogleへレポートしてるけど、彼らはちゃんとバグ登録してくれてる。問題は同じ会社なのにChromeチームと話があってないことだけ。大きい会社なんだ感あるだけだよ。それはMSもそうだけど、大きい会社の宿命だよ。いろいろ難しいよね"
Googleが「Microsoft Edge対策にYouTubeのコードを変更した」という指摘を否定 - GIGAZINE

- Microsoft Edge Development
Microsoft Edge、レスポンシブイメージ対応の「srcset」に対応。夏以降は主要ブラウザすべてでsrcsetサポート - Publickey
新しくなったMicrosoft Edgeを試してみよう!ーWindows 10 Creators Updateで入ったEdgeの新機能一挙解説 | HTML5Experts.jp
Chrome/Firefoxよりも断然エコ ~「Creators Update」における「Edge」の消費電力削減 - 窓の杜
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeは、マウスホイールによるスクロールだけでなく、タッチ操作によるスクロールやサイドバーのスクロールについても処理の非同期化を達成している。 / “Scrollin…” https://t.co/2epkgtBAih"
Rockridgeさんのツイート: "Microsoft EdgeはIE時代のDOMツリーを、3フェーズに分けて次第に新しいアーキテクチャに移行させた。Creators Update後のEdge 15では処理高速化の成果が出ているという。今後はDOM周辺のサブシステム… https://t.co/nIPjowqY4i"
Modernizing the DOM tree in Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
最新バージョン「Edge 15」が大進化、応答速度3倍、高い電力効率を実現 - INTERNET Watch
Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Windows 10 Fall Creators Update後のMicrosoft Edgeには、お気に入りのURL編集とタスクバーピン留め、音声読み上げ、パーミッション設定、CSS GridとPayment Request A… https://t.co/B3RKz3QkI9"
Windows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能 | HTML5Experts.jp
なかのん&マジックさんのツイート: "Edgeさん、そろそろ、KeyboardEvent.keyの値を仕様にあわせて変更してくれませんかね。あと、KeyboardEvent.codeの実装も。"
パルポーさんのツイート: "Windows 10 Insider Preview Build 17063 の Microsoft Edge でフルスクリーン時に画面上部にマウスを持ってくることでタブやアドレスバー, お気に入りなどにもアクセスできるようになってた #WindowsInsiders #win10jp… https://t.co/PZMUVhPM3n"
Internet Explorer および Microsoft Edge での Flash の今後の対応予定について – Japan IE Support Team Blog
なかのん&マジックさんのツイート: ""Recent Microsoft Edge tabs now show in Alt + Tab" https://t.co/ItBwlQD3Kd これうざいだけでは……"
なかのん&マジックさんのツイート: "タブをそんなに開くユーザは少数派という、テレメトリの情報からの判断なのかなぁ。"
KIMATA RobertHisasiさんのツイート: "RS5で使い始めていますが、(Edgeをメインで使っていない自分としては)あまり問題になってないのですが、タブを数十開く人の場合うざそうだなあ、などと。あと、Setsで「+」おして必ずEdgeが開くのもうざいです。普通同じアプリの新しいタブが開くことを期待するのではと思うの次第… https://t.co/GdQgS4XebV"
Microsoft Edge: Making the web better through more open source collaboration - Windows Experience BlogWindows Experience Blog
Rockridgeさんのツイート: "Mozilla Blogに掲載された「Goodbye, EdgeHTML」の和訳。他にも和訳はいくつか存在しているが、これが一番読みやすい。 / “「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozill…” https://t.co/OZ5vLalGzS"
「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozilla – P2Pとかその辺のお話R
won't fix: RIP EdgeHTML. Software lifecycle is difficult
Edge 終了に寄せて - mizchi's blog
米Microsoft、Chromiumベースの「Microsoft Edge」プレビュー版を公開 | OSDN Magazine
dynamis (でゅなみす)さんのツイート: "新しいEdgeのUA文字列は Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24 注意すべきはEdgeなのにEdgeではなくEdgでありEdgiOSやEdgAと微妙なそろえ方をしてきてること https://t.co/hUsJ8AO7rh"
Fadisさんのツイート: "UserAgent、読んでも何もわからん情報っぷりに磨きがかかってるなぁ。イマドキのWebでUserAgentを見て何かの機能が利用可能かどうか判断しているJavaScriptが居たら流石に直した方が良い案件ではあるわけだけど"
7594591200220899443さんのツイート: "今時UAの文字列にどんだけ意味あんのかね、サーバサイドは今更QUICで接続してきておきながらlike Geckoとか言われても死ねよという感想しかないわけだしJSは所詮ローカルプロセス内でもっとgranularな情報取れるし意味なくねえか… https://t.co/hLn9k1zm7U"
なかのん&マジックさんのツイート: "え、UA文字列、普通に使われてるよ? なんでもかんでもfeature detection可能じゃないし、下手に関連性のないブラウザ間の非互換部分でブラウザ判定するほうが害悪。"
なかのん&マジックさんのツイート: "ここ半年ぐらい、そういうWebアプリとの互換問題やりまくっててウンザリしてる。"
Makoto Kato ︎︎さんのツイート: "ブラウザ作ってる会社のWebサービスがUA文字列見てるくらいだから、現状ではFeature Detectionでまかなえると思ってない"
なかのん&マジックさんのツイート: "Feature Detectionで何でもWebアプリを適当に書けると思ってる人は間違い無く素人さんです。"
なかのん&マジックさんのツイート: "特定のUAであるかどうかを判定するのにUA名のチェック以外により良いものなんてないんだと思うんだけどな。もし、全ブラウザがバグ無く未実装があるだけ、かつ、標準仕様が存在しない世界なんだったらブラウザ自体を判定しようっていう行為が愚行なことには同意できるけど。"
Microsoft、音声認識とAIを組み合わせたインテリジェントエージェントのビジョンをBuildで公開 ~ChromiumなMicrosoft EdgeにはIE互換のタブを実現するIEモードを追加 - PC Watch
[速報]次期Micrsoft Edgeに「Internet Explorer mode」搭載。企業向けにIE11のレンダリングも提供。Microsoft Build 2019 - Publickey
MicrosoftがEdgeのmacOS版やIEモードの搭載を発表 - GIGAZINE
ユーザー エージェント文字列の変更 (Windows)
ドキュメント『モダンブラウザーの今と、Web標準に対応したWebコンテンツの作り方』公開! | Microsoft Edge Japan
2016 年の展望: Microsoft Edge の開発者向け情報 | Microsoft Edge Japan

headless

Qiita

WindowsでPuppeteerを使ってヘッドレスChromeを操作するための環境構築手順 - Qiita
動的に生成されたページをpuppeteerでスクレイピングする - Qiita
--headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
PuppeteerでヘッドレスChromeを操ってみる - Qiita
puppeteerでスクレイピング - Qiita

Docker で Puppeteer 動かして Slack にスクショを通知してみた · tail -f /var/log/ryysud.log
Headless Chrome をさわってみた | CYOKODOG
ヘッドレス Chrome ことはじめ  |  Web  |  Google Developers
Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発 - Publickey
Headless Chromeでデザイン変更履歴を追える魚拓を作ってみた - pixiv inside
PuppeteerによるヘッドレスChromeの使い方 evaluate | iwb.jp
[puppeteer] ヘッドレスブラウザの操作でスクレイピング、クローリング │ Web備忘録
Puppeteerでできることまとめ | GMOアドパートナーズグループ TECH BLOG byGMO
Puppeteer  |  Tools for Web Developers  |  Google Developers
Puppeteer でのヘッドレス Chrome の使用  |  Node.js 用 App Engine スタンダード環境に関するドキュメント  |  Google Cloud
E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
[Node.js] puppeteerでスクレイピングしてみる - 筋肉エンジニアの備忘録
Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ

自動入力

【やじうまPC Watch】ChromeやSafariの自動入力でクレジットカードなどの個人情報が盗まれる危険性 - PC Watch
暮らしに役立つITコラム ChromeやSafariの自動入力機能が、なぜ「悪いデザイン」なのか
Rockridgeさんのツイート: "Fx55:NightlyチャンネルでForm Autofill機能がデフォルト有効化。名前や住所などの入力フォームを自動的に補完する。ただし、当初はinput要素のautocomplete属性が指定されたフィールドに限られる。 https://t.co/plmEjkWchV"
Rockridgeさんのツイート: "Fx55:Form Autofill機能の対象にクレジットカード情報が追加された。 / “1359978 - [Form Autofill] Implement the credit-card storage” https://t.co/PahNcUMXig"
Rockridgeさんのツイート: "Fx55:Form Autofill機能に関し自動補完の対象となる入力フィールドを選別する機能が実装・有効化された。処理のパフォーマンスにも影響。参照:https://t.co/jFgqkhWj9g … https://t.co/1uZGKszQ2e"
Rockridgeさんのツイート: "入力済みの名前や住所などのプロファイルをFirefoxが保持し、フォームを自動的に補完するForm Autofill機能は、Firefox 57(2017年11月14日リリース予定)でシステムアドオンとして提供される見通し。 https://t.co/gFN21vBl9J"
Rockridgeさんのツイート: "Form Autofill機能で利用されるプロファイルは、将来的にFirefox Syncの同期対象となる。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/tqas9XAnfg"
Rockridgeさんのツイート: "Form Autofill機能は今後、autocomplete属性以外のフィールドも対象に含めていく。補完される情報の追加・編集機能も実装される見込みだ。 / “Preview Form Autofill in Firefox …” https://t.co/ICdJwGTefX"

OGP

OGPを設定しよう!SNSでシェアされやすい設定方法とは?
meta 要素 OGPの基本的な設定方法 - by Takumi Hirashima
OGP画像を設定してみよう! - Qiita
OGP設定の正しい方法とは?確認の仕方と注意するポイント | Marketing Native(マーケティング ネイティブ)

Internet Message Format

Kazuho Okuさんのツイート: "別の言い方をすると、ウェブのフォームバリデーションむけに作られた業界標準の正規表現なので、その目的で使うなら最強に近い https://t.co/QrgpKm8K5d"
Kazuho Okuさんのツイート: "living standardを定めている団体がwillful violationだと言っているものを、さもformalであるかのように(つまり「きちんと定義されている」と)言及したら反発くうのはしょうがないよね"
Dai MIKURUBEさんのツイート: "念のため言っておくとHTML(5)仕様中の<input type="email">のための正規表現は、本文中に"willful violation of RFC 5322"だって明確に書かれてるので、それはそれでいちおう要注意。まあそれなりにauthorizeされているしだいたい… https://t.co/wsVFCfkKnX"
RFC 5322 - Internet Message Format
RFC5322(Internet Message Format)
メールアドレス - Wikipedia
Email address - Wikipedia
RFC 5322のメッセージ書式
RFC 5322
SMTP の新しい RFC が公開
Outlook から RFC で認められていない形式のメール アドレスにメールを送信すると、配信不能メールが返され送信できない

HTML 3.2

HTML 3.2 Reference Specification
HTML 3.2 仕様書

HTML4

HTML 4.0 Specification
Index of the HTML 4.0 Elements
Index of the HTML 4.0 Attributes
Index
HTML 4 Changes
HTML 4.0 解説
HTML 4.01 Specification (ja)
HTML 4.01の正しい記述方法、最小構成編 | マイナビニュース
なかのん&マジックさんのツイート: "cite要素の定義、変わりすぎではって思ったけど、HTML4.01の仕様を確認すると、思いのほか何も定義してなかった。"

HTML5

W3C

HTML5
HTML 5.1
HTML 5.2
HTML 5.2 is done, HTML 5.3 is coming | W3C Blog

水底の血

2016年5月のdl要素にまつわるエトセトラ - 水底の血
HTML 5.1仕様とその日本語訳についてちょっと一言 - 水底の血
2016年下半期のw3c/wcag GitHubメモ - 水底の血
ITS 2.0の日本語訳を公開した - 水底の血
「縦書き」に関する総務省の行政事業についての報告書の感想のようなもの - 水底の血
HTMLのコメント中に余分なハイフンが出現してもよくなった - 水底の血
HTMLチェッカーはchecker.html5.orgを推してみたい - 水底の血
Re: コンテンツのデザインとウェブデザイナーにできること - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血

contenteditable 属性

Twitter

histric-1

なかのんクエストさんのツイート: "なんか、ちょっと詳しく書きたくなる内容なんだけど、ブラウザの実装調べて無いでしょ、この人…… / LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog https://t.co/boJRmratd2"
なかのんクエストさんのツイート: "というか、多分、関連仕様書も読んでないのでは。"
なかのんクエストさんのツイート: "まあ、かと言って、私も、私基準では語れるほど詳しくはない。"
なかのんクエストさんのツイート: "Geckoは基本的にはChromiumの動作に合わせて修正していくんで、やりたい企業は基本的にはブラウザベンダと緊密に連絡とった方が良い。Microsoftさんはかなり頑張ってる。"
なかのんクエストさんのツイート: "何て言うか、Webで真剣にサービスやるなら、フルタイムで各ブラウザのバグを修正する部隊を社内で編成した方が良いですよ。このレベルのことやりたいなら。"
なかのんクエストさんのツイート: "とりあえず、一言だけ言っとくと、仕様が未熟な時期に実装するとブラウザ側や仕様側の変更で凄いコストかかるし、そういう実装が先にメジャーになってしまうと、ブラウザも仕様も合理的な方向に変更できなくなって新規の開発に悪影響出まくりなんで、その辺の覚悟と責任は知ってて欲しい。"
なかのんクエストさんのツイート: "DOMイベント周りは私も頑張って、地獄感がかなり減ったけど、contenteditableはかなりの地獄よ? (現Gecko Editorモジュールオーナー談"
もんどさんのツイート: "HTMLの本でcontenteditableを取り上げる可能性は限りなく低いと思っている"
さねさねさんのツイート: "userland側から見てもcontenteditableからむコードできれば書きたくない"
なかのんクエストさんのツイート: "多分無い。相当な資金力無いなら少なくともあと5年は手を出してはいけない。"
もんどさんのツイート: "ここはじーごーくーじーごーくー(ry"
Rockridgeさんのツイート: "contenteditableは仕様が未熟なのでアプリに実装するならブラウザベンダと緊密に連絡をとる方がよく、覚悟が必要で責任も伴うという。参照:https://t.co/UwqbkjQyT6 … https://t.co/GogPxoW2qq"
なかのんクエストさんのツイート: "なんか、contenteditableのネタが未だにちょいちょい、RTとかFav延びてるけど、みなさん、ご存知なくての話なのか、だよねーー的な感じなのか……"
なかのんクエストさんのツイート: "contenteditable="plaintext"なんて案もあって、bugzillaにも実装要望報告来てたんだけど、汎用性無さすぎな仕様で、速攻で仕様案からlegacy扱いになってたのはなかなかのギャグ。"
なかのんクエストさんのツイート: "現在の仕様案は悪くないと思うんで、Chromiumが先行するなら追随したいとこらではある。"
なかのんクエストさんのツイート: "実際に私が実装する事は無いと思うけど、テキストエディタの使い勝手って、IME並みに重要だと思うので、上手く抽象化してから、vimやemacsのキーバインドをGeckoで実装したいって人が来るならwelcome。個人的には。"
なかのんクエストさんのツイート: "まあ、まずは抽象化するっていう作業が必要ですけどね。今はキーの組み合わせをハードコーディングで確認したり、XULであらかじめ決定してるキーバインディングでコマンド実行したりしてる。これを全部、キーイベント発火タイミングでコマンドを関連付けるようにしないといけない。"
なかのんクエストさんのツイート: "Quantum Flowがらみでその辺は今、ぼんやりと考えてる段階。"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"

histric-2

LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog
Rockridgeさんのツイート: "Fx55:Windows版で、テキストエリア内においてATOKの定型文章入力を行った際、改行が無視される後退バグを修正。 / “1339331 - [TSF] new line is ignored when use ATOK'…” https://t.co/T6qhU8hzEk"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"
なかのんクエストさんのツイート: "常に<br>置換でも良いような気もするものの、ハングルのIMEの挙動を考えると、普通にEnter押したときの動作でないとまずいし、でも、ATOKだとそれじゃ、変な結果になるよな、という……"
なかのんクエストさんのツイート: "プレーンテキスト脳なATOKのhacky動作を無視するのが一番なのかなぁ。"
Rockridgeさんのツイート: "Fx60:contenteditable/designModeの編集領域において、ユーザーがEnterキーを入力した場合、他のブラウザと同様にdiv要素が挿入されるようになる。従来はbr要素が挿入されていた。 / “Intent…” https://t.co/eHZAPYMIbO"
なかのん&マジックさんのツイート: "あー、やっと、Chromeの微妙に納得いかない動作に合わせる方法思いついた。contenteditable="false"絡みはどこのブラウザベンダもちゃんとテストしてないから、実装の癖がそのまま出ちゃうんだよな。"
なかのん&マジックさんのツイート: "なので、最大シェアのChromeが、理屈的に微妙な動きをしてるときにどうすべきか、ケースバイケースで難しい。"
なかのん&マジックさんのツイート: "本当にこの辺は標準化しないと使い物にならないよな。穴埋めみたいな入力画面をcontenteditable="false"を活用して作ると、undo/redoが全編集可能エリアで統合されるんで、場合によっては便利そうなんだけど、いかんせん、互換性とか以前のレベル。"
なかのん&マジックさんのツイート: "contenteditableの実装、invalidなHTML内での編集も処理しないといけないの、複雑さを悪化させてたり。<div><li></li></div>で、<li>内でEnter押した時とか。"
なかのん&マジックさんのツイート: "そーいや、EdgeもBlinkも、contenteditableでの編集中に、平然とHTML的にInvalidなDOMツリーを作るんだけど、どうなってんだ……"
なかのん&マジックさんのツイート: "孫以降にInvalidな要素を作ってしまうのであれば、パフォーマンス的に分からなくもないんどけど、流石に子供として挿入しちゃうのは……"
Pascal Chevrelさんのツイート: "My Firefox Dev Tools tip of the day, live edit your Web content by setting contenteditable=true to the body tag ;) #FirefoxHowTo… https://t.co/TCxpCtk49C"
なかのん&マジックさんのツイート: "うおおおお。バグ報告一杯来そうで嬉しいやら悲しいやら。"
なかのん&マジックさんのツイート: "正直、contenteditableで生成されるツリーは綺麗ではない。"
なかのん&マジックさんのツイート: "Edgeなんか、Enterキー押した時に、親が<span>とか<p>でも、<div>を突っ込んで来たりするしね。"
なかのん&マジックさんのツイート: "日本人ではゼロかもしれないですけど、FirefoxのcontenteditableやdesignModeで表示される固有UIの、画像等のリサイザや、絶対配置要素の位置変更、テーブルのセルの追加、削除のUI、これらを日常的に(頻度は問いませんが)使っている人居ますか? #もずでぶ"
なかのん&マジックさんのツイート: "全世界のNightlyとBetaユーザの利用率を調べると、削除するには無視できないぐらいには、割合は少ないものの明らかに意図的に操作している人が居るのが分かって、驚いています。"
なかのん&マジックさんのツイート: "今のところ、トラブルが無ければ、Firefox 64 (2018年12月リリース)で、標準では無効化(非表示)にして、execCommand経由でWebアプリが有効化したり、あるいはユーザが強引にabout:configから有効にできるようにする予定です。"
なかのん&マジックさんのツイート: "ちなみに、Chrome、Safari、Edgeはこれらのビルトインな特殊要素の編集UIを持っていませんので、デフォルトで非表示にすることでブラウザ間の互換性が向上します。"

なかのん&マジックさんのツイート: "<blockquote>の挙動が分からないって言ってるの、HTML4(.01)を知らないからか。明日か明後日、体調戻ってたら解説記事書くのも面白いか。 / noteと"contenteditable"|ct8ker|note https://t.co/6vcjcqDAw2"
noteと"contenteditable"|ct8ker|note
なかのん&マジックさんのツイート: "HTML 4.01の<blockquote>の仕様はこちら: https://t.co/VSx974gYKp"
Paragraphs, Lines, and Phrases
なかのん&マジックさんのツイート: "というかこの人、専門でやってるという割には仕様を調べたことなさそうな感じだし、まあ、そもそも仕様書もどきに辿りつくのも大変だと思うんでやっぱりなんか書きます。"
なかのん&マジックさんのツイート: "Firefoxのcontenteditableの動作、超複雑怪奇になる条件が重なったケースというのを除けば、だいたい理解はできる感じなんだよな。"
なかのん&マジックさんのツイート: "Geckoのエディタモジュールのオーナーであるにも関わらず知らなかったんですが、contenteditable内に可視化されたstyle要素を置いて、そのCSSのルールをいじると、ちゃんとその結果がページ全体に反映されるんですね…… https://t.co/aZk1TwaLAr"
A Pen by Masayuki Nakano
KIMATA RobertHisasiさんのツイート: "HTMLの仕様を読むと最初の方で「この仕様はHTMLを知らない人向けじゃないよ。そういう人は先に別に用意されたチュートリアルを読んでね」的な事が書いてあるのだが、そのチュートリアルはどこで見つければ、と言う気持ち。正直HTML4.01を勉強したころに比べて今は難しいと感じる"
なかのん&マジックさんのツイート: "contenteditable周りを開発する人は今からでもHTML 4.01は読んでおいた方が良い。なんでかっていうと、HTML5以降廃止されたブロックレベル要素、インラインレベル要素っていう概念を元にブラウザが実装してるし、そこの互換性がまだまだ低くて、"
なかのん&マジックさんのツイート: "なおかつ、それぞれがバグ持ちで標準化不能になってるから、HTML 4.01での概念を分かってないと意味不明な挙動に見えるんだってのをこないだ学んだ。"
かさんのツイート: "Twitterの新しいWeb版がやらかしてくれました…日本語入力が狂うなと思ったら案の定textareaを使わずに謎の編集可能なdivとspan… これやられるとマジで入力がおかしくなる環境の人がいるから全Web技術者は真似しないで欲しい… https://t.co/U3p4QcsB6s"
なかのん&マジックさんのツイート: "特にFirefox Nightlyでは問題無いなぁ。なんかのブラウザのバグを踏んでる?"
Makoto Kato ︎︎さんのツイート: "Twitterがやりたいことをやるためには、<textarea>じゃ実現できなくて、contentedtiable使うしかないってわかってない多そう。例えばURLを入力すると色が変わるとかはtextareaとかじゃ実現できない"
Makoto Kato ︎︎さんのツイート: "Twitterがほしいのはcontentediable=plaintext-onlyなんだろうけどさ。入力とかペーストはhtmlのエレメント欲しくなくて、プレーンテキストだけを許可したいとか"
Makoto Kato ︎︎さんのツイート: "contenteditableで日本語入力がおかしくなるのは、ブラウザかスペックのバグなのでブラウザ作ってる人たちが直すしかないので。無理難題多いけど自分も含めてどうにかするしかない。"
なかのん&マジックさんのツイート: "あれ結局、実装してるブラウザもやっつけ実装だし、細かい仕様出せってなった後反応無くなったしで黒歴史。"
Makoto Kato ︎︎さんのツイート: "Linuxでの日本語入力がChromeで問題あるのは、まぁリソースの問題じゃないのかなぁ。彼らにとってプライオリティ高くないし。Firefoxで問題があるのであれば、すみませんというしかないけど。(あのim moduleの仕組みはバグ増やすだけだからよくないとは思ってる)"
なかのん&マジックさんのツイート: "contenteditable=plaintext-onlyの一番分かりやすい疑問点はEnterキーを押した時に、<br>を入れるのか\nを入れるのかってところ。<p>に\n入れてもスペースだし、かといって<pre>に<br>入れるのも変。"
なかのん&マジックさんのツイート: "ようするに雑やねん、あれ……"

君はHTML5の contentEditable 属性を知っているか | Tips Note by TAM
contenteditable 属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
HTML5/グローバル属性/contenteditable属性 要素内容が編集可能かどうかを指定する - TAG index
【HTML5】contenteditable属性 - Qiita
[HTML5API] contentEditable 属性を使用したリッチテキストエディタの実現 – monoe's blog
contenteditable=contenteditable - コンテンツの編集許可
HTMLのcontenteditable属性 - 備忘帳 - オレンジ工房
contenteditable 属性 | HTML5 タグリファレンス | W3 Watch Reference
Re: noteと"contenteditable"|ct8ker|note - WebStudio

Publickey

「HTML5 Rocks」だけじゃない、ブラウザ各社のHTML5チュートリアルを集めました - Publickey
WebIntentsとSocket APIでブラウザから家電が操作できる。HTML5 Conference 2012 - Publickey
まだぼやけているHTML5の将来、WHATWGとの二重管理のジレンマ。W3C TPAC 2015 - Publickey
W3C、「HTML5.1」を今年9月に勧告とする計画。仕様はGitHubで公開 - Publickey
W3Cが「HTML 5.1」を勧告、レスポンシブイメージへの対応など。次のHTML 5.2は2017年末頃を目指す - Publickey
HTML 5.2の勧告を2017年11月とする工程表が提案される - Publickey
W3C、「HTML 5.2」勧告。同時にHTML 5.3のファーストドラフトを公開 - Publickey

Qiita

<a href="#top">がHTML5で正式仕様になってた件 - Qiita
サイトに埋め込まれたHTMLのmeta(メタタグ)あれこれまとめ - Qiita
なつき@コーディングスクール開催さんのツイート: "Googleは以前head, body省略を推奨するような記事書いてましたよね…私はおすすめしませんが。p要素も条件次第で省略可能です。 "HTML5 で省略できるタグ - Qiita" https://t.co/4kqHmgDz82"
HTML5 で省略できるタグ - Qiita
なかのん&マジックさんのツイート: "公開する分だけ機械的に抜くのはともかく、基本的には書いた方がミスがなくて良いと思うけどな。C++でもたまに、{}を付けてなかった1行のブロックに機械的に行を追加しちゃったけど、当然ブロックスコープが意図せず違っててクラッシュバグになったりとかあってるし。"

Twitter

vyv03354さんのツイート: "WHATWGのHTMLも最新とは限らないとか勘弁して…。 https://t.co/zySMIUvL #もずでぶ"
KANZAKI, Masahideさんのツイート: "HTML 5.2 https://t.co/LRz4sAfmvD 更新されたWDを久々に見たら:main複数可(ただし表示は1つのみ、WHATWGと違)、styleはbody内も可(4月WD、WHA.は不採用)、dlの子にdiv可(2月、WHA.は昨年末)などなかなか斬新"
Rockridgeさんのツイート: "2017年12月14日、HTML 5.2の仕様がW3C勧告となった。 / “HTML 5.2 is now a W3C Recommendation | W3C News” https://t.co/D13rRxxZM6"
Rockridgeさんのツイート: "HTML 5.2において、プラグインシステムはobsolete(旧式)なものとして扱われるようになった。 / “HTML 5.2 is done, HTML 5.3 is coming | W3C Blog” https://t.co/XPnb10LxWQ"
なかのん&マジックさんのツイート: "そういえば、HTML5で実際にアプリに使われていたことのある、<link rel="top">とか、<link rel="up">が仕様にない上にvalidatorでerrorになるというのには驚いたなぁ。"
もんどさんのツイート: ">アウトライン周りはなかなかに人によって意見が分かれそうな雑な定義で実に悩まされましたね……ググっても、どれを参考にすれば良いのかと思えるぐらい、検索結果が玉石混交っぽくて、今でもまだ正解が分かってません。 どうせブラウザーが実装してないから気にしない派です。"
なかのん&マジックさんのツイート: "そこはそれ、妄想の中にある理想のブラウザで読み込まれることを前提としてですね("

W3Cのは『欠陥フォーク』!? HTMLスナップショット2016 ── HTML5 Conference 2016セッションレポート | HTML5Experts.jp
HTML関連英文書の日本語訳 - HTML5.JP
Top | Diff of HTMLs
W3C - 『HTML 5 differences from HTML 4』日本語訳 - HTML5.JP
HTML5日本語訳
HTML Standard 日本語訳
HTML5の最小構成サンプルとその説明 | マイナビニュース
すべての人が使えるウェブを開発しよう | Mozilla Japan ブログ
JenkinsとHTMLHintを使用して潜在的な構文エラーに気づいていく | フロントエンドBlog | ミツエーリンクス
picture要素やsrcset属性による画像のレスポンシブ、高解像度対応 | フロントエンドBlog | ミツエーリンクス
HTML の q タグが日本語のサイトではカギ括弧を出すようになってた - 頭ん中
本の虫: W3CとHTML5のruby要素の違い。
A Study in HTML5 — Baldanders.info
W3CはHTML 5.2を公式勧告としてリリースした
WebStudioともずはっく日記のHTML5化とその他もろもろ - WebStudio
img要素とiframe要素のlazyload属性 - EagleLand
Chrome 74が遅延ローディングをネイティブにサポート

XML

XML 1.0第五版登場、一部規制を緩和 | マイナビニュース
RFCの正規文書がXMLに:Geekなぺーじ
The XML C parser and toolkit of Gnome
Downloads
Welcome to Expat! · Expat XML parser

XHTML

なかのん DAYS''さんのツイート: "なんかそのうちドキュメントにまとめたいと思うけど、長年、私のサイトでapplication/xhtml+xmlを運用してきたけど、その結果からするとこの仕様はdeprecatedにして、廃止した方が良い。"
なかのん DAYS''さんのツイート: "まず第1の問題はGoogleを始め、知る限りほとんどのエンジンが対応していないというか、acceptableなMIMEタイプに含めていないぐらいにブラウザベンダ以外はサポートする気が無い。"
なかのん DAYS''さんのツイート: "第2の問題は不安定な通信状況等で1バイトでもデータが欠けると、ページ全体がレンダリングされない。これは非常に大きな問題。"
なかのん DAYS''さんのツイート: "第3の問題はうちの日記システムのように生のHTMLを書き込めるようなシステムの場合、プレビューの仕方を工夫しないとエラーが出て書き込んだ情報のdatalossにつながりかねない。"
なかのん DAYS''さんのツイート: "最後の問題として、lang属性 vs. xml:lang属性の問題や<pre>要素の問題等、text/htmlと動作が違い過ぎる点がある。このため、テストが二重に必要になるのでこんなコストを良しとする作成者は普通は居ない。"
なかのん DAYS''さんのツイート: "あんまし記憶にないんだけど、CSSのセレクタの動作がXMLかHTMLかで変わるってのもあった気がする。"
なかのん DAYS''さんのツイート: "あ、application/xhtml+xmlだと、利用できる実体参照の数がすごい少ないんだっけか。"
なかのん DAYS''さんのツイート: "あー、クローラーと書くつもりがエンジンって書いちゃってたのか。 https://t.co/9NBeWL7IgH"
XHTML 1.1 解説

ISO-HTML

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス
<style>要素(スタイルシート言語に依るスタイル定義) - HTML リファレンス
ISO-HTML に於ける Pre-HTML について - HTML リファレンス

JIS

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス

MDN

HTML | MDN
HTML 要素リファレンス - HTML | MDN
属性 (HTML) - HTML | MDN
Microdata - HTML | MDN
div 要素 - HTML | MDN
span 要素 - HTML | MDN
Global attributes - HTML | MDN

水底の血

W3CがHTMLとDOMを(再)勧告する理由 - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血
さようなら W3C HTML5.0仕様 - 水底の血
さよならアウトラインアルゴリズム? - 水底の血
(メモ)W3C、HTMLとDOM仕様の並立状態が有害であることを認めていた - 水底の血
W3Cで現在公開されているHTMLとDOM仕様は将来廃止されます - 水底の血
Web における技術の解釈とエコシステムによる合意形成プロセスについて | blog.jxck.io
(メモ)DOCTYPEスイッチあるいはウェブ標準としてのQuirks Modeの覚え書き - 水底の血
(メモ)令和初のHTML Working Groupが始動した - 水底の血
HTML4/5の知識の断絶みたいなものを感じた件。 - 水底の血
高校の「情報」の教科書にあるHTML断片が酷いらしい - 水底の血
メモ:両HTMLにおけるmain要素の説明、ついに一定の収束の気配か。 - 水底の血
本家Stack OverflowでHTMLの質問をしたら、仕様が変わったという話 - 水底の血

GitHub

html · momdo/momdo.github.io Wiki
talk/webtalk_2016-09-03.pdf at master · momdo/talk
Jxckさんのツイート: "[html][header] HTML の HEAD に書けるメタ情報のまとめ / “GitHub - joshbuchea/HEAD: A list of everything that goes in the <head>…” https://t.co/3cFiiIGEqR"
joshbuchea/HEAD: A list of everything that could go in the <head> of your document
Home · momdo/momdo.github.io Wiki

Wikipedia

HyperText Markup Language - Wikipedia
マイクロフォーマット - Wikipedia
Microformat - Wikipedia
Geo (マイクロフォーマット) - Wikipedia
Geo (microformat) - Wikipedia
hCalendar - Wikipedia
hCalendar - Wikipedia
hCard - Wikipedia
hCard - Wikipedia

Qiita

ヒトでもわかるWebブラウザ自作入門 - Qiita
Webブラウザの作り方 - Qiita

Twitter

その他

Jxckさんのツイート: "@Jxck_ つまり <input type=email> で大丈夫って言われたメアドが Rails 側の保存時にダメって言われることがあるのか。つまり、フロントを自前 pattern でやるか、 Rails を CustomValidator にするか寄せる必要が。"
Kazuho Okuさんのツイート: "「link rel=preload には crossorigin と as attribute つけろよな!絶対だぞ!」"
Jxckさんのツイート: "「alt に代替テキストを付ける」のは「読み上げブラウザのため」って考えるから、「読み上げた時にどうだから alt はどうあるべき」って話をするのなら、それは根本的な勘違い。 alt はスクリーンリーダのため「だけ」ではない。Web を取り巻く全てのエコシステムのためのもの。"
Jxckさんのツイート: "<fieldset>, <legend> タグってほんと全然使われてないんだな、スタイルのバグのせいなのかと思ったけど、そもそも知られてないとかなのなかな。"
llamaさんのツイート: "もうWebブラウザに内蔵しといてもらえないかなHTMLバリデータ。コンソールに結果出してよ。"
にゃおきゃっとさんのツイート: "小学生の頃、html文書というのは table table table table でした。あれから十数年経過した今は、 div div div div に変化していました。"
ともい(Tomoi,S.)さんのツイート: "Twitterのように縦に長くなるWebサイトを横画面で見る場合、同じ情報を共有した分割画面で、今読んでいる箇所と最新を同時に見たい。"
ともい(Tomoi,S.)さんのツイート: "一見2枚開けば同じことができるように見えますが、「論理的に1枚の画面で、読んでいる位置だけが違う」状況が必要なので、これができるブラウザがあれば乗り換えたいところ。"
一ノ瀬 いろはさんのツイート: "ルートパスって何。"
もんどさんのツイート: "みてる:divでdtとddをグルーピングできる - Qiita https://t.co/OlYW79cqIh こう、W3C仕様の勧告というステータスへの信仰みたいなもの、どうすればいいんでしょうね。"
divでdtとddをグルーピングできる - Qiita
道化師さんのツイート: "昨今の HTML の類いのファイル、サーバー上 or クライアント上でレンダリングする templete まみれで素の HTML を前提としてるエディタ、非常に残念なことになるよなぁ。"
dynamis (でゅなみす)さんのツイート: "Web業界にやっとブラウザ標準のコンポーネント化技術がHTML/JS双方で揃い、AndroidだけでなくiOSやデスクトップでのアプリサポート、課金システム対応、Wasm強化にAV1の導入、これらを背景としてHTTPの本格的なdepricationが始まるのが今年のブラウザトレンドになりそうかな。"
uint256_tさんのツイート: "#Naglfar - 閉じられていないHTMLのコメントに対応 https://t.co/vOgoxtLNeG"
KIMATA RobertHisasiさんのツイート: "あと、time要素の「datetime属性の値になりえるテキストノードがこようその場合のみdatetime属性を省略できる」のに <time>2018年9月26日</time> みたいな記述を散見する。まあ、これもやりがちなのだが、駄目な奴。結論としては「チェッカー使いましょう」だろうか"
スドー🌻さんはTwitterを使っています: 「もともとHTMLのリンク文字列は「青文字で下線表示」というスタイルで「ここはクリックできますよ」と明示していたのだが,CSSの普及とともに色分けも下線もなくしてどこがクリックできるのかわからないようにするのが流行りはじめ,デザイナの考えるかっこよさとユーザビリティの乖離を考えさせられた」 / Twitter
なかのん&マジックさんのツイート: ""Geckoをユーザーエージェントにしたブラウザを優遇したウェブページが登場するようになりました" / 世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE https://t.co/qDtUPZnO6F いや、そんなタイミングは全く無かったと思うが……"
いざてんさんのツイート: "正確にはMozillaですかね?(… "
なかのん&マジックさんのツイート: "IEとGeckoの違いが大きかったので、見分けるために使ってたかもですが、優遇っていうより、IE以外を見分けるのになんでか"Gecko"とか見てるサイトがあったとかそんな感じ? ピーク時でもシェアは今より良かったってだけで、めちゃくちゃシェアが大きかったことなんて無いですし。… https://t.co/TmqsvRAcY6"
いざてんさんのツイート: "原文を読んでみましたけど、「KHTML, like Gecko」が入っていたという話らしいのでGeckoを見てるサイトがあった、という訳文に間違いはなさそうですね。そんなサイトあんまり覚えがないですけど……。… "
もんどさんのツイート: "これ見て気づいたんですけど、User agents must support [...] UTF-8, [...] ISO-2022-JP, Shift_JIS ってあって、EUC-JPが見当たらないんですけどどういうことなんですかね…"

robots.txt

電波の妖精さんのツイート: "げぇっ、総務省のWebサイトってrobots.txtでInternet Archiveのクローラだけ狙い撃ちで弾いてるのか……これなら確かに国会図書館法には違反しないけど…… https://t.co/ttYlY0LQVd"
電波の妖精さんのツイート: "User-agent: ia_archiver Disallow: /"
電波の妖精さんのツイート: "このrobots.txtは2012年12月頃に置かれたようだ https://t.co/vqFPd3AuOp それでもHTTPSページとトップページだけは収集するのな。"
電波の妖精さんのツイート: "海外だとHTMLドキュメントなどを含む行政文書はパブリックドメインに属すると思うんですけど、日本だと法の建て付けが弱いというか、行政文書は行政機関が著作権を持つという前提で進んでいる気がして、そういう意識の現れなのかなぁと思いました(小並)"
Tsukasa #01 [要出典]さんのツイート: "IA は robots.txt を無視する方向に持っていきたいみたい (当該ブログ記事では米国の政府・軍事機関のウェブサイトでは既に無視しているとのこと)。 | Robots.txt meant for search engines don’t work well for web archives https://t.co/gHrKPcu65J"

Super Reload

べるさんのツイート: "うたプリファンミ通販のためにムービックで戦っている方、4:14現在全てまだ在庫あります。 スマホとPCで試した結果、firefox(PC)でアクセスしてCtrl+Shift+Rを繰り返していたところ、10分とせず繋がりました…!! ご飯お風呂睡眠を挟んで16時半からの戦いがやっと…幕を閉じました…(˘ω˘)"
なかのん&マジックさんのツイート: "あまり有名じゃないSuper Reload……"
おじゅんぬさんのツイート: "うたぷり ムービック戦争ですが PCのFirefoxで マイページより「うたの」で検索→落ちると思うのでctrl+Shif+Rで連打 であっさり行けます"
にんさんのツイート: "ムービック燃やす勢いのうたプリファンの皆さん pcからfirefox落として「ムービック うたプリ 通販」で検索、お客様各位になったもshift.ctrl.rの3つ同時押しで更新してたらぽろっといけます!!!その後も度々お客様各位にされるけど同じやり方で更新!!"
なかのん&マジックさんのツイート: "なんでSuper Reloadがこの界隈では有名なの……?"

タブ数

Rockridgeさんのツイート: "Firefox Nightlyユーザーの75%は、同時に9タブ未満しか開いていない。もっとも、上位5%に限ると40タブ以上開いているほか、中には3300タブという猛者もいるらしい。 / “dietrich ayalaさんのツイー…” https://t.co/Jx2RQkqBOT"
dietrich ayalaさんのツイート: "Ok, which one of you has 3.3k tabs open on @FirefoxNightly… https://t.co/yK7JYyMpzt… "
Measurement Dashboard

エンコーディング

KIMATA RobertHisasiさんのツイート: "まず、W3Cの最新のHTMLであるHTML5.1 2ndでは(HTML5の頃から引き続き)”Authors should use UTF-8.”。この should はRFC 2119が定めたshouldなので「理由を完全に理解した上で敢えて従わないこともできる」"
KIMATA RobertHisasiさんのツイート: "一方、Living Standardの現時点の表記は ”the actual character encoding used to encode the document must be UTF-8.” である。Must なので理由があってもUTF-8でなければいけない"
KIMATA RobertHisasiさんのツイート: "肝心のUTF-8でなければならない理由は潜在的なセキュリティ上の脆弱性があるからとされている。具体的には(日本人に馴染みあるコードとしては)ISO-2022などが名指しで使うなとある。また、UTF-16とエンコーディングアルゴリズムが区別つかないUTF-32も使うなとある"
なかのん&マジックさんのツイート: "UTF-16は、ASCII非互換ってところだけで、文字コード不明な段階でのHTMLのパースに色々と面倒な事が容易に想像してもらえると思うし、NULL文字にあたる0が多々含まれるのがやっぱ怖い。というか気持ち悪い。"
なかのん&マジックさんのツイート: "@robert_KIMATA BOMが無いケースが普通にあります。UTF-16BEとUTF-16LEと。"

ブラウザの挙動と仕様

なかのん&マジックさんのツイート: "仕様をきちんと理解してる開発者が、仕様とは異なる挙動をブラウザがしている場合や、仕様を実装していない事に対して言うなら正しいよ。でも、そうじゃないケースを多々見てきてるから、うなずけない。こういう考え方がIE6一強時代みたいなのを繰り返すやろうね。 https://t.co/6BvsqjJEfJ"
なかのん&マジックさんのツイート: "真面目に勉強されてる人がこういう事言うと、そうじゃない人は都合よく解釈するのがオチ。"
なかのん&マジックさんのツイート: "ブラウザ側のバグで動かない場合、そのままってのはブラウザベンダからすると意外と有り難い面もある。バグを修正して他のブラウザと同じ挙動になったら壊れるアプリってのが一番困る。大抵、UA文字列等の関係ない情報でブラウザを特定して動作を変えるという、やっちゃいけない判定やってる。"
なかのん&マジックさんのツイート: "例えば、特定のイベントの結果がブラウザによって異なるからハックを入れる場合、特定ブラウザを確認してコードを書くのではなく、得られた結果を確認して書かないといけない。前者はブラウザ側の挙動変更で壊れるが、後者は壊れにくい。"
なかのん&マジックさんのツイート: "@okomeki バグ報告してから修正されないならベンダの責任やけど、だいたい、報告されないから、他の開発者も同じ所で同じようなハック入れたりする地獄が想像できる……"
なかのん&マジックさんのツイート: "@okomeki あの手のヤツ、うまいこと作ってるらしく、ブラウザ側の挙動変更に強くて助かる。でも、使うのがこれだけ一般的になってても、やはり挙動変更で壊れるサイトがあって、UA文字列偽装で動くとか未だに普通にある。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeみたいにブラウザの判定じゃないとどうしようも無い場合ももちろんあるんだけど、こういうケースはブラウザ側は修正できないし、あまりしない。標準化においても、レガシーなものと定義して、代わりのものを用意して、過去との互換性に配慮する。"
なかのん&マジックさんのツイート: "@t_daicho あの辺はグレーゾーンも多そうですね。あと、小数点の丸め誤差とか。デバイスピクセルに沿わせないとボケて見えるので。"

互換性

dynamis (でゅなみす)さんのツイート: "Googleさんの、社内の他のサービスが壊れるのを気にせずにChromeの挙動変更を入れていく姿勢、Firefoxなど他のブラウザへの挙動変更をリクエストしていく姿勢、大好きです。 社内配慮でサービス側を直さずプラットフォーム側の改善禁止やハックを求めて何も進まない日本の大企業とは違う。"
なかのん&マジックさんのツイート: "激しく巻き込まれてる最中でもにょる……"
なかのん&マジックさんのツイート: "Googleさんの各種アプリのアップデートが大変ということで、古い挙動をブラックリスト形式で許可していってるところだけど、なかなかに作りが悪くない感じで、JSのコンテキストは比較的、素直なサブドメイン上で動いてて助かる。"
なかのん&マジックさんのツイート: "これ、ユーザによってサブドメイン違うとかだと、もう無理ゲーになってくるんで。"
なかのん&マジックさんのツイート: "XHRのアクセス先なんかは、ドメイン上に数字が含まれててスゴく怖いんだけど、まあ、そっちは今回は関係ない。"
なかのん&マジックさんのツイート: "*.google.comとかすると、新しい挙動にしてくれと言ってきた部署のアプリがテストできないんで、個別指定ができないと困る訳ですわ。"
Mantarohさんのツイート: "IE さえなければこれを使いたいってあるよね(遠い目) https://t.co/Z8t4RgCbXb"
HTMLSelectElement.selectedOptions | MDN

target="_blank"

Manabu Uenoさんのツイート: "Mac の Safari は、target="_blank" のリンクから新規タブで開いたページで「戻る」ボタンを押すとタブが閉じて元のページに戻れるのがいい。iOS の Safari もそうなってほしい。"
llamaさんのツイート: "知らなかった。世のブラウザがみなそういう実装になったら、target=“_blank” やめましょうと説く必要はなくなるかな。他に理由があるか今ちょっと思いつかないけど。"
なかのん&マジックさんのツイート: "きちんと調べたことないんだけど、Firefox for Androidも概ねそんな動作な感じ。Backボタンを押したときに履歴が無かったら、タブを閉じて、openerなのか単に左にあるタブなのか直前のタブなのかはっきりしないけど、何しか、割と直感的に動いてくれる。"
なかのん&マジックさんのツイート: "Firefox for Desktopでも履歴が無い場合のタブでの戻るボタンについて似たような動作にしろっていうバグを昔見たけど、ユーザに混乱与えずに実装する「正解」が見つけられずに止まってたな。誤って戻るボタンで閉じたタブを進むボタンで開けない以上、どうしたもんかっていう感じだったと思う。"
なかのん&マジックさんのツイート: "18808 - New windows/tabs should inherit current page, back button/go menu history https://t.co/fUL9KtHLki"

@d_toybox

なかのんクエストさんのツイート: "個人的には、Web (public) と相容れない形式のファイルをインライン表示する手段としてのプラグインは永遠に必要だと思うんだけど、Flashみたいに「悪用」してそれに乗っかる「クリエイター」が出続けてた状況を見ると、一般ユーザーの利益になるのはプラグイン廃止よねぇ。"
なかのんクエストさんのツイート: "Webを酷いものにしたのはFlashとそのクリエイターだし、ブラウザのプラットホームとしての可能性を結果として潰したのもFlashとそのクリエイター達という認識。"
なかのんクエストさんのツイート: "DOMがあるからすっきりと体系化できるんだし、セマンティクス中心にスタイル指定できるようにclassが有るのに。"
なかのんクエストさんのツイート: "Chromeのようにシェアが有るところが、強攻手段で存続させるメリットが互換性以外に無い、非標準な動作を変えるってのは、Webを健全なプラットホームとして保つのに必要なので、ガンガンやっていただきたい。"
なかのんクエストさんのツイート: "「Firefoxだけ値や動作が違うから修正すべき」って、問題が発生してるひとつのサイトだけ見て言う人が多いんだけど、他の問題ない多数のサイトはその値前提で動いてるんですよ。プラットフォームの動作を変えるってのはそれほどにリスキーで難しい。 #もずでぶ"
なかのんクエストさんのツイート: "比較的変更しやすい例は、値が文字列等でそれまでの値と新しい(他のブラウザと同じ)値をorで検査しているような場合や、Firefoxでのみ追加のAPI呼び出しが必要だったケースで他のブラウザに合わせる場合。ただ、これらでもUA文字列確認してて壊れるサイトが出てくる。#もずでぶ"
なかのんクエストさんのツイート: "KeybordEvent.keyCodeの検査のように、UA名を確認しないといけない場合を除き、UA名を見て動作を変えるサイトは悪だと言うことがよくわかってもらえると思う。動作の違いやAPIの有無を確認して処理を行うのが正しいアプローチ。 #もずでぶ"
なつき@コーディングスクール開催さんのツイート: "「WinとMacの見た目を統一したい」というのは制作者やクライアントの要望でよく聞くけど、ユーザーはそんなこと求めてないんじゃないかなぁというのが私の意見なので、単に sans-serif だけ指定してブラウザやOSに任せることが多いですね。"
なかのんクエストさんのツイート: "なんでかGeckoがネイティブのL&Fを一番大切にするブラウザになってしまった。普通はOS付属のやつだと思うんだが……"
なかのんクエストさんのツイート: "<input type=radio>と<input type=checkbox>はサイズ指定されてる場合はどうにかならんもんかなぁとは思うけど。"
九波ヒメヒコさんのツイート: "周知の機能かも知れませんが… クリスタで「フォントどうしようかな~」と一つ一つ選んで試すのが面倒!って方は、変更したいテキストを選択してから[ツールプロパティ]の[フォント]にカーソルを乗せマウスのホイールをクルクルさせてみてください。 幸せになれます。 https://t.co/GNokXKEsy5"
なかのん&マジックさんのツイート: "マウスホイールでドロップダウンリストの選択項目が順に変わるのを有りがたいと思うケースって本当にあるのか……"
なかのん&マジックさんのツイート: "あれは意図しない編集が発生したままで、フォームを送信する可能性があるんで、ブラウザは絶対にやるべきじゃないと思ってる。例えネイティブの動作と異なってたとしても。"
なかのん&マジックさんのツイート: "え、HTMLのid属性ってこんだけしか定義ないの……? https://t.co/cF7I2KDDx8"
HTML Standard
なかのん&マジックさんのツイート: "let e = document.createElement("span"); e.setAttribute("id", "foo"); document.body.setAttribute("id", "foo"); document.body.insertBefore(e, document.body.firstChild); ってやった時に、どっちかのid属性が削除されるべきなのかどうなのか気になったんだけど……"
なかのん&マジックさんのツイート: "altに求めてる事が属性値としては不適切になってきてるよな。後方互換性を捨てまくってるんだから、内容を持てる様にしても良かったんではって最近思える。"
なかのん&マジックさんのツイート: "今日も一つ、HTML4時代にはそう解釈するのが普通よねって動作が、WebKit/Blinkでは違ってて、さらにHTMLの仕様で現在のWebKit/Blinkの動作に近い内容にいつの間にか変わってるし、モバイルなページでそれに依存してるところあるぞってバグに巻き込まれた。"
なかのん&マジックさんのツイート: "<blink>要素にとどめを刺したのは私だけど、別に広告が原因じゃないよ。 https://t.co/AbDf7LNcJU"
広告によって滅ぼされる技術 (#3505579) | 2018年中にサードパーティCookieが無効でもWebサービスが正常に動作するか確認を | スラド
なかのん&マジックさんのツイート: "スラドのフェイクニュースを訂正する気は無いという強い意志を感じる("
なかのん&マジックさんのツイート: "<input type="password">を含むformはGETでは送信しないとか今のHTML仕様で縛られても良い気がする。… "
malaさんのツイート: "パスワード入力フォームにmethod=POSTの指定がなくてJavaScriptエラーでGETメソッドで送ってしまったのではないかと推察。あくまでURLにパスワードが露出するバグとして報道されている(この規模のサービスでパスワードが平文保存なわけがないです) https://t.co/afmJz0Q1PB"
InstagramがユーザーのパスワードをURL内で公開するミス、なぜかFacebookにもパスワードが保存されていたと判明 - GIGAZINE
なかのん&マジックさんのツイート: "それで互換問題出るWebアプリはさすがに修正に追い込まれた方が良いだろうし。"
しめじさんのツイート: "ブラウザのタブなんて整理つかなくなるんだから、アドレスバーで検索しようとしたタイミングで「お前それもう別のタブにあるぞ」って出してこいよ"
なかのん&マジックさんのツイート: "Firefoxはそうしてるし、Enterキーだけでそのタブにスイッチするけど、Chromeだとボタンに「このタブに切り替え」ってボタンにフォーカスあわせないとできないのか。"
なかのん&マジックさんのツイート: "どういう理屈で、新しいタブを作りまくることを誘導する今のUIにしたんだろう、Chromeは。"
なかのん&マジックさんのツイート: "それにしてもドロップダウン内でボタンというウイジットにフォーカスを移動させるという行為、なんか気持ち悪いな。"
なかのん&マジックさんのツイート: "<keygen>要素、完全になくなるのか。あれとcontenteditable絡みで一杯クラッシュバグを見つけられてたけど、ひとまずその辺は落ち着くのか。"

HTML Standard

DTD

Document Type Definition - Wikipedia
Document type definition - Wikipedia
SGML実体 - Wikipedia
SGML entity - Wikipedia
HTMLのDTDを読んでみよう
SGML,XML,HTML
HTMLの基本構造 - 仕様書に見るHTML(1)
HTML 4 Document Type Definition
DTDを読む
DTDの読み方
IBM Knowledge Center - DTD を読む
ごくごく簡単なDTDの説明
Designing document type definition (DTD) in SGML/XML
5分でわかる!XML超入門 第01回 何はともあれXMLって何? | サイバーテック

RFC 2854

RFC 2854 - The 'text/html' Media Type
RFC 2854

HTML 2.x

HTML 2.x ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc2070.txt
rfc2070J.html
jbpe.tripod.com/rfcj/rfc2070.j.sjis.txt
RFC 2070
HTML 2.x
jbpe.tripod.com/rfcj/rfc2070.je.sjis.txt

HTML 2.0

クライアントサイドイメージマップ

https://tools.ietf.org/rfc/rfc1980.txt
[RFC1980] HTML 拡張提案: クライアントサイドイメージマップ
RFC 1980

HTML Tables

https://tools.ietf.org/rfc/rfc1942.txt
RFC 1942

Form-based File Upload

https://tools.ietf.org/rfc/rfc1867.txt
jbpe.tripod.com/rfcj/rfc1867.je.sjis.txt
RFC 1867

HTML 2.0 ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc1866.txt
Hypertext Markup Language - 2.0−目次
RFC 1866 - The 'text/html' Media Type
RFC 1866
www.age.ne.jp/x/sf/HT/HTML/RFC1866J-1_0.TXT

HTML のクワイン

ドッグさんはTwitterを使っています 「HTML のクワインだと… | 'This page is a truly naked, brutalist html quine.' https://t.co/a45MiEWwGm」 / Twitter
This page is a truly naked, brutalist html quine.
ドッグさんはTwitterを使っています 「もちろん JavaScript は使ってない.なるほど,CSS の content を&lt;del&gt;悪用&lt;/del&gt;利用するのか.思いつかなかったなぁ」 / Twitter

HyperText Markup Language - Wikipedia
HTML - Wikipedia
文字参照 - Wikipedia
カスタム要素 - Google 検索
2021年に登場したウェブハッキングテクニックトップ10 - GIGAZINE
Fuzzing for XSS via nested parsers condition – PT SWARM
GoogleがHTML5構文解析ライブラリGumboをオープンソース化
google/gumbo-parser
kovidgoyal/html5-parser: Fast C based HTML 5 parsing for python
www.asahi-net.or.jp/~jy3K-sm/i_net/books-good.txt
のけぞる本・一般編 - 文法の部
特殊記号のキャラクタ エンティティとBIDIテキスト
HyperText Markup Language - Wikipedia
あやしい本
Another HTML-lint 5
zserge/webview: Tiny cross-platform webview library for C/C++/Golang
HTMLの過去・現在・未来 -- ごく簡単なHTMLの説明
新しいHTMLタグportal、Portals機能で変わるWebの遷移体験! CDS2019で紹介されたヤフーの実装例 #UIUX - Yahoo! JAPAN Tech Blog
BlinkとWebKitの違い(大雑把) - saneyuki_s log
低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|若手Webエンジニアのキャリアを考える!
電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
本の虫: 続pre要素の改行
普通のHTMLの書き方
HTMLの歴史
Semantic HTML - Google 検索
まずはここから!HTMLの書き方【初心者向け】 | TechAcademyマガジン
Server Side Renderingについて知るべきこと。Server Side Renderingとは何か? それによって何が改善されるのか?(前編) ng-japan 2017 - Publickey
どうしてHTML5が廃止されたのか | フューチャー技術ブログ
HTML5はHTML Standardへ呼称変更 ~ HTML5プロフェッショナル認定試験は今後も有効 ~ |HTML5道場|Web資格なら「HTML5プロフェッショナル認定試験」公式サイト

CSS

その他

CSS | MDN
CSSの基本-HTMLクイックリファレンス
クリック・タッチを無効化するCSS「pointer-events: none;」がお手軽で便利 - Yahoo! JAPAN Tech Blog
その CSS の word-break: break-all は必要ですか - yanok.net
文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA
-ms-high-contrast を CSS ハックに使ってはいけない、ただひとつの理由 / JeffreyFrancesco.org
5年ぶりのメジャーアップデートとなる「Bootstrap 4」リリース | OSDN Magazine
CSSで縦書きのサイトを表彰、「たてよこWebアワード 2017」の受賞作発表 - INTERNET Watch
CSS3 で縦書き+四分空け組 - にせねこメモ
私のゴールは世界中の言語でCSSを使えるようにすること EPUB3で縦書きを実現した、fantasai(エリカ・エテマッド)に聞く
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。(2)
CSS フレームワークを使いたくない - ジンジャー研究室
DITA_Festa_2017_DSSSLprint.pdf
君は真に理解しているか?z-indexとスタッキングコンテキストの関係 - ICS MEDIA
IonicがShadow Partsでカスタマイズを改善
CSS Layout API で Masonry Layout | blog.jxck.io
Hugo で SCSS から Inline CSS に変換する | Coelacanth's Dream
won't fix: CSS疑似クラスの:read-onlyと:read-writeが仕様通りに実装されることになった
ページを高速に表示するには「CSS in JS」と普通のCSSのどちらを使うべきなのか? - GIGAZINE

CSS

Tailwind CSS

TailwindCSSって何?なんで流行ってるの?|F Lab|Fixel株式会社
Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
Tailwind CSS - A Utility-First CSS Framework for Rapidly Building Custom Designs
Tailwind CSSとは?ユーティリティファーストの意味…|Udemy メディア
利用者爆増中 初めてでもわかるTailwind CSS入門 基礎編 | アールエフェクト
Tailwind CSSが私には合わなかった理由 | コリス
色々書き比べた結果Tailwind CSSにしたという話 - Qiita
Tailwind CSSとは?そのメリットと使い方 日本語チートシート入門
tailwindcssの初心者用基礎的な使い方について|Solution - ソリューション|株式会社イージェーワークス
カスタマイズ可能なCSSフレームワークの最新版「Tailwind CSS 3.0」がリリース:CodeZine(コードジン)
渋川よしきさんはTwitterを使っています 「フレームワーク関係なく使えるポータブルなUI部品が欲しくてWeb Componentsに期待していた気持ちが高まっていたが、Tailwind.CSSに触れた今、Material Design Liteのクラス名が短くて検索しやすかったら、そこまでWeb Componentsへの期待が高くなってなかったかもなぁ、と気づいた」 / Twitter
令掛ベインさんはTwitterを使っています 「CSS (というかUIのスタイルづけ) をどう書くか問題は個人的にいきづまりがある。スタイルのルールにはコンポーネント的なスタイル (.buttonとか.menuみたいなコンポーネントの意味に関連させるもの)と部品的なもの(.boldみたいな特定のスタイルを意識したもの) がある」 / Twitter
令掛ベインさんはTwitterを使っています 「部品的スタイルはインラインで書きたいが書けないというときに使う。例えば .red-on-hover:hover {color:red}」 / Twitter
令掛ベインさんはTwitterを使っています 「コンポーネントスタイルは定義がゆれがち。ルールにつけたスタイルの一部が後で邪魔になったときルールの定義を変えると全体に影響が出るのがやっかい (スクリーンショットのスナップショットテストはしたことないけど有効かもしれない)。一種の基底クラスのようなものに思えてくる」 / Twitter
令掛ベインさんはTwitterを使っています 「かといってコンポーネント自身に持たせるルールが小さくなると、要素に複数のクラスを持たせて、クラスの組み合わせにスタイルをつけるかたちになって、認識しづらくなる」 / Twitter
令掛ベインさんはTwitterを使っています 「最近はtailwind CSS (すべて部品的スタイルでやる) をやっている。たくさんスタイルを書く必要があるのでめんどいし一貫性も崩れがちだけど、コンポーネントのルールを決めるときや変えるときの憂鬱さは解消する。ホットリロードのおかげで、スタイルを都度直す作業がぎりぎり許せる」 / Twitter
令掛ベインさんはTwitterを使っています 「余談: 部品的スタイルで書かれたウェブページはユーザースタイルシートでカスタマイズしづらいので、ユーザー視点でいうと少し困る」 / Twitter
渋川よしきさんはTwitterを使っています 「Tailwind CSS、今まで「えー、そんなのいらないでしょ」と思っていたが、技術ブログのネタでちょびっとついでに使ってみたら、これはとても良いものだった。人類にはCascadingは不要だったのでは」 / Twitter
渋川よしきさんはTwitterを使っています 「・・・というのは極端だとして、コンポーネントで作っていく今の時代だとこれがクラス同等であるのでクラス名をつけるという行為がそもそも「ムダ」だったんだなって。あと、ドキュメントの検索が良すぎる。検索がAPIの一部という感じ。」 / Twitter
💉*2+⏱=8/7さんはTwitterを使っています 「@shibu_jp 分かる。最初はclass=red はやめろって言われて育った世代なのでコレは……って思ってたんだけど、今までクラス単位で纏めていたコンポーネントの属性が reactやvue のお陰でdom 構造まで含めた纏めが出来るようになったから必要なくなった。なのでどちらかと言うとモダンcssなんだなぁと感じた」 / Twitter

単位

hsjoihs (2回+2週済)さんはTwitterを使っています 「CSS を自分で書いている方は、px や pt ではなくて mm や Q (0.25mm) などを使うことでヤードポンド法の削減に繋がります。ヤードポンド法の削減を唱えていらっしゃる方は是非どうぞ」 / Twitter
hsjoihs (2回+2週済)さんはTwitterを使っています 「「ところでヤードポンド法は滅ぼさねばならない」とか言ってる人も、文字のサイズ指定にポイント(72分の1インチ)は使ってたりしますよね、みたいな話がありますね」 / Twitter
hsjoihs (2回+2週済)さんはTwitterを使っています 「https://t.co/eHI4dVi8he https://t.co/utT2k9EwYM」 / Twitter
CSS Values and Units Module Level 3
hsjoihs (2回+2週済)さんはTwitterを使っています 「なお、これらの「インチ」があなたの画面上でヤードポンド法のインチになっているかは場合によるというのがあって……(紙に刷ったときは基本的にヤードポンド法のインチになるようになってるっぽいですね) https://t.co/BRCl2PfPwL」 / Twitter
hsjoihs (2回+2週済)さんはTwitterを使っています 「@0x19f いやまあ、そうとも言えないのが面倒なところで…… https://t.co/QigB0voC5Z」 / Twitter
CSS Length Explained - Mozilla Hacks - the Web developer blog

和訳

CSS3の日本語訳集 - 血統の森 web実験小屋
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification 日本語訳
CSS Basic User Interface Module Level 3 (CSS3 UI) 日本語訳
CSS Values and Units Module Level 3 日本語訳
CSS Text Decoration Module Level 3 日本語訳
CSS Device Adaptation Module Level 1 (日本語訳)
CSS Snapshot 2015 日本語訳
CSS Snapshot 2017 日本語訳
CSS Snapshot 2018 (日本語訳)

Mozilla

4x

Rockridgeさんのツイート: "Fx49:CSSの色指定で、RGBA値(4桁または8桁)を指定する場合でも16進表記が可能になった。WebKitでは実装済みで、Chromeも実装予定。参照:https://t.co/aXse15IScD … https://t.co/EnboG25nyv"
Rockridgeさんのツイート: "Fx47:CSS Scroll Snap Pointsの処理が別スレッドで非同期に行われるようになった。 / “1219296 – Ship snap points to the compositor so that we ca…” https://t.co/u9mqpFnIou"
Rockridgeさんのツイート: "Fx49:絵文字の文字列にline-breakプロパティが正しく適用されるようになった。 / “1265631 – Supplementary-plane Unicode characters (including Emoji)…” https://t.co/TEvC0rcWaK"
Rockridgeさんのツイート: "Fx49:CSSのbackground-position-x/background-position-yプロパティをサポート。 / “550426 – Add background-position-x and backgrou…” https://t.co/nwWRK8u59v"
Rockridgeさんのツイート: "Fx49:ベンダープレフィックスなしのtext-align-lastプロパティをサポート。 / “1039541 – Unprefix -moz-text-align-last” https://t.co/u8iLn7d72N"
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートしたことで、互換性が向上した実例が画像で示されている。 / “Firefox 49 fixes sites desi…” https://t.co/Sq4QVf6w32"
Firefox 48 は CSS calc() 関数の入れ子に対応、CSS カスタムプロパティとの併用がより便利に | WWW WATCH
Firefox 49でChrome・Safariを基準に作成されたコンテンツの表示精度が向上 - Mozilla Flux
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートした背景には、日本と中国のトップ1000のWebサイトのうち、およそ20%がAndroid版Firefoxで正しく表示… https://t.co/uYOpbR0old"

5x

50

Rockridgeさんのツイート: "Fx50:CSSのMask Imageプロパティがデフォルト有効化の予定。実装はFirefox 47から。参照:https://t.co/AzLSK26Eee / “Intent to ship: CSS Mask Image” https://t.co/UvnPjs0QDz"
Rockridgeさんのツイート: "Fx50:Pointer Events API関係のtouch-action CSSプロパティをサポート。参照:https://t.co/ByxmjKhqYV / “Intent to enable: touch-action …” https://t.co/82VAnlvyrr"
Rockridgeさんのツイート: "Fx50:border-image-repeatプロパティのspaceキーワード(枠線用の画像間の余白を均一にするもの)をサポート。 / “720531 – Implement border-image-repeat space…” https://t.co/is3VkL4NF7"

51

Rockridgeさんのツイート: "Fx51:ベンダープレフィックスなしの::placeholder疑似要素をサポート。参照:https://t.co/Lhofrgdq9E / “Intent to ship: CSS placeholder pseudo-ele…” https://t.co/un6XzSEMvO"
Rockridgeさんのツイート: "Fx51:onanimation*やontransitionendなど、CSSアニメーション関係のイベントハンドラのサポートを拡充し、WebKitと同等となった。 / “911987 – Add onanimation* eve…” https://t.co/jbyH818uNn"
Rockridgeさんのツイート: "Firefox 51でCSSのProperties/Values API Level 1を実装予定。デフォルト無効とのこと。参照:https://t.co/ASJFWNGvPl https://t.co/oIUpVqQjZy https://t.co/wv4H8qdGgu"

52

Rockridgeさんのツイート: "Fx52:CSS Inline Layout Module Level 3のinitial-letterプロパティが実装予定。参照:https://t.co/vBVvC7GCoL https://t.co/vG8WlvEEaj https://t.co/8TE91JAMe5"
Rockridgeさんのツイート: "Fx52:CSS Multi-column Layout関係のプロパティをベンダープレフィックスなしでサポート。参照:https://t.co/pTT4Gjxh3j / “Intent to ship: css multi-co…” https://t.co/sodonlx7mc"
Rockridgeさんのツイート: "Fx52:CSSのshape-outsideプロパティをサポート。参照:https://t.co/FtjLZ5EBXo / “Intent to implement: CSS shape-outside property” https://t.co/2bwRANEYkD"
Rockridgeさんのツイート: "Fx52:Beta/リリースチャンネルでもCSS Gridがデフォルト有効化の見込み。参照:https://t.co/6BskxHvwDv / “Intent to ship: CSS Grid - Google Groups” https://t.co/UWpkArdohD"
Rockridgeさんのツイート: "Fx52:予定通りBeta/リリースチャンネルでもCSS Gridがデフォルト有効化。 / “1217086 – [css-grid] Enable CSS Grid by default” https://t.co/yqIgcccYQc"
Rockridgeさんのツイート: "Fx52:CSSの関数記法による色指定について、新しい構文を実装。たとえば"rgb(0 0 0 / 100%) "といった記述が可能になる。参照:https://t.co/K7UCH7raOM / “Intent to ship…” https://t.co/qL7e3cAOCA"
Rockridgeさんのツイート: "Firefox 52/Chrome 57でサポートされるCSS Gridは、ビューポートを格子状に切り分け、行と列でボックスをコントロールする仕組み。Flexboxよりもきめ細かなレイアウトの制御が可能に。 / “CSS Gri…” https://t.co/f2iS2Ijsbv"

53

Rockridgeさんのツイート: "Fx53:チェックボックスやラジオボタンに対し、スタイルシートで背景色やボーダーなどを指定できるようになった。 / “418833 – can't define the style of input when the type …” https://t.co/Epi4fq5unm"
Rockridgeさんのツイート: "Fx53:CSSのMask Imageプロパティがデフォルト有効化。 / “1251161 – (mask-ship) Ship CSS positioned mask support on beta & release cha…” https://t.co/sXkFPaLC2U"
Rockridgeさんのツイート: "Fx53:ベンダープレフィックスありのtext-align-lastプロパティを削除。プレフィックスなしの同プロパティはFx49でサポート済み。参照:https://t.co/i2aPJfYRoP / “1276808 – Re…” https://t.co/6GayvnZDsn"
Rockridgeさんのツイート: "Fx53:キャレットの色を変更するCSSのcaret-colorプロパティをサポート予定。参照:https://t.co/CDCuV6IdZP / “Intent to implement and ship: CSS caret…” https://t.co/pCo1F85bll"
Rockridgeさんのツイート: "Fx53:CSSのdisplayプロパティでflow-rootの値をサポート。floatの解除に使える。 / “1322191 – Implement CSS `display: flow-root` (modern clear…” https://t.co/FLXEwcIOco"

54

Rockridgeさんのツイート: "Firefox 54にCSSのtext-justifyプロパティが実装される予定。テキストの均等割り付けが指定できる。参照:https://t.co/h3lxcUTEL8 / “Intent to implement: CSS …” https://t.co/cKZB0RpCC6"
Rockridgeさんのツイート: "Fx54:CSSのappearance:autoとappearance:noneのプロパティをサポート。-webkit-appearanceもエイリアスとして使用可能。参照:https://t.co/EaLwvF2nRE https://t.co/uTCySTdtBy"
Rockridgeさんのツイート: "Fx54:Facebook使用時、CSSアニメーションの非同期処理が行われない場合がある問題を修正。 / “1339578 - OMTA doesn't trigger for 4x4 layers leading to CPU…” https://t.co/olYbboRjDW"
Rockridgeさんのツイート: "Fx54:clip-pathがCSS Shapesの基本シェイプ(basic shape)に対応。参照:https://t.co/Lonr4Gv3B5 / “1247229 - (basic-shape-ship) Ship b…” https://t.co/YyG6Z1RM5A"
CSS Shapes の新しい文法 | Adobe Creative Station

55

Rockridgeさんのツイート: "Fx55:CSSのtext-justifyプロパティがデフォルト有効化。参照:https://t.co/15ge7l04dl / “Intent to ship: CSS text-justify property” https://t.co/DuVp3M8ex2"
Rockridgeさんのツイート: "Fx55:ページ読み込み時に表示されるスロバーがCSSアニメーションを用いることにより別スレッドで処理されるようになった。 / “759252 - Use CSS animations for the loading and c…” https://t.co/6d7Sf4FyQS"
Rockridgeさんのツイート: "Fx55:CSS Variables(CSSカスタムプロパティ)を無効にするための設定が削除された結果、常時有効化された。 / “1312328 - Remove CSS pref "layout.css.variables.e…” https://t.co/ECXb0hrRaG"
Rockridgeさんのツイート: "Quantum CSS(Stylo)はFirefox Nightly 55に投入され、Firefox 57でデフォルト有効化となる見通し。 / “TPE-Layout/Dashboard - MozillaWiki” https://t.co/EYNMjZjLL0"
Rockridgeさんのツイート: "Fx55:"display: flow-root"のサポートを設定から無効にできないようにした。 / “1365163 - Remove the layout.css.display-flow-root.enabled pref…” https://t.co/unD5kcmZNJ"

56

Rockridgeさんのツイート: "Firefox Nightly 56に搭載されているCSS Gridインスペクタの改善点を紹介した記事(動画あり)。レイアウトパネル、ボックスモデルパネルともに直感的な操作を実現した。 / “Powerful New Addit…” https://t.co/GpGO5Ad5ov"
特定のマルチカラムレイアウトで、バランスが崩れたり、ランダムに要素が欠落する場合があります (リグレッション) | Firefox サイト互換性情報

57

Rockridgeさんのツイート: "Fx57:タブの切り替えにCSSのsmooth-scrollを使用し、パフォーマンスを向上させた。 / “1356705 - 28ms uninterruptible reflow at set_scrollPosition@c…” https://t.co/cfBET6gzul"
Rockridgeさんのツイート: "Firefox 57でCSSのfont-displayプロパティがデフォルト有効化へ。Quantum CSSでもfont-displayプロパティは使える(むしろ無効化する設定がない)らしい。参照:… https://t.co/WvgaAElbjI"

58

Rockridgeさんのツイート: "Firefox 58でMedia Queries Level 4のInteraction Media Featuresをサポートする予定。参照:https://t.co/csJc8naMKv / “Intent to imple…” https://t.co/O1WgOBHzri"

59

Rockridgeさんのツイート: "Fx59:CSSのoverscroll-behaviorプロパティをサポート。参照:https://t.co/IBSIGPNiYh / “951793 - Add support for 'overscroll-behavior'” https://t.co/4tqc2LDwZf"
Rockridgeさんのツイート: "Fx59:CSS Shapes Module Level 1の仕様の一部をデフォルト有効化。 / “Intent to ship: CSS Shapes Module Level 1 (partial)” https://t.co/LsAxDiycqd"
Rockridgeさんのツイート: "Fx59:メディアクエリ内でcalc()をサポート。 / “1396057 - stylo: Bring back calc support inside media queries” https://t.co/mwNLdCOmow"
Rockridgeさんのツイート: "Fx59:CSS Gridが常時有効化。 / “1398492 - Remove the "layout.css.grid.enabled" preference” https://t.co/9E9xzYkiE9"

6x

60

Rockridgeさんのツイート: "Firefox 60で、CSS Transform Module Level 2のtransform/rotate/scaleプロパティが実装される見込み。参照:https://t.co/4JIQzJACte … https://t.co/gSjMIshNDI"
Rockridgeさんのツイート: "Fx60:-moz接頭辞付きのtransformプロパティが削除される見込み。 / “Intent to unship: Legacy -moz-transform syntax.” https://t.co/f4cY5j6Xqb"

61

Rockridgeさんのツイート: "::-moz-selection疑似要素のベンダープレフィックスがFirefox 61で外れる模様。参照:https://t.co/3F9Hb7XdKg / “Intent to unprefix: ::-moz-selecti…” https://t.co/kzHjXENxzT"

62

Rockridgeさんのツイート: "Fx62:CSSのshape-outsideプロパティがデフォルト有効化。 / “Intent to ship: shape-outside” https://t.co/9o62gL7bjO"
Rockridgeさんのツイート: "Firefox 62はCSS Shapesをサポートしているので、Web開発者はページ内の画像や文章を複雑な形に配置できる。ウェブ開発ツールのインスペクターにCSS Shapesの編集機能が付いており、直感的な操作が可能。 https://t.co/iFdlODvEXX"

63

Rockridgeさんのツイート: "Fx63:疑似要素だけでなく、通常の要素においても、contentでurlを指定すると画像等を表示できるようになった。WebKit/Blinkとの互換性が向上する。 / “215083 - (content-url-elemen…” https://t.co/Czkndktzpl"
Rockridgeさんのツイート: "Fx63:Windows版で、CSS Media Queries Level 5のprefers-reduced-motionをサポートした。Mac版はFx64がターゲット。参照:https://t.co/Yro7Sk5i2s … https://t.co/LzEKwdlkhy"
Rockridgeさんのツイート: "Fx63:巨大なテーブル要素内に多数の項目があり、display:noneも適用されるという状況において、テキストの動的処理を高速化。 / “1330375 - interleaved innerText calls and d…” https://t.co/asITEbVrBp"
Rockridgeさんのツイート: "Fx63:"white-space: nowrap;"の指定がされていてもfloatとの組み合わせで改行が発生する問題を修正。 / “488725 - float pushed down one line with white-…” https://t.co/1yFTHTce1W"

64

Rockridgeさんのツイート: "Firefox 64では、"-webkit"のベンダープレフィックス付きCSSセレクタが、未サポートのものでもCSSの適用対象となる。参照:https://t.co/Dqlyqvg9cf … https://t.co/ykcLxbsZfj"
Rockridgeさんのツイート: "Fx64:CSSのscrollbar-colorプロパティとscrollbar-widthプロパティをデフォルト有効化。スクロールバーの色や幅を調整可能に。 / “1492012 - Enable scrollbar prope…” https://t.co/4lxs1vMtSx"

65

Rockridgeさんのツイート: "Fx65:CSSアニメーションとCSSトランジションの各処理を非同期化することでパフォーマンスを改善した。 / “1502026 - Buy iPhone page animation seems janky” https://t.co/bl2JCqcGyc"
Rockridgeさんのツイート: "Fx65:border-image-repeat/background-sizeの処理結果について他のブラウザとの互換性を向上させた。 / “1501261 - serialization of border-image-rep…” https://t.co/5LuaicF7sQ"
Rockridgeさんのツイート: "Fx65:-webkit-appearanceプロパティの値としてmeter、progress-barおよびtextareaをサポート。 / “Firefox 65 for developers | MDN” https://t.co/jbtmpUUqhJ"

Twitter

@rockridge07

Rockridgeさんのツイート: "Geckoは1pxを60として整数値でCSSを処理する(浮動小数点を用いない)。計算の途中で小数点の切捨てが入ると、WebKit/Blink/EdgeHTMLとは結果が違ってくる場合がある。 / “How CSS width i…” https://t.co/0e2ZSydzms"
Rockridgeさんのツイート: "FirefoxにCSS Typed OM Level 1を実装することが検討されている。参照:https://t.co/DeMTXH7cPe / “1278697 – Implement CSS Typed OM Level 1…” https://t.co/iknGkA2aoK"
Rockridgeさんのツイート: "ServoがCSSのキーフレームアニメーションをサポート。参照:https://t.co/43IaS3EKtr / “These Weeks In Servo 71” https://t.co/KA3F1pUTdt"
Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について、ブラウザごとの実装状況を示す。2016年8月9日現在、Chromeが先行し、Firefoxが追う状況。それ以外のブラウザは、走り出してもいない。 / “Is Hou…” https://t.co/LmXAUhGvRU"
Rockridgeさんのツイート: "Stylo/Servo/Firefox/ChromeがサポートするCSSプロパティを一覧にまとめて比較できるようにしたもの。StyloはGeckoに実装中のServoのスタイルシステムのこと。参照:… https://t.co/xsIsgOE6f3"
CSS properties list
Rockridgeさんのツイート: "ServoがCSS Gradientsをサポート。Styloを通じてGeckoと処理を比較できるようになった。 / “twis-81” https://t.co/CgDYtxJrop"
Rockridgeさんのツイート: "今後、Geckoに実装される新しいCSS機能は、Servoにも同時に実装される見込み。Quantum CSSへの移行時に機能の減退が起きないようにするための措置だ。 / “Ensuring new CSS features ar…” https://t.co/MnOqG7yqqc"
Rockridgeさんのツイート: "Firefoxでブロックコンテナ一般においてBox Alignmentプロパティ群をサポートする予定。参照:https://t.co/IgjA7cuoW7 https://t.co/vFI22Lz9dF / “Intent to…” https://t.co/gza9TxODbT"
Rockridgeさんのツイート: "GeckoのHoudiniサポートが具体化しつつある。CSS Painting API Level 1を実験的に実装し、利用例やレンダリングパフォーマンスなどを見ていくという。参照:https://t.co/91M9OYIoAS https://t.co/pM0YNq2JTx"
Rockridgeさんのツイート: "-webkit-line-clampプロパティはmax-linesプロパティとして標準化される模様。Mozillaが実装するのもmax-linesプロパティとなる。参照:https://t.co/b8wJQ1O36t 情報提供感謝… https://t.co/P5LnrsQG7R"
CSS Writing Modes ◆ 24 ways
Rockridgeさんのツイート: "clip-pathとCSS Shapesの基本シェイプ(basic shape)を組み合わせることで可能になる様々な表現のデモ。HTML/CSSの内容もCodePen上で確認できる。 / “CSS Shapes, clippin…” https://t.co/zD9YksHWx3"
CSS Shapes, clipping and masking – and how to use them ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "MDN Web DocsにFlexboxの紹介記事が追加された。CSS Gridとの連携・役割分担を意識したものらしい。 / “New flexbox guides on MDN – Mozilla Hacks – the We…” https://t.co/utXJs2Prav"
New flexbox guides on MDN – Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "CSS Box Alignmentのチートシート。解説はこちら。https://t.co/tnqYqdwKFI / “CSS Alignment Cheatsheet” https://t.co/9QHqvRj5qo"
Demystifying CSS alignment – Patrick Brosset – Medium
CSS Alignment Cheatsheet
Rockridgeさんのツイート: "CSS GridとCSS Multi-Columnsを組み合わせると、ユーザーのディスプレイサイズに応じた柔軟なデザインが可能になるという話。 / “CSS Grid + CSS Multi-Columns = ♥ – Patr…” https://t.co/lkgJNfvBZq"
Rockridgeさんのツイート: "Mozillaが2018年にCSS関連で注力する分野。Fonts Level 4/Motion Path/Sizing/Shapes/Scroll Snap update/Containment/Values and Units … https://t.co/X33BKsMzfE"
Rockridgeさんのツイート: "FirefoxがサポートするCSSプロパティの数について。2004年のFirefox 1.0当時は100に満たなかったが、13年を経た現在、300近くになっている。 / “Florian Scholzさんのツイート: "CSS …” https://t.co/Lk8dLVcMUf"
Rockridgeさんのツイート: "CSS GridをWebアプリのUI構築に使えば、Flexboxよりも簡潔なコードで済むという話。 / “CSS Grid for UI Layouts – Mozilla Hacks – the Web developer b…” https://t.co/OKk1OMmK5K"
Rockridgeさんのツイート: "FirefoxでCSS subgridの実装を開始。グリッド内に子グリッドを設定可能になるらしい。 / “Intent to implement: CSS subgrid” https://t.co/yNqUTod369"

chikoskiさんのツイート: "Firefoxの新しいCSS処理系(stylo)の話。@linclark の記事はいつも素晴らしい。簡潔で、わかりやすくて、ユーモラス。https://t.co/sXkeAgoE6O"
Inside a super fast CSS engine: Quantum CSS (aka Stylo) ★ Mozilla Hacks – the Web developer blog
Mantaroh@media=printさんのツイート: "私も先ほどソースを見て初めて知った。edge と unwriteable は 1/00 インチで指定されてるんだ・・・一方 margin は普通にインチ指定・・・謎だろ"
mozmm CSS 単位への対応が打ち切られました | Firefox サイト互換性情報
Mantaray@Devさんのツイート: "Jen Simmons 氏による CSS Grid の御法度。 https://t.co/qdtv4Sj8cd"
9 Biggest Mistakes with CSS Grid – Mozilla Hacks – the Web developer blog
Makoto Kato ︎︎さんのツイート: "最近聞いたものの中で最も...なやつがautolandに入った https://t.co/rlIKrMdUaI overflow:hidden;はviewportの存在次第で無視されるというWebKitとBlinkの変な動作に合わせる話。それどうかと思うけどこの変な動作に依存するサイトが多すぎるからその動作にせざるを得なくなった"
1423013 - Content that overflows the ICB on an overflow:hidden page is "out of reach"
Šime Vidasさんのツイート: "Do you find scroll chaining annoying? There’s a simple way to prevent it. Apply this CSS to the nested scroll container (or <body> of iframed document): { overscroll-behavior: contain; } More info: https://t.co/GcQPXcysqe… https://t.co/DmFSu45RRx"
なかのん&マジックさんのツイート: "Firefoxはかなり昔からスクロールターゲットをタイムアウトするまで変更しないようにしてこの不快な動作にならないようにしてる。カーソルがドラッグ開始するだけの距離動くとキャンセルされるけど。"
なかのん&マジックさんのツイート: "それにしても、スタイルシートにしちゃうの違和感あるな。ime-modeと一緒で。ユーザースタイルシートでコントロールできるのは理にかなってるけど。"

CSS で計算(四則計算)が行える calc() 関数を使ってみよう | WWW WATCH
CSS - MozillaWiki
won't fix: Quantum CSS (Stylo)
CSS Grid and Grid Inspector in Firefox — Mozilla
区分分断の変換規則(2017/4/25 追記アリ) - おいしい
Supporting Referrer Policy for CSS in Firefox 64 | Mozilla Security Blog

Google

Rockridgeさんのツイート: "Chrome 52がサポートするCSS Containmentは、ブラウザによるスタイル/レイアウト/描画の処理が行われる範囲を開発者が限定できるようにするもの。適切に使えばWebページの表示速度が大きく改善される。 / “CS…” https://t.co/bE2A13RlP3"
Google Chrome、ウェブページを高速表示する新機能などを実装へ -INTERNET Watch
WebAssembly実装プレビュー、Chrome 49新機能など─2016年3月のブラウザ関連ニュース振り返り | HTML5Experts.jp
Google Chrome 34リリース、レスポンシブイメージのサポートなどが追加される | OSDN Magazine
“CSS Motion Path”が初期状態で有効化された「Google Chrome 46」がベータ版に - 窓の杜
[Backspace]キーで前のページへ戻る機能を削除した「Google Chrome 52」が正式版に - 窓の杜
Rockridgeさんのツイート: "Chrome 56でposition:stickyを改めてサポート。なお、Firefox 32でサポート済み。 / “position:sticky is back in Chrome  |  Web  |  Google De…” https://t.co/dlIczTg4kb"
Google Developers Japan: Chrome 52 ベータ版: CSS Containment、よりシンプルなパフォーマンス評価、Service Worker からのレスポンスのストリーミング、豊富な Web Push オプション
Google Chrome 56 から、position: sticky;のフラグなしサポート開始 | フロントエンドBlog | ミツエーリンクス
「Google Chrome 57」ベータ版が公開、“CSS Grid Layout”をサポート - 窓の杜
“CSS Grid Layout”をサポートした「Google Chrome 57」が正式版に ~脆弱性も修正 - 窓の杜
本の虫: Blink、新機能に対して新たなベンダープレフィクスを追加しない決定
“マテリアル”になった「Google Chrome 69」がベータ版に ~「AV1」動画もサポート - 窓の杜
なかのん&マジックさんのツイート: "たまにChromeで表示確認しようとすると、CSSのキャッシュ捨てなさすぎやろって思うんやけど、常用してて、更新されたサイトのレイアウト崩れるとかないんかな??"
白鷹(しろたか)🦅さんのツイート: "devツールを開いて更新ボタンを長押ししてキャッシュを除くが開発のときは面倒でなくて、一般にリリース時は適当なリクエストパラメータを与えてそれを更新することで対処するんです… "
なかのん&マジックさんのツイート: "リクエストパラメーターとは?… "
白鷹(しろたか)🦅さんのツイート: "こんな感じで .css?XXXX 他にもwebpackでビルドすると生成されるファイルがランダムなハッシュっぽいファイル名になるので全く考えなくてよかったり… "
なかのん&マジックさんのツイート: "あーなるほど。… "
CSSカスケードレイヤーをサポートした「Google Chrome 99」が安定版に - 窓の杜
「Chrome 99」でCSSカスケードレイヤー対応。入力要素の新しいメソッド実装も - PC Watch
Google Chrome 99安定版リリース、CSSの優先順位を分かりやすく指定できるカスケードレイヤーをサポート開始 - GIGAZINE

Apple

Rockridgeさんのツイート: "次期Safari 10.0がCSS Font Loading API/WOFF 2フォント/CSSのunicode-rangeデスクリプタをサポート。Firefoxでは全てデフォルト有効化済み。 / “Improved Font…” https://t.co/0EMSLAoG5R"
Rockridgeさんのツイート: "次期Safari 10.0がCSS Color Level 4のcolor-gamutメディアクエリをサポート。sRGBを超えた色空間を生かせるらしい。 / “Improving Color on the Web | WebKit” https://t.co/ykHUviojgZ"

MS

Rockridgeさんのツイート: "Windows 10 Creators Update後のMicrosoft EdgeはCSSカスタムプロパティをサポートしている。 / “CSS Custom Properties in Microsoft Edge - Mic…” https://t.co/YJDjAHBBdG"
Rockridgeさんのツイート: "Microsoft Edgeのバージョンアップにより主要なブラウザすべてがCSS Gridをサポートするようになった。約20年前からグリッドレイアウトの構想はあったが、現在の仕様の始まりは、IE10に実装されたGrid Layou… https://t.co/erbLdAXv3O"
TOYAMA Naoさんのツイート: "Edge 15 から CSS の text-combine-upright プロパティに対応したそうだけど、(IE 時代からの -ms-text-combine-horizontal 含めて) 1em より幅の狭い文字を 1em まで引き伸ばしちゃうのはなんなの? https://t.co/HNu0Xkfxwc の「4」とか Edge だと引き伸ばされて不格好に見えるんだけど。"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/9qlLAYHQ9p"
Microsoft、折りたたみ式・2画面デバイス向けの新しいJavaScript/CSS機能を発表 - 窓の杜
「Microsoft Edge 98」が安定版に ~オーバーレイスクロールバーのフラグを追加 - 窓の杜

W3C

Cascading Style Sheets
CSS current work & how to participate
CSS Grid Layout Module Level 1
CSS Text Module Level 4
CSS Text Decoration Module Level 4
CSS Color Module Level 3
Exploring CSS property definitions | W3C Blog
CSS Fonts 3 is a W3C Recommendation | W3C Blog
W3C Strategic Highlights: Strengthening the Core of the Web (CSS) | W3C Blog

CSS Object Model (CSSOM)

CSS Object Model (CSSOM) (日本語訳)
オブジェクト モデルの構築  |  Web  |  Google Developers
CSS Object Model - Web API インターフェイス | MDN
CSSOM
CSS Object Model (CSSOM)
CSSOMとパフォーマンス - Qiita

HTML4・CSS2

CSS 2.1仕様 日本語訳 EPUB版 - 達人出版会
CSS2 の CSS1 からの変更点 - CSS Dencitie
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
(メモ)CSS 2.1の更新版のなまえ - 水底の血

HTML5・CSS

ここ数年のブラウザのデフォルトスタイルシート。縦書きとかHTML5とか。|Web Design KOJIKA17
HTML Standard
HTML Standard — Rendering(日本語訳)

CSS Fonts Module Level 4

謎のCSS総称フォントファミリーfangsongについて - 水底の血
日本語向けフォントスタックの現状 - yuhei blog
CSS Fonts Module Level 4
宋朝体 - Wikipedia

CSS in JS

Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
Reactと一緒に使う時のCSS in JSのライブラリ選定とか所感とか - Qiita
CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
JSS
All You Need To Know About CSS-in-JS – Hacker Noon
CSSinJS
MicheleBertoli/css-in-js: React: CSS in JS techniques comparison
CSS in JS - Material-UI
SPAにおけるCSSについて、ひとつの解 - エンジニアをリングする
Comparing CSS in JS Libraries

Source Map

SassのデバッグにSource Mapsを使うべきたくさんの理由 - ROCHAS
CSSのSource Map - ウェブログ - Hail2u.net
sourcemap: 圧縮されたJSやCSSと圧縮前のコードの対応関係情報を持ったファイル - general
gulp で、CoffeeScript をコンパイルして concat して SourceMap 出力して SCSS もコンパイルして
sourcemap を使いたい - Qiita
Introduction to JavaScript Source Maps - HTML5 Rocks
多段SourceMapの対応方法とライブラリ | Web Scratch
多段SourceMapとASTの現状について話してきた | Web Scratch

Normalize.css

Normalize.css: Make browsers render all elements more consistently.
[CSS]CSSリセットとは異なる、Normalize.cssの特徴や使い方などの解説 -About normalize.css | コリス
normalize.cssで使用されている各スタイルがどのように機能しているか解説 | コリス
Normalize.cssを使ったコーディングの注意点とリセットCSSとの違い | Cappee Design
なぜリセットではなく Normalize.css を使うのか
Normalize.css v4.0.0 変更点まとめ - Qiita
【CSS】Reset CSSやNormalize.css…。CSSリセットは何を使うべきか比較してみた | unitopi - ユニトピ -
Bootstrap v4で追加されたRebootというスタイルシートを見てみる | フロントエンドBlog | ミツエーリンクス

Sass

Sass - Wikipedia
Sass (stylesheet language) - Wikipedia
爆捗! WordPressテーマ作成ショートカット(3):CSSコーディングで泣かないためのSassの基礎知識と10の利点 (1/3) - @IT
これからSassを始めたい人へ!導入手順をまとめてみた(Dreamweaver対応) | 株式会社LIG
CSSのメタ言語Sass(SCSS)、LESSの完全入門 - Qiita
CSSを超効率化する!SASSの基本と導入方法まとめ | Tech2GO
サンプルソース | Web制作者のためのSassの教科書 - 公式サポートサイト
Sass(SCSS)は難しくないよ!私なりの使い方をご紹介! | Tips Note by TAM
とほほのSass入門

Compass

CSS書くならCompass使った方がいいよ。SASS使ってる人なら特に。

Enduring CSS

さねさねさんのツイート: "僕はCSS全く得意ではないんですが、CSS設計は色々あった結果、Enduring CSSみたいな思考法でBEMしてblockとReact類のcomponentを1対1させるのが、勝ちもしないけど負けもしなくていいのではないかと思うようになって来ました"
さねさねさんのツイート: "BEMで概ね完成系に至っていると思うので、CSS in JSは好きではない"
さねさねさんのツイート: "FLOCSSみたいな分け方してBEMっぽいことしてEnduring CSSですよ!"
さねさねさんのツイート: "勝つためのベストプラクティスよりも負けないためのアンチパターン避け技能ですよ"
Enduring CSSの設計思想 | CodeGrid
連載 | Enduring CSS | HTML5Experts.jp
最強のCSS設計()のヒントになりそうな考え方いろいろ - Qiita
ECSSの概要と考え方のまとめ - Qiita
【CSS】ECSSまとめ
Enduring CSS
Enduring CSS - by Takazudo

cssdb

cssdb
csstools/cssdb: A database of staged CSS features
PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita

POSTD

CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | プログラミング | POSTD
CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | プログラミング | POSTD
あなたはCSSプロパティ”display”をどのぐらい知っているだろうか? | デザイン | POSTD
CSSになり損ねた言語たち | デザイン | POSTD

Qiita

最低限知っておくべきCSSの基礎 - Qiita
CSS設計の基礎概念 - Qiita
html floatの基本 高さを認識させる - Qiita
QiitaのCSS構成2016 - Qiita
新しめのCSS設計まとめ 〜2016年冬〜 - Qiita
2018年のfont-family指定 - Qiita
CSS界隈は今どうなっているのか、そこで素人な私が思ったこと - Qiita
ページ表示を速くするCSSの記述方法 - Qiita
CSSアーキテクチャについて軽くまとめてみた - Qiita
ぼくの辿り着いた濃いめのtext-shadow - Qiita

Wikipedia

Cascading Style Sheets - Wikipedia

Twitter

その他

Kazuho Okuさんのツイート: "<link rel=preload as=style href=foo.css onload="this.rel='stylesheet'"> で優先度の低いCSSを遅延適用できるのか。なるほどー"
積炭酸さんはTwitterを使っています: "なので例えば10ptと指定しても、画面上のサイズが10pt≒3.5mmで表示されるわけではなく10ptを96dpi換算して13.3ピクセルが適用される。1ピクセルがどのくら
魔法の蒸留水さんのツイート: "ここにサンプルがあるから勉強できそう https://t.co/0X1EVnTUbS #html5jplat"
いいかんじ💯さんのツイート: "もうSafariとChromeはCSS的には全く別物と割り切って書いた方が良い、という事を再確認した夜であった (initial キーワードの解釈が違うとかそんな…)"
Teppei Satoさんのツイート: "またApple独自仕様!IEか!と言われてるけど viewport-fit=coverは元々LG陣営がCSS Round Displayとして標準化を進めてたのね https://t.co/9wbX69p7tM constantは提案中"
CSS Round Display Level 1
鹿野壮@CSSNite・frokan登壇さんのツイート: "Edge 15まではGridの古い仕様のみ対応し、ベンダープレフィックスも必要だった。 16ではChrome等他ブラウザと同じGridの仕様に準拠、プレフィックスも不要に。 Gridが全モダンブラウザで使える時代に。 https://t.co/eNiEk1zVqx #css https://t.co/t3Ao8dkHaV"
Tsukasa #01 [要出典]さんのツイート: "ふむ。等幅フォントの幅を CSS で指定する場合には、ch 単位 ("0" の横幅) が有用そう。"
Tsukasa #01 [要出典]さんのツイート: "ちなみに、全角幅については CSS4 のモジュールでは "水" 字の幅を示す "ic" 単位が追加予定らしい。"
Jen Simmonsさんのツイート: "According to Can I Use (and Stats Counter), global support for CSS Grid (unprefixed) now at 84%. Support for Flexbox at 94%. 84% to 94% #timetolearncssgrid… https://t.co/Kw0UdsVXzA"
Fadisさんのツイート: "画面の端の方が削れていて見えない機器が増えてきた事を受けて、CSSに「この画面四角い?」「見えないかもしれない領域も表示に使って」「見える領域に沿ってコンテンツを配置しろ」「枠線を画面の形に合わせろ」をやるための仕組みが提案されているらしい https://t.co/mBCqyjUrQt"
CSS Round Display Level 1
渡久地 信之さんのツイート: "flex,CSS3から使えるけどバグも多いのでアレ(主にIE11)"
MDN Web Docsさんのツイート: "break-before, break-after, and break-inside are implemented in Firefox 65, and the legacy page-break-* properties now alias to them. For example, see: https://t.co/c5w6HzjP3X"
break-before - CSS: Cascading Style Sheets | MDN
池田 泰延 / JSコードレシピ集を書きましたさんのツイート: "CSSのFlexbox使いがfloatを老害とdisって話題になってますが、CSS Gridの便利さはもっと知られていいと思う。 display: gridだとメディアクエリーすら書かずに4行でレスポンシブ対応できて超便利。… "
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「Tailwind CSS 本当に最高。今までWebのデザインがまるでできなかったのは、Bootstrap みたいなフレームワークはカスタマイズしようとするとフレームワークの知識が不可欠だけど汎用性なくてやる気出ないし、生でCSS書けるほど要素に詳しくなれない。そのちょうど間。」 / Twitter
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「程よく生のCSSだけど、あれを変えるのにどの要素だっけ?って考えなくてもクラスから探せばいい。色やサイズも荒い粒度でデフォルト提供されてるので、ちょこちょこいじるのも簡単。」 / Twitter

文字列選択ブロック

tkr@受験なので低浮上さんのツイート: "文字列選択出来ないサイトあったからJSブロックしたのに選択出来ないんだけどどういう仕組みだ"
tkr@受験なので低浮上さんのツイート: "これ入れたら出来た… "
user-select - CSS: カスケーディングスタイルシート | MDN

縦書き

TOYAMA Naoさんのツイート: "Edge で文書全体を縦書き表示にすると、JS で取得するスクロール位置の方向も入れ替わってしまう。pageXOffset プロパティなのに y 軸方向の長さが返ってくるとはいったい……。 https://t.co/obhVdpshIU"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/t93Ey12WKj"
TOYAMA Naoさんのツイート: "CSS で縦書きの機運が高まっているそうだけど、ちょっと触るだけでぽろぽろとブラウザ間の挙動の違いが見つかる (実装のバグも、仕様に明記されていない点も)。そういうのを片っ端からブラウザベンダに報告していけば、2 年後くらいにはだいぶ相互運用性を保てるようになっているのでは。"
なかのん&マジックさんのツイート: "だいたい、私の関わった仕様、実装し出すと、これどーすんの?みたいなのを大量に見つけてやりとりすることになってる。実際に複雑なケースを書く、Web開発者さんならなおさら見つけるだろうなと。本当にバグ報告しないと、仕様も実装も前進できないので損するのはWeb開発者さん自身ですよ、と。"
TOYAMA Naoさんのツイート: "CSS での縦書き表示、Edge は IE 時代からの縦書き最古参だけあってかつて検討された挙動 (logical value と physical value の読み替えや orthogonal flows の扱いなど) をいくらか残している、Chrome は描画が乱れることがあるが LayoutNG の導入に従い Canary ではかなり改善、"
TOYAMA Naoさんのツイート: "Firefox は最後発だけあって安定した挙動、あとは principal writing mode を body 要素から取れるようになれば ( https://t.co/6N1lWeRIQq ) ほぼ問題なしではといった印象。"
TOYAMA Naoさんのツイート: "……と言ったけど、Chrome はフォームコントロールの扱いや、orthogonal flows と絶対配置の組み合わせでの位置のずれ、Firefox は flexbox との組み合わせ (Nightly では修正済み) など、穴はいくらでもありそう。"
なかのん&マジックさんのツイート: "そこまでやってる人は皆無だろうけど、ブラウザにバグられてては困るケースは、web platform testを書いて、いずれかのブラウザベンダ経由で登録するってのはかなり有効かつ、みんなが幸せになれる方法。ブラウザの開発時に自動テストで走らせるからね。"

text-decoration-skip

ながしまきょうさんのツイート: "Chrome 57でtext-decoration-skip: ink実装、フラグなしになったけど、まだダメそうw https://t.co/2I8owNAYqc https://t.co/6H5Rk7F1m7"
なかのん&マジックさんのツイート: "Chromeはこれ、改善してからデフォルト有効にしたのかな?"
なかのん&マジックさんのツイート: "Canaryでうちの日記を表示してみたけど、下線の表示、微妙だな……あんまし綺麗に見えない……"
なかのん&マジックさんのツイート: "なんか、下線がちぎれてるっていう印象で綺麗に見えない…… Google Chromeの新しい下線表示 (text-decoration: underline; text-decoration-skip: auto;)。 https://t.co/UDKf7vOEKX"
なかのん&マジックさんのツイート: "Chromeの新しい下線表示のサンプルで見ると綺麗なんだけど、フォントや文字列によっては綺麗には見えないっぽいので、なんか微妙だなぁ。サンプルだけ見ると、Geckoもやらないとって思えるけど(私はやる時間全くとれないけど)。"

@chikoski

chikoskiさんのツイート: "CSSにはwriting-modeという属性があります。これを使うと文字の方向をコントロールして、雑誌のような文字組みができます。雑誌記事を例に、文字組みを解説した@jensimmons による記事が公開されました:https://t.co/8AUMzTe0El"
chikoskiさんのツイート: "属性ではなく、プロパティというのが正しい言葉でした。訂正させていただきます https://t.co/nKtFJOEZFX"
chikoskiさんのツイート: "CSSGridでは列や行、セルに名前をつけて、その名前を使ってレイアウトできるのか。便利 #html5jplat"
chikoskiさんのツイート: "たて、よこが混じる写真リストの実装も簡単にできるのはよいなー #html5jplat"
chikoskiさんのツイート: "GridとFlexboxとの関係について。Flexboxは1次元のレイアウトに関する仕様で、Gridは2次元。 #html5jplat"
chikoskiさんのツイート: "Gridもアニメーションと組み合わせてつかえるのか。おもしろいことできそう感 #html5jplat"
chikoskiさんのツイート: "Gridはほとんどのブラウザでサポートされてるけど、サポートしてるかどうかはCSS feature query使えばできる。 #html5jplat"
Kinuko Yasudaさんのツイート: "Chrome Canary から <body> 以降にロードされる stylesheets はそこまでのレンダリングをブロックしなくなります。critical じゃない CSS はそうするべし thanks to @patmeenan!… https://t.co/S8UdQOv55B"
Yoav Weissさんのツイート: "Yay! @patmeenan landed sane CSS loading behavior in Chrome Canary. Now you can load non-critical CSS in the <body> and it won't block rendering of everything above it!!… https://t.co/i5TXiwTKkD"
Patrick Meenanさんのツイート: "FYI, as of today's canary it is enabled by default and should ship in 69.… "
chikoskiさんのツイート: "ということは、特定のビューコンポーネントにのみ効くスタイルシートは、bodyタグの中でリンクすると全体のレンダリングスピードを上げやすくなる、ということかしら。… "
chikoskiさんのツイート: "むしろページ全体のレイアウト、例えばグリッドレイアウトの場合だと、グリッドの設定とハイレベルな要素のグリッドへの割付に関するcssだけをheadタグの中でリンクするようにした方がいい、ということになったりしないかな。https://t.co/NHt3SHVwcA"
The future of loading CSS - JakeArchibald.com
chikoskiさんのツイート: "そのページで使われているコンポーネントを調べ上げて、それぞれで必要なCSSをまとめ、linkタグを適切に生成するようなツールがあるとうれしかったりするかもなー。link要素のDOMへの追加をアプリの状態遷移に合わせて行いつつ、SWつかってキャッシュしたりするとさらに嬉しいかもしれない。"
chikoskiさんのツイート: "以上、妄想終わり。"

@rockridge07

Rockridgeさんのツイート: "CSSが統一的な仕様を提供したのは2.1までで、それ以降はモジュール化の方向に舵を切ったので、CSS3という呼称はLevel 3モジュールの総称にすぎない。なので将来的に規格としてのCSS4が出ることもない。 / “Why th…” https://t.co/kmwXvTZ0Rl"
Rockridgeさんのツイート: "CSSの-webkit-line-clampプロパティは、複数行でも3点リーダーを聞かせることができるが、現状および今後のWebブラウザでのサポートが望めないため、使わないほうがよいとのこと。 / “CSS の -webkit-…” https://t.co/35EFOz9ZO0"
Rockridgeさんのツイート: "CSS Gridを学ぶのに適したWebサイトなどを列挙している記事。 / “Learn CSS Grid | Jen Simmons” https://t.co/Cs3dfjZQ9B"
Rockridgeさんのツイート: "Webドキュメントにスタイルルールを適用する方法を巡る議論について。CSSは「壊れ」てはおらず、 CSS Object Model(CSSOM)のようにJavaScriptで制御するやり方は、Flashやフレームに対するのと同じ違… https://t.co/Et93e8Gq2o"
Our (css) discussion is broken - otsukare
Rockridgeさんのツイート: "CSS Gridレイアウトのチュートリアル。豊富な使用例が掲載されている。 / “Grid by Example” https://t.co/nOYAQjQGy2"
Grid by Example
Rockridgeさんのツイート: "CSS Gridを段階を追って解説。申し訳程度にFirefoxの開発ツールの利用をアピールしているが、利用していなくても問題なく読み進められるようになっている。 / “CSS Grid PlayGround | Terminol…” https://t.co/QXFvy7Mv4I"
Rockridgeさんのツイート: "ベンダープレフィックスのないborder-imageプロパティを指定するときは、末尾に「fill」のキーワードを指定することが、Web互換性の観点から重要とのこと。 / “How To Fix border-image in y…” https://t.co/5pVSvjV700"

@shibu_jp

渋川よしきさんのツイート: "resizeってのをCSSで指定したら、flexbox使ってCSSだけ使ってリサイズ可能パネル作れるの・・・CSS複雑すぎでは・・・CSSエンジンのプログラマーみんなストレスで禿げてるでしょ。絶対。"
渋川よしきさんのツイート: "うーむ。resize + flexbox、うまくいかんな。専有可能な幅100%をA/Bのパネルでわけあって、AとBの間をドラッグでリサイズできるようにしたいけど、広げちゃうとドラッグできない。"
渋川よしきさんのツイート: "CSS Houdiniでページネーションの実装ができて、それがいろんなepubリーダーで使われるようになって品質が安定化したら世の中平和になる"
渋川よしきさんのツイート: "flexbox使ってヘッダー固定で中部分だけスクロールとかしているページ、そのまま印刷してもページの一部しか出力されないのか。@media printの時は全部伸ばす、みたいなスタイルあてないといかんのかな・・・"

どのCSSプロパティが世の中のWebサイトでよく使われているのか? マイクロソフトがクローラーから得た統計を「Global CSS Property Usage」として公開 - Publickey
CSS usage on the web platform - Microsoft Edge Development
コンポーネントベースのアプリケーションのためのCSSアーキテクチャ
CSSの進化がすごすぎる!新しいレスポンシブデザインの実装方法を解説 | コリス
position - CSS: カスケーディングスタイルシート | MDN
Markdown の Table 記法を CSS で実現する | blog.jxck.io

Acid1

Acid1 - Wikipedia
display/box/float/clear test
CSS1 Test Suite: 5.5.26 clear
sec5526c.gif (531×501)
Shiki’s Weblog: ESウェブブラウザ通信 - Acid1テスト
CSS1 Test Suite
CSS1 テストスイート

Twitter

if

Takeshi Kano 鹿野 壮さんはTwitterを使っています 「いま、CSSでif文の議論がされている。 Sassではなく、CSS。 アツい✨ W3C csswg-drafts https://t.co/anqUMZ8mwC 解説 https://t.co/oS31VQ7qDt #CSS https://t.co/xKaMcHsONy」 / Twitter
[css-variables?] Higher level custom properties that control multiple declarations · Issue #5624 · w3c/csswg-drafts
The future of CSS: Higher Level Custom Properties to control multiple declarations – Bram.us

渋川よしきさんのツイート: "CSS難しいなぁっていつも思うんだけど、例えば、特定の要素を右寄せにするときに、その親側にも手を加える必要がある、というのに気づくのに時間がかかったり、やりたいことの実現のための影響範囲とかのイメージが直感的につかないのが原因だろうな、というのは想像がついている。"
shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
成瀬さんはTwitterを使っています 「@shinh っ XSLT」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@nalsh はい。それは僕の世界観では、失敗作ですね。。もちろん、XSLTによってたくさんの研究が…みたいなことはあるんでしょうし、その価値を否定するものではありません。というかXSLT自体は良いと思います。ただまあ、使いやすいものではないですよね。僕が今欲しいのは使いやすいものなのです」 / Twitter
ドッグさんのツイート: "Mozilla が Firefox の CSS プロパティ適用部分を Rust で書き直して分かったことの要約.実際のセキュリティバグなどの実例付きで分かりやすい | 'Implications of Rewriting a Browser Component in Rust' https://t.co/lstcxb5nI2"
Implications of Rewriting a Browser Component in Rust - Mozilla Hacks - the Web developer blog
ドッグさんのツイート: "Rust の静的なメモリ安全性のチェックや整数オーバーフロー,未初期化変数チェック,標準で提供されるより良いデータ構造などで(by design で)セキュリティリスクは減るのは間違いないけど,やはりロジックによるリグレッションバグは入ってしまうという話で,まあそれはそうだろうなぁ"
ドッグさんのツイート: "データ競合とか並列処理周りのバグがどうだったのかは気になるけど,Mozilla は以前 CSS プロパティ適用の C++ コードを並列にしようとして失敗してるので,そこは C++ との比較はできないのかな"
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Inactive CSS、「なぜその指定が反映されないのか」を教えてくれるWeb Inspectorの新機能。これにかかると自分がいかにてきとうに「とりあえず全部書いとけ」でプロパティを書き連ねてるかがバレてしまう……」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Webのレイアウトの歴史、HTMLべた書きからtableを経てCSS float、その先のflexboxまで来たけど、いずれも「そこに置かれる物」が基準のレイアウト手法だった。CSS gridは「入れ物」基準でレイアウトを決める。なるほど、そう考えると理解しやすくなる気がする。」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「グリッドレイアウトのためだけにdivにphysicalな名前を付けなくてもよくなるの、福音だ……べつにできることは変わらなくても、自分がああいう汚いコード書かなくてよくなるのは嬉しい」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「予期せぬ横スクロールが発生した時は、 * { outline: 2px solid red; } のCSSがオススメ。 どの要素がはみ出ているか、視覚的に分かりやすくなります。 #CSS https://t.co/7tmefEDCvx」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「補足として、わざわざCSSに記述して更新しなくても、デベロッパーツールでCSSを追記すればその場で分かります。」 / Twitter
ドッグさんはTwitterを使っています 「HTML 内の要素に意図したスタイルがついてるかをある程度静的にチェックする方法無いのかな.JS に対する TS みたいにスタイルの制約を書きたい」 / Twitter
渋川よしきさんはTwitterを使っています 「Tailwind CSSの使い所、よくわからんなー、と思っていたけど、デザイナーが絵のみを作る、HTMLとCSSはプログラマー、という役割分担だと便利と聞いてなるほど、と思った。CSSまでやってくれるならCSS in JSが便利と。」 / Twitter
渋川よしきさんはTwitterを使っています 「Figma to Reactとかも出てきたし、ZeplinとかもCSS出してくれるし、DCCツール直結な世界が数年後の世界な気はするが。」 / Twitter
うしろのこさんはTwitterを使っています 「擬似要素とかにも対応しててすごいしちゃんとクラスとして機能させてるのもすごいのでやっぱすごいになった https://t.co/lMyl2JwH41」 / Twitter
Tailwind CSSからクラス名覚えにくさを消したらどうなる? こうなった
うしろのこさんはTwitterを使っています 「これstylexとの差が生cssかオブジェクトなのかくらいしかなさそうだが…」 / Twitter

Cascading Style Sheets, level 1
カスケーディングスタイルシート第1水準
CSSのカスタムプロパティ - Google 検索
Cascading Style Sheets, level 1
CSS1 Table of Contents
全文翻訳 Cascading Style Sheets, level 1
REC-CSS1 邦訳
REC-CSS1 邦訳
Cascading Style Sheets, level 1(jp)
LibCSS | CSS Library
Katana-parser by hackers-painters
hackers-painters/katana-parser: A CSS parsing library in pure C99
Shiki’s Weblog: ESウェブブラウザ通信 - escort バージョン 0.3.1 公開
Shiki’s Weblog: ESウェブブラウザ通信 - CSSの実装のバグを見つけてから直すまでの手順
CSSパーサを作ってみた(簡易版) - jsdo.it - Share JavaScript, HTML5 and CSS
CSS文法の基礎 | CSS入門編
少し高度なCSS文法: 子孫セレクタ | CSS中級編
構文 - CSS | MDN
@charset - CSS | MDN
W3C CSS 検証サービス
CSS Injection (+ Recursive Import) の原理と攻撃手法およびその実装について - Szarny.io
Multiple-column Layout and column-span in Firefox 71 - Mozilla Hacks - the Web developer blog
Addy OsmaniさんはTwitterを使っています 「Tip: @ChromeDevTools has a CSS Shadow Editor! https://t.co/owHnenrEt3」 / Twitter
いもすさんはTwitterを使っています 「10年ぶりにCSSを真面目に触ったら、パズルゲーム要素が激減していてびっくりした。box-sizingのサポートは当然だし、CSS変数にvw/vhの単位系も使いつつcalcで大きさの制御もできるの攻略簡単すぎでは?とか言いつつ10年前に作った古代感漂うホームページを今風にリニューアルする作業に苦心している。」 / Twitter

CSS Houdini

CSS Paint API

Houdini Paint API | blog.jxck.io
CSS Paint APIでJavaScriptからCSS用のグラフィックを動的に生成する
どんな背景でも自由に描ける! CSS Paint APIの使い方 - ICS MEDIA

CSS Layout API

なかのん&マジックさんのツイート: "え、DOMでaccsessibleにしちゃうの? / CSS Layout API Level 1 https://t.co/qnN6yFn8IA"
CSS Layout API Level 1

スライド

CSSの嫌なところを解決できる(かも)。そう、CSS Houdiniならね 20170825 we are_javascripters@1…
Webと出版と、CSSの未来の話
Houdini: Abracadabra CSS // Speaker Deck
HoudiniによるCSS錬金術 - Speaker Deck

blog

CSS Houdiniを味見する | Kabuku Developers Blog
CSS Houdini をつかってキミだけの最強レイアウトを組み立てよう! - めろたんのアレ
CSS Houdini / CSS Working Groupミーティングに参加しました
未来のCSSを先取るHoudiniとは?それは魔法である! - Mercari Engineering Blog
Houdini、それはCSSの進化を促すプロジェクト - The future starts today
Houdini – CSS の秘密を解き明かすもの  |  Web  |  Google Developers

GitHub

Home · w3c/css-houdini-drafts Wiki
w3c/css-houdini-drafts: Mirror of https://hg.css-houdini.org/drafts

Twitter

Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について。Worklets/CSS Painting API/CSS Layout API/CSS Typed OM/CSS Properties and Valuesなど。 https://t.co/iAfHIEU9cW"
DasSur.ma – New ways to make your web app jank with Houdini – An introduction

CSS-TAG Houdini Editor Drafts
Houdini Spellbook
CSSのHoudiniとは何者か - Qiita
Re: 両側ルビのときの行間 from Koji Ishii on 2020-02-07 (public-i18n-japanese@w3.org from January to March 2020)
CSS Layout API Level 1
CSS Houdini - 開発者ガイド | MDN
CSS/Houdini - MozillaWiki
CSS Layout API (Houdini) - Chrome Platform Status
CSS Layout API で Masonry Layout | blog.jxck.io
CSS Grid Layout Module Level 3
CSS Grid Layout Module Level 3
CSS Grid Layout Module Level 3

事前レンダリング

事前レンダリングでウェブページの表示時間を高速化 | 海外SEO情報ブログ
事前レンダリングでページ遷移した時の表示速度を爆速にする | TechMemo
ワードプレスに prerender を設定して事前レンダリングで高速化 | q-Az
ウェブサイトで事前レンダリングする方法: 小粋空間
事前レンダリング
Web サイトの事前レンダリング
キャッシュと事前レンダリングの比較
IBM Knowledge Center

高速化

Mozilla

Project Fission

なかのん&マジックさんのツイート: "FirefoxもFissionが入ると「コア数が正義」になるので、今、価格を理由にコア数を諦めるのはおすすめできないですね。デモによるとCNNのトップページのロードでcontent processが14個も作られていた。どんだけ今のWebは汚れているんだ……"
なかのん&マジックさんのツイート: "もちろんドメインごとにcontent processが分けられるという話なので、ニュースサイトを開く度にそれだけのプロセスが生成されるわけではないですよ。"
なかのん&マジックさんのツイート: "あと、それぞれがフル稼働するわけでもないです。例えば広告の<iframe>とか。ただ、メモリはどうしても消費量爆上がりでしょうね。content process一個あたりの基本使用量は割とがんばって半減してるとはいえ。"
なかのん&マジックさんのツイート: "詳しくはこの辺にリストアップされてるbugを参照。 https://t.co/0CHir4KNki"
Project Fission - MozillaWiki

Quantum - MozillaWiki
ドキュメント翻訳 | Mozilla Developer Street (modest)
Mozilla Flux
Servo parallelism
三世代のFirefox ESRを比較する - Mozilla Flux
Gecko:DisplayListBasedInvalidation - MozillaWiki
Windows版Firefox 53でQuantumプロジェクトの成果が初披露 - Mozilla Flux
Mozilla、「Firefox」向け次世代Webエンジン“Quantum”を発表。2017年中にリリース - 窓の杜
「Firefox 53」が安定版に ~Project Quantumの成果を初導入、コンパクトテーマを追加 - 窓の杜
「Firefox 53」がリリース、次世代ブラウザエンジンQuantumの成果を導入 | OSDN Magazine
Firefox 55/56では極端に多くのタブを開いた状態でも高速な起動が可能に | スラド IT
たった15秒で1600以上のタブを起動可能でメモリ使用も劇的に改善、Firefoxの弱点を解消する「Quantum Flow」の効果が明らかに - GIGAZINE
Rockridgeさんのツイート: "Mozillaの研究によれば、Webページを表示する際の体感パフォーマンスを改善するためには、DOMContentLoadedにフォーカスするのがよい。 / “Test Pilot graduation report: Puls…” https://t.co/iMa4ogTWGw"
Rockridgeさんのツイート: "Firefox Nightly 58にRetained Display Listsがデフォルト無効で投入される予定。再計算の対象をディスプレイリスト全体ではなく変更された部分に限定して、描画処理を高速化する。参照:… https://t.co/BdKAvlB2wL"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
間もなくリリースの「Firefox 58」はますます高速化--Mozillaのエンジニアが説明 - CNET Japan
Makoto Kato ︎︎さんのツイート: "Quantum Renderまだ入ってないんだけど、何言ってるのかな?。OMTPは別のお話 https://t.co/10Cdj1AwbL"
Rockridgeさんのツイート: "さすがに間違いが多すぎる。OMTPは「画像処理の改善」ではないし、Quantum Renderがリリース版で有効化されたことはない。ブックマーク機能の改善はフォルダの管理機能を追加したことなのに、そこに言及がない。 / “「Fi…” https://t.co/TQnvCbS8av"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
「Firefox 58」公開、WebAssemblyやGecko強化によりさらに高速に | OSDN Magazine
Firefox QuantumのOff Main Thread Painting(OMTP)とRetained Display Listsについて - Mozilla Flux
「Firefox」v58.0.2が公開 ~クラッシュ問題などを修正したメンテナンスリリース - 窓の杜
Rockridgeさんのツイート: "Fx59:MacOS版でもOMTPが有効化された。 / “1422392 - Implement the first round of OMTP for tiled painted layers” https://t.co/ZJCfjnpP4Z"
Rockridgeさんのツイート: "Fx59:小さなディスプレイリストの構築処理を最適化。 / “1344971 - Optimize various small display list building tasks” https://t.co/wO7DplGV4b"
Rockridgeさんのツイート: "Fx59:Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みが実装された。 / “1425056 - Implement parallel painting with…” https://t.co/w0R8BkajXS"
Firefox 61でRetained Display Listsが段階的に有効化 - Mozilla Flux
「Firefox 61」正式版リリース、タブウォーミングの導入によりタブ切り替え後の応答速度が高速化 - GIGAZINE

Google

Google Developers Japan: Chrome のレンダリング パイプラインにおけるパフォーマンス向上について
Google、「Google Chrome」のレンダリングを改善 ~その手法をブログで解説 - 窓の杜

Apple

Overview of WebKit’s CSS JIT Compiler | WebKit
Gave a Talk About CSS JIT - Constellation Scorpius
CSS JIT: Just-in-Time Compiled CSS Selectors in WebKit // Speaker Deck
WebKit CSS JIT Internals - Constellation Scorpius
CSS JIT: Optimizing CSS Selector Matching with Just-in-Time Compilation // Speaker Deck
melancholic afternoon

x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
この1年、Webのパフォーマンスで変わったことは?──HTML5 Conference 2016 | HTML5Experts.jp
MIT研究者ら、Webページ読み込み時間を34%削減するアルゴリズム発表 | マイナビニュース
CSSセレクターマッチングのコスト - Unreviewed
ブラウザエンジン先端観測会 アウトラインメモ | Web Scratch
眼力 玉壱號さんのツイート: "@anatoo #lisp で言う所の intern かな。同一の文字列は実体を1個に縮約すると… #browser_gazer"

パフォーマンスの最適化 | Web Fundamentals - Google Developers

クリティカル レンダリング パス

クリティカル レンダリング パス | Web Fundamentals - Google Developers
オブジェクト モデルの構築  |  Web  |  Google Developers
レンダリング ツリーの構築、レイアウト、ペイント  |  Web  |  Google Developers
レンダリング ブロック CSS  |  Web  |  Google Developers
JavaScript を使用してインタラクティブにする  |  Web  |  Google Developers
クリティカル レンダリング パスの測定  |  Web  |  Google Developers
クリティカル レンダリング パスのパフォーマンスを分析する  |  Web  |  Google Developers
クリティカル レンダリング パスの最適化  |  Web  |  Google Developers
PageSpeed ルールおよび推奨事項  |  Web  |  Google Developers

レンダリング パフォーマンス

レンダリング パフォーマンス  |  Web  |  Google Developers
JavaScript 実行の最適化  |  Web  |  Google Developers
スタイル計算のスコープと複雑さの軽減  |  Web  |  Google Developers
大きく複雑なレイアウトとレイアウト スラッシングの回避  |  Web  |  Google Developers
ペイントの複雑さの簡略化とペイントエリアの縮小  |  Web  |  Google Developers
コンポジタ専用プロパティの優先使用、およびレイヤー数の管理  |  Web  |  Google Developers
入力ハンドラのデバウンス  |  Web  |  Google Developers

Chrome

chromium/src - Git at Google
For Developers - The Chromium Projects
Issue Tracking - The Chromium Projects
Site Engagement
Chrome URLs
Chromeの閲覧履歴を取得する。 - mirandora.commirandora.com
原健太朗のページ : Chromium
(99+)blink-dev - Google グループ
(99+)platform-architecture-dev - Google グループ
(99+)Chromium-dev - Google グループ
Chrome Releases
64.0.3282.100 - chromium/src - Git at Google
LUCI
Chromium のソースコードの歩き方
Googleが「GmailなどのAndroidアプリがクラッシュした問題」の反省からWebViewに「セーフモード」を導入 - GIGAZINE

2D

その他

The FreeImage Project
YCbCr ‐ 通信用語の基礎知識
Digital Negative(DNG)、Adobe DNG Converter | Adobe Photoshop CC
FFTPACK
Graphviz | Graphviz - Graph Visualization Software
画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか? - GIGAZINE
Compressing and enhancing hand-written notes
第873回:bokeh とは - ケータイ Watch
κeenさんはTwitterを使っています 「@ncaq フォトショップのファイルのフォーマットとブラシのファイルフォーマットは別で、ブラシの方は公開されてないようでした。」 / Twitter
Adobe Photoshop File Formats Specification
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「QOI (Quite OK Image) 画像圧縮アルゴリズム。PNGとほぼ同等の圧縮率をもち、速度はPNGの20~50倍(圧縮時)、3~4倍(復元時)。SIMDは使用せず、計算量はO(n)。しかもCで300行ほど。面白いことに、作者自身なぜこれでそれほど圧縮できるのかよくわかっていない。 https://t.co/ulTARqt0rB」 / Twitter
PhobosLab
PNG画像を最大50倍高速にエンコード可能なライブラリ「QOI」が登場したので使ってみた - GIGAZINE
QOI 画像ビューワーつくった - 借り初めのひみつきち

Web

AVIF

AV1 Still Image File Format (AVIF)
AOMediaCodec/av1-avif: AV1 Still Image File Format Specification - proposed ISO-BMFF/HEIF derivative
fg118942さんのツイート: "あとAVIFを試していて気づいたこと libaomは画像が大きいとメモリの消費量が4、5GBくらいいくこともあるので辛い rav1eはlibaomよりメモリの消費量が少なくて、多いときでも150MBくらいしかいかないが画質はlibaomより少しだけ落ちてBPGと同程度"
fg118942さんのツイート: "libaomは縦横が2の倍数ならどんな画像も変換できるっぽいけどrav1eは正常にデコード出来ないファイルを出力することがある(一般的ではない解像度に対応してない?) あとはやっぱり変換速度が遅くて画像1枚に1分くらいかかったりするのでハードウェアとかで高速に変換できないと厳しい"
Addy OsmaniさんはTwitterを使っています 「AVIF is an image format that compresses to a smaller size than WebP or JPEG https://t.co/MDDdL8tw8S It's in Chrome 85, behind a flag in Firefox &amp; can be a progressive enhancement! https://t.co/jqADQK6jTd」 / Twitter
How to Use AVIF: The New Next-Gen Image Compression Format — Lightspeed
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JPEGやPNGにかわって次の標準になりつつある画像形式 AVIFフォーマットの技術解説。量子化アルゴリズムから符号化まで詳細に説明している。 https://t.co/Cl8NLPeelO」 / Twitter
Decoding AVIF: Deep dive with cats and imgproxy — Martian Chronicles, Evil Martians’ team blog
画像最適化戦略 AVIF 編 | blog.jxck.io

JPEG

ISO

Exif

Exchangeable image file format - Wikipedia
Exif - Wikipedia
JEITA / AV電子機器部門
CIPA、「Exif 2.3」「DCF 2.0」を公開 - デジカメ Watch Watch
ディジタルスチルカメラ用
DC-010-2017_E.pdf
The libexif C EXIF library
libexif-0.6.21
ブラウザーと画像のEXIFのお話 - Pastalablog in はてな
Google Developers Japan: ExifInterface Support Library が登場
EXIF仕様 解説
DSAS開発者の部屋:Exif データにアクセスするコードを自作してみる
けんしのページ - Exifファイルフォーマット -
Exif 2.3 タグ - Vieas Web
EXIFの読み方 - cagylogic
Exifについて
Exifの回転情報をピクセル情報に反映する - Qiita
<img>で貼った画像がブラウザによって90度回転して表示される? - Qiita
目次
マルチピクチャフォーマット
Microsoft Word - DC-006_J_T1.doc
第553回 Ubuntuで写真のメタデータを扱う方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
画像認識システムの落とし穴となる「ExifのOrientation属性」とは? - GIGAZINE

libjpeg

libjpeg - Wikipedia
libjpeg - Wikipedia, the free encyclopedia
Independent JPEG Group
libjpeg-8d
libjpeg-turbo | Main / libjpeg-turbo
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo download | SourceForge.net
libjpeg-turbo-1.4.2
NASM-2.12.01

Guetzli

Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch
google/guetzli: Perceptual JPEG encoder
JPEGを「libjpeg」よりも20~30%小さく ~Google、新エンコーダー「Guetzli」を発表 - 窓の杜
Google、JPEGを35%縮小する新エンコーダ「Guetzli」発表。画質は同じでファイルサイズ削減 - Engadget 日本版
JPEG エンコーダ Guetzli 使用上の注意 (前編) - Qiita
Google、ファイルサイズを35%削減できるという新JPEGエンコーダー「Guetzli」を公開 | OSDN Magazine
GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE

Lepton

DropboxがJPEG画像をロスレス圧縮できるツールを公開、平均22%サイズを縮小できると主張 | スラド オープンソース
米Dropbox、JPEGファイルをロスレス圧縮できる画像圧縮アルゴリズム「Lepton」をオープンソースで公開 | OSDN Magazine
dropbox/lepton: Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.

Twitter

éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「zipファイルは末尾から読み込まれるから、先頭に自己解凍プログラムをくっ付ければよい。 jpegは信号と、それを反転させたものを繋げて偶関数化して離散フーリエ変換する。(離散コサイン変換) 偶関数化することで境界で値が非連続にならなくなり、高周波成分を抑えられる。」 / Twitter
渋川よしきさんのツイート: "libjpeg-turbo氏〜 実際ベンチマーク取ってみると、画像の読み込みはPNGよりもJPEGの方が圧倒的に早いんだよな。 https://t.co/SgEIKuevyu"
渋川よしきさんのツイート: "不可逆ではあるけど、品質100にしたJPEGのほうが、PNGとかよりも読み込み早くてサイズ小さい。"
渋川よしきさんのツイート: "libjpeg-turboのハフマン符号量子化部分だけ取り出せば、SSE最適化された復元コードが利用できるのでは。"
Kazuho Okuさんのツイート: "JPEGファイルを可逆圧縮!モデルをうまく作るようにすればこんなに縮むのか / “Lepton image compression: saving 22% losslessly from images at 15MB/s | D…” https://t.co/OtNsJNUpSE"
Lepton image compression: saving 22% losslessly from images at 15MB/s | Dropbox Tech Blog
Kazuho Okuさんのツイート: ".@methane はい。leptonは可逆な画像圧縮アルゴリズムで、JPEGデータに適用した場合、22%ほど小さくなる、と書いてありますね"
Kazuho Okuさんのツイート: "JPEGのDCT以降みて、計算コストかけていいならもっと高度な圧縮できそうだなって思った人は多いと思う(僕もその一人)けど、22%も縮むと予測してた人は少なそうだと思ってる"
七誌さんのツイート: "球面から切り出した平面に球面調和関数を適用すると離散コサイン変換になるんじゃないかと思ったら、そのものズバリの講義資料があった!良い。 【PDF】 https://t.co/OQFCxePwhE"
Rockridgeさんのツイート: "Fx50:PNG/JPEG画像のデコーダもStreamingLexerベースのものに切り替えられた。参照:https://t.co/3TYhswQ4q1 / “1282566 – Use StreamingLexer in th…” https://t.co/s32hrO6lJF"
七誌さんのツイート: "メタデータだけいじって回転させたJPEG画像は、HTMLにimg srcで埋め込まれていてもブラウザが回転して表示してくれないっぽい。画像単独だと回転して表示される。"
dynamis (でゅなみす@もじら)さんのツイート: "JPEGのデコードをまるっとGPU側に投げることでGPU I/Oを70%削減、CPUデコード処理時間を30%削減させた新しいJPEGデコーダ実装 https://t.co/F7zbShPN1O とそのLinux Confでの講演 https://t.co/b4ZePbvqRS"
Fadisさんのツイート: "Chromeさん、 V4L2から使えるハードウェアjpegデコーダがある場合はWebページに表示するjpeg画像をハードウェアでデコードするのか…"
Fadisさんのツイート: "で、今回の変更でjpegのエンコードもハードウェアで出来るようになりました、と https://t.co/axF3BdLNUU"
Chrome Working On JPEG Encode Accelerator With VA-API/V4L2 Support - Phoronix

JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ | コラム | マイナビニュース
JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ (11) JPEG新規格の策定、企業の参加は? | マイナビニュース
【連載】JPEGはなぜここまで普及したのか? ~専門家に聞いてきた~ | マイナビニュース
高速なJPEG圧縮ライブラリ「Libjpeg-Turbo 1.5」リリース | OSDN Magazine
mozilla/mozjpeg: Improved JPEG encoder.
週刊 JPEGデコーダをつくる #2 デジタル画像の基礎 - Qiita
画像圧縮でSEO「容量7割減で画質そのまま」 ページスピード向上を実現する「SmartJPEG」とは? - INTERNET Watch
OPTPiX Cloud SmartJPEG (スマートジェイペグ) | ウェブテクノロジ
GuetzliとMozjpegは、どっちが高性能か。 - Qiita
プログレッシブJPEGとHTTP Rangeリクエストで遅延ロードを改善する
JPEG画像の「中身」は一体どうなっているのか? - GIGAZINE

PNG

APNG

Animated Portable Network Graphics - Wikipedia
APNG - Wikipedia
「アニメーションPNG(APNG)」がGoogle ChromeのベースであるChromiumでサポート開始 - GIGAZINE
ChromiumでAPNG(アニメーションPNG)の表示をサポート -INTERNET Watch
「Google Chrome 59」が正式版に 〜ヘッドレスモード、APNG、フルページ撮影に対応 - 窓の杜
Twitterが動画ファイル形式「APNG」のサポートを停止、てんかん患者の発作を引き起こすため - GIGAZINE

libpng - Wikipedia
libpng - Wikipedia, the free encyclopedia
libpng Home Page
libpng-1.6.21
Rockridgeさんのツイート: "Fx51:搭載しているlibpngのSSE2命令最適化を有効にし、PNG画像の処理を高速化した。 / “1276127 – Enable SSE optimization in the in-tree libpng” https://t.co/VuueMHhifr"
OS作れないマンさんのツイート: "Windows 10 のフォトっていう機能がデフォルトの画像ビューアになってるわけだけど、背景色が黒な所為でモノクロで透過背景のPNGが全く見えなくなる。使い悪すぎでは?"
OS作れないマンさんのツイート: "透過PNGははてなブログでも使い勝手が悪い(画像アップロード後の画像一覧のサムネイル画面で背景が黒くなってしまう)ので、白背景に戻そう。なんか負けた気分。"
Rockridgeさんのツイート: "Fx55:PNG形式のファイルについて幅チェックを行い、膨大なメモリを確保しようとする問題が起きないようにした。限度に抵触する画像は表示されないようだ。 / “1368407 - Small PNG image hangs br…” https://t.co/IbfU8aSSY2"

GIF

Graphics Interchange Format - Wikipedia
GIF - Wikipedia, the free encyclopedia
GIFアニメーション - Wikipedia
giflibのインストール: マルチメディアファイルフォーマット
Introduction to GIFLIB
The GIFLIB project
GIFLIB download | SourceForge.net
giflib-5.1.4
Rockridgeさんのツイート: "Fx50:GIF画像のデコーダがStreamingLexerベースのものにリファクタリングされた。 / “1204392 – Use StreamingLexer in the GIF decoder” https://t.co/Yy1OD9jBZK"
Rockridgeさんのツイート: "Fx51:Windows版でアニメーションGIFを対象にコンテキストメニューから「画像をコピー」すると、アニメーション状態を保ったままクリップボードにコピーできるようになった。 / “664717 – "copy image" …” https://t.co/m875T7b64u"
GIFを最速でアニメーションさせるには遅延を最低値にしてはいけない - GIGAZINE
【訃報】画像ファイルフォーマット「GIF」生みの親スティーブ・ウィルハイト氏死去 - GIGAZINE
アニメーションも作れる軽量画像フォーマット「GIF」の誕生秘話 - GIGAZINE

WebP

Twitter

Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: WebP image support https://t.co/0xnMDKiirW"
なかのん&マジックさんのツイート: "web-compatでの実装とのことだけど、実際問題、Jpegに比べてなにかうまみはあるんだろうか……"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示をサポート。デフォルト無効。 / “1294490 – (WebP) Implement experimental WebP image support” https://t.co/RDRQkbp0J0"
Makoto Kato ︎︎さんのツイート: "WebPをサポートしないとWebCompat的な問題が発生してるのは、https://t.co/3E3OedCr68 の See Alsoのところに貼られているhttps://t.co/Kw9PJXX0TT の issueリンク集を見ればわかる。H264と一緒でどうにもならないことは多々ある"
1294490 - (WebP) Implement WebP image support
なかのん&マジックさんのツイート: "「Chromeで動けば良いんでしょ?」の実例だ。ってか、Safariすら捨ててるのか? / "WebP 画像しか配信せず正しく表示されないサイトの数が増え続けていることから、Firefox の開発者は態度を変えざるを得ませんでした" https://t.co/yZNj0whV3s"
WebP 画像対応が追加されました | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "WebPのサポート表明のメール投稿に対しては、やっぱり、早々に「セキュリティ大丈夫なん?」ってリプライ付いてたなー。"
エヌユルさんのツイート: "WebPは実際可逆方式においてPNGよりは効率が良いので普及するのは喜ばしいことだとは思う / “webp-image-support-has-been-added” https://t.co/0i5VERUgyz"
なかのん&マジックさんのツイート: "昨今のWebアプリ事情を考えると個人的には好ましいと思う。でも、それはメンテしていないから言えることかもしれない(実際、よく知らない)。"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示がデフォルト有効化。 / “1503653 - Enable WebP image support by default” https://t.co/CpAxnK1muw"
FadisさんはTwitterを使っています 「Googleが同社の公開gitリポジトリにlibwebp2なるライブラリを上げているという話。置かれた説明によると、WebP2はWebPの後継となる新しい画像フォーマットで、よりロスの少ない圧縮と、HDR10のサポート、アニメーションのサポート等が実験中の新機能として挙げられている https://t.co/Z2N9brff1U」 / Twitter
Google Is Already Experimenting With WebP2 As Successor To WebP Image Format - Phoronix
Masaki HaraさんはTwitterを使っています 「WebPには既にアニメーション機能ありますが……」 / Twitter
Masaki HaraさんはTwitterを使っています 「原文見るとproperly supportとあるから、2ではもっとちゃんとサポートするぞということなのか」 / Twitter

WebP - Wikipedia
WebP - Wikipedia
本の虫: Dark_Shikari、WebPについて語る
はじめてのにき(2017-06-19)
WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 – | HTML5Experts.jp
Googleが画像フォーマット「WebP」向けライブラリ「libwebp 1.0.0」をリリース | OSDN Magazine
A new image format for the Web  |  WebP  |  Google Developers
webmproject/libwebp: Mirror only. Please do not send pull requests.
「Windows 10 RS5」で“WebP”がサポート、「Microsoft Edge」などで表示可能に - 窓の杜
WindowsでWebP画像を作る - まだ中学生のブログ
WindowsでアニメーションWebPを作成する - まだ中学生のブログ
ffmpeg で アニメーションWebP(Animated WebP)を作る | ニコラボ
WebP Lossless はちゃんと Lossless してます - Qiita
PhotoshopがついにWebPを完全サポート - PC Watch

SVG

Twitter

Rockridgeさんのツイート: "Fx49:display:noneが設定された要素でSVGアニメーションの処理が行われ、CPUリソースを消費する問題が解消された。Kickstarter閲覧時のパフォーマンスなどに影響するという。 / “1209405 – Hi…” https://t.co/hpISOE5lZx"
Rockridgeさんのツイート: "Fx54:SVGのimage要素内の画像につきデコード処理の同期化を避けることで、Googleスライドのパフォーマンスが改善された。 / “1341881 - Slow synchronous image decoding in…” https://t.co/zE5hAEBzPD"
Rockridgeさんのツイート: "Fx55:SVG要素のtransform-boxプロパティがデフォルト有効化された。 / “1208550 - Ship support for the 'transform-box' property” https://t.co/ONto407jkh"
Rockridgeさんのツイート: "Fx55:ツールバーアイコンのSVG形式への移行が完了。アドオンの互換性に少なからず影響が出そうだ。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/zPb1TJm06B"
Rockridgeさんのツイート: "Firefoxのツールバーアイコンは全面的にPNG形式からSVG形式に移行する見込み。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/IBqRTIplCn"
渋川よしきさんのツイート: "Angularで特定の画像だけSVG Iconでうまく表示されないな、と思っていろいろ画像ファイルを見ていたのだけど、def/useを使っている画像ファイルはダメだということがわかったので、泣きながら手でpathを展開している。"
渋川よしきさんのツイート: "今ウェブのコードを書いているのだけど、SVG画像がファイルによってサイズが違っていて、<g transform>で変換をかけていたのだけど、行列による座標変換とか行列の掛け算とか、勉強しててよかったなって思いました。"
ドッグさんはTwitterを使っています 「SVG を一旦 SVG のサブセット MicroSVG に変換してから描画することで,描画バックエンドが実装しやすいようになってるのか | 'RazrFalcon/resvg: An SVG rendering library.' https://t.co/e4aB7Zxsxx」 / Twitter
RazrFalcon/resvg: An SVG rendering library.
Takashi KawasakiさんはTwitterを使っています 「svgをimg srcとかで表示している分には安全なんじゃないの?って思ったけど、そうか。買った画像だからローカル保存するために右クリックして別タブで開いたりとかすることはあるのか・・・。これは。 https://t.co/e05pfXMWoG」 / Twitter
tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「NFTのSVGデータにスクリプト仕込むことで、ウォレットにアクセスして操作したのか スクリプトインジェクションだ 不特定のユーザーが自由にデータCtoC系サービスでは要注意っすね。 https://t.co/WiqXpXK2xL」 / Twitter
OpenSea collaborates with Check Point Research to mitigate vulnerability - OpenSea Blog
tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「SVGのscriptタグ https://t.co/lzfzpjpjPd」 / Twitter
<script> - SVG: Scalable Vector Graphics | MDN
tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「@espresso3389 そうなんすよ、なるほどという。 しかも、MetaMaskはwindow.ethereumにインスタンス生やすので。。。ウォレット操作できちゃうという。。。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@tomonari_t_t 拡張側の仕様も迂闊といえば迂闊ですね。せめてタブに何が表示されるかチェックすべきかもしれぬ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmに書き換えただけでそんなに速くなるというのもまた珍しい。随分前にMarkdownのrendererも速くできた、って例も聞いたことがあるのでまとまった文字列を組み立てるのは意外といいユースケースなのかも / “Rust+wasmでSVGを生成する” https://t.co/pV4Uu9OgMm」 / Twitter
Rust+wasmでSVGを生成したら10倍速くなった | lacolaco/tech

memononen/nanosvg
Scalable Vector Graphics - Wikipedia
Scalable Vector Graphics - Wikipedia, the free encyclopedia
ブラウザに圧縮SVG (.svgz) を表示する | Inkscape@JP
SVG 1.1 仕様 (第2版) 日本語訳
Filter Effects Module Level 1(日本語訳)
Changes from SVG 1.1 — SVG 2 (日本語訳)
ECMAScript 言語束縛 – SVG 1.1 (第2版)
user-scalable=noとかSVGのアクセシビリティーとか - 水底の血
本の虫: XNGという新しいアニメーション画像フォーマット
svg要素の基本的な使い方まとめ
神奈川工科大学 情報メディア学科のSVG教材に無限にツッコミが入れられそうな件 - 水底の血
SVGを使用して鮮明なロゴへ変身 | フロントエンドBlog | ミツエーリンクス
アクセシビリティーサポート — SVG 2(日本語訳)
Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース | HTML5Experts.jp
本の虫: SVGの起源
2015年のSVGについてと、来年2016年のSVGについて - 週刊SVG
SVGをcss/jsで操作するときに知っておきたいこと - Qiita
Inkscape でレイヤーを読み込める SVG をイラレから書き出す - にせねこメモ
SVGでフレームアニメーション? - にせねこメモ
SVGでフレームアニメーション w/ Javascript - にせねこメモ
SVG ファイルを GUI ツールで最適化する - EagleLand
W3C Strategic Highlights: Strengthening the Core of the Web (SVG) | W3C Blog
svg要素の基本的な使い方まとめ
SVG に JavaScript を埋め込む方法 - Qiita
Inkscapeを使ってSVGからOGPイメージを半自動生成する | κeenのHappy Hacκing Blog
Inkscapeで生成するOGP画像の禁則処理をちょっとだけ頑張る | κeenのHappy Hacκing Blog
SVGのアニメーションのお勉強 | κeenのHappy Hacκing Blog
絵文字をファビコンとして表示する簡単な方法

Canvas

canvas要素 - Wikipedia
Canvas element - Wikipedia, the free encyclopedia
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
memononen/nanovg
HTML5 CanvasとWebGLの高解像度対応はどこまで行うべきか - ICS MEDIA
canvas要素の基本的な使い方まとめ
Fadisさんのツイート: "Chrome66がリリースされた。Chrome66で追加されるtransferFromImageBitmapはcanvasの内容を指定したImageBitmapで置き換える。この時画像はcopyではなくmoveされ、不必要なコピーが回避される。他にもClipboardの非同期読み書きのサポート等が追加される https://t.co/l141gC5QDB"
Googleドキュメントのレンダリング方式が変更へ、どんな影響があるのか? - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「WYSIWYGな文書作成ツールという点ではCanvasで問題ないと思うけど、他社の検索エンジンにどうやって文書を示すんだろう? そこをやらないと独禁法で刺されそう」 / Twitter
高梨陣平さんはTwitterを使っています 「GoogleがDocsのレンダリングをHTMLからCanvasへ移行すると発表。異プラットフォーム間の互換性向上を目的に。 これってHTML5の敗北では?HTML依存の機能拡張が動かなくなるから注意だそうだけど、他にもっと問題がないかな」 / Twitter
SlashdotさんはTwitterを使っています 「Google Says Docs Will Now Use Canvas Based Rendering, Warns Impact on Some Chrome Extensions https://t.co/5QUW8MJMeg」 / Twitter
Kazuho OkuさんはTwitterを使っています 「機械可読性含むアクセシビリティの話だな」 / Twitter
なかざん𝄇さんはTwitterを使っています 「React Native for WebにはReact製SPAであろうとする力学がある程度働くので、どうやってもDOMベースになっちゃうのが痛いところなんだよな。 DOM互換を無視してReact Native for Canvasみたいなやつができると幅が広がりそう。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kazuho FlutterがCanvasでの描画とDOMでの描画両方をサポートしているそうなので、検索エンジン向けにはDOMを出力すれば問題ないのではないかと」 / Twitter

Favicon

アイコン

hiyohiyoさんはTwitterを使っています: 「通知領域用のアイコンを HiDPI 対応に変更したのですが、48x48 フルカラーアイコンが優先的に選択されるようで、16x16 とか 32x32 のアイコンが選択されず、48x48 を縮小表示されることが判明・・・。 DPI 設定に応じて適切なサイズのアイコンが選定されるというのは思い込みでした。」 / Twitter
hiyohiyoさんはTwitterを使っています: 「となると、1種類の画像しか入っていないアイコンを作ってソフト側から DPI 設定に応じて設定するのが最適なんだなぁ。 昨日の作業は、ほとんど無意味!! 事前確認重要!」 / Twitter
hiyohiyoさんはTwitterを使っています: 「LoadImageを使えば複数のサイズが入った .ico から指定サイズのアイコンハンドルを取得できることがわかりました。 LoadImageW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TEMP_00), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 上の16の部分を32とか、48にすればOK」 / Twitter
hiyohiyoさんはTwitterを使っています: 「ただ、動的なDPI変更やDPI設定の異なるディスプレイが複数接続された環境ではどうすることもできない・・・。 現実的には、48x48の高解像度アイコンをOS側で縮小表示してもらうのが良さそう。縮小アルゴリズムがもうちょっといい感じだったらなぁ・・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降のアイコン(複数サイズ同梱)は、256pxだけはpng格納、というハイブリッド形式を必要とするのだが、今だにVisualStudioで作成・編集できない様子。(表示のみ可能)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2019年にもなって、バージョン定義とリソース分離に手間取ったり。 (1ヵ所のバージョン定義で、ソースコード用バージョンとexeリソース情報の両方に反映する形)"

Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
Rockridgeさんのツイート: "Fx55:ファビコンがfavicons.sqliteという独立したデータベースに保存されるようになった。履歴・ブックマーク絡みのファイルI/Oについて、パフォーマンスが改善されるようだ。 / “977177 - move fav…” https://t.co/ExBWeX7Kmv"
Rockridgeさんのツイート: "Fx56:Firefox 43以降512x512のサイズのファビコンが表示されなくなっていた後退バグを修正し、さらに768x768のような大きなファビコンもサポート。参照:https://t.co/5hbDBYV5s2 / “1…” https://t.co/3CnrOkx9K8"
Rockridgeさんのツイート: "Fx60:一部のWebサイトで高DPIファビコンを取得できない問題を修正。 / “1449523 - ContentLinkHandler only picks perfectly sized icons” https://t.co/lor9oON67U"
Rockridgeさんのツイート: "Fx60:ファビコンデータベースのVACUUM処理を漸進的に行うようにした。 / “1346554 - Use PRAGMA incremental_vacuum on favicons.sqlite” https://t.co/m8eAD78dDI"
【レビュー】“Microsoft Azure”などで利用されているシンボルやアイコンを集めたイメージセット - 窓の杜
Oracle、クラウドのシステム環境図作成などに役立つアイコン素材を無償提供 - 窓の杜
Rockridgeさんのツイート: "Fx63:ファビコンをchromeプロセスではなくcontentプロセスに読み込むことで、読み込みが二重になるのを防ぐことができるという。参照:https://t.co/uLapuzu4MH / “Favicons are no…” https://t.co/UVl4JwfpTI"
Rockridgeさんのツイート: "Fx63:ファビコンの最大サイズを256pxから192pxに変更した。データベースの容量が圧縮される。 / “1475500 - Reduce maximum favicon size from 256 to 192px” https://t.co/WwBF3gperx"
Rockridgeさんのツイート: "Fx62:履歴消去後もファビコン情報が残ってしまう後退バグを修正。 / “1468968 - Firefox retains favicons with their respective urls after supposedl…” https://t.co/spJPfL8cMc"
ブラウザのタブにある「Favicon(ファビコン)」にウェブカメラの映像を映す - GIGAZINE
SVGやアイコンフォントが揃ってる!太っ腹なライセンスで無料利用できる高品質なアイコン素材 -Themify Icons | コリス
全2,000+種類のアイコン素材、AI, PSD, Sketch, SVGが揃い、商用利用も無料の太っ腹! -Thousands Icons | コリス
IcoMoonを使ってSVGからアイコンフォントを作る方法 | mediba Creator × Engineer Blog
2852 free SVG and PNG icons for your games or apps | Game-icons.net
最新の手法でブラウザのタブに表示される「Favicon(ファビコン)」を作成するとこうなる - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「40万個のfaviconを調査した結果: - サイズの中央値は1.9KB (最高は7MB) - 52%のアイコンは128×128以上 (最高はLufthansaの7087×5197) - 2%のアイコンは正方形でない - 72%はPNG - 0.2%はdata URL - もっとも使われている色は紫、そのつぎが白 https://t.co/uDDW7TWez8」 / Twitter
We Analyzed 425,909 Favicons • iconmap.io
42万個ものファビコンを敷き詰めたマップが公開中。解析データも興味深いと話題に【やじうまWatch】 - INTERNET Watch

画像最適化戦略 PNG/JPEG 編 | blog.jxck.io
画像最適化戦略 Picture 編 | blog.jxck.io
画像最適化戦略 WebP 編 | blog.jxck.io
アニメーション画像の歴史 APNG-WebP戦争 | 味わい尽くせ!
画像最適化戦略 Lazy Loading 編 | blog.jxck.io

BMP

Windows bitmap - Wikipedia
BMP file format - Wikipedia
なかのん&マジックさんのツイート: "Win + Shift + SをHiDPI環境で使って、メールとかに貼り付けるとでかい画像が貼り付いてしまうの、ちょっと考え物だけど、誰がどうすべき問題なのか全く想像つかん。"
vyv03354さんのツイート: "すべてのアプリがBMPヘッダーのbiXPelsPerMeterとbiYPelsPerMeterをちゃんと見ていればよかった(完全に手遅れ)… "
なかのん&マジックさんのツイート: "あー、そんな情報あるんですね。クリップボードからの貼り付けでGeckoに来てるか調べてみないとですね。… "

Motion JPEG

Motion JPEG - Wikipedia
Motion JPEG - Wikipedia

JPEG 2000

ISO

OpenJPEG

OpenJPEG
uclouvain/openjpeg: Official repository of the OpenJPEG project
OpenJPEG - Wikipedia

JPEG 2000 - Wikipedia
JPEG 2000 - Wikipedia

JPEG XR

JPEG XR - Wikipedia
JPEG XR - Wikipedia

JPEG XS

JPEG XSコーデックメモ - Qiita

BPG

Better Portable Graphics - Wikipedia
Better Portable Graphics - Wikipedia
BPG Image format | Hacker News

HEIF

High Efficiency Image File Format - Wikipedia
HEIF Technical Information - High Efficiency Image File Format
HEIF Comparison - High Efficiency Image File Format
HEIF - High Efficiency Image File Format
Appleが新OSで初めてサポートするHEIF、FLAC、Opusなど | スラド アップル
【解説】iPhoneのAV機能は「iOS 11」でこう変わる (1/3) - PHILE WEB
“RS4”の最新プレビュー、画像形式“HEIF”をサポート ~Build 17123が公開 - 窓の杜
Masaru Iritaniさんのツイート: "#WindowsInsiders に向けフォト アプリに HEIF 形式対応が追加されました。寡聞にして知らず「へいふ」と読んでしまったのですが、どうやら「ひーふ」と読むようで、iOS や macOS で使われる画像形式のようですね。Skip Ahead ビルド 17623 も HEIF 形式に対応しています。 https://t.co/QyhupCbXU9… https://t.co/WOt0AyOW9F"
Windows 10が「HEIF」フォーマットの画像表示に対応 - PC Watch

DNG

Digital Negative - Wikipedia
Digital Negative - Wikipedia

RAW

RAW現像に対応するオープンソースの写真管理ツール「Darktable 2.6」リリース | OSDN Magazine
「digiKam 6.0」リリース、動画ファイルのサポートを強化 | OSDN Magazine
ゼロから作るRAW現像 - まとめページ - Moiz's journal

ImageMagick

渋川よしきさんのツイート: "Goで大量の画像の変換とかサムネイルとか。速度とメモリ厳しくない?"
さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
「さようなら ImageMagick」の考察 - Qiita
malaさんのツイート: "https://t.co/oE46g9nsQO コメントした。Pillowは必要に応じて外部コマンドを呼び出すのでフォーマット制限しないとImageMagickと大差ない。Pillow使ってるscipyも影響あり。GS脆弱性が厄介なのは利用ライブラリ側で脆弱性として認知されていない点 https://t.co/9LGa6WR0tn https://t.co/pmny41NJVR"
Search · check_call OR popen path:src
usaさんのツイート: "ぼくはポジショントークとして「ImageMagickやめた方が楽だよ?」とは言いますけど、お前らが「あ、これ○○でできるじゃん!」って思って作ったものはだいたいできてない、ということは本音として言っておきます。"

blog

画像の価値は上がったのに、技術は10年前から変わっていない ─ ImageFluxで描く画像変換の世界(前編) - pixiv inside
5年後には画像フォーマットなんて誰も気にしなくなる ─ ImageFluxで描く画像変換の世界(後編) - pixiv inside

News

iOS 10ではRAW撮影が可能に | スラド モバイル
最も劣化が少なくファイルサイズを小さくできる画像形式が判明 - GIGAZINE
第474回 UbuntuとdarktableではじめるRAW現像入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
JPEGも型番の時代に突入!?JPEG XTやXRに加え、新規格JPEG XSやJPEG PLENOが標準化に - PC Watch
圧縮効率60%向上を目指す新規格「JPEG-XL」策定にむけ技術公募へ - PC Watch
reg-cli - 二つの画像で異なる部分を抽出 MOONGIFT
データ圧縮のパイオニアであるジェイコブ・ジヴ氏の功績とその半生とは? - GIGAZINE

POSTD

500バイトの画像:Haikuのベクターアイコン形式 – 前編 | コンピュータサイエンス | POSTD
500バイトの画像:Haikuのベクターアイコン形式 – 後編 | コンピュータサイエンス | POSTD
一から学ぶベジェ曲線 | プログラミング | POSTD

Wikipedia

Digital Negative - Wikipedia
FFTPACK - Wikipedia
ハイダイナミックレンジイメージ - Wikipedia
ハイダイナミックレンジ合成 - Wikipedia
OpenEXR - Wikipedia
フロイド-スタインバーグ・ディザリング - Wikipedia

GitHub

anypixel.js
googlecreativelab/anypixel: A web-friendly way for anyone to build unusual displays
SolidStateGroup/rio: An open source library allowing you to create an internet connected LED wall
LC's Finder
lc-soft/LC-Finder: A simple pciture resource manager, support tag search and thumbnail preview.
RecursiveBF by ufoym
ufoym/RecursiveBF: A lightweight C++ library for recursive bilateral filtering.
VipsWiki
jcupitt/libvips: A fast image processing library with low memory needs.
miloyip/line: 2D Line Drawing Samples in C

Qiita

RGB値の合計が一定の画像変換 - Qiita
グレースケールで消える画像に変換 - Qiita
機械学習のためのOpenCV入門 - Qiita
グレースケール画像のうんちく - Qiita
RGB ビット深度のうんちく (前編) 〜 前提知識 - Qiita
RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 - Qiita
Kazuho Okuさんのツイート: "HTML で #ccc と等しいのは #c0c0c0 か、それとも #cccccc か、というのはいい問題なのかも… "
Takuo Kihiraさんのツイート: "RGBビット深度、HTMLの世界だとカラーコード→浮動小数点の処理で気になることが多いですね。#C8F0E3みたいな奴を、0xC8/256とか雑に書いてあるコード、結構ありますよね。"

Twitter

Rockridgeさんのツイート: "Fx57:Firefox ScreenshotsでWebページ全体または表示領域全体を撮影した場合、画像の保存形式はPNGではなくJPEGになる。PNGだとサイトによっては画像サイズが大きくなりすぎるのだという。 / “1402…” https://t.co/2dI2Damohp"
一ノ瀬 いろはさんのツイート: "Firefox screenshots , HTML要素単位での選択が出来るのかー。気づかなかった。"
渋川よしきさんのツイート: "複数のイメージを.icoに書き込めるようにPR出した #golang #windows https://t.co/LVUWVp8JcO"
技術書典4 け-51 x86-64-128さんのツイート: "Illustratorのアセットの書き出しを使うと,1枚のページに書いた図を複数に分割して個々の画像ファイルとして書き出せるので捗る.PDFとしても書き出せるからTeXと相性が良い."
いもすさんのツイート: "超解像技術が理想の形になりつつある。waifu2xは、Photoshopで手で高解像度化したときに輪郭が丸くなる現象からあまり逃れられていなかったけど、A.I.Gigapixelは理想の超解像ができている。写真も二次元絵も問題なく超解像できているあたり汎用的な超解像が可能であることを示していて期待が高まる。… https://t.co/elzWpAVcNq"
mr-csce(llp_qlv)さんのツイート: "エイリアシング、なんで折り返すとかいうのって思ってたけど、周波数領域で考えたらほんとにまんま、まるで折り返したみたいになってて、めっちゃ直球な表現だったんだなって思った。"
FadisさんはTwitterを使っています: 「CPUで展開しなければならない画像フォーマットは貴重なCPUを浪費する上にCPU-GPU間をでかいデータが流れる事になるから、大量のテクスチャを読まなければならないなら圧縮率はイマイチでもASTCをそのまま保存しておくのがオススメ」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「へー、JPEG-XL、JPEG のデータをロスレスどころか byte-to-byte で保ちながら圧縮率を上げる、今でいう Lepton 的な立ち位置の圧縮もできるのか。 https://t.co/Lu2reSpG6f」 / Twitter
https://google.github.io/brunsli/
Tsukasa #01 [要出典]さんはTwitterを使っています: 「普通の JPEG に比べて 22% 圧縮、というのも実際 Lepton に近い数値。」 / Twitter
nikqさんはTwitterを使っています 「つーか今まで、画像codecでまっとうなコードに出会ったことがないんだが、どうしてなんだ?? libtiffはexploit大杉、libjpegは関数ポインタ好きすぎ、libpngはifdef多すぎ、JPEGXRは逆ポーランドすぎ、JPEGXLはGoogle帝国すぎ…」 / Twitter
nikqさんはTwitterを使っています 「Google帝国の人は、世界には名もなきプラットフォームとか#ifdefで分割しきれない謎のコンフィギュレーションのCPUとかがあるってことをもっと知ってください!」 / Twitter
ノナプルナイン@デジゲー博未払い落ちさんはTwitterを使っています 「そう。ツイートしようと思って忘れてた。 pngからjpgを保存するときの容量、なんとGIMPの90%よりもフォトショの75%のほうが重いんですよ。 フォトショ使いのほうが画質にうるさいから、フォトショのほうが見かけの数字よりも圧縮率が低いということ? それとも、jpgの圧縮にも技術の差とかあるの?」 / Twitter
yohさんはTwitterを使っています 「codec != encoder implementation なんだけど そう理解されるのはレアなんだよねぇ そもそもquality(Q)なんてのも メジャー実装では似たような値を用意してるってだけで どこにも(normativeには)規程されないというか」 / Twitter
島鉄雄さんはTwitterを使っています 「ベジェとかスプラインの親玉のNURBSには、ノットベクトル(ウェイト)が有るから、正確な円(球)が書けるんだよね。 逆に言うとノットベクトルが無いと、円は近似にしかならない。」 / Twitter

フォント

その他

TypeDrawers

Relationship between left side bearing and contour coordinates (TTX/FontTools) — TypeDrawers
Problem in Chrome? — TypeDrawers
Typeface that lets you try different sets — TypeDrawers
Fontlab 5: How to 'Update [kern] feature' in all open fonts? — TypeDrawers
Usefulness for the below type of fancy fonts and hybrid glyphs — TypeDrawers
A rationale for this replacement of /gamma? — TypeDrawers
How do you test your locl features? — TypeDrawers
New: DTL OTMaster 7.9 — TypeDrawers
Any good auto kerning tools? — TypeDrawers
Understanding the 'name' table. — TypeDrawers
What determines the character range displayed in Windows' Character Map utility? — TypeDrawers
Making Windows Fonts Do Something They Shouldn't — TypeDrawers

窓の杜

大日本印刷、明治からの歴史がある「秀英体」ライセンスをMonotypeへ提供 - ニュース ―MdN Design Interactive edition― - 窓の杜
モリサワ、「TypeSquare Desktop Manager」による「BIZ UD」フォントの提供を終了へ - 窓の杜
任意の文字列で日本語フリーフォントを比較できるWebサービス「ためしがき」が縦書き表示に対応 - ニュース ―MdN Design Interactive edition― - 窓の杜
漢字のスタイルが自由自在? “zi2zi”でニューラルネットワークのスゴさを再認識 - やじうまの杜 - 窓の杜
スタートメニューのプロセスが独立、信頼性向上へ ~「Windows 10 19H1」Build 18317 - 窓の杜
「April 2018 Update」の縦書きフォント問題を回避するパッチ、「一太郎2019」向けに公開 - 窓の杜
Windowsの標準フォントってどこまで“タダ”なの? ~最新の状況をまとめたブログ記事が人気 - やじうまの杜 - 窓の杜
アドビ、新元号“令和”の合字を“Adobe Font”へ追加 ~4月中に完了予定 - 窓の杜
Adobe、新元号“令和”の合字を追加した「源ノ角ゴシック」v2.001をリリース - 窓の杜
情報処理推進機構、新元号“令和”の合字に対応した「IPAexフォント」v004.01を公開 - 窓の杜
楷書体の“令”を新元号発表時の墨書と同じ字形に ~モトヤが無料フォントを提供 - 窓の杜
新元号“令和”の合字に対応した無料の明朝体フォント「IPAmj明朝フォント」v006.01 - 窓の杜
Microsoft、ターミナル・コードエディター向けの新フォント「Cascadia Code」を発表 - 窓の杜
IPAが無償で提供している文字の検索システムがなかなかイケていると話題に - やじうまの杜 - 窓の杜
「Unicode 14.0」のリリースは6カ月延期 ~新型コロナウイルスの影響がボランティアを直撃 - 窓の杜
IBMのオープンソースフォント「IBM Plex」がv6.0.0に ~日本語フォントも利用可能 - 窓の杜

にせねこメモ

フォントのアウトラインを法線方向に太らせたり細らせたりしてみる - にせねこメモ
UbuntuでFontforgeをコンパイル - にせねこメモ
CygwinでFontforgeをコンパイル - にせねこメモ
さくらのサーバに置いたWebフォントをはてなブログから使う - にせねこメモ
適当に書いてフォントを作る - にせねこメモ
フォントいじり用ソフトウェア・技術情報 - にせねこメモ
漢索フォント - にせねこメモ
フォントでTUT-Code - にせねこメモ
Appleカラーフォントのビットマップの表示位置 - にせねこメモ
TTXでAppleカラーフォントを作る - にせねこメモ
FontForge の Python bindings を使えるようにする - にせねこメモ
サブセットWebフォントを作成する(Font Squirrel Webfont Generator) - にせねこメモ
Linux版AFDKOのダウンロード - にせねこメモ

借り初めのひみつきち

自作フォントエディタの話 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち

書体関係 Wiki - unixuser200403-2
書体関係 Wiki - freefont
世界最速のフォントレンダラ、font-rsの内部に迫る | プログラミング | POSTD
フリーのフォントエディタ「FontForge October 2016」リリース、Unicode 9.0に対応 | OSDN Magazine
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
kaonashi-tyc/zi2zi: Learning Chinese Character style with conditional GAN
ドバイ政府とMicrosoftが提携して開発したフォント「Dubai Font」 | スラド IT
Windows版Firefox 57で既定の日本語フォントをメイリオに変更 - Mozilla Flux
Windows 10プレビュー版にウェイトを自由に変更できるVariable Font実装 - PC Watch
Windowsで最高のターミナルを構築する方法 - 純粋関数空間
デスクトップ・カスタマイズ:フォントリンクの方法
「大漢和辞典」ついに!デジタル化 「フォントない」問題克服の秘密とは | 共同通信 - This kiji is
やがてsyuu1228になるさんのツイート: "ClearTypeのパテントは無償でおっけーになったのか:Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft https://t.co/B2ypyBwVYL via @phoronix"
Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft - Phoronix
「Qt 3D Studio 2.3」公開、新フォントレンダリングエンジンが導入される | OSDN Magazine
Font Edit '95
フォントエディタ作った。 - 借り初めのひみつきち
neri/fedit95: Bitmap Font Editor
Noto Sans Hinted と font-feature-settings: 'palt' | blog.jxck.io
HarfBuzz
Webブラウザにおける文字のアンチエイリアスの現状の最適解 | dwango creators' blog(ドワンゴクリエイターズブログ)

FreeType

The FreeType Project - バグ: Browse Items [Savannah]
hp.vector.co.jp/authors/VA028002/ft_height20061029.c
hp.vector.co.jp/authors/VA028002/winfreetype20061029.c
20212 FreeType の CFF ドライバの処理に任意のコードを実行されるなど複数の問題 - SIDfm
FreeType - Wikipedia
FreeType - Wikipedia, the free encyclopedia
側転幼女おるみんちゃんさんのツイート: "FreeType2 が 2.7 になって ClearType のようなサブピクセルヒンティングが有効になたみたい.Infinalityパッチのとはちょっと違うようだけども >> The FreeType Project https://t.co/JKu8weHERT"
FadisさんはTwitterを使っています: 「GTK+等の文字のレンダリングを担っているPangoがフォントのロードをFreetypeからHurfbuzzに切り替えたところ、ビットマップフォントが読めなくなり、ビットマップフォントとかいまどき使わないと主張する開発者とビットマップフォント愛好家達が揉めてる https://t.co/trTPv9ryyg」 / Twitter
Pango Dropping Support For Bitmap Fonts Is Frustrating Some Linux Desktop Users - Phoronix
svg woff 変換 - Google 検索
woff freetype - Google 検索
FreeType 2.10.2 Released With Support For WOFF 2 Fonts - Phoronix
FadisさんはTwitterを使っています 「FreeTypeにPNGの埋め込みビットマップの取り扱いでヒープバッファオーバーフローを起こす脆弱性が見つかり、修正版2.10.4が出た。この脆弱性の詳細や影響はまだ表に出ていないが、2.6以降のでFT_CONFIG_OPTION_USE_PNGオプションを使用している場合に影響を受けるらしい https://t.co/ULpo4PPiJm」 / Twitter
FreeType 2.10.4 Rushed Out As Emergency Security Release - Phoronix
freetypeを使用して文字を描画すると間延びする

Adobe

Adobe、日中韓の漢字を網羅したオープンソースのフォント「Source Han Sans」を公開 - 窓の杜
Source Han Sans - Wikipedia
米Adobeがフォント開発ツールのAFDKOをオープンソースに | SourceForge.JP Magazine
ASCII.jp:「源ノ角ゴシック」を実現させたアドビ西塚氏の勘と感覚 (1/5)
インタビュー&トーク - 15年越しに叶った夢、日中韓対応のフォント開発:ITpro
日本語表示も考慮されたコーディング向けのフォント「Source Han Code JP」が公開 - 窓の杜
Adobe Type Tools
源ノ明朝 | Typekit
Adobe、日中韓をサポートしたSerifフォント「源ノ明朝」をオープンソースで公開 ~Googleと共同開発、6万5千文字以上を収録 - PC Watch
貂明朝の漢字6469字の内訳 | yasuokaの日記 | スラド
“Adobe Typekit”が“Adobe Fonts”へ、複雑な利用制限をすべて撤廃してシンプルに - 窓の杜
Adobe Fonts on VF at Adobe Max 2018 — TypeDrawers
【Adobe MAX】無償でも6,000フォントまで利用可能となったAdobe Fonts - PC Watch
A Spectre Haunts Photoshop: Adobe Fontphoria — TypeDrawers
アドビ、可愛く妖しい無料フォント「貂明朝」のv2を公開 ~干支のカラー絵文字を追加 - 窓の杜
Adobe Fontsに日本一画数の多い漢字。貂明朝の新フォントも ~Photoshop for iPadなど新アプリのQ&Aセッションも - PC Watch
Adobe、プログラミング向け無料フォント「Source Han Mono(源ノ等幅)」をリリース - 窓の杜
Adobeの「源ノ角ゴシック」がバリアブルフォントに - PC Watch
「Source Han Sans/源ノ角ゴシック」がバリアブルフォントに ~サイズは1/10以下、可能性は無限大 - 窓の杜
Adobe Fontsの日本語フォントが大幅増 ~191フォントが追加され、計436フォントに - 窓の杜
画力・博士号さんはTwitterを使っています 「「てかCompact Font Formatやめね?笑」になってきた,地球外の文明と接触したときに(えっ,君らの文明ではこんな間抜けな規格が最も普及してんの? 草)と笑われる規格として5本の指には入ると思う.」 / Twitter
Compact Font Format - Google 検索
米Adobeがフォント開発ツールのAFDKOをオープンソースに | OSDN Magazine

Google

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
「Noto」カラーフォントは1/4以下のサイズに ~「Chrome 98」に「COLRv1」が導入 - 窓の杜
絵文字を小さい容量できれいに表示できるフォント「COLRv1」を追加したGoogle Chrome 98安定版リリース - GIGAZINE
Noto - Wikipedia
Noto fonts - Wikipedia
Google Noto Fonts
Google Developers Japan: 誰でも使えるオープンソース フォント システム
Google Developers Blog: An open source font system for everyone
Google Internationalization
googlei18n/noto-fonts: Noto fonts, except for CJK and emoji
noto-fonts/FAQ.md at master · googlei18n/noto-fonts
Noto Sans の Web Font 対応とサブセットによる最適化 | blog.jxck.io
Google Developers Japan: オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。
Google、日本語・中国語・韓国語をカバーしたオープンソースフォント「Noto Sans CJK」 - 窓の杜
オープンソースの明朝体フォント、Googleとアドビが無償公開、7ウェイトを用意したセリフ書体「Noto Serif CJK(源ノ明朝)」 -INTERNET Watch
Noto Color Emoji – Google Noto Fonts
日中韓に対応したグーグルの新フォント「Noto Serif CJK」は、なぜ生まれたか|WIRED.jp
Google、フォントラスタライザ向けセキュリティチェックツール「BrokenType」を公開 | OSDN Magazine
Noto JP/KR versus Noto — TypeDrawers
Google Fontsが日本語WEBフォントを正式サポート – Dream Seed
Makoto Kato ︎︎さんはTwitterを使っています 「ビャンビャン麺のグリフがNoto Font CJKに入ってたようで、昔のツイートがちゃんとレンダリングされてる。やった https://t.co/SNM1TP6KuH」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「𰻞𰻞麺 https://t.co/zHUvPe4p5D」 / Twitter
FadisさんはTwitterを使っています 「FedoraがシステムのデフォルトフォントをNotoに変更する事を検討している話。Fedoraは今までデフォルトフォントにDejaVuを使っていた。DejaVuはヨーロッパ系の言語の文字を幅広く含むがそれ以外には対応しておらず、不足分は他のフォントを用いるため表示の一貫性に難があった https://t.co/onnRYzWQTz」 / Twitter
Fedora 36 Looking To Change Its Default Fonts - Phoronix
FadisさんはTwitterを使っています 「NotoはGoogleが中心となって開発している多言語フォントで、Unicodeのおよそ半分をカバーしている。Fedoraは既にCJKおよび絵文字の表示にNotoを使っており、Notoは事実上システムに必須のフォントになっていた。ヨーロッパ系の言語もNotoにする事で表示の一貫性と6MB程のストレージの節約が達成できる」 / Twitter
ドッグさんはTwitterを使っています 「Google Fonts のフォントを使っていて GDPR 違反で報告されてるのも見たことあるけど,どうするのが良いんだろうな(サイト表示のためにフォントをロードしにいき,GDPR 同意前に Google に IP アドレスが知れるかららしい)」 / Twitter
Googleフォントを使うと犯罪になる - Qiita

MS

Windows のフォント描画

エヌユルさんはTwitterを使っています 「MS ゴシックの字形が悪いのでもなく、ビットマップが埋め込まれているのが悪いのではなく 悪いのはビットマップは低解像度の小さいフォントサイズ向けのものなのにHiDPIの設定をしてるのに何故か不適切にビットマップを表示してるWindowsなんだよな Windowsがフォント描画汚いと言われても仕方ない」 / Twitter
NAKAMURA Yoshiyuki (中村 良幸)さんはTwitterを使っています 「@ncaq HiDPI環境であるか否かにかかわらず、Windowsの設定(ディスプレイ)項目の中に「小さなフォントサイズの場合にはビットマップ表示を使う」というオプションを付けて、従来との互換性を守るためにデフォルトではそれをオンにしておけば良いだけの話のような気がするんですけどね… 私も困ってます。」 / Twitter
エヌユルさんはTwitterを使っています 「@nakayoshix https://t.co/vWvRylTP1p を教えてもらって多少マシになった感じはありますが、そもそもデフォルトフォントを選択したい」 / Twitter
m13253/FaithType: Modify fonts to remove bitmap and disable gridfit for Windows font rendering
カナやん@みかん本停滞中さんはTwitterを使っています 「@ncaq @nakayoshix わたしは、このツール使ってフォントを変更しています。 ただシステムフォントの変更はできない模様。 https://t.co/aAuADhzkGI」 / Twitter
Windowsカスタマイズシリーズ
エヌユルさんはTwitterを使っています 「@rkarsnk @nakayoshix もちろんそれも使ってるんですけど、アプリケーション(主にElectronのやつで、Slackが代表例)がmonospaceとか指定するとフォントリンクを弄らない限りMS ゴシックが日本語部分に使われてしまう問題があったんですよね」 / Twitter
カナやん@みかん本停滞中さんはTwitterを使っています 「@ncaq @nakayoshix あー、理解しました。厄介な問題ですよね…」 / Twitter

米Microsoft、開発環境向けの等幅フォント「Cascadia Code」をオープンソース化 | OSDN Magazine
7594591200220899443さんはTwitterを使っています: 「いや、ターミナルでこの手のprogramming ligaturesを有効にするのは絶対駄目。問題が起きる。 https://t.co/E5qrZxw5DI」 / Twitter
7594591200220899443さんはTwitterを使っています: 「問題が起きる例 https://t.co/KJA07cZl0N」 / Twitter
Deligaturizing "=<" · Issue #751 · tonsky/FiraCode
7594591200220899443さんはTwitterを使っています: 「要は=&lt;というのはシェルの中ではless than or equal toのtokenではないのだ。そこでtokenizeしてはならぬ。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「VS Codeでprogramming ligaturesがおおむねうまく行くのはVS Codeの場合はLanguage serverと通信してプログラミング言語ごとに正確なtokenizationができているからなのであって、ターミナルとかでそういう期待をしてはならない。」 / Twitter
Cascadia Code 1910.04 | Windows Command Line
Makoto Kato ︎︎さんはTwitterを使っています 「Yu GothicはDirect Wirteのパラメーターいじると綺麗にレンダリングされる気がするが。昔Johnさんがいじって、各フォントをFirefoxでバランスよくなるようにしてた」 / Twitter
Microsoft EdgeでClearTypeフォントが読みやすくなる改善 - PC Watch
令掛ベインさんはTwitterを使っています 「フォントサイズ20px以上で黒を濃いグレー(#333 ぐらい)にするとWindowsでもわりと綺麗にみえるという謎ハック」 / Twitter

フォント情報処理用語

Terms Used in Font Information Processing

TrueType

アウトラインがぶれるフォント - にせねこメモ
TrueType命令でビット演算 - にせねこメモ
TrueType命令で擬似乱数: 線形合同法 - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(2) - にせねこメモ
TrueType命令で三角関数(sin, cos)を計算する - にせねこメモ
PPEM・ポイントサイズを表示するフォント - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(1) - にせねこメモ
初めてのTrueType命令: Windowsでは見えないフォントをつくる - にせねこメモ
逆引きTrueType instruction set - にせねこメモ

OpenType

Variable Fonts

ウェブ最大の「フォント問題」を巡ってアップル、グーグル、MS、アドビが団結|WIRED.jp
Variable Fontについて - console.blog(self);
Introducing OpenType Variable Fonts – John Hudson – Medium
Rockridgeさんのツイート: "時期未定だがGeckoでもOpenType Variation Fontsをサポートする予定。参照:https://t.co/xNstDMA0W6 / “Intent to implement: OpenType Variati…” https://t.co/Fi9rUDshGc"
Rockridgeさんのツイート: "Firefox 62では「ひとつのファイルでありながら複数のフォントのように動作する」Variable Fontが使えるようになっている。次のFirefox 63ではウェブ開発ツールのフォントエディタでVariable Fontの… https://t.co/9fPWTzsud8"
Variable fonts for Adobe After Effects — TypeDrawers

にせねこメモ

OpenTypeフォントで万年カレンダーをつくる - にせねこメモ
GPOSのCursive Attachment Positioningについて - にせねこメモ
フォントの気持ちになる - にせねこメモ
OpenTypeフォントで分数 - にせねこメモ
OpenTypeフォントでFizzBuzz(その2) - にせねこメモ
単語の最初のみ(最後のみ)に置換を行うOpenType Feature Fileの書き方 - にせねこメモ
OpenTypeフォントでFizzBuzz - にせねこメモ
「、」「。」を「,」「.」で表示するフォントをつくる - にせねこメモ
OpenType/CFFのフォントを読んでみる - にせねこメモ

OpenTypeカラーフォントと関連技術の動向
Creating and supporting OpenType fonts for the Universal Shaping Engine
OpenType の仕様策定の議論をのぞくには - しろもじメモランダム
Microsoft Typography - Typography | Microsoft Docs
OpenType specification - Typography | Microsoft Docs
OpenType font file - Typography | Microsoft Docs
OpenType - Wikipedia
OpenType - Wikipedia
CID (文字コード) - Wikipedia
PostScript fonts - Wikipedia
OpenType Feature File Specification
true type fonts - Microsoft OpenType specification for cmap - Stack Overflow
Jolg42/OpenType-Specification: OpenType Specification from Microsoft https://www.microsoft.com/typography/otspec/ & Apple https://developer.apple.com/fonts/TrueType-Reference-Manual/
adobe-type-tools/aots: Annotated OpenType Specification
OpenType フォントのカーニング情報をぶっこぬく - Qiita
Rockridgeさんのツイート: "Fx53:OpenTypeフォントのCMAPテーブル(文字コードからグリフインデックスへのマッピングを定義するテーブル)で、フォーマット13をサポート。参照:https://t.co/hn8hfp37WR / “1320665 …” https://t.co/bsONE8ETOn"
Archive of OpenType versions - Typography | Microsoft Docs
OpenType specification change log - Typography | Microsoft Docs
Script tags - Typography | Microsoft Docs

OpenType Variation Font

Rockridgeさんのツイート: "Firefox 61でOpenType Variation Fontsがデフォルト有効化される見通し。 / “Intent to ship: OpenType Variation Font support” https://t.co/SoxLue673P"
Rockridgeさんのツイート: "Fx62:Variable Fontがデフォルト有効化。 / “show_bug.cgi?id=1457266” https://t.co/3dEpnhCfI7"
Ubuntu 16.04でgooglei18n/fontviewをビルド - にせねこメモ
googlei18n/fontview: Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm
macOSのダークテーマ、可変フォントなどをサポートするMozilla Firefox 62

OpenType Sanitizer

khaledhosny/ots: Sanitizer for OpenType
一部のウェブフォントがより厳格なバリデーションのため表示されなくなる場合があります (影響あり) | Firefox サイト互換性情報
12月のマイクロソフトセキュリティ更新を確認する - INTERNET Watch Watch
縦書きにしたときにWebフォントの部分だけ表示されない - Google プロダクト フォーラム

WOFF

WOFF 2.0, the inside scoop | W3C Blog
WOFF File Format 2.0
フォントファイルから使いたい文字を抜き出してコマンドラインでWebフォント化するfontminが便利だった - Qiita
WOFF (Web Open Font Format) - ウェブデベロッパーガイド | MDN
フォント素人のWebエンジニアが、「フォントおじさん」に聞いてみた!Webフォントの最近の事情とか | HTML5Experts.jp
WebFont の WOFF2 対応によるサイズ最適化 | blog.jxck.io
Makoto Kato ︎︎さんのツイート: "font-display 使えばいいのに https://t.co/UENeh3Mhse"
ウェブフォントのエモい話 // Speaker Deck
Rockridgeさんのツイート: "MDN Web Docsでは、Webフォントの利用を見直しつつある。Open Sansを廃してFont Awesomeの使用も止め、Zillaフォントは英語文字に限って利用するようにした。ダウンロードサイズが減ってレンダリング時間… https://t.co/SLbO4rwN0g"
Web Fonts Working Group Charter
W3C Strategic Highlights: Strengthening the Core of the Web (Fonts) | W3C Blog
Puppeteer で静的サイトの Font Subsetting | blog.jxck.io
Web Font のメトリクス上書きによる CLS の改善 | blog.jxck.io

フォント

絵文字

won't fix: emoji hell
won't fix: この文字はカラー絵文字をつかうべきか、モノクロの絵文字をつかうべきか
ゆきまさかずよしさんのツイート: "GoogleのチーズバーガーのEMOJIにおけるチーズの配置はあり得ないとか指摘があって、CEOが謝罪して訂正を約束したとか https://t.co/9RMQmsgLzk https://t.co/pl9hRjDKLm"
Makoto Kato ︎︎さんのツイート: "色々あって一年放置したemojiのバグ直そうとしてるけど、本当フォントシステム辛い。ついでにこれ実装しちゃうとCSS Font4のfont-family: emojiも実装可能なんだけど、あれどうしようかな"
カラー絵文字パッチ制作の経緯 — KaoriYa
Googleがチーズバーガーの絵文字を修正、ほかにビールやチーズも - GIGAZINE
Makoto Kato ︎︎さんのツイート: "I have added new font preferences "https://t.co/NO9M7sv5yr-list.emoji" to control emoji font on Firefox 59+"
Makoto Kato ︎︎さんのツイート: "昔どっかの会社とFirefox OSのデバイス作ってた時に、この設定作らないとと思ってたやつなんだけど、今更入れた"
【やじうまPC Watch】Apple、70を超える絵文字を追加 - PC Watch

ビットマップ

GNU Unifont Glyphs
Unicode encoded Shinonome font for i18n xterm
渡邊フォント問題、非商用限定の無償利用可で解決へ | スラド
「渡邊フォント」がパクリと発覚 | スラド
k14 14-pixel japanese font for xterm
Various Software written by S. Kono
Hanazono fonts

PC Watch

IPA、あらゆる人名の文字化けがない「IPAmj明朝フォント」 ~約6万漢字を国際標準文字コードに対応 - PC Watch
IBMのオープンソースフォント「Plex」が日本語対応 - PC Watch
Google Fontに日本語フォントなど複数追加 - PC Watch

窓の杜

Unicodeコンソーシアム提供の“豆腐”対策フォント「Last Resort Font」がv14へ - 窓の杜
【レビュー】合字(リガチャ)をうまく活用したソースコード向けの等幅フォント「FiraCode」 - 窓の杜
【レビュー】「源ノ明朝」フォントを読めるギリギリにまで“破壊”した「源界明朝」 - 窓の杜
【レビュー】「Unicode 10.0」に追加された“変体仮名”を表示できる「Unicode変体仮名フォント」 - 窓の杜
モリサワ、スタンダード版「BIZ UDゴシック」「BIZ UD明朝」の無償提供を再開 - 窓の杜
Microsoft、数式フォント「MT Extra」をダウンロードセンターで無償公開 - 窓の杜
無償のホラーフォント8作品が一挙公開 ~「怨霊」フォントの暗黒工房が8年ぶりの更新 - 窓の杜
55種類の日本語フリーフォントをまとめて試せるWebサービス“ためしがき”がリリース - 窓の杜
え、ふぉんと? モリサワの“あの”フォントが「Windows 10 October 2018 Update」に標準搭載 - やじうまの杜 - 窓の杜
フォントワークス、8書体を“Google Fonts”で無償提供 ~GitHubにも公開 - 窓の杜
Unicodeコンソーシアムが提供する“最後の手段”フォント「Last Resort Font」【レビュー】 - 窓の杜
Releases · unicode-org/last-resort-font
Microsoft、コーディング向けフォント「Cascadia Code」にイタリック体を追加 - 窓の杜
【レビュー】165カ国170万人から集めた筆跡の平均をもとにしたフォント「Universal Typeface」 - 窓の杜
日本語プログラミングフォント「PlemolJP」v1.0.0が公開 - 窓の杜
ソースコード用フォント「FiraCode」、文字だけでプログレスバー・リングを表現可能に - 窓の杜
プログラミング向けフォント「白源」 ~英文の「Hack」と日本語の「源柔ゴシック」を合成【レビュー】 - 窓の杜

GIGAZINE

古式ゆかしい「変体仮名」が商用・エンベッド含め自由に使えるフォント「Unicode変体仮名フォント」 - GIGAZINE
無料&商用利用可能で幾何学的ながら明るく都会的なデザインのフォント「ROLAchan(ローラちゃん)」 - GIGAZINE

INTERNET Watch

江戸時代のくずし字1521文字種・8万6176件の字形データセット無償公開、ディープラーニングを用いた文字認識のサンプルプログラムも~NIIと国文研 -INTERNET Watch
「源ノ明朝」、デジタル向けだが「手の軌跡から生まれる骨格を探し出した」デザイン -INTERNET Watch

プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
明治時代の活字の味わいたっぷり!無料日本語フォント「Oradano明朝フォント」がステキ – Japaaan 日本文化と今をつなぐ
KHドットフォントシリーズ | 自家製フォント工房
Oradano Mincho : non JIS X 0213 public domain TrueType font
FSP95 comments
ASCII.jp:西麻布のバーでNTT Comの宮川エバに聞いたテッキーなお話 (1/4)
ターミナルでアイコンフォントを使う理由 | IIJ Engineers Blog
日本語の既定フォントが変更されました | Firefox サイト互換性情報
モリサワ「Windows 10 Fall Creators Update」での「UDデジタル教科書体」正式採用を発表 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
プログラミング用フォント Ricty
MORISAWA BIZ+ | 株式会社モリサワ
ワープロ専用機の拡大処理を再現したフォント「ワープロ明朝」
irori/wapuro-mincho: "ワープロ明朝" - 80's Japanese word processor like font
モリサワ OpenTypeフォントの共同開発で株式会社写研と合意 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
沈黙の巨人、「写研」が動いた “愛のあるユニークで豊かな書体”がわれらの手に届くまでの100年を考える (1/3) - ITmedia NEWS
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Helveticaが可変フォントになった。ウェイト・幅・サイズなどを変えると、全体の字形が変化する。ライブデモあり。 https://t.co/0XQCLGe6Ea」 / Twitter
Helvetica Now Variable | Monotype.
More of everything, for everyone. Introducing Helvetica Now Variable. | Monotype.
価格表記のフォント - 中原企画立案事務所

Android

池田 泰延さんのツイート: "先程のXperia (Android 7)のフォントの話をトゥギャりました。 HTML/CSSを書く人にとっては役立つ話かと思います。 /Xperia(Android 7)のフォントがウェブ制作者にとって残念 https://t.co/RG3ShObydP"
Makoto Kato ︎︎さんのツイート: "XPEDIAにはNoto Sans CJKは入ってるけど、skiaのせい。というか標準フォント変更機能が存在しててXMLファイルでいろいろ入れ替えられる。そのせいだよ。その機能入れたのSHARPだから、SHARPのせいということで"
Makoto Kato ︎︎さんのツイート: "Noto Sans CJK使いたかったらAndroid版のFirefoxを使えばでるんじゃないですかねー。(細かい調整入れた張本人としての発言)"
Makoto Kato ︎︎さんのツイート: "昔ICSの頃にGoogleとのミーティングあるからなんかお願いしたいことある?って言われた時、今のAndroidのデザインだとフォント列挙(フォントファイル単位)の方法が存在しなくて、フォントファイルのパスさえもとれないから、ホント困るって話をお願いしてもらったんだけどね。。。"
Makoto Kato ︎︎さんのツイート: "ブラウザ側からしてみれば、skia経由でしかフォントに触れないのでskiaがフォント選択の仕組みをそのままブラウザ側に実装しないと全くもってブラウザがやりたいこと実装できないんですよねー。skiaやってるのもGoogleなんでGoogleのせいですよ、SONYじゃない"
Makoto Kato ︎︎さんのツイート: "OEMベンダがカスタムしてるフォント名のアリアスとかもXMLファイルなんで、FirefoxもそのXMLファイルを解析してフォント選択に加えないといけないんですが、個人的には優先度低い。でもChromeとの互換性言われたらやらざるを得ないけど"
Makoto Kato ︎︎さんのツイート: "全端末が/system/fontsだけにあればよかったんですがねー。しかもフォント名のアリアスなしで"
Makoto Kato ︎︎さんのツイート: "なお、どの会社もskiaをカスタムしてなければいいですが、自社でコードいじってるとXMLファイルの件も保証できないです。Apacheライセンスだったはずだから、変更した場合でも変更点は闇のなかですねー。GPLとかだったら変更点を出してくれますが"
Makoto Kato ︎︎さんのツイート: "Android版Chromeで中華フォントが!!って話が昔よくフォーラムにあったんだけど、Androidのフォントを知れば知るほど、ホワイトリストしかない気がするって思うんだよね。Chrome Teamの範疇だと難しいよな、かわいそうにって思う"
Makoto Kato ︎︎さんのツイート: "(その面倒なところの架け橋をしたって、おそらく社内的にまったく評価されないだろうから、誰もやるはずがないという意味です)"

ものかの

デジタルフォントの風説 “仮想ボディ” – ものかの
日本語の活字はどうして全角なのか – ものかの
源ノ明朝/角ゴシック-1 フォントを整理しよう – ものかの
源ノ明朝/角ゴシック-2 サブセットとフルセット – ものかの
源ノ明朝/角ゴシック-3 デジタルの文字 – ものかの
源ノ明朝/角ゴシック-4 Unicodeの漢字統合 – ものかの
源ノ明朝/角ゴシック-5 フルセット版 – ものかの

Wikipedia

Linux Libertine - Wikipedia
Linux Libertine - Wikipedia
Junicode - Wikipedia
Junicode - Wikipedia
DejaVuフォント - Wikipedia
DejaVu fonts - Wikipedia

Twitter

macOS

みーた / UXエンジニアさんはTwitterを使っています: 「macOS Catalinaでヒラギノ角ゴPro/ProNが消えたらしい。 弊社サイトとかでも使ってるのでフォント崩れが起きている。 困る。大迷惑だ。 https://t.co/U6VTP3qSUc」 / Twitter
みーた / UXエンジニアさんはTwitterを使っています: 「私はアップデートしてないのでソースはこちら。 https://t.co/6rDoWnM7js」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNが消える - kyoto.nagoya Blog
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「フォントに依存するようなサイト云々ってのもあるけど、generic font-familyを指定してるけど、そのハンドリングが甘いブラウザがあるって感じ?」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「あー、Geckoもそのままではフォールバックしなさそうだな。 https://t.co/z1rtoiBdoo」 / Twitter
all.js - mozsearch
池田 泰延さんはTwitterを使っています: 「macOS CatalinaのChrome 77のフォント問題。 勘違いしている人が多いので説明。 Chromeのデフォルトだった「ヒラギノ角ゴシック ProN」がCatalinaで未バンドルになる ↓ 該当するフォントがなくなったため、Sans Serifが明朝体で表示される ↓ フォント指定の甘いサイトは全部明朝体に! https://t.co/Cil92P8PGO」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNがなくなって困ってるfont-familyの設定を考える。|榊原昌彦|note

四九六々(縦書き用)さんはTwitterを使っています: "フォントのGPUレンダリングの記事読んでた。これいいね。GPUの知識に乏しいので2週間くらいかけて勉強しながら実装してみたい。https://t.co/tgm1tNpGe9"
Resolution independent GPU text rendering demo
Rockridgeさんのツイート: "Mozillaの新ロゴに使われているZilla SlabフォントがGoogle Fontsに掲載されている。 / “Google Fonts” https://t.co/YCupNw3Xlj"
Zilla Slab - Google Fonts
なかのんクエストさんのツイート: "@azu_re リリース版では57からメイリオですが、当然、インストールされていない環境も考慮して、メイリオ → 游ゴシック → MS Pゴシックとフォールバックするようにしています。 https://t.co/plxRj8pPWE-list.sans-serif.ja 参照。"
池田 泰延さんのツイート: "ブラウザのフォントをユーザーが独自に変更している場合に、アイコンフォントが表示されなくなる。 これは盲点でした... #cssnite https://t.co/SAHptJF2o3"
Rockridgeさんのツイート: "Fx63:Skiaのフォントキャッシュサイズを10MBから5MBに減らした。Mac版やLinux版で消費メモリが減少する。 / “show_bug.cgi?id=1258781” https://t.co/RROLJbRguT"
Rockridgeさんのツイート: "Fx63:Android版の使用フォントにNoto Serif CJKを追加。Android 9 Pieでは中国語、日本語、韓国語のセリフ体フォントはNoto Serif CJKがデフォルトなんだとか。 / “1481031 -…” https://t.co/YkgoZDkwnt"
なかのん&マジックさんのツイート: "昔、ちょっとだけGeckoのgfxかじった身からすると実装面でその気持ちは分かる……"
OE Waku 𛄊𛀬さんのツイート: "げ、これマジだ。ひどい・・・・ > Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない https://t.co/8NVPQgfNFU"
Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない - Qiita
なかのん&マジックさんのツイート: "こういう時に、ブラウザエンジンを選択できないプラットフォーム、デバイスってのは困るよなぁ。特にこうやって、ブラウザの違いによって転送容量が大きく変わるってのは、事実上、従量制な回線を使ってると実害あるよね。"
ドッグさんのツイート: "Linux のフォント描画がどうダメなのか具体的に説明してくれてる | 'The sad state of font rendering on Linux | Infosec scribbles' https://t.co/kKTZMIe7Br"
The sad state of font rendering on Linux | Infosec scribbles
vyv03354さんのツイート: "㋿を表示するためだけのフォント https://t.co/jS45Zrl1Yb しかしFirefox以外はフォントを明示的に指定しないと表示できないようだ。"
グループ:emk_令和明朝 - GlyphWiki
FadisさんはTwitterを使っています: 「中国語の文字が多すぎてフォント作りが辛すぎて凝ったデザインのフォントが足りない問題、CNNでスタイル転送してフォントを生成することでほぼ克服されてて凄い」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VisualStudio2019の標準フォントは、昔ながらの「MSゴシック」ということに今頃気付いた。 プログラミング用フォントは、Anti-Alias / ClearType が効かない方が視認性が良くて好き。 (これらが効くフォントは、同じ文字が場所によって、微妙に異なる表示になったりする)」 / Twitter

Google Fonts
Google Fonts の日本語フォント - Qiita
Fonts (日本語) - ArchWiki
FadisさんはTwitterを使っています 「与えられた文字と似た特徴を持つベクタフォントを生成する論文。CNNでラスタフォントを生成する手法は以前からあったが、ベクタフォントの生成は困難だった。この手法はベクタ画像のラスタライズを微分可能にして、ラスタでの誤差をベクタを吐くNNまで逆伝播できるようにする https://t.co/nuVmmKq62g」 / Twitter
[2110.06688] DeepVecFont: Synthesizing High-quality Vector Fonts via Dual-modality Learning

PDF

その他

Online ASCII85 encoder - Online tools
paperai/pdfanno: Linguistic Annotation Tool for PDF Documents
Hack Patch!: PDF特殊機能(FormCalc編)
Hack Patch!: PDF特殊機能(リダイレクト編)
UsefullCode.net: 2016年04月 記事一覧
UsefullCode.net: 2016年07月 記事一覧
PowerPoint for Macが吐くPDFが重いんです - Qiita
タグ付きPDFとはどんなもの | アンテナハウス PDF資料室
Arch Linuxで日本語pdfを閲覧したり、辞書を表示する | 3log
「LibreOffice 6.3」リリース、UI、性能などにフォーカス | OSDN Magazine
PDFファイルを開くだけで暗号化された内容が流出する脆弱性「PDFex」が発見される - GIGAZINE
Windows上でもPDFファイルのパスワードを総当たりで解析できるフリーソフト「PDFCrack」 - GIGAZINE
iPhoneでJPEG画像やPDFファイルを開くだけでハッキングされる可能性 - GIGAZINE
PDFから「使える」テキストを取り出す(第1回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第2回) - golden-luckyの日記
CC0ライセンスの空白PDFファイル - Qiita
PDFから「使える」テキストを取り出す(第3回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第4回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第6回) - golden-luckyの日記
Takashi KawasakiさんはTwitterを使っています: 「Unicode→GIDを逆引きして文字コード取得すると、メイリオみたいなフォントだと、杮(こけら)と柿(柿)が区別できなかったりする。つまり同じグリフなのね。 PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記 https://t.co/bNEVURablY」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「ああ、僕のレビューは確かに良くないかも。日本語のPDFの本の解説本って割と少ないので過度な期待をしちゃっただけなんですよ。 https://t.co/lJsLRPz6Zl」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています: 「今日のブログ書くのにamazonでこの本を見たら、求めるものを勘違いしている方によるレビューばかりでかわいそうになった。ふつうに良い本だと思います "John Whitington『PDF構造解説』 https://t.co/jURHqtACSt」 / Twitter
2020年 年賀状 - golden-luckyの日記
PDFが読めるようになるお話 | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介!
プログラマーから見たPDFファイル | アンテナハウス PDF資料室
PDFが世界中で広く使われるようになった理由とは? - GIGAZINE

Adobe

注目の脆弱性:Adobe Acrobat Reader DC ドキュメント ID に起因する、リモートでコードが実行される脆弱性
TALOS-2017-0505 - Cisco Talos
PDF 2.0 でドキュメントを次世代のステージへ - Adobe Blog
ISO 32000-2:2017(en), Document management — Portable document format — Part 2: PDF 2.0
ISO 32000に準拠するPDFってどんなもの? | アンテナハウス PDF資料室
ISO 32000-2:2017 文書管理-ポータブル文書フォーマット-第2部:PDF 2.0 | 日本規格協会 JSA Group Webdesk

OCR

tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする - Qiita
Ubuntuにtesseract-ocrをインストール - Qiita
スキャンしたpdfファイルにOCR処理を行い,テキスト埋め込みpdfを作成する - Qiita
日本語OCRライブラリNHocrを利用してみる - Qiita
Nami Ogawaさんのツイート: "古めの論文でそのままPDF落とすと文字も読みづらくて本文検索もできないようなとき、google検索でキャッシュリクエストすればOCR済みのHTMLバージョン返ってきてめっちゃ便利っての今気づいた https://t.co/2yBG3Cymsr"

長期署名

PAdES - Wikipedia
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第2回) PDF署名とは - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第3回) PAdES仕様の構成 - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第4回) PAdES Basic - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第5回) PAdES Basicと署名ポリシ - livedoor Blog(ブログ)
自堕落な技術者の日記 : 追悼 Adobe CDS - livedoor Blog(ブログ)

PDF.js

PDF.js - Wikipedia, the free encyclopedia
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
MozillaのPDF.Jsを利用してJavaScriptでPDFレンダリングをカスタマイズ - WPJ
PDF.js の導入方法と苦労した話 (フェンリル | デベロッパーズブログ)
pdf.jsを使いブラウザで見られるPDFスライド表示ツールを作った | Web Scratch
[pdf.js] テキスト選択出来るスライド表示ライブラリを書いた | Web Scratch
PDF.jsを使ってみる | Tips Note by TAM
PDF.js で遊んでみた (ページの描画,テキスト・注釈の表示など) - きちぽよ〜
mozilla/pdf.js: PDF Reader in JavaScript
チュートリアル:Aurelia.jsとPDF.jsで実装するPDFビューワーの作り方 - WPJ
core-jsがメンテされていない理由 - Qiita

libHaru

LibHaru - Wikipedia, the free encyclopedia
libHaru
libharu/libharu
libHaruの部屋
PHP::Haruで基本的なPDFを作成する (1/3):CodeZine(コードジン)

PDFium

Google Chrome PDFエンジンがオープンソース化
米Google、ChromeのPDFレンダリングエンジン「PDFium」をオープンソース化 | OSDN Magazine
Issues - pdfium - PDFium - Monorail
pdfium Git repositories - Git at Google
SDK Docs - Foxit Developer Portal | PDF SDK technology
にっき♪: PDFium
pvginkel/PdfiumViewer: PDF viewer based on Google's PDFium.

PDFtk

PDFtk - Wikipedia
PDFをコマンドラインから編集できるPDFtk使い方メモ - c-bata web
PDFtk - The PDF Toolkit

SumatraPDF reader

Free PDF Reader - Sumatra PDF
sumatrapdfreader/sumatrapdf: SumatraPDF reader

pdfseparate

Poppler:Pdfseparate の使い方 | PDF
Ubuntu Manpage: pdfseparate - Portable Document Format (PDF) page extractor
PDFを各ページに分割(切出)するコマンド pdfseparate - それマグで!
kmutoさんのツイート: "gs由来のpdfseparateでもboxは全部飛んじゃうんだな"
Poppler:pdfunite の使い方 | PDF
Linux とかで PDF を結合とか n-up とかするコマンドたち - polamjaggy
Ubuntu Manpage: pdfunite - Portable Document Format (PDF) page merger
wgetコマンドで外部からPDFを取り出してpdftkでPDFを結合しよう - Qiita

yomu

yomu
ta2gch/yomu: 英和辞書付きPDF閲覧ソフト

Google

Google Chromeに脆弱性か、ユーザー追跡の不審なPDF発見 - ITmedia エンタープライズ
Chrome PDFビューワーの情報漏えいの脆弱性についてまとめてみた - piyolog
ゆかたゆさんのツイート: "Android版のChromeさんはpdfファイルを落とす前に確認して欲しいのです💢 (これ出来るんですか?私が無知だったらごめんなさいなのです)"
tkr@合格0,不合格6,発表待ち1さんのツイート: "てかpdfのフォーマット知らないんだけどページごとのストリーミングみたいなことできないのあれ 数十ページあるやつ全部落とすの通信量やばい"
なぎせ ゆうきさんのツイート: "ページ単位のタグがあったと思うけど、表示に必要な情報が後ろにあったりしたような(うろ覚え… "
あんどうあんど🔞休職→求職中さんのツイート: "最後のほうに、属性情報とか索引とかある。… "

MS

「Edge」のPDF閲覧機能が強化、新しいセキュリティ機能も ~Insider Preview - 窓の杜

PDF/UA

PDF/UA - Wikipedia
Tomaz's dev blog: Accessibility checker and support for PDF/UA specs
PDF/UA-1(ISO 14289-1)について | アンテナハウス PDF資料室

PDF/X

PDF/X - Wikipedia
PDF/Xについて (1) PDF/X-1a
PDF/Xについて (2) PDF/X-3
PDF/Xについて (3) PDF/X-2

PDF/A

PDF/A - Wikipedia
PDF/Aとはなにか | アンテナハウス PDF資料室
PDFAOutline.pdf
PDF/A 概要
LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る - Qiita
timelerさんはTwitterを使っています 「文書PDFは基本的にPDF/A以外は信用してはならない。」 / Twitter
tkrさんはTwitterを使っています 「wordでインターネットからDLしたdocxファイルを開くと「保護ビューのままにしておくことを推奨」みたいな警告出てこれはマクロとかあるから分かるんだけど、pdfでも同じ表示出るやん?pdfってそういう悪いこと可能なの?」 / Twitter
timelerさんはTwitterを使っています 「PDF/Aは大雑把に、フォントとメタデータ以外の埋め込みが禁止されているので安心。 どの環境でも読めることが保証されるのでさらに安心。」 / Twitter

Wikipedia

Category:Mozilla Firefox - Wikipedia
Category:FLOSS関連のスタブ項目 - Wikipedia
Portable Document Format - Wikipedia
Ascii85 - Wikipedia
Extensible Metadata Platform - Wikipedia

Twitter

ToUnicode, OpenType

keiichiro shikano λ♪さんはTwitterを使っています 「今日の学び:PDFの/ToUnicodeは、OpenTypeフォントの中のcmapから得られる情報と食い違う場合がある!(信用できるのはOpenTypeフォントの中の情報)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「しかしOpenTypeのcmapを読むのはパターンが多すぎてめんどくさいなあ」 / Twitter
画力・博士号さんはTwitterを使っています 「OpenTypeの cmap テーブルは一般には単射ではないのでPDF中での逆変換に相当する /ToUnicode CMap で正確に復元できるとは限らないんですよね(どうしてこんな仕様に……)」 / Twitter
TrueRoadさんはTwitterを使っています 「AJ1フォントなら逆に無い方が都合が良い場合が多いので、原ノ味フォント用にToUnicode CMap削除ツールなんてものを作りました。 https://t.co/Da7Punx9h3」 / Twitter
trueroad/pdf-rm-tuc: Remove ToUnicode CMap from PDF
keiichiro shikano λ♪さんはTwitterを使っています 「確かに、フォントが埋め込まれてる場合にはいっそいらないよねこれ…」 / Twitter
TrueRoadさんはTwitterを使っています 「@golden_lucky 源ノとかAI0フォントの場合はToUnicode CMapが無いとテキスト抽出できなくなってしまいます。PDFにフォントが埋め込まれていても、確かcmapテーブルは入ってなかったと思います。」 / Twitter

tagged PDF

keiichiro shikano λ♪さんはTwitterを使っています 「タグ付きPDFを「きちんと」出力できて、書籍の組版できるソフトウェア、現状だと何があるだろう。InDesignには「TCreate Tagged PDF」のオプションはあるっぽいが、これはどこまで使いものになるのかにゃあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「Chromeがタグ付きPDFがデフォルトなのでVivliostyleはできるのかな。AHFormatterはできそうだけど、これも実際のところはどんな感じなんだろう。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「pdfTeXは「きちんと」はいまだにできてないが、ConTeXtはできるらしい。」 / Twitter
ひだるま@技術書典9新刊有さんはTwitterを使っています 「タグ付PDF、1.7と2.0でちょこちょこ違うし私用のマシンだと十分な検証環境ないんだよな」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「PDF 2.0、ぜんぜんしらないなー」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「父さんEPUBは捨ててtagged PDFにベットしようと思うんだ」 / Twitter
Tokushige KobayashiさんはTwitterを使っています 「AH Formatterのタグ付きPDFを使っているのは海外ユーザーだけだと思います。逆に、OSDCはタグ付きPDF出力できないですが、海外から今どき非常識だと叱られたことがあります。非構造化文書からのタグ付きPDF出力は仕様を満たすための無意味なタグ付け~Pタグとspanタグ羅列のような~になるだけですが。」 / Twitter
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky AH Formatterはもちろんタグ付きPDF出来ます。 https://t.co/fLS6som2nR だいぶ昔ですが、私がその実装に携わっています。」 / Twitter
AH Formatter V7.0 - PDF出力
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky Chromeのタグ付きPDF出力によりVivliostyleでも出来るようになるはずなのに、タグ付きにならない不具合に気付きました。どうもChromeのタグ付きPDF出力が特定の条件(JSでコンテンツが生成されてる、CSSでページサイズ指定ある)で無効になるChromeのバグのよう。さらに調べてChromeにバグ報告します。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@MurakamiShinyu なるほど、ブラウザでDOMを作る前にHTMLの構造が手に入っている場合にのみ生成できる、とかだとつらそうですね…」 / Twitter

リーダーモード

keiichiro shikano λ♪さんはTwitterを使っています 「いまでも普通のPDFをリフローできるんですよ https://t.co/y4wzFrjk9J」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「まあ、これはリーダーに依存した不完全なもので数式とかルビとかページまたぎとかは全然ダメなんだけど、大筋は問題なく読めるし、どうしても読めなかったらふつうのページ表示に戻せば必ず読める。」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky えっ。なにこれ。やば?どうなってるの?とか思ったんですがこれすごいすね」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@mhidaka ご利用のスマホのAcrobatアプリで「リーダーモード」を選べば誰にでも未来が待っているんですよ!(実はデスクトップのAcrobatですでに十年位前にはあった機能)」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky やべー技術力じゃん…」 / Twitter

サブセット?

keiichiro shikano λ♪さんはTwitterを使っています 「PDFとPostScript、ページ記述に使っているモデルこそ同じだが事実上は別ものなんだけど、Wikipediaの「PDFはPostScriptのサブセット」という説明はどこ由来なんだろう https://t.co/y9OQ9SSlSp」 / Twitter
僕「PDFとは何か知りたい」 - Qiita
keiichiro shikano λ♪さんはTwitterを使っています 「「ErlangはPrologのサブセット」みたいな違和感がある(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「CDはDVDのサブセット」とかのほうがわかりやすい?(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」に違和感があるのといちばん近い気がしてきた。Haskellを知りたくて圏論について調べたら迷子になるように、PDFを知りたくてPSについて調べたら迷子になります。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」も「PDFにはPSのサブセットが含まれる」も、それ自体は偽とは言えないけど「あえて」主張されると「せやな」という気持ちになるという意味で、「偶数全体の集合は素数全体の集合の空でないサブセットを含む」は実に膝を打つたとえ。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「「空でないサブセットって言えばいいのかな?」「偶数全体の集合は素数全体の集合の空でないサブセットを含みます!」」 / Twitter

Mozilla

RockridgeさんはTwitterを使っています: "PDF.jsは「Canvasとテキスト、アノテーションの3つのレイヤーを使って描画しています」。「Canvasの描画の上に透明なdivにテキストを流しこんだり、クリック出来るようにリンクを置いたりしています」。 / “[pdf.…” https://t.co/QNrf99J3SA"
vyv03354さんはTwitterを使っています: "pdf.jsがフォントを埋め込んでいない日本語PDFで文字化けする問題ようやく修正した。自分で本体に投入したTextDecoderが早速役に立った。やはり自分でhackしないと誰も直してくれないことを再確認。#もずでぶ"
vyv03354さんはTwitterを使っています: "それにしてもフォントを埋め込まないでIdentity CMapを使うのは禁止されているはずなのに https://t.co/91wpwzRd 違反している日本語PDF多すぎ。"
vyv03354さんのツイート: "pdf.jsで縦書きに対応。本体のwriting-modeサポートに依存しているような気がしていたが別にそんなことはなかったぜ! #もずでぶ"
vyv03354さんのツイート: "https://t.co/1vtC7zUP2m 現時点の制限事項: フォントが埋め込まれていないと、縦書き用字形は使われず句読点や括弧なども横書き用のままです。"
vyv03354さんのツイート: "@teramako https://t.co/F1f8jRve と同じ問題ですね。この問題があるのでフォントを埋め込んでいない日本語PDFは高確率で化けます。"
vyv03354さんのツイート: "pdf.jsは日本語の数学論文がほとんど全滅で、issueも投げたけど無視されてる。https://t.co/F1f8jRve やっぱりハックしてpull requestを送らないとダメか"
Rockridgeさんのツイート: "Fx48:PDF.jsやGoogleドキュメントなどで、ヘッダ/フッタを印刷すると本文領域を上書きしてしまう場合、ヘッダ/フッタを印刷しないようにした。 / “1250674 – Don't print header/foote…” https://t.co/USoaeYbKB4"
Rockridgeさんのツイート: "Fx55:MortarプロジェクトのPDFビューワを有効化するための設定が追加された。pdfium.enabledがそれだが、今のところtrueにしても現行ビューワの代わりになるわけではない。 / “1338476 - [jsp…” https://t.co/k0c4dhwqRG"

@espresso3389

Takashi KawasakiさんはTwitterを使っています: 「PDFの仕様が曖昧過ぎて話にならないのは事実としても、普通は、PDFを作成する側のプログラムにもメジャーなものがいくつかあって、そいつらの癖とかバグを一通り対応すると、まぁ、世の中の99%ぐらいのファイルは処理できちゃんだけども、残りの1%はどこかの誰かさんが作ったであろう、名も知れ(文字数」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「面白いのは、当然ながら、Acrobatでは開けるからこそ流通するわけなんだけど、要はAcrobatのデコーダも相当謎で一体、どんな実装してんだっていうのはある。逆に最近のバージョンで開けなくなったPDFというのも少なからずある。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「テキストの並びを順序通りに切り出す処理、GUIアプリだとユーザーが暗黙のうちに正しい方向に選択してくれるというヒューリスティクスというか人間を使った手法があったりする。というか、僕の書いたアプリではそれを使ってたりする。まぁ、全然完璧じゃないんだけどね。 https://t.co/HJC7lQYqsT」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Microsoft Print to PDFっていうクソ仮想プリンタが、仕様違反とは言えないまでも、Page contentの q Q の外に CTM いじるような命令ぶっこんで来るせいで、content 追記するととんでもないところに描画されちゃって困ってる。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFをある程度理解できるようになるとわかることは、クソエンコーダが多すぎて、個別のPDFの事情なんてさっぱり分かりません。諦めてくださいってことになるってことです。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Adobeの実装すら、・・・・ってなることが多いのに、それを他のソフトで再編集でもしようものなら、もうゴミになることは火を見るよりも明らか。 にもかかわらず、Adobeすら再編集機能を持っていたりするので、憎悪しか感じない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFは一度作ったら編集なんてやるべきじゃない。もっというとデータとしての活用もやるべきじゃない。人間による閲覧用途、印刷用途、あとはクリティカルじゃない検索程度にとどめるべき。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「あと、仮想プリンタ。あいつらも諸悪の根源。基本、印刷側ソフトウェアは、文字コードの羅列から、印刷のためのグリフの配列を生成して、それをプリンタに送信している。そのグリフ配列から、元の文字コードに戻せるか?って言われると、原理的には必ずしも元には戻らない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「仮想プリンタは無理を承知で頑張ってはいるけど、無理なものは無理。メイリオとか、かなり多くの文字が同じグリフを参照してたりするんだよ。杮と柿とか。あとね、アラビア系の文字に関しては、実のところ並び順すら怪しい。頑張って解析するけどさ。リガチャとか元に戻るわけねーだろっていう。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「この辺は、ドライバ書くのに、各言語に対するかなりの知識が必要になるわけです。僕日本人なので、頑張っても日本語、英語、あと・・・、ドイツ語は怪しい。ポーランド語とか知るわけねーだろみたいな範囲で頑張ってヒューリスティクス含めて実装するのね。」 / Twitter

Tsukasa #01 [要出典]さんのツイート: "oO( 残念ながら、pdf.js はほぼ使い物にならないという評価をせざるを得ない。 )"
勝(まさる)さんのツイート: "PDFはPostScript派生なんだけど、後ろに続くテキストを圧縮してエンコードしてとかできるんで、ファイルを生で開いても読めないことが多いですね。"
aminophenさんはTwitterを使っています: 「&gt; TeX界隈だと、DVIPS経由で生成されたPDFではType 3フォントが使われることになっているので、この理由で文字が取れないPDFファイルはわりと目にします。 ここで耳寄り情報を1つ:最近,dvips の作者が「Type 3 フォントを使った PDF から文字を取り出す実験」をしている。 https://t.co/khjhSuDwWY https://t.co/BL8MLE0wUn」 / Twitter
rokicki/type3search: Working on making Type 3 bitmap fonts used in dvips-generated Postscript generate searchable PDF files.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Acrobatのルート証明書からもチェインしたデジタルID/証明書で、LetsEncrypt的なの出ると良いなぁ。 (AdobeはPDF用ルート証明書を独自にして、家元商売している印象が…) https://t.co/xhoeHR28MP」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これ1個で済むという PDF viewer が見つからない. 1. 白黒反転できる(夜まぶしいから) 2. メモがつけられる(PDF 書き換えでなく) 3. 1ファイルに複数ウィンドウ(別の場所見たい) 4. 大きな PDF でも負けない強い子 てか,PDF ほびろん!」 / Twitter
R. ShioyaさんはTwitterを使っています 「パワポやエクセルで作った図をクリップボード経由で PDF に変換できるツールを作りました.MetafileToEPS を使ってた事がある人にはわかると思いますが,要はあれの PDF 版です.Windows 上で TeX で論文を書いている人には便利かもしれません. https://t.co/mq9F7tCsc7 https://t.co/Xb6EOv2j2T」 / Twitter
shioyadan/kuroko: Kuroko is a simple command line tool to convert EMF to PDF. You can download a pre-compiled binary from https://github.com/shioyadan/kuroko/releases.
R. ShioyaさんはTwitterを使っています 「@KuniSuzaki 私も、スライドのサイズを図のサイズぴったりにしたパワポを作って PDF に印刷して… みたいな事をしていて毎回あまりに面倒なのでこれを作りました。今のところ API の制限で半透明なオブジェクトが崩れてしまうのですが、それ以外は多分きれいに PDF になってくれると思います。」 / Twitter
R. ShioyaさんはTwitterを使っています 「たまにある PDF でコピペすると文字が化けるやつ,どうも PDF ではフォントを埋め込むと文字コードが各フォント内固有の ID(グリフID)に変換されて格納される仕様で,その上で処理系がさぼってグリフID→元コードへの逆変換表を一緒に埋め込まなかった場合は復元不能で化ける・・・ ということらしい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PDFは表示・印刷用フォーマットなので、元情報が欠落しないはず、という仮定・期待に無理があるような、、、 (再加工用には別フォーマットで)」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@a4lg えええ…もしかして単純に同一グリフの複数コードのうち小さいのを返しちゃうんですか…それは邪悪な…」 / Twitter
Tsukasa #01さんはTwitterを使っています 「@tetsutalow 私が実際に遭遇したケースでは間に PDF が挟まったことがきっかけ……というのが大部分ですね (同一グリフ [字形] を康熙部首と CJK 統合漢字とで共有しているフォントの場合、PDF ネイティブのグリフ ID から文字列に戻す場合に混乱するのではないかと)。」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu 正論はそうでも事実としてPDF内のテキストはそれなりに検索性があることが求められているわけで、そこでグリフに引っ張られてコードが変わっちゃうのはやっぱり邪悪だと思っちゃいますね。特にこんな、それで検索することまずないでしょってコードに置き換えちゃうのは特に悪い挙動。」 / Twitter
画力・博士号さんはTwitterを使っています 「PDFについて「仕様全てを把握してる人類少なすぎる」のも「仕様自体も割と終わってる」のも正しいと思うけれども全てを把握している必要はあんまりないです(composite fontのfont dictionaryを把握すれば大体全部理解したようなもの.)」 / Twitter

Takashi KawasakiさんはTwitterを使っています 「話は変わるが、TIFF、PostScript、PDFという、アドビ(or その前身)という会社が生み出したそびえ立つ糞の山シリーズ、こいつらを処理するライブラリ群のセキュリティはマジでヤバい。libtiff/GhostScriptは一言で言うと使ってはならない。PDFならpdfium以外は使うな。」 / Twitter
ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter

SWF

LWF by GREE
gree/lwf: LWF - Lightweight SWF
untitled - swf-file-format-spec-v10.pdf

Audio

その他

大語彙連続音声認識エンジン Julius
GNU Compact Disc Input and Control Library (libcdio)
本の虫: PulseAudioの問題
ネットワークオーディオと「OpenHome」 | 言の葉の穴
ハイレゾ対応の音楽再生ソフト「TuneBrowser」v4、“OpenHome”に対応 ほか - ダイジェストニュース - 窓の杜
アップル、iOS 11でFLAC形式のオーディオ再生をサポート。ほかにOpusや3Dサウンドにも対応へ - Engadget 日本版
ドルビーラボラトリーズ - Wikipedia
Dolby Laboratories - Wikipedia
「ハイレゾCD」登場、MQA×UHQCDでユニバーサルから100タイトル - AV Watch
Google Developers Japan: Resonance Audio がオープンソースに
オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む - .mjtの日記復帰計画
12-13 mp4sa - Qiita
3kbpsという低いビットレートでも高音質を実現するコーデック「Lyra」をGoogleが開発 - GIGAZINE
Microsoft SatinオーディオコーデックはAIを使用してSkype Silkよりも優れたパフォーマンスを得た
WFH で Audio Worklets の使用率が増えている話

Web

WAV

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み | NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
RIFF/WAVE形式
AVI RIFF ファイルのリファレンス
ビット毎秒 - Wikipedia
パルス符号変調 - Wikipedia

Vorbis

Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
Xiph.org - vorbis.git/summary
libvorbis-1.3.5
Xiph.org - ogg.git/summary
libogg-1.3.2

Opus

Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia, the free encyclopedia
Opus Codec
Development – Opus Codec
Opus-1.1.2
無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE
フリーのオーディオフォーマット「Opus」がIETF標準に、初の正式版実装もリリースされる | OSDN Magazine
ロイヤリティーフリーのオーディオコーデック「Opus 1.2」リリース | OSDN Magazine
Rockridgeさんのツイート: "Fx64:Opus 1.3のリリース候補版をサポート。 / “1487049 - Update opus to revision v1.3-rc-15-g38fca4a2” https://t.co/wuJ4GWNiKA"
【藤本健のDigital Audio Laboratory】MP3より高音質! YouTube/Discord採用の「Opus」コーデックを試した-AV Watch
【藤本健のDigital Audio Laboratory】「Opus」と「AAC」どっちが高音質? 周波数分析でコーデック比較した-AV Watch

FLAC

FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
Xiph.org - flac.git/summary
FLAC-1.3.2
音質劣化のない可逆エンコーダ「FLAC」で音楽を楽しもう | OSDN Magazine
可逆圧縮オーディオコーデック「FLAC 1.3」リリース | OSDN Magazine
日記 (2016 年 7 月上旬)

MP3

MP3 - Wikipedia
MP3 - Wikipedia
[日本工業規格(JIS)] |書誌詳細|国立国会図書館サーチ
Mpeg Audio規格日本語版(JIS X 4323): みやじぃの徒然レコーディング(でないことがほとんど?)日記
MP3のライセンス問題はその後どうなったのか : Timesteps
【藤本健のDigital Audio Laboratory】第553回:iTunesのVBRとCBR、どちらの音が良い? - AV Watch
CBR,VBR,ABRの違いについて - 目的にあったエンコードモードを選ぶ - 道すがら講堂
MP3の特許を持つTechnicolorの特許権が消滅 - GIGAZINE
Fedora、MP3をフルサポートへ | スラド Linux
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
「MP3が死んだ」という報道の本当の意味とは? - GIGAZINE
とみながたけひろさんのツイート: "このツイートをするために久々に"takehiro.c"でぐぐったんですが、衝撃の事実が。LAMEがllvmのテストスートに含まれている関係で、世界中のgitレポジトリにtakehiro.cが含まれている…オープンソースは勝手に増殖するのを実感した。こええwww https://t.co/ScmjG3L19T"
MP3ファイルを覗いてみる(基本型)
mp3ファイルの構造
MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) - Y-Lab. Electronics
ID3v2 仕様書日本語訳 | takaaki.info
デジタルオーディオの仕組み - 音声圧縮の原理 MP3, AAC, ATRAC, etc. - white croquis
MP3の仕様
technosaurus/PDMP3: Public domain mp3 decoder
lieff/minimp3: Minimalistic MP3 decoder single header library

libsndfile

libsndfile-1.0.28
The libsndfile API
雑メモ: libsndfile を使ってみた | anobota
[vDSP][信号処理]オーディオ・音声分析への道3 Libsndfile - Qiita

HD Audio

HD Audioとは|Intel HD Audio|High Definition Audio - 意味/解説/説明/定義 : IT用語辞典
High Definition Audio - Wikipedia
Intel High Definition Audio - Wikipedia, the free encyclopedia
Intel High Definition Audio - OSDev Wiki
PC Speaker - OSDev Wiki
High Definition Audio Specification
Customizing HD Audio Driver Volume Settings (Windows Drivers)
藤本健のDigital Audio Laboratory
https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
Advanced Linux Sound Architecture - ArchWiki
Advanced Linux Sound Architecture/トラブルシューティング - ArchWiki
Windows-driver-samples/audio/sysvad at master · Microsoft/Windows-driver-samples
藤本健のDigital Audio Laboratory
Intel、次世代PCオーディオ規格「High Definition Audio」
コグノスケ
藤本健のDigital Audio Laboratory
OSDev.org • View topic - Intel High Definition Audio problem. [SOLVED]
OSDev.org • View topic - Intel HD Audio - DMA buffers not working

Audio Codec 97

Audio Codec 97 - Wikipedia
AC'97 - Wikipedia

Audible

Audible - Wikipedia

AIFF

AIFF - Wikipedia
Audio Interchange File Format - Wikipedia

Hi-Fi

Apple Lossless

Apple、iPodなどで採用されている音声可逆圧縮コーデック「Apple Lossless」をApache Licenseで公開 | OSDN Magazine
Apple Lossless - Wikipedia
Apple Lossless - Wikipedia
macosforge/alac: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
Apple Lossless Audio Codec

Apple Musicがより高音質なHi-Fiをサポートする可能性 - GIGAZINE
Spotify HiFiについて知っておくべき5つのこと - Spotify Japan — For the Record
ドルビーアトモス
ドルビーオーディオ
ロスレスとは - コトバンク

AAC

Via Licensing、High-Efficeincy AACのライセンス料を決定
【藤本健のDigital Audio Laboratory】「Opus」と「AAC」どっちが高音質? 周波数分析でコーデック比較した-AV Watch
Advanced Audio Coding (AAC) - Via Corp
License Fees - Via Corp
AAC License Fees – Standard Rate and Alternative Rate Structures - Via Corp
FAQ - the Alternative Rate Structure - Via Corp
AAC - Wikipedia
Advanced Audio Coding - Wikipedia
HE-AAC - Wikipedia
High-Efficiency Advanced Audio Coding - Wikipedia

MPEG-4 SP

MPEG-4 - Wikipedia
MPEG-4 - Wikipedia

AMR-WB+

AMR-WB+ - Wikipedia
Extended Adaptive Multi-Rate – Wideband - Wikipedia

AMR-WB

AMR-WB - Wikipedia
Adaptive Multi-Rate Wideband - Wikipedia

AMR

Adaptive Multi-Rate - Wikipedia
Adaptive Multi-Rate audio codec - Wikipedia

OpenAL

OpenAL: Cross Platform 3D Audio
OpenAL - Wikipedia
OpenAL - Wikipedia
openAL入門 - 1.音を鳴らそう! - すこしふしぎ.
NPE.blog: OpenAL

ドルビーデジタル(AC-3)

ドルビーデジタル - Wikipedia
ついにドルビーデジタル(AC-3)の特許権が消滅 - GIGAZINE
AC-3(ドルビーデジタル)の特許が失効 | スラド YRO

OSDN

オープンソースのDAWソフトウェア「Ardour 5.9」リリース | OSDN Magazine
KDEの新プロジェクト「Elisa Music Player」が早期版をリリース | OSDN Magazine

POSTD

オーディオアプリ開発でありがちな4つの間違い | プログラミング | POSTD

GitHub

C* Music Player
cmus/cmus: Small, fast and powerful console music player for Unix-like operating systems.
pytorch/audio: simple audio I/O for pytorch
Command-line cloud music player for Linux.
tizonia/tizonia-openmax-il: Command-line music player for Linux with Spotify, Google Play Music, YouTube, SoundCloud, Dirble and Deezer support.
zevv/bucklespring: Nostalgia bucklespring keyboard sound
keijiro/Lasp: Low-latency Audio Signal Processing plugin for Unity
みむみむ.net - Software
mimura1133/mm_STEP_M: STEP (タグエディタ) の派生版

Twitter

椚座 くにゅくにゅ/// 淳介さんのツイート: "G.729(VoIPなどで使われている音声圧縮アルゴリズム)に関して,関連していた特許のほとんどが存続期間満了となったことにより,2017年1月からロイアリティフリーになったと,パテントプールからの発表が https://t.co/Boly0QfWAL"
SiproLAB Telecom - patent pool creation and management for standardized telecommunication technologies
Rockridgeさんのツイート: "Fx54:デスクトップ版でサラウンド音声の再生をサポート。参照:https://t.co/tNwp96No0Z https://t.co/wV46pjQgkU / “1321502 – Support audio 5.1 on …” https://t.co/Qe9p0Z24fa"

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
とみながたけひろさんはTwitterを使っています 「よくある誤解 mp3って周波数領域で信号記録してるんでしょ?1kHzの正弦波とか簡単に作れないの? 正弦波を周波数解析して特定の周波数の信号一つと解析できるようなスーパーテクノロジーはない(と言っても良いぐらい難しい)しそんなものはmp3では使われていない」 / Twitter
FIRシステムにおけるリサンプリングの基礎づけ - Qiita
音響科学 e-Learning教材

Video

その他

ASCII.jp:まずは動画の構造について教えるぜ!【コーデック編】 (1/4)|エンコードテクニック虎の巻
Stagefright入門
VISIO-OpenMAX.vsd
Intel Quick Sync Video(QSV)を使ってみる ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
日本初となるUltra HD Blu-ray市販ソフトは夜景 | スラド
ASCII.jp:【動画比較】AMDのFluid Motionならアニメが60fpsでヌルヌル動く!! (1/2)|画面が滑らかになる! AMDの最新技術はココがスゴイ
動画の「テレシネ」「逆テレシネ」の意味と違い
IDTのフレーム速度変換ICは動き検出・補正・フレーム補間のアルゴリズムがカギ - セミコンポータル
Apple Safari、YouTubeの4K動画再生非対応に。YouTube、4K VP9エンコードのみに切り替え - PRONEWS
第700回:タイムラプス とは - ケータイ Watch Watch
オープンソースのマルチメディアフレームワーク「GStreamer 1.12」が公開 | OSDN Magazine
Windows 10プレビュー版、HDR映像のキャリブレーション機能を搭載 - PC Watch
Windows 10 RS5、屋外など非常に明るい場所で動画の明るさを自動調整 - PC Watch
デジタルでなくフィルムで撮影される『スター・ウォーズ』、その理由とは|WIRED.jp
動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita
Cinavia - Wikipedia
Cinavia - Wikipedia
WebCodecs と WebTransport でビデオチャット | blog.jxck.io
Intent to Implement WebCodecs - Google グループ
H.Sup18 : Signalling, backward compatibility and display adaptation for HDR/WCG video coding
H.Sup19 : Usage of video signal type code points
デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
高品質な動画のスムーズな配信を実現する技術とは? - GIGAZINE
AppleがDRM関連の技術特許を侵害しているとして約340億円の支払いを命じられる - GIGAZINE
動画をデジタルで扱うための基本知識まとめ、映像や音声はどうやってPCで処理されているのか? - GIGAZINE
FacebookのQUICを活用したライブ動画用プロトコルRUSHについて - ASnoKaze blog
[Tech Blog] Design of video player in DOOH

VA-API

ffmpeg

今日は遊ぶかーと思って, ffmpeg とか, VAAPI とか H264 とか MPEG2 とか見てた. slices, macroblocks,…
HWAccelIntro – FFmpeg
lu-zero/mfx_dispatch: Intel media sdk dispatcher
qsv 対応の ffmpeg をつくる | ニコラボ
俺の日記帳 第二冊目
LinuxでIntel QSVを使ったH.264ハードウェアエンコード(CentOS7+ffmpeg) | Kung Noi Blog
how to run ffmpeg qsv decoder?
謎のC言語ブログ: FFMPEG/libavcodec のインストール
謎のC言語ブログ: libavcodec による動画のサムネイル作成
ubuntuでessentiaを使う - Qiita
こたつつきみかん » libavcodec / libavformat を使ってみる 1
www.lifeaether.com/overtaker/blog/wp-content/uploads/2010/04/main.c
FFmpeg
FFmpeg ライブラリーを使った動画のデコード(C++ソースコード) | RVF/RC45 blog
ffmpegの使い方:tech.ckme.co.jp
FFmpeg APIで、さまざまな動画を操る - 前編 (1/5):CodeZine(コードジン)
FFmpeg APIで、さまざまな動画を操る - 後編 (1/5):CodeZine(コードジン)
FFmpeg: VA API Decoding
FFmpeg: libavcodec/api-example.c Source File
FFmpeg: doc/examples/decoding_encoding.c
Fedora23 : Intel 構成での VDPAU/VA-API による動画再生支援とか なんとか ネット。

libva

Source Code | 01.org
VA (Video Acceleration) API
[Libva] H.264 decoder simple example
The Libva Archives
gallium3d-xds2007.pdf
01org/libyami: Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
gbeauchesne/hwdecode-demos: Test programs to address various HW video decoding APIs like Broadcom Crystal HD, VA-API, VDPAU and XvBA
libva-1.3.1
MesaLib-10.2.7
mesa3d/mesa: Mesa 3D graphics library (mirror; no pull requests here please)

Mesa

SCons

SCons 2.3.6
https://raw.githubusercontent.com/shive/scons-test/master/test001-forwin/Makefile
Python Extension Packages for Windows - Christoph Gohlke
SCons - Wikipedia
SCons - Wikipedia, the free encyclopedia

TGSI

TGSI — Gallium 0.4 documentation
A Very Early Gallium3D TGSI Back-End For LLVM - Phoronix
Gallium3D: TGSI
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h File Reference
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h Source File
tgsi-specification.pdf

The Mesa 3D Graphics Library
Mesa FAQ
第51回 X,MesaそしてLLVM[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
Compiling and Installing
Mesa 3D - Wikipedia
Mesa (computer graphics) - Wikipedia, the free encyclopedia
Off-screen Rendering
Intel Is Making A High-Performance Software Rasterizer For Mesa - Phoronix
FadisさんはTwitterを使っています: "Intel、Mesaに新しいソフトウェアラスタライザOpenSWRを実装。GPUの無い環境でCPUを使ってOpenGLを動かすための物で、従来からあったLLVMpipeより格段に速いとのこと https://t.co/JFW2Ldte8j"
OpenGL 3.1 APIを実装した「Mesa 9.2」リリース | OSDN Magazine
Mesa3D のレンダラーの切り替え
Fadisさんのツイート: "Mesaからi915(2004年頃のIntel GPU)とr300g(RADEON9800とか)を外そうぜ、という議論がなされている模様。これらの為に今日ほぼ確実に備わっているGPUの機能の有無を調べて分岐が必要になっているのが理由 https://t.co/Nh4c3yArSI"
Mesa Developers Discuss Branching Off Old Drivers, Including R300g & i915 - Phoronix

libva drivers
libdrm-2.4.91
Index of /libdrm
DRM
すらりん日記 » Blog Archive » DRM/KMS についてメモ|No:4291|すらりん日記
Xorg Libraries
Fontconfig-2.13.0
libxcb-1.13
libXau-1.0.8
xorgproto-2018.4
util-macros-1.19.2
xcb-proto-1.13
Introduction to Xorg-7

Wikipedia

Graphics address remapping table - Wikipedia, the free encyclopedia
Video Acceleration API - Wikipedia, the free encyclopedia
Intel Quick Sync Video - Wikipedia, the free encyclopedia
Intel HD and Iris Graphics - Wikipedia, the free encyclopedia
ebuild - Wikipedia
Direct Rendering Infrastructure - Wikipedia
Direct Rendering Manager - Wikipedia
Free and open-source graphics device driver - Wikipedia
Mode setting - Wikipedia
VDPAU - Wikipedia
Nvidia PureVideo - Wikipedia
Nvidia NVENC - Wikipedia
Video Coding Engine - Wikipedia
Unified Video Decoder - Wikipedia

BSD

FreeBSD port overview
Intel_GPU - FreeBSD Wiki
Graphics - FreeBSD Wiki
Use linuxkpi in DRM - FreeBSD Wiki
freebsd/freebsd-base-graphics at drm-next-3.9
「NetBSD 7.0」リリース、Luaカーネルスクリプティングをサポート | OSDN Magazine
drm(7)
Linux KPI-Based DRM Modules Now Working On FreeBSD 11 - Phoronix
freedesktop/mesa-drm: Direct Rendering Manager headers and kernel modules
Graphics drivers and the BSDs [LWN.net]
FreeBSD kernel DRM device code: Main Page
drm(4) - NetBSD Manual Pages
DragonFly On-Line Manual Pages : drm(4)
FreeBSD DRI FAQ
XFree86-4 Direct Rendering on FreeBSD
Tips: FreeBSD DRI

LinuxでGPUの動画再生支援を用いる(主にDebian/Ubuntu向け) - kakurasan
VA-API - ArchWiki
vaapi
Index of /software/vaapi
media-libs/intel-hybrid-driver/intel-hybrid-driver-1.0.1.ebuild - chromiumos/overlays/chromiumos-overlay - Git at Google
hiro99ma blog: [rpi]画面に何か出してみよう (1)
第7章 Linuxカーネル仕様
ubuntuデスクトップ環境設定
Libva API Guide (master branch): Video Acceleration (VA) API
B-2.pdf
util_vaapi.c - chromiumos/platform/avtest_label_detect - Git at Google
【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】
rigayaの日記兼メモ帳 実験: QSVでデコードしてみると?
「X.Org Server 1.17」リリース、Glamorの強化や汎用ドライバの統合などが行われる | OSDN Magazine
Nouveau - ArchWiki
VA-API - Phoronix
intel/media-driver
gnif/LookingGlass: An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.

Web

Theora

Theora.org :: downloads - Theora, video for everyone
Xiph.org - theora.git/summary
Theora - Wikipedia
Theora - Wikipedia
libtheora-1.1.1

WebM

Matroska

EBML

EBML ‐ 通信用語の基礎知識
Extensible Binary Meta Language - Wikipedia
libEBML by the Matroska team
EBML RFC (Draft) | Matroska

Matroska - Wikipedia
Matroska - Wikipedia, the free encyclopedia
Matroska形式ファイルを作成するためのツールセット「MKVToolNix 9.0」リリース | OSDN Magazine
VさんはTwitterを使っています: "vi/mkvparse: Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv https://t.co/qLgG57Hr1X MKV を XML にするのこれ便利"
klaxa/mkvserver_mk2: The streaming solution to end all streaming problems
「MKVToolNix v13.0.0」リリース | OSDN Magazine

The WebM Project | Welcome to the WebM Project
The WebM Project | Developer Overview
webmproject/libvpx
WebM - Wikipedia
WebM - Wikipedia, the free encyclopedia
Rockridgeさんのツイート: "Fx48:Cues要素がサポートされていない(規格外の)WebM形式動画でシークができない問題を修正。 / “657791 – Seeking in WebM files with no Cues element is not …” https://t.co/vHRfj2ztx5"
libvpx - Wikipedia
libvpx-1.5.0
yasm-1.3.0
Which-2.21 and Alternatives
Rockridgeさんのツイート: "Fx53:アルファチャンネル付きWebM動画をサポート。参照:https://t.co/eVMoQbwb6C / “944117 – Implement support for WebM Alpha” https://t.co/NFYvRKd3tM"
Windows 10の「Google Chrome」でHDRビデオの再生がサポートされるように - 窓の杜
Android P DP1: WiFi-RTT、カットアウト、複数のカメラ、アニメーションGIF、NNAPI 1.1

VP8

VP8 - Wikipedia
VP8 - Wikipedia

VP9

Vさんのツイート: ""リアルタイムVP9エンコーディング用のハードウェアプラットフォームとしてFPGAを選択" https://t.co/6Wb1QF2Vqt まじか Twitch 攻めてるな ... 。AWS FPGA サーバとか使ってるんだろうか。"
How VP9 delivers value for Twitch’s esports live streaming
fg118942さんのツイート: "VP9のリアルタイム1080p60エンコードとか出来るのか しかもx264より画質良いとか 将来的にはAV1でも出来るようになるのかな"
fg118942さんのツイート: "NGCodec VP9 Encoder - V01 https://t.co/Kr9JfxliOe これかな?"
Vさんのツイート: "多分それです。AWS F1 インスタンスにチュートリアルはそれを使うらしいです。… "
VP9 - Wikipedia
VP9 - Wikipedia
Microsoft、ブラウザEdgeでGoogleのWebMをサポート ~VP9とOpusの動画/音声コーデックを利用可能に - PC Watch
Announcing VP9 support coming to Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog

AV1

特許問題

yohさんのツイート: "https://t.co/l3XIGMF2VK https://t.co/n0M2IljRxi "AV1 License Terms" ファー"
Sisvel | We protect ideas - Sisvel announces the launch of its Video Coding Licensing Platform
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "少なくとも名乗りを上げてきた JVCKENWOOD, NTT, Orange, Philips, Toshiba IPR Solutions についてはAV1 AOM側との戦いが始まりそうだな... (VP9はGoogle単独だから割とどうでも良い)AOM側のライセンス条件に従うと同企業系からはAV1搭載絶望かもしらんな..."
Vさんのツイート: ""confirming there will be no content royalties but not ruling out royalties on software-based encoding." ソフトウェアエンコーダーからのロイヤリティ回収が目的ってことかな。"
yohさんのツイート: "字義通り解釈すると、正直もう少し事態は悪い気がしていて https://t.co/n0M2IljRxi コンシューマデバイス=デコード能力機器を対象とするようですね WebRTCのようなEnc/Decを要する通信ではなく、一方向動画配信先のWebブラウザも対象に含まれますね… https://t.co/roq8paoPcp"
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "SISVEL側から公開されているAV1 Licence Termをよむ限りAOM陣営との全面衝突不可避にしか見えないんだけど これまじで正面衝突するつもりなのか..."
yohさんのツイート: "AOM側の(どっかの)資料には「特許係争を戦っていくだけのカネは積んである」とあったので期待はできると思いますが 正直なところ技術的停滞は避けられない予感がします あとは政治力とか市場要因とかいろいろと...… "
Vさんのツイート: "そうだ Patent Retaliation (特許報復) だ。まだ訴えられてはいないから関係ないのかな。"
yohさんのツイート: "https://t.co/URfxPiRuob この時と変わってなければ(そしてたぶん変わってない) AV1利用者の誰かが訴えられた時点で、訴訟側への利用許諾解除を発動することになっていますね。問題があるとすれば、訴訟側が"実際には使っていない"場合はこの枠組みではさほど効力がないということでしょうね。… https://t.co/SUC60Kii1d"
AOM AV1コーデックと特許管理 - Qiita
yohさんのツイート: "と思います。戦争までの最短シナリオは「SISVEL側がAV1コーデック利用者の誰かを訴える」→「AOM側がSISVEL側(にいるパテント行使企業)への契約解除かつ対抗訴訟開始」→AOM陣営企業 vs SISVEL陣営企業 なのかなと...… "
dynamis (でゅなみす)さんのツイート: "Googleが特許ライセンスフリーだと主張してきたVP9とそれをベースにしたAV1について遂に特許プール作ったからみんなランセンス料払えよって言い始めた。 特許フリーでないことを認めるか、該当特許を全て回避するなり買い取るなり無効を訴えるなりの戦いが始まるね https://t.co/T3MqXLMaMR"
ビデオ符号化特許ライセンスプラットフォームを開始:時事ドットコム
dynamis (でゅなみす)さんのツイート: "2009年にGoogleがOn2買収してVP7の後継を無償提供する宣言してから10年、H264などより高品質コーデックとして共同開発したAV1の仕様が固まりハードウェア実装も始まったタイミング。 10年間黙ってたけど実はその技術の一部は俺達5社が特許持ってるから使うなら金払えって言い出したところですね。"
dynamis (でゅなみす)さんのツイート: "10年間黙ってて金になりそうなタイミングを見計らっていた5社はJVC KENWOOD, Philips, NTT, Orange, Toshiba IPR Solutionsと三社が日本企業。因みに日本からもSOCIONEXTなどはAoMに加盟して特許フリー動画コーデック支援側に回っており日本の特許保有者は皆同じというわけではない。"
dynamis (でゅなみす)さんのツイート: "VP7からVP9はあくまでもGoogleが一社で勝手に作ってるコーデック状態だったしハードウェアサポート等も少なく特許あるよって言えば回避する実装に変更された。 AV1ではIntel, Nvidiaなどハード実装側も加わり仕様確定させて変更しにくくなったタイミングを狙ってきたのは明らかなのよね。"
dynamis (でゅなみす)さんのツイート: "日本企業が多いのは単に旧来のマルチメディア企業と最近のネット企業という異なる時代の対立の構図になると日本が技術開発に強かった時代があったからとか、Googleなどと争う意志を持てる企業だからとか、主要ビジネスの成長が見込めず既存知財は何としても有効活用したいとかそんなところ?"
dynamis (でゅなみす)さんのツイート: "一番男前な対応はIntelなどSoCベンダー側がハードにかかる部分は全負担、ソフト側はH264でCiscoがやったようにGoogleなどがダウンロード可能なバイナリーを全CPUとOS向け(多分iOS以外)に配布して肩代わり。 一番乱暴なのは特許無効訴訟で全面戦争しつつ実装側の変更を進めて実質無効化で黙殺。"
Makoto Kato ︎︎さんのツイート: "ソフトウェア特許は好きではないけど。 AV1の件で脊髄反射のように叩いてる人は、自由だと(提供会社が)言っているものがホントに問題ないと信じてるのかなぁと。個人的には裁判にならないと実際の真実なんてわからないとしか言えないでしょ。お互いに言い分あるだろうし"
Makoto Kato ︎︎さんのツイート: "言い換えれば、めんどくさいから検索会社がすべての特許買えばいいんじゃないの?お金あるでしょと思ってる"
動画圧縮技術「AV1」、知財管理のシズベルが特許リスト公開--オープンな方針に逆行 - CNET Japan

Qiita

AV1 specification を読む - Qiita
AOM AV1コーデックと特許管理 - Qiita
AV1コーデックメモ - Qiita

Wikipedia

Alliance for Open Media - Wikipedia, the free encyclopedia
AOMedia Video 1 - Wikipedia
AOMedia Video 1 - Wikipedia

@rockridge07

RockridgeさんはTwitterを使っています: "GoogleのVP9、CiscoのThor、MozillaのDaalaの各技術は、Alliance for Open Media(AOM)が開発するAV1コーデックに統合される。今後MozillaはAV1の開発に力を入れていくが、… https://t.co/16124oJfSr"
Rockridgeさんのツイート: "Mozillaが開発に参加するAV1コーデックは、VP9をベースに他のコーデックの技術を取り入れて改良を重ねたもの。解析ツール(AV1 Bitstream Analyzer)をEmscriptenにより変換して、Webブラウザ上で… https://t.co/etyrceHnDd"
Rockridgeさんのツイート: "AV1コーデックの解析ツール(AV1 Bitstream Analyzer)は、C言語からJavaScriptに変換されることでパフォーマンスの低下が生じる。だが、WebAssemblyに変換されれば問題はかなり解消されそうだ。 https://t.co/LGNXzzJfZn"
Rockridgeさんのツイート: "Fx55:AOMedia Video 1(AV1)形式の動画再生をサポート。 / “1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format” https://t.co/e8t9yVybrn"
1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format
Rockridgeさんのツイート: "Alliance for Open Media(AOM)に参加するMozillaとBitmovinが、AV1形式の動画とプレイヤーのデモを公開。Firefox Nightlyで閲覧可能。AV1はVP9やH.265/HEVCより25… https://t.co/KXxTpyGlHk"
AOM Analyzer
Vさんのツイート: "AV1 ビルドして、変換してみたけど恐ろしく遅い。全然コード読めてないのでなんともだが、リアルタイム向けの仕様とかあるんだろうか。"
Vさんのツイート: "今のところ AV1 は CPU 変換は現実的ではないというところまで把握した。"
Vさんのツイート: "WebRTC にのっていくのは早く行けるだろうけど、バッチで変換したりする場合はちょっと考える必要がある。"
Vさんのツイート: "あと Chrome が AV1 をいつ実装するのか、というのも追いかけられてないな。Firefox は何故か頑張ってる。"
Rockridgeさんのツイート: "AppleがAlliance for Open Mediaに加入。SafariがAV1をサポートする可能性が高まってきた。 / “Apple joins alliance to shrink your online videos…” https://t.co/QvTG9zNl9X"
Rockridgeさんのツイート: "AppleがAV1フォーマットをサポートすれば、ロイヤリティフリーな動画コーデックが広く普及することになる。Mozillaは約11年前から特許による負担のないメディアを勝ち取るべく闘ってきており、AV1の普及は勝利を意味する。 https://t.co/G7Gi42rUy3"
Rockridgeさんのツイート: "AV1は動画だけでなく静止画にも使え、同一サイズであればJPEGよりもかなり高画質となる。JPEGに取って代わるのは無理でも、WebPの後継フォーマットにはなれるかもしれない。 / “Photo format from Goog…” https://t.co/73dkRja6y0"
Rockridgeさんのツイート: "ISO/IECのワーキンググループであるMPEG、その議長であるLeonardo Chiariglione氏が、このまま手を拱いているとHEVCがAV1に負けてビジネスモデルが崩壊すると危機感をあらわにしている。 / “A cr…” https://t.co/8GITGNF9e7"
Rockridgeさんのツイート: "FacebookがAV1形式の動画をサポートすると発表。ただし2018年4月24日現在、Chrome Canaryでフラグを有効化しなければならず、Firefox Nightlyも未対応。参照:… https://t.co/Dl2IyXnz31"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Chroma from Luma(CfL)と呼ばれる技法を導入し、キーフレームの圧縮に成功したという。 / “next generation video: Introducing AV1” https://t.co/NBKVcWHcGK"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Constrained Directional Enhancement Filterと呼ばれる技法を導入して、ブロックノイズの低減に成功したという。 / “AV1: next generation v…” https://t.co/WCaZVg4Qxj"
Rockridgeさんのツイート: "MozillaがAV1動画フォーマットを推す理由は2つ。1つはロイヤリティフリーであること、もう1つは競合より約30%も圧縮率が高いことである。 / “Modern codecs like AV1 can bring bette…” https://t.co/MpAeOVLEQa"
Rockridgeさんのツイート: "Fx63:AV1コーデックのバージョン1.0.0を実装した。media.av1.enabledの設定をtrueにすると有効化される。 / “1445683 - Update aom” https://t.co/zIxTOiStZf"
Rockridgeさんのツイート: "AV1動画フォーマットの特徴を解説したスライド(PDF)。参照:https://t.co/zAXPAoKuqo / “Into the Depths: The Technical Details Behind AV1” https://t.co/BIcZnD7QKP"
Into the Depths: The Technical Details Behind AV1 - Mozilla Hacks - the Web developer blog
1_02_Egge.pdf
Rockridgeさんのツイート: "Fx65:Windows版で、AV1形式の動画再生がデフォルト有効化。 / “1452146 - Flip AV1 pref (media.av1.enabled) for Windows to true” https://t.co/boBODEvo7e"

@fg118942

fg118942さんのツイート: "これ注目されてるから速度も書いとく Ryzen 2400Gでhttps://t.co/OXfUoKhqhT のChimera-AV1-8bit-1920x1080-6736kbps.ivfのデコードで131fps出る libaomは66fpsなので倍近く早い… https://t.co/QsWUpPWIpo"
S3 Bucket Listing Generator
fg118942さんのツイート: "dav1dにAVX2の最適化がいくつか入ったらあっという間にlibaomよりデコード速度が速くなった。 シングルスレッドでもマルチスレッドでも。"
fg118942さんのツイート: "Video kodek AV1 nahradí nová nekompatibilní verze AV1.1.0 - https://t.co/jJnLNjQPSS https://t.co/V2XzRFPUrz AV1また仕様変わるのか グダグダやな"
fg118942さんのツイート: "6月に仕様が決まったあとに改善点が指摘されてたけど既に企業が運用を開始してるから変更を受け入れられないと突っぱねてたのに今になって改善を取り入れる感じか?"
OpenVisualCloud/SVT-AV1: Welcome to the GitHub repo for the SVT-AV1 encoder! To see a list of feature request and view what is planned for the SVT-AV1 encoder, visit our Trello page: http://bit.ly/SVT-AV1 Help us grow the community by subscribing to our SVT-AV1 mailing list! http://bit.ly/svt-av1-mailing
Vさんのツイート: "H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi https://t.co/JnENcRU9OG 2018 年 8 月の記事 VP9/AV1 が酷評されてた。結局設定次第なんだろうな、自分の印象だと実時間エンコードで VP9 はとてもキレイという印象だし。"
H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi
fg118942さんのツイート: "VP9はマルチスレッドでCPUあんまり使ってくれないから個人ユーザーには使い勝手が悪いなとは確かに思う YouTubeは動画を細かく分割して並列でエンコードしてるみたいだから問題ないんだろうけど https://t.co/MBYkP3KJ9w"
fg118942さんのツイート: "あとVP9にしろAV1にしろ心理的画質の調整はx264やx265ほど熱心にされてない印象だからベンチマークのスコアでは上回っていても目視だと負けることもあるかもしれないなあ"
fg118942さんのツイート: "自分は視力あんまり良くないし真面目に画質確認すると疲れるので最近はVMAFに頼りっきりですが"
fg118942さんのツイート: "AV1の特許で揉めてる問題、英語力がないので結局の所どういうことなのかよくわからない。"

Alliance for Open Media
Amazon、Netflix、Google、Microsoft、Mozillaなど大手7社が次世代のビデオフォーマットでオープンソース連盟を結成 | TechCrunch Japan
aomedia Git repositories - Git at Google
AOM-AV1-Video-Tech-meet-up.pdf
DASH playback of AV1 video in Firefox – Mozilla Hacks – the Web developer blog
Apple の AOM 加盟と AV1 への期待 | blog.jxck.io
GoogleやNetflixが主導するビデオコーデック「AV1」が正式リリース、4Kストリーミングの普及に期待 - GIGAZINE
The Alliance for Open Media Kickstarts Video Innovation Era with “AV1” Release – Alliance for Open Media
Get Started – Alliance for Open Media
HEVC/H.265対抗の動画コーデック「AV1」が正式リリース ~ロイヤリティフリーで利用可能、HEIF対抗も登場か - PC Watch
株式会社ソシオネクストさんのツイート: "【プレスリリース】クラウド上のFPGAを利⽤するAV1エンコーダーを実装 https://t.co/oqWIG8AUR3… "
sn_pr20180606_01j
yohさんのツイート: "10秒でわかるAV1エンコード:フレーム全体をばーっと再帰分割してIntra/Inter混合予測画像との差分値を量子化でざくざく切り捨てて複数シンボル算術符号化でぎゅぎゅーっと縮めて次フレーム予測のためにノイズ除去&エッジ復元して取っておくサイクルを繰り返します。"
Chromium Blog: Chrome 69 Beta: AV1 video decoder, CSS tricks, and more
FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 - Phoronix
Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始 - PC Watch
dynamis (でゅなみす)さんのツイート: "気付いたらFirefoxのAV1対応がデフォルト音に切り替わってた。何故Chromeより有効化が遅くなったのかは知らないけど、2015年にAoMedia立ち上げたときからの取り組みだから4年越しの取り組みが適った感じですね https://t.co/SUnTVkPz7r"
Better web video with AV1 codec — Martian Chronicles, Evil Martians’ team blog
Firefox 67には次世代コーデック「AV1」の世界最速デコーダーが採用されている - GIGAZINE
Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
Makoto Kato ︎︎さんはTwitterを使っています 「AV1のハードウェアデコードはこのバグを見ると、Chromiumの話やLinuxのVAAPIの話も含めて詳しい https://t.co/rmDC3ulEsO」 / Twitter
1652945 - Add AV1 hardware decoding support
Google Chrome 90安定版リリース、AV1エンコーダー搭載で細い回線でのビデオ会議の品質が向上 - GIGAZINE
ついにQualcomm製SoCがAV1コーデックに対応して2023年に登場予定か - GIGAZINE

AV2

AV1 Roadmap - Alliance for Open Media
AOMedia Research Symposium 2019 - Alliance for Open Media
AOMedia looks ahead to AV2 as AV1 picks up momentum - Rethink
AV2 - YoyaWiki Plus!

テスト用にHLSライブストリーミング配信データおいときます|suo-takefumi|note

H.264

H.264の秘密 | コンピュータサイエンス | POSTD
Cisco の H.264 コーデックにより Web 上でのビデオの相互運用性が向上 | Mozilla Japan ブログ
MPEG LA、H.264の共同ライセンス体系を発表
US NEWSの裏を読む - ライセンス料を巡って揺れる次世代の動画標準「MPEG-4」:ITpro
CODECのライセンス料について - プロセッサ(DSP / ARM / MCU) - Japanese E2E (日本語コミュニティ) - TI E2E Community
本の虫: H.264の特許利用料、緩和さる
OpenH264
幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか? - GIGAZINE

HEVC

H.265 - Wikipedia
High Efficiency Video Coding - Wikipedia
ストリーミングやTV放送で動画圧縮技術「HEVC」の特許使用料が廃止 - PC Watch
Rockridgeさんのツイート: "「HEVC Advanceの特許ライセンス対象から『サブスクリプション』と『タイトルごと』のコンテンツ配信を除外することにより、HEVCの普及を更に加速」させるとの発表。AV1のプレッシャーが効いている。 / “HEVC Adv…” https://t.co/mKQxi5AWaf"
ハイフレームレート4Kライブ伝送を実現するHEVCコーデック。NTTが開発 - AV Watch
VさんはTwitterを使っています 「H.265 対応のハードウェアとそれを利用するソフトウェアの両方提供している NVIDIA に確認したら「ロイヤリティーは含まれていないので自分で解決してください」という回答だった。」 / Twitter
H.265/HEVC特許暗黒時代 - Qiita
10bit 精度で 1bit のズレも発生しないテストパターン動画(H.265)を作成する - toruのブログ

VVC

Versatile Video Coding (VVC) | JVET
FadisさんはTwitterを使っています 「H.265/HEVCの後継となる動画圧縮標準規格、H.266/VVCの規格が完成したらしい。H.266はH.265と比較して顕著な品質低下を伴わずにビットレートを半分に抑える事ができるとされている。また8Kの映像やHDR、全方位映像等をサポートする」 / Twitter
FadisさんはTwitterを使っています 「https://t.co/6Fab8kFoN0」 / Twitter
H.266/VVC Standard Finalized With ~50% Lower Size Compared To H.265 - Phoronix
「H.265/HEVC」と同じ画質でファイルサイズを50%削減できる次世代動画圧縮規格「H.266/VVC」が登場 - GIGAZINE
新ビデオコーディング標準H.266、H.265に対して50パーセントの効率向上を可能に
Catching Up with VVC - Streaming Learning Center
https://jvet-experts.org/doc_end_user/current_document.php?id=10541

Widevine

デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
Googleがオープンソースブラウザ「Metastream」でのDRMコンポーネント利用を拒否 - GIGAZINE
Googleはデジタル著作権管理を用いてどのようにオープンソースのブラウザ開発を独占的な管理下に置いているのか? - GIGAZINE
Google Chromeのデジタルコンテンツ保護機能に「保護されたコンテンツ」を保存可能なバグ - GIGAZINE
「Firefox 47」正式版がリリース、Widevine CDMやVP9コーデックをサポート - GIGAZINE
Disney+の映像はLinux搭載PCでは再生できない可能性がある - GIGAZINE
MicrosoftのEdgeは4大ブラウザの中で唯一Netflixを1080pで再生できることが判明 - GIGAZINE
Netflix・Amazon・Disney+からHD映像をダウンロード可能になるコードがGitHubに流出 - GIGAZINE

ProRes RAW

Final Cut Pro Xがアップデート、ProRes RAWと高度なクローズドキャプションが可能に - Apple (日本)
アップル、新フォーマット「ProRes RAW」採用のFinal Cut Pro X 10.4.1提供 - AV Watch
米アップル、ProRes RAWの搭載とクローズドキャプション機能を強化したFinal Cut Pro Xをアップデート - PRONEWS
Final Cut Pro X、新ビデオ形式「ProRes RAW」、高度な字幕ツールも | マイナビニュース
DJI ZENMUSE X7がApple ProRes RAWに対応|DJI JAPAN株式会社のプレスリリース
DJIのSuper35mm空撮カメラ「X7」がProRes RAWや14bit CinemaDNG対応。exFATも - AV Watch
DJI、Zenmuse X7のApple ProRes RAW対応を発表 - DRONE | ドローン専門メディア
ATOMOS、ProRes RAWに対応するSHOGUN INFERNOやSUMO 19のアップデートを発表 - PRONEWS

CinemaDNG

CinemaDNG - Wikipedia
CinemaDNG File Format
アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 - CNET Japan
アドビ,高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 | 日経 xTECH(クロステック)
AtomosがCinemaDNG RAW記録を無償アップデート | cinema5D
Vol.081 開花の時を迎えたCinemaDNG | VIDEOJOURnAL on the web|ビデオジャーナル
DJI、高性能飛行モードを備える空撮用ドローン - CinemaDNG撮影も可能 | マイナビニュース
ユーザーはBMCCをどう評価しているか | Blackmagic Cinema Camera | Shuffle by COMMERCIAL PHOTO
Inspire 2 License Key —DJI

SRT

SRT Alliance - Open-source SRT - Secure Reliable Transport
Haivision/srt: Secure, Reliable, Transport
ffmpeg 4.0 に入った新しい映像伝送プロトコルSRTを試す - Qiita
緻密u 💮さんのツイート: "UDPを拡張したUDTを採用。ほう。UDPを通せれば通過できるんかな / “SRT Secure Reliable Transport とは何か? – meteor – Medium” https://t.co/B1RZmVlEXP"
SRT Secure Reliable Transport とは何か? – meteor – Medium

FFmpeg

FFmpeg
FFmpeg/FFmpeg: mirror of git://source.ffmpeg.org/ffmpeg.git
mabeijianxi/small-video-record: 利用FFmpeg视频录制微信小视频与其压缩处理
「FFmpeg 4.0」が公開 ~Windows XPのサポートは終了 - 窓の杜
「FFmpeg 4.0(Wu)」リリース | OSDN Magazine
「FFmpeg 4.1」が公開 ~“AV1”のパーサー、“ATRAC9”・“AVS2”デコーダーを追加 - 窓の杜
FFAStransというトランスコードソフトについて
FFmpeg API の使い方(1): デコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(2): シークやAVFrameなど - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(3): エンコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(4): エンコード他 - Fixstars Tech Blog /proc/cpuinfo
オープンソースのマルチメディアライブラリ「FFmpeg 5.0」リリース | TECH+
「FFmpeg 5.0」がついに公開、リリースサイクルの変更もアナウンスされる - GIGAZINE
FFmpegで動画に字幕・副音声を追加する | DevelopersIO

HandBrake

HandBrake: Open Source Video Transcoder
HandBrake/HandBrake: HandBrake's main development repository
【やじうまPC Watch】エンコードツール「Handbrake」公式サイトでマルウェアと置換される 〜2日から6日にかけダウンロードしたユーザーに対して開発者が注意喚起 - PC Watch
動画トランスコーダー「HandBrake 1.1」リリース | OSDN Magazine

VLC

Sending Patches VLC - VideoLAN Wiki
videolan/vlc: VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/

mpv

mpv.io
mpv-player/mpv: 🎥 Video player based on MPlayer/mplayer2

MPC-HC

Media Player Classic - Home Cinema
Home · MPC-HC
mpc-hc/mpc-hc: MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
定番プレーヤー「Media Player Classic Home Cinema(MPC-HC)」がついにv1.7.13で更新終了の見込み、原因は開発者不足 - GIGAZINE
MPC-BE download | SourceForge.net

DVD・Bluray

libbluray - VideoLAN
libdvdnav - VideoLAN
DVD Resources for Open Source Development

字幕

libass/libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
xbmc/libass: libass for XBMC (win32 special)
SSA/ASS Subtitles | Matroska
SubStation Alpha - Wikipedia
ASS/SSA - 字幕制作
ASS 仕組みと書き方
SSA字幕作成リファレンス - faireal.net
a3r (ASS_Help3r) – ASS字幕タイミング・タイプセッティング支援
テキスト字幕ファイル(SRT, SSA, ASS)の利用方法 - 動画投稿Tips - アットウィキ

SmoothVideo Project

SmoothVideo Project (SVP) - motion estimated frame interpolation with any video player and frame doubling in real-time
GPU Compatibility - SmoothVideo Project (SVP) - frame doubling interpolation
SVP3:User manual - SmoothVideo Project (SVP) - frame doubling interpolation
【GPU】 Fluid MotionとSVP : ニッチなPCゲーマーの環境構築
便利ツール:SVP4(SmoothVideo Project):さんさんのブロマガ - ブロマガ
是々録画: SVP (SmoothVideo Project) で60fpsなヌルヌル体験
動画再生用にSVP4を導入。 - WebLog
動画がヌルヌルに!! 60fpsの倍速補完で滑らか再生してくれるフリーソフト 『Smooth Video Project』 | PCあれこれ探索
YouTubeも60fpsでヌルヌル動画視聴できるSVPの次期Verが来る! - 週刊アスキー
これがヲタクの生きる道! 動画のフレームレート補完
手持ちの動画を全部見返したくなるヌルヌル高画質化無料ソフトがヤバイ! - 週刊アスキー
備忘録:ソフトウェアで倍速補完ヌルヌル動画再生:気が向いたら何か書くtetのブロマガ - ブロマガ

Vulkan

FadisさんはTwitterを使っています 「Vulkan 1.2.175で動画拡張が取り込まれた話。GPUはしばしば動画のエンコードやデコードを行うハードウェアを備えているが、この拡張に対応している場合そうしたハードウェアを使ってVkBufferに入った動画の断片をVkImageの列にデコードしたり、逆にエンコードしたりできる https://t.co/WYxlnjeh0T」 / Twitter
Vulkan Video Arrives For New Industry-Standard Video Encode/Decode - Phoronix
FadisさんはTwitterを使っています 「動画のデコードは変換の状態を持つVkVideoSessionKHRを作り、バッファを用意して、動画に対応したキューに対してvkCmdDecodeVideoKHRを積むことによって行われる。Vulkanの他のコマンド同様処理は非同期で行われる」 / Twitter
FadisさんはTwitterを使っています 「対応する動画の形式は形式毎に拡張が定義され、さしあたってはh264によるデコード、エンコードとh265によるデコードが定義されている。h265エンコードは準備中で、将来的にAV1、VP9のための拡張も用意するつもりらしい」 / Twitter
FadisさんはTwitterを使っています 「エンコーダを本当にプロセッサと独立したハードウェアとして積んでいる場合は動画専用キューが生えて、GPUでソフトウェアで動画をエンコード、デコードしてる場合はグラフィックのキューと同じやつに動画対応フラグが立つ感じになるのかな」 / Twitter
FadisさんはTwitterを使っています 「VulkanにH.265エンコード用の拡張が現れた話。春に登場したVulkan動画拡張はVulkanからGPUの動画エンコード、デコードの機能を使えるようにする。対応コーデックは本体とは別の拡張で個別に追加されるが、最初に動画拡張が発表された時点ではH.265のエンコードは準備中だった https://t.co/FJGb2qBcZB」 / Twitter
Vulkan 1.2.196 Introduces H.265 Encode Extension - Phoronix

GitHub

Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
My View - MantisBT
jp9000/obs-studio: OBS - Free and open source software for live streaming and screen recording
rexbu/VisioninSDK: 类似faceu的移动端视频美颜、视频滤镜、人脸实时关键点追踪、实时整形(瘦脸大眼睛等)、动态贴纸
xl-player-developers/xl_player: A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.
begeekmyfriend/yasea: RTMP live streaming client for Android
PipeWire
PipeWire/pipewire: Multimedia processing graphs
gopro/cineform-sdk: The CineForm video codec SDK.
tophf/parsemkv: Matroska .mkv file parser in PowerShell, doesn't require external tools, produces a hierarchical object tree, optionally pretty-prints to console
digital_video_introduction/README-ja.md at master · leandromoreira/digital_video_introduction

Twitter

vyv03354さんのツイート: "@d_toybox OpenH264はvideo要素で使うには機能不足らしく、WebRTCでしか使いません。AdobeのDRMプラグインを非DRM動画でも使おうという案もありましたが、Facebookで問題が起きて頓挫したようです。"
「Firefox 33」リリース、OpenH264をサポート | OSDN Magazine
Rockridgeさんのツイート: "動画コーデックのDaalaは改良が続けられており、過去18か月の間に、同一品質の動画のファイルサイズが50%減少した(2016年5月時点)。 / “Revisiting Daala Technology Demos” https://t.co/sWjpsN0dw1"
Rockridgeさんのツイート: "Fx49:動画再生時にSSSE3命令セットを使用してパフォーマンスを向上。SSSE3はIntel Core 2以降のCPUでサポートされているようだ。 / “1266491 – Use an ssse3 scaler for v…” https://t.co/WxN116hQBb"
Rockridgeさんのツイート: "Fx51:MP4メディアコンテナにVP9コーデックを格納した新規格をサポート。Netflixが提案し、Vimeoも関心を示している規格だとか。 / “1240412 – (vp9-in-mp4) Add VP9-in-MP4 s…” https://t.co/jev55QQrDY"
Kentaro Ebisawaさんのツイート: "コンシューマ機器と自動車に搭載するH.264の要件の違い。H.264は標準規約だが、共通する標準実装があるわけじゃないよ、と。 ... why supporting H.264 isn’t enough for automotive https://t.co/Qx5xkaGHGK"
videantis » 10 reasons why supporting H.264 isn’t enough for automotive Ethernet
Shirouzu Hiroaki(白水啓章)さんのツイート: "はい。私もデジタル信号処理の専門家ではないですが。 離散コサイン変換すると、元データが復元可能な全ての全周波数成分が得られるので、低周波成分だけ取り出すと低解像度用に使い回せます。 (まあ使い回さずとも、画素数が1/4なら負荷は25%ですが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "「全ての全周波数」って、、、どうも「馬から落ちて落馬して」的な文章に気付かずに送ってしまうことが多い。… "
yohさんのツイート: "マルチメディア処理の{En,De,Trans}coderのソースコードがカオスで汚ったないのは それが現実世界を反映しているからです 100%仕様準拠したデータなんてお花畑だし 対向装置も100%どこか間違ってるし その一方で動作性能要望と互換性サポート要望は無限にくるんですよ"
Rockridgeさんのツイート: "特許で保護されたコーデックが私企業に独占された場合の危険性を訴えるSFというか寓話。独占が起きる前に声を上げ、行動を起こすべきだとする。MozillaはVR/ARを中心にWeb上で動画の役割が大きくなると見ているのだろう。 https://t.co/m6mZdF6y1i"
くいなちゃんさんのツイート: "Radar(レーダー) って略語だったのですね。 RAdio Detection And Ranging だそうです。 Codec(コーデック) も COder/DECoder の略語ですし、略語と知らずに使っている単語は結構ありそうですね。"
ゆきさんのツイート: "CORB shouldn't block application/dash+xml videos. https://t.co/5AZp6ox1m6"
2dae0c6dd178d1b0255a87164300a5d90f1bc033 - chromium/src - Git at Google
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Media Hash Listって、間もなく ascmhl に移行するよといったままの期間が長い気がするのだけど、実際はどちらが使われてるのかしらん? https://t.co/gbKlEO65q2」 / Twitter
MHL: Media Hash List | Improving Data Integrity in Digital Media Workflows
ascmitc/mhl: ASC Media Hash List

GPU

NVIDIA

Fadisさんのツイート: "GPUは複数のスレッドを束ねたSM単位で動いている為、Draw時にメッシュは1つのSMで処理できる塊(Meshlet)に分割してから空いているSMに割り当てられる。プリミティブが増減しない限りMeshletを毎回求めるのは無駄なので、静的に分割したMeshletをGPUに与えて性能向上を図ろう、というアイデアが出てくる"
Fadisさんのツイート: "NVIDIAが提案するメッシュシェーダは、任意のデータを読んで処理するMeshletを決定するタスクシェーダと任意のデータを読んでMeshlet毎にプリミティブを生成するメッシュシェーダの2つのシェーダからなり、頂点、テセレーション、ジオメトリシェーダと固定機能の頂点フェッチとカリングを置き換える"
Fadisさんのツイート: "NVIDIAによるメッシュシェーダの解説 https://t.co/c1su8LOMF3"
Introduction to Turing Mesh Shaders | NVIDIA Developer Blog
Fadisさんのツイート: "割といつもの事だけど、NVIDIAさんカジュアルに巨大な変更を拡張で突っ込んでくるなぁ"
Fadisさんのツイート: "NVIDIAさんの拡張が豪快すぎる事例としては、グラフィックパイプラインとは別に新しいパイプラインを追加してキューとメモリとシェーダのフォーマットだけVulkanと共有した物をVulkanの拡張と言い切ったレイトレーシング拡張なんてのもある https://t.co/jkWFTL0IMO"
VK_NV_ray_tracing(3)

GPUはいつ描画するのか? | ひにけにGD
OpenGLでの描画のタイミング 【OKWave】
OpenGLで描いて画像ファイル出力 【OKWave】
第三回_プレゼン資料(なるほど3Dグラフィック描画の仕組み).pdf
DrawCall (ドローコール) って何? 描画パフォーマンスを考える一つの指標を見る - Tech Inside Drecom
Fadisさんのツイート: "モバイルでなくても「プロセッサよりメモリが辛いからでっかいテクスチャを貼るな生成しろ」はイマドキのGPUだとよく言われるな"
Fadisさんのツイート: "とはいえ、デザインするマンにシェーダの知識がない体制で開発する場合、丹精込めて人間が描いた絵を貼るしかなくて、結果驚きのもっさりゲーム誕生する"
本の虫: ブラウザーのCanvas/WebGLのブラックリスト
本の虫: OpenGLドライバー品質の実情
本の虫: DolphinエミュレーターとOpenGLドライバー、栄光と恥
KaiGai Kohei 🌻さんのツイート: "write combined modeでGPU device memoryをマップしたら、memcpy()によるRAM2GPU転送でもソコソコの転送速度が出るという学びを得た。"
KaiGai Kohei 🌻さんのツイート: "しかも仮想アドレスを持っているという事は、NVME READコマンドをセットアップするのにScatter Gather Listを使えるという事になるのかな。 (今までは PRP List を使っていた)"
GPUドライバのテストフレームワーク「GraphicsFuzz 1.2」リリース | OSDN Magazine
CUDAでカーネル関数がスキップされる(ように見えた) - in neuro
Fadisさんのツイート: "PS4をエミュレートする猛者現る。OrbitalはCPUにx86の仮想化支援を使い、GPUに対する操作を全てVulkanの操作に変換してホストのGPUで実行するPS4エミュレータ。この為にAMD GPUのネイティブバイナリを入力としてSPIR-Vを出力するコンパイラを実装してしまったらしい https://t.co/K4eIs2r9CK"
Orbital: A PlayStation 4 Emulator That Is Emulating The PS4's AMD GPU Using Vulkan - Phoronix
島鉄雄さんのツイート: "ゲームはフレームバッファがトリプルで GPU のコマンドバッファもダブルバッファだから、入力した結果を見てるのは最低でも3~4フレームずれてる。 テレビ側は速い物でも遅延は1フレーム程度あるから、ゲーム機で遊んでても入力から4~5フレームの遅延がある。 ネットで数フレーム遅れても気にならない… https://t.co/LB2SEP3BPQ"
島鉄雄さんのツイート: "ちなみに、GPU のコマンドバッファをダブルにするのは CPU → プレイヤーの入力に応じて描画コマンド作成 GPU → 前のフレームの描画コマンドを実行 とする事で、CPU と GPU をフレームの頭から同時にスタート出来るから。"
島鉄雄さんのツイート: "ただ OpenGL ES 使うとコマンドバッファという概念がないから、みんな CPU で処理中に残り時間が無い所で Draw コールして処理落ちしまくってるかもしれない そうならないように、自前でコマンドバッファを作成して、フレームの頭から高速に Draw コールに変換して、CPU の処理は別スレッドでやるべし"
はじめてのにき(2019-04-10)
Intel HD Graphics - OSDev Wiki
Web High Level Shading Language | WebKit
「WSL 2」に「DirectX」が追加 ~将来的にはLinux GUIアプリへの対応も - 窓の杜

スライド

Next Gen Rendering Engine (BlinkOn 8) - Google スライド
今、我々は、 GUI の設計について 何を考えるべきか // Speaker Deck
Servo parallelism
Kentaro Haraさんのツイート: "「Blinkレンダリングエンジンって何やってるの?」という話をとてもわかりやすく解説したスライドがこちら(https://t.co/QFrSQLvgG0)。HTMLが届いてからそれがピクセルとして描画されるまでに舞台裏で何が起きてるのかがよくわかる。Blinkのレンダリングパイプラインはよくできてると思うのです。"
Life of a Pixel 2018 - Google スライド
Rockridgeさんのツイート: "WebRenderの特徴、長所と短所、従来のグラフィックスパイプラインとの違い、Pathfinderとの関係などについて述べたスライド。 / “201808-webrender” https://t.co/V5K6PkSyDv"
pcwalton.github.io/slides/201808-webrender/
ベジエ曲線のなめらかさの話 / Bézier Smoothness - Speaker Deck
グラフィックデザイナーやディレクターがhtmlコーディングの指示に関して注意すべきこと / Shiro Kuro Inc. // Speaker Deck
ふんいきがわかるCSSレイアウトの知識 | Money Forward Engineers' Blog
ふんいきがわかるCSSレイアウトのちしき // Speaker Deck
HTML6 でも CSS4 でもない Web 技術のゆくえ // Speaker Deck

外国語-1

Wikipedia

Keyboard layout - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
Technical standards in Hong Kong - Wikipedia
British and American keyboards - Wikipedia
アラビア語キー配列 - Wikipedia
Arabic keyboard - Wikipedia
Dzongkha keyboard layout - Wikipedia
Hebrew keyboard - Wikipedia
InScript keyboard - Wikipedia
Urdu keyboard - Wikipedia
デッドキー - Wikipedia
Dead key - Wikipedia

Twitter

Mantarohさんのツイート: "1590円で改善。 やはり、英語圏(特にUS圏)に合わせた仕様が多いなとキーボード変えてから気が付く…… "
Urabe, Shyouheiさんのツイート: "英語キーボードの人気が根強いという言い方には違和感しかない。日本みたいな縮小する市場で独自規格を使い続けてる方が「根強い人気」という表現でしかるべきだろう。長期的にはJISキーボードが淘汰されていく流れは不可避だよ。製造コストが回収できなくなる日が来るもん。 https://t.co/nEbt598Is6"
「英語キーボード」の根強い人気が続く理由 - ITmedia NEWS
Urabe, Shyouheiさんのツイート: "日本の市場が縮小するのはつまるところ日本の人口が減るからなのであってこればかりは今から急に仕込んでも何十年単位でどうにもならん。キーボードなんてどんなマニアでも100枚200枚買うようなものでもない。人が減りゃそれだけ市場が縮むというだけの話だ。"
なかのん&マジックさんのツイート: "そーいや昔、USのAmazonでブラジルのポルトガル語キーボードって書いてるのを発見したんで取り寄せたら、ポルトガルのポルトガル語キーボード届きやがったことが。半分返すから勘弁して的なメールで折れたけど。面倒だったんで。"
なかのん&マジックさんのツイート: "ABNTじゃないキーボードなんて表面の刻印の問題だけで価値ねーよ……"
なかのん&マジックさんのツイート: "ちなみに、商品画像は超低解像度で見にくかったけど、左Shiftの横にABNT固有のキーがあるのは分かってたんで単純にその業者が悪い。"
なかのん&マジックさんのツイート: "Macに純正じゃないキーボード接続した時に左Shiftキーの横のキーを押ささせれるのはそういう訳です。"
なかのん&マジックさんのツイート: "左Shiftと右Shiftの横にABNTかJISの拡張キーが存在してるので、あの判定方法考えたヤツは頭良い。"
KIMATA RobertHisasiさんのツイート: "数字の種類、ラテン文字やキリル文字などと共に使われるアラビア数字とは別にアラビア文字と共にで使われるインド数字があり、さらにアラビア文字で数を表すアラビア文字記数法があるので素で混乱する"
なかのん&マジックさんのツイート: "アラビア語のキーボード見た時に最初に違和感あったのは、アラビア数字じゃないってことでした……"
なかのん&マジックさんのツイート: "タイ語レイアウトなんかもそうだけど、ASCIIの数字が常に入力されるとは限らないので、i18nなキー処理では入力される文字を見ておけば処理できるわけでもなく。"
なかのん&マジックさんのツイート: "FirefoxのCtrl+1とかは物理的に数字キーなので別条件も追加確認してユーザの意思をくみ取ろうとしてたりします。まだバグあるけど。"
なかのん&マジックさんのツイート: "あとはスペースキーですな、物理的にスペースキーかどうかを特別に確認してるのは。どのスペース文字か忘れたけど、ちょいちょいとASCIIの空白以外がデフォルトなレイアウトあります。"

外国語キーボード(ドイツ/スペイン/イギリス/イタリア/フランス/中国/韓国等) | 海外ハードウェアの購入なら「ユニポス」
Happy Hacking Keyboard | 特定の製品に関わらない問合せ | PFU
「chinese USB simplify」に該当する海外通販 - セカイモン
「chinese USB Traditional」に該当する海外通販 - セカイモン
「Inscript USB」に該当する海外通販 - セカイモン
「Urdu USB」に該当する海外通販 - セカイモン
「Arabic USB」に該当する海外通販 - セカイモン
「Persian USB」に該当する海外通販 - セカイモン

外国語-2

Wikipedia

列強 - Wikipedia
ネイティブスピーカーの数が多い言語の一覧 - Wikipedia
List of languages by number of native speakers - Wikipedia
InScript - Wikipedia
Help:特殊文字 - Wikipedia

中国語

中国語入力方法 - Wikipedia
Chinese input methods for computers - Wikipedia
簡体字 - Wikipedia
繁体字 - Wikipedia

英語 - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

ヒンディー語

ヒンディー語 - Wikipedia
Hindi - Wikipedia
デーヴァナーガリー - Wikipedia
Devanagari - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

スペイン語 - Wikipedia

アラビア語

アラビア語 - Wikipedia
Arabic - Wikipedia
アラビア文字 - Wikipedia
Arabic alphabet - Wikipedia
アラビア文字化 - Wikipedia

ポルトガル語 - Wikipedia

ロシア語

ロシア語 - Wikipedia
Russian language - Wikipedia
キリル文字 - Wikipedia
Cyrillic script - Wikipedia

ドイツ語 - Wikipedia
フランス語 - Wikipedia

韓国語

朝鮮語 - Wikipedia
Korean language - Wikipedia
ハングル - Wikipedia
Hangul - Wikipedia
Korean language and computers - Wikipedia

ペルシア語

ペルシア語 - Wikipedia
Persian language - Wikipedia
ペルシア文字 - Wikipedia
Persian alphabet - Wikipedia
ペルシア語のラテン文字表記法 - Wikipedia
Romanization of Persian - Wikipedia

ウルドゥー語

ウルドゥー語 - Wikipedia
Urdu - Wikipedia
ウルドゥー文字 - Wikipedia
Urdu alphabet - Wikipedia

イタリア語 - Wikipedia

中国語

Nakamura Masatoさんのツイート: "https://t.co/YjcO62WMny 中国語のセパレーター教えてもらった。こういうの聞けてよかった"
fxsjy/jieba: 结巴中文分词
kayaさんのツイート: "ITfReadingInformationUIElementって中国語のIMEで使われているReading Windowの為にあるっぽい。 https://t.co/uC7w9MwtGf https://t.co/12xcs2Wugv"
なかのんクエストさんのツイート: "最近、Reading windowを使う中国語のIME減りましたね。インライン表示の方がモダンなもの、という流れがあるのかな?と。候補ウインドウ(candidate window)はどうしようもないのでそのままだけど。"
パソコンで中国語を入力する方法 | どんと来い、中国語
中国語入力は「GOキーボード」が便利 - ケータイ Watch
中国語キーボードはどうやって漢字を打つのか 日本語なら「平仮名で入力 → 漢字変換」だけど……? - ねとらぼ
Qin★确认过眼神,都是干货★さんのツイート: "最近中国では、単語の漢字のあとにピンインを入れるのが流行ってる、これは決して発音がわからない人用ではなく、建前と本音を同時に表現する書き方で、よくsnsで使われる。例えば「不(gu)小(yi)心(de)」、建前は不小心(わざとじゃない)だけど,本音は故意的(わざと)。"
Qin★确认过眼神,都是干货★さんのツイート: "中国の入力アプリもキャッチアップが速くて、 太贵了(たかすぎ)と入力したら、建前提案してくれた。 用(tai)不(gui)惯(le) (使い慣れないなあ) といかにも1万元もするダブルsimのiphoneが買えるかもしれない口調で。wwww https://t.co/NfLivycZkp… https://t.co/zsw7wCD99n"
Qin★确认过眼神,都是干货★さんのツイート: "たしかにこの本音&建前、日本語でめっちゃ使えるじゃん。 例えば: 退(じ)勤(ゆう)時間 仕(かん)事(きん)中 とかかなあ ٩(๑❛ᴗ❛๑)۶ #本音と建前同時表示を使ってみよう"
Qin★确认过眼神,都是干货★さんのツイート: "多くの方々から、これは日本でもあるルビ遊びだと教えてくださって、 日本のルビもめっちゃ面白いじゃないですか。 キラキラネームもこちらの類に入りますかね。 なんか、SNSでの日中共通のなにかを発見した。^^"
Qin★确认过眼神,都是干货★さんのツイート: "日本語でも、ルビ遊びを提案してくれるような入力アプリとかないかなあ🤔"
ランダムな文字列っぽい「ji32k7au4a83」というパスワードが大量のユーザーに使われていた理由とは? - GIGAZINE

ドイツ語キーボードの設定と配列(Windows7) | ドイツ便利帳
ドイツ語のウムラウトやエスツェットを入力する方法 | ドイツ便利帳
海外「あれ?日本人や中国人はどうやってキーボードで文字入力してるんだ…?」  【海外の反応】 : 海外の万国反応記
Mac で ハングルを入力する方法 | Mac | 情報航海術 - Office-TAKU.com -
韓国語IME操作法 - かじりたてのハングル
ヒンディー語入力の方法
東外大言語モジュール
世界の国々で「2番目に最も使われている言語」は何なのか? - GIGAZINE
ハングル入力からの漢字入力の方法(Mac OS X) : みかんたろうのなまけたろ
なかのん&マジックさんのツイート: "SinharaのキーボードレイアウトはWindowsに標準で入ってるのに、バグ報告して来た人は、keyboard-driver (と言ってたけど実体はTIPだった)を入れないと、Sinharaは入力できないんだよって言ってて、混乱してる。"
なかのん&マジックさんのツイート: "Sinhalaだったか。"
なかのん&マジックさんのツイート: "インドもそうだったし、南アジアの文字入力周り、日中ほどのややこしさはなんだけど、とにかくサードパーティーの入力ソフト(IMEとかキーメッセージをフックしてどうこうしてたり)のデキが悪い感じ。"
UniversalDependencies/UD_English-EWT: English data
なかのん&マジックさんのツイート: "韓国語キーボードのスペースの両側にある特殊キーがかるけど、日本でハングルキーボードを入手するのが難しくてあきらめてる人も多いかもしれない。でもあのキーはMac JISキーボードの英数とかなキーと同じキーなのでMac用のキーボード買えば幸せになる人も居るのでは。 https://t.co/QLu2lPPXAo"
なかのん&マジックさんのツイート: "あと、ハングルのIMEの豆知識として、未確定文字列がある状態で矢印キーやEnter、スペースを押すと、未確定文字列の確定と押されたキー本来の処理と両方が必要になる。特にmacOSでテキストエディタ作ってるとハマりやすい。"
なかのん&マジックさんのツイート: "日本語IMEは基本的には確定だけ発生して、何も起きないとき多いからね。例えばEnterで確定するけど改行は入らない。"
なかのん&マジックさんのツイート: "Sinhala、Gujarati、VietnameseあたりもWindowsでIME使うのね。"

Per monitor DPI Aware

MS

アプリの高DPI(High DPI)対応について 第1回 ~ 高DPIとは ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第3回 ~ マニフェストでアプリのDPI対応レベルを変更する ~ – 田中達彦のブログ
DPI に関連する API およびレジストリ設定
High DPI Desktop Application Development on Windows (Windows)
High DPI Scaling Improvements for Desktop Applications and “Mixed Mode” DPI Scaling in the Windows 10 Anniversary Update - Building Apps for WindowsBuilding Apps for Windows
SetProcessDpiAwareness function (Windows)
SetProcessDPIAware function (Windows)
High DPI Desktop Application Development on Windows (Windows)
DPI_AWARENESS enumeration (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
High DPI Reference (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
DPI_AWARENESS enumeration (Windows)
高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法 (Windows)

Adobe

HiDPI/Retina ディスプレイへのアドビ製品の対応状況
Hi DPI/Retina ディスプレイのサポートについて(Acrobat/Adobe Reader)
Windows 用 HiDPI サポート

ASCII.jp

ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その1】 8までのDPIスケーリング (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windows 10+高解像度ディスプレイでのアプリのボケはRS2で解消される|Windows Info

Twitter

Rockridgeさんのツイート: "「Chomeはダメだが、FirefoxはPer Monitor DPI Awareで動作している」。Fx47で対応した。参照:https://t.co/iRImEajgkm / “【4K修行僧】Anniversary Updat…” https://t.co/K7QAEvo62O"
Rockridgeさんのツイート: "Fx55:Windows 10 Creators Update以降の環境ではPer-monitor v2を使用するようになった。参照:https://t.co/G95AH5RfFJ / “1354020 - Use per-mo…” https://t.co/yoP6qGItDI"
ぬるぽへさんのツイート: "windowsのフォントレンダリング、hiDPIなら気にならないみたいな論調あるけど1.5倍表示の4Kでも普通にかすんでるところがあるような"
なかのん&マジックさんのツイート: "Per-monitor DPI環境になると、ウインドウのリサイズが遅いアプリって本当に使いにくくなるな。"

Windows 8.1 で加わった Per-Monitor DPI と WPF での対応方法 | grabacr.nét
WPFにおけるPer-Monitor DPI対応の実装
Per-Monitor DPIに備える
WPFのPer-Monitor DPIサポート(その4)
高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(3) ~ WPF で無理やりスケーリング対応する - モノトーンの伝説日記
Windows8/8.1時代のWin32プログラミング #sapporocpp
Windowsの画面スケーリングを きちんと理解しよう
Windows 8は、Win32 APIを置き換える
「秀丸エディタ」v8.69が正式公開、HD/4K混在マルチモニター環境での使い勝手が向上 - 窓の杜
【4K修行僧】Windowsの4Kスケーリング環境を検証する ~文字表示は美麗。ただし、非対応アプリも多数存在 - PC Watch
【4K修行僧】Anniversary Updateで4Kに優しくなったWindows 10 ~デスクトップアプリのダイナミックスケーリングにメス - PC Watch
Windowsの表示サイズ変更設定(HiDPI表示) | EIZO株式会社
本の虫: 高PPIディスプレイへの対応の難しさについて
Coding for High-DPI Displays in Windows | Dr Dobb's
GUI総合 - ソフトウェアエンジニアリング - Torutk
Creators Updateの不具合: T.Ishiiのソフト開発記
Tungsten開発者ブログ: Tungsten 2.04 リリース
kondoumh のブログ
Visual StudioでWindowsアプリケーションマニフェストのdpiAwareプロパティを「モニタごと」に設定するにはどうすればよいですか? [visual-studio-2013] | CODE Q&A [日本語]
高DPIのサポート
高 DPI のサポート - Windows Forms | Microsoft Docs
構成要素の追加 Windows フォーム | Microsoft Docs
.Net Framework 4.6 の高DPI対応でPer MonitorとPer Monitor V2を同時に設定する:るなおーびっと! - ブロマガ
AC01_PDF_TS18 - AC01_PDF_TS18.pdf
Per-Monitor DPI
Application manifest for Per Monitor V2
WPFのPer-Monitor DPIサポート(その4)
デスクトップアプリの高DPI対応 #2 – アプリ側の高DPI対応の概要 – nishy software (ja)

Direct2D

COM

C

C による COM オブジェクトへのアクセス
マクロによる DirectX COM メソッドの呼び出し
C 言語で IUnknown を実装します。
インターフェイスを使用したコードでコンパイルエラーがでる-VC++-水無瀬の部屋
MyComputer
ショートカットファイルの情報を読みとる
D3D9プロキシDLLの作り方 · GitHub

[連載! とことん VC++] 第 1 回 COM 再入門 ~ COM オブジェクトの基本的利用 (COM クライアントの実装) ~ 言語: C++
[連載! とことん VC++] 第 2 回 COM 再入門 ~ COM オブジェクトの基本的実装 ~ 言語: C++
[連載! とことん VC++] 第 10 回 ネイティブ VC++ におけるグラフィックス オーバービュー、および Direct2D の基本的な利用方法 言語: C++
COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
COM(Component Object Model)についてふわっと学習していく その2 本当に言語非依存なのか? - Qiita
COM プログラミング入門 - Web/DB プログラミング徹底解説
COM総合研究所 - COM研究室
C++ の仮想関数と VTable について - Qiita
仮想関数テーブル - Wikipedia
Component Object Model - Wikipedia
Component Object Model - Wikipedia
IUnknown - Wikipedia
IUnknown - Wikipedia

blog

UWP等

【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う): biac の それさえもおそらくは幸せな日々@nifty
WPFデスクトップアプリでDirect2Dを使う - Qiita
チーズバーガー中毒: SlimDXでDirect2DのWPF連携
Bitmap for WinForms
Shinichi Aoyagiさんのツイート: "こんなん見つけました。C++/CX+Direct2DをC#から呼び出してるみたい http://t.co/JlWz67mX RT @LeonAkasaka @ch3cooh 原因わかりました。C++/CX コンポーネント側で d2d1.lib にリンクしていると失敗します。"

Direct2D のDIP とやらがイマイチ判らない件 – Na___'s Diary?
Direct3DとDirect2D/DirectWriteの連携 | shobomalog
Direct2D/Direct2D とは - WisdomSoft
ぶびびんぶろぐ: Direct2Dの初期化と単純な描画コード
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
Direct2Dで線の描画を行う - わびさびサンプルソース
ホイール欲しい ハンドル欲しい » Direct2D と Direct3D10.1 の下位互換
Direct2Dのお話。 古いブログ - ぐうたらずのーと (コンピュータ編)
DirectX - Windows10でDirect2Dのサンプルを動作させるには(39165)|teratail
Direct2D と Direct3D 11 の共有方法 | Mitsunagi Studio
Direct2DとWindows Imaging Component(WIC)で透過PNGを表示 - Gobble up pudding
[ 194_線の端点形状の変更と Direct2D ] - Mr.XRAY
Direct2Dが有効化されているWindowsでのフィルター
DirectX Graphics に関するメモ (Direct3D,Direct2D,DXGI ほか)
S.F. Blog:Direct2Dの紹介
Direct2DとGDIとDX10。 – ひねもす庵
JWWのDirect2DのON・OFF | なまあず日記style
デザイン至上主義プログラマー: Direct2Dを使った実用的アプリケーションサンプル
やはり、Direct2Dを使う: T.Ishiiのソフト開発記
LOHACO by ASKUL - 個人向け通販
本の虫: Direct2DがVistaにきたらしい
Direct2D 最強伝説!! | Crystal Dew Blog
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中

Direct2D API の概要 (Windows)
Direct2D (Windows)
Direct2D について (Windows)
Direct2D - Wikipedia
Direct2D - Wikipedia
ASCII.jp:Windowsの画面表示を変えるDirect2DとDirectWrite (1/3)|あなたの知らないWindows
2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜
Wine 1.8公開 - Direct2D/DirectWriteをサポート | マイナビニュース
[C++] MFC アプリケーションのビューの中で、Direct2D を使用する 言語: C++
チュートリアル: MFC プロジェクトへの D2D オブジェクトの追加
Windows-universal-samples/Samples/D2DPhotoAdjustment at master · Microsoft/Windows-universal-samples
Direct2D キャンバスの使用 - RAD Studio
Source Tree: /Core/Direct2D/ (master) - FooEditEngine (git) - FooEditEngine - OSDN
Direct2DとDirectWriteハードウェアアクセラレーションを有効にしてFirefoxのグラフィックパフォーマンスを向上させてみよう | ライフハッカー[日本版]

DirectWrite

MacType

【DirectWrite】MacType v1.2016.830.0リリースと検証 - Segmentation fault
【DirectWrite】MacTypeまとめ(2016/11/17更新)【Window10】 - Segmentation fault
MacType非公式パッチ (MacType Unofficial Patch) - しらいとブログ
MacTypeが3年越しのアップデート – DirectWriteフック機能追加など – ミルログ
MacType非公式パッチが公開され、DirectWriteの設定変更が可能に - AndroPlus
DirectWrite のフォント レンダリングを改善する MacTypePatch | caretの日記 | スラド

Mozilla

WindowsのFirefoxのフォントレンダリングをきれいにする - Qiita
Makoto Kato ︎︎さんのツイート: "https://t.co/z90KTFvPe5 そもそもFirefoxのDirectWriteバックエンドはデフォルトの濃さで表示してないよ。これはJohnさんがMozillaにいたときにいろいろ拘って実装いれたやつだし"
グーグル、「Chrome 69」安定版に不鮮明なフォントの問題--原因を調査中 - CNET Japan

Google

「Google Chrome」DirectWriteを無効にする
DirectWrite Font Cache (obsolete) - The Chromium Projects
DirectWriteに対応しフォントレンダリングを強化した「Google Chrome 37」安定版がリリース - GIGAZINE
Windows版ChromeでDirectWriteを有効にしたところ日本語の文字が崩れた話 - 酢ろぐ!

エディタ

無償テキストエディター「Mery」v2.4.0のβ版、DirectWriteやPer-Monitor DPIに対応 - 窓の杜
Mery が DirectWrite に対応した - MoonNote
秀まるおのホームページ(サイトー企画)-秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応)
Sakura Editor / PatchUnicode / #482 DirectWrite
VimのDirectWriteの設定方法 — KaoriYa
DirectWriteで描画したい · Issue #262 · vim-jp/issues

DirectWrite の概要 (Windows)
DirectWrite (Windows)
DirectWrite のレンダリング (Windows)
DirectWrite の "Hello World" サンプル (Windows)
DirectWrite - Wikipedia
DirectWrite - Wikipedia
第113話:DirectWriteとフォントの固定化 - #モリトーク - 窓の杜
何故WindowsのフォントレンダリングがGDIからDirectWriteになろうとしているのか - Wicachi~Windows好きなmicachiの日記~
【私的】Windows フォントのテストだYO!【DirectWrite】 - CSSめも@Palm84
ぶびびんぶろぐ: 大まかな概念:DirectWriteを使った文字列描画
[要望] DirectWriteが有効な状態でのカスタムフォントの利用
ディオルティスタ: 【C++】 DirectX11 - Direct2D,DirectWriteによるテキストの描画
iceiv+putty
「WinFont+」開発記録 Part 6 - しらいとブログ
「WinFont+」開発記録 Part 7 - しらいとブログ

Vue.js

Vue.jsの仮想DOMと差分レンダリングの仕組み① - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み② - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み③ - Adwaysエンジニアブログ
Vonageにおけるマイクロフロントエンド - Yoav Yanovski氏のVue.JS Amsterdamでの講演より

GIGAZINE

ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE
オンラインゲームはレイテンシを感じさせないゲームプレイをどのように実現しているのか? - GIGAZINE
Google ChromeにPCのバッテリー駆動時間を3割増やす「バッテリー節約機能」が実装される予定 - GIGAZINE
スマートフォンのバッテリーをより急速に消費させるのはどのようなウェブサイトなのか - GIGAZINE
macOS版Firefox 70は6割以上も電力消費量を削減することに成功している - GIGAZINE
GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能 - GIGAZINE
Google Chrome 78安定版リリース、CSS変数へのフォールバック機能や新たな実験の仕組みなどを搭載 - GIGAZINE
「Bootstrap 5」のアルファ版がリリース、脱jQueryやCSSカスタムプロパティの強化など - GIGAZINE

infoQ

Facebook、入力イベント処理を高速化するIsInputHandling APIを新たに提案
WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
Google ChromeのNever-Slow Mode
GitKraken開発者のHamid Shojaee氏に、Git GUI開発時の経験について聞く
CSS Grid Level 2, Subgridを採用
CSS ContainmentがWeb標準に
FacebookのCSS-in-JSアプローチ - Frank Yan氏のReact Conf 2019での講演より
なぜ私たちはCSSフレームワークを使わないのか - Scott Tolinksi氏、Reactive Conf
CSS Writing Modesが公式のWeb標準に
Recoil - Reactの新しい状態管理ライブラリ
Vue 3 Reactivity Internals - Vue.JS AmsterdamでのSarah Drasner氏の講演より
より速く、より小さなVue3が間もなく登場 - State of the Vuenion 2020でのEvan You氏の講演より
JotaiはReactの新しい小粒な状態管理ライブラリ
Cypress 5.xがテストの再試行とシャドウDOMサポートを追加
JAMstackの紹介
AirbnbがVisxをリリース:Reactを使ったインタラクティブな視覚化のための低レベルでプリミティブなコンポーネントの集合
Haskell Web Framework IHPは、型安全と簡易なWeb開発を目指す
single-spa によるマイクロフロントエンド
Qt 6がQMLを改善し、C++17を採用
Angular v12がリリースされ、Ivyレンダリングエンジンに移行
GitHubのWeb標準とWeb Componentsジャーニー
Compat2021でブラウザベンダが互換性問題解決に手を結ぶ
Quarkus 1.11の開発モードに新機能 "State Preserving Reload” が追加
ピュアCSSチャートライブラリのCharts.CSS

Zenn

Makoto Kato ︎︎さんはTwitterを使っています 「細かいところ、ツッコミどころ満載なんだけど、こういうのでみんな理解しちゃうのかなぁ https://t.co/etvpxAnzm8」 / Twitter
ブラウザレンダリングの仕組み
Makoto Kato ︎︎さんはTwitterを使っています 「馬鹿な。そんなエンジンあるの? "avaScriptの場合、ASTはJavaScriptオブジェクト ( JSON ) として表現されます。"」 / Twitter

POSTD

恐竜に教える現代のCSS – Part 1 | POSTD
CSS Grid: One Layout, Multiple Ways | CSS-Tricks
恐竜に教える現代のCSS – Part 2 | POSTD
恐竜に教える現代のCSS – Part 3 | POSTD
私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | プログラミング | POSTD
パフォーマンスの文化を創る | POSTD
フォント読み込みの影響を軽減するための新しい方法:CSSフォントディスクリプタ | POSTD
アクセシブルなフロントエンドコンポーネントの完全ガイド - 後編 | POSTD
アクセシブルなフロントエンドコンポーネントの完全ガイド - 前編 | POSTD
Core Web VitalsはWebを高速化したか? | POSTD

Qiita

yobata / ピクポン pickupon CEOさんはTwitterを使っています: 「宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita現代のGUI開発において、必須となった宣言的UIというパラダイムシフトがあります。宣言的UIは、Facebook社が開発したReactに… https://t.co/PjuXBcC8FH https://t.co/i6DOEjSUTL」 / Twitter
宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
めくるめく粗挽きWebブラウザエンジンの世界 - Qiita
CSSセレクタの優先順位の計算方法 - Qiita
パフォーマンス計測に困らない!tracing活用術100 - Qiita
Chrome の隠し機能 chrome://tracing (about:tracing) の使い方
最適な画面モードの設定で苦戦した話 - Qiita
自作OSで半透明のウィンドウ - Qiita

Twitter

リフロー

リフロー レンダリング - Google 検索
小説 リフロー - Google 検索
Takashi KawasakiさんはTwitterを使っています 「小説すらリフローできるのに、ソースコードなんて言う論理の塊であるはずのものがリフローできないのは冷静に考えておかしい。ソースコードの管理に行番号なんていう昔ながらの方法しかないのが問題な気はするが・・・。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「コードの特定の部位を参照するのにxpath的な文法で・・・難しすぎて誰もついてこなさそう。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「内部的には、AST的なものがあればいいわけで、表向きには、IDE/エディタ上で、特定のソースの位置をクリックすると、そこに対応するASTの位置が提示されて、それをコピペして、場所を共有するみたいな・・・。」 / Twitter

間違い

Makoto Kato ︎︎さんはTwitterを使っています 「細かいところをいろいろ突っ込みたくなるような内容だなぁ。微妙になんか間違ってることとか、触れなくてもいい話ふまれていることもある。なんかびみょー https://t.co/NJrPddYnzK」 / Twitter
Webページがブラウザに表示されるまでに何が起こるのか?
Makoto Kato ︎︎さんはTwitterを使っています 「hostsファイルのparserなんてWebブラウザが確実に行っているか?って話をまず言いたい。実際DoHのためにparserを持ってはいるが、hostsを見てってのは必ず言える話でもないと思うが。Optionalな話を書くのはどうかなぁと思う」 / Twitter

histric-1

mattnさんはTwitterを使っています: 「Electron の省リソースな代替。Chromium を使わない Ultralight というクロスプラットフォーム WebKit を使うことで軽く高速なデスクトップアプリケーションを作れるらしい。 / “GitHub - ImVexed/muon: GPU based Electron on a diet” https://t.co/ClsxXfNiEU」 / Twitter
ImVexed/muon: GPU based Electron on a diet
ryoheyさんはTwitterを使っています: 「SPA作るの好きだけど、ブラウザの再発明じゃんっていうのめちゃごもっともだし、かなり頑張って作らないとリクエスト多すぎてずっとグルグルしててつらいやつになるから、もっとブラウザでよしなにできればなぁ」 / Twitter
The Firefox UI is now built with Web Components - Brian Grinstead
seya ʕ•ᴥ•ʔさんはTwitterを使っています: 「ついにデザインにもlintな時代か https://t.co/oEtMzjRcDR」 / Twitter
Design Lint – Figma
なかのん&マジックさんのツイート: "Geckoはパフォーマンスに直結する、グラフィックのレンダリング部分とUIに関する部分はプラットフォーム依存なものの、レンダリングエンジンそのものにはほとんどifdefが入ってないので、プラットフォーム変わってもレイアウトは基本、変化しない。"
Fadisさんのツイート: "ゲームのプレイヤーが直接動かせる物が60fpsで応答していないとゲーマーさんはもっさりとした感触にすぐ気づいてしまうんだけど、背景でモクモクしてる煙とかが15fpsくらいで描かれてても案外バレないから、今時のゲームは画面内の物によってバラバラな頻度で描画を行うことがよくある"
Fadisさんのツイート: "問題は、低い頻度で描画されている物に高い頻度で描画されている物がぶつかってしまって、高い頻度で描画しなければならないものに格上げされる事がある点で、ある程度衝突を予測して格上げをしておかないとぶつかった瞬間からの数フレームの応答が悪くなる"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ブラウザの逐次レンダリングで、タップ押下位置のDOM要素が変化してから0.5秒くらいは、タップを無視する機能をつけてほしい。」 / Twitter
ドッグさんはTwitterを使っています 「SkRasterPipeline の最適化が Skia の描画の速さの理由らしい https://t.co/rwmNeGXdke」 / Twitter
skia/SkRasterPipeline_opts.h at master · google/skia
uint256_tさんはTwitterを使っています 「TeXのコンパイルが遅いのって、何が理由なのですか」 / Twitter
画力・博士号さんはTwitterを使っています 「@uint256_t プロファイリングして調べたわけではないですが,組版処理アルゴリズム上段落を組み上げるときに行を分ける箇所を選択する処理で少なくとも O(n²) 以上の計算量を要し,典型的なケースでも線型ほどには良くならないので,そこがボトルネックになりそうには思います」 / Twitter
uint256_tさんはTwitterを使っています 「@bd_gfngfn なるほど. (そういえばブラウザを作っていたときに同じようなことで悩んでいた気がします)」 / Twitter
ヨコヤマ(横山哲也)さんはTwitterを使っています 「むかしのモニターが黒背景なのは、ベクタースキャンの名残。でも、VT-100の時点で白背景も設定できた。ウィンドウが白背景なのはPARCの人たちが「紙は白い」と主張したから。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「黒背景白文字 vs. 白背景黒文字、歴史的背景が気になるというか。 昔のモニタが黒背景なのは、滲み等考えるとそのほうが読みやすいから? ウィンドウ環境で白背景黒文字へ移行したのには、PCの場合(DTP前提の)WYSIWYGもあるだろうけど、Mac以前からあるワークステーションもそういう理由だったの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「1964年に System/360 とともに発表されたビデオターミナルを見ると、2250 はベクタースキャンで 2260 はラスタースキャンだったのか。後者は音響遅延回路(管?)を使って描画内容を記憶していたと https://t.co/8Q5ZhnYHRP」 / Twitter
IBM 2260 - Wikipedia
ShigeyaさんはTwitterを使っています 「@n_soda @yume_piece1010 @kazuho black on white は Xerox Alto (1973)とかあの筋のものとP ERQ(1980年頃)とか、Symoblics(これも1980年頃)ぐらいしかなかったと思います。Altoが圧倒的に先 https://t.co/AqZT1SLhkS」 / Twitter
PERQ - Wikipedia
sumimさんはTwitterを使っています 「@shigeyas @n_soda @yume_piece1010 @kazuho Altoも1968年のNLSの模倣なので、これが今のblack-on-whiteの元ですね。NLSでは通常のwhite-on-blackの画面をビデオカメラで撮影し、それを反転出力していました(参考→https://t.co/6PdauZLfIr ) 切り替え可でblack-on-whiteの方が好まれたらしいですが肝心の何故そうしたかは分かりませんでした^^;」 / Twitter
The Mother of All Demos, presented by Douglas Engelbart (1968) - YouTube

7594591200220899443さんはTwitterを使っています 「WDR is a format to separate the website's information and design そう、それこそがまさに古代、Websiteと呼ばれていた概念…セマンティックウェブ…XSLT… https://t.co/6PHEBNA09M」 / Twitter
WDR
7594591200220899443さんはTwitterを使っています 「昔の人の失敗したアイディアを少しは研究してからじゃないと結局失敗するアイディアを再発見してもしゃあないで。」 / Twitter
7594591200220899443さんはTwitterを使っています 「「自分はデザインが苦手だからデザインの事は他人に押し付けたいです」っていうソリューションは結局うまくいかない。ユーザーが求めているのはむしろデザインの方なのであって情報なんてさして必要とされていない。分離すれば苦しむのはデザインできない奴の方。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Electronって、まぁメモリ食いまくるとかいろいろ問題もあるけど、Windows GDIでどうやっても解決できなかったウィンドウのスケーリングの問題とかをビルトインの仕組みで解決できてるとか、プレゼン時に好きなズーム率を簡単に設定出来るとか、その辺は極めて優秀なんだよなぁ。」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「KOBA789さん:Immediate mode GUI: ・ステートレスで、毎フレーム全部描き直す →ビットマップを差分で使いまわしたりしない ・ゲームエンジンなどと相性のいいGUIアーキテクチャ ・今回のCADでもこれを採用 #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「GPUの計算は速い が GPUへのコマンドの発行は遅い ので GPUへのDrawコールの頻度を減らす。やってることがゲーム屋の定番の最適化話になってきた #kernelvm」 / Twitter
ドッグさんはTwitterを使っています 「DOM の変更にブレークポイント張れるの知らなかった.めっちゃ便利そうだ…」 / Twitter
Minko GechevさんはTwitterを使っています 「DOM breakpoints allow you to find what code modifies your page 🤯 In @ChromeDevTools: ‣ Right click on an element ‣ Break on ‣ Select: subtree/attribute modification, or node deletion ⚡️ https://t.co/1BU42eS141」 / Twitter
Nao_uさんはTwitterを使っています 「80〜90年代の日本のいろんなゲーム会社で使われたドット絵エディタや描画手法の資料。それぞれ個性があって面白い。すごい分量 https://t.co/lwx2AavhUc」 / Twitter
VGDensetsu: Designing 2D graphics in the Japanese industry
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「お絵描きのマーカー処理。 ・マスク(画素とマーカー色をAND処理) ・半透過(画素とマーカー色をαブレンド) とあり、WindowsのSnipping Toolは前者、他のお絵描きソフトでは後者もある。 で白背景なら前者が文字がクッキリ、後者はぼんやり(最上段参照)。 だが黒背景だと前者はダメダメに。 https://t.co/bltgzh2c52」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、IP Messenger のキャプチャ用お絵描き機能は、無駄に頑張っていて、どちらでも選べる(笑) https://t.co/6fmy9vV8ae」 / Twitter
なかざんさんはTwitterを使っています 「Reactを知らないでフロントエンドのプロジェクトに入ってきたおじさんと仕事をしたとき、侮りはせずに淡々とVDOMの差分管理の説明をしていたら、「あ、それMosaic時代に表示用と検証用のDOMツリーを生やして自作したことがある仕組みかも」と言われて、椅子から転げ落ちました」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「媒介変数を使ったBezier曲線とNURBS曲面のわかりやすい説明。実際にブラウザ上で動かせる。 https://t.co/4nmjY0HHRW」 / Twitter
Curves and Surfaces – Bartosz Ciechanowski

Web-Spec

その他

ネット「兵器化」の恐れ、ソーシャル規制をWWW設計者が訴え
www.webapi.link
RFC8174「RFC 2119のキーワードにおける大文字と小文字の曖昧性」 - ASnoKaze blog
今すぐ知っておくべき!モダンな10のWeb技術 | ガジェット通信
連載 | WEB標準化動向 | HTML5Experts.jp
Web標準化という仕事、そしてWebの今後について、W3Cの中の人に聞いてきた | HTML5Experts.jp
Web 標準化のフィードバックサイクルを円滑にする Origin Trials について | blog.jxck.io
Webシステムにおけるオートファジー構想 - 人間とウェブの未来
Web Platform ... What is it ? (Webプラットフォームのつくり方) // Speaker Deck
won't fix: オープンソースな製品でどうセキュリティバグをハンドルするか?
Monthly Web の作り方 2018 年版 | blog.jxck.io
Webの健全性を守る主役は果たして誰なのか - WebStudio

IETF

IETF Documents
RFC INDEX
https://www.ietf.org/download/rfc-index.txt
https://www.ietf.org/rfc/std-index.txt

IANA

IANA — Protocol Registries
IANA — Status of IETF Internet Drafts

WHATWG

Developer Edition

WHATWG HTML Standard Developer Editionの話 - 水底の血
HTML Standard
HTML Standard 日本語訳

Web Hypertext Application Technology Working Group
Web Hypertext Application Technology Working Group Specifications
HTML Standard
The WHATWG Blog — Further working mode changes
WHATWG Working Mode Changes | W3C Blog
WHATWG の IPR Policy と Governance Structure | blog.jxck.io
Rockridgeさんのツイート: "WHATWGが「運営グループ」と称するいわば舵取りの機関を設置。Apple/Google/Microsoft/Mozillaから1名ずつ代表者が参加する。参照:https://t.co/TNOkM6NmRu / “The WHA…” https://t.co/uLzomrlWqK"
W3CからのWHATWGに関するアナウンスメントについてのメモ - 水底の血
The WHATWG Blog — Changing the copyright license for Living Standards
Makoto Kato ︎︎さんのツイート: "WHATWGのコントリビュータをどう増やすかみたいな議論になって、good first bugについての話になったらしい。そのgood first bugは仕様に明記られてないけど大概こんな動作だからそれをドキュメントに落とすだけらしいけど、ハードル高いよね"
DOM Standard

水底の血

Infra Living Standardという話 - 水底の血
W3C文書を読むときに気をつけたい7つのポイント(超簡易版) - 水底の血
Obsolete Recommendationという話 - 水底の血
ウェブ標準仕様の翻訳についてつらつらと書いてみた。 - 水底の血

HTML5日本コミュニティグループ

HTML5 Japanese Community Group
W3C User Account Management
public-html5jp@w3.org Mail Archives
public-html-ig-jp@w3.org Mail Archives
HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-01-19 (public-html5jp@w3.org from January 2015)
Re: HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-02-02 (public-html5jp@w3.org from February 2015)
「HTML5日本コミュニティグループ」をW3Cが設立。参加者募集中! - Publickey

Web Platform Incubator Community Group

Web Platform Incubator Community Group

Web Education Community Group

Web Education Community Group
Web標準カリキュラムがW3Cに移動 | Web標準Blog | ミツエーリンクス

Dataset Exchange Working Group

Dataset Exchange Working Group Is Making Progress | W3C Blog
Dataset Exchange WG Charter
Data Catalog Vocabulary (DCAT) - Version 2

PING

Privacy Anti-Patterns in Standards | W3C Blog
W3C Privacy Activity
w3cping/administrivia: repository to track meta-work. PING webpages are maintained at https://github.com/w3c/ping
DRAFT Privacy Interest Group Charter
w3c/ping: Privacy Interest Group webpages (only) - working docs are in https://github.com/w3cping

W3C

All Standards and Drafts - W3C
Celebrating the anniversary of the Web | W3C Blog
World Wide Web Consortium (W3C)
Web Publications
Packaged Web Publications
Web Annotation Extensions for Web Publications
World Wide Web Consortium Process Document
W3C Strategic Highlights: Strengthening the Core of the Web (Web Performance) | W3C Blog
Hadley Beemanさんのツイート: "We just finished discussing the evolution of #featurepolicy with @triblondon. Should it split into 3? • sandboxing behaviours within an iframe • imposing conditions on the document itself, and • dealing with permission-requiring features @w3ctag https://t.co/42z4jvgINJ"
Feature policy evolution · Issue #341 · w3ctag/design-reviews
W3C Technical Architecture Group
W3C and WHATWG to work together to advance the open Web platform | W3C Blog
W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM | W3C News
HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - Publickey
W3CとWHATWGが共同でHTMLの仕様を策定するようです🤝🎉 | フロントエンドBlog | ミツエーリンクス
HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS

MDN Web Docs

開発者向けのWeb技術 | MDN
Web technology for developers | MDN
Rockridgeさんのツイート: "MozillaがMicrosoft/Google/W3C/Samsung Internetと合意し、Web開発者向けのドキュメントを将来的にMDN Web Docsに集約させることになった。 / “Mozilla brings …” https://t.co/uZJ6lLi65U"
Web開発に関するドキュメントがMDN Web Docsへ集約されることが発表になりました | フロントエンドBlog | ミツエーリンクス
Tracking documentation issues | MDN
Microsoft、Google、MozillaがWebドキュメントで提携へ
Rockridgeさんのツイート: "MDN Web Docsには毎月延べ780万人の訪問者がいて、この訪問者数は年率51%の成長を見せているという。 / “WeeklyUpdates/EmergingTechnology - MozillaWiki” https://t.co/TkrPigKuJj"
Google Developers Japan: ウェブ標準のドキュメント統合に向けて
Rockridgeさんのツイート: "MDN Web Docs内の記事に掲載されているブラウザ互換性テーブルのうち、Microsoft Edgeに関する部分は、現在、Microsoftのスタッフが直接確認して編集しているらしい。 / “Documenting the…” https://t.co/Lssjh6WrAx"
mdn/browser-compat-data: This repository contains compatibility data for Web technologies as displayed on MDN
Rockridgeさんのツイート: "MDN Web Docsで、特定の仕様やAPIのブラウザ実装状況を示す表(ブラウザ互換性テーブル)のデザインが、まもなく新しいものに変わる。 / “MDN Web Docsさんのツイート: "🎉 New compatibilit…” https://t.co/w04i0ceVLZ"
MDN Web Docsさんのツイート: "🎉 New compatibility tables are coming to MDN TOMORROW! 🎉 After several months of beta testing our new, clearer (more colorful) browser compat tables, we're pushing them live for all tomorrow! What do you think of them? https://t.co/7ES9kZ0fwE… https://t.co/Yf5njTa5cu"
Rockridgeさんのツイート: "2018年のMDN Web Docsでは、ブラウザ互換性テーブルのデータをJSONに移す作業を完成させ、インタラクティブなサンプルも対象と数を増やす。なお、互換性テーブルの編集にはMicrosoft/Google/Samsungの… https://t.co/XTW7px4Gpe"
Rockridgeさんのツイート: "2017年10月に実施されたMDN Web DocsのAWS移行に伴い、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontも利用するようになった。現在では大半のコンテンツがCloudFront経由… https://t.co/4FPDHDNDS2"
Rockridgeさんのツイート: "2017年11月、MDN Web DocsのAWS移行時にいったん失われたgzip圧縮が復活し、ページの読込時間が6%短縮されたという。 / “Kuma Report, November 2017 · Mozilla Marke…” https://t.co/ZEQiipC4mf"
Rockridgeさんのツイート: "MDN Web Docsのブラウザ互換性テーブルの基になっているデータは、npmパッケージの形式でも公開されるため、ユーザーが再利用・加工することが可能だ。参照:https://t.co/oDcsJTEevj / “MDN br…” https://t.co/I60YNPvfmY"
MDN Web Docs日本語版と英語版の日付を比較するブックマークレット - 水底の血
<blink>: 点滅文字列要素 (廃止) - HTML | MDN
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「MDNはWikiの開発やメンテが全く追いついてなかったけど、DevRelチームもいなくなり関係者の縮小を受けてどうするのかと思っていたら、Wiki止めてGithubでコンテンツ管理する方向に変わるらしい。 世界最大規模のWikiが無くなる。 https://t.co/Zj2HVyspqs」 / Twitter
MDN Web Docs: Editorial strategy and community participation - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「翻訳周りの環境には(翻訳サポートの為の機能が詰め込まれていたので)かなり影響がありそうな気がするけどどうなるんだろう。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNの新しいサーバーってこのコードか https://t.co/hGFS5WJ3TK」 / Twitter
mdn/yari: Next-gen MDN platform

Mozilla

Twitter

なかのん&マジックさんのツイート: "結局、仕様として汚くてもブラウザ間でうまく動くものが良いってのをブラウザ開発者はみんな、肌で感じてるからであって。たとえば、DOM Event周りだとChrome/Blinkに多々文句言いたいことはあるんだけど、世のWeb開発者はそれを望んでいないというつらすぎる現実。"
なかのん&マジックさんのツイート: "対抗ブラウザの開発者として「つらい」のではなく、仕様書に多少なりとも関わってる人間として「つらい」現実。はっきり言うと罵倒するような言葉になるので控えておく。"
なかのん&マジックさんのツイート: "Webの仕様って結局、ある一定の母数のダメな開発者が勘違いしてたことを仕様としてどうにかまとめてしまうなりなんなりしないといけないんだよな。悪貨が良貨を駆逐するを地でいってる世界。ただ、良貨をぶっ壊さないようにしなければいけないというオマケもついてる。"
なかのん&マジックさんのツイート: "とりあえず、忘れてたIssueをひとつ登録しておいた。予想はしてたけど、本当に救いがたいWeb開発者が世界には居てるわけで…… / Needs alternative WheelEvent.deltaMode, WheelEvent.delat(X|Y|Z) · Issue #181 · w3c/uievents https://t.co/UVBYf0M8Md"
なかのん&マジックさんのツイート: "普通は仕様書じゃなくてもhttps://t.co/YcIWwdP3JL(X|Y|Z)の値はWheelEvent.deltaModeの値によって意味が変わると書いてあるはずで、一切説明文を読まずにコード書かない限り、そしてそれをmacOSだけか、Firefox以外のみでテストしない限りはこれらの属性がピクセル値だなんて思うわけもないんだよなぁ"
なかのん&マジックさんのツイート: "記憶が曖昧だけど、ChromeもWindows版で、ページ単位でのスクロールに設定してると、WheelEvent.deltaModeがWheelEvent.DOM_DELTA_PAGEになるんだよ。"
なかのん&マジックさんのツイート: "とりあえず、このレベルの開発者にはさすがにWeb界隈から退場していただきたい……"
なかのん&マジックさんのツイート: "とりあえず、ヤバい臭いは実装時からしてたんで、あらかじめMDNで詳しいドキュメントを用意しててもこれなので、バカの先回りは不可能という結論。"
Andreas Bovensさんのツイート: "Starting with Firefox 61, touchstart and touchmove event listeners are passive by default, making touch scrolling faster on Firefox for Android. https://t.co/h8iYMK5bAV"
Touch event listeners are now passive by default, making scrolling faster on mobile | Firefox Site Compatibility
なかのん&マジックさんのツイート: "ん?マジで?そんなこと許されるのか?"
なかのん&マジックさんのツイート: "Event.preventDefault()を呼ばないのに、EventTarget.addEventListener()でpassiveにしてないWebアプリは多そう。 https://t.co/PSd80k3sCf"
EventTarget.addEventListener() - Web APIs | MDN
なかのん&マジックさんのツイート: "そう考えると、フレームワークはブラウザの動作速度の最適化は難しいな。どういう風に今の所やってんだろ。"
なかのん&マジックさんのツイート: "いやー、本当にまとめてくれててありがたい。 #もずでぶ https://t.co/HsoHIPFoOJ"
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "non-printable keyを非表示キーと訳したのか。使ってて思うけど適当な訳語がなさ過ぎ。"
モバイル上のスクロールを高速化するため、タッチイベントリスナーが標準で passive となりました | Firefox サイト互換性情報

ウェブの知識をスマートオン! — Mozilla
ドキュメント | Firefox サイト互換性情報
トップレベルウィンドウ上のデータ URL 遷移はブロックされるようになります | Firefox サイト互換性情報
安全なサイトに埋め込まれたプラグイン内部での安全でないコンテンツの読み込みが廃止予定となりました | Firefox サイト互換性情報
mozilla-japan/translation: Mozilla 関連のドキュメント翻訳リクエストとステータス管理
バージョン別にドキュメントを参照 | Firefox サイト互換性情報
Rockridgeさんのツイート: "Mozillaが考えるWeb互換性問題の発生原因について。W3Cが仕様化したAPIすべてを実装したブラウザが存在しない中、Web開発者の平均経験年数は低下し、開発に使用するブラウザもChromeに偏っている。 / “Make t…” https://t.co/lTA1qIzoWO"
Make the Web Work For Everyone – Mozilla Hacks – the Web developer blog
Compatibility/Unshippables - MozillaWiki
ウェブページ内での FTP リソースの読み込みが許容されなくなりました | Firefox サイト互換性情報
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
::selection 疑似要素の接頭辞が外れました | Firefox サイト互換性情報
今後 IME 変換中にも keydown、keyup イベントが発生するようになります | Firefox サイト互換性情報
Application Cache が安全でないサイトでは使用できなくなりました | Firefox サイト互換性情報
Firefox 60 ESR では Service Worker とプッシュ通知が無効化されます | Firefox サイト互換性情報
環境光・近接センサー API が無効化されました | Firefox サイト互換性情報
ほとんどの非標準 CSS display 値が廃止されました | Firefox サイト互換性情報
<meta http-equiv> による Cookie の設定が許可されなくなります | Firefox サイト互換性情報
Symantec、GeoTrust、RapidSSL、Thawte、Verisign 証明書への信頼が 2018 年 10 月にすべて失われます (影響あり) | Firefox サイト互換性情報
getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました | Firefox サイト互換性情報
display:-moz-box と display:-moz-inline-box が廃止予定となりました | Firefox サイト互換性情報
navigator.platform が 64 ビット版 Firefox 上でも "Win32" を返すようになりました | Firefox サイト互換性情報
window.event が互換性のため追加されましたが、一部のブラウザー判別に影響があります (影響あり) | Firefox サイト互換性情報
window.open の noopener オプションが他のウィンドウ特性に影響しなくなりました | Firefox サイト互換性情報
window.event、Event.returnValue への対応が追加されました (影響あり) | Firefox サイト互換性情報
<table> のサイズと位置が <caption> を計算に入れるようになりました | Firefox サイト互換性情報
Fullscreen API の接頭辞が外れました | Firefox サイト互換性情報
window.open() がイベントごとに一度しか呼び出せなくなりました | Firefox サイト互換性情報
サードパーティトラッキング Cookie が初期設定でブロックされるようになりました (影響あり) | Firefox サイト互換性情報

和訳

ウェブ関連仕様 日本語訳
triple-underscore/triple-underscore.github.io: Japanese translations of various web spec.
RFC日本語版リスト
Web関連技術の仕様書邦訳
W3C仕様書などのまとめ【保存版】 | W3C仕様書関連の文書や日本語訳をまとめてみた。

Twitter

Jxckさんのツイート: "ようするに WICG ってのは W3C の敷居が高すぎるけど、 Web 標準に対して物申したい人は、ここ https://t.co/rT2sMRVIwM に雑に投げてくれれば、中の人がうまいことハンドリングしてくれるよっていうこと。 #w3ctagdevmeetup"
WICG
vyv03354さんのツイート: "@piro_or @momdo_ webkitMatchesSelectorに至ってはDOM Standardで規定されています。 https://t.co/GVLjPUccxO 今ではwebkitプレフィックス付き==非標準とは限りません。"
vyv03354さんのツイート: "@piro_or @momdo_ 経緯はこちらをご覧ください。 https://t.co/lMO8Pq4YJj DOM Specへの追加を推したのはbzですね。"
vyv03354さんのツイート: "@piro_or @momdo_ navaigator.appNameは固定文字列"Netscape"を返せとか。 https://t.co/D0cY5F5sgR 自分より年下の人に自虐的に老人とか自称されると何とも言えない複雑な気分になりますね。"
Rockridgeさんのツイート: "2017年11月、W3Cの"Improving Web Advertising Business Group"が結成された。オンライン広告のユーザー体験を改善し、有用性とプライバシー・安全性とのバランスを取る方法を模索していくとい… https://t.co/jVUW29c7VW"
vyv03354さんのツイート: "https://t.co/J7klkTDNAG たぶん @momdo_ 氏あたりには今さらの話だと思うけど、W3CとWHATWGの協調する気のなさほんとひどい"
もんどさんのツイート: "協調のなさが酷いというより、W3C/WHATWGでまだ一緒に作ってたころ(HTML 5.0 CR)に決まってたものを後からW3Cがひっくり返したという感じで、W3Cの挙動が解せないというのが個人的な印象ですね…… "
もんどさんのツイート: "まあその意味ではlongdescとかおそらくブラウザーではこれ以上実装されなさそうなものをひっくり返すみたいなのは、ちょっと理想に走りすぎでは、という気がしなくもなく。"
もんどさんのツイート: "ただその一方でmain要素はHixieのこだわってた(と個人的には思ってる)複数要素を許容みたいな話は葬り去られて、A11y寄りのSteve Faulknerの主張が通って統一できたのは、これはこれで歩みよりがあるのかなと。"
Rockridgeさんのツイート: "Googleが自社サービスをChromeに最適化し、それ以外のブラウザを事実上排除したうえ、高いシェアを背景に仕様標準化の際にもChromeの実装がそのまま通るように力を振るうとすれば、IE6の独占時代と何が違うのか。 / “C…” https://t.co/zHYKnESPnT"
なかのん&マジックさんのツイート: "ブラウザなんて、まさに、実装依存のWebアプリ達との闘いですな。Firefoxのシェアが下がったとはいえ、(Firefox側がバグってる場合を除けば)対応する価値は十分にある。実装依存な場所を洗い出してくれるから、他のブラウザの将来のバージョンとの互換性も高くなる。"
なかのん&マジックさんのツイート: "Firefox側で、仕様にない挙動を、互換問題からChromeの動作にあわせようとしていたら、Googleのエンジニアさんがたまたま同じタイミングで、Firefoxのシンプルな挙動にしようとしていた、という笑えない事が去年あって、止めた。タイミング違ってたら、Chrome依存なサイトがChromeでも壊れてた事案。"
Ryou Ezoeさんのツイート: "W3CがWHATWGのHTML DOM 4.1をforkして、forkであることも明記せず、コミュニティになんの説明もなく改変してリリースしようとしたので至るところからFormal Objectionが飛ばされている https://t.co/FFn7DCUxRF"
Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec | Hacker News
なかのん&マジックさんのツイート: "Chromeの動きが理にかなってたら互換性のために修正入れるのはそう難しくないんですよ(ソースコードのデザイン上大変なことはあっても)。でも、理にかなってない場合や単純にバグってるよなって場合にはそれが難しいんですよ。IE一強の時代と全く同じで。"
なかのん&マジックさんのツイート: "同じ設計じゃ無いのにバグをエミュレートするってのは難しいんですよ。何しろ意図して条件分岐した結果、動作が変わってるとかではないんで。"

Makoto Kato ︎︎さんはTwitterを使っています 「caniuseとかbrowser compat dataを出しながら、Safariだとこれが実装されてない!って言っている人をたまに見るが、Chromeには実際にはAPIの皮だけあるけど動かないみたいなのが多くあるので、"partial_implementation" なフラグをつけて実装できてないように見えるようにしようと思う」 / Twitter

アクセシビリティ

その他

A11yとは - Weblio辞書
WebSchemas/Accessibility 日本語訳
アクセシビリティの祭典/トップページ
WindowsでaViewerを使う | アクセシビリティBlog | ミツエーリンクス
今すぐ使えるアクセシビリティチェックツール13選! | フロントエンドBlog | ミツエーリンクス
少しずつアクセシビリティ意識する - Hatena Developer Blog
アクセシビリティに関する各種リンク - EagleLand
アクセシビリティの専門家の言うことは唯一の正解ではない | 水無月ばけらのえび日記
Webアプリのアクセシビリティを追求せよ!「インクルーシブ」なマークアップを議論しながら学んでみた | HTML5Experts.jp
視覚障碍者プログラマのためのツール | キャリア・働き方 | POSTD
New Site-wide WAVE Tools (WebAIM)|AccSellクリッピング|AccSell
むらログ: 実用レベルに達している日本語音声入力
アクセシビリティ機能はありますか (Acrobat DC)
アクセシビリティを確保するなら、ファインダビリティも大事。国税庁Webサイトリニューアルでリダイレクトなし | Web担当者Forum
今更だけど、ウェブアクセシビリティについてまとめてみた(概要と手法) - Qiita
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
やさしいウェブのためにすべきこと。英国のウェブアクセシビリティ啓蒙ポスターの日本語版が公開 | UNLEASH
posters/accessibility/dos-donts/posters_ja at master · UKHomeOffice/posters
アクセシビリティガイドライン > 45. 色だけに依存した表現によって… : 三井住友銀行

音声ブラウザ

音声ブラウザ - Google 検索
水無月ばけらさんのツイート: "「メディアクエリや音声向けのCSSがあまり期待通り動いてくれない」というのは、スクリーンリーダーが「音声ブラウザ」ではなく、普通のブラウザの表示結果を読み上げているだけだからですね。… "
どうけ 🍣さんのツイート: "とりあえず発表したことを書きました。懇親会で話したことはまた別途書きます。 #gaad2019_tokyo 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介 @doke|note(ノート) https://t.co/9if35W1gbz"
「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介|note

水底の血

資料・教育・イベント

アクセシビリティのわかってる人を育てるにはどうすればよいのか的な、とっちらかったやつ - 水底の血
アクセシビリティの琴線に触れるいくつかのアプローチ
Home | Web Accessibility Initiative (WAI) | W3C
Get resources for… | Web Accessibility Initiative (WAI) | W3C
Resources for Designers | Web Accessibility Initiative (WAI) | W3C
Resources for Designers | Web Accessibility Initiative (WAI) | W3C
Introduction to Web Accessibility | Web Accessibility Initiative (WAI) | W3C
WCAG 2.1 解説書
2021年7月30日JDC/JEPA共催『デジタル社会に必要な情報 アクセシビリティ』講演会記録|日本DAISYコンソーシアム
EPUBアクセシビリティのJIS規格化について|日本DAISYコンソーシアム
digidepo_11643920_po_02870002.pdf
高齢者、障害者等の移動等の円滑化の促進に関する法律 | e-Gov法令検索
バリアフリー新法の解説1: 子ども・子育て本部 - 内閣府
バリアフリー:パンフレット・リーフレット - 国土交通省
電子書籍版デザイニングWebアクセシビリティの献本をいただいた - 水底の血
都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
AccSell Podcast Vol.128に出演しました - 水底の血
アクセシビリティの祭典 2018 感想戦のようなもの - 水底の血
(メモ)くだんのアクセシビリティアナリストは伊敷氏が勤めるということに - 水底の血

法・ガイドライン・行政

みんなの公共サイト運用ガイドライン(2016年版)で参照する法律の謎 - 水底の血
障害者の権利委員会 一般的意見第2号を読む - 水底の血
手話の話を枕に、例の国交省検討会の議事概要から - 水底の血
(メモ)障害を理由とする差別の解消の推進に関する法律の一部を改正する法律案 - 水底の血
(メモ) 障害者差別解消法/デジタル社会形成基本法案の審議状況と3月の会議録 - 水底の血
デジタル庁関連法案審議つまみ食い(4、5月の参議院内閣委員会より) - 水底の血
(メモ)デジタル社会形成基本法案と情報アクセシビリティ - 水底の血
「デジタル社会の実現に向けた重点計画」メモ書き - 水底の血
コピペ:デジタル社会の実現に向けた重点計画(2021年) - 水底の血
障害者基本計画(第4次)とアクセシビリティ - 水底の血
世界最先端デジタル国家創造宣言・官民データ活用推進基本計画とウェブアクセシビリティ - 水底の血
公共系のウェブアクセシビリティの要件定義を考えるみたいな話から行政への働きかけ云々 - 水底の血
いわく、ハザードマップにウェブアクセシビリティな問題があるとのことだけれども。 - 水底の血
(メモ)2022年にあわてないための障害者施策動向 - 水底の血

用語

色覚異常という言葉に関するメモ - 水底の血
句読点とか小数点とかのメモ - 水底の血
(メモ)バリアフリーが和製英語かどうかを少し調べてみた話。 - 水底の血

アクセシビリティチェッカーA11ycのChrome拡張機能をローカルで作成してみた話 - 水底の血
Re: 頭字語に空白文字を挿入することの是非とWebアクセシビリティ - 水底の血
君はISOの代替テキストのガイダンスを知っているか? - 水底の血
ISOの代替テキストガイダンスの続編(ものすごい雑なメモ) - 水底の血
笑えない「サイト接続のコンプラ問題」、The Valuable 500とアクセシビリティと。 - 水底の血
EPUB Accessibility 1.1のちょっとしたメモ - 水底の血

W3C

Accessible Platform Architectures (APA) Working Group | Web Accessibility Initiative (WAI) | W3C
Inaccessibility of CAPTCHA
Research Questions Accessibility Task Force
Video: Web Accessibility Standards and Benefits | W3C Blog
W3C Strategic Highlights: Web for All (Web Accessibility) | W3C Blog

WAI-ARIA

W3C

WAI-ARIA Authoring Practices 1.1 Note helps authors make content accessible | W3C Blog
Digital Publishing WAI-ARIA Module 1.0
Accessible Rich Internet Applications (WAI-ARIA) 1.2
Core Accessibility API Mappings 1.2
WAI-ARIA Authoring Practices 1.1
HTML Accessibility API Mappings 1.0

水底の血

2015年末におけるWAI-ARIAの今をものすごくざっくりと - 水底の血
某プログラミング知識共有サービスっぽい古いエントリーへの注意書きを付けてみた - 水底の血
WAI-ARIA 1.1、DPUB-ARIA 1.0、HTML 5.2ほかが勧告案になっていた - 水底の血
WAI-ARIA 1.2の草案が発行されてた - 水底の血
(メモ)WAI-ARIAのロードマップ - 水底の血
WAI-ARIA勉強会で喋った話 - 水底の血

フロントエンドBlog

Webコンテンツの推奨実装方法集「WAI-ARIA Authoring Practices 1.1」 | フロントエンドBlog | ミツエーリンクス
あのWAI-ARIAがIDL属性として実装される!? | フロントエンドBlog | ミツエーリンクス

Accessible Rich Internet Applications (WAI-ARIA) 1.1 日本語訳
Accessible Rich Internet Applications (WAI-ARIA) 1.0 日本語訳
ARIA Techniques | Techniques for WCAG 2.0 日本語訳
WAI-ARIAを活用したフロントエンド実装 | CodeGrid
WAI-ARIA の基礎知識 — Website Usability Info
HTML講座 - WAI-ARIA
WAI-ARIA をマークアップに取り入れたシンプルなタブ - CSS HappyLife
WAI-ARIAを活用したJavaScriptによるDOM操作 // Speaker Deck
WAI-ARIA Authoring Practice Dialog(Modal)のフォーカス管理 - /var/log/sukoyakarizumu
Introduction - webcomponents.org
The Accessibility Object Model (AOM) | aom
WAI-ARIAの基本 - ウェブ開発を学ぶ | MDN

WCAG

W3C

WAI-Tools Project Launched | W3C Blog
WCAG 2.1 is a Candidate Recommendation | W3C Blog
Web Content Accessibility Guidelines (WCAG) 2.1
Understanding WCAG 2.1
Techniques for WCAG 2.1
Understanding Success Criterion 2.1.4: Character Key Shortcuts

水底の血

WCAG 2.0ノートの本体更新予告やら日本語訳やら - 水底の血
新しいWCAG 2.0解説書がWAICサイトで公開されました - 水底の血
WCAG 2.0 解説書
WCAG 2.1 FPWDがもうすぐ出そう(提案間にあわない) - 水底の血
2016年版のWCAG 2.0達成方法集がWAICサイトで公開されました - 水底の血
HTMLラジオボタンを大きくする方法について - 水底の血
Japan Accessibility Conferenceに登壇します - 水底の血
WCAG 2.0解説書の更新版と、How to meet WCAG 2.0の日本語訳が公開されました - 水底の血
PDF版 JIS X 8341-3:2016, WCAG 2.0早見表/逆引き表作成裏話 (Web Accessibility Advent Calendar 2017) (有限会社時代工房)|AccSellクリッピング|AccSell
WCAG 2.0クイックリファレンスが更新されました - 水底の血
WCAG 2.0 クイックリファレンス (WAIC)|AccSellクリッピング|AccSell
このごろのWAIC WG4の活動について - 水底の血
WCAG 2.0関連文書レビューのご案内(6/14〆) - 水底の血
WAICサイトのWCAG 2.0関連文書が更新と、WCAG 2.1訳の話題 - 水底の血
このごろのWAIC WG4(2020年3月版) - 水底の血
WCAG 2.1解説書の2020年12月版への更新進捗とACT Rules Format 1.0日本語訳 - 水底の血
WCAG 2.1の「次」について - 水底の血
WCAG 2.2の策定作業が始まっていた - 水底の血
(メモ)WCAG 2.2がいい感じにアレになるには(?) - 水底の血

なかのんクエストさんのツイート: "GeckoはネイティブのTheme API使ってレンダリングするんで、サイズ固定なWinやCocoaだとscale以外はどうしようもない気が。 / HTMLラジオボタンを大きくする方法について - 水底の血 https://t.co/3AAIc3dtGj"
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その1 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その2 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その3 | フロントエンドBlog | ミツエーリンクス
WCAG 2.0 達成方法集
柴田宣史さんのツイート: "Twitterのキーボードショットカット。必ずしも視覚障害者でなくっても、ずいぶん便利だと思います。… "
うおさんのツイート: "誤爆する話、ちょっと前に見て気になっていたところです。 WCAG2.1でみんな幸せになれる感じでしょうか。 https://t.co/3ACIT6JRry… "
柴田宣史さんのツイート: "なるほど。 2.1.4: Character Key Shortcuts (Level A) If a keyboard shortcut is implemented in content using only letter, punctuation, number, or symbol characters, then at least one of the following is true: - Turn off - Remap - Active only on focus… https://t.co/3hJ0s2eb3G"
もんどさんのツイート: "なるほど。 2.1.4 文字キーのショートカット (レベル A) コンテンツに文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットが実装されている場合、少なくとも次のいずれかを満たしている: 解除 再割り当て フォーカス中にのみ有効化 https://t.co/vUE60Z8t6f… https://t.co/uaIYg5cJT3"
Web Content Accessibility Guidelines (WCAG) 2.1 (日本語訳)

JIS

JIS X 8341-3:2016の公示 | コラム | ミツエーリンクス
JIS X 8341-3が改正・公示された - 水底の血
JIS X 8341-3:2016は誰が作ったのか - 水底の血
chikoskiさんのツイート: "JISにもWeb Accessibilityに対するガイドラインがあります。JIS X 8341-3 https://t.co/VPlNH7J87W WCAG2.0とほぼ内容は同一ですが… #WeJS"
JIS X 8341-3:2016 解説
chikoskiさんのツイート: "はい… https://t.co/nVuf54CTjB"

Mozilla

アクセシビリティサービスインジケーターとは? | Firefox ヘルプ
タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux
Rockridgeさんのツイート: "Fx59:TBNotifier.exeがアクセシビリティサービスとしてFirefoxにアクセスできないようブロックした。Ask Toolbarの一部とのこと。 / “1421018 - Block TBNotifier.exe …” https://t.co/PwKO5f1cpI"
1421018 - Block TBNotifier.exe from accessing accessible services
Makoto Kato ︎︎さんのツイート: "アクセシビリティが有効になってるとChromiumのバグを開く際にクラッシュする話に今日何度も引っかかってる https://t.co/Nv5zZ2fxxI"
アクセシビリティのためのメディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN

MS

アクセシビリティ: Microsoft Edge と Windows 10 でさらに多くの人が Web を利用できるように | Microsoft Edge Japan
EdgeHTML15 のアクセシビリティの向上 | Microsoft Edge Japan
Windows 10 October 2018 Update のアクセシビリティについて - Windows Blog for JapanWindows Blog for Japan
Masaru Iritaniさんのツイート: "Windows アプリケーションとウェブページのアクセシビリティ対応を簡単に確認できるツールが公開されました。オープンソースです。… "
Microsoft Developerさんのツイート: "#A11y is important to us and we want to ensure it is easy for you to foster inclusion in your own apps. Announcing Accessibility Insights for Windows and Accessibility Insights for Web: https://t.co/JeIFc9gKJl… https://t.co/c2yGGgTziY"
Microsoft open sources Accessibility Insights - Open Source blog
Accessibility Insights
Microsoft/accessibility-insights-web: Accessibility Insights for Web
【大河原克行の「パソコン業界、東奔西走」】Windows 10から大きく変化したWindows 11のアクセシビリティ機能 - PC Watch

ルビ

Makoto Kato ︎︎さんはTwitterを使っています 「こんなのFrorianとひもりんとミーティングしてしまえばいいのにとしか思わないんだが。ただARIA側である程度骨組みやらないといけないと思うんだよね、これ https://t.co/vZzh925tQx」 / Twitter
Webのルビ仕様にはアクセシビリティを阻害している面がある。「日本DAISYコンソーシアム」が改善を求めてブラウザベンダ、WHATWG、W3Cらに公開書簡 - Publickey
もんど@HTMLの本作成進行中✏️さんはTwitterを使っています 「@makoto_kato いつだったか、あるいはどこだったか忘れましたけど、ARIA WGはHTMLに入ってから考える、みたいなことを言ってた気がしますね。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「@momdo_ まぁTPAC2021のARIAの議題には入りそうなので、それでなんか答えでればいいですけどね」 / Twitter
もんど@HTMLの本作成進行中✏️さんはTwitterを使っています 「@makoto_kato そういう意味では実にギリギリのタイミングでの書簡でしたね……」 / Twitter

20??年のWebアクセシビリティ

2014年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2015年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2016年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2017年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2018年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社

infoQ

Visual Studio 2017 15.3 がリリース。 Adds .NET Core 2 がサポートされた。
Appleはどのようにして手書きの漢字をリアルタイム認識しているか
MicrosoftはAzure Bot ServiceとLanguage Understandingの一般提供を発表した
HTMLコントロールの残されたアクセシビリティの問題

スライド

アクセシビリティとこれからのWebデザイン
Japan Accessibility Conference vol.1 アクセシビリティ・ガイドラインの歩き方(初心者編) - Google スライド
創業期の医療スタートアップに立ちはだかった3つの壁 / Three challenges of medical startup - Speaker Deck
the-past-and-future-of-accessible-front-end-development - Speaker Deck

Twitter

HTML

Fumihiro MatsuiさんはTwitterを使っています 「個人的にはできる場合は案2でやってるなあ。でも細かい都合で案1で p にする場合もあるなあ(その場合は意味的な事は目をつぶる気持ちで)」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「ページ情報としては大昔から meta description とかあるんだから、h1 とか見出し系タグにも補足情報的なのマークアップするやつ欲しいよなあ」 / Twitter
羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「HTMLの情報設計の小難しいことを考えるのが好きな人たちへ相談。さっきから小一時間、アタマを悩ませている。定期的にコレ悩むような気がする。 https://t.co/MBM7GeKY3V」 / Twitter
羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「HTMLの美学の世界なんだけどね・・・宗教戦争かもしれない・・・。情報設計を離れると、SEOの効果としてやや異なるはあるかもしれないが・・・。」 / Twitter
itukiさんはTwitterを使っています 「@storywriter 案2派なんですけど、〜を文字として認識させたくない病のほうがやばいです before,afterにしたい」 / Twitter
羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「@ituki_b とても正しいアクセシビリティの観点です…さすがです!! 「〜」はスクリーンリーダーの読み上げで意図しない読み上げをされるケースがあり、耳で聞いていると日本語の意味がわからなくなります。」 / Twitter
かずみん☆めい。さんはTwitterを使っています 「@storywriter HTML5には, 構造化タグとしてarticle, section があるますが, subtitleはないですね. titleタグは別用途. 私は構造とスタイルは分離する主義なので, &lt;span class="subtitle&gt;... &lt;/span&gt; または, &lt;div class="subtitle&gt; ... &lt;/div&gt; かな?」 / Twitter
いのうえのかつき@人間中心設計専門家さんはTwitterを使っています 「@storywriter 昔はhgroup使うとかありましが自分はh1に突っ込んでspanかsmallですかね。smallは宗教あるかもです。 CSSなくても意味がわかるという観点ならこうゆうところにsmall使うのも一つの形として面白いなとか思いました笑」 / Twitter
羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「@katsuki_inoue なるほど &lt;small&gt; ならセマンティックになるやもです!」 / Twitter

Rockridgeさんのツイート: "Fx51:リーダーモードのNarrate(音声読み上げ機能)で、読み上げの速度を5%刻みで細かく調整できるようになった。これまでは25%刻みだった。 / “1316828 – Allow finer control over n…” https://t.co/Hg5ZaJFCQB"
犬洋さんのツイート: "色盲の人にも分かりやすい信号機これすごいなぁ https://t.co/z1nGgdCKXo"
Rockridgeさんのツイート: "Fx59:アクセシビリティサービスが、テキスト/ハイパーリンク/属性の情報を一挙に取得できるようになった。プロセス間通信が減少するのでパフォーマンスの向上につながる。 / “1419362 - [e10s a11y] Handl…” https://t.co/522i1Qx39E"
もんどさんのツイート: "https://t.co/ENVZw1R9XK この辺からコーポレートサイトだけでなく、ne¥.jpもどうにかしてと言うとか。… "
ryomatsuさんのツイート: "アクセシビリティ… "
JIS X 8341-3:2016に基づく試験結果表示(ウェブページ単位:2016年3月31日公開) | ウェブアクセシビリティ方針 | サイトご利用にあたって | NTTドコモ
柴田宣史さんのツイート: "また、サイトに埋め込むGoogleのサイト内検索のキーワードの自動補完も、スクリーリーダだと気がつかないうちに補完されているケース(自分はキーワードを入力し終わったので、つぎのユーザインタフェースコンポーネントに移動するためにTABキーを押す)があるので、なかなか悩ましい。"
なかのん&マジックさんのツイート: "個人的にはTabキーのイベントはWebアプリで発火すべきではなかったと思ってます。今更なのでそれはできないけど。"
なかのん&マジックさんのツイート: "ブラウザのa11y上の問題で、どのブラウザも一部のキーコンビネーションはWebアプリで発火しないようになっているものの、やはり「バグ報告」はやってきますね、いつまでも。"
なかのん&マジックさんのツイート: "Webアプリは読み込んだだけで利用者の同意なく動き出すものなので、ネイティブアプリ同様の何でもアリ感はさすがに認められないわけです。"
ゆうてん🥶さんのツイート: "del要素のアクセシビリティ対応例 https://t.co/vNTt5Y7NtF 疑似要素を読み上げさせるのトリッキーだな"
<del>: 削除文字列要素 - HTML: HyperText Markup Language | MDN
未識魚 /中川譲@3/21~キャラクターで描く千住展2019さんのツイート: "普通の人でもディスレクシア(読字障害)の気分が味わえそうな事例を作ってみた。 左:UDデジタル教科書体、右:VDRロゴJrブラック (芥川龍之介「愛読書の印象」より) 右でも確かに1文字ずつ追えば「読める」けどものすごく辛い。… "

自身も視覚障がいを持つ開発者がMicrosoft Seeing AIによるアクセシビリティ改善について語る | TechCrunch Japan
Cognitive Services API - Google 検索
目に優しいプログラミング環境 - Qiita
目が見えなくてもプログラミングできるよ - Qiita
スクリーンリーダーの音声を聞いたことがありますか? | ラック公式ブログ | 株式会社ラック
生まれつき盲目の男性がAmazonでソフトウェアエンジニアとして働く - GIGAZINE
Accessibility in Visual Studio Code
Light Theme for Color Blind People - Visual Studio Marketplace
colorblind-syntax
Go言語が好きな理由
Swan's Quest, Chapter 1: Voices in the dark - WWDC20 - Videos - Apple Developer
T. V. Raman - Wikipedia
matsumoto19.pdf

その他

Redshift
jonls/redshift: Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
EIZO、モニター色校正のための最新認証を世界で初めて取得 - デジカメ Watch
カラーマネジメントモニター 基本的なキャリブレーション作業の手順の一例 | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
ディスプレイキャリブレーション 色温度の決め方 5000Kか6500Kか | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
Color Management Handbook ver.5
【カラマネ極意17】印刷の標準規格がなぜ求められるのか - JAGAT
デジタル写真の必修科目・カラーマネージメント講座 連載 第1回 | GANREF
カラーマネジメント | 能登印刷株式会社 – 石川県金沢市・白山市の総合印刷・出版|商業印刷・美術印刷・カタログ印刷・商業出版・自費出版・オンデマンド印刷・Webサイト制作
カラーマネジメントの解説
トラブルを未然に防ぐ!カラー設定10選 | psgips
ソフトウェア・キャリブレーションとハードウェア・キャリブレーションの違い | EIZO株式会社
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
新ドライバでGeForceもOpenGLの10億色出力対応に - PC Watch
Adobeのオープンソースのアダプティブでアクセス可能なカラーパレットジェネレーター
HDRモードでも正確な色表現 ~プレビュー版Windows 10+ICCプロファイルを利用するクリエイティブアプリでテスト中 - 窓の杜
【ニュース・フラッシュ】Windows 10プレビュー版、HDR環境でアプリごとにICCプロファイルを適用可能に - PC Watch

Google ブックス

背景イラストメイキング講座 - 草壁 - Google ブックス
カラーマネジメント技術: 拡張色空間とカラーアピアランス - Google ブックス

blog

まだCMYKで消耗してるの?〜大幅な色補正をCMYKで行ってはいけない理由〜 – やもめも
コンポジターに必要なアルファチャンネルの知識(前編) - コンポジゴク
コンポジターに必要なアルファチャンネルの知識(後編) - コンポジゴク
続・Webブラウザのカラーマネジメント対応まとめ : やんま まのblog(仮)
機械の目と人間の目の類似点|Rui Ueyama|note
日記 (2017 年 10 月中旬)
第27回:カラーマネジメントの疑問 色はどこで管理されてるの? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN
YUVをちゃんと理解してからRGBにコンバートしましょうね : KLabGames Tech Blog
YCbCr変換による色数の減少 - toruのブログ
RGB等色関数で現れる負の値の正体 | tech - 氾濫原
色を科学する その① 感覚なのに科学できる理由|[色彩工学/カラーサイエンス]YoshiColor|note
[色彩工学/カラーサイエンス]YoshiColorの月別一覧|note
色を科学する その⑦ XYZのトリセツ|[色彩工学/カラーサイエンス]YoshiColor|note
YCbCr変換による画質劣化の可能性について - toruのブログ
「色覚」をめぐる知識のアップグレード――『「色のふしぎ」と不思議な社会』読了感想 - 水底の血
広色域とハイダイナミックレンジに関するW3Cのワークショップ | フロントエンドBlog | ミツエーリンクス

GIGAZINE

Googleが提唱する「マテリアルデザイン」の普及をフォローするカラーツールが登場 - GIGAZINE
なぜ画像に「ぼかし」を入れると色の境界部分がつぶれてしまうのか? - GIGAZINE
色覚異常の人がより多くの色を見分けられるようになるコンタクトレンズが開発される - GIGAZINE
ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE

POSTD

色弱のユーザーにもやさしいランディングページのデザイン | デザイン | POSTD
色:ヘキサコードから眼球まで – Part 1. | POSTD
色:ヘキサコードから眼球まで – Part 2. | POSTD
色:ヘキサコードから眼球まで – Part 3. | POSTD

Qiita

XYZ色空間に迫る(1) - Qiita
XYZ色空間に迫る(2) - Qiita
プログラマが知っているとよい色使い(安全色) - Qiita

Wikipedia

ICCプロファイル - Wikipedia
ICC profile - Wikipedia, the free encyclopedia
YUV - Wikipedia

Twitter

histric-1

Rockridgeさんのツイート: "BlinkにCanvasでのカラーマネージメント機能が実装される見込み。HDRディスプレイの普及を踏まえたもので、WebGLとの併用が想定されている。Khronosで議論がされてきたといい、将来的にGeckoでもサポートされそうだ。 https://t.co/3mKPtzn2x5"
Rockridgeさんのツイート: "Fx54:プリマルチプライ処理とアンプリマルチプライ処理を高速化。参照:https://t.co/ARm3QakXMg / “738343 - Use a central library for pixel format con…” https://t.co/KP6tDbkVFC"
738343 - Use a central library for pixel format conversion and alpha-(un)premultiplication
Rockridgeさんのツイート: "主要ブラウザのカラーマネジメント対応状況が詳細にまとめられた記事。Firefox 8でLUTをサポートしたというのはこのバグだろう。参照:https://t.co/xHinFtLlih / “続・Webブラウザのカラーマネジメン…” https://t.co/eSTzYqe8mg"
Rockridgeさんのツイート: "Fx57:DCI-P3ベースの広色域プロファイルをサポート。近年のMac環境で色の表示に違いが出るようだ。 / “1250461 - ICC profile (Late 2015 iMac with P3 Retina disp…” https://t.co/mpx3lAgVHF"
渋川よしきさんのツイート: "今日は、会社の若者に @m_seki さんから教わった秘伝の技を教えた。とりあえずデータ種類ごとにカラフルにしたいときに、カテゴリ名のハッシュ値を計算して、それを元に色が決まるようにすればいいよ、というやつ。HLS色空間使えば、明るさのばらつきも抑えられてお得。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚異常な人に一部の機能が使えない家電製品ばかりになり、その状況が年々悪化しているということは、普通に色覚バリアフリーな家電製品を作ってそれを宣伝するだけで、日本国内だけでいきなり300万人をつかめるおいしい状況でもあるはずなのに、家電メーカーは何をやっているんだろう?"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚バリアフリーが当たり前で売りにはならない文具業界や什器業界よりむちゃくちゃおいしい状況なのに。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "半世紀前の世界には色覚異常な人に一部の機能が使えない家電は存在しなくて、色覚異常な人に一部の機能が使えない文具で満ちていたのに、なんで逆転したのだろう?"
Rockridgeさんのツイート: "Firefox開発者いわく、カラーマネージメント機能の強化は開発の優先順位が低い。 / “Can we focus more on color management support?” https://t.co/i9XTuh5JNY"
Fadisさんのツイート: "HTML5のCanvasにfloat16の線形色空間で描けるようにしよう、という提案がなされている。色を正確に再現する必要があるコンテンツの表示や、物理的に正しい色の合成、ハイダイナミックレンジディスプレイの活用等に利用できる https://t.co/4iKE2mUNkd"
canvas-color-space/CanvasColorSpaceProposal.md at master · WICG/canvas-color-space
Fadisさんのツイート: "Web屋さんがついに色はRGB各8bitでは全く足りない事に気付いてしまったらしい"
Fadisさんのツイート: "このproposalはクロノスのWebGLワーキンググループでApple Google Microsoft Mozilla Nvidia他のエンジニアを交えて議論された、って書かれてて「なるほど」ってなった https://t.co/4iKE2mUNkd"
Fadisさんのツイート: "WebGLからHDRディスプレイに対してHDRレンダリング結果を吐くための下準備か"
👻 道化師 🃏さんのツイート: "自分用に作ったモノなんですが、色々なカラーテーブルを作成できるしたツールを作ってみました。各パラメーターは弄る度に URL も更新されるので、その URL をコピーしておけばいつでも同じカラーテーブルを参照できます。配色の参考やディスプレイの色味比較などにどうぞ。 https://t.co/OYONZG9JcA… https://t.co/0quJ8onRdo"
phi ratio coloring
👻 道化師 🃏さんのツイート: "https://t.co/PHf9AMzL3Q このツールとしての肝は hue step を phi ratio にした時のカラーリングで、 saturation, lightness の場合とは適用のされ方が大きく異なり、これは植物の葉(枝)の生え方を上から見たのと同じで、同じ場所(色)が出にくく、いい感じに離れた場所(色)になってくれます。"
👻 道化師 🃏さんのツイート: "https://t.co/dgfKQpNF9z lightness を人間の眼で感じる明るさ(luma)で補正(align)する機能を付けては見たものの有効に機能する範囲がかなり厳しいよなぁ。… "
Fadisさんのツイート: "緑を#00FF00と書くとまず人間が識別できる輝度の幅に対して256階調が荒過ぎる問題に直面し、次に人間が見ることが出来る色の範囲に対してsRGB色空間が狭過ぎる問題に直面し、とどめに高速で遠ざかる#00FF00が赤方偏移して黄色っぽくなる問題に直面する"
狐代@冬コミ全日(お燐/玉藻)さんのツイート: "ディスプレイの表示できる色域の問題も… "
Fadisさんのツイート: "広い色空間と高い輝度の表示が出来るディスプレイも少しづつ出てきてはいるものの、信号として送れる色に対してディスプレイが正しく表示出来る範囲がマチマチで、この辺活かしてリニア空間でのレンダリング結果を出来るだけ潰さずに表示したいゲーム屋さんは工夫を求められる状況になってるっぽい… https://t.co/wYFERdcAKm"
OS自作したい。技術書典6・う38さんのツイート: "CMYKだと再現できない色があるんだなあ,というのが体感的に分かった."
nikqさんのツイート: "これ色域マッピングとかRRTとかの効果をアーティストさんが体感で再現してるんだなあ。すごいなあ… "
のうめん🏗️👺デザイン産業バーチャル機械さんのツイート: "さっきいつきちゃんところで話してたシャドウとハイライトの色ずらしの件は図示するとこんな感じですぞ 基準色からただ明るく、ただ暗くしただけの色を乗せるより、少し色相をズラしてあげることでより鮮やかな色変化になるんよ… "

FadisさんはTwitterを使っています: 「人間が目を通して知覚する明るさと実際の光のエネルギーは非線形の関係にある。8bitで表現された256色段階のグレースケールが線形に変化して見える時、ピクセルの値と光のエネルギーの関係は線形ではない。近代的な3Dグラフィクスは物理モデルから光のエネルギーを求めるため、最後に変換が必要になる」 / Twitter
FadisさんはTwitterを使っています: 「RGBAのAの厳密な定義が無くて3Dプリンタで透明を扱う際に機器間で互換がとれないから、観測可能な物理量に基づくAの厳密な定義を作ったという論文。同じ材料でも大きさを変えると透過する光の量は変わるが、Aはサイズによらず同じ値が同じ見た目になるように定義される https://t.co/lXxoabovRx」 / Twitter
[1710.00546] Redefining A in RGBA: Towards a Standard for Graphical 3D Printing
FadisさんはTwitterを使っています 「HDRで吐くと色が薄くなって見えるっていうのは「私はゲーム開発者ですがコンテンツを正しい色で見て作っていません」と言っているのと同義なんだよ」 / Twitter
FadisさんはTwitterを使っています 「DirectXがRGBA各4bitで1ピクセル16bitのサーフェスという物をサポートしていて、Vulkanでも同等の物があったらVulkan上にDirectXを実装するのが捗るってことで、そういうVkFormatを追加する拡張が出来たらしいんだけど、拡張の名前VK_EXT_4444_formatsて… https://t.co/kAQAkoe2ZU」 / Twitter
Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK - Phoronix
7594591200220899443さんはTwitterを使っています 「著者の誠実な態度は買うが、本来こういう事をちゃんとちゃんとしていく事こそ出版社の仕事である。出版社が仕事しないならわざわざ商業出版する意義に乏しい。」 / Twitter
解答略さんはTwitterを使っています 「拙著「作ろう!CPU」について、重刷が決定したようです。 あちこちから指摘をいただいておりますが、私の無知のせいで、本書の第1刷は色弱の方に全く読めないものを出版してしまいました。本当に心よりお詫び申し上げます。私としては色を置換して第2刷にしたいと考えて、現在出版社と交渉しています」 / Twitter
解答略さんはTwitterを使っています 「ペアの配色を、こんな感じに変更しようと考えています。今回の版では間に合わないかもしれませんが、いずれ必ず変更しますので、色弱の方はもうしばらく購入をお待ち下さい。 https://t.co/39cXiME47K」 / Twitter
きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「@kaitou_ryaku そもそも色分けで線の違いを表現するというのがあまりよくないです。色よりも、形で表現したほうがいいと思います。この場合であれば白抜きにするか点線にするかなどです。 もしくは明暗差で。」 / Twitter
ǝunsʇo ıɯnɟɐsɐɯさんはTwitterを使っています 「「色覚異常の人に合わせて赤と緑で判別してる図表を変えないといけないの? めんどくさい」と思った人。 多分「日本語に合わせて多言語化対応しないといけないの? 英語のままでいいじゃん。めんどくさい」と虐げられた悔しい体験がほとんどない幸せなIT生活が若い頃から当たり前だった世代では?」 / Twitter
ふれーむさんはTwitterを使っています 「@otsune っていうか別に色弱者のユニバーサルカラーデザインだけでもないですよね。あの領域って。みんな老いたらレンズ体濁るし。」 / Twitter
FadisさんはTwitterを使っています 「glTF、構造自体は近代的なGPUで読みやすい良い3Dシーンのフォーマットなんだけど、「色は全てsRGB色空間の値だ。画像ファイルに色空間の指定があっても無視しろ」のところで、ウッってなるゲーム屋さん多そう」 / Twitter
FadisさんはTwitterを使っています 「色、「FF0000が赤です」みたいなのWeb屋の色の理解を見ると「色、なんて簡単なんだ」ってなるし、CIE XYZ色空間の少しでも大きな範囲を埋める為にここ10年くらいディスプレイ屋がやってる努力を見ると「色、なんて難しいんだ」ってなる」 / Twitter
FadisさんはTwitterを使っています 「すごく見たくない色の表し方になるけど、Webにwide color gamutがやってきたとき、既存のスタイルシートの意味を壊さずに拡張するとなると本当にこういうアレになるのかもしれない…」 / Twitter
nikqさんはTwitterを使っています 「scRGBに拡張して#-FE+FF-4Cみたいな表記を許せばXYZすべて表記できるようになる…!」 / Twitter
nikqさんはTwitterを使っています 「ただこれだと高輝度が表現できなくてさみしい」 / Twitter
福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「@ishiimark_sign @yoh7686 そういえばゲームパブリッシャー大手のElectronic Artsには色覚問題を含めアクセシビリティを扱う役職があるようで、へえと思った記憶があります https://t.co/LRprJrMMbe」 / Twitter
福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「EA Sportsのアクセシビリティ・リードの人が、PowerPointプレゼンを視力の悪い人や色覚異常のある人にも見やすくするための配色やフォント設定をまとめたカードを公開しています。https://t.co/V6rD3s7STO RGB値はスレッドの先でテキストでも書き起こしてくれてる」 / Twitter
Karen StevensさんはTwitterを使っています 「I'm currently having these cards delivered to everyone in the studio. It took many iterations of colors before those in the studio with Protanopia, Deuteranopia, and even the rare Tritanopia, could see all colors distinctly, yet keeping the shades close to colors already favored. https://t.co/KeNFojOeNo」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CSSの色指定で、darkgray が gray よりも明るいのは何故? これはX11のrgb.txtにさかのぼる。X11では grayは明度75%であり、実際にdarkgray (明度66%) のほうが暗かった。しかしその後HTML/CSSでgray (明度50%) が再定義きされ、darkgrayはそのまま残った。へえー https://t.co/Q1Gt95eXcu」 / Twitter
Why Dark Gray is Brighter than Gray In CSS | by Casper Beyer | Medium
FadisさんはTwitterを使っています 「殆どの画像編集ソフトウェアはピクセルの色をRGBで保持している為Kubelka-Munkモデルを適用するには情報が足りない。論文では基本となる顔料の色を数種類に絞り、それらの組み合わせで今の色になっているとしたら何が混ざっているかを推定する事でRGBを顔料の割合に変換して本物らしい色の変化を求める」 / Twitter
Mixbox - Practical Pigment Mixing for Digital Painting
FadisさんはTwitterを使っています 「画像編集ソフトウェアのブラシが色を混ぜた時に本物の顔料のような色にならない問題を解決する論文。顔料を混ぜた時の色の変化はKubelka-Munkと呼ばれるモデルに従うが、このモデルではRGBで同じ色であってもその色に至るまでに混ぜた顔料によってその後の振る舞いが変わる https://t.co/VmgfqNU1pt」 / Twitter
Make Beautiful Gradients in CSS, with linear-gradient, radial-gradient, or conic-gradient.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CSSで美しいグラディエーションを作るには: 通常のRGB値を補間すると、例えば黄→青と変化する中でどうしても灰色の部分ができてしまう。これを避けるためRGBではなくHSLやLABなど別の色空間で補間する手がある。ツールを使って中間色を指定すればCSSでも実装可能。 https://t.co/O9onQSl02E」 / Twitter

Little CMS – Great color at small footprint
Color Tool - Material Design
色覚異常 | 診療内容 | 医療法人 慶心会 なかやま眼科クリニック|大阪市福島区の眼科

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

HiDPI

HiDPI - ArchWiki
Tsugawa/CubeSoft, Inc.さんはTwitterを使っています 「高 DPI 対応、よほど見た目を気にするアプリ以外は「悪い事は言わないからシステム (Windows) に任せておけ。な?せいぜい見た目がぼやける位やろ?頑張って自力で完全対応しようとしても、絶対、地雷踏むから」と言う感想。Per-Monitor DPI とか、本当に「罰ゲームか何かの類か?」みたいな。」 / Twitter
「Ubuntu 14.04 LTS」レビュー--高解像度化対応やLinuxカーネル3.13採用など - CNET Japan
ほげめも: Linux HDMI で WQHD まとめ
won't fix: Gnome 3.10 / GTK3.10 でのHiDPI
EIZOの27インチ4K液晶ディスプレイEV2785-BK購入後のレビュー USB Type Cケーブル1本で映像出力・給電に対応 | ITハンドブック
研究千年牛酪情報保管庫菩薩さんのツイート: "HidpiマルチモニタはWindowsでもおもしろ挙動するしそういうものなのかなという思いがある…"
まさみさんは語りたいさんのツイート: "マルチモニタ時のHidpiは2年以上前から苦しめられていて、常時2画面を諦めた主な理由だったりする。"
Takashi Kawasakiさんのツイート: "僕はWindowsで4K液晶とかを150%設定で使ってるけど、古いアプリのスケーリングは、「システム(拡張)」という謎テクノロジーで「割と」綺麗になるのであんまり困ってない。 というか、ほとんどの古いアプリは既に捨てた。… "
タスクマ ネージャーでアプリのDPI対応を確認可能 ~「Windows 10 19H1」Build 18252 - 窓の杜
次期Windows 10のタスクマネージャーでDPIスケーリング対応アプリが確認可能に - PC Watch
なかのん&マジックさんのツイート: "予想したけど、それ以上に200%表示はフォントがWindowsでも綺麗だ。これが標準的な環境になっていかなあかんな。"
なかのん&マジックさんのツイート: "これ、HiDPI対応のアプリで、200%表示だと、MS Pゴシック等々もベクターフォントとしてのレンダリングになるのか?"
なかのん&マジックさんのツイート: "そうか、200%表示のWindowsって見た目の印象がmacOSと変わらんのか。"
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?" (1)
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?"
Masaru Iritaniさんのツイート: "ビルド 18298 でポインターのサイズを最大にすると面白いぐらい大きくなりますね。これなら 4K ディスプレイでもすぐに見つけられます。スクリーンショットでお見せしたいところですが、どうやらポインターは映り込まない模様です。 #WindowsInsiders"
渋川よしきさんのツイート: "HiDPIがまともにサポートされていて(外部ディスプレイと内部ディスプレイで個別にDPI設定できる)、ピクセル単位スクロールができるタッチパネルがきちんと動くLinux機が出たらメイン機にしたいとは思っているけど、すこーしだけ足りない。"
Bug-org 1557587 When I open 2 or more windows in different DPI monitors, window size in non-primary monitors are not restored correctly - WebStudio

UI デザイン

水原滝さんのツイート: "「SwitchのUIにははい、いいえがない」っていうのは言われて初めて気づいたな。「はいかいいえかを判断するには文章を読まなければならない」から、「ボタンを読めば本文を読まなくてもいい」って発想なのか。 https://t.co/8RKAEJpAYi… https://t.co/DQwjFiop6d"
【CEDEC 2018】明快で軽快! Nintendo SwitchのUIを触るだけで楽しい理由 - GAME Watch
「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
メールアドレスの確認フィールドをなくすべき理由 | UX MILK
IIMURA Takujiさんのツイート: "例えばこんな感じ。 ・見えない物は気づかれないので使わない ・目的の機能へ1タップで行ける(機能が見えている)ようにする ・ファイルやフォルダの概念は理解されないので使わない ・動作を変更する設定等は解ってる奴しか弄らないので標準設定でも問題ないように ・ユーザID等の文字列を覚えさせない"
「Amazonのプライムビデオが難しい」というおかんの言い分を聴いてみた|Tsutomu Sogitani|note
スマホUI考(番外編) UIやUXを劇的に改善する、『ビッグオー駆動型開発』とは | fladdict
Manabu Uenoさんのツイート: "一般的なフォームで、名前や電話番号の入力欄の分割をやめるよう指摘すると、DBの都合でできないと言われることがある。なぜDBのフィールドを分けるのか聞くと、「できるだけ細かく情報を取った方がいい気がするから」という運営者の曖昧な管理欲しかなく、入力コストとのバランスが考慮されていない。… https://t.co/oJixrHiUi3"
Manabu Uenoさんのツイート: "例えば電話番号の入力操作について分割式と単一式を GOMS-KLM で試算すると、分割式は約70%も多く時間がかかることがわかる。また、入力欄を必要以上に分割することはUIの国際化でもよく問題になる。名前、電話番号、住所などは文化圏によって書式上の区切りの数や順序が異なるから。… https://t.co/FXaegHiByQ"
Manabu Uenoさんのツイート: "もちろん書式を分割することに正当性がある場合もあるだろう。しかし多くの場合、運営者が正当だと判断する根拠はユーザーが素朴に期待するサービス内容とは関係がない。もし本当に必要性があり、それがユーザーのメンタルモデルと乖離しているようなら、運営者はそれを真摯に伝えなければならない。"
Manabu Uenoさんのツイート: "運営者は、どんな入力もユーザーにとっては少なからぬコストでありリスクであると考える必要がある。例えユーザー自身がそれを認識していなかったとしても。特に個人情報とのトレードで無償サービスを提供する場合など、その「意味」をユーザーから隠すことはサービス倫理として看過できない。"
日本企業のアプリには「おもてなし」の心が足りない | 及川卓也のプロダクト視点 | ダイヤモンド・オンライン
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジング(数えずに把握できる数)の上限が3である人が多いためと思う。 UI設計だと、アイテムを並べるとき、なるべく3つ以内、多くて4つという指針がある。 ---- 「線4本は何か嫌だな」という万国共通の心理 https://t.co/k7dln3DUR5」 / Twitter
漢字の「一」「二」「三」の次がいきなり「四」になるのはなぜなのか?【漫画版】 (3/3) - ねとらぼ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジングは4が一般的だった。 むしろ、MIND HACKSに載っていた、密集度による分解把握力低下が主因かも。 https://t.co/KEr3syDoZ3」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ようやくバリア感が強かったフラットデザインが終わるか。抽象化すればするほど、記号が分かる人にしか使えないUIを作るものなのになんで流行ったのかよくわからんかった。 / OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜 https://t.co/ItV72Gn9Dp」 / Twitter
OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「特にフラットな"ボタン"。なぜそこがクリックできると思えるのかと考えると、色々なデザインを見た経験に依存して分かった気になってるだけだよなと。」 / Twitter
棚旗 織さんはTwitterを使っています 「@d_toybox 広告やグラフィックデザインの潮流が PC や web に波及した結果だったと思っています。Helvetica Ultra Light を使うような、軽くて薄いデザインが10年くらい前から流行っていましたので。」 / Twitter

ミニアプリ

Eiji Kitamura / えーじさんはTwitterを使っています 「iOSのApp ClipsもOSレベルのミニアプリという見方をして比較すると面白い。」 / Twitter
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「iOS14の新機能App Clipsって地味に見えるもののミニアプリ時代の到来を予感させるな、と。日本でいち早く対応した東京・麻布のTAILORED CAFEで実際に「ダウンロード不要のネイティブアプリ」を体験した様子を、海外のミニアプリ動向と合わせて紹介する記事を書きました↓ ☕ https://t.co/uiXC9K7XUu」 / Twitter
ミニアプリ時代が日本にも到来? 「App Clips」を東京のカフェで使ってみた | Coral Capital
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「@agektmr App Clipsは、すごくInstant Apps的に見えます。でも当初、Instant Appsは決済非対応だったので、だいぶUX的には違う受け止められ方をしている気もします」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「@knsmr インストール不要なアプリという点で結果的に似た立ち位置になりましたが、App Clipsの方が(意図していたかはともかく)ミニアプリに近い扱いですよね。さっきシェアした資料を見る限り、中国のミニアプリはウェブ標準どころか全部バラバラな仕様なので、今後広がっていくと開発者は大変そう…」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「中国のミニアプリの技術仕様まとめ。超絶面白い。 // Learning from Mini Apps https://t.co/yxmkZwYyUA」 / Twitter
Learning from Mini Apps - Google スライド
成瀬さんはTwitterを使っています 「この「中国のミニアプリ」は古代からある”Web Wideget”ってやつだな」 / Twitter
大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する - クックパッド開発者ブログ

MS

Windows App SDK(WinUI 3, Project Reunion)

窓の杜

UWPアプリの洗練されたUIをWin32アプリでも ~Microsoft、「WinUI 3 Preview 1」を発表 - 窓の杜
Microsoft、「WinUI 2.5」を公開 ~プログレスリングやBootstrap風の情報バーを追加 - 窓の杜
Microsoft、「Windows UI Library」を公開 ~OSバージョンに縛られずに新機能を導入可能 - 窓の杜
Microsoft、「Project Reunion 0.5」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
「Uno Platform 3.6」が発表 ~「Project Reunion 0.5」の「WinUI 3」に即日対応 - 窓の杜
Microsoft、「Project Reunion 0.8」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
「Project Reunion」の正式名称は「Windows App SDK」に ~v0.8が一般公開 - 窓の杜
Microsoft、「WinUI 3」の最新安定版を「Windows App SDK 1.0」の一部としてリリース - 窓の杜

マイナビニュース

Windows 10 21H2以降で恩恵を受けられそうなWinUI 3 - 阿久津良和のWindows Weekly Report | マイナビニュース
Microsoft、UWPをこっそりと潜めていく方向を明らかに | TECH+
さよならUWP? - 阿久津良和のWindows Weekly Report | マイナビニュース

ASCII.jp

ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
ASCII.jp:UWPとデスクトップアプリの統合を試みる「Project Reunion」のプレビュー版が登場する (1/2)
ASCII.jp:あらためて「.NET」について整理する (1/2)

infoQ

Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
MicrosoftがProject Reunion 0.5のプレビュー版をリリース
ReactとWinUI 3を使ってWindowsネイティブアプリを開発する

Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」 ~WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化 - PC Watch
microsoft/ProjectReunion: Project Reunion is an evolution of the Windows developer platform that will make it more compatible, agile, modern and open.
Introducing WinUI 3 Preview 1 - Windows Developer Blog
WinUI 3 Preview 2 (July 2020) | Microsoft Docs
デスクトップ アプリ用の WinUI 3 の概要 | Microsoft Docs
WinUI 2.6 Release Notes - Windows apps | Microsoft Docs
Developing for Windows 11 - Windows Developer Blog
Build your first WinUI 3 app (Part 1) - Windows Developer Blog
Window App SDK Ecosystem Update - Windows Developer Blog
Adding event handlers: Sounds, Dark Mode & Windowing (Part 2) - Windows Developer Blog
Making the app single-instanced (Part 3) - Windows Developer Blog

Windows Community Toolkit

ARM64アプリの開発をサポート ~Microsoft、「Windows Community Toolkit」v6.0を発表 - 窓の杜
トースト通知がたった数行で。新しいMVVMライブラリも ~「Windows Community Toolkit 7.0が公開 - 窓の杜

Uno Platform

「Uno Platform 2.0」が正式公開 ~C#/XAMLのUWPアプリをiOS/Android/WebAssemblyへ移植 - 窓の杜
「Uno Platform」が「Visual Studio Code」にプレビュー対応、WebAssemblyアプリが開発可能に - 窓の杜
Windows 10の「電卓」アプリがオープンソース化 - 窓の杜
Windows 10の電卓アプリがiOS/Android/WebAssemblyで動作 ~「Uno Calculator」が公開 - 窓の杜
Unoプラットフォーム3.1がリリース
Uno Platform 3.8登場

MAUI

Microsoft、.NETのUIを統一する「.NET Multi-platform App UI」(.NET MAUI)を発表 - 窓の杜
マイクロソフト、マルチプラットフォームUIを実現する「.NET Multi-platform App UI」(MAUI)を実際にデモ。単一コードからWebとWindowsアプリを生成 - Publickey
マイクロソフト、Blazorでデスクトップアプリやモバイルアプリを開発できる「Blazor Hybrid」は.NET MAUIベースになると説明 - Publickey
Microsoft、「.NET MAUI」Preview 4を発表 ~マルチプラットフォーム対応アプリUIフレームワーク - 窓の杜
.NET MAUI Preview 4はこちら
.NET MAUI Preview 5が目前に
新たなWeb認証オプションと.NET MAUI Essentialsを加えたXamarin.Essentials 1.7
MicrosoftがXamarin Community Toolkit用の.NET MAUI Compatibility Packageをリリース
.NET MAUIがPreview 8をリリース、しかしGAは2022年Q2に延期
.NET MAUI Preview 9 - ボーダ、コーナ、シャドウ、パフォーマンスの向上

WebView2

新しい「Edge」をアプリに組み込める ~Win32 C/C++向けの「WebView2」が一般公開 - 窓の杜
MicrosoftがChromiumベースのWebView2でハイブリッドWindows Webアプリをサポート
Microsoft、.NET向け「WebView2」を一般公開 ~ランタイムバージョンの固定にも対応 - 窓の杜
Microsoft Edge WebView2が一般公開
マイクロソフト、Chromiumベースの「Microsoft Edge WebView2」.NET正式対応版リリース。バージョンを固定できる「Fixed Version distribution mode」も - Publickey
高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks
Microsoft Teams 2 will use half the memory, dropping Electron for Edge Webview2 | Hacker News
「Electron」と「WebView2」はどう違う? ~「Electron」の開発チームが解説 - やじうまの杜 - 窓の杜
Microsoft、「WebView2」ランタイムをWindows 11に同梱 ~古い環境へのバックポートも進める - 窓の杜

Windows Runtime

C++/WinRT

C++ - C++/WinRT の紹介
Standard C++ and the Windows Runtime (C++/WinRT) - Windows Developer BlogWindows Developer Blog
C++/WinRT
C++WinRTではじめるUWP
C++/WinRT | Modern C++ for the Windows Runtime
Microsoft/cppwinrt: C++/WinRT is a standard C++ language projection for the Windows Runtime.
MS、オープンソースで公開のC++/WinRTの処理高速性をアピール | マイナビニュース

Windows Template Studio

Windows Template Studio - Visual Studio Marketplace
Microsoft、UWPアプリの雛形を手軽に作成できる「Windows Template Studio」v1.3 - 窓の杜
「Windows Template Studio」v1.5が公開 ~UWPの雛形を作成するVisual Studio拡張機能 - 窓の杜
アプリ雛形を作成するVS拡張「Windows Template Studio」v1.6、画像ギャラリーに対応 - 窓の杜
Visual Basicをサポートした「Windows Template Studio」v1.7が公開 ~Prismにも対応 - 窓の杜
アプリの雛形を作成するVisual Studio拡張「Windows Template Studio」がv2.0に - 窓の杜
「Windows Template Studio」がv2.2に ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜

Windowsランタイム - Wikipedia
Windows Runtime - Wikipedia
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows Runtime 8.x APIs for desktop apps (Windows)
Windows と C++ - Windows ランタイムにおける洗練された型
RoGetActivationFactory function (Windows)
パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) - UWP app developer | Microsoft Docs
ToastNotification Class (Windows.UI.Notifications) - UWP app developer | Microsoft Docs
遥佐保の技術メモ:[C++][WRL]デスクトップアプリからトースト通知 - livedoor Blog(ブログ)
DesktopからToast Notificationsへ通知する | Software Development | Just another WordPress site
トースト通知 - かずきのBlog@hatena
デスクトップアプリからWinRT APIを使用する - 酢ろぐ!
特集:デスクトップでもWinRT活用:開発者が知っておくべき、ライブラリとしてのWindowsランタイム (1/5) - @IT
WinRT APIを使ってみる - イグトランスの頭の中
WinRTとC++イテレータ - イグトランスの頭の中
WinRTのref classでの演算子多重定義 - イグトランスの頭の中
C++コンポーネント拡張:新しいCOM
COM 再入門 (1) - モノトーンの伝説日記
Windows Runtime/WinRTとプログラミング言語 - WisdomSoft
Windows 8時代のアプリ開発とWinRT(1/4) - @IT
WinRT:Win32のオブジェクト指向による代替
Windows 8時代のアプリ開発
Rockridgeさんのツイート: "Fx64:Windows 10ネイティブのトースト方式通知をサポート。通知はアクションセンターに登録される。今のところNightlyチャンネルでのみ有効化されている。 / “1155505 - Implement ToastNo…” https://t.co/0wEyVnh7NH"
ゆたかさんのツイート: "UWP最高!!全部API置き換えるもん!!!!みたいな熱量からだんだんやっぱWin32捨てれねぇわ…感を漂わせて、バージョンごとに増えていく許可されたWin32 APIがちょっとおもしろい"

CLI

Standard ECMA-335
Standard ECMA-335-archive
ECMA-335翻訳ドキュメント
ECMA C# and Common Language Infrastructure Standards
Reference Source
共通言語ランタイム (CLR)
coreclr/dotnet-standards.md at master · dotnet/coreclr
マイクロソフト、C#やCLIのオープンソースによる実装を認める。Monoプロジェクトに弾みがつくか? - Publickey
JIS X 3016共通言語基盤の改正について | IPSJ/ITSCJ
共通言語基盤 - Wikipedia
Common Language Infrastructure - Wikipedia
Microsoft Open Specification Promise - Wikipedia
Microsoft Open Specification Promise - Wikipedia
WPF/WinFormsをオープンソース化 ~Microsoft、「.NET Core 3.0」Preview 1を発表 - 窓の杜
[速報].NET Coreがデスクトップアプリケーション対応。Windows Forms/WPF/UI XAML Libraryもオープンソース化。Microsoft Connect(); 2018 - Publickey
NOKUBI Takatsugu野首貴嗣さんのツイート: "Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://t.co/i43JoAEyif - marchrockのコメント / はてなブックマーク - https://t.co/OF08FdpIeW"
wpf/contributing.md at master · dotnet/wpf
Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://github.com/dotnet/wpf/blob/master/Documentation/contributing.md - marchrockのコメント / はてなブックマーク
.NET Core 3.0の概観:C# 8、WPF、Windows Formなど
C#機能: ラムダ属性
CoreCLRのソースをVisual Studio 2017で読む - fujieda's tech blog
[速報]オープンソースの「.NET 5」がすべての.NETを引き継ぐ。.NET Frameworkと.NET CoreとXamarinは「.NET 5」に。Microsoft Build 2019 - Publickey
[速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020 - Publickey

DWM

WDDM, DWM: pros and cons - NyaRuRuが地球にいたころ
Futuremark Updates and Vista DWM - NyaRuRuが地球にいたころ
DWM による描画の現場を押さえる - NyaRuRuが地球にいたころ
Desktop Window Manager (DWM) の動作解説図 - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (1) - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (2) - NyaRuRuが地球にいたころ

GDI

GDI アクセラレーションについて整理する - NyaRuRuが地球にいたころ
Windows 7 と GDI/GDI+ の GPU アクセラレーションの可能性 - NyaRuRuが地球にいたころ
「Windows Vista での GDI/GDI+ 描画」についてのお詫び - NyaRuRuが地球にいたころ
Windows Vista での GDI/GDI+ 描画 - NyaRuRuが地球にいたころ

NyaRuRuが地球にいたころ

WDDM によるタイムアウトの検出と GPU の回復 - NyaRuRuが地球にいたころ
進化しすぎた GPU の災禍 - NyaRuRuが地球にいたころ
GPU を利用したテキストレンダリング - NyaRuRuが地球にいたころ
デスクトップの暗黒面 - NyaRuRuが地球にいたころ
デスクトップの裏側 - NyaRuRuが地球にいたころ
デスクトップの裏側 (2) - NyaRuRuが地球にいたころ
デスクトップコンポジションの無効化 - NyaRuRuが地球にいたころ
Windows Vista (x86) SP1 ではデスクトップヒープのデフォルト値が増やされてる - NyaRuRuが地球にいたころ
ウィンドウコンポジション (1) - NyaRuRuが地球にいたころ
Windows 7 のグラフィックスの変更点を整理する - NyaRuRuが地球にいたころ
Guidelines for Graphics in Windows 7 - NyaRuRuが地球にいたころ
Windows 7 Developer Guide とグラフィックスの改良点 - NyaRuRuが地球にいたころ
Windows Vista と CreateWindow 限界 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 解答 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 - NyaRuRuが地球にいたころ
New Magnification API - NyaRuRuが地球にいたころ
New Magnification API (2) - NyaRuRuが地球にいたころ

窓の杜

新「Edge」ベースのPWAパッケージングを生成 ~「PWABuilder」に新しいプレビュー機能 - 窓の杜
Windows 11の仕様変更で様々な影響 ~フリーの高機能テキストエディター「Mery」ベータ版で暫定修正 - 窓の杜
Microsoft、「DirectX 12」の新しいビデオエンコードAPIを発表 - 窓の杜
Windows 11の仕様変更で様々な影響 ~フリーの高機能テキストエディター「Mery」ベータ版で暫定修正 - 窓の杜
「MSEdgeRedirect」にリモートコード実行脆弱性 ~Edgeで開かれてしまうリンクを既定ブラウザーで開くツール - 窓の杜
「EdgeDeflector」の作者が危惧していた仕様変更、とうとう製品版Windowsに導入されてしまう - やじうまの杜 - 窓の杜
Edge強制リンクを既定のブラウザーで開く「MSEdgeRedirect」がv0.6.0.0に更新 - 窓の杜
すべてのWin32アプリにWindows 11の「マイカ」効果を強制適用する「Mica for Everyone」 - Windows 11で絶対使いたいアプリ - 窓の杜

PC Watch

【山田祥平のRe:config.sys】Windows 11のウィンドウ、重ねて表示、並べて表示、フルスクリーン表示、それから…… - PC Watch
Windows 11月例更新で高解像度環境におけるUI描画の乱れを修正 - PC Watch

ASCII.jp

ASCII.jp:2画面タブレット向けのWindows 10Xをエミュレーターで動かす (1/2)
ASCII.jp:Windows 10のスタートメニューのタイルに表示されるWin32アプリのアイコンを作成する (1/2)
ASCII.jp:キーボードのキー入れ替えにおける、仮想キーコードとキーボードスキャンコード (1/2)
ASCII.jp:Windowsのディスプレイとモニター いまだ96DPIが基準

GIGAZINE

「Windows 11」の海外レビューまとめ、洗練されたデザインや複数ウィンドウを並べる「スナップレイアウト」はどうなっているのか? - GIGAZINE
Windows 11の使い勝手と電力効率を向上させる「ダイナミックリフレッシュレート」とは? - GIGAZINE
Windows 11でFirefoxなどブラウザの「Edge回避機能」がついにブロックされる - GIGAZINE
Microsoftのごり押しに負けて「Edge」を選ぶと一体どうなるのか? - GIGAZINE

infoQ

Windows Forms 5.0の新機能
Xamarin Forms 5.0は、新しいグラフィック機能とインタラクティブ機能を安定化

Twitter

Takashi KawasakiさんはTwitterを使っています 「Windows 11、結局コンテキストメニューはIExplorerCommandっていうCOMインターフェイスを実装しないといけない感じだけど、サンプルコードを見たら昔よりはあか抜けてて、これなら・・・いや、やっぱりダメだろって思ってる。 https://t.co/UBZ9KfGxEI」 / Twitter
AppModelSamples/dllmain.cpp at master · microsoft/AppModelSamples
Takashi KawasakiさんはTwitterを使っています 「見てたのはこの記事。 https://t.co/FDHQwPjA4M」 / Twitter
Extending the Context Menu and Share Dialog in Windows 11 - Windows Developer Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 単に掴むという意味だと、本当のウィンドウは(表示領域より)右/左/下にもう少し広がっていて、透過な影描画エリアなので、その透過部分は枠同様に掴めたりします。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このため、Windowsで座標0,0にウィンドウを置くと、表示的にはピッタリ左上とならず、透明部分だけ内側にズレて表示されてしまう。」 / Twitter
tn-mai/DX12Tutorial: DirectX 12の学習用コードとか資料とか
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10永続説の頃、Win8系タイリングが今後も続くと思ってヤレヤレ感あった。 で、Win11が出ると聞いてプチ期待したが、枠の角が僅かに丸くなる以外は、やっぱりタイリング系なのね。 視認性はXPあたりが一番良かった気がするのだけど。 (多少は立体的+マウスオーバーでボタン色変化)。」 / Twitter
ナマケモノさんはTwitterを使っています 「MS製DirectX 12上のDX9互換レイヤがオープンソースに。まじかよ、MS、神だな。 Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package https://t.co/NHdMaLq58e」 / Twitter
Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package | DirectX Developer Blog
ロボ太さんはTwitterを使っています 「そういえばWindowsの「砂時計カーソル」を最近見なくなったなぁ、と思ったら、今はWait Cursorと呼ばれていて、砂時計(Hourglass)カーソルと呼ばれてたのはVistaまでだったそうな。そうか、Vistaまでか。おっちゃん年よりだからさ、Vistaは「最近」な感覚なんだよ。 https://t.co/nlNq9nJ9mc」 / Twitter
Windows wait cursor - Wikipedia
INASOFT 矢吹拓也さんはTwitterを使っています 「我が家のWindows 11は、5回に1回くらいの頻度で、エクスプローラ(タスクバー・デスクトップ)が大変不安定で、よくプロセスが再起動する。 各常駐アプリが、タスクバーコーナー(タスクトレイ)のアイコンを再登録してくれる作りになっているかどうかがよく分かる。 GeForceさん、がんばってくれ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 11で追加されたアニメーションGIFを仮想キーボードから入力する機能、Win32的にはDrag&Drop APIでアプリには飛んでくるのだけど、これが他のアプリからのDrag&Dropなのか仮想キーボードからの画像挿入なのかを判断する方法が未だにわからない。。。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「HICONはリソースからロードすると、複数解像度に自動対応=あたかも複数イメージ保持に見えるが、実際は保持画像は一つ。 これはロード時の元リソース情報がHICONに記録されていて、必要あれば元リソースから別解像度を利用というトリックによる、と R・チェン氏が回答。 https://t.co/ZxhvmaRRde」 / Twitter
windows - Constructing HICON with multiple images from memory pixel data - Stack Overflow

圧倒的な説得力! プレゼン資料より「プロトタイプ」:日経ビジネス電子版
Microsoft Edge 99でスクロール時の動的リフレッシュレートが利用可能に | TECH+
「MS Silverlight」のサポート終了が迫る中、オープン実装「OpenSilver」がベータに | OSDN Magazine
SelectObject 関数利用時の注意事項 | Japan Developer Support Core Team Blog
Windows 11では、デスクトップにダイナミックなリフレッシュレートが搭載されます。|自作.com

Google

flutter 内部構造 - Google 検索
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Chromuim、ページの「ソースを見る」機能を無効にできる設定を追加。 注意: これは各サイトがソースの閲覧を禁止できるわけではない。ChromeBookを使っている学校などで、試験時に生徒がソースを見てインチキできてしまうのを防ぐのが目的らしい。 https://t.co/uzSjsf8z1a」 / Twitter
Permit blocking of view-source: with URLBlocklist (I1f5d91b3) · Gerrit Code Review
CyberRexさんはTwitterを使っています 「最近のChrome、怪しいと判断したファイルを警告バナーなしにダウンロードさせない挙動になっていてとても困っている。 右クリックして保存しないとダウンロードできない。 https://t.co/6Vb1gt8mtu」 / Twitter
🐈ねこーぷの妖精🐾 #フォロバ100さんはTwitterを使っています 「@0xerrebyc これ、Chromiumの仕様。EdgeやVivaldiにも影響してる。 詳細を調べると、Googleが調査してないファイルをダウンロードした際に発生する模様」 / Twitter
🐈ねこーぷの妖精🐾 #フォロバ100さんはTwitterを使っています 「@0xerrebyc Chromium93より導入」 / Twitter
shinobu.dartさんはTwitterを使っています 「そして、実はFlutterもCode Searchあるんですよ! Androidほどではないけど、GitHub上で読むより体験は良さそう! https://t.co/JkZL1TOpRI」 / Twitter
Google オープンソース
Takashi KawasakiさんはTwitterを使っています 「Flutterで一番辛いのはプラグイン感の干渉というか依存関係でビルドが通らなくなることで、この辺、まあ、モバイルアプリのアーキテクチャに依存する部分もあるわけだけど、サーバーサイドがコンテナとかマイクロサービスとかで疎結合になって管理が楽になってるのからすると、こっちもコンテナほしい」 / Twitter
Google、「Flutter for Windows」を発表 - 窓の杜
Google、「Flutter 2.10」リリース - 「Flutter for Windows」が正式版に | TECH+
「Flutter 2.10」公開、Windowsサポートが安定扱いに | OSDN Magazine

nuklear

Desktop Engine

Arcan | IRC: #arcan @ chat.freenode.net
letoram/arcan: Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"
Home · letoram/arcan Wiki

vurtun/nuklear: A single-header ANSI C gui library
P/ECE研究室
P/ECE研究室さんのツイート: "P/ECEで、オープンソースのGUIライブラリ「Nuklear」を使ってみました。 https://t.co/mUz8lBmah9 Nuklearは、少しマイナーみたい(?)ですが、とても使いやすいと思います。気に入りました。 https://t.co/uf1L6thBjn https://t.co/Bm8yINtVRX"
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
LCUI - Build simple desktop apps with C, XML and CSS
lc-soft/LCUI: A simple GUI library, it is written in C, support XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
LittlevGL - free embedded graphics library
littlevgl/lvgl: Embedded graphics library with transparency, animations and anti-aliasing with NO Double buffering.
andlabs/libui: Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
渋川よしきさんのツイート: "libuiが沈黙してしまったの悲しい"
渋川よしきさんのツイート: "libui、リスト対応の方針決めました!で時間が止まっているけど、ガリガリ使える感じなのか・・・"
OpenGL な UI を作るライブラリ一覧 - Qiita
OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
ocornut/imgui_club: Nice things to use along with dear imgui
本の虫: KMSCON
本の虫: KMSCONがだいぶ実用的になってきたようだ
りやさんさんのツイート: "Nuklear、本質的には内部のコンテキストから頂点、インデックスリストと、テキストの場合はアトラステクスチャのUVを吐き出すだけのシステムなので、めっちゃ取り回し良くて軽量。なんで日本で流行ってないんだ?"
OpenSiv3D+nuklearでGUIを実現する - Qiita
DXライブラリ+nuklearでGUIを実現する - Qiita
VisualStudioとC++だけでAndroidアプリをつくる - NuklearによるGUIの表示 - √g

ncurses

Wikipedia

ncurses - Wikipedia
ncurses - Wikipedia
curses - Wikipedia
curses (programming library) - Wikipedia
端末 - Wikipedia
Computer terminal - Wikipedia
Terminfo - Wikipedia
Terminfo - Wikipedia
Termcap - Wikipedia
Termcap - Wikipedia

ncurses関連manエントリ/関数一覧 - Qiita
ncurses 3x 非公式日本語訳
ncurses入門してみた – Linux Training X
ソフトウェアインストールメモ
curses
ncurses(3) manページ
ncurses(3)
ncurses(3) - Linux man page
Curses Programming with Python — Python 3.7.0 documentation
ncurses
Man page of curs_window
Ncurses programming guide
Linux Manpages Online - man.cx manual pages
NCURSESライブラリ - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
NCURSES雑多な自分メモ01 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
ANSI Escape Codes
TUIツール「Notcurses 2.4」公開、WindowsとmacOSもサポート | OSDN Magazine
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザ上で動くxterm。CJKや絵文字、GPUレンダリング、スクリーンリーダもサポートされており高速。依存がなくスタンドアロンで動作できる。 https://t.co/6HCsuh5XLY」 / Twitter
xtermjs/xterm.js: A terminal for the web

Project Zero

Project Zero: Drawing Outside the Box: Precision Issues in Graphic Libraries
Project Zero: Heap Feng Shader: Exploiting SwiftShader in Chrome
Project Zero: The Curious Case of Convexity Confusion
Project Zero: The Great DOM Fuzz-off of 2017
Project Zero: 365 Days Later: Finding and Exploiting Safari Bugs using Publicly Available Tools
Project Zero: Notes on Windows Uniscribe Fuzzing
Project Zero: One font vulnerability to rule them all #1: Introducing the BLEND vulnerability
Project Zero: One font vulnerability to rule them all #4: Windows 8.1 64-bit sandbox escape exploitation
Project Zero: One font vulnerability to rule them all #3: Windows 8.1 32-bit sandbox escape exploitation
Project Zero: A year of Windows kernel font fuzzing #1: the results
Project Zero: A year of Windows kernel font fuzzing #2: the techniques
Project Zero: Enabling QR codes in Internet Explorer, or a story of a cross-platform memory disclosure
Project Zero: In-the-Wild Series: Windows Exploits

blog

blog

HTML-first, JavaScript last: the secret to web speed! - DEV Community
GUIアプリのルーティング・ページ遷移 - ベインのブログ
ReactのよさはUIが第一級なこと - ベインのブログ
Search API v2 を作った話 | メルカリエンジニアリング
既存実装を活用しつつJetpack Composeを用いてクックパッドAndroidアプリの買い物機能を高速に開発している話 - クックパッド開発者ブログ
UINavigationControllerをカスタマイズ 〜OSの影響を受けづらいカスタムナビゲーションの実装〜 - クックパッド開発者ブログ
DroidKaigi 2021 において、「2020年代の WebView 実装」というタイトルで発表しました - クックパッド開発者ブログ
モバイルアプリ開発において宣言的UIフレームワークを利用する際のコンポーネント粒度についての考察 - クックパッド開発者ブログ
MUI v5 化を経て気づいたやっておいたよかったこと/やっておけばよかったこと | Money Forward Engineers' Blog
[速報]AWS、ローコードでWebのフロントエンドを開発できる「AWS Amplify Studio」発表。バックエンド管理機能も統合。AWS re:Invent 2021 - Publickey
JSレスBootstrapなdaisyUIの秘密 | フューチャー技術ブログ
画面の解像度の要件定義の話 | フューチャー技術ブログ
PlantUMLのテーマ(思わぬ展開) | フューチャー技術ブログ
Flutterの使いかた、環境構築から実装、ビルドまで | フューチャー技術ブログ
FlutterでGoogleマップを表示してみる | フューチャー技術ブログ
FlutterをElectronと組み合わせる | フューチャー技術ブログ
Flutter 2.8がリリース。モバイルアプリの性能向上、2Dゲーム向けフレームワーク「Flame」登場 - Publickey
【イベント登壇】モバイルアプリエンジニア向け勉強会「iOS/Androidアプリ開発のマルチモジュール化」で児山が発表しました - クックパッド開発者ブログ
今から始めるPWA対応(HTML編) | フロントエンドBlog | ミツエーリンクス
Python plotly メモ - hidekatsu-izuno 日々の記録
プロダクト支援チームでkintoneのStorybookをホスティングした話 - Cybozu Inside Out | サイボウズエンジニアのブログ
D-Bus のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
2022年におけるフロントエンド開発のベースライン - LINE ENGINEERING

Publickey

Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19 - Publickey
jQuery UIとjQuery Mobileがついに開発終了、今後はメンテナンスのみに。jQuery本体は引き続き積極的に開発 - Publickey
Flutter for Windowsが正式版に、「Flutter 2.10」リリース。単一コードでiOS/Android/Web/Windowsアプリが可能に - Publickey
Electronの代替を目指す軽量なRust製フレームワーク「Tauri」、リリース候補版に到達 - Publickey
React 18リリース候補版が公開。Automatic BatchingやServer-Side Renderingのストリーミング対応による速度向上、IE対応の終了など - Publickey

最近作っているClipScript - ブログのおんがえし
gifアニメにお絵描きできるGifDrawerをリリースしました - ブログのおんがえし
UINavigationController - iPhoneアプリ開発の虎の巻
オブジェクト指向の呪いと、その避け方 - mizchi's blog
qune: 「コードを共通化するために継承しよう」なんて寝言は寝て言えとゆ話
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23)
ソシオメディア | OOUI – オブジェクトベースのUIモデリング
Storybookでモジュール一覧を作る | フロントエンドBlog | ミツエーリンクス
OLE Drag & Dropを実装する - yohhoyの日記(別館)
Evolution of the Scrollbar
drawthe.net - Visioに頼らず綺麗なネットワーク構成図を手に入れる MOONGIFT
話題のGUIツールキットOrbtkを読む | κeenのHappy Hacκing Blog
消えゆくスクロールバー|3inowayosuke|note
✕はなぜ閉じるのシンボルなのか歴史を読み解く|みーた|note
UI開発の要素 — Overreacted
JSXが実はベターな解だったのではないか?|erukiti|note
今週の MYOS - 借り初めのひみつきち
W3C Document Process 2021について | フロントエンドBlog | ミツエーリンクス
☁ SPAをやめたい (やめられない) - ベインのブログ
Web開発者の悩みの種ランキング(2021年版) | POSTD

スライド

[2021.08.31] V8 と Blink のアーキテクチャ - Google スライド
PPL: Code generation in Blink-V8 binding - Google スライド
関数型プログラミングの視点で考えるテーマ機能 on React
tottoさんはTwitterを使っています 「GUIのやつの資料になります https://t.co/bQsqYiNnpJ #func_party」 / Twitter
ElmアーキテクチャでGUIプログラミング - Slidev

窓の杜

Apple、iPadで本格的なモバイルアプリ開発が行える「Swift Playgrounds 4」をリリース - 窓の杜
Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜
「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜

技術評論社

第595回 リモートデスクトップのためのSPICEクライアントあれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第682回 GNOMEのオンラインアカウント機能を極める:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第704回 高機能でMarkdownや作図もサポートするWiki.js:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

GIGAZINE

QRコードを生成できるだけでなく「作り方」まで理解できる「Creating a QR Code step by step」 - GIGAZINE
元Appleの重鎮が指摘する「Apple製品から失われてしまったもの」とは? - GIGAZINE
世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE
「ChromeはmacOS上でSafariの10倍もメモリを食う」という実験結果 - GIGAZINE
無料でウェブデザインの背景と文字の色を微調整しながら確認できるアプリ「Kontrast」 - GIGAZINE
Firefoxは過去6カ月間でどのようなパフォーマンス改善に取り組んできたのか? - GIGAZINE
ブラウザのアドレスバーとウェブサイト内の検索ボックスが混同されていることが判明 - GIGAZINE
文章の入力位置を示す「点滅するカーソル」は1960年代に誕生した - GIGAZINE
「Firefox 93」正式版リリース、AVIFをサポート&タブの自動アンロード機能が追加されてメモリ使用量が低下 - GIGAZINE
Firefox 93に搭載された「タブのアンロード機能」はどのように動作するのか? - GIGAZINE
モバイル版Firefox 94に「タブをトピックごとにまとめる」「放置タブの自動整理」など便利な新機能が登場 - GIGAZINE
Linuxのタッチパッド動作をMacbookなみの快適さにすることを目指すプロジェクトとは? - GIGAZINE
双方向にリアルタイムで通信可能なAPIなど多数のAPIが追加されたGoogle Chrome 97安定版リリース - GIGAZINE
FadisさんはTwitterを使っています 「xdmxが正常に動いていた時代にはこういう浪漫環境を作ってる人とかいた https://t.co/LfoYA3rqhV」 / Twitter
Quake 3 by arranging 24 monitors - GIGAZINE

infoQ

Preact

Preactで始める軽量コンポーネント指向開発 | 第1回 Preactの特徴 | CodeGrid
Preactの始め方&Reactとの違い - Qiita
preact コードリーディング | blog.ojisan.io
Preactを使いたいのに使えない - console.lealog();
Preactで作ったコンポーネントをWeb Components として公開する
軽量なReactライブラリーPreactを使ってみた - EY-Office
PreactチームがWMRをリリース、最新のWebアプリ開発を簡単に
PreactチームがWMRをリリース、最新のWebアプリ開発を簡単に
EtsyがReactからPreactに移行し、移行リスクを低減
Preact | Preact: Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
elm-tsでReactの代わりにPreactを使う - DEV Community

Google

Flutter 2はWeb向けに本番環境対応しており、新しいプラットフォームを追加している
GoogleがAndroidマテリアルデザインを刷新し、UI Toolkit とAndroid Studioを改善
GoogleがGoogle I/Oで新しいFirebase機能を発表
Google Jetpack Composeが1.0に到達、JetBrainsはCompose Multiplatformのアルファ版をローンチ
Google、Chromeのネイティブウィンドウオクルージョン技術について解説 | TECH+
Flutter 2.8とDart 2.15がパフォーマンス向上にフォーカス
Angular13の発表
FacebookやGoogleに倣うAndroidアプリの起動時間の改善
Flutter 2.10でWindowsサポートが安定版に
Jetpack Compose 1.1でパフォーマンスと視覚的な一貫性が向上

Ionic 6コンポーネントフレームワークの紹介
Vanilla JSの108の一般的なDOMタスク:HTML DOMプロジェクト
Crank: レンダリングを備えた新しいフロントエンドフレームワーク - 作者のBrian Kim氏に聞く
Brahmos -- コンカレントレンダリングを備えた、コンパクトなReact風UIフレームワーク
開発者向けの強力なブラウザであるPolypaneの作成者へのインタビュー
新しいSvelte NodeGuiでQtとSvelteを使用したネイティブデスクトップアプリケーションを作成できる
SpotifyのWebとデスクトップクライアントのコードベース統合への道のり
SwiftUI 3の新機能
Airbnbのサーバ駆動UIプラットフォーム
Ubuntuコアベースのキオスクを強化するUbuntu Frameとは
モダンなマイクロフロントエンドライブラリのPiral
プロダクションでの10万行以上のElmコード: 楽天が学んだ教訓を共有
Gatsby4 - 静的コンテンツジェネレーターを超える
WICG、mXSS攻撃に対抗する新たなHTML Sanitizer APIプロポーザルを公開
scikit-learn 1.0がスプライン変換と分位点回帰をサポート、プロットAPIを強化
Ionic PortalsでWebアプリのiOS/Androidネイティブコードへの統合が容易に
FacebookがCSS-in-JSソリューションのStylexをReact Finland 2021で発表
JetBrains Compose Multiplatformがベータ版へ
11のCSS-in-JSライブラリの比較調査 - Andrei Pfeiffer氏のReact Finland 2021での講演より
AWSがre:InventでAmplify Studioを使った新しいローコード開発ツールのプレビュー版をリリース
QCon PlusからAPIアーキテクチャトラックの総括
Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に

OSDN

AVIFをサポートした「Firefox 93.0」が登場 | OSDN Magazine
性能をさらに改善した「Flutter 2.8」が公開 | OSDN Magazine
「GNOME 41」が公開 | OSDN Magazine
「Electron 15」が公開、暗号化APIを導入 | OSDN Magazine
DebianベースのLinuxデスクトップ「Nitrux 2」が公開 | OSDN Magazine
MozillaがMDNをリニューアル、将来は有料サービス「MDN Plus」も導入へ | OSDN Magazine
Apple Metalサポートが加わった「Blender 3.1」が公開 | OSDN Magazine
「KDE Frameworks 5.92.0」が公開 | OSDN Magazine
ダークモードを強化した「GNOME 42」が公開 | OSDN Magazine

Wikipedia

Xerox Alto - Wikipedia

Qiita

Reflowを制するものはDOMを制す - Qiita
Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
the Nothing itself nothings
nothings/stb: stb single-file public domain libraries for C/C++
nothings/single_file_libs: List of single-file C/C++ libraries.
MSE/PSNR vs SSIM の図解紹介 - Qiita
UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
Sixel Graphicsを活用したアプリケーションの御紹介 - Qiita
Flutter 1 → Flutter 2 で変わったことと今後【概要】 - Qiita
CanvasKit - (Skia + WebAssembly)を使ってみる - Qiita

Zenn

SOLID原則で考えるReact設計
Seleniumと通信環境が悪い状態の試験
巨大化したSPAのフレームワークを少しづつVueに移行しはじめたお話

Twitter

その他

GUI

Twitter

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「VirtualDOMって単純にやるとtreeの変更を常時上から下まで探さないといけないのが効率悪そう、入力元となるobjectへの変更を直接DOMへの変更に翻訳する、みたいな方法じゃダメなのかな、と思って調べてたらどうもAngularがそうらしい https://t.co/ndMBUzIojP」 / Twitter
Understanding Angular Ivy: Incremental DOM and Virtual DOM | by Victor Savkin | Nrwl
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「templateが分割されているVueも同じアプローチが使えそうね。」 / Twitter
令掛ベインさんはTwitterを使っています 「レイアウト組みはフレックスボックスを使ってコンテナサイズ非依存で記述したい気がする。一方、なんだかんだでレイアウト計算 (コンテナのサイズから内部要素の位置やサイズを計算するやつ) をせざるを得ない状況がたまに出てくる」 / Twitter
令掛ベインさんはTwitterを使っています 「テーブルのセルの個数が多くてReactのオーバーヘッドがばかにならないやつ、必要なセルだけ描画する (空のセルに対してReactコンポーネントやDOM要素をインスタンス化しない) ことでなんとかなりそう」 / Twitter
令掛ベインさんはTwitterを使っています 「svgのpattern[patternUnits=userSpaceOnUse]をrectで描画するときはxを指定するとパターンの開始座標に影響するから代わりにtranslateで描画位置を指定するという、必要になりたくなかった知見」 / Twitter
mattnさんはTwitterを使っています 「マークアップとデータを表記できて WASM にコンパイルできる言語。 / “GitHub - pannous/wasp: 🐝 Wasp : Wasm programming language” https://t.co/4mSEJh75sn」 / Twitter
pannous/wasp: 🐝 Wasp : Wasm programming language
sjiさんはTwitterを使っています 「最近だと言語環境的にはスレッドからの通信と I/O 同時に待てるイベントループが欲しいくらいだなー、欲を言えば generics」 / Twitter
sjiさんはTwitterを使っています 「あとスレッド間のゼロコピーのデータ共有」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GUIの状態管理、線形型でなんとか安全にならないのかな #複雑GUI会」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「よく考えたら、線形型になったところでReactで書くときのようなメリットは得られない気がするな。例えばDOMの要素を書き換える処理を書いたとき、それが適切かどうかは処理の前後でDOMが意図通りになっているかが重要で、単に線形型使うだけでは結局分かりづらいのでは」 / Twitter
🎨・🎓さんはTwitterを使っています 「ファンクタ適用が初めて動くようになりました,以下は体裁をファンクタ適用により外挿してコードブロックを組む例: 1枚目: 文書例(コード例はHaskell) 2枚目: コードブロックの体裁を指定したファンクタ適用 3枚目: 実際に組まれたコードブロック #SATySFi https://t.co/SJOtRdTRpd」 / Twitter
🎨・🎓さんはTwitterを使っています 「勿論signature matchingによる型エラーも出る https://t.co/VFIpkwRPpL」 / Twitter
コウノアスヤさんはTwitterを使っています 「自分でUIをデザインするとき、「押せないボタン」についてよく頭を悩ませる。 Disabledで終わらせがちだけど、たぶん一番良いのは「押せるんだけど、そのアクションが行えない理由と解決策を表示する」なんだよな。AppleのUIでもDisableなボタンは殆ど見ないし。 https://t.co/XhF5DQitrH」 / Twitter
sumimさんはTwitterを使っています 「「GUIのマイルストーン:Alto、Apple、Blit、Paintbox、その他の初期のシステム」 ロブ・パイクらの Blit https://t.co/Lm3LArUk6C に触れているところが渋い。 それにつけても、ロシア語の文章がこんなに気軽に読めるなんて。DeepLに感謝!」 / Twitter
The Blit: A Multiplexed Graphics Terminal
Хабр ДизайнさんはTwitterを使っています 「Вехи развития GUI: Alto, Apple, Blit, Paintbox и другие ранние системы https://t.co/Qe7nrb4JV3」 / Twitter
Вехи развития GUI: Alto, Apple, Blit, Paintbox и другие ранние системы / Хабр
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「"Defensive CSS" という考え。Responsive design と似ているが、将来的にサイズ・フォント・個数・画像が変化したときに、なるべく影響を受けにくいようなCSSを書くためのTips集。 https://t.co/CWOBUnvDJs」 / Twitter
Defensive CSS - Ahmad Shadeed
Takashi KawasakiさんはTwitterを使っています 「Dart 2.15では、Isolate.exitでオブジェクトをコピーなしで返すことができるようになるのね。素敵。 https://t.co/aRiPzsIbL0」 / Twitter
Announcing Dart 2.15. Fast concurrency, constructor… | by Michael Thomsen | Dart | Dec, 2021 | Medium
Takashi KawasakiさんはTwitterを使っています 「Dartのこの辺の型をそのまま持っていける感じなの、他の言語出身者からすると相当にキモイ。tear-offっていうのは、genericsの型なしの状態で変数(?)に拘束して持っていける感じなのね。まぁ、新手のtypedefかな。 https://t.co/F6fhb1w3Dr」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「そもそもが、この従来からサポートされてる型を変数にぶち込む感じの奴がキモイ。一番下の書き方の方がむしろ理解はしやすい。長いけど。 https://t.co/XJ6a8BVv3X」 / Twitter
ドッグさんはTwitterを使っています 「テキスト上でグラフが書きたいだけなら,適当なグラフエディタで描く → Graphviz の形式で吐かせる → dot-to-ascii とかでテキストに変換 が一番楽だと思う.これならレイアウトも勝手にやってくれるし https://t.co/AtWoqfEz55」 / Twitter
ggerganov/dot-to-ascii: Graphviz to ASCII converter using Graph::Easy
令掛ベインさんはTwitterを使っています 「Tailwind CSSみたいな汎用クラス主体でスタイルが組まれているサイト、ユーザースタイルシートで特定の要素を非表示にするみたいなカスタマイズをやりづらい」 / Twitter
FadisさんはTwitterを使っています 「Vulkan 1.2.203で追加された新しい拡張VK_QCOM_fragment_density_map_offset。フレームバッファのサイズに対して大きすぎるサイズのfragment density mapを作り、fragment density mapのどの部分を使うかを示すスクロール値をレンダーパスに設定できるようにする https://t.co/0HYG8P3F06」 / Twitter
Vulkan-Docs/VK_QCOM_fragment_density_map_offset.txt at ac23aa229fd9b8ea06aa99cf07b79cdc15af406f · KhronosGroup/Vulkan-Docs
FadisさんはTwitterを使っています 「fragment density mapをfoveated renderingを行うために使う場合に、視線に移動に合わせてfragment density mapをスクロールさせることで毎フレームfragment density mapを作り直さなくて良くするのがこの拡張の狙い」 / Twitter

Takashi KawasakiさんはTwitterを使っています 「Flutter、どのプラットフォームにおいても、下位レイヤーのコードは一切隠されてないので、いざとなれば直接手を入れることができるという安心感がある。for Windowsに関しても、普通に wWinMainがあるし、Windowsの中途半端にその辺が隠れたフレームワークよりはずいぶんとやりやすい。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「まぁ、そもそもDart RuntimeとSkiaのSurfaceがウィンドウに乗ってるだけという構造なので、理解が難しいことは何もない。シンプルで良い。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「なんか、主要なフレームワークが実はグローバルなMap<Name, Object>を綺麗にラップしてるだけっていうのは本当は嫌い。と言いながら、自分もそういう実装してしまうんだけども。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「そういや、Flutterで問題なことの一つに、http/2のサポートが弱いというか、httpに対して透過的じゃないとか、http/3に関してはそもそも影も姿もないみたいなこと。」 / Twitter
なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
Kazuho OkuさんはTwitterを使っています 「DNS Camel問題、DNSの設計が古いことに起因する問題だと思ってる。 * レコードタイプをアプリケーションが勝手に定義できない * レコードタイプ追加のたびに、権威サーバのプログラムの拡張が必要(レコードのバイナリ化のために) ってあたり。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「HTTPだと、URI Pathをどう使うか、ペイロードの意味が何かはアプリケーションが自由に決められるでしょ。DNSは、そういう分離がされる前のgopher的な設計なのよ」 / Twitter
mizchiさんはTwitterを使っています 「ブラウザからローカルファイルを編集する機能と、DOMが自分自身の生成元へのリンクをもつ機能を組み合わせて、ブラウザ内で完結して自分自身のソースコードを書き換えるエディタがたぶん作れそう。バンドラまで同梱するかは悩み中。」 / Twitter
panda noirさんはTwitterを使っています 「テストを書くこともだけど、「テストを直すこと」の意味をわかってない人が多い気がする。テストを直すってのは基本的には仕様の変更を意味していて、逆に言えば仕様が変わらないならテストは*変えてはいけない*。こうなってないテストも多いし、実装変えたからテストも変えちゃえとすることも多い。」 / Twitter
create-react-app - Google 検索
ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「nextjs(React)、nuxt(Vue)使ったことある? って聞かれることがあるけど、 SSR?SSG? i18n対応は? テストはJEST? Cypressでよか? Validationライブラリは? REST?WebSocket?gRPC?GraphQL? デザイナいる?XDやFigma? コンポーネント設計は?(Storybook作る) CSSはF/Wは?」 / Twitter
ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「他にも npm/yarnの整備 デプロイ先に合わせたビルドパイプラインの設計・実装 デプロイ先の環境整備 と、諸々よしなにできる人を希望されていると思うんだろうけど。 デプロイとかは面倒なので「amplify」で〜。とかいってもamplify cli is 何? みたいな話になり。 手順書作ったり。 大変ね。」 / Twitter
YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「XSLT を使えば、クライアントサイドで XML から HTML に変換できるよ」 エンジニア「サーバサイドでやれば良くない?」 〜 今 〜 エンジニア「Vue を使って、クライアントサイドで JSON から HTML に変換するよ!」 XML「解せぬ」」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ゲームロジックを決定論的にするのは難しい。以下のような不確定要素がある: - ハードウェアによるfloat演算の誤差 - 乱数系列 (これは比較的簡単) - ハッシュテーブルの順序 - ゲームエンジンのcallback順序 - 物理エンジンのイベント順序 - UIのタイミング https://t.co/srkpYmau7E」 / Twitter
Game Networking Demystified, Part II: Deterministic
すらーぷの妖精#フォロバ100さんはTwitterを使っています 「React死ね。サイトのUI戻すのにReactじゃあマジで難しい」 / Twitter
KOBA789さんはTwitterを使っています 「WASM 使って好きな言語でフロントエンド開発みたいな話、夢はあるけど乗り越えなきゃいけないハードルはまだまだ無限にあるぞ! おもしろいのは確かだからみんなも試してみてくれよな!!」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「まぁ、無限とはいうけどWasm Interface TypesとWasm GCが普及したら大分いけるんじゃないかと思いますよ &gt;RT」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あとは... スレッドとかWASIの諸々と(そのブラウザー上での実装)があると大きいかなぁ。」 / Twitter
Kouji MatsuiさんはTwitterを使っています 「いや、WPFのようなXAMLベースのフレームワークだと、コレクションの表示とか極端に実装しにくいからMVVM使うわけで、ボタンとテキストボックス一個と言うのは、趣味の開発でも想定外なのではという...」 / Twitter
フロントエンド大好きseyaさんさんはTwitterを使っています 「色んなよくある UI パーツの種類、使い方、状態などを整理してるサイト。勉強になる!! https://t.co/1DwtyIdpGx https://t.co/jAhOz8Bkfm」 / Twitter
UI Control Guidelines | Wireframing Academy | Balsamiq
日本のアプリのUI(ユーザーインタフェース) は古くて醜いのはなぜでしょうか?に対するMakiko Nukagaさんの回答 - Quora
Epoxy/README.ja.md at main · kekyo/Epoxy

状態管理ライブラリ評価

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ReactのContextでReduxで管理するような大きな状態を受け渡すと無駄に伝播してしまうっていうのは、無駄どころか子要素が常にすべての状態にアクセスできてしまうという問題もありそう #jsconfjp_a」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「状態の種類に応じて管理方法を変える、と #jsconfjp_a」 / Twitter
Yosuke FurukawaさんはTwitterを使っています 「daishi さんの 状態管理ライブラリ評価のはなしこちらです。 https://t.co/PnodCZ8xe6 #jsconfjp #jsconfjp_a」 / Twitter
dai-shi/will-this-react-global-state-work-in-concurrent-rendering: Test tearing and branching in React concurrent rendering

JStar

アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「こんなすごい動画があったとは。長生きはするものです。 JStar's debut in 1981 - The Mother of All Demos of Personal Computers in Japan」 / Twitter
Taro TeraoさんはTwitterを使っています 「40年前に発表されたんですね 1981-04-27 https://t.co/tlakCxFfXQ」 / Twitter
JStar debut 1981-The Mother of All Demos of Personal Computers in Japan https://youtu.be/GdQzSt_X8f4 - YouTube
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「当時このデモを見ていた人たちにこのすごさがどのくらい伝わったのだろう。逆に、いまの人がこれを見ても当たり前すぎて伝わらない気がする。」 / Twitter
Miura HidekiさんはTwitterを使っています 「JStarはすごくよく出来ているのだけど、厳密にWYSIWYGで画面の拡大ができないから、老眼にはとても辛い」 / Twitter

レガシー

Masaki OhashiさんはTwitterを使っています 「SIerとかの「画面とDB直結おじさん」はいつまで存在するのだろうか…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「こういうおじさんが決定権を持ってると、あらゆるOOPもフレームワークもMVCもDDDも崩壊してしまう」 / Twitter
Masaki OhashiさんはTwitterを使っています 「画面→SQL→DBみたいなおじさん。」 / Twitter
Masaki OhashiさんはTwitterを使っています 「直結なので抽象化やモデリングがまったくできない…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「コントローラからいきなり生えてるSQL」 / Twitter
Masaki OhashiさんはTwitterを使っています 「「クラサバ系MVC」」 / Twitter

クエリー

κeenさんはTwitterを使っています 「このクエリいいな。ASTに対して同じようにクエリ投げたい。 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳 https://t.co/gmVijUiQqI」 / Twitter
使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳
わさびずさんはTwitterを使っています 「Egisonじゃん https://t.co/XljT4RUGou」 / Twitter
κeenさんはTwitterを使っています 「なるほど?つまりEgisonでコンパイラを書けば良い?」 / Twitter
わさびずさんはTwitterを使っています 「@blackenedgold 実際かなり書きやすいと思います 特にpeephole的な処理は瞬殺できます」 / Twitter
EgisonさんはTwitterを使っています 「最新の論文の3.4.1節にツリーに対するパターンマッチについて書いています.少ないパターンコンストラクタを組み合わせていろいろなパターンが書けるようになっています.ぜひみてみてください! https://t.co/CWqBL3zik5 https://t.co/FFSTkkkX5I」 / Twitter
Functional Programming in Pattern-Match-Oriented Programming Style

API

Manabu UenoさんはTwitterを使っています: 「Apple, Google, MS, Amazon, Facebook, Twitter 等々、いろんなベンダーの API を触っていると、それぞれの企業の本当のデザインセンスが見えてくる。サービスの中の「インターフェース」がどのようにデザインされているか。その組織のエンジニアがどれぐらい「道具づくり」に長けているか。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「よくできた API は、サービスの無為な道具的存在性がちょうど良い粒度で抽象化され、サードパーティに自己拡張イリュージョンを与える。悪い API は、技術者の自意識がコンプレックス(複雑性)としてそのまま露出していて、何をするにも使役感が伴う。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「UI(ユーザー向け)にしろ API(プログラマー向け)にしろ、I(インターフェース)の在り方が製品そのものなのである。そして良いインターフェースは、何かを「させる」ものではなく、何かが「できる」ようにデザインされているのである。」 / Twitter

Mozilla

Quantumプロジェクト

Quantum CSS

5x

Rockridgeさんのツイート: "Quantum CSSはFirefox Nightly 56でデフォルト有効化される見通し。 / “2017-Q2-Goals#Astley_Chen” https://t.co/fy6DWNZ3OP"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がFirefox Nightly 56にデフォルト無効で投入される日は近い。まずはLinux向け64bit版とWindows向け64bit版がターゲットになるという。 / “Stylo bit…” https://t.co/1oVpBX6GZi"
Rockridgeさんのツイート: "デスクトップ版Firefox Nightly 56においてQuantum CSSがデフォルト無効で投入されたことを踏まえ、コミュニティにテストを呼びかけている。Firefox 57リリース版でデフォルト有効化する予定である旨も公式… https://t.co/ibTPG1M84i"
Rockridgeさんのツイート: "Fx56:macOS版NightlyにQuantum CSSがデフォルト無効で投入されたのは、このバグの修正による。 / “1379339 - Enable stylo on macOS automation builds” https://t.co/RL6ko4h7xY"
Rockridgeさんのツイート: "Firefox Nightly 56ユーザーの20%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/UpEheT0DiS / “Firefox/Channels/Meetings…” https://t.co/F7P61nUy5R"
Rockridgeさんのツイート: "Firefox Nightly 57ユーザーの80%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/uQOn5H5ASH / “Chris Petersonさんのツイート: "@…” https://t.co/81uTquiudR"
Rockridgeさんのツイート: "Quantum CSSはRust言語製の新CSSエンジンを開発するプロジェクトであり、その成果はFirefox 57に投入される。エンジンはServoの並列処理とGeckoのルールツリーを採用し、WebKit/Blinkから着想を… https://t.co/CFvG9OZQ6O"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルでQuantum CSSがデフォルト有効化。これまではNightlyユーザーの80%で有効化するテストが行われていたが、以後は100%有効化される。参照:… https://t.co/lehGXM9JXn"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がAndroid版Nightly 58にデフォルト無効で投入予定。Nightly 59でデフォルト有効化の見通し。apkサイズが1.6MB増える問題があり、Beta版以降への投入についてはスケジ… https://t.co/JwBmoDT9nT"
Rockridgeさんのツイート: "Quantum RenderはFirefox 59に間に合うように、当初の段階で実装される機能を限定するらしい。 / “WebRender Project Status Update - Friday October 27th” https://t.co/nhSPqbN9Ba"

6x

Rockridgeさんのツイート: "Fx60:リーダーモードでもQuantum CSSが効くようになった。 / “1406274 - stylo: Enable stylo for about:reader” https://t.co/POKcSz8OXm"
Rockridgeさんのツイート: "Fx60:Quantum CSSをドメイン単位で無効にする機能を削除。Fx57のリリース後、無効にしたドメインはなかったとのこと。 / “1426223 - stylo: Remove Stylo domain blocklis…” https://t.co/j5ZtHHcvQh"
Rockridgeさんのツイート: "Fx60:Quantum CSSがFirefoxの親プロセス(chromeプロセス)にも適用されるようになった。 / “1417138 - stylo: Enable stylo-chrome by default” https://t.co/l7qkt6cSVI"
Rockridgeさんのツイート: "Fx60:このバグが修正されたことで、Quantum CSSがFirefoxの親プロセス(chromeプロセス)に適用される際に本来の効果を発揮できるという。 / “1375913 - stylo: re-enable the …” https://t.co/aU6zDiHovv"
Rockridgeさんのツイート: "Fx61:Quantum CSS(Stylo)による置き換えが完成したため、Geckoの旧スタイルシステムは削除された。参照:https://t.co/qa6SYLQJ5Q / “1447358 - Unifdef the ol…” https://t.co/IviwpSKNYo"

Rockridgeさんのツイート: "Quantum CSSがFirefoxのすべてのプロパティをサポートした。Nightlyチャンネルにデフォルトオフで投入される日も近い。参照:https://t.co/zq2Z5xQDum / “All properties i…” https://t.co/Abn2BR5N5o"
Rockridgeさんのツイート: "Quantum CSSの開発においてfont-sizeの実装に苦労した話。いろんな単位をサポートしなければならないうえ、たとえばmediumが何を指すかはフォントの系統ごとに変わってくる。ルビやMathMLでの調整も必要だ。 https://t.co/2Tb21cStTy"
Font-size: An Unexpectedly Complex CSS Property - In Pursuit of Laziness
Rockridgeさんのツイート: "Quantum CSSのCSS解釈などがGeckoと違う点を列挙。 / “Firefox Quantum 57 for developers - Mozilla | MDN” https://t.co/jxRGHYurWB"
Firefox Quantum雑感 - Mozilla Flux
Firefox QuantumでThe Book of Mozillaも新章へ - Mozilla Flux
Rockridgeさんのツイート: "Quantum CSS(Stylo)は8.5万行のRustコードで構成される。Geckoの同等システムは16万行のC++なのでコンパクトに。Firefox搭載への取り組みは2015年に開始された。並列処理によるパフォーマンス向上を… https://t.co/3gjQxjNrbL"
Firefox Quantum高速化の一翼を担うQuantum CSS - Mozilla Flux
Rockridgeさんのツイート: "Firefox Quantumのリリース時に達成できたのは粒度の粗い並列処理のみ。今後はQuantum CSSのような粒度の細かい並列処理をFirefox全体が行えるようにし、CPU・GPUのマルチコアをより生かしていく。Quan… https://t.co/UsFu70H2KP"
Rockridgeさんのツイート: "Quantum CSSにRayonと呼ばれるRust言語製のデータ並列性ライブラリが使用されている。また、フォントレンダリングシステムのPathfinderが将来のFirefoxに統合される旨が明言された。 / “Fearles…” https://t.co/InWBJXwuJj"
Rockridgeさんのツイート: "少数のチームでQuantum CSS(Stylo)を開発した際の苦労話。StyloはGeckoを段階的にRust化していくプロセスの中で、マイルストーンとなる。 / “::bholley - Boiling the Ocean,…” https://t.co/oNZAWrOkfc"
超高速エンジンの内部:Quantum CSS(別名Stylo)- 前編 | プログラミング | POSTD
超高速エンジンの内部:Quantum CSS(別名Stylo)- 後編 | プログラミング | POSTD
azuさんのツイート: "Firefox CSSのパースが並列化されたのか "1346988 - stylo: Consider parallelizing CSS parsing" https://t.co/1i0XqJvW9Q"

Quantum Flow

Rockridgeさんのツイート: "Quantum Flowの各チームが力を入れている分野について。DOMではタスクのスケジューリング、JavaScriptではCacheIRとGCのスケジューリング、Layoutではリフローのパフォーマンス、Graphicsではディ… https://t.co/xVghGZrUz1"
Rockridgeさんのツイート: "Quantum Flowの成果が出始めている。Firefox Nightly 55では起動速度が改善され、セッション復元に要する時間が約5分の1になったという。 / “Quantum Flow Engineering Newsl…” https://t.co/fVE0Sw4FS6"
Rockridgeさんのツイート: "Quantum Flowプロジェクトの成果に関するスライド。2017年8月15日時点のFirefox Nightly 57は、Speedometer v2のスコアがFx54の倍近くまで上昇している(9枚目)。同スコアをChrome… https://t.co/M4gfB6w2Yx"
Quantum Flow - Status 2017 08 28 - Google スライド
Rockridgeさんのツイート: "Quantum Flowプロジェクトの中でプロセス間通信(IPC)の非同期化が進められたことによって、Firefox Quantumでは、フレームレートの制約が通常よりも厳しいWebVRにおいて、Fx55との比較でも処理が滑らかに… https://t.co/ve9hxFLGTj"
なかのん&マジックさんのツイート: "Quantum Flowのための最適化で設計が綺麗じゃなくなっていくのはなんかモヤモヤするものがある。"
なかのん&マジックさんのツイート: "そーいや去年から対策やってるQuantum Flowのテストケース<https://t.co/WGZwbbDB44>、Firefox NightlyのWindows版では20msだけど、Android版をZenPad S3 10 Z500KLで走らせたら200msもかかってた。やっぱり、モバイルって遅いな。Chromeに圧倒的に負けてるケースなんだけど、Chromeでも10倍以上遅い。"
なかのん&マジックさんのツイート: "エディタ周りはもうこれ以上削れるところ無いかなって感じにはなってきた。まだ、Selectionの方は改善できそうだけど。"
なかのん&マジックさんのツイート: "ただ、私のカバー範囲だと、どうやってもChromeの速度には到達できないんだよな。"
なかのん&マジックさんのツイート: "今日のNightlyでprofileとるとこんな感じ: https://t.co/Vw6Z7IBjq1"
perf.html
なかのん&マジックさんのツイート: "あー、でも、Surface Book 2でも70msぐらいかかった。Browadwell-Eなんでシングルスレッドの動作速度はそこまで高速じゃないんだけど、単純にデスクトップ機のCPUは高速だったか。 https://t.co/AXrX73dvyQ"
perf.html
Rockridgeさんのツイート: ""Quantum Flow 2018"というプロジェクトが始動する模様。 / “WeeklyUpdates/2018-04-09 - MozillaWiki” https://t.co/mBbCMFPa8I"
なかのん&マジックさんのツイート: "Quantum Flowはむしろ、低スペックな方が恩恵受けやすいと思うんだけど、レス付けてる人は何のことを言ってるんだろう(実測でどうかは知らない。例えば極端にメモリがない環境とか)。 https://t.co/LANQiIt2ID"
なかのん&マジックさんのツイート: "Quantum Flowの一番のポイントはやらなくて良い処理はやらないようにしようってことなんで。あと、バージョンアップに伴い、ビルド環境もアップデートされていくんで、コンパイラの最適化の違いもあると思う。"
なかのん&マジックさんのツイート: "やらなくて良い処理を何でやってたのか、あるあるなのは、 nsAutoTArray<RefPtr<nsIFoo>> temp(original); for (auto& item : temp) { item->DoSomething(); } ってのがあったら、original.IsEmpty()を先にチェックするようにしてnsAutoTArrayの生成を回避したりとか。"
なかのん&マジックさんのツイート: "久々にQuantum Flowな修正を年末のレビューリクエスト飛んでこない時にやってみた。Selectionの変更時や、エディタでの編集時にヒープに確保してたContentIteratorをスタックに置けるようになったんで、特にmacOSで地味な速度アップしてるはず(実験はしてない)。"
なかのん&マジックさんのツイート: "TextEditRules/HTMLEditRulesって、ヒープに常に確保されてる必要があるんだろうか。例外を除けばそのメンバはEditActionをハンドリング中にスタックにだけで居れば良いような気がする。 #もずでぶ"
なかのん&マジックさんのツイート: "GeckoはSelectionとnsRangeの速度を改善すると効果が大きいというのが経験的にある。なにしろ、選択範囲(キャレット含む)が変わる操作を何かするたびに処理が1回から多いときは3-4回も走るから。 #もずでぶ"
なかのん&マジックさんのツイート: "Webアプリ書いてる人も、Selectionが変化する処理を無駄に行わないようにすると結構アプリのパフォーマンス変わってくると思う。どうしてもSelection/Rangeのパフォーマンス向上には限界がある。"
なかのん&マジックさんのツイート: "DOMのRangeってどのブラウザ発祥なんだろ。ちょっと親切すぎるせいでパフォーマンスが出ない仕様なんで、なかなかちょっと今のWeb向きでは無いように思う。"

Quantum Render(WebRender)

WebRender

dynamis (でゅなみす)さんのツイート: "servoとして実験していたレンダリングエンジンの成果の本命であり、Firefoxレンダリングエンジン最大のアーキテクチャ変更であるWebRenderが遂にリリース。 まずはNVIDIA GPU搭載のWindows PCユーザ(4%)がターゲットでデフォルト有効に。 https://t.co/YRcljA9wwU"
Graphics Team ships WebRender MVP! – Mozilla Gfx Team Blog
dynamis (でゅなみす)さんのツイート: "最近のIntelかAMD GPUを搭載したデスクトップWindows 10やLinuxではIntel統合GPUs with Mesa 18.2以降を4K未満の解像度で使ってる場合もテストしてるから、設定で有効化してみるのも良いかも。"
dynamis (でゅなみす)さんのツイート: "WebRenderなにそれ美味しいの?的な人向けの長大なイラスト付き解説はこちら https://t.co/vImsoma2oT"
The whole web at maximum FPS: How WebRender gets rid of jank - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす)さんのツイート: "どちらかというとパフォーマンス向上はこれからで、まずは落とさずにジャンク(描画の問題)を減らしたりOS依存性の低く最適化もして行きやすいアーキテクチャへの変更が最初の目標設定かな"
dynamis (でゅなみす)さんのツイート: "GPUによる分割並列処理が得意で極端なケースでは他のブラウザの4~10倍以上高速、スムーズに描画可能にはなるけどより一般的なケースにおいての評価は未発表かな https://t.co/9l6d27gZdZ"

ANGLE

Rockridgeさんのツイート: "Fx55:Windows上のQuantum RenderではANGLE(Almost Native Graphics Layer Engine)が用いられる。参照:https://t.co/zdxyYLozNa / “13233…” https://t.co/DzrEfiMDi8"
ANGLE - Almost Native Graphics Layer Engine
google/angle: A conformant OpenGL ES implementation for Windows, Mac and Linux.

Rockridgeさんのツイート: "Quantum Renderでは、従来のClientLayerManagerインスタンスに代えて、WebRenderLayerManagerインスタンスを作成・使用する。 / “Platform/GFX/Quantum Rend…” https://t.co/DKhkMFwjcf"
Rockridgeさんのツイート: "Quantum RenderがFirefoxのリリース版で有効化されても、少なくとも当初はWebコンテンツの表示速度に与えるインパクトは大きくないようで、開発者いわくUI描画のGPU支援に使えるとよかったのだが、と。 / “Qu…” https://t.co/WtiCniHJ5C"
Rockridgeさんのツイート: "QuantumRenderがTier-1に昇格。有効化へと一歩近づいた。 / “Making QuantumRender tier-1” https://t.co/xJnCqjqDRu"
Rockridgeさんのツイート: "Fx55:Android版にもNightlyチャンネルにQuantum Renderがデフォルト無効で投入された。 / “1323612 - Build webrender on android” https://t.co/JSPCafNMH4"
Rockridgeさんのツイート: "Fx57:Quantum Renderの動作にHWアクセラレーションの有効化が必須となった。主にLinux版に影響する措置。参照:https://t.co/ig0hDpsxSE / “Heads-up: WebRender no…” https://t.co/zc4EmG1D1X"
Heads-up: WebRender now requires HWA enabled - Google グループ
Rockridgeさんのツイート: "Firefox NightlyでQuantum Renderをフルに試す際に有効化すべき設定について。gfx.webrender.enabled/gfx.webrendest.enabled/gfx.webrender.layer… https://t.co/TmoRzQA0kv"
Rockridgeさんのツイート: "Quantum Renderのリリース時期がFx59から未定へと変更された。時期優先で機能を絞るという話だったはずだが、それも難しかったのか。 / “WebRender Project Status Update - Frida…” https://t.co/jupMZ6NdCN"
Rockridgeさんのツイート: "意味を読み取りづらいが、Quantum RenderはFirefox Nightly 60の開発サイクル初期にデフォルト有効化か。 / “WebRender Project Status Update - Friday Nove…” https://t.co/IX5BXIGtYY"
Rockridgeさんのツイート: "Firefox Nightly 59のQuantum Renderは多くのWebページで正常に動作するようになってきているが、GPUやグラフィックスドライバーごとの挙動のばらつきを抑えるのが今後の課題だという。 / “WebRe…” https://t.co/JgzPMwn5g9"
Firefox 58以降も続く高速化と応答性向上 2018年もパフォーマンス2倍が目標 - Mozilla Flux
Rockridgeさんのツイート: "Quantum Renderがリリース版に投入されるまでの間に解決すべき問題が列挙されている。その数は多く、Firefox 60の段階で解決できているか疑問だ。 / “Notes from last Wednesday...” https://t.co/HZM3hmhokD"
Rockridgeさんのツイート: "近々Firefox Nightly 55にQuantum Renderが投入される模様。デフォルト無効だが、gfx.webrender.enabledをtrueに変更して再起動すると使えるようになるそうだ。参照:… https://t.co/SBNOA2cMmX"
Rockridgeさんのツイート: "Quantum Renderの投入時期が大幅に延期された。Nightlyチャンネルの有効化がFx63、Betaチャンネルの有効化がFx64となっており、このスケジュール通りに進んでも、2018年11月にならないとリリース版に入らな… https://t.co/gJbHyZ1Vu7"
Rockridgeさんのツイート: "Fx59:gfx.webrender.allの設定をtrueにすることで、Quantum Render関連の設定を一挙に有効化することができる。 / “1425260 - Bring back webrendest functi…” https://t.co/xZCKQKJsrQ"
Rockridgeさんのツイート: "Fx60:Quantum RenderではDirect2Dバックエンドを使用しない。 / “1421818 - Stop using Direct2D with WebRender” https://t.co/3nmrH5hm3A"
Rockridgeさんのツイート: "Firefox 64をターゲットにしているQuantum Renderだが、その時点でデフォルト有効化されるのは、NVIDIAのディスクリートGPU+Windows 10の環境だけらしい。Mozillaの試算ではリリース版ユーザー… https://t.co/L3neo6aTCq"
Rockridgeさんのツイート: "Fx61:Quantum Renderの有効化は段階的に行われる見通しであり、その際、gfx.webrender.all.qualifiedの設定が用いられる。 / “1455696 - Pref for qualified W…” https://t.co/CB0ABKyyyg"
Rockridgeさんのツイート: "Fx62:Quantum Renderを有効化した際、無駄なRendererスレッドが発生しないようにした。 / “1469028 - Too many "Renderer" threads” https://t.co/LZgdvKqP1a"
Rockridgeさんのツイート: "Fx63:Quantum Renderが有効化されるGPU環境を、おおむねNVIDIA Tesla以降に限定した。 / “1478150 - Restrict webrender qualified to modern nvid…” https://t.co/i8Rml3jRpm"
Rockridgeさんのツイート: "将来的にFirefoxのグラフィックスエンジンとなるWebRenderのアーキテクチャを解説した記事。WebRenderはDisplay Itemと1:1で対応するPrimitiveを生成してレイヤーに割り当てるが、レイヤーのコン… https://t.co/mKVGtkWJZG"
Rockridgeさんのツイート: "WebRenderでは従来のレンダリングエンジンが行っていたlayout/invalidation/painting/compositingの処理のうち、painting/compositingの区別をなくし、すべてをウィンドウに… https://t.co/TFk8Y76rSo"
Rockridgeさんのツイート: "WebRenderの解説の前段階として、Geckoのグラフィックスパイプラインを紹介している。DOMツリー -> フレームツリー -> ディスプレイリスト -> レイヤーツリーの流れで処理されていき、compositorがレイヤー… https://t.co/i9ZT4IUgcB"
Introduction to WebRender – Part 1 – Browsers today – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "WebRender(Quantum Render)について詳細に解説した記事。従来のpainting/compositingの区別を取り払い、GPUを活用してスクリーン全体を描画することで常時60fpsを実現する。無駄な描画処理を… https://t.co/0PNod5UgwI"
Makoto Kato ︎︎さんのツイート: "webrenderのいろいろ話を聞いてるけど、rustcのhack必要な話多すぎて、LLVM万能じゃないって感じしてる"
Rockridgeさんのツイート: "WebRenderのドローコール(画面に描画を行う際に呼び出すGPUに対する命令)が1か月前と比べて2分の1から3分の1に減少し、パフォーマンスが大幅に向上したそうだ。 / “WebRender newsletter #20 –…” https://t.co/y3RwSwW7ox"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルで、NVIDIA Tesla以降のGPUを搭載したWindows 10環境(バッテリー非搭載)においてQuantum Render(WebRender)がデフォルト有効化された。参照:… https://t.co/A71dX96TwI"
Rockridgeさんのツイート: "Firefox Nightly 64のユーザーのうち約17%がQuantum Render(WebRender)有効化の対象になっているという。 / “WebRender newsletter #22 – Mozilla Gfx…” https://t.co/NUll274gfB"
Rockridgeさんのツイート: "Firefox 64リリース版の一部環境でQuantum Render(WebRender)をデフォルト有効化する計画は、ブロッカーバグが多いため、実施できるか不透明な状況になってきた。 / “WebRender on in F…” https://t.co/28nJhr9a6g"
Rockridgeさんのツイート: "WebRenderはフレームごとにすべてを再レンダリングするが、paintingとcompositingを分離しないので動的ページでは高速になる。ただ、複雑な静的ページもあるので、描画命令の束をキャッシュしておき再利用する。 https://t.co/gZeeclLnbq"
Rockridgeさんのツイート: "WebRenderは、今のところ、Webページのレンダリングに求められるグラフィックスプリミティブを全面的にサポートするには至っていない。そこでフォールバックの仕組みとして"blob images"がある。 / “WebRend…” https://t.co/Q7EAtVSDtr"
Rockridgeさんのツイート: "WebRenderではプリミティブを2グループに分け、処理をまとめやすいグループでは積極的にプリミティブをまとめてGPUの活用を図っているとか。 / “WebRender newsletter #31 – Mozilla Gfx…” https://t.co/5wJmgxDyEW"
Rockridgeさんのツイート: "2018年11月17日時点で、WebRenderはFirefox 67リリース版でのデフォルト有効化を目標としていた。もっとも、ブロッカーバグが多く、間に合うかどうか微妙な様子。 / “Google グループ” https://t.co/ABlWYQpHR5"
Rockridgeさんのツイート: "Windows 10上のNightlyチャンネルで、一部のAMD GPUもWebRenderデフォルト有効化の対象に含まれるようになった。Graphics Core Next第2世代以降であればOKな模様。 / “1523823 - Enable WebRender by default on modern (CIK, VI, GFX9) desktop AMD hardware on nightly” https://t.co/WGKsTyULXt"

Quantum DOM

Rockridgeさんのツイート: "Quantum DOMの一環として、イベントキューを処理の優先度(High/Normal/Low)に応じて3つに分割する。これによりページの描画やユーザー入力の処理をネットワーク処理に優先させるといったことが可能になる。 https://t.co/ejpbe9tH3z"
Rockridgeさんのツイート: "Quantum DOMはcontentプロセス内のメインスレッドが処理するタスクについて、3段階の優先順位を付ける。また、タブグループごとにタスクをまとめて独立したスレッドを割り当て、フォアグラウンドタブの処理を優先する。 https://t.co/ZLKNOFf3LA"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルにQuantum DOMの初期実装がデフォルト無効で投入された。参照:https://t.co/nEDt4NSRAz / “Quantum Flow Engineering Newsletter…” https://t.co/SJq9f8wlCB"
Rockridgeさんのツイート: "Fx61:Quantum DOMのスケジューラシステムは、Fx57においてデフォルト無効で投入されたものの、結局お蔵入りに。参照:https://t.co/nEDt4Oass7 https://t.co/mY8GXkdWwi https://t.co/f9rInjSRGU"

なかのん&マジックさんのツイート: "Firefox Quantumのパフォーマンスチューニング、普通に、メソッドのインライン化とかvirtual callの削減もやって向上させてます。 https://t.co/cXOAUDrjQj"
なかのん&マジックさんのツイート: "意外とref-countableなポインタのaddref/releaseもprofileに引っかかってた。"
Rockridgeさんのツイート: "Quantumプロジェクトにおいて想定されているローエンドのハードウェアは、Acer Aspire Eだという。15.6インチのフルHDノートブックで、Core i3-7100U(Intel HD Graphics 620)・4G… https://t.co/B14CZfoab5"
Rockridgeさんのツイート: "Mozilla HacksでQuantumプロジェクトを解説する連載が始まった。第1弾となる本記事は、ブラウザのレンダリングエンジンの処理について述べ、CPUのシングルコア性能が停滞する中、マルチコアの活用が重要と説く。 https://t.co/2Tugflzd9h"
Rockridgeさんのツイート: "MozillaはQuantumプロジェクトの成果を測るための手法についても研究中だ。ユーザーの体感を重視し、利用頻度の高い分野におけるWebページを閲覧する際の、読込速度、動きのスムーズさ、応答性を柱に据える。 / “Desig…” https://t.co/EvBDfMTf3d"
Rockridgeさんのツイート: "Firefox Quantumではすべての入力処理でAsync Pan/Zoom(APZ)が有効化されており、スクロールがJavaScriptスレッドによってブロックされない。ただし、キーボード入力に関してはAPZが無効になる場面… https://t.co/gkSmNVHaNV"
Rockridgeさんのツイート: "Firefox QuantumのプライベートブラウジングとChrome v61のシークレットモードを比較したところ、200サイトのページ読み込みテストでFirefoxが2.4倍高速との結果になった(Disconnect調べ)として… https://t.co/VX57HyrPkr"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、gfx.webrender.allの設定をtrueにすればQuantum Renderが有効化されるようになった。 / “Update your prefs to get WebRender…” https://t.co/4D4kZ2Fe60"
dynamis (でゅなみす@もじら)さんのツイート: "Firefoxの次世代ブラウザエンジン開発Quantum周りを見ていると顕著だけど、イマドキもうアルゴリズムを変えるとかSIMD命令を使うとかじゃ無くてGPUのシェーダなどに従来CPUで処理していたものを丸投げする実装への切替で圧倒的な性能向上を果たすのがトレンドですかね"

DOM

Mantaroh@r?さんのツイート: "DOMの世界において、1つのDOMが常に1つの矩形フレームで描画できるというわけではないので、Mozilla では continuation frame という機能を使ってる。例えば幅で改行された要素などは1つの矩形フレームで表現できない。 AAAAABBBBBB BBBCCCC… https://t.co/fMiDGyjku2"
Mantaroh@r?さんのツイート: "改ページの時も同じ。Gecko では複数フレームに分割される際、先頭のフレームを primary frame、それ以降に続くフレームを continuation frames と呼んでる。"
Mantaroh@r?さんのツイート: "この primary frame は DOM(nsIContent)が挿入された通知を受けて、フレームコンストラクタ(nsCSSFrameConstructor)が作成する。一方 continuation frames は主にリフロー中、リフロー時に要素がレイアウト制限いっ… https://t.co/ECspqcT1ef"
Mantaroh@r?さんのツイート: "Pagination の仕組みを理解しようとしたら、ここから入れと書いてあったもので。ドキュメントが古いからコードとにらめっこしながらだけど・・ 元ネタ:https://t.co/H0CJ69akNs"
Gecko:Continuation Model - MozillaWiki
Mantaroh@r?さんのツイート: "リフロー中に作成された continuation frames を特に fluid continuations と呼ぶ。1つの要素の continuation frames は2重連結リストで作られているので nsIFrame::GetNextContinuation/nsIFr… https://t.co/2ngca6W0aB"
nsFrame.cpp - mozsearch
Mantaroh@media=printさんのツイート: "分割されるフレームは要素による。page break によって分割されるドキュメントは nsSimplePageSequence。line break によって分割されるインライン要素は nsBlockFrame 等。"
Mantaroh@media=printさんのツイート: "overflow が指定されページに収まらない要素などは例えそのフレームが完成したとしても、フレーム分割が必要になってくる時がある。このフレームは overflow incomplete と呼ばれ特別な continuous frame を保持する。"
Mantaroh@media=printさんのツイート: "overflow incomplete は、非表示で親内部に特別なリストとして保持される。(詳細は nsContainerFrame.h 参照)"

4x

Rockridgeさんのツイート: "Fx49:inner documentのリフロー処理を非同期化することでパフォーマンスの向上を図った。 / “881832 – Make inner document reflow asynchronous to improve…” https://t.co/MsYxTgCMaf"

5x

Rockridgeさんのツイート: "Fx55:Windows 8以降でダブルバッファリングの技法を用いて描画処理のパフォーマンスを向上させた。 / “1352163 - Use double buffering for D3D11 window backbuffe…” https://t.co/guc3hPpFzu"
Rockridgeさんのツイート: "Fx55:table要素のフレームごとにディスプレイリストのアイテムを生成することで、処理のパフォーマンスを改善した。 / “929484 - Make HTML table frames (including row/cell…” https://t.co/ahqUjpQBQQ"
Rockridgeさんのツイート: "Fx55:border-radiusの有無についての情報をキャッシュしておき、これを参照することで、display listの構築処理を高速化した。 / “1367906 - Avoid some overhead for ba…” https://t.co/ri56HSMOzk"
Rockridgeさんのツイート: "Fx58:ターゲットとなる要素が表示領域外にある場合、Transformのアニメーションを抑制することで、消費電力を低減。 / “1190721 - Throttle transform animations that the …” https://t.co/KrrM7F6ZkQ"
Rockridgeさんのツイート: "Fx59:Advanced Layersの機能が拡張され、1つのレイヤー内に複数のテクスチャがある場合も処理が可能になった模様。 / “1420674 - Support tiling in Advanced Layers” https://t.co/nqiMBfMnCv"
Rockridgeさんのツイート: "Firefox 58で導入されるOff Main Thread Painting(OMTP)の解説記事。別スレッド化されるのはRasterizationの部分で、当該処理の時間を短縮し、FPSを向上させる効果があるそうだ。 https://t.co/CXNirEQq9Y"

6x

Rockridgeさんのツイート: "Fx60:Mac版で、Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みがデフォルト有効化。 / “1430793 - Enable parallel paintin…” https://t.co/uhiWyO0p2N"
Rockridgeさんのツイート: "Fx61:Webページが複数のスタイルシートを利用している場合、それぞれのCSSのパース処理を並列的に行うようになった。 / “1346988 - stylo: Consider parallelizing CSS parsing” https://t.co/2fkIC27bAb"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルで、直近の5つのタブを対象としてレイヤーツリーのキャッシュを保持するようにした。キャッシュがヒットした場合、タブの切り替え表示がスムーズに行われる。 / “1176019 - [e10s] Ke…” https://t.co/WpcwrSAKGx"
Rockridgeさんのツイート: "Fx62:ペイントスレッドがDisplay ListやFrame Layerの構築をブロックしなくなったことで、パフォーマンスが改善された。 / “1462411 - Try to FlushAsyncPaints in Cli…” https://t.co/jUQUAZYMM9"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルでテストされていたレイヤーツリーのキャッシュ機能は、いったん無効化された。見つかった問題を修正して、再度の有効化を目指す。 / “1465106 - Disable tab layer cach…” https://t.co/K0nRjGfl2C"
Rockridgeさんのツイート: "Fx62:フレームの再描画が必要な場合にだけレイヤーを生成するようにし、処理速度を改善するとともに電力効率も高めた。 / “1467619 - Fix our motionmark_animometer Design score” https://t.co/6Yfu5l39WY"
Rockridgeさんのツイート: "Firefox 62以降、Zone/Compartment/Realmの3分類が用いられるようになった。1つのZoneはおおむね1つのタブに対応し、複数のCompartmentを持つ。1つのCompartmentは複数のRealm… https://t.co/kdPLEEyRd9"
Rockridgeさんのツイート: "Fx61:リリース版のユーザーを対象にRetained Display Listsが順次有効化されていく。リリースから2日後に25%を対象に提供を開始。さらに1週間後に50%に引き上げ、最後に100%となる。参照:… https://t.co/rqu68Peuie"
Rockridgeさんのツイート: "Fx63:NightlyチャンネルでQuantum Renderのテストが開始された。NVIDIA製GPUを搭載したWindows 10環境(バッテリー非搭載)の50%が対象となる。参照:… https://t.co/2ycd4spXTf"
Rockridgeさんのツイート: "Fx63:JavaScriptによってWebページ内に入力フィールドが次々に挿入される場合、レイアウト処理を遅らせることでハングが生じるの防ぐ。 / “1456843 - HTML loading hangs for minut…” https://t.co/70dKN4NfJH"

@rockridge07

Rockridgeさんのツイート: "GeckoのLayout EngineモジュールからWeb Paintingモジュールを分離した。Web Paintingのモジュールオーナーは Matt Woodrow氏。 / “splitting painting cod…” https://t.co/8womLPPkFI"
Rockridgeさんのツイート: "2017年5月18日時点のFirefox Nightlyを同年4月1日時点と比較すると、ブラウザウィンドウの最初のフレームの描画までが1232.84ミリ秒から849.66ミリ秒に、about:homeの検索ボックスの描画までが18… https://t.co/uTATjBS2yr"
Rockridgeさんのツイート: "MozillaはOff Main Thread Paintingと呼ばれる非同期描画機能を開発する模様。スレッドに挙げられている文書はパーミッションがないと閲覧できない。 / “Off Main Thread Painting …” https://t.co/2ob443qNPE"
Off Main Thread Painting Design Doc - Google グループ
Rockridgeさんのツイート: "HTML文書に指定された外部リソースを読み込むにあたって、処理のブロックが起きないことが重要。本記事では投機的パース、defer、async、プリロードとそれらの差異について説明が行われている。 / “Building the …” https://t.co/tINgrwcr8V"
Building the DOM faster: speculative parsing, async, defer and preload ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "実装は完成していないものの、ServoのHTMLパーサであるhtml5everのパース処理が非同期化され、投機的なパースも行えるようになりつつある。 / “Off main thread HTML parsing in Servo” https://t.co/HafjYjhuAz"
Rockridgeさんのツイート: "Geckoのグラフィックス処理部分では共有メモリの仕組みが頻繁に利用されているが、compositorが独立したGPUプロセスに分離されることに対応すべく処理に変更が加えられたらしい。 / “An Introduction to…” https://t.co/hwSonjETno"
Rockridgeさんのツイート: "Servoはレイアウト処理の並列化を行うようになっているが、この機能は将来的にGeckoにも取り込まれる模様。 / “Oxidation2 - MozillaWiki” https://t.co/UoEOxoFSbZ"
Rockridgeさんのツイート: "Retained Display Listsはディスプレイリストを必要な箇所のみアップデートすれば足りるようにする。Firefox 58 BetaでのA/Bテストの結果によれば、16ミリ秒を超える「遅い」Painting処理を30… https://t.co/a2SXIVhmLd"
Retained Display Lists – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "Firefoxのグラフィックス関係で用いられる略語や専門用語について。 / “Platform/GFX/Jargon - MozillaWiki” https://t.co/RfRsyHMFek"
Platform/GFX/Jargon - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、Windows版の一部環境でQuantum Renderをデフォルト有効化した後、対象となるWindows版の環境を拡大するとともに、Android版とMac版でもデフォルト有効化を目指す。 / “Platfo…” https://t.co/cO0gYZ7MfD"

@d_toybox

なかのんクエストさんのツイート: "nsRangeのプロファイルへの出現具合を見てると、nsRangeというか、DOM Rangeを内部処理で使うのはそもそもアカンっていう結論しかなくなってくるぞ。"
なかのんクエストさんのツイート: "ただ、nsRangeはmutation observerで常にvalidなレンジを保証してるんで、使い勝手は良いし、変なバグは発生しにくいんだよな。単純にシンプルなクラスや構造体と置き換えられる場所とそうじゃない場所がある。"
なかのん&マジックさんのツイート: "StaticRangeが実装できたら、Selectionの全rangeをStaticRangeとしてedit actionの開始時に保存しておいてselectionは削除してしまうと全体的に高速化できそうな?"
なかのん&マジックさんのツイート: "nsRangeがvalidな位置を維持するコストが思ってたより悪そう。"
なかのん&マジックさんのツイート: "お、<input>.valueのセット、急に高速化してる。何が効いてるんだろう。"
なかのん&マジックさんのツイート: "最近私の入れたパッチ群はデスクトップマシンだと、せいぜい合計で1ms速くやるかなって程度だったけど、2msぐらい一気に速くなってる感じある。"
なかのん&マジックさんのツイート: "XPCOMでひたすら抽象的な構造にして柔軟性もたせようとされていたMozillaのコードがパフォーマンスの追求でどんどん依存度を高めて行くの、時代の移り変わりを感じる。"
なかのん&マジックさんのツイート: "Firefox Nightlyで"Slow Tracking Elements"を"Always"にすると笑えるぐらいにページの読み込みが高速化するな。Geckoの速度自体よりも、アクセス解析のGecko利用時のパスの遅さに問題があるのかよく分かる。"
Macheriさんのツイート: "Illustratorの「文字に下線設定」で見慣れてたからAdobe XDで同じように文字に下線設定つけた時、「g」とか「y」とか下にはみ出るアルファベットのところ線きれて気持ち悪かったんだけど、webで下線指定した時も線切れるんだね。Illustratorがおかしかったのか。どうなのか🤔… https://t.co/9Zp0MOhbTF"
なつき@コーディングスクール体験開催さんのツイート: "| x・) oO(ここ数年のモダンブラウザーで下線が切れるのは、アルファベットのディセンダ部分が見づらくならないようにという配慮だそうです。Illustratorはここ数年下線機能に手が入っていないためそのような機能がなくただの直線なのだと思います)… "
なかのん&マジックさんのツイート: "あれなぁ、フォントに依存するんだと思うけど、Windowsで見やすいと思えないんだよなぁ……"
なかのん&マジックさんのツイート: "下線の1px上がグリフの横線の場合、下線は消えずに線が太く見えるBlinkの実装も意図的なのかしゃーなしなのか、バグなのか。"
なかのん&マジックさんのツイート: "文字が大きめかつ、ベクターフォントで、文字がアルファベットなら確実に綺麗だとは思うんだけど、やっぱり日本語のリンク見てると、これ、綺麗って思えないなぁ。"
なかのん&マジックさんのツイート: "ASCII文字でもアンダースコアの視認性が皆無になるのか……"
Yosuke HASEGAWAさんのツイート: "ブラウザーの脆弱性探すなら、エンジン載せ替えて実装が枯れてない今がチャンスですよ。"
なかのん&マジックさんのツイート: "refcountに頼らないといけない時点で色々と人類は敗北してるんですよ。"
なかのん&マジックさんのツイート: "正直、アプリを開発するのを生業とした時に、やらなくて良い`foo++`がパフォーマンス的に問題になる日が来ると思ってなかったし、必要なそれをし忘れてるのがセキュリティホールになる仕事になるとは思ってもなかったです、はい。"
なかのん&マジックさんのツイート: "ブラウザ開発ってそれぐらいピーキーなことやってるので実に楽しい。"
なかのん&マジックさんのツイート: "なんでもかんでも、ライフタイムを保証しておけば良いってのはダメってのは昔のFirefoxとChromeのベンチマークの結果の差が語っているという(それだけでもないけど、もちろん)。"

Mantarohさんのツイート: "Gecko へ screenLeft / screenTop の実装が入ったというお話。 https://t.co/eMX6dWaDOR"
[cssom-view] Window#screenLeft/screenTop · Issue #1091 · w3c/csswg-drafts

fuzzing

ドッグさんはTwitterを使っています 「Mozzila による Firefox の fuzzing 運用の解説 | 'Browser fuzzing at Mozilla - Mozilla Hacks' https://t.co/1un9aR1KAZ」 / Twitter
Browser fuzzing at Mozilla - Mozilla Hacks - the Web developer blog
ドッグさんはTwitterを使っています 「やっぱ HTML 生成して食わせるのか.トータル1100件以上の問題を見つけてて成果を出してる」 / Twitter

Google

さねさねさんのツイート: "Blinkのprerender機構ってIntent to depracate出てたのか https://t.co/jdvOZQY0W8"
Rockridgeさんのツイート: "Chromeのレンダリング処理の概要が書かれている。Quantum Renderの設計にあたり、Chromeをよく研究していることがうかがえる。 / “A Quick Overview of Chrome's Rendering…” https://t.co/UAiLGa8nkx"
Rockridgeさんのツイート: "将来のBlinkではスタイルの再計算とレイアウトツリーの構築をそれぞれ独立したステージに分け、前者は要素のスタイルがアニメーションなどでダイナミックに変更される場合でも効率よく処理できるものにしていく。 / “Next Gene…” https://t.co/RiR6ZFcCTd"
hadakadenkyuさんのツイート: "chromeでflexで画面を2分割するとブラウザ幅が奇数の時に真ん中に1px間が開く。Firefoxだと大丈夫。小数点の関係だろうけど。バグだろこれ。"
Rui Ueyamaさんのツイート: "最新のChromeのレンダラ、微妙だけどかなり見た目の印象が変わる変更が加わってる気がする。下線、前はこういうふうに途切れずに、文字にかぶって表示されていたはず。… "
Kentaro Haraさんのツイート: "Blinkのドキュメントが少なすぎる・・・というご要望にお答えして、Blinkアーキテクチャが全体としてどう動いてるかを(Blink開発者向けに)解説してみました。 https://t.co/xojjmLjfqa"
How Blink works - Google ドキュメント

DOMJIT

webkit/Source/WebCore/domjit at master · WebKit/webkit
webkit/Source/WebCore/ForwardingHeaders/domjit at master · WebKit/webkit
Filip Jerzy Pizloさんのツイート: "DOMJIT is a thing! @Constellation https://t.co/MhrVnCa7yb"
172098 – [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
162916 – [DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
164006 – [DOMJIT][CSSJIT] Share code with DOMJIT
小倉唯さんのツイート: "これだいぶ完了まで近づいてきた. https://t.co/QplPWtdBd8 DOMJIT やっててよかった..."
171637 – Hoist DOM binding attribute getter/setter prologue into JavaScriptCore taking advantage of DOMJIT / CheckDOM
小倉唯さんのツイート: "DOM getter, 最初に type check するけど, その check, getter lookup の段階で大体 IC がもうやってる. type checking 部分を JSC にわかるように切り出すと, 大抵さっくり削除できる"
小倉唯さんのツイート: "massive code reduction と optimization のチャンスだ"

feDropShadow

渋川よしきさんのツイート: "最近、CSSとかでドロップシャドウとか簡単に出せるけど、ピクセル単位で自分で計算して出すときの良いアルゴリズムとかどこかにあるのかな"

考察

ゆきぞー𓃢さんはTwitterを使っています 「GUI周り考。HTMLの良さは非同期入力が標準でできる所。問題は非同期入力が標準になってしまう所。 よくある「決済が完了するまでボタンを連打しないでください」の一文は物凄くマヌケだけど、入れたくなる気持ちも最近はわかる。」 / Twitter
ゆきぞー𓃢さんはTwitterを使っています 「個人の実験用プログラムをやるのにGUIに手間を掛けたくない。シンプルな実装で済ませたい。できるだけ特別なコードを書かず、量も書かず、一目で動作が想像できるような簡易さをまず考えるが、それでも数が増えてくると非同期であるために発生する問題にカマかける時間が増えてくる。」 / Twitter
ゆきぞー𓃢さんはTwitterを使っています 「「更新」ボタンを付けて同期をとるのが一つの完全な解決。 でも非同期処理自体は実験室っぽくて捨てがたく、そこを捨てるのならGUI部も自前で書いた方がいいとなり大型化する。 自然併用になるが必要とするときと必要としないときのコードの差が大きくて、プロジェクトの数が増えると煩わしくなる。」 / Twitter
ゆきぞー𓃢さんはTwitterを使っています 「「シンプル」とは、 小規模だと ・できるだけ特別なコードを書かない ・量も書かない ・一目で内部動作が想像できる 中規模だと ・使い方が外から見てすぐわかる ・ライブラリの切り離しが容易 ・一元的で外部の影響を受けない」 / Twitter
ゆきぞー𓃢さんはTwitterを使っています 「>・使い方が外から見てすぐわかる これはgetter/setterでカプセル化 >・ライブラリの切り離しが容易 FWにしない。依存性をなくす。依存性が高いと際限なく肥大化してコストがかかる >・一元的で外部の影響を受けない html側の操作や入力値やボタン類の有無などに影響を受けない。」 / Twitter

命名規則・色

後藤 浩昭 / GORRYさんはTwitterを使っています 「そもそも「OKボタン」や「Noボタン」みたいなものは、論理名が先にあって、それに機能やデザインを結びつけないといけないので、これは×。 そもそも、この手のボタンは最初に「Yes/No/OK/Cancel」の4機能を作ってからそれを設置するもので、設置してから機能を決めるものではない…」 / Twitter
オオバ@UIエンジニアさんはTwitterを使っています 「仕様変更に強い命名は大事だ。ボタンを「OKボタン」や「Noボタン」と名付けていたらヤバいかも。ゲーム開発に仕様変更はつきもの。開発中盤「OKボタンの色を使ってキャンセルボタンを作りたい」というケースもある。結論、用途ではなく機械的な名前をオススメ。後の参画メンバーの混乱は避けるべき。 https://t.co/QMrqKOaoDF」 / Twitter
ちるえの@リプ制限中さんはTwitterを使っています 「@ohbashunsuke webの話ならBootstrapと同じこの命名が正解 https://t.co/3WvtPlPTla」 / Twitter
後藤 浩昭 / GORRYさんはTwitterを使っています 「Yes/NoとOK/Cancelは何が違うのか…と聞かれることがある。Yes/Noは「選択が必須」、OK/Cancelは「選択が必須でない」ときに使う。別の言い方をすると「ボタン連打でどっちかが選ばれたら困る」ときはYes/No、「連打でどっちかが選ばれてもよい」ときはOK/Cancel…と覚えておくとよい」 / Twitter

users

@d_toybox

フレームワーク

なかのん&マジックさんのツイート: "ブラウザ開発者としては、フレームワーク使って開発しておきながら、テストのコストとかなんだろうけど、それをアップグレードしていかないWebサービス提供者には破滅して欲しい。"
なかのん&マジックさんのツイート: "フレームワークにバグがあるパターン、一番有害。"
なかのん&マジックさんのツイート: "良いフレームワークはUAの判定を最小限にしてるはず。そうじゃないと、ブラウザ側のバグ修正や、標準仕様の変更で簡単にバグる。"
なかのん&マジックさんのツイート: "基本的にはfeature detectionかデフォルトアクションの結果を検査しての動作切り分けになるので、Webアプリのフレームワーク作りは相当にプログラミングのセンスを要求されそう。ちょっと、やれる自信無い。"
なかのん&マジックさんのツイート: "そーいや、日本人でフレームワーク書いてる人って知らないな。居たら是非しゃべってみたい。酒でも飲みながら。"
なかのん&マジックさんのツイート: "ブラウザは、エンジン部分の競合は標準仕様が特定のOSや特定の実装者の優先順位に左右されないように複数存在することは絶対必要なんだけど、より互換性を高めて、ユーザーレベルでは、好きなUIで選ぶ事ができる状況にならないとなー。"
なかのん&マジックさんのツイート: "とりあえず、Chromeのシェアがもっと下がらないと、不健全ってところまでは来たな。Chromeのバグや、仕様では定義されていない部分の動作に依存してるサイトの互換性問題の報告が無視できないレベル。"
なかのん&マジックさんのツイート: "結局、IEの時代と同じ事を繰り返してる。"
なかのん&マジックさんのツイート: "しかも、今はフレームワークがあって、それが依存してる場合の影響がデカすぎて、より難しくなってる。"
なかのん&マジックさんのツイート: "Google Closure、feature detectionとUA名チェックが混在しまくってるのか……"
なかのん&マジックさんのツイート: "ブラウザの動作変更して仕様も変えてフレームワーク開発者にも対応してもらって、ようやく何が起きるかというと、大量のバグってるデキの悪いサイトが動くようになるっていうの、色々と間違ってる感あるね……"

histric

histric-1

なかのん&マジックさんのツイート: "@izaten あの頃と違うのは、もはや新しいエンジンの登場は、新規開発にかかる金額考えるとあり得ない。開発停滞したら最後。"
なかのん&マジックさんのツイート: "ブラウザは、非互換が分かった場合に、仕様が有る場合は仕様通りに動いていない方が、仕様が無い場合はベターな方か、単にシェアの大きな方に合わせた挙動を仕様書に明記しつつ統一したりするんで、なんか判断するなら仕様を確認しつつ、仕様と違う動作のブラウザにハックを用意しないとワヤですね。 https://t.co/JeiQejIf6H"
なかのん&マジックさんのツイート: "仕様の方が技術的に良くなくて、仕様が更新されるたち悪いケースも無くはないけど。"
なかのん&マジックさんのツイート: "@momdo_ 仕様が無い所をよしなにやっていくつらみ……"
なかのん&マジックさんのツイート: "@momdo_ CSS仕様書を書く人達の語彙力すごい("
なかのん&マジックさんのツイート: "Firefoxのマスターパスワードが未だにモーダルダイアログなのは最悪なUIだけど、これ、どうしようもないよなー。タブモーダルなもの作ってもWebサイトの作った偽物との見分けが完全につかなくなるし。"
なかのん&マジックさんのツイート: "開発手法はどうか知らないけど、うちのライバル製品の実装に関しては正攻法じゃなくて「うぬぬ」ってなることがあるなぁ。"
なかのん&マジックさんのツイート: "今どき、モバイル版とデスクトップ版でURLが違うWikipediaはどうにかならんの?"
なかのん&マジックさんのツイート: "wheelDeltaを未だに使ってるクソなサイトがまだ大量にあるのか…… / Chrome Platform Status https://t.co/XKoQpA0Xyp"
Chrome Platform Status

histric-2

なかのん&マジックさんのツイート: "Googleからのリクエストで伝統的な挙動を捨てて、後付け標準仕様にあわせた動作に変更する作業やってると、Chromeのバグ見つけて報告する事多いんで、本当に多様性って大切だと思わされる。"
なかのん&マジックさんのツイート: "というか、世界中のWebアプリ開発者の多くが、このChromeのバグ知ってるやろっていうのを見つけても、報告が見当たらなくて新規に報告することになったりしてて、本当に絶望感漂う。"
なかのん&マジックさんのツイート: "よし、やっと、WheelEvent.deltaModeの闇、Googleの仕様の編集者にキャッチしてもらえた。"
なかのん&マジックさんのツイート: "なんかこう、スクロール量をより精度高くとれるようにブラウザ各社が仕様を策定したのに、多くのケースでChromeがpixel値で返すってだけで、値をピクセル値と仮定して処理するWebアプリ開発者が多すぎるの、本当にtry & errorでやってるアレな開発者だらけなんだなぁと思わされた。"
なかのん&マジックさんのツイート: "この件、Safariは、macOSで動いてる場合、macOSのネイティブイベントがピクセル値でスクロール量を知らせてくるのでどうしようもないのよね。この件は本当にChromeのWindows版でのいい加減な実装が招いちゃった悲劇。"
なかのん&マジックさんのツイート: "GeckoはWheelEventの実装のときに、全部の処理を書き直して、各OSのネイティブイベントの情報をほぼロスレスでWebアプリに伝えるようにしたんだけど、Chromeの開発者は既存のパスに最小の変更で、見た目、WheelEventに対応したように見せたことでこんなことになってしまった。"
なかのん&マジックさんのツイート: "なので、Windowsのシステム設定で、ホイールのスクロール量をページ単位にすると、Chromeでもそういったいい加減なWebアプリはバグる。なにしろ、Windows版Chromeは、ページ単位のスクロール設定の場合にはWheelEvent.deltaModeでDOM_DELTA_PAGEを返してて、正しく実装してるから。"
なかのん&マジックさんのツイート: "念のために解説しておくと、Windowsは、行単位でのスクロール量か、ページ単位でのスクロール量がネイティブイベントを通知してくる。macOSでは高解像度のホイール搭載マウスや、トラックパッドからはピクセル単位、古いノッチ単位で回転するホイール搭載のマウスなら行単位を通知してくる。"
なかのん&マジックさんのツイート: "Geckoはこの辺、完璧に近い形でロスレスでWebアプリに伝えるようにがんばった。本当にがんばったのよ?"
なかのん&マジックさんのツイート: "ロスレスで伝わらないケースは、主に小数点の丸め誤差の問題なので、普通のアプリでは問題にならないレベルです。"
なかのん&マジックさんのツイート: "興味ある人は、大昔に書いた、こちらのスライドも参照してみてください。 https://t.co/dZYIwH8Rt6"
マウスホイールイベント処理マニアックス
一ノ瀬 いろはさんのツイート: "Qiita とかにバグの内容と再現方法と回避方法まで書いて有っても報告がされてないケースの悲しみは大きい。… "
なかのん&マジックさんのツイート: "誤解なきように書いておくと、特定の開発者がバグ報告してなかったとかいう話ではなく、世界中の様々なレベルの開発者が最多シェアを持つChromeにバグ報告していないって点ですわ。つまり、そういう流れが業界全体に出来上がっていないと言えるかと。"
Makoto Kato ︎︎さんのツイート: "qiitaでなんとかの闇って書かれてるの、大概バグ報告してないよね"
なかのん&マジックさんのツイート: "Qiita、調べ物で引っかかって来た時以外には読んで無いけど、良くも悪くも殴り書きって感じはある。"
渋川よしきさんのツイート: "タイムマシーンがあったら、Windows APIのスクロールイベント、行単位じゃなくてピクセル単位にしてくれってビル・ゲイツを説得しに行きたい。"

histric-3

なかのん&マジックさんのツイート: "HTML直書きなんてするもんじゃねえという意見が多々あるけど、静的なページ公開したいときに手書きは全然有りでは?と思っちゃう。CMSの見た目をいじる方が難度高くない?"
なかのん&マジックさんのツイート: "今、仕事で関わってる所だと、フレームワークがバグってるから自分達では修正できないとか、どんな(自主規制)なんだよとか思ってしまう。他人の作った物を使ってそれなりのもの作っても、トラブルへの対応能力も無いとね。"
なかのん&マジックさんのツイート: "WindowsのAltGr周りのイベントを、Googleのエンジニアさんが提案してきた新しい挙動にするの、WindowsのAPIでは気軽に実装できるものではあるし、なんか条件文書いてて嫌になってくる。歴史的な事情ってつらい。"
なかのん&マジックさんのツイート: "結果論だけど、今のVirtual Keycode見ると、AltGrに1bit割り当てるのが正解だっただろうなと。"
なかのん&マジックさんのツイート: "ヨーロッパのWeb開発者さんは、やっぱり、AltGrの挙動についてバグ報告してくれるんで、裏を返せば、苦しめられてるんだろうなぁ。"
なかのん&マジックさんのツイート: "私がKeyboardEvent等でmodifier周りの進化した仕様を実装・検証するまでは、WebアプリがAltGrの状態を取得不能だったんで、色々と無理ゲーな要求もあったんだろうなぁ。"
なかのん&マジックさんのツイート: "ChromeもSafariもこの辺は無事、追随してくれたので、まあ、みんなが幸せになれた感じ(互換性問題はありそうだけど、Firefox/Geckoが先行した部分を後からシェアの大きいブラウザのいい加減な実装で台無しになることは無いと信じたい)。"
なかのん&マジックさんのツイート: "WheelEventなんかは、常にdeltaModeがDOM_DELTA_PIXEL前提のクソすぎるアプリを作った一部クソ開発者のせいで、仕様自体を修正しようという話になってて本当にクソ。"
なかのん&マジックさんのツイート: "しっかりテスト出来ないクソがChromeでもDOM_DELTA_PAGEのケースがあることに気付いてれば問題なかったんだけど、そもそも、それが分かる人ならやらかさないレベルで低レベルな話なんだよな。"
なかのん&マジックさんのツイート: "そもそも、まともなリファレンスならWheelEvent.deltaYの値が何かとか、ちゃんとWheelEvent.deltaModeと共に説明してるはずで、それが出来ていないクソリファレンスが存在したのか、文書読めないクソのせいなのか、原因が知りたくはある事案。"
なかのん&マジックさんのツイート: "いやほんと、この件ほど、Web開発者に失望したたことは未だかつて無いよ。あれだけ用意周到に色々とやったのに。"
なかのん&マジックさんのツイート: "WheelEventでのChromeの問題を見るに、また、今までの私の経験からしても、「生データ」へのアクセシビリティは非常に重要で、ロスレスではない抽象化はアプリ開発においてやってはいけないミスだと確信した。"
なかのん&マジックさんのツイート: "「これだけしか必要無いから、これだけの情報でいいでしょ?」ってやると、だいたい、何年後かにその削られたデータが必要になる。長いことメンテするアプリを書いてる人は要注意。特に、メンテを評価しない現場では、ロスレスで抽象化しとかないと危険。"
なかのん&マジックさんのツイート: "長いことブラウザ屋さんやってるけど、未だにアクセシビリティツールがどうやってコンテンツを取得してるのかは知らない……"
なかのん&マジックさんのツイート: "なんとなく、各OSのa11y APIと、DOMへのアクセスの両方だと思ってたけど、前者だけなのかな?"
hadakadenkyuさんのツイート: "ページ右下の「トップへ戻るボタン」はマジでユーザを誰も幸せにしてない例だと思う。効果確かめたことあんの?アレがあることでユーザの離脱率落ちるの?CTR上がるの?継続率UPする?売り上げ上がる?"
なかのん&マジックさんのツイート: "一応、ブラウザベンダに在籍してるものとして、タッチスクリーンデバイスのスクロールに、もっと良い方法が無いか考えてみたけど、あんまり思いつかないんだよな。OSレベルでどうにかこうにかして欲しい問題。"

histric-4

なかのん&マジックさんのツイート: "スマートポインタのrefcountのコストが気になるって、ブラウザのピーキーさ凄いと思いません?"
なかのん&マジックさんのツイート: "ちなみに、管理をミスると即座にセキュリティバグにつながるので、Quantum Flowの前は安全のために掴んどけっていう流れでしたね。割とブラウザの速度のチューニングって、セキュリティに関して無保険車爆走みたいなところあります。"
なかのん&マジックさんのツイート: "私がDOMイベントをやりだしたのって、イベントドリブンなWebアプリにとって、この入り口の互換性の低さはシェアの低いGeckoにとってヤバいって思ったからなんだけど、いざやりだすと、BlinkとWebKitではもだいぶ違うんんだよね(そもそもBlinkでもプラットフォーム変わると結構違うけど)。"
なかのん&マジックさんのツイート: "ネイティブの入力イベントを抽象化したDOMイベントの場合、Webアプリ開発者さんは少なくともデスクトップではWindowsとmacOSの両方でテストすべき状況は続いてるし、もっというと、例えばWheelEventだと、Windowsはページ単位のスクロールかどうかのシステム設定で変わるし、macOSだとデバイスで変わる"
なかのん&マジックさんのツイート: "後者は未だに条件がよく分からない。"
なかのん&マジックさんのツイート: "USBの仕様に全然詳しくないのでなんとも言えないけど、Appleは自社のデバイスは認識時に特別扱いするようになってるのかなってのは思うなぁ。キーボードやマウスのテストしてると。"
なかのん&マジックさんのツイート: "Macユーザは同等なハードで、Apple純正か、サードパーティー製か悩んだ時はApple製の方が間違いは無いってのは感じるな。そんな市場は嫌なので個人の金を投げ入れたいとは思わないけど。"
なかのん&マジックさんのツイート: "XULアドオンって色んなタイミングを捕まえられるように、さまざまなobserverになり得たんだけど、これってmutation event listenerが大量にあるイメージで、呼び出し時にセキュリティを確保しつつ安全に全obseverに通知するってのがコスト高だったのには削除時にパフォーマンス調べてびっくりした。"
なかのん&マジックさんのツイート: "特にメモリのアロケーションが遅いmacOS版が深刻だった記憶。"
なかのん&マジックさんのツイート: "XULアドオンが無くなってどうしたかというと、そういうobserverをC++なら個別のクラスのnon-virtualなメソッドを直接呼び出すようにして大幅にランタイムコストを削減してる。綺麗なコードなのは前の抽象化されたobserverなんだけど。"
なかのん&マジックさんのツイート: "私のやってるeditorだと、検索バーが未だにobserverをJSで実装しちゃってて、これをどうにかすればもっとスッキリするんだけどな(ランタイムコストは検索バーが表示されてなかったらほぼゼロになるようにはしてる)。"
なかのん&マジックさんのツイート: "前にも書いたけど、場所によってはスマートポインタのrefcountの上げ下げすら問題になるのがブラウザっていうアプリなんで、observerって本当に厄介。"
なかのん&マジックさんのツイート: "nsCOMPtrとRefPtrと二種類あるの、いい加減にどうにかならないかな。Foo(RefPtr<Bar>& aBar)みたいにすると、nsCOMPtrで掴んでる場合にあかんし、こういうのをいちいちtemplateにしてると今度はバイナリサイズが悪化するし。"
なかのん&マジックさんのツイート: "まあ、 class Foo { RefPtr<Bar> mBar; void DoIt() { DoSomething(mBar); } void DoSomething(RefPtr<Bar>& aBar) { aBar->Boom(); } }; とかメンバを渡されたらあかんのでどっちみちセキュリティは保証されへんか。"
なかのん&マジックさんのツイート: "Rustってこういう所有権の問題、どうしてるのかよく知らない。"
なかのん&マジックさんのツイート: "ブラウザって要するに、このメソッド呼び出したらJS走る可能性があるから、なんでも起こりえるよっていうのが随所にあるので楽しい。"
なかのん&マジックさんのツイート: "Webアプリのパフォーマンスチューニングって当然ブラウザ毎に「このブラウザはこれが遅い」とかあるだろうから、本当に徹底してるWebアプリはブラウザ毎にパス変えてたりとかあるんだろうか。"
なかのん&マジックさんのツイート: "autocompleteの時にchromeがどう動いてるんだろうかと気になってテストしてみたら、InputEventではないinputイベントが発生してる疑惑だこれ……… "
なかのん&マジックさんのツイート: "マイナーブラウザのバグにまで対応しなくても良いんですよ。マイナーブラウザでもテストしておくと、開発者が自覚していない仕様のグレーゾーンがあぶり出される事が多いという点が重要。それを経てリリースされたWebアプリ側にマイナーブラウザ側がバグ修正して対応するのが理想的で誰も損しない。"
いざてんさんのツイート: "実装依存なコードはやめろっていうのは、別にWEBだけじゃなくてコーディングすべてに言えることだと思うの。よく知ってる例ではデータベースとか。"

histric-5

🐾わおん🐾さんのツイート: "ブラウザにベンチマーク機能内蔵してスペックの判定と負荷の許容度の設定を用意してWebサイトと連携しようなどと大変そうな妄想を広げている"
なかのん&マジックさんのツイート: "手遅れ感は強いけど、fingerpintingが……"
なかのん&マジックさんのツイート: "Firefox とChrome のマルチプロセス見てると、GUI アプリのマルチプロセス化は無理矢理感が強くて。かといってIE 方式なのはさらにどうなのかって感じだし。"
CORSAIR JAPANさんのツイート: "PCのメモリをいくら増やしても、あればあるだけメモリを使おうとするアプリありますよね (;_;)… "
なかのん&マジックさんのツイート: "使わんのも変やけどな。使いすぎてもアロケーションの速度落ちるから使い切るのがええわけでもないけど。"
Hideyuki Tanakaさんのツイート: "ブラウザのタブに、負荷が高いやつを色付けするとかあれば、重いやつ閉じればいいやんとかそういう風には言いやすくなる(´・_・`)"
なかのん&マジックさんのツイート: "タブの色が変わったりするの、動画広告と同じ理由でものすごく鬱陶しく感じると思う。"
ゆういちろうさんのツイート: "「わずか0.2秒という高速な処理」 って言うと早そうだけど 「処理に200ms掛かります。」 って言うと遅い気がする…"
なかのん&マジックさんのツイート: "入力イベントまわりやり出してから、人間にとっても1秒ってめっちゃ長いことを知った。"
いざてんさんのツイート: "数十~数百ms読み込みを早くするためにWEBサイトの作りをあれこれ考えるも、お偉いさんの「あれおいてよ、共有のためのボタン」という一言によりソーシャルウィジェットが設置され"
なかのん&マジックさんのツイート: "あれ、asyncにすれば大丈夫。… "
なかのん&マジックさんのツイート: "まあ、アカウント作らないと何もできないように思えるシステムってのは良くないと思ってて、アカウント作らないと駄目なシステムであったとしても、作成前に必要情報を入力させていって、じゃあ、今回の情報でアカウント登録しておく?って聞いてくる楽天みたいな方式が正しいんだろうなって思う。"
なかのん&マジックさんのツイート: "毎回入力すればアカウントを作らなくてもOKにできるなら、それが一番ストレス無いんだろうなと。"
なかのん&マジックさんのツイート: "アカウントを先に作らせるというのは、今、入力したいことを後に回させられるということで、システムやその運営者が強権的に思えてよくないんだよな。"
なかのん&マジックさんのツイート: "XUL のボックスレイアウトとflexbox は何が違うんだろう。flexbox にしろWeb components にそろ、Mozilla 内部では慣れ親しんだものなだけに、標準との違いがよくわからん。"
なかのん&マジックさんのツイート: "HTML の通常のフローはUI には遅すぎるので、まだ、XUL は捨てられないって言ってたときはあったけど、flexbox で完全に置き換えられるのかな?"
uint256_tさんのツイート: "ますますJavaScriptが広く使われてるのが意味わからなくなってきたし 今からでもいいから、Lispでもなんでもいいからまともな言語にしてほしい"
なかのん&マジックさんのツイート: "HTMLにしろ、CSSにしろ、かちっと仕様の方を定義しても斜め上の事するWeb開発者が出てきて仕様の方が折れるという歴史の繰り返しなので絶対無理。"
いざてんさんのツイート: "開発側の視点としては、Dartはよくできてるなって思ったんだけど、あんまり流行らないまま廃れたね。"
なかのん&マジックさんのツイート: "IE一強時代も、Chrome一強の今も、互換問題が報告された時にブラウザ側のバグが原因ってのは少ないという現実がある。"
なかのん&マジックさんのツイート: "Web開発者が ・仕様と違う事をやりつつ、一強のブラウザがバグってる ・仕様で定義されていない一強ブラウザの動作に依存している ということをやっていると、Webブラウザの多様性が失われていって、最終的には誰も幸せじゃない未来になる。"

histric-6

なかのん&マジックさんのツイート: "えー…… Googleさん、ちょっと、Webをコントロールしようとしすぎでは。 / remove document.designMode · Issue #177 · w3c/editing https://t.co/9wA3y1lm6t"
remove document.designMode · Issue #177 · w3c/editing
なかのん&マジックさんのツイート: "Webはメンテされなくなったドキュメントやらアプリやらがやたらと存在し続ける場所だから、APIの削除って基本的にはやるべきじゃないよなぁ。"
なかのん&マジックさんのツイート: "ChromeやFirefoxみたいな設計のマルチプロセスだとどうしようも無い気がするけど、どうなの…… / https://t.co/vCWlS0Z06m - On GNU+Linux switching tabs with alt+1 etc passes the hit of 1 to the page #もずでぶ"
なかのん&マジックさんのツイート: "特に不便なスマホやタブレットでアクセスしている時に、ページ内の一部に読み込んだデータを追加していってくれるUIは便利なんだけど、各状態にURIを別途割り当ててくれていないと情報のシェアには不便なので、そういうところは意識して欲しい。"
なかのん&マジックさんのツイート: "オーソドックスなページだとUXは落ちるものの、逆に致命的な問題は起きようがない。オレオレUIでUXを向上させると、ぱっと見では便利になってても、開発者が想定していない不便が発生してる。フィードバックを受け付けて順次改善していくようなものじゃなければ、有り物を使ったりすべきなんだろうな。"
なかのん&マジックさんのツイート: "特定のURLを特定のウインドウで常に開くようなアドオン無いかな……bugzilla専用のウインドウ作ってタブまとめないとあかん感じになってきた。"
なかのん&マジックさんのツイート: "最近のGoogleは本当におかしな方向に行ってるとしか思えない。実験実装にしても発想が非常識過ぎる。例えユーザーがそれを求めたとしても、その内容というか発想は非常識過ぎる。 https://t.co/HG0xzE6eUx"
Chrome Canary、Web検索時に検索語句だけをOmniboxに表示する機能をテスト中 | スラド IT
なかのん&マジックさんのツイート: "Google Chromeのトップに居てるDarin FisherとはMozillaで彼がやってた時期に面識あるんだけど、こういうのを是とする人と思えんので凄く不思議なんだが。"
なかのん&マジックさんのツイート: "プロジェクト細部までトップが決定できるとか、そんな幻想の話ではないというぐらいに、割と根幹に関わる話よね、特にChromeのシェアを考えると、Webの未来に直結しかねない。"
KIMATA RobertHisasiさんのツイート: "(続き)UAの挙動を指定するdownload属性の利用は target="_blank" 同様に別途検討が必要なのではと思いますが、どうでしょうか。pdfへのリンクなら、ユーザーによってダウンロード、そのままブラウザで読む、ダウンロードを経ずにPDFのリーダーで読むなど期待する挙動が違うのではと思いますので"
なかのん&マジックさんのツイート: "ダウンロードするという予告のもと、確実にブラウザにダウンロードを促すには必要不可欠なので必要だと思うんだよな。昔だと、MIME設定がひどくて、ダウンロードリンクをクリックしたはずが、膨大な容量のバイナリファイルをプレーンテキストとして表示しようとして「攻撃」を食らったりしたし。"
なかのん&マジックさんのツイート: "PDFを普段はブラウザで開きたいけど、PDFをダウンロードしたい場合もある時に、サイト側が通常のリンクとダウンロード用のリンクと別途用意してくれてるケースは正直、便利で助かってる。"
なかのん&マジックさんのツイート: "サイト側が使い方間違うと被害ありそうではあるんだけど、まあそれはたいがいの機能がそうな気もする。"
なかのん&マジックさんのツイート: "普通の人がメリットそうそう無いと思うけど、HTMLファイルをダウンロードさせようとすると、やっぱしそういう機能しかないかなーとも。"
なかのん&マジックさんのツイート: "最近、ひとつのアカウントでしかログインできないアプリの設計ってクソだなって思うようになってきた。"
なかのん&マジックさんのツイート: "全然関係無いけど、ふつうのサイトの開発に必要ないけど、ブラウザの開発には超便利な機能が無いと、仕事柄非常に困るので、HTML4の後、<base>が消えたりしないかと冷や冷やしてた。あれ、バグってるサイトをダウンロードしてテストする時にむっちゃ便利なのよね。"
なかのん&マジックさんのツイート: "あとEdgeよ、いい加減にdata URIをフルサポートしてくれ……"
なかのん&マジックさんのツイート: "んー、Nightlyのslow-loading trackersをブロックする機能、他のアプリにLANの帯域を食い潰されてると画像の読み込みとかに悪影響出てる気がする……"
なかのん&マジックさんのツイート: "auxclickイベントの再実装、どうしたもんかなぁ。いつやろう。どうにかねじ込まないとこれマズすぎる。"
なかのん&マジックさんのツイート: "ダウンロードしたブツの正当性を確認するためにハッシュ値を確認させようとするの最悪極まりないUIなのになんでか非難されない……"

なかのん&マジックさんのツイート: "これ読んでると、"OSSだから誰でも好きな機能を"とか、現実を知らない人居るようで、現実ではなく、妄想ベースの結論は「今の自分に都合の良いところに落ち着くだけ」なんだなと。 https://t.co/IApZpstnEi"
Mozilla、EdgeがChromiumベースになることに対しGoogleの独占を危惧 | スラド IT
なかのん&マジックさんのツイート: "こんなこと言えちゃう人は、だれでも無断で好きなパッチをツリーにコミットできると思ってるんだろうか……"
なかのん&マジックさんのツイート: "実装が一つの場合、使いやすいAPIのために元の設計を大きく書き直すということはコスト面を考えると無いのは明白ですな。今回、Geckoが65でkeypressイベントを(事実上)Blink/WebKitに合わせて標準化された動作に半年以上かけて修正したのも異なる実装だったからこその話なので。"
なかのん&マジックさんのツイート: "こういう大きな書き直しが無いとどういう実装になっていくのか、コードを長期間にわたってメンテしたことある人なら分かるんだけど、ハッキーなパッチでどんどんバグだらけの無理矢理な修正が積み重なっていき、袋小路に。その状況は短期的にはユーザーにとって好ましく見えるのがたちわるいところ。"
なかのん&マジックさんのツイート: "何しろそれなりに動いてるものが即座に追加され、簡単に治りそうに見えるバグが残ってるだけに見えるからね。そして、Blinkの挙動やテストをGeckoでの実装時に確認すると、Blinkはだいたいそうやってるんだなというのが見えてくるのでつらい。"
なかのん&マジックさんのツイート: "とりあえず、最近ますます速度が上がって、Webの進化に自分が関わってる所以外はついていけないんだけど、なんで「落ち着いてる」って言ってる人を結構見かけるのか不思議だ。"
なかのん&マジックさんのツイート: "Geckoの場合、開発者やプロジェクト全体にとって興味の無かったモジュールはNetscape時代からほとんど大きな変更無く放置され、それがさらに誰も触りたくない魔窟になっていってた。その内のひとつ、editorを引き取ったのは、書き直さないとこれから増えてくるAPIを実装でき無くなると思ったからで。"
なかのん&マジックさんのツイート: "実装が一つしか無かったら、変わり者が出現して、それを容認してくれるマネージャーがいないと、そういう場所はどんどん進化から取り残されていくだろうね。特にWeb開発者がそこに熱烈な仕様案を書いても誰も実装しない未来が待ってるのは確実。"
なかのん&マジックさんのツイート: "大きく書き変えての実装には、既存サイトがつぶれたり、regression報告をトリアージするコストも当然含まれるので、外部から来た大きすぎるパッチを無条件に取り込むなんてことも期待できない。"
なかのん&マジックさんのツイート: "Webブラウザの開発でつらいのは、既存の実装がある所にその設計をまったく考慮しない仕様案がしょっちゅう出てくるところ。なので、案の段階で、自分の所に不都合な形のAPIにならないように代替案をなんか考えないといけない。実装がひとつしかなかったら、その設計に依存したAPIしか通らなくなる。"
なかのん&マジックさんのツイート: "まあ、どのブラウザでも実装が難しすぎて消えていった仕様もあるけど、そういうのがより極端になっていくやろね。"
なかのん&マジックさんのツイート: "極端な話、実装書いて仕様案だけWICGに投げて、オープンを装ったり出来るんだよな。"
なかのん&マジックさんのツイート: "仕様策定で、その現場に居てる人の顔を立てて妥協したら、その人の所属する企業の他の部署の調子に乗った奴からの恫喝に仕事増やされ、それを対応したら、さらにその企業の他の部署がてんやわんやの大騒動になったというのが2018年の私のメインの仕事の顛末でして。"
なかのん&マジックさんのツイート: "自社製品が後出しジャンケンでinvalidとされるような仕様には二度と合意しないという気にしかならないよ、そんなことされちゃ。"
なかのん&マジックさんのツイート: "は??? Firefoxのタブバーの"+"ボタン、マウスで長押ししたらcontainerを選べるとか知らなかったんですけど……"
なかのん&マジックさんのツイート: "regression報告で初めて知った、なかなか衝撃のUI。デスクトップで長押しの発想はなかった。(まあ、戻るボタンとかは長押しあるけれども。)"
なかのん&マジックさんのツイート: "普通に考えたら、昔の戻るボタンのデザインみたいに、"+"の脇に小さくでも、下向きの▼とか必要だよな。"
なかのん&マジックさんのツイート: "Netscapeはブラウザをメインの事業のひとつとして、パッケージを売ることでも収益を上げていたので、アップグレードは当然金のかかる行為となってた。ここをMicrosoftは突いてきて、Windowsのプラットフォーム戦略の一環としてIEを無料で使えるブラウザとしてNetscapeの事業の資金源を潰しにかかった。"
なかのん&マジックさんのツイート: "もちろん、汚いビジネス手法だと今でも思うんだけど、無料でもアップグレードを渋る人達すら居てる現在の現実を見ると、もし、ブラウザのアップグレードが有料のままだったとしたら、世の中、最新じゃないブラウザを使い続ける人が大量に居た(むしろ主流派になってた)であろうことは確実に思える。"
なかのん&マジックさんのツイート: "そこを当時のMicrosoftが狙っていたとも思えないんだけど、結果的にブラウザのように更新頻度が高くて、常に最新版にしておかないといけないものが無料で手に入るのが当たり前になった現状を作ったMicrosoftの歴史的な決定は今のWebのセキュリティに無茶苦茶貢献したと言えると思う。"
なかのん&マジックさんのツイート: "もし今でもWebブラウザが有料のソフトウェアで、バージョンアップに金がかかるのであったなら、ブラウザのバージョンの断片化は昔のそれよりはるかに酷くなってて、Web自体がここまで使いやすいプラットフォームになってなかったんではないかな。"
なかのん&マジックさんのツイート: "こんだけブラウザが多機能になってる時代に、Ctrl + Uがソース表示に使われてるの、むっちゃ勿体ないように思う。開発者用は全部Shift付きで良いような(開発者的に不便ならShiftLockみたいなのキーボードレイアウト関わらずできるようにするとか)。"
なかのんクエストさんのツイート: "@momdo_ ああ、マウスジェスチャーは冬の時代かもですね……あれってアプリが実装するのも変なようには思いますが(OSから結果だけAPPCOMMANDとかのイベントで来いよって感じが)。"
マウスジェスチャー - Wikipedia
マルチタッチ - Wikipedia
なかのん DAYS''さんはTwitterを使っています: "思った以上にキャレットが多かったですね。ちなみに、用語的にはカーソルは、マウスカーソルを指すことが多く、キャレットを使った方が誤解が無くなります。"
なかのんクエストさんのツイート: "というか、Windowsってなんで未だにデスクトップアプリのセッション復元に関するAPI整備を未だに行わないんだろうかと不思議。OS側で仕組みを用意してやれば、開発が活発なアプリは追従してくると思うんだけど。"
なかのん&マジックさんのツイート: "なんだかんだで、メニューって便利よね。モダンなアプリのデザインではどんどん廃止・オプション扱いにされてるけど。最短でのアクセスはできないけど(最低でも2クリック)、整理されてるのでアクセスしにくいメニューってのはそうそう無い。"
なかのん&マジックさんのツイート: "ネイティブのタイトルバーはWindowsの場合、アプリのプロセスがハングアップしてても操作可能なので、GPUドライバのバグとかで固まりやすいメディアプレーヤー系では使えるようにしておいて欲しい。自前のモーダルダイアログ出すアプリとかだと詰むんだよなぁ。"
なかのん&マジックさんのツイート: "observer (listener)って綺麗にデザインできるけど、runtimeコスト高いなーと思う今日この頃。"
なかのん&マジックさんのツイート: "ところでドロップダウンリストの「選択」って用語、一般的には開かれてるリストをハイライトしてることを言うのか、それを選んで閉じた状態を言うのか、いまだによくわかっていない。"
なかのん&マジックさんのツイート: "説明文書いてると後者を「選択」というのが自然な気もするけど、じゃあ、前者をどう呼ぶ? って感じが。"
なかのん&マジックさんのツイート: "Ctrl+ZXCVみたいに、Ctrl+Shift+CXVあたりもリッチテキストを扱えるアプリ間で暗黙の共通のショートカットキーとならないんだろうか。 / 【レビュー】[Windows]+[V]キーでテキストから書式を取り除いて貼り付け「PureText」 - 窓の杜 https://t.co/TQjnNbHQ5l @madonomoriさんから"
なかのん&マジックさんのツイート: "OSに標準搭載されてるアプリがショボくて、なんでこんなのあるんだって思う人も多いかと思いますが、サードパーティーのアプリはあれを参考にすることでOS上でアプリ間共通の用語、メニュー構成、ショートカットキー、その他使い勝手を実現できるので、無いとえらいことになるんです。"
いけち@狐耳さんのツイート: "弊社のITスキルは偏差値3くらいしかないので、Outlookが最新版に更新されてアイコンが変わった日の朝、「メール開くやつがなくなった。直して欲しい」という電話で情シスのヘルプデスクがパンクした。"
なかのん&マジックさんのツイート: "いやほんとに、PC 等に苦手意識のある人は理解せずに使い方を覚えてるだけなので色々と難しい。"
なかのん&マジックさんのツイート: "アプリの操作方法を驚きの固定手順で覚えてる人ってライトユーザにはたぶん多くて、「これぐらい分かるやろ」っていう変更がかなりあかんパターンは多いと思う。かといっていつまでもUIデザインを変更しないわけにもいかなく…… https://t.co/9StksFHaL0"
最近気になったアプリケーションの操作方法の変更について | アクセシビリティBlog | ミツエーリンクス
なかのん&マジックさんのツイート: "変更回数が少ない方が良いのは間違いないけど、じゃあ、溜め込んでおいて、一回のアップデートで大変更が良いのか、ちょっとずつ変化していく方が変更に追随しやすいのか、その辺はデータ見たことないのでプロダクトとしてどちらが好ましいのかよく分からない。"
なかのん&マジックさんのツイート: "ふと、MozillaのCSSのbindingによってショートカットキーが特定の要素に付加された時にどこからその処理が来てるのか気になったのでデバッグビルドでスタック見てみたら、非同期で投げられててどっから来たのか分からないという……"
なかのん&マジックさんのツイート: "そら、ソースコードを読んでてもたどり着けませんわ……"
なかのん&マジックさんのツイート: "今、ショートカットキーはキーイベントがある度に、連結リストを辿って、マッチするかどうか確認するようになってて、メモリ削減には貢献してるんだけど、その代わりにオーバーライドするのがちょっと無理って感じになってしまってる。"
小池宏幸@Piascoreさんのツイート: "トグルボタン問題、こういうのやね。… "
なかのん&マジックさんのツイート: "あの分かりにくいウイジットを使い出したAppleのデザインセンスわけわからん。"
Takashi Kawasakiさんのツイート: "この前のトグル問題の本質だと思うけど、説明に動詞がほしいし、日本語がそもそもおかしい。「起動時またはバックグラウンドで起動」って、何が「または」なんだよ。… "
Takashi Kawasakiさんのツイート: "HUAWEIのこの辺の設定、全体的に意味がわからん。「消費電力の高いアプリ」っていうのはユーザーが表明するという意味なのか、それとも他の意味があるのか。英語か、中国語で語彙を調べた方がよさげではある。… "
なかのん&マジックさんのツイート: "GPUのドライバがクラッシュしたっぽいけど、この場合、NightlyのUIは完全にお亡くなりになるのか。メニューとかすら自前レンダリングのアプリはこういう時は弱い。"
なかのん&マジックさんのツイート: "本格的にContainer Tabを使い出して思うけど、ウインドウ単位でContainerになって欲しい。せめてデフォルトで利用されるContainerがそうであって欲しい……"
なかのん&マジックさんのツイート: "もう、本当にWin10に「ディスプレイのタッチ機能」を一時的に無効化するUIつけて欲しい。子供がさわりに来ると使えなくなる。"
なかのん&マジックさんのツイート: "でも、2018年にもなってって感じだけど、自分専用のファイラは作った方が仕事がはかどるのではって思うこと多いな、最近。"
なかのん&マジックさんのツイート: "Mozillaのソースコードとか読んでみると良いよ。ネイティブUIとできるだけ同じルック・アンド・フィールを実現するために、どれだけのコードが必要になってて、どれだけメンテナンスコストかかるかなんとなく想像できると思う。それでも全然完璧からはほど遠いんだし。"
なかのん&マジックさんのツイート: "ウイジットを全て自前で実装して、本当にその価値があるのってブラウザみたいに自前でレンダリングするしかやりようが無いような特殊なアプリか、クロスプラットフォームでUI部分のコードを完璧にシェアしつつ、自分達でその仕様をコントロールする必要がある場合だけだよな。どちらにしろ特殊。"
なかのん&マジックさんのツイート: "ホイールとかタッチとか、あの辺はGUIアプリでも入力が来すぎてどうなのってところあるし、今、Mozillaでもcoalescingしようかみたいな話は出てるけど、それぐらいかなぁ。"
なかのん&マジックさんのツイート: "macOSが特に顕著なんだけど、ホイール操作で1px単位のスクロールのイベントが飛んでくるの、本当にやりすぎでは。"
なかのん&マジックさんのツイート: "passiveじゃないホイールイベントやタッチイベントのリスナが居てると非同期スクロールも使えないんで、細かすぎるスクロールを示唆するイベントはパフォーマンスの低下につながってる。"
ɔさんのツイート: "3/19にリリース予定のFirefox 66から、疑似カーソルが正確に座標を追尾するようになります。普段使っているブラウザが対応するのは本当に嬉しいので 確かみてみろ! 完"
なかのん&マジックさんのツイート: "その節は本当に勉強になりました。"
なかのん&マジックさんのツイート: "個人的にはUIにアニメーションは派手さ以外の面では要らないって思ってます。あれがあることで変化が分かりやすいってのはユーザテストしてない結論だと思ってる。大概の人はそんなに視界の変化について注意してないと思ってる。"
なかのん&マジックさんのツイート: "みんなそんなに視界の変化に注意を払ってるなら交通事故なんて起きないんですよ……"
なかのん&マジックさんのツイート: "人は見ようとしているもの以外は視界にあっても認識していないと思う。"
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「確かに白い背景のUIが多い昨今、白いマウスカーソル使うのは理にかなってないな。」 / Twitter
Asa DotzlerさんはTwitterを使っています: 「Did you know you can easily change your pointer color and size in Windows? I didn't until last week but I've been running with a yellow pointer for several days now and it's SOOO nice to be able to find the thing without all that jiggling and circling. https://t.co/Rmglg0a304」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「未だにフォーカスが移動しちゃいけない時や、フォーカス移動がからむデバッグと、DnDのデバッグは面倒くさい。」 / Twitter
Manabu UenoさんはTwitterを使っています 「マウスオーバーすると色が薄くなるボタンとか、下線が消えるリンク文字とか、何を考えてるんだろう。そのオブジェクトが視覚的に体現していた意味性を手放すということは、操作を拒否してることではないか。そもそもマウスオーバーによる変化は全て不要だと思う。UIを複雑にするだけ。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「私はマウスホバーという、「状態の変化」が正常に処理されたか見えないと困ることがあるので変わって欲しいと思う。みなさんは、アプリのフリーズ(一時的なものも含め)にどうやって気付いてるでしょうか? マウスカーソルが期待通りの変化をしなかったことから気付くこと、多くありません?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Firefox for Androidでは長押しでmousemoveイベントと、その副産物のhover状態の変更が起きなかったんですが、わざわざ去年か一昨年に入れましたよ? そうじゃないと困るサイトがあったので。 https://t.co/J8oklxOvav」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「マウスオーバーによる表現、PCユーザーが中心だった時台は必要でしたがスマフォ・タブレットユーザーが中心だとわざわざ付ける必要がない気もしますね。 皆さん今でもマウスオーバーで見た目を変えているのでしょうか…?」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox 確かに長押しで変化しますね。スマフォでリンクなどを長押しするユーザーがどれだけいるのか気になります…」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「@Stocker_jp これがないとメニューバー内のメニューがリンクになってるのに、そこにhoverして開かれるポップアップメニューを使うことを期待してるサイトが全滅なのですよ。」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox スマフォでそういう表示が出るサイトはそろそろ改善して欲しいですね…」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Bug 1472618 - navigator.platform returns "Win64" in Firefox but "Win32" in Chrome and Edge on Win64 OS https://t.co/2WTuOEB0S0 というか、Win64なIEはWin64と返してたのに、EdgeになるとWin32になるってなんだそれ"
Makoto Kato ︎︎さんのツイート: "Win64なFirefoxでWin64と返すようにしたのはずっと昔の自分ではあるが"
Makoto Kato ︎︎さんのツイート: "Got win64/arm64 laptop!!… "
Makoto Kato ︎︎さんのツイート: "重いんだけど、これ。しかも電源がType Cじゃないんだ"
Makoto Kato ︎︎さんのツイート: "syswow64ある意味わからない"
Makoto Kato ︎︎さんのツイート: "… "
Makoto Kato ︎︎さんのツイート: "No arm64 string in Edge Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
Makoto Kato ︎︎さんのツイート: "SunSpider on Edge + Windows 10 / arm64 https://t.co/CRR3TsS1gw… "
Makoto Kato ︎︎さんのツイート: "Emulation mode of Windows 10 / arm64 is slow... (this result is Firefox x86 on emulation mode) https://t.co/51OzDrjkUb… https://t.co/P8SJVFhMqR"
Makoto Kato ︎︎さんのツイート: "もしかして、sysarm32がthumb2でsyswow64がx86のバイナリってことか"
Makoto Kato ︎︎さんのツイート: "notepad.exeがx86とthumb2とarm64の3バージョン含まれてるとか、誰得だよ"
Makoto Kato ︎︎さんのツイート: "SONYはWebKitにコミットしてる (WebKit reviewerも社員にいる) ので、次もWebKitだと思いますよ。任天堂はACCESS次第 (これ https://t.co/TbaGqgBZsa)… "
WebKitブラウザ「NetFront® Browser NX」|ブラウザ|製品情報 | 株式会社ACCESS
Makoto Kato ︎︎さんはTwitterを使っています 「GNOME/Waylandで整数じゃないDPIスケールを有効にすると、整数倍のDPIでも非常にぼやける。使えなすぎた」 / Twitter

@rockridge07

Rockridgeさんのツイート: "Fx55:Windows版で、描画関係の処理において常に垂直同期(vsync)タイマーが使用されていることから、ソフトウェアタイマーを使用するモードを削除した。 / “1352074 - Firefox fixes Window…” https://t.co/cHdNp6G3Vl"
Rockridgeさんのツイート: "FirefoxにPolicy Engineと呼ばれるコンポーネントが追加される見込み。システム管理者が作成したJSONベースのカスタマイズ設定を読み込み、本体に反映させる。また、"ESR 60"という表記にも注目すべきだろう。 https://t.co/VZpDE6sj2H"
Rockridgeさんのツイート: "FirefoxのUIアニメーションがPCにかける負荷は軽微なものではない。Mozillaはマシンパワーに乏しい環境ではフレームレートを下げ、負荷を減らそうとしている。参照:https://t.co/t2qYcmhKaR / “T…” https://t.co/VxPpYlM7XB"

@shibu_jp

渋川よしきさんのツイート: "動的ウェブの高速化、そろそろ、データ変更時にそれを表現するhtml片を生成まで事前にやっておく、みたいになって、エンタープライズなバッチシステムに回帰していくのでは。"
渋川よしきさんのツイート: "What's 3 Words、すでにあるマップコードの仕組みを単語の空間にマッピングしたものという理解でいいのかな?というか、これもベースはデンソーなのか。すごいな、デンソー 。 https://t.co/UzIgpTfiyr"
Mapcode - Wikipedia
渋川よしきさんのツイート: "ガントチャートは依存関係を持ったタスク情報をコンパイルしたら出力されるべきものであって、ガントチャートを入力するものではないよね。"
渋川よしきさんのツイート: "QML向けのReact Nativeが出れば、クライアント開発の一発逆転はあり得る気がしてる"
渋川よしきさんのツイート: "アイディアを書き留めたり、一次入力としてよく使ってます。編集は提案を自動で作って選択肢から選ぶぐらいのUIが実現したらできそう。構成は複雑なカードゲームのユニット編成とかゲームでやってるからできそう。 https://t.co/12OA5XZecV"
渋川よしきさんのツイート: "僕の中でmacOS機が良いのはディスプレイが綺麗で、フォントが綺麗で、スクロールがなめらかで、SSDがそこそこ高速なコンピュータという位置づけなので、他のOSはまだいまいち。特にスクロール。最近の普段使いはLinux機だけど。"
渋川よしきさんのツイート: "Windowsってスクロールイベントが行単位なんだよな。Xもそう。Waylandはwheelは「ボタンクリック」って書かれているので期待薄だけど、fingerでのスクロールはkineticって書いてあるので、WindowsよりはLinuxとかの未来に期待してる。"
渋川よしきさんのツイート: "macとiOSは常にデバイスのdevice pixel ratioが一定で、macはretina機種だと2。2880x1800の物理解像度でも、文字一番小さい設定にすると、論理的な作業スペースは1920x1200。標準で1440x900。内部では2倍の3840x2400でレンダリングしてスケーリングしている。"
渋川よしきさんのツイート: "これ、すごく無駄に見えるようだけど、画面描画はアンチエイリアスが効いて悪くない。あと、スクリーンショット撮ると、常に2倍のサイズで取得される。RPAでオートメーションするときにDPI変えても動作に影響ない。macはこの画面の描画とピクセル単位スクロールイベントの2つは尊い。"
渋川よしきさんのツイート: "MacBook Proは高い、○○なら/自作したらもっと安い、と言っている人よく見かけるけど、System 76ならたしかに半額ぐらいで32G/1TBマシンが選べる。なんだけど、ユーザーランドの部分はともかく、電源管理だったり、スクロールだったり、Retina対応だったりの部分は圧倒的にmacがいいのだよな。"
渋川よしきさんのツイート: "Surface Proも身近で買った人は多いけど、もろもろ電源の問題だったりとかトラブル抱えていたりするし、いろいろ厳しさがある(し、Surface 2とWindows Phone 7でハードの寿命とサポートされなさが異常だったのでMS製ハードはしばらく近寄りたくない)"
渋川よしきさんのツイート: "Macがダメになっているといっても、他のダメさがまだ勝っているので、しばらくはmacかなぁって。Linuxが8th Genの電源管理完全にサポートしてWaylandでピクセル単位スクロールが実現したらLinuxメインにしたさはある。"
渋川よしきさんのツイート: "UI部品。今までもX, Yと重なりのZの3次元であったけど、最近はZ軸でフォーカスアウト(ぼかし)や、アニメーションという時間軸tが入ってきた。その次は回転でも入るのかな。"

@uint256_t

uint256_tさんのツイート: "#Naglfar - クラッシュしたら、Issueで報告してねって表示がでるようにした"
uint256_tさんのツイート: "#Naglfar これ、Naglfarはすぐにクラッシュするからその都度報告してもらってたら大変なことになりそう()… "
yumetodo-鳥の氷河から逃げるさんのツイート: "違法なHTMLに対して「あきらめましょう」と出す機能はありますか?… "
uint256_tさんのツイート: "これが許されるなら、HTML はもっと健全な方向へ進化していったんだろうなあ (今のところそういう機能はなくて、おかしなHTMLでも無理やり解釈するようになっています… "
なかのん&マジックさんのツイート: "なんかこう、MS vs. Netscapeな頃を彷彿とさせてくれてて、良い。"
uint256_tさんのツイート: "ブラウザは一人の人間が作るものじゃないよ。"

@yugui

Yuki Yugui Sonodaさんのツイート: "だからIMEの状態を見ずにエンターキーイベントだけ拾って検索を開始するのはやめろと何度言ったら"
Yuki Yugui Sonodaさんのツイート: "Googleは正攻法と正論を突き詰めて成立してる会社って印象があって。品質を保ちたい→テストを書く。テストしづらい→テストしやすい設計をする。テストを浸透させたい→浸透させる職種を作って全チームに配置。テンソル計算が遅い→速いプロセッサを作る。時刻ズレで整合性が辛い→原子時計を設置"

@shirouzu

ダブルバッファリング

Shirouzu Hiroaki(白水啓章)さんのツイート: "描画のちらつき抑止用ダブルバッファリング、OS側がそれ的な動作をサポートしてくれないものかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: ".NET には存在しているようだ。 https://t.co/SjjgMV7Dco"
ダブル バッファリングされたグラフィックス | Microsoft Docs
Ryota Shioyaさんのツイート: "いまどきの Windows でデスクトップ・コンポジションが有効な状態だと実質的に常にダブル・バッファしてるようなもんだと思うんですけど,どうでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その意味ではその通りです。 ただWindowDCにGDIで直接お絵かきすると、その過程がすべてリアルタイム更新されるので、ちらつくんですよね。(手動ダブルバッファなしに)BeginPaint~EndPaintをまとめて最終結果だけ表示するモードも欲しいなぁ、と。… https://t.co/sH84BFwODx"
Ryota Shioyaさんのツイート: "マシンパワーゴリ押しで十分速く更新されるので運悪く DWM の更新タイミングにぶつからないぎりは平気かなとか思ってたんですが,ネットみてるとそんな簡単にはいかないみたいですね・・・ ところで,BeginBufferedPaint という API もあるようですけど,こちらで解決されたりしませんか?… https://t.co/lk6Pkbv9Y2"
Shirouzu Hiroaki(白水啓章)さんのツイート: "おぉ、いつの間にかこんなAPI(Vistaで増設)が…これを使えば大丈夫そうですね。 ありがとうございます! (Vista以降のAPI増えたし、そろそろ「XPでは起動もしません」にするかな)… "
Ryota Shioyaさんのツイート: "Vista で導入されたコンポジションのバッファリング関係の API を眺めていたら、「あれ?これは名前からして目的そのものなのでは? 」という感じでした! 頑張れば動的ロードで XP でも最低限動くように出来るとも思いますけど、流石にもう打ち切っても良いのではないかなと言う気がします… https://t.co/TvPHzgaPHD"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸、DirectWrite(Win7以降)やカラー絵文字(Win8.1以降)対応しつつ、未だにWin98サポートのすごさ。 OS毎の分岐で悪夢なコードになっていないか、気になる。 https://t.co/kIhkQPQp9D… "
秀まるおのホームページ(サイトー企画)-秀丸エディタ

Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ハンドラ内でMessageBoxを生成すると、メッセージループが回る=同一スレッドのタイマー処理が動くスキを与えてしまう問題。 MessageBox専用スレッドを別途生成すれば一応解決するが、やや牛刀感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messengerでも(昔から)非アクティブでも選択が見える形にしている。 ただしオーナードローではなく、WM_KILLFOCUSをブロックというhack的な実装。… "
やねうら王さんのツイート: "『将棋神やねうら王』は、ListViewが複数配置されていて、そのすべてがアクティブという特殊なUIデザインになっています。この理由について記事にしてみました。 ListViewが複数あるこの世界で世界最強 https://t.co/bDNHg2i7Jr"
システムのフォントサイズを大きくする機能が追加 ~「Windows 10 RS5」Build 17692 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーザには良い機能だが、開発側はダイアログで表示が切れる等に気をつけないと。(以前、IEEEでも有名な年配の米女性から、丁寧な指摘メールが届いた経験が、、、)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーレカ! ent->TimerProcの中で(レア設定の場合に)MessageBoxを通っていた。 MessageBoxは内部メッセージループを持つ=パケット処理やタイマー処理などが再入的に発生する。 msgActイテレーション中のMsgBoxでパケット受信が発生、別関数でのmsgActイテレーション再発生が原因。(再現も完了)… https://t.co/0G9RELEoD0"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WM_INITDIALOGのコンテキスト内だと、MessageBox等のModalDialogを作っても、Modalにならない不思議(まるでオーバーラップ的な挙動)。 (さらに、PostMessageでわずかにDelayさせても回避できない様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetForegoundWindow API、Edge(UWP)内部での発行 と、一般プロセス発行で違う値が返るなぁ…Edge側Containerが余計なことをしているように見える。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これとは違うかもだけど、開発流行に追随だけで(著しい外部メリット出せてないのに)「俺ってイケてる開発者」と自意識だけ拗らせてる人、稀にいたっけ。」 / Twitter
R. ShioyaさんはTwitterを使っています 「学生さんが React で課題作ってて,「やたら色々ややこしいし何が良いのかわからない.jQuery ならもっと簡単なのに」みたいなこと言ってて,何年か前にこの記事みて笑ってたときと状況が同じだった.https://t.co/ug89AonP0U」 / Twitter
2016年にJavaScriptを学ぶとこんな感じ. このストーリーは、Circle CIに投稿された”It’s the… | by Hiroshi Takeuchi | Medium Japan | Medium
R. ShioyaさんはTwitterを使っています 「個人的にはべつに React とかを否定したい訳ではなくて,どこでもきちんと動く複雑大規模なものを作ろうとしたらああいうのが必要なのはわかるのだけど,それはそれとして学習の初期コストはかなりでかいよなぁと思う」 / Twitter

histric

histric-1

品川 高廣さんのツイート: "個人的には(よく出来た)Webフォームが一番ラクですね。Excelだとフォーマットが崩れたり、元からある文字が消えたり、入力内容がはみ出たり、TABキーで入力すべき所だけに移動出来なかったりする。プレーンテキストだと結局フォーマットを自分で作ったり余計な文章が必要だったりする。 https://t.co/dP4aE0CPZx"
いざてんさんのツイート: "まぁFirefoxが潰れてChromeだけになったらそれこそIE6の悪夢再来みたいなもんだしな……。(´・ω・`) / Latest topics > Firefox 57とかWebExtensions移行後のツリー型タブとかがクソとかゴミとか言われているのを見て思う事 - ou… https://t.co/WudNidXsXt"
Fadisさんのツイート: "いまどきのブラウザ、デバイスの加速度センサーの値をJavaScriptから読めて、加速度取れると正しく物理したくなるんだけど、JavaScriptでインタラクティブに物理はあまり現実的でなくて、シェーダで物理はWebGL2にならないと出力を浮動小数で取れなくてきびしい"
dynamis (でゅなみす)さんのツイート: "OSの通知で標準ブラウザの切り替えを求めてくるのが常識のようになってるのって変ですよね。 WindowsもMacもOS標準のブラウザに戻せと薦めてくるけど、非標準ブラウザもやり始めるとルール無用感が漂う。 WebにおけるOSのような検索エンジンでも切り替え薦めてくるしなー。 https://t.co/0Ox0Gr5SzD"
Brian Birtlesさんのツイート: "Now even Chrome is doing Windows notification spam 😕 https://t.co/oNl4aqo6DG"
Rockridgeさんのツイート: "「Chromeが登場した2008年にはブラウザの進化が止まっていて、イノベーションの阻害要因となっていたが、GoogleがChromeを世に投入してブラウザ技術が息を吹き返した」とする。先行するFirefoxがなかったことに……。 https://t.co/ckWda0sS7t"
すべてのウェブ・ネット関係者に読んでほしい! 及川卓也が解説する「ウェブの進化が支えるデータ社会」全文公開【iNTERNET magazine Reboot】 - INTERNET Watch
るくすさんのツイート: "バイナリアンたる者、任意のHTML5/ES6のコードを見たら瞬時にWebKit内部で使用されるC++クラス、メソッド郡を含めた動作説明ができねばならない。"
Rockridgeさんのツイート: "Pwn2Ownで脆弱性が発見されてから22時間未満でFirefox 59.0.1をリリースできた背景事情を説明した記事。複数のOSと90言語をサポートし、1800万行を超えるソフトウェアでこれを実現したところに意味がある。 https://t.co/l2J3r1xdI9"
愉快な生活送り太郎さんのツイート: "EPUBの標準化団体(IDPF)がEPUBのリファレンス実装として公開していたReadium-SDKがGPLからBSDライセンスになってた!!!!!!!!! ■BSD化のアナウンス https://t.co/NjlOQTKmzh ■github https://t.co/bj1AOe5J0E"
BSD Licensing for SDK
readium/readium-sdk: A C++ ePub renderer SDK
Rockridgeさんのツイート: "MicrosoftがWindows 10 April 2018 Update(build 17134)上でJetstream 1.1ベンチマークを用いて計測したところ、スコアが良いほうから順にEdge 17、Firefox 59、… https://t.co/P11N9CTWkf"
Hideyuki Tanakaさんのツイート: "みんな当たり前すぎて忘れてるかもしれないんだけど、ブラウザってURL入れてEnterを押すのは、プログラムをリモートサーバーから取ってきてサンドボックス上で実行する、というコマンドに他ならないわけなんだけども、案外そういう認識なかったりするのかなあ(´・_・`)"
K.Namba/ご注文は910ですか?さんのツイート: "HTML に従って描画されていく… "
Hideyuki Tanakaさんのツイート: "UI定義DSL… "
くいなちゃんさんのツイート: "「HTMLは構造を決め、CSSは見た目を決める」という原則がありますが、現代の多様な環境で凝った表現をすると無理があり、結局HTMLで見た目を作る黒魔術を使わざるを得ません。そんなときJavaScriptが「どうせ自分がHTMLもCSSも好き勝手に書き換えるから気にしないで!」と言ってくれるのが心強いです。"
Dai MIKURUBEさんのツイート: "ブラウザを立ち上げてアドレスバーにURL打ち込んでEnter押してからページが表示されるまでに (裏側で) 何が起こっているかわかる限り説明してみてください、前職の面接で何度か聞いたけど、やー、なかなか。そこからわかってそうなところを深掘りしたりするんだけど、全く掘れないことも割と"
Mikio Kiuraさんのツイート: "この質問面白そう!しかしエンター押したあと、キーボードがUSB接続だと仮定すると、エンターキーにつながるキーボード基盤の2つのポートが電圧Hになって、キーボードの中のUSBドライバを介してPC側にenterのキーコード13keypressイベントが送られます。そして…みたいに説明すると結構長くなりそう…… https://t.co/4Vhy0sr5Pj"
Kazuho Okuさんのツイート: "キー入力イベントがフォーカスのあたっているGUIオブジェクトに送られるにあたってどういうデータ構造通ってくるかとか、全く理解してないわー"
keiichiro shikano λ♪さんのツイート: "DNSとか経路探索は『プロフェッショナルIPv6』でいけるし、現代のWebに欠かせないSSL/TLSについても『プロフェッショナルSSL/TLS』があるので、ラムダノートの本でだいたいカバーできるのでは?(うそです。ブラウザのレンダリングに関するところは別の本でお願いします)… https://t.co/mfMjAYUePG"
渋川よしきさんのツイート: "ブラウザがつながるまでのやつ。ウェブ系の会社で期待されるであろう内容はReal World HTTPとかGoならわかるシステムプログラミングには書いたからな!よろしくな!DNSとか経路探索は書いてないからな!そこは別の本を読んでくれよな!"
Mantarohさんのツイート: "この間の Digital Publication Layout and Presentation のレポート。 https://t.co/j0CxtMNDpO Vivliostyle の村上さんのスライドが Vivliostyle を使った物だと言うのが感慨深い。 Pagination という痛いところを突かれて心苦しいけども…"
W3C Workshop on Digital Publication Layout and Presentation (from Manga to Magazines)
Kazuho Okuさんのツイート: "本当ならウェブブラウザのエコシステムにとって悲しいニュースだな。実質、市場にWebKit (Chromium) 系とMozilla系のたった2種類のレンダリングエンジンしか存在しないことになる… "

histric-2

Windows Centralさんのツイート: "Microsoft is building a Chromium-powered web browser for Windows 10 https://t.co/CloX43qdAc"
Microsoft is building a Chromium-powered web browser that will replace Edge on Windows 10 | Windows Central
Rockridgeさんのツイート: "Braveブラウザは一部のWebサイトでリーダーモードをデフォルト有効化することにより、高速化とプライバシー保護を実現できると主張。この機能をSpeedReaderと読んでいる。 / “SpeedReader: Fast and…” https://t.co/JpLjA0ysHp"
int $0x03@SNS部さんのツイート: "gnome3に地味な便利機能あったんだ。10進数でも16進数でも文字列選択して右クリックすると10進数と16進数での値とIEC 60027-2での表記が出る https://t.co/6MOfMRDVBP"
七誌さんのツイート: "VSCodeで全置換したとき、キャレットが動かないのが地味に便利だということに気付いた。"
アプリマーケティング研究所さんのツイート: "待ち時間が3倍になったのに、評価があがったエクセルマクロ。 A:処理中に砂時計を表示(2分)😟 B:処理を早回しでみせる(6分)😂 裏側で「何が起きているか?」を早回しでみせたら社内で絶賛された。体感時間が短くなったことと、プロセスの可視化による効果。 アリエリー教授の人生… https://t.co/7RfAB4vSLS"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
ドッグさんのツイート: "テキストベースの Linux デスクトップ環境すごい… テキストなので SSH でリモートから描画できる | ‘tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable ov… https://t.co/aQJeubNwUS"
tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable over SSH
Makoto Kato ︎︎さんのツイート: "IE6開発終わった時に、みんなAvalonやるから!ってことで開発チーム解散になったし、FlutterももともとChromeのメンバー多いし、なぜブラウザに飽きるとGUIフレームワーク作り出すのか"
Kunihiko Imaiさんのツイート: "UNIX の場合,改行コードとか行編集とかの typewriter 端末相当の機能はカーネル側で処理するけど,カーソル移動とか色とかの制御は curses ライブラリとか使ってユーザプロセス側で処理する. 歴史的理由なんだろうけど,今見るとキリが悪いよな."
Mantaray@Devさんのツイート: "RTLでもX軸方向は変わらないので、マウスイベント関連の実装がとても面倒なことに"
Kazuho Okuさんのツイート: "シェルのタブ補完、先頭一致だけじゃなくて中間一致も試すモードがほしい。git branch ... とか中間しか覚えてなかったりする"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyを初めて見た人から、「沢山のボタンやチェックボックスがあって、何をして良いのか分からない」と言われた。 そうかも。慣れきっていると気づかない視点は大事だ。 一方で現状UIに慣れた人にも違和感少な目で、エレガントに解決するのは、なかなか難しい。"
Nerry@さんのツイート: "実機でキー入力の反応が悪い。描画ロックのせいかな?"
Nerry@さんのツイート: "マウスは普通に動いてるしnoiz2bgがそれほど負荷高いわけでもないからキー入力だけレスポンス悪いのは不自然ϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロックが中途半端だったからspinlockに変えたら早くなったϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロック方法も悪かったけど1文字入力するごとに再描画必要な現在のコンソールの構造がそもそも悪い気がする"
mer2さんのツイート: "なにがどうやばいって、BlenderでモデリングしながらLooking Glassでモデリング中オブジェクトをリアルタイムに立体視で表示できちゃうんだよ。これはやばいやばいやばい。 #b3d… "
Manabu Uenoさんのツイート: "UIデザイン原則とUIデザインパターンを使えば、自然に高品質のUIを作ることができる。しかし次の事項にはデザイナーの創造力が必要で、これらがアプリの独自性となる。 ・オブジェクトをどのようなアレゴリーで概念づけるか ・オブジェクト一覧をどのような形式で示すか ・デフォルトをどうするか"
Manabu Uenoさんのツイート: "入力欄のラベルに「お名前」とか「ご住所」のように御の字をつけるのはおかしい。ソシオメディアでは、 UIはユーザーに帰属するものと考える。ユーザーが自分の意思を示すものだから御の字は不要、とクライアントに指摘している。しかしこの感覚を持たない人にわかってもらうのは難しい。"
Manabu Uenoさんのツイート: "多くの事業者は自分たちのシステムを自分たちに帰属するものとしてデザインしようとする。それをユーザーに使ってもらう姿勢だから、UIラベルに「へりくだり」を持たせようとしてしまう。その結果UIの主体が曖昧になる。ひいてはインタラクション全体がタスク指向になり、むしろ傲慢になっていく。"
Kazuho Okuさんのツイート: "ウェブブラウザがどのようにリソースをダウンロードするか(そしてどう最適化すべきか)、詳細な解説 / “Resource (pre)loading” https://t.co/1I5H6mfYu0"
Resource (pre)loading

histric-3

渋川よしきさんのツイート: "描画エンジン(Skia)が即時モード、レンダーツリーは保持モード、DOMは保持モード、仮想DOMの生APIは即時モード、仮想DOMのコンポーネントは保持モード。最近、こういう多層構造がコーディングのシンプルさと性能の両立に重要なんだろうなって気がしてる。"
ゆるsyuu1228△さんのツイート: "ブラウザのタブ大量に開いとくとなんとなく24CPU消費してくれんかね"
Makoto Kato ︎︎さんのツイート: "Gecko (w/ Stylo)だとrestyleでもう使ってる。"
Mantaray@Devさんのツイート: "left / right 多用しているアプリは RTL 環境だと致命傷ということがよくわかった。"
ぽんこつ@本骨システムさんのツイート: "Single Page Applicationだとありがちだとおもうんですが、ブラウザで開いて、ブラウザ側は読み込みが完了している表示になっているにもかかわらず、別リソースの読み込み待ちで一瞬白くなることがあって、あれ良くないんじゃないかとか"
tkrさんのツイート: "そのうちhtmlレイアウトエンジンをwasmにコンパイルしてcanvasに描画する人とか登場しそう"
tkrさんのツイート: "html in html"
tkrさんのツイート: "s/レイアウト/レンダリング"
品川 高廣さんのツイート: "ブラウザ標準の「戻る」「閉じる」操作で対処可能な「ブラクラもどき」より、「右クリックは禁止です」というポップアップを出すサイトや、「戻る」「進む」操作で正常な画面遷移ができなくなる等冪性のないサイトなど、ブラウザ標準の操作を妨害するサイトの方が遥かに有害。"
dynamis (でゅなみす)さんのツイート: "EdgeがまともなUIを備えるようになったらWindowsではEdgeからChromiumに乗り換える意味って何になるんだろう。"
弩.net@Coqやっていきさんのツイート: "そのOSの標準的なダイアログの出し方・UIガイドライン・認証・バックグランドタスクの投げ方を踏襲しているアプリは信頼感が高い。逆に謎カスタマイズしているアプリは不審。そして行政や日本の大企業が出して来るアプリはだいたい後者。"
弩.net@Coqやっていきさんのツイート: "明らかにOSやネットワークプロトコルやその他各レイヤーの機能を活かさず筋の悪い提案を出してきた人を見たら「ああ、この人は何にも知らずに喋ってるんだな」って判断するよね。普通。"
弩.net@Coqやっていきさんのツイート: "典型的な例が、行政や大企業が出してくるスマホアプリは絶対OSの標準UIコントローラを使ってないんだよ。標準UIが完璧とは言わないけど、その辺の素人の考えよりかはよっぽと、タップ・フォーカス・キャンセル・disableの視覚効果が練られてるんだよ。特に理由がないならそのまま使うべきなんだよ。"
Masaru Iritaniさんのツイート: "Outlook で電子メールをカレンダーにドラッグ アンド ドロップすると簡単に予定を作れることを知ってから、作業依頼の電子メールはすぐ予定にして時間を確保するようにしています。"
Fadisさんのツイート: "Wio: Plan9のウィンドウシステムRioをWaylandで再現したものらしい。Rioは個々のウィンドウを分離された名前空間で処理するが、WioはWaylandのCageを使ってこれを再現。Rioはウィンドウに対する操作をファイル操作で行えるが、WioはFUSEでこれを再現 https://t.co/QhCoedseWi"
Wio: Plan 9's Rio Windowing System Re-Implemented As A Wayland Compositor - Phoronix
島鉄雄さんのツイート: "GTK4 で GSK(GTK Scene Graph Kit)が導入されたけど、どの程度のものか分かってなかったけど、スクショを見たら本当にシーングラフになってたw GTK Node Editor とかたまらん! 今までも階層構造にはなってたけど、より明確に分離されたって事だね。 https://t.co/kmfSky3OvN"
GTK 3.96.0 – GTK Development Blog
chikoskiさんのツイート: "WebAssemblyコンパイラの作り方。オレオレ言語を処理して、WASMを出力するコンパイラを作っている。一般的なコンパイラの作り方の説明になっているので、そっち方面の勉強に良さそう。https://t.co/nEJFyiZOTz"
Build your own WebAssembly Compiler
chikoskiさんのツイート: "興味深かったのはグラフィックスの扱い。JSで実装された描画用の関数群でグラフィックスの操作をするのが、よくある手法なのに対して、このコンパイラでは線形メモリの一部をVRAMとして扱うことで描画する。もしかしたら一括転送できて、パフォーマンス的にもいい手法なのかもしれない"
島鉄雄さんのツイート: "最近のLinux用GUIアプリはWayland上で動くように作られている(GTK+3とか) 古いX11アプリもWayland Clientとして実装されているXWaylandを通して動かす事が出来る 要するに描画を担当しているWayland Compositorの Windows版があればWSL上で動く全てのGUIアプリを動かす事が出来る。 誰か実装してくれ!… https://t.co/oK1IzFAU8z"
島鉄雄さんのツイート: "その図を見ると分かるように、Wayland CompositorがLinuxに激しく依存してるように見える。 実際はWayland Protocolとして分離されててUnix domain socketで転送してるだけだから、Compositorはプラットフォームに関係無く実装出来るはず。"
島鉄雄さんのツイート: "Linux上で動くWayland Compositor自体はマイナーなものまで含めると山ほどあるけど、Windows版が無いのは、それらがWayland Compositorのリファレンス実装を元に作ってて、それが激しくLinuxに依存してるからだろうと思われる。 細部までちゃんと理解してフルスクラッチから作る必要があるんだよね。"
島鉄雄さんのツイート: "emacs-develで--with-cairoはもうexperimentalじゃないっていうのがあったけど、WaylandにはXにはあったライン等の描画APIが一切無いので、自前で描画する必要があるけど、それをcairoに投げる事で相当楽が出来る。 後はウィンドウ周りのコードをWaylandのAPIを使う事でWaylandで動くようになるはず。"

histric-4

Taku KudoさんはTwitterを使っています: 「chromebook + remotedesktop が快適すぎてもうこれでいいんじゃないかと。ローカルにログインすると同時にほぼ透過的にリモートにつながるし、セッションが保持されているので作業が途切れない。」 / Twitter
FadisさんはTwitterを使っています: 「Vulkanの実装がVK_EXT_direct_mode_displayをサポートしている場合、ウィンドウシステム上でVulkanのレンダリング結果を表示するのではなく「ディスプレイ丸ごとよこせ」が出来る。奪い取ったディスプレイはウィンドウシステムの管理から外れてどんなフォーマットで通信するか自由に選べるようになる」 / Twitter
ゆきさんはTwitterを使っています: 「W3CにDanmakuってドキュメントがあったけど、「弾幕のユースケースと要件について」ってマジ? https://t.co/67BJ2s1Iqk https://t.co/5gUlIONRqc」 / Twitter
弹幕规范
島鉄雄さんはTwitterを使っています: 「GUI は好きだが、マウスは嫌いだ。 コマンドラインじゃなくて GUI で出来るならそっちの方が絶対良いけど、イコール、マウスを使うではない事だけはアプリ制作者に言いたい。 要するにリッチな GUI をキーボードだけでサクサク動かせれば最高。」 / Twitter
島鉄雄さんはTwitterを使っています: 「Firefox も Vimium (Vim キーバインドで Web ページが読める)を使って、ほぼキーボードだけで操作してる。 Editor は Emacs だけど、ブラウザのキーバインドは Vim で快適。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「BTRONの実身/仮身モデルとWindowsのOLEって似てるんじゃないかと思って検索したらこんな記事があった。 "TRON Project と BTRON の概要" https://t.co/l3CGMOBCO6」 / Twitter
TRON Project と BTRON の概要
社会人でもOSを作りたいさんはTwitterを使っています: 「いやー,先行研究の調査って大事だなあ。OLEが結構やりたかったことに近いぽい。BTRONの実身/仮身モデルを借用したようなアーキテクチャ。」 / Twitter
杉本啓さんはTwitterを使っています: 「昨晩、渡辺さんとのんで、この図の左がPOA、右がDOAなんです、という話をしました。 POA:プロセス中心アプローチ DOA:データ中心アプローチ 設計を真剣に考える人々は、COBOLでコードを書きながら、今の大多数のエンジニアより洗練された設計観を築いていたんですね。 https://t.co/FBRkCJezTK」 / Twitter
Manabu UenoさんはTwitterを使っています: 「ユースケースにただ対処するだけだと、全体の情報量はデザインの分だけむしろ増えてしまう。顕在化した問題を縦に貫くことで、潜在的な要求への準備ができる。 https://t.co/WhhLr7Nwo9」 / Twitter
Manabu UenoさんはTwitterを使っています: 「これはりんご皮むき機と果物ナイフの話と同じ。 https://t.co/PYyI6hXfvr」 / Twitter
杉本啓さんはTwitterを使っています: 「DOAの人々が、設計に関する経験・知識が継承されなかったと嘆くのは、ある意味、もっともな嘆きではあるんです。言葉が違うから伝わらないのが惜しい。POAは今の言葉で言うならユースケース中心、DOAはアーキテクチャ中心なんですね。」 / Twitter
杉本啓さんはTwitterを使っています: 「渡辺さんはじめDOAの人がOOを批判するのは、OOでの設計が、ともすればユースケース中心になってしまっていることに起因する面が強いと思っています。OO全体への批判としては、それはあたらないと思いますが、OO支持者によって現に実践されている設計の多くに対しては妥当な批判でしょうね。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「あー、ソースコードもこういう事やな。悪い意味でハッキーな人は左側のアプローチしかやらない。」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ① タブをブラウザの上下ではなく左右に置ける(横長ディスプレイを有効活用&タブが増えても幅が変わらずタイトルが読みやすい)」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ② タブグループをツリー構造で管理できる(調べものした時に検索結果の各ページをホイールクリックでツリーにぶら下げたり、派生した調べ物でツリーを分けられる。ツリーはまとめて閉じたりブックマークも可能)」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「OCaml 用並行 GUI ツールキットを作った.各 UI 部品は自律したプロセスとして実現されていて,チャネルを経由して通信しあうことで協調し全体として UI を構成する.通信部分は ocaml-csp を使用.バックエンドは GTK+ または Direct 2D. https://t.co/l2oNniLM7K」 / Twitter
hatsugai/Guedra: Concurrent GUI toolkit for OCaml
hatsugai@PRINCIPIAさんはTwitterを使っています 「図面を作る基礎にできる汎用の Draw widget を作った.ドメイン特化図形言語を定義し描いた図面をデータ構造化して処理するというよくある用途向け.UI から処理まで OCaml で統一できる. 図形オブジェクトは関数で表現しており draw widget とは CPS で通信する. https://t.co/csJj3PC6s1」 / Twitter
hatsugai/Guedra-draw: Draw widget for Guedra
hatsugai@PRINCIPIAさんはTwitterを使っています 「というわけで,1つはプロセスでチャネル通信,もう1つは関数で CPS です.楽しそうに遊んでいるグループから少し離れたところで,ちょっと変わった一人遊びをしてる子供みたいなものです.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「Scheme 版では R6RS record の継承を使ってオブジェクト指向システムを作って,その上で図形を表現してた.図形オブジェクトの実現と継承は相性がいいので,その点ではそちらの方がよかったけど,CPS にはしなかったので呼び返し問題には気を使わなければならなかった.」 / Twitter
島鉄雄さんはTwitterを使っています 「lsp-mode が重い原因は、単純にありとあらゆる処理が非同期になってないから、どこかで UI をブロックしてしまうからなんだよね。 取り敢えず結論としては、UI に絡むプログラム(含むテキストエディタ)を作る場合、libuv かそれに類する処理を実装して、あらゆる API を非同期処理にしないと駄目だ。」 / Twitter
島鉄雄さんはTwitterを使っています 「・コードの重複を避ける(ただし過度な統合は悪) ・if 文を極力書かない ・実行タイミングが違う関連処理は状態遷移で纏める という感じで咀嚼した。 しかし、React のフックは Emacs に昔からあるフックとほぼ同じもんだな。(GUI ライブラリの signal とかと一緒) (続く) https://t.co/btcb0DlTQH」 / Twitter
inductorさんはTwitterを使っています 「神資料だ https://t.co/HQ6gQ9NkkW」 / Twitter
オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling - Speaker Deck

histric-5

島鉄雄さんはTwitterを使っています 「更に Emacs には advice という強力な機能があって、これで全く関連が無い他人の書いたコードを、システムの奥深くの機能に追加や変更が出来る。 (ちなみに CLOS ではメソッド結合で同じ事が出来る) advice が有ればコンポーネントとか高尚な概念が無くても、ゆるーい結合で何でも出来るって事だな。」 / Twitter
お気楽 CLOS プログラミング入門
Common Lisp Object System - Wikipedia
島鉄雄さんはTwitterを使っています 「この場合は、ライブラリのレベルでボタン押下を trigger と press に分けて保存するようにすれば、それほど難しい問題ではなくなる。 trigger → 前のフレームに離されていて現フレームで押された(次のフレームも押されてたら press へ移行) press → 前のフレームから押されっぱなし https://t.co/TxGNxAEEXw」 / Twitter
Kumagai, MさんはTwitterを使っています 「組込プログラミングの課題として、   「上上下下左右左右BA」の判定 というのは、わりとよい題材だと思う。 ビットの入出力くらいあれば(ミリ秒時刻変数もほしい)、あとは言語固有の知識をあまり必要としない、現実を見据えたアルゴリズム、の話になるから。」 / Twitter
FadisさんはTwitterを使っています 「The Qt Companyが、短期的なキャッシュが必要になった為Qtの将来のバージョンではオープンソース版を廃止するかもしれない、とした事をうけて、KDE及びQtを利用するオープンソースソフトウェアの開発者達がQtをforkする方法について議論を始めている、という話 https://t.co/z1KWjdC8HK」 / Twitter
More Open-Source Participants Are Backing A Possible Fork Of Qt - Phoronix
FadisさんはTwitterを使っています 「尚Qtが過去にforkした事例としては、KDE3をforkして現代のLinux環境でも使えるように保守し続けているTDEの人達が、KDE3が依存しているQt3を使い続けられるように独自に開発を続けているTQtが存在する」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語がわからなくても、オフィシャルのこの辺の情報はハンズオン的に追っかけていくだけでも基本はわかるんじゃないかと思います。次のステップは、とりあえず入門書系ですかね。2019年後半以降に出てる日本語の本ならとりあえず最新の情報にはキャッチアップできるかと。 https://t.co/I7y6GzQN5Y」 / Twitter
Write your first Flutter app, part 1 - Flutter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語でよければ、最初のチュートリアルの続編みたいな感じで、こういうのもあります。カッコいいレイアウトをガシガシ作っていける楽しさがわかるとモチベーションになると思います。 https://t.co/ut7etEzK99」 / Twitter
Building layouts - Flutter
FadisさんはTwitterを使っています 「ソニーが組込機器にリッチなGUIを乗せる為に、Flutter(Google製のGUIツールキットで、主にスマートフォンやFuchsiaで使われる)をWayland上で動くようにした、という話。Qt、GTK、Webkit等いろいろな選択肢を試したが、これが丁度いい綺麗さ、開発の容易さ、軽さだったらしい https://t.co/3uIQ0hJwb6」 / Twitter
Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix
クチコミのない大陸さんはTwitterを使っています 「マウスポインタとかいう思考停止と妥協の産物が高精細なディスプレイで見つけにくくなって廃れるの、技術の勝利なので無駄な機能で延命を図るのをやめ、素直に新しいパラダイムを作って普及させて欲しい」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Javaや.netのようなクソデカランタイムもつらければ、dockerやsnapやflatpakのような全部入り環境も辛いし、Electronみたいなブラウザー組み込みもつらいし、本当に世の中は根本的な問題解決を取らずに場当たり的な対処出回っている。」 / Twitter
kuremaさんはTwitterを使っています 「@masayuki_koba それはXamarinの標準的な仕様のはずです。 dotnetで動いている都合上ランタイムを全部同梱していて、拡張子はdllです。 容量がでかいってのはXamarinのいくつかある欠点の一つですね。 Blazorとかだとブラウザにも大量のdllが落ちてきます。 別にWindows用のバイナリが添付されてる訳ではありません。 https://t.co/aczzSXrTsw」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「根本的な問題解決とは、ランタイムはシステムが管理する。わざわざ依存全部zipにまとめて依存問題解決とはしない、ブラウザーは組み込まない。」 / Twitter
FadisさんはTwitterを使っています 「多くのソフトウェアがQt6に移行していない中でQt5のオープンソース版の開発が終了した事を受けて、Qt5を恐らく最も使い込んでいるKDEプロジェクトが「Qt5のオープンソース版の最後のバージョンに対するセキュリティフィックスとバグフィックスの提供」を開始したらしい https://t.co/TmYIxQrhRq」 / Twitter
KDE Now Maintaining Their Own Set of Patches For Qt 5 - Phoronix
Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「QtはAndroid対応がやばい。Qt6は未実装モジュールが多くて移行できないしQt5はこのままほっとくとSDK30への対応期限迎えてアプリがリリースできなくなる。この辺は多分KDEでもメンテできない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「昔はスクロール中はバーだけ動かしてたのが、やがてスクロール中に再描画求められるようになって、がんばって描画速度上げてたのが、今や120Hzでの(欠落部)再描画が求められる時代なのすごいなーと思うロートルです」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「120Hz の iPhone 13 Pro のぬるぬる画面に見慣れると、他のiPhoneの画面がガクガクしてて差を感じる。特にスワイプジェスチャーとかのインタラクション。」 / Twitter
Naoki Hada 羽田直樹 🍵さんはTwitterを使っています 「@niw 高周波数のモニターに慣れると、戻れないですよね。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「スクロールバーはなぜウインドウの左側ではなく、右側につくようになったのか? ユーザの視線はよくウインドウの左端を見ているので、スクロールバーが右にあると視線が動いてしまう。答え「スクロールバーが左にあると、右手でタッチパネルをさわったときに手がかぶるから」 https://t.co/i0VVdw5rjZ」 / Twitter
Hands across the screen
FadisさんはTwitterを使っています 「xorg-serverからxdmxを削除する提案がなされているらしい。xdmxは複数のホストで実行されているXサーバを繋いで、沢山のホストとディスプレイで巨大なスクリーンを作る機能で、2011年にOpenGLを使うとクラッシュする不具合が報告されてから修正されないまま放置されていた https://t.co/vbKcC9t6TU」 / Twitter
X.Org Looks To Drop DMX After Being Rather Broken For ~14 Years - Phoronix
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「UIデザインにおける "1+1=3のルール": 2つの要素(1+1)が互いに近い距離にあると、ユーザにはその中間の隙間が「3つ目の要素」に見えてしまい、認知的な負荷を増加させ、判断力を低下させる。 https://t.co/4DdQmMDBMG」 / Twitter
1 + 1 = 3: Explaining Busyness and Background Noise on Websites · Jens Oliver Meiert

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「UIとは文字通りユーザと技術者の対話である。通常これはユーザの労力のほうが軽くなければならないが、軽すぎてもいけない。UIはユーザをempowerするものでなければならないし、自分が安定していると思わせねばならない。また、行動の結果は容易に予測可能でなければならない. https://t.co/DYinhRrEEL」 / Twitter
Make me think! – Ralph Ammer
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「現在、世界には約8億人の文字が読めない人々 (illiterates) がいる。彼らがどうやって生活必需品である携帯電話を使っているかを調査した研究 (2012年)。被験者は数字は読めるので、おもにアイコンや文字の位置を頼りに (普通の人と同じスピードで) ナビゲートする。 https://t.co/auuZe3N0Vy」 / Twitter
(PDF) Text is not the enemy: How illiterates' use their mobile phones

エディタ

その他

その他

ed(1) is Turing-Complete – *nix Windows
最初のアウトライナー
Outliners & Programming
技術文書
What I learnt from coding a text editor in C
「Skype」のメッセージからタスクを生成、“Microsoft To-Do”へ直接登録可能に - 窓の杜
ClangdでC++ソースコードを補完する際にコンパイルオプションを指定する方法 - uchan note
世界を劇的に変えた大発明の1つ「スプレッドシート」誕生秘話 - GIGAZINE
「CKEditor 5 v16」リリース、コードブロックのサポートや制限モードの導入が行われる | OSDN Magazine
Pandocで索引をどう作るか - golden-luckyの日記
抽象データ型を自作する - golden-luckyの日記
matsumoto19.pdf
2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE
TwitterがiOSアプリ向けに新しいオープンソースのテキストエディタAPI「Twitter Text Editor」を発表 - GIGAZINE
iOS版「Twitter」アプリのテキスト編集コントロールがオープンソース化、“GitHub”で公開 - やじうまの杜 - 窓の杜
「記事中の誤字を教えてくれるエディタ」をイギリスの新聞社が開発 - GIGAZINE
vi.1
CodeMirror - Google 検索
世界のプログラミング言語(37) 達人に愛され30年周年Vimを支えたVimScript | TECH+
JetBrains、新たなテキストエディター「Fleet」を開発 | TECH+

KeyboardEvent

MS

なかのん&マジックさんのツイート: "そうだ、 https://t.co/xaBjzAiLxI を一度、アップデートしておかないとな。"
KeyboardEvent.key mapping of each browser - Google スプレッドシート
なかのん&マジックさんのツイート: "ラフに調べて見ても、Edge、今回の大型アップデートでKeyboardEvent.keyの値が改善してるものの、まだいくつかアレやわ……バグ報告しとかんと。"
なかのん&マジックさんのツイート: "というか、なんで、Travisが居てるのにこんなことになるんだよ。"
なかのん&マジックさんのツイート: "UWPのイベントモデルを全く知らんけど、デスクトップアプリで受け取れてた仮想キーコードが受け取れなくなってるとも思えんしなぁ。"
なかのん&マジックさんのツイート: "それにしてもまだ、EdgeはKeyboardEvent.codeに対応してないのか。これ、かなり簡単なんだけどなぁ。"
なかのん&マジックさんのツイート: "それともUWPでscancodeが取れなかったりすんのかな?"

なかのん&マジックさんのツイート: "よくよく調べてみたら、Safariも既にKeyboardEvent.keyとKeyboardEvent.codeをサポートしてるやん。なんで、未だにKeyboardEvent.keyCode使ってるサイトが多々あるんだ?"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeで、記号の入力キーを見るのだけは本当に頭おかしいのでやめていただきたい。真面目に対応しようとすると、各ブラウザの各OS版で、しかも各キーボードレイアウト毎に対応しないといけないのが昔から分かってる。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeの値に意味がそもそも無いので、各ブラウザが各OSで都合の良いようにマッピングしてるだけなので、UA文字列なりを確認してブラウザごと、OSごとに処理を分岐させるしかない。なので、ブラウザ側で他のブラウザにあわせた値に今更変更すると、既に存在してるアプリを壊してしまう"
なかのん&マジックさんのツイート: "というわけで、こいつの互換性に問題ありまくりなのはブラウザ開発者側も分かってるから、標準仕様ではkeyCodeはちゃんと定義されず、keyとcodeという新しい属性が、その値のリストも含めて新たに標準仕様としてまとめられてる。"
なかのん&マジックさんのツイート: "よく誤解されてるけど、勧告に至ってるKeyboardEventの仕様って2018年2月になっていも未だに存在しないからね。DOM Level 2 Eventsでも未定義: https://t.co/RnXVtM1buh"
Document Object Model Events
KeyboardEvent.keyCodeとは何か - WebStudio
KeyboardEvent.keyCodeとは何か - WebStudio
vyv03354さんのツイート: "> Mozillaのソースコードを公開した当時の履歴は既に残っていませんでした。 https://t.co/sPQl5E0cai… "
mozilla-central-cvs: dom/public/idl/events/nsIDOMKeyEvent.idl@2df74fb33691 (annotated)
なかのん&マジックさんのツイート: "おお、ありがとうございます。cvsのリポジトリのコピーあったんですね。助かりました。… "
UI Events KeyboardEvent key Implementation Report
UI Events KeyboardEvent code Implementation Report
なかのん&マジックさんのツイート: "Firefox本体内で、たまに、 if (event.key === " ") { // something for spacebar } ってコードを見かけるけど、これたぶん間違ってて、 if (event.code == "Space") { // } じゃないといけない。確かASCIIの空白以外を入力するレイアウトがあったはず。"
なかのん&マジックさんのツイート: "スペースキーをショートカットキーとして処理する場合、普通の文字キーと違って、物理位置の確認で普通は問題無いはず。(AltGr+?)スペースキーをTabとして使うという、超変態レイアウトもあったように思うけど、あのレベルは無視しても良いと思う、さすがに。"
なかのん&マジックさんのツイート: "今やってる事: ・keypressイベントをnon-printableキーや、キーコンビネーションでは発火しないようにする ・keydownとkeyupイベントを、IMEの未確定文字列があっても発火するようにする Web開発者さんの負担を減らすために同時投入が望ましいと考えてます。 #もずでぶ"
なかのん&マジックさんのツイート: "ようやくここまで来た。 / Intent to stop dispatching "keypress" event for non-printable keys and key combinations in Nightly and early Beta - Google グループ https://t.co/oYfGCNQBBb #もずでぶ"
なかのん&マジックさんのツイート: "間もなく、Nightlyとearly Betaのデフォルト設定を変更して、keypressイベントの発火を止めますが、"dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content"をtrueに変更すれば今すぐテストできますので、それで問題のあるUIやサイトを報告してください。 #もずでぶ"
なかのん&マジックさんのツイート: ""keydown"と"keyup"イベントを未確定文字列がある場合にも発火するように(リリース版では)同時にやるんだけど、こっちはたぶん、そんなにバグが無いと思うんだよな。たぶん、あっても、イベントリスナ内で、KeyboardEvent.isComposingをチェックするだけで済む。 #もずでぶ"
なかのん&マジックさんのツイート: ""keypress"イベントの発火中止は、Netscape時代からの(Geckoの最初期からの)実装仕様を変更しちゃうんで、影響範囲が大きい。また、chrome documentとか、system event groupでは引き続き発火してるんで、ソースコードから単純に検索してバグる場所を探し出せなくて厳しい。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、keypressの発火を止める件って、keypressイベントの動作をUI Eventsの仕様策定中に、WGの編集者が、Firefoxの動作だけ違うから、それ以外を標準ってことにしてしまおうっていうひどく乱暴な話だったのに、それを盾にしてくるとはなぁ。"
なかのん&マジックさんのツイート: "私は、もう歴史的な問題が積み上がりすぎだから、定義せずに、MAYで参考情報入れとけば良いやんってスタンスやったんやけど。そもそもFirefox以外のブラウザの動作も完全に同じじゃないし、Chromeもプラットフォームによって動作違うし。"
なかのん&マジックさんのツイート: "本当にUI文字列見ないとクロスブラウザなコードを書けないパターンって、KeyboardEvent.keyCodeぐらいのものだと思うんだけど、他でもあるのかなぁ。keydownでハンドリングすべきイベントを、わざわざFirefoxの場合にだけkeypressでハンドリングしてるという理由が想像つかない。"
Non-printable keys will soon stop firing keypress event (Affecting) | Firefox Site Compatibility
なかのん&マジックさんのツイート: "未だにOSの違いを見てるクソサイトあるのか。KeyboardEventでよほどセンシティブなことやるとき以外は、PCかモバイルかぐらいしか見分ける意味が無いはずなんだけど。"
KeyboardEvent.keyCodeとは何か - WebStudio
JSer.infoさんのツイート: ""KeyboardEvent.keyCodeとは何か - WebStudio" https://t.co/MdNT9glaPb => https://t.co/QkP7hNkIJj KeyboardEvent.keyCodeの歴史や実装について。 keyCodeはOSやブラウザ間で問題があり標準化もされていないため、keyやcodeを代わりに使うべきという話。"
uehajさんのツイート: "KeyboardEvent.keyとKeyboardEvent.codeは、 KeyboardEvent.keyCodeと違って、数値ではなく、文字列である / “KeyboardEvent.keyCodeとは何か - WebS…” https://t.co/xUIVeyCVQf"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeでググったりすると、KeyboardEvent.keyと、KeyboardEvent.codeの解説も書かなきゃいけないなって気がしてきてる。Reactのissueなんか読んでも、不信感しか湧いてこない。"

Range

azuさんのツイート: "見てる: "range - Web API インターフェイス | MDN" https://t.co/1T4tv5Eq6t"
range - Web API インターフェイス | MDN
なかのん&マジックさんのツイート: "@azu_re DOM Rangeの生成・初期化コストの高さは各所で問題になってるので、速度には注意が必要です。"
なかのん&マジックさんのツイート: "DOM Rangeの生成・初期化、あとは、大量にインスタンスが存在する時のDOMツリーの変更速度の低下は深刻。Quantum Flowでは、ここの速度の多少の最適化と、変更回数自体を減らしたりというのを、エディタ周りでは行ってる。"
なかのん&マジックさんのツイート: "提案されてるStaticRangeで多くの場合は事足りるハズなんだよな。"

Web Components

Custom Elements

Firefox Nightlyさんのツイート: "Custom Elements v1 are enabled in Nightly! https://t.co/wccEYEExji - MDN documentation and demo: https://t.co/K17kLhmV2f"
Custom Elements - Web Components | MDN
Rockridgeさんのツイート: "Fx59:予定通りNightlyチャンネルでCustom Elements v1がデフォルト有効化された。脱XBLに向けても前進となる。 / “1406825 - [meta] Enable Custom elements v1…” https://t.co/CzPOswCEDP"
W3C HTML 5.3にCustom Elementsが統合された - 水底の血
Using custom elements - Web Components | MDN

microformats2

Rockridgeさんのツイート: "Fx50:microformats2対応の新パーザに一本化するため、旧パーザを削除。 / “1254367 – Remove old microformats parser now that we have the new mi…” https://t.co/1VgbEQWChZ"

JSON-LD

schema.org 日本語訳 - ホーム
schema.org構造化データマークアップのシンタックスにJSON-LDという選択 | HTML5Experts.jp
Home - schema.org
Silo Buster
JSON-LD と Open Graph で構造化メタデータ対応 | blog.jxck.io
ついに始まった、Google AMP(Accelerated Mobile Pages)を試してみよう! (1/2):CodeZine(コードジン)
やっぱりWebComponents+JSON-LDがこれから熱くなるわけです | WP-kyoto
JSON for Linking Data Community Group
JSON-LD Guiding Principles, First Public Working Draft | W3C Blog
First Public Working Drafts: JSON-LD 1.1 Syntax, JSON-LD 1.1 Processing Algorithms and API, and JSON-LD 1.1 Framing | W3C News
JSON-LD 1.1
JSON-LD 1.1 Processing Algorithms and API

Polymer

Web Componentsを簡単・便利にするライブラリ「Polymer」を使いこなそう | HTML5Experts.jp
Web ComponentsはじめるならPolymerで | apps-gcp.com
Welcome - Polymer Project
いまさら聞けない Polymer 入門 - Polyfills は Web Components の夢をみるか - Librabuch
Polymer と Web Components の違い9選(もとい Polymer の便利機能) ::ハブろぐ
Web ComponentsとPolymer【解説編】 - Qiita
WebComponentsとPolymerコード比較 - Qiita
Polymer を導入して Web Components による革命に参加する
Web ComponentsやPolymerについてまとめる – Simple IT Life
Polymer Japan Meetupに出演しました - EagleLand

webcomponents.org
VirtualDOM Advent Calendar 2014 - Qiita
リアルな DOM はなぜ遅いのか - steps to phantasien
JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
Web Components | HTML5Experts.jp
X-Tag ★ Web Components
web.mit.edu/freebsd/head/sys/contrib/dev/acpica/components/namespace/nsinit.c
skatejs/skatejs: SkateJS is a library built on top of the W3C web component specs that enables you to write functional and performant web components with a very small footprint. It focuses on size, performance and is built around a functional rendering pipeline.
riot - デザイナはWeb Componentsに夢を見るのか - Qiita
Shadow DOM 101 - HTML5 Rocks
2017年のWeb Components:新春特別企画|gihyo.jp … 技術評論社
コンポーネント化: Web のために生まれ変わった従来の設計プラクティス | Microsoft Edge Japan
Microsoft Edge と Web コンポーネント | Microsoft Edge Japan
Web Components 周辺の仕様とか 2017年秋 - EagleLand
連載 | 基礎からわかる Web Components 徹底解説 〜仕様から実装まで理解する〜 | HTML5Experts.jp
Web ComponentsベースのUIライブラリ「Brick」をMozillaが公開 | HTML5Experts.jp
Web Componentsが変えるWeb開発の未来 | HTML5Experts.jp
Web Componentsについて気になること、泉水さんに全部聞いてきました! | HTML5Experts.jp
渋川よしきさんのツイート: "WebComponentはそのままでいいから、InnerHTMLみたいな感じで、内部状態を含めたそのままJS無しで再現可能なDOM/CSS片を取り出す、みたいなものが作られないとつらそうだなぁ、というお気持ち。"
Web Components を本番投入する(2018年春) - EagleLand
R.I.P. Web Components v0 - EagleLand
渋川よしきさんのツイート: "Shadow DOMのPolyfillのShadyDOMを使ってSSRというのはどこかで見た。ただ、Polyfillと仮想DOM同時に使うと更新うまく行かないのは確認済み。なので、ブラウザ固定できる環境以外はまだ無理かなって。 : え、まだWeb Componentsを未来の技術だと思ってるの? https://t.co/yns14WSEYV"
え、まだWeb Componentsを未来の技術だと思ってるの? - Speaker Deck
Rockridgeさんのツイート: "最近のWeb ComponentsはCustom ElementsとShadow DOMにES Modulesが加わったものが主流であり、HTML Templatesは直接使わず、HTML Importsは非推奨になっているとのこ… https://t.co/8m0tDBvTTr"
Web Components のリアル/ Realistic Web Components - Speaker Deck
lit-html 入門と lit-html だけで作る Todo アプリ - Qiita

Extensible Web

The Extensible Web Manifesto | Extensible Web Community Group
extensibleweb/manifesto: The Extensible Web Manifesto
manifesto/README.ja.md at master · extensibleweb/manifesto
Extensible Web Manifesto
Extensible web
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る! (前編)─HTML5は問題だらけ? | HTML5Experts.jp
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る!(後編)─技術の進化は必要か? | HTML5Experts.jp
Webの未来を議論!「Extensible Web Summit Berlin」イベントレポート | HTML5Experts.jp
開発者によるWeb標準化を可能とする「Extensible Web」とは? | HTML5Experts.jp
Extensible Web、WebAssembly、ORTCなど、なぜいまWeb標準は低レイヤへ向かうのか - Publickey
Extensible Web の夜明けと開発者が得た可能性の話 - Block Rockin’ Codes
Extensible Web を支える低レベル API 群 - Block Rockin’ Codes
[フロントエンド] The Extensible Webという考え方 - YoheiM .NET
Webエンジニアはどれだけ「Extensible Web」に興味あるか - albatrosary's blog

DOM

W3C

Language Bindings for DOM Specifications
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model (DOM) Specifications
IDL Definitions
IDL Definitions
IDL Definitions
Document Object Model (DOM) Level 2 Core Specification
Document Object Model (DOM) Level 3 Core Specification
(メモ)W3C DOM 4.1、勧告候補への移行のコンセンサスが取れず遅延する - 水底の血

本の虫

本の虫: DOM mouse eventの座標がカオスだ
本の虫: DOM level 3のマウスイベントにおけるカーソル位置の詳細
本の虫: ブラウザの座標再び

Twitter

Rockridgeさんのツイート: "Shadow DOM v0の知識がある人向けに、v1がどのような点で違うのかを実例付きで示したガイド。 / “What's New in Shadow DOM v1 (by examples) — [Dev] hayato.io” https://t.co/KBZff1EHnG"
Jxckさんのツイート: "ShadowDOM の v0 も OriginTrials だったらよかったのかなと一瞬思ったけど、そしたら使われず v1 への改善も無かった可能性があるかな。 OriginTrials は RC 的な位置付けで、 v0 を出し update/deprecate してくべきか。"
なかのん&マジックさんのツイート: "WHATWGのDOM Standardsの仕様書、読んでてまったく意味分からないんで書いてある通りにコーディングしてみたらなんとなく分かってきた。もうPascalかなんかで書いたらよくない? この仕様書。"
なかのん&マジックさんのツイート: "初めて、自信が全く持てないレビューしてる。ShadowDOM + DOM Eventsムズい……"

DOM Standard 日本語訳
DOM1仕様書
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model - Wikipedia
IDL35
IDL 4.0
Shadow DOM v1でHTMLの内容と構造を分離する
GeckoのDOMイベント処理の実装 (Gecko Inside ver.)
DOM リファレンス - DOM | MDN
DOMのまとめ - Qiita
JAVAスクリプトが書き出すHTMLにスタイルを当てる際の注意 - CSS小技集
DOM操作の最適化によるJavaScriptチューニング(前編) | HTML5Experts.jp
DOM操作の最適化によるJavaScriptチューニング(後編) | HTML5Experts.jp

DOM Parsing and Serialization

DOMParser - Web API インターフェイス | MDN
DOM Parsing and Serialization
DOM Parsing and Serialization (日本語訳)

[vim問題]ランタイムパスを調べるコマンドは? | Vim入門
nanoバージョン6.0がリリース | TECH+
GNU nano バージョン6.1がリリース | TECH+
「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜
Wiki風にメモを作成可能な無料テキストエディタ「Zim」 - GIGAZINE

ODF

組版

和文と英文の間

mod_poppoさんはTwitterを使っています 「日本語LaTeX(pLaTeX/upLaTeX/LuaTeX-ja)では、和文文字直後の改行は空白に変換されずに消えます(数式前であるかどうかは関係ない)」 / Twitter
乙 (w/ snow)さんはTwitterを使っています 「texで和文打つとき、数式モードの前後をどうすべきかよくわからなくなってしまったので、有識者の方にお教えいただきたい。 半角スペース入れた方がいいと思うんだけど、数式前で改行した時はスペースが消えてしまう。 https://t.co/W42f7m85CZ」 / Twitter
乙 (w/ snow)さんはTwitterを使っています 「「は?」とノリで書いてしまいましたが、和文文字直後の改行はスペーシングされないのはおっしゃる通りで至極まっとうですね。 https://t.co/kmnp1X0uxs」 / Twitter
えびちゃんさんはTwitterを使っています 「数式に限らず、和文英文間は自分ではスペースは入れないときの間隔が正しい(ただしエンジンによっては事情が異なる) とかだった記憶がある」 / Twitter
mod_poppoさんはTwitterを使っています 「俺もそんな気がする」 / Twitter

JLREQ

日本語組版処理の要件(日本語版)
日本語組版処理の要件(日本語版)
html5j 電子出版部 勉強会「JLREQとCSS」参加レポート — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
村田 真さんのツイート: "#html5jpub EPUBではむりやりページを作り出しているし、見開きもやっている。しかし、袋小路だと思う。電子書籍リーダの相互運用性という一点をとっても、CSSでページや見開きをやってほしい。"
maihaさんのツイート: "ジャスティファイしない場合は、文節など意味のある単位で自動改行されたほうがいい。左揃えで行末を揃えない場合にももっとよみやすくなるといい。 #html5jpub"
Satoshi Kojimaさんのツイート: "日本語のJustifyには行長計算が必要。行長可変なWebブラウザだと無理(ものかのさん) 確かにその通り。だが普通の人にはそれなりに読みやすいはず。さらに改善する仕様のドラフトは存在している。 (村上さん) #html5jpub"
渋川よしきさんのツイート: "&nbsp;ってのはノンブレークで改行しないスペースだけど、問題なければスペースを表示しないんだけど、ここで改行してもいいよっていう真逆の文字ってあったりするのかな?"
渋川よしきさんのツイート: "お、ゼロ幅スペースあるじゃん。 https://t.co/wKfUDSLBjN"
JIS X 4051からJLREQへ - JAGAT
渋川よしきさんのツイート: "文字をWebGLで描画とか死亡フラグ。JLREQを読んでみよう。日本語を表現するってめちゃ難しいよ。ましてや自分がしらない言語とかね。僕はWebAsmが普及してもDOMを置き換えることは絶対ないって思ってる。"
JLREQの今日と明日、そしてCSS日本語組版 | ICT CONNECT 21
html5j電子出版部 勉強会「JLREQとCSS」まとめ - Togetterまとめ
W3C「日本語組版処理の要件(JLReq)」の改訂作業がGitHubで from Shinyu Murakami on 2016-12-23 (public-html5jp@w3.org from December 2016)
jlreq + expl3 で学会文書クラスを作った話 | ラング・ラグー
92895101_01.pdf

ALREQ

W3C I18n Activityさんのツイート: "Text Layout Requirements for the Arabic Script just published as First Public Working Draft. https://t.co/gAPaALZyzz Still plenty to do! Looking for comments and contributors. https://t.co/vg9IIU7D0F (Or help with other languages: https://t.co/wAVGziqMox)… https://t.co/YhzpsCOQxR"
Text Layout Requirements for the Arabic Script
Issues · w3c/alreq
Language matrix

TeX

任意コマンド実行

そくらてす@F欄大学の大学院生さんはTwitterを使っています 「よく考えたら、LaTeX コードから任意のコマンドを呼び出せるはずなので、どこの誰が書いたのかわかんない LaTeX コードをタイプセットするの怖くないか……?」 / Twitter
ワトソンさんはTwitterを使っています 「LuaLaTeX じゃないし -shell-escape じゃないから,まあ大丈夫だろ.ヨシ👉」 / Twitter
mod_poppoさんはTwitterを使っています 「-shell-escapeをつけてなければそこまで「任意」にはならないんじゃなかったっけ(前に-shell-escapeなしで任意コマンド実行ができる脆弱性があって騒ぎになった)。LuaTeXもos.executeとかはコマンド実行の制限の対象になる」 / Twitter
mod_poppoさんはTwitterを使っています 「まあ「信頼できないTeX文書は不用意に実行しない方がいい」のはそう」 / Twitter
某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
ワトソンさんはTwitterを使っています 「restricted shell escape に起動した LaTeX で処理する分にはネットで入手した LaTeX ソースを何の確認せずにタイプセットして平気ということになっているけれど,llmk で処理する場合は余裕で任意コードを実行できるのでまったく安全とはいえない(ちゃんと何が実行されるか確認してください)」 / Twitter
ワトソンさんはTwitterを使っています 「だけど,たぶんこの種のセキュリティ的な問題は latexmk や make などのもっと一般的なビルドツールでも同様に存在するはず(だよね?)」 / Twitter

Apache FOPを使ってみる~Knuthの分割アルゴリズム - X-plus
Wayback Machine
TeX 以外の組版・レイアウトシステム - TeX Wiki
日本語組版あれこれ - おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか
TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
monge.dvi
Line breaking — Xxyxyz
The Tectonic Typesetting System
tectonic-typesetting/tectonic: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
TeXやLaTeXで図の挿入に時間がかかるときに挿入を省略する方法 - Qiita
TeXの脚注をなんとかする - golden-luckyの日記
日本語化プロジェクト 〜TeX Live と learnlatex​.org〜 / localize - Speaker Deck
keiichiro shikano λ♪さんはTwitterを使っています 「PostScriptを知っていると.bstが読めて便利」 / Twitter
.bst file - Google 検索
日本語 LaTeX の新常識 2021 - Qiita
某ZR流パラメタトークン思考法 - マクロツイーター
TeX tuneup 2021: 7年ぶりの TeX アップデート | ラング・ラグー
ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter
表とリスト(List Driven Table in LaTeX )

MathML

KaTeX

KaTeX – The fastest math typesetting library for the web
Khan/KaTeX: Fast math typesetting for the web.
mizchiの叫び「MathJaxはやめろ」
信頼できる情報筋によるとさんのツイート: "mathjax というやつは世の中に現存するJSの中でも最も行儀が悪い振る舞いをするものの一つです。気軽に導入していいものではない。というか積極的に避けねばならない。あいつはXML的木構造を破壊しながら自身の特殊構文に継ぎ直してる。"
Ryou Ezoeさんのツイート: "例の@mizchi の連投、本人はKaTeX使ったことがないだろ。KaTeXはCJK文字への対応が悲惨すぎて使い物にならない。あとエラー通知に例外を使うし完全に無効化できない。"
Ryou Ezoeさんのツイート: "KaTeXは自分だけが数式を記述する限定的な用途で使うもの。大勢のどこの馬の骨かもわからないユーザーが数式を記述する場合にKaTeXなど実績の違いで到底使い物にならない。"
Ryou Ezoeさんのツイート: "ちなみにユーザーに自由にtexを書かせると何が起きるかと言うと、お絵描きしだすし日本語も当然使い出す。KaTexでは無理。"
Ryou Ezoeさんのツイート: "私は$力=質量 \times 加速度$とか書きたいし$\text{力}=\text{質量} \times \text{加速度}$とは書きたくない。だいいちこれでは意味が違ってしまう。"
本の虫: KaTeXを使ってみた感想
七誌さんはTwitterを使っています: 「KaTeXですが、REPL云々は関係なくて、単にHTMLの先頭に &lt;!DOCTYPE html&gt; を書くだけでいけました。 KaTeXはコードがシンプルで良いですね。 MathJaxでは動的生成したTeXでunderbraceに日本語を使うと "t is null" という謎のTypeErrorになりましたが、KaTeXではそういう問題はありません。 https://t.co/rS39gQW43y」 / Twitter

MathJax

AsciiMath

piqcyさんのツイート: "LaTeXより簡単に数式が書ける記法のAsciiMathが登場。MathJaxと連携してレンダリングを行う。 プログラムで数式を書く感じでかける。行列が[[a,b],[c,d]]みたいな感じで書けるのはよい。 https://t.co/MdDncvRLRc"
hardmaruさんのツイート: "AsciiMath is a simple markup language for math. Easier to use than LaTeX. https://t.co/T2ONWTDxPY https://t.co/VjuJGfn9ol"
AsciiMath
asciimath/asciimathml: A new home for asciimathml

七誌さんのツイート: "MathJaxで表示させると右クリックでMathMLとTeXの両方のコードが表示できるので、MathJaxに全部任せるのが無難っぽい。まあ、変換だけが目的ではないので、ある程度は中身を知っておかないといけなかったから、自作は無駄ではなかったんだけど。"
七誌さんのツイート: "少し前までMathJaxとWYSIWYG入力の折り合いをどう付けるのか困っていた。Idrooの数式入力はかなり頑張っているけど、同じようなものを再実装するのは回り道過ぎる。しかし最近はプログラムで数式を生成してMathJaxで表示するだけで、当面の用は足りる気がして来た。"
七誌さんのツイート: "数式処理とコンパイラはASTをこねくり回すのが似ているので、どうにかうまく両立させられないものかと思っている。"
LaTeX入門 - TeX Wiki
MathJax
MathJaxによる数式表示
MathJaxの使い方
MathJax - Wikipedia
Easy Copy MathJax
黒木玄 Gen Kurokiさんのツイート: "#MathJax MathJaxのCDNサーバーが4月30日に止まるらしい! 一つの対処法はhttps://t.co/T9iVtP1wEMの代わりにhttps://t.co/qtQEQneRDsを使うように変更すること。詳しくは→ https://t.co/2yV0j7zSGs"
MathJax CDN shutting down on April 30, 2017
cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
蘇摩さんのツイート: "slackで数式表示するための拡張,math-with-slackを入れてみたのですが,かなり良いです. https://t.co/jEH8Fk0L0G https://t.co/UVDVbEuKYm"
fsavje/math-with-slack: Rendered math (MathJax) with Slack's desktop client
だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxは昔から\newcommand使えなかったっけ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「10年前のMathJaxでの\newcommandの実装です https://t.co/4M6tjsb03A」 / Twitter
MathJax/newcommand.js at v1.1-latest · mathjax/MathJax
だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxと(本物の)LaTeXの違いの一つに、「(MathJaxでは)\newcommandのスコープが数式環境を貫通する」というのがあるんだよね。一方KaTeXは\gdefを実装した」 / Twitter
ワトソンさんはTwitterを使っています 「MathJax は昔から \newcommand が使えて,しかもそのスコープ(有効範囲)がアレなせいで,Mathtodon ができた頃に迷惑 definition を含む投稿で他者のツイートの見た目を好きなようにいじって遊ぶやつ(通称 \newcommand テロ)ができたんじゃなかったっけ.」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そんなこともあった……かもしれない……(かなり忘却している)」 / Twitter
MathJax記法の試し書き - dec9ue's diary
MathJaxの試し書き2 - dec9ue's diary

Mathematical Markup Language - Wikipedia
MathML - Wikipedia, the free encyclopedia
MathML 日本語情報
W3C Math Home
MathML | MDN
MathML 要素リファレンス - MathML | MDN
MathML 耐久テスト - Mozilla | MDN
MathMLマニュアル
WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 | 電子書籍、電子出版のCAS-UBブログ
Rockridgeさんのツイート: "次期Safari 10.0ではMathMLの表示品質を改善したほか、数式にハイパーリンクを埋め込めるようになった。 / “Improvements in MathML Rendering | WebKit” https://t.co/YcLOYp5YxX"
Rockridgeさんのツイート: "Fx51:mathml.disabledの設定をtrueにすることで、MathMLを無効化できる。 / “1173199 – Add a pref to allow disabling MathML (Tor 13548)” https://t.co/yHRWPH4614"
「One Note for Windows 10」で文字列を数式に変換可能に - PC Watch
Rockridgeさんのツイート: "Chromeの次世代レイアウトエンジンでは、MathMLのサポートが復活するようだ。 / “Review of Igalia's Web Platform activities (H1 2017) - Frédéric Wang” https://t.co/LZvEj1sAVA"
MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
MathMLの未来を考える―(2)『MathML数式組版入門』の大学図書館への寄贈活動について | 電子書籍、電子出版のCAS-UBブログ
ここ最近のMathMLについてのメモ - 水底の血
Ziphil/ZenithalMathWeb: Web rendering engine for mathematical formulae
KindleでMathMLの現実
第3期のMath Working Groupが始動した話 | フロントエンドBlog | ミツエーリンクス

ウイドウとオーファンって、なかなか深い | 電子書籍、電子出版のCAS-UBブログ
䭄さんのツイート: "多言語組版処理システムは一人の人間がつくるものじゃないよ。"
SATySFi - Google 検索
『数式組版』を組む技術:基本版面(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(3)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:脚注|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:柱とノンブル|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:PDFの生成(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術 Advent Calendar 2019 - Adventar
七誌さんはTwitterを使っています: 「アラビア文字の組版についての資料を見付けた。 https://t.co/W6JDp7Rhlw アラビア語だけでなくペルシア語、ウルドゥー語、現代ウイグル語についての記載もある。 「筆者は専門家ではありません」とのことだけど、詳細にまとめられていて凄い。 多言語組版研究会というのがあったのですね。」 / Twitter
moji >> アラビア系文字 > 「アラビア系文字の基礎知識」
Arabic.pdf
日本語組版に関連するCSS規格の策定状況について - Speaker Deck

ピボットテーブル

chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「意外と名前が付いているテクニックもあって、「重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える」みたいなのって、名前がついてるはずなんだよね。自分も思い出せないし言っても多分伝わらないけど。」 / Twitter
Feature #11076: Enumerable method count_by - Ruby master - Ruby Issue Tracking System
Shiro KawaiさんはTwitterを使っています 「Scheme (R7RS-large) だとbagですね。自明でないかもしれませんが、内部的にデータ⇒個数で持ってます。特定のデータの個数を得るのはbag-element-count https://t.co/RGSFeDKmUp https://t.co/pozyzYhz12」 / Twitter
Gauche ユーザリファレンス: R7RS large
Keigo ImaiさんはTwitterを使っています 「ピボットテーブル… https://t.co/ZWEeJs2xkX」 / Twitter

MS

Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
Hack Patch!: CEMIについて
ExcelのセルがAI対応へ進化 - PC Watch
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Microsoft、Excelカスタム関数としてJavaScriptのサポートを発表
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Shirouzu Hiroaki(白水啓章)さんのツイート: ".xlsファイルは開くだけで、開いた日付がNTFSタイムスタンプ形式で格納されるようだ。(末尾-404~-396の8byte) ちなみに、ファイルの更新日付は変更されない。 このパターンだとアーカイブビットでも見ない限り、変更を検出できない。 (mmap系のファイルだと良くある話だが)"
拡張子「.iqy」の添付ファイルに注意! ウイルス感染狙うメールが1日だけで29万件も拡散 - INTERNET Watch
Satoshi NakagawaさんはTwitterを使っています 「Joel on Software に Joel が Excel チームにいたときに Bill Gates に直接レビューを受けて 1900年の日付について質問されるエピソードがあって、Lotus 123 との互換性問題まで完全に答えてたけど、ああいう感じで完全に事実を把握してるエンジニアがいいエンジニア。 https://t.co/FvGm5fARLe」 / Twitter
My First BillG Review – Joel on Software
Word での変更履歴の記録

窓の杜

【Excel】他人から受け取った表の構造がわからない!エクセルで数式やデータの入力規則が設定されたセルを特定するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
「Excel」にセルの選択を一部解除する機能が導入 ~「Office Insider」2018年1月版 - 窓の杜
【Excel】クリック操作だけで簡単に売上の前月比計算ができる!エクセルのピボットテーブルで効率よくデータを分析するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【特別企画】Excelのお株を奪う? 「EmEditor」は連番入力や氏名の分割・結合も自動化できる! - 窓の杜
エクセルで表を印刷する際にミスを減らせる3つのステップに注目(3月第4週) - 窓の杜
“SUM()”関数を独語版「Excel」で使うには……行き過ぎたローカライズの悲劇に終止符を打つアドインが“Microsoft Garage”から登場 - やじうまの杜 - 窓の杜
【Excel】表を再利用するため数値を削除したら数式まで消してしまった!エクセルで簡単に数式以外のデータだけを削除するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで数式が入力されているセルだけを見つける方法に注目(5月第4週) - 窓の杜
「LibreOffice」に1件の脆弱性、ODF文書に埋め込まれたSMBリンクを介して情報が漏洩 - 窓の杜
【Excel】「㈱」「㍿」「株式会社」などの表記がバラバラ!エクセルの名簿で会社名の表記を統一するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで普通では検索できない“?”などの文字を検索する方法に注目(7月第2週) - 窓の杜
【Excel効率化】作業フローなどに使う図形をすばやく書きたい!手書きで書いた図をエクセルで使える図形に変換するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
Excelの結合セルもまるごと移動! 「RelaxTools Addin」に選択セルの移動コマンドが追加 - 窓の杜
Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter

できるネット

【エクセル時短】関数よりも便利!? 知る人ぞ知る「フラッシュフィル」はこんなときに威力を発揮する | Excel | できるネット
【エクセル時短】大きな表を会議で見るなら必須! ムダにスクロールしないウィンドウ操作の鉄板ワザ3選 | Excel | できるネット
【エクセル時短】VLOOKUPの応用ワザ。2つの条件で値を検索するために組み合わせる関数とは? | Excel | できるネット

blog

村田真のXMLブログ
村田真のXMLブログ
ドキュメント技術とプログラミング言語の相似について - golden-luckyの日記
なんでドキュメントといったらXMLが出てくるのか - golden-luckyの日記
XMLをLisp評価器で実行する - golden-luckyの日記
XMLをつぶす機械を作る機械を作る - golden-luckyの日記
XMLのつぶし方 - golden-luckyの日記

Wikipedia

OpenDocument - Wikipedia
OpenDocument - Wikipedia
Extensible Markup Language - Wikipedia
XML - Wikipedia

Qiita

Pythonでパワポの説明資料(報告書)を生成する - Qiita
パワーポイント内のテキストをgrepする - Qiita

Twitter

Yuki Yugui Sonodaさんのツイート: "割と良くできたExcel文書を見て、文書作成にExcelを使う人の気持ちが初めて分かってしまった。Wordと違って出力用紙設定の幅に依存してないから、主に画面で見る目的の割と幅の広い画像・表入り文書に便利なんだな。 で、その文書は初めから社内Wikiに書きゃ良かったと思うんだけど"
SODA Noriyukiさんのツイート: "「メモリーダンプみたいなものをそのまま保存」って、Smalltalkのプログラムの保存(システムイメージのスナップショット)もそんな感じだし、Xerox文化~って感じがする>RT"
渋川よしきさんのツイート: "ほんこれ。Excel嫌いすぎる人は、ウェブですぐに超えるものを作れると思ってる。数式使いたい、ドラッグでまとめて入力、コピペとか言われた瞬間に死ぬ。… "
qsonaさんのツイート: "社内で表計算ソフトウェアを利用したマスタデータ管理の仕組みを作ったときに「なんで表計算ソフトなの?管理画面つくればいいのでは?」と聞かれることが数回あったが、「表計算ソフトは100点だとは思っていないが80点以上ある、80点を超えるソフトウェアを作るのはとてもむずかしい」と説明している"
Teppei Satoさんのツイート: "まさにその通りで、80点の管理画面付きデータ管理を量産できるのがkintoneです。… "
qsonaさんのツイート: "80点で良いし80点のものを自分で作るのってすごい大変なんですよね。。 社内でヘボいツールが出来るたびに、kintoneを適用すべき場面なんだろうなあって思っているんですが、次に見かけたらちょっとpushしてきますw… "
楠 正憲さんのツイート: "ほぼほぼOffice Suiteがブラウザで動くようになって、印刷の問題が解決し、ドライバの問題もなくなって、台数ならPCよりもスマホのエコシステムが大きくて、ようやっとデスクトップLinuxの障壁がほぼほぼ霧散したのに、デスクトップUX自体が陳腐化してしまって誰も自由化することに興味を持たない時代"
勝(まさる)さんのツイート: "Office OnlineのPowerPointで図を描いてみると、幻想だとわかる。"
勝(まさる)さんのツイート: "出張先のホテルで、パワポ修正しようとOffice Onlineに食わせた後、図を調整しようとしてもまともに線すら引けなくてどうにもできず、修正前のままプレゼンしたのは懐かしくも苦い思い出。"
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「google spreadsheetでΣはsum()だがΠは何だ、とぐぐったところproduct()だった。なるほど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「数10GBの単一XMLすごい(笑) XMLって、SGMLより機械検証しやすい(閉じタグ必須とか)、みたいな位置づけの後発規格と聞いた記憶あるけど、そんな気遣いを吹き飛ばすサイズの暴力感(笑)」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「怪談だわ…(;゜Д゜) XMLって任意箇所に任意の長さのスペースや改行を突っ込めるし、タグに対応する閉じタグを探すには頭から1文字づつの文字列検索するしか無いので、パーサーの実行効率もメモリ効率も悪いと思う。」 / Twitter
岡田哲哉さんはTwitterを使っています 「今まで扱ったXMLの中で一番地獄だったのは地図情報のGMLで、日本地図全部が数十ギガバイトのXMLファイル1本になっているやつだな。とにかくデータが重いし、普通のXMLパーサーで読むと死ぬのでいろいろ工夫が必要だった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 https://t.co/L0y1ZrvmoU この手の話は仕事で使うためにいろいろ検討したが、結局元となる帳票をスキャナーで取り込んで、必要な記入事項をテキストボックスを張り付けて対処するってのが一番いいことに気づいた」 / Twitter
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 - Speaker Deck

ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
Announcements and Press Releases - Open Document Format (ODF) 1.2がISO/IEC(国際標準化機構/国際電気標準会議)によって国際標準26300:2015として発行されました
オフィス文書のためのオープンな文書形式(Open Document) v1.0改正原案作成委員会 | IPSJ/ITSCJ
[mixi]ODFのJIS化 - ODF (OpenDocument Format) | mixiコミュニティ
[mixi]ODF V1.2 が OASIS 標準になりました。 - ODF (OpenDocument Format) | mixiコミュニティ
Extensible Markup Language (XML) 1.0 (Fifth Edition)
Extensible Markup Language (XML) 1.0 (第五版)
クラウド会計ソフト「freee」のExcel用アドイン提供開始、独自のfreee関数で勘定データを自動で取り込み - INTERNET Watch
「LibreOffice 6.2」リリース、NotebookBar UIが正式機能に | OSDN Magazine
Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | DevelopersIO
SXML
Index of /office/OpenDocument/
Googleスプレッドシートに数式や関数の推測/提案機能 - PC Watch
「LibreOffice 7.2.6」が公開 | OSDN Magazine

EditorConfig

EditorConfig
EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
EditorConfig でエディタの設定も共有しよう - デブハゲ
.editorconfigが便利すぎて失禁した - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)
ぶんちょうさんはTwitterを使っています 「editorconfig大混沌時代 これで信用できるのタブ・スペースの数くらいしかなくない?」 / Twitter
Gada / ymtszwさんはTwitterを使っています 「@yutopp 何だったら今どきの言語だと公式orコミュニティスタンダードで決まってることが多いので、hard/softもスペース幅もeditorconfigをみる余地があんまりない気がします。 trailing space消すとかファイル末尾にtrailing newlineつけるとかはもう殆どの言語共通だから言うまでもないし」 / Twitter
ぶんちょうさんはTwitterを使っています 「@gada_twt その言語の標準をeditorconfigの記述に相乗りするのが今どきっぽいのですが、同じ言語のツールでもサポートの度合いが違い、厳しい…」 / Twitter
ぶんちょうさんはTwitterを使っています 「なにがeditorconfigや!今日からきみはtabspaceconfigや」 / Twitter

GNU Poke

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Poke 1.0がリリース。インタラクティブにバイナリデータを扱うためのエディター。バイナリエディターとプログラミング言語の中間的な存在。 https://t.co/s7A8Kjw7xS」 / Twitter
GNU poke - Release notes for poke 1.0
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「バイナリデータを取り扱うための言語を持っている。」 / Twitter
バイナリエディタ「GNU poke 2.0」が公開 | OSDN Magazine
約1年ぶりのメージャーバージョンアップ、バイナリーエディター「GNU poke v2.0」 | TECH+
Takashi KawasakiさんはTwitterを使っています 「今のMSは、ターミナルとかエディタとか、プログラマが欲しいものを自由に作らせてくれる環境みたいだけど、それならバイナリエディタも作ってほしいなぁとか思う。決定打ないよね。」 / Twitter

LSP

ドッグさんはTwitterを使っています 「LSP サーバからワークスペースの情報をダンプして,サーバ起動してなくてもクエリかけられるようにするためのインデックスフォーマットの仕様.LSP サーバのリクエスト/レスポンスを持っとく感じなのかな.まだ v0.5.0 | 'Language Server Index Format ' https://t.co/vMivzi0osE」 / Twitter
LSIF Specification
ドッグさんはTwitterを使っています 「LSP ってクライアントデバッグ用のリファレンス実装とか無いのかな」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/iaEHawteQ3 調べてみると個人でそういうのつくってる人はいるな」 / Twitter
bubba/lsp-test: A functional test framework for LSP servers
言語サーバープロトコルの概要 - Visual Studio | Microsoft Docs
visualstudio-docs.ja-jp/language-server-protocol.md at live · MicrosoftDocs/visualstudio-docs.ja-jp
TypeProf for IDEの開発をお手伝いしました at クックパッド - kateinoigakukunのブログ
新世代の自動補完プラグイン ddc.vim
LSP学習記 #1 - ベインのブログ
LSP学習記 #2 クラゲ言語の構文解析 - ベインのブログ
LSP学習記 #3 シンボルとハイライト - ベインのブログ
LSP学習記 #4 シンボルのリネーム - ベインのブログ
vim-lsp-settings に物色インストール画面を作った。
rust-analyzerの紹介 | κeenのHappy Hacκing Blog

コード補完

Twitter

渋川よしきさんのツイート: "エディタに対するIDEのアドバンテージは、エディタはたいてい補完候補をまとめて一度に送る設計になっていることが多いから、候補が増えるとレスポンスが重い、IDEはインクリメンタルにそれができる余地が多少広いぐらいって補完システム作ってる人が言ってた"
渋川よしきさんのツイート: "ただ、そういうインクリメンタルにしようとすると、IDEの補完のシステムを作り込むのはさらに難しそうだし、簡単に作るとエディタと変わらなくなっちゃう。"
Fadisさんのツイート: "C++におけるコード補完は残念ながらあまり幸せになれない。近代的なC++erならテンプレートを活用して再利用性の高いコードを書いている筈だけど、未知の型Tにどんなメンバを持っているかは、そのメンバを利用する事によって決定する為、それを利用する前に予想する術は無いんだ"
Fadisさんのツイート: "conceptを理解できるコード補完ならあるいは…"
かずき@MHW が好きさんのツイート: "VSの場合凄く長い名前のものを書くときは CCLM とかみたいに打つと ContainerControlledLifetimeManager みたいなものにマッチする(単語区切りの先頭をうつだけでいい)ので、長い名前のもをうつ機会が多い場合は、覚えておくといい"
Mune-sanさんはTwitterを使っています 「CLion、ファイルか関数が長くなるとオートコンプリートにものすごく時間がかかるよになるんじゃないかという気がする。 長いったって二千行くらいなんだが。」 / Twitter
Mune-sanさんはTwitterを使っています 「SupportのSpeed Up Code Analysisが効いた。 異常な遅さは消えたようだ。ただし、一部の解析は手動で起動しなくてはならなくなった。 https://t.co/mvfxCWbzx5」 / Twitter
Performance Tuning Tips - Help | CLion
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 最近のIDEの補完は実際にコンパイル走らせるので、マクロが未定義だとかエラーいっぱい出るオチになると思います」 / Twitter
Miura HidekiさんはTwitterを使っています 「むしろ申し訳ないという気持ちになった...。正直、抽象実行でリアルタイムで補完するとか型チェックが出来るようになるとは思わなかった」 / Twitter
kateinoigakukunさんはTwitterを使っています 「Special thanksに挙げていただきました 😊 https://t.co/X9Bxvicd07」 / Twitter
TypeProf for IDE: Enrich Development Experience without Annotations
kateinoigakukunさんはTwitterを使っています 「TypeProf for IDE: Enrich Development Experience without Annotations #ruby #ruby3 https://t.co/MUZ9X6yip1 via @SlideShare」 / Twitter

自動補完 - Wikipedia
インテリセンス - Wikipedia
Intelligent code completion - Wikipedia
[ コード補完機能等の利用 IDE 関係操作 ] - Mr.XRAY
JavaScriptのコード補完できていますか? - Aqutras Members' Blog
簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇) | 株式会社イテレイティブ
支援機能(IDE チュートリアル) - RAD Studio
コード補完からムダを省き、Javaプログラミングを地味に効率化 | I am programmer and proud
本の虫: VC10のインテリセンスについて
本の虫: MSVC++コンパイラーの中に入っているWebブラウザー
本の虫: Inside IntelliSense
本の虫: インテリセンスのリビルド
本の虫: VS2010のsquiggleについて
コーディングをAIが支援してくれる「Visual Studio IntelliCode」、Javaに対応。GitHubにあるコードを機械学習 - Publickey
Big Sky :: gocode やめます(そして Language Server へ)

ナビゲーション

LSIF

無職やめ太郎(本名)さんはTwitterを使っています 「GitHub上でもコードジャンプとか出来たらいいのにな」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Yametaro1983 それをどのブラウザーでもできるようにするために https://t.co/OecVGi2uEh っていうのが策定されてるんですよ。ソースコードの定義情報まとめるJSONファイルになっているそうで」 / Twitter
LSIF.dev

cscope

第 8 章 cscope: 対話的な C プログラムの検査 (Sun Studio 12: C ユーザーズガイド)
Cscope Home Page
memo/Cscope.md at master · tsuyopon/memo
if_cscop - Vim日本語ドキュメント
cscope CapmNetwork
ヘッダファイルなどをVimのキー操作一発で探す (3/3):いまさら聞けないVim(9) - @IT
cscope - Wikipedia
[cscope][emacs] cscopeをほぼ全ての言語に対応する方法 - goinger的日記
CscopeとSilentBobによるソースコードの解析 | OSDN Magazine
Linuxカーネルソースコードを読むツール (1):cscope編 - Fixstars Tech Blog /proc/cpuinfo

コード ナビゲーション(IDE チュートリアル) - RAD Studio
ソースファイルのナビゲーション - Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル
NetBeans IDE Javaエディタでのコード支援: NetBeans IDEのリファレンス・ガイド
本の虫: GNU Globalが面白そうだ
OS作れないマンさんのツイート: "GNU globalでコードリーディングは便利なんだけど、今自分がどの関数を読んでて、さっきまで何処にいたか、みたいなコールスタック(のようなもの)を記録して可視化する仕組みが欲しくなる。"
OS作れないマンさんのツイート: "リーディングスタック、現実的な範囲で作るとすると、手動によるマーキングが必要になりそう。まあそのくらいは許すとして、あとはマークをどの階層に配置するかの推論をしなければならない。"
ぬるぽへさんのツイート: "rtagsこれです(https://t.co/a9FbbVGqtf) アドホックな文字列処理じゃなくてclangのパーサを内部に抱え込んでて、それで型とかマクロとかを処理してタグしてくれる 最新のコミットはこわれてるのでビルドしたかったらreset --hard HEAD^してね"
ぬるぽへさんのツイート: "@liva_jy rtagsいいよ、マクロで定義された識別子も追える"
_さんのツイート: "ところでいつかrtagsについて宣言までしか飛んでくれなくて不便ということを言ったのですが、あれは間違っていて普通に定義までジャンプできました そしてマクロを駆使して定義された関数や変数も定義にジャンプできてめっちゃ便利"
最強のC/C++インデクサー "Rtags" を本気で使う - Qiita
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GitHubがナビゲーション機能 (関数定義に飛ぶ、など) を導入。この際、なるべく多くの言語に対してGitHub規模で効率的に解析できるよう、stack graphという手法を使っている (呼び出しスタックとは無関係)。個々のファイルの定義をグラフとして個別に解析しておいて合成する。 https://t.co/yTQByhU9uP」 / Twitter
Introducing stack graphs | The GitHub Blog
GitHubがコードナビゲーションとコード検索を改善

リファクタリング

第36回 リファクタリングについて:Android Studio最速入門~効率的にコーディングするための使い方|gihyo.jp … 技術評論社
リファクタリング(IDE チュートリアル) - RAD Studio
IDEの機能比較:ローカル変数の抽出 - しおしお
NetBeans IDE - 編集とリファクタリング
コードの作成とリファクタリング (C++)
Eclipse JDT のリファクタリング機能を探る
マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ - Publickey
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「VSCodeで変数名を変更する機能使ってみたら別の変数まで書き換わってて、スコープも確認せずにやってるクソ機能だった……(結構やりなおし発生)」 / Twitter
ASTを活用してコードの自動修正に挑戦してみよう - Cybozu Inside Out | サイボウズエンジニアのブログ
WideStudio/MWT Home page
メンテナンス性とモジュール化のためGitHub OctoKit JavaScript REST SDKをリファクタリング
Facebook Retrieを使用した大規模なHaskellコードベースのリファクタリング

コード整形

Artistic Style - Index
Artistic Style download | SourceForge.net
島 敏博さんのツイート: "C言語,C++言語用自動整形ツール、astyle https://t.co/pJvvj3Yn66 はこういう整形ができて素敵 --align-pointer=type ポインタの*、参照の&を、型側に寄せるか変数名側に寄せるかを指定するオプション。*も&も型の一部なので私も型側 https://t.co/e60bKZQ0PO"
ちゃーしゅーねこさんのツイート: "代入の=の位置を縦にそろえるの嫌う人結構いますけど(別に僕は嫌いじゃない)、gofmtだと行末コメントが複数行にあると縦にそろえられる件はどうお考えなのだろう"
なかのん&マジックさんのツイート: "行の途中の何かを基準に無駄にスペース入れてしまうと、その位置では左すぎる行を挿入しなくちゃいけなくなった時に、本来は変更不要な行までdiffに含まれてきて、レビュー時のリスクが高まるんだよな。行内diffまで表示してくれるレビューツール使ってたらマシだけど、結局、blameにゴミが入る。"
インデントのスタイルについて - in neuro

コード検索

Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
Geoff's site: The Silver Searcher
ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
コード検索ツール「Sourcegraph」、オープンソース化される | OSDN Magazine
なかのん&マジックさんのツイート: "Mozillaの現在のソースコードビューアはJavaとObjective-Cには非対応なものの、かなり使いやすい。けど、ローカルに立てて他のプロジェクトに使えるのかどうかちょっとよく分からんかった。 https://t.co/IdJxSXsv6f"
/ - mozsearch
なかのん&マジックさんのツイート: "JSとC++の境界もまたいでくれるのでありがたい。 https://t.co/a9ZYoojYyE"
Symbol _ZN18nsIPlaintextEditor10InsertTextERK12nsTSubstringIDsE,#insertText - mozsearch
chikoskiさんのツイート: "みんな巨大なJSのコード読むのどうやってんだろう。1万行以上 / 100ファイル以上の場合"
Makoto Mizukamiさんのツイート: "読んだふりをする (違 / 私の場合は, grep しながら興味と合致しそうなところを探すことが多いですかねえ. それこそ good practice があれば試してみたい.… "
chikoskiさんのツイート: "私の場合は、The Sliver Searcher(agコマンド)で探して、lessで読む感じ。真面目に読むときは、継承関係や参照関係を図に書きながら読むことが多いのですが…コード検索エンジンが使える場合は、それも使います。タグジャンプはしないかな"
なかのん&マジックさんのツイート: "イベントリスナを探すの超めんどうくさいな……addEventListener(の後に改行あるケースもあるし、イベント名が変数な可能性もあるし。"

全文検索

簡潔データ構造

簡潔データ構造 - Wikipedia
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
簡潔データ構造の第一歩 - Koike's Lemma
文書解析のための簡潔データ構造 | Preferred Research
https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwjKtab2i7HQAhUGmpQKHbOqDcEQFghIMAY&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D65880%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEplWOqDZosSHI_og4VS9Ateuh5WA&sig2=eUziEC640ySMd51wseszFQ&bvm=bv.139250283,d.dGo
wavelet行列で高速な「もしかして友だち?」検索 | 株式会社サイバーエージェント
[Javaの小枝] 週刊 簡潔データ構造を作る 番外編 5分でわかるLOUDS - Qiita
NII表紙.indd
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)

infoQ

メモリ効率のよい全文検索をRustとWebAssemblyで実現する
AmazonはElasticsearchのフォークをOpenSearchにブランド変更

blog

アスペ日記

気ままなブログ

高速文字列解析の"別"世界 - 気ままなブログ
Wavelet Treeをもう一度 - 気ままなブログ
Wavelet TreeのTop-Kの改善 - 気ままなブログ
FM-Index - 気ままなブログ

ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
Shibu's Diary: [JSX][FM-index]httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!
Groongaでb Bit MinHashを使って高速に類似検索 - CreateField Blog
Hugoのブログに全文検索をつけた | κeenのHappy Hacκing Blog
Search | κeenのHappy Hacκing Blog
魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ
Luceneのメモリ上でのインデックス構造とその仕組み - エムスリーテックブログ
Luceneのセグメントファイルを解剖してみた - エムスリーテックブログ

スライド

FM-indexによる全文検索
Oktavia全文検索エンジン - SphinxCon JP 2014
Lucene Index Deep Dive - Speaker Deck
shallow1729さんはTwitterを使っています 「Elasticsearchのストレージへの書き込み、luceneのcommitはマルチスレッドのshadow pagingだけどElasticsearch側でWAL(Translog)を用意してcheckpointとしてluceneのcommitを実行してるって感じっぽい(嘘ついてたらごめんなさい)」 / Twitter
shallow1729さんはTwitterを使っています 「Luceneのストレージへの書き込みについてはこちらの資料から https://t.co/wCOrkmA9ol ElasticsearchがLucene commitを使ってるとかはドキュメントから https://t.co/mK2VajYTl9 &gt; An Elasticsearch flush is the process of performing a Lucene commit and starting a new translog generation.」 / Twitter
Introduction to Apache Lucene - Speaker Deck
Translog | Elasticsearch Guide [7.14] | Elastic
shallow1729さんはTwitterを使っています 「shadow pagingとかWALはCMUの講義がわかりやすいです。 https://t.co/mM39I9IwoV」 / Twitter
20 - Database Logging Schemes (CMU Databases Systems / Fall 2019) - YouTube
shallow1729さんはTwitterを使っています 「&gt; マルチスレッドのshadow paging Luceneでtransactionという言葉は適切で無いかもですけど、複数のtransactionがあった時にcommitをtransaction毎ではできず、全部まとめてcommitする事になるって感じです。」 / Twitter

Qiita

ハクビシンにもわかる全文検索 - Qiita
[C++]コンパクトなBWT - Qiita
SA-IS - Shogo Computing Laboratory
SA-IS(Suffix Array - Induced Sorting)を実装した - Qiita

Twitter

Rockridgeさんのツイート: "Searchfox(Firefoxのソースコードの全文検索ツール)がWindows版特有のRust/C++コードのインデックス化に対応した。 / “PSA: searchfox now indexing Windows Rust…” https://t.co/GqjfUhdW8p"
Makoto Kato ︎︎さんのツイート: "https://t.co/rIW92muoIF ってGoogle社内でも使われているソースインデクサ使ってるんだろうけど、あの会社の人たちあれで満足してるの? https://t.co/KK3JpDgl2f の圧倒的な検索能力を見てしまうとねぇ。。。"
Code Search
Searchfox
Makoto Kato ︎︎さんのツイート: "ソースコードインデクサ作るのにclang-plugin使うというアイデアはホント正しい"
Justin SearlsさんはTwitterを使っています 「日本人のプログラマーへ、助けてください!Postgresでは日本語の検索のフィーチャーを作るなら、ベストプラクティスが何ですか?恥ずかしくても、普通に西洋のプログラマーはローマ字の検索だけ分かります。😬」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「indexingはn-gramが一番シンプルでいいと思います。Thinderbirdのindexerもそうした。CJT考えたらdeep learningで辞書作るのはコスト高すぎる」 / Twitter
StudentさんはTwitterを使っています 「自作RDBMSが話題ですが、全文検索のDBはインデックスはクエリにマッチするデータを指している訳ではなくカバレッジも100%じゃないという性質があって、lexicalとsemanticの2種類のインデックスを相補的に使った上でランキングで間違ったデータをフィルタするみたいな世界なんですけどすごくないですか」 / Twitter

ぬるぽへさんのツイート: "前々から何度も言ってるんだけど自分が今までに閲覧したサイトの全てから光速に検索できてほしい"
Oktaviaとは何か? — Oktavia
Microsoft、Bing検索エンジンの主要コンポーネントをオープンソース化 | マイナビニュース
ストップワード とは 意味/解説/説明 【stop words】 | Web担当者Forum
Windows サーチに拡張インデックスモードを追加 ~「Windows 10 19H1」Build 18267 - 窓の杜
高速日本語全文検索「Mroonga」で編集部の専用過去記事検索を爆速化し作業効率を上げてみた - GIGAZINE
セキュリティがデフォルトで有効に、「Elastic 8.0」が公開 | OSDN Magazine

正規表現

PCRE2

Perl Compatible Regular Expressions - Wikipedia
Perl Compatible Regular Expressions - Wikipedia, the free encyclopedia
PCRE - Perl Compatible Regular Expressions
Index of /pub/pcre/
PCRE2 specification
perlre - perldoc.perl.org
PCREの範囲の正規表現を可視化してくれるサイト - 唯物是真 @Scaled_Wurm
PCRE2-10.31
pcre2unicode specification
unicode - libpcre2 Code Unit Width - Stack Overflow
PCRE2 Open Source Library for Perl Compatible Regular Expressions
PCRE2 specification
pcre2 specification
Project Zero: (^Exploiting)\s*(CVE-2015-0318)\s*(in)\s*(Flash$)

Oniguruma

Oniguruma - Wikipedia
kkos/oniguruma: regular expression library

ReDoS

7594591200220899443さんはTwitterを使っています 「https://t.co/g2gSb3q8Ku」 / Twitter
プログラム中の文字列チェック機能の脆弱性を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でもReDoS脆弱性の修正が容易に~ | ニュースリリース | NTT
7594591200220899443さんはTwitterを使っています 「強そう。DoSにならない正規表現のサブセットを(形式的に)定義できたということだね」 / Twitter
正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects - Speaker Deck
アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは? - GIGAZINE
ぐれさんさんはTwitterを使っています 「ソートの計算量くらい把握してて当然って方々には愚問だと思いますが、正規表現を書くときも、もちろん計算量意識してますよね?(煽) ソート以上に使う機会がある人も多いと思うんですが、ご存知の通り簡単にO(N^k)になるので。 なお、この正規表現でやらかした某社はたまに思い出す他山の石。 https://t.co/VzCXSTuhkU」 / Twitter
ぐれさんさんはTwitterを使っています 「この表現の引用元はこちら。Firewallのルールに設定した正規表現がバックトラックしすぎて世界的な障害になったやつです(くわばらくわばら)。 https://t.co/DPdjG9WrkY」 / Twitter
Details of the Cloudflare outage on July 2, 2019
Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「変な正規表現でCPU枯渇させるReDos攻撃って存在自体知ってたけどあんま気にした事なかったんだが、実際に簡単な例がめちゃくちゃ遅くなる例を見ると、確にヤバいね。例えばこれはM1Maxで50秒とかかかる…。 console.time(); /(a+)+b/.test("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); console.timeEnd();」 / Twitter
Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「今30文字ですがaを1個足すたびに倍々で伸びてくので迂闊に10文字とか増やすとブラウザ死ぬので注意。」 / Twitter
Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「まぁ、大抵のコードだと正規表現はコード書く側が固定で書く事が多く外部入力の値をエスケープせずに正規表現としてそのまま使うケースは少ないかもだけど。 言語処理系を作ったりとか、正規表現自体をクエリで入力可能な検索サービスとかは正規表現エンジンの違いに気をつけた方が良いのは確実だな。」 / Twitter

blog

正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記
DSAS開発者の部屋:最近の Python-dev (2017-02)
正規表現の略記法 \d と \s と \w – ものかの
Unicodeで「漢字」の正規表現 – ものかの
Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
[JavaScript] 正規表現はコンパイルしたほうが処理速度が速いのか? - ログろいど
危険な正規表現 | MOYO Laboratory
Onigmoを最大49%高速化した話 | κeenのHappy Hacκing Blog
正規表現技術入門を読んだ | κeenのHappy Hacκing Blog
YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
正規表現からLLVM IRを生成する - めもちょー
その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 - Publickey
遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
The Unicode Blog: Enhancements to Unicode Regular Expressions
Proof-directed program transformation: A functional account of efficient regular expression matching | Journal of Functional Programming | Cambridge Core
本の虫: なぜC++0xの正規表現は、ECMAScript準拠なのか
本の虫: C++の正規表現ライブラリ: std::regex
本の虫: JavaScript規格の正規表現リテラルの文面の疑問点
An additional non-backtracking RegExp engine · V8
20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則 | 立命館コンピュータクラブ

POSTD

Sublime Textの「あいまい一致」をリバースエンジニアリング | プログラミング | POSTD
部分文字列とRegExpの領域の冒険 | 未分類 | POSTD
40行以内で正規表現エンジンを構築 | プログラミング | POSTD

GitHub

eriknyquist/librxvm: non-backtracking NFA-based regular expression library, for C and Python
nadrane/build-your-own-regex: This is a test spec driven guide to help you build a simple regex implementation
microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.

Zenn

みさわさんはTwitterを使っています 「正規言語は和集合や差集合、共通部分に関して閉じていて、正規言語は正規表現で記述可能なので、正規表現に &amp; や ! を加えることで表現能力が広くなることがないから、よくある実装でも入ってないのかな。 否定とかはキャプチャやらとの関係が面倒になりそうというのもあるが https://t.co/zNqImp6rGi」 / Twitter
みさわさんはTwitterを使っています 「ちなみに&amp;や!が実装された正規表現エンジンとして、例えば brics などがある。 https://t.co/Ip1GqXQJ5i」 / Twitter
RegExp (dk.brics.automaton)
j5c8k6m8さんはTwitterを使っています 「@Mi_Sawa 情報ありがとうございます。本書に追記させていただきました。 https://t.co/NCxAWpXm53」 / Twitter
論理演算可能な正規表現エンジンを作ろう
kinabaさんはTwitterを使っています 「世の"正規表現"は正規言語を超えたてたり実装がオートマトンじゃなかったりというあまり面白くない理由はさておき、正規表現→NFAの変換が|と*だけなら線形時間(なんななら正規表現文字列の添字を状態としてNFA作れる)けど、&amp;や!は二乗や指数で膨れるので実装の面倒くささレベル上がるというのがある」 / Twitter
kinabaさんはTwitterを使っています 「ブール演算できる正規言語処理ライブラリもっとカジュアルに使われて欲しいというのは非常に同意するものであるのですけど、現状、正規表現等の対象が文字列に特化しすぎなせいで応用が少ないのがまず問題かなあと。みんなもっと整数列とか一般のデータ列に正規表現マッチ気軽にかける世界になりたい」 / Twitter
正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
正規表現の必須要素を抽出する

Qiita

正規表現のJITコンパイラを実装する - Qiita
Brzozowskiのアルゴリズム - なぜDFAを2回反転すると最小化できるのか - Qiita

Wikipedia

正規表現 - Wikipedia
Regular expression - Wikipedia
Regular tree grammar - Wikipedia
Thompson's construction - Wikipedia

Twitter

並列化

Shinji KonoさんはTwitterを使っています 「正規表現自体が並列処理に向いてない説」 / Twitter
ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono 先頭から舐めていくステートマシンですからね… 同時に何百個も文を解析するなら並列化できるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@Kumappus ところが、計算クラス自体はNCで並列処理向きらしいんですよ。」 / Twitter
ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono えー…?(頭の上を小鳥がピヨピヨ回ってる状態)」 / Twitter
Miura HidekiさんはTwitterを使っています 「バックトラックを並列化できるかなー?」 / Twitter

がくぞさんはTwitterを使っています 「動的に正規表現を合成したい、みたいな話は大抵の場合parser combinator使った方が楽なのではと思ってしまうかなー」 / Twitter
OS作れないマンさんのツイート: "生成されるパターンに順序を付けて、文字列を整数で表現する考え方を @sinya8282 さんから聞いた気がする。 https://t.co/L3OjrTA2Ps"
kb10uyさんのツイート: "正規表現エンジン、パターンマッチできるということは逆にパターンからマッチする文字列を生成できるよな普通に考えて"
島鉄雄さんのツイート: "そのページ冒頭の電話番号の正規表現が複雑過ぎてビビる… 正規表現は結果であって、そこに至る途中経過がバッサリ無いのが問題だろう。 だから、電話番号は正規表現じゃなくて、BNFで記述してパーサジェネレータを使うべきだろうという事を理解した。 可読性が高いし、速度もそれ程問題無いはず。… https://t.co/MDhAwxkmTl"
tc39/proposal-regexp-unicode-property-escapes: Proposal to add Unicode property escapes `\p{…}` and `\P{…}` to regular expressions in ECMAScript.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜 - Eureka Engineering - Medium
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、FastCopy の UNIX WildCard 実装も NFA 。 (ただ、イプシロン遷移対応が面倒だった。あとUTF16対応も)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Readable Regular Expression が欲しいところ。 似たことを考える方は多い様子。 (expresso なんてGUIツールあるのね) https://t.co/KorHIXXCGX」 / Twitter
Readable regular expressions without losing their power? - Software Engineering Stack Exchange
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに include/exclude は UNIXワイルドカード形式サポートだけど、ビットシフトによる非決定性有限オートマトン(NFA)を使って作ってるので、さほど遅くならないはず。 (ビットシフトだと、NFA弱点の多状態を同時進行できる)」 / Twitter
yoh2さんはTwitterを使っています 「昔見掛けた、単純なくせにひどく時間がかかる正規表現ってこんなのだったかな。なにか違う気がする。 .*?.*?.*?.*?.*? 最短一致させるためのバックトラックが延々と走るのがミソだったような。」 / Twitter
抹茶氏さんはTwitterを使っています 「@yoh2_sdj ReDoS で調べてみて」 / Twitter
伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「正規表現を文字列だけではなく汎用的なグラフ構造(シーケンスも含む)に対応して、そのパターンに対するアクション(グラフの書き換え)という言語は出来うな気がする。Prologみたいな感じ」 / Twitter
Miura HidekiさんはTwitterを使っています 「Edisonとかはそんな感じか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「再帰的バックトラックを使わないNFA。こんな効率のいい正規表現のアルゴリズムがあったとは……。 http://swtch.com/~rsc/regexp/regexp1.html」 / Twitter
Regular Expression Matching Can Be Simple And Fast
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「正規表現文字列以外のマッチングモード引数がない言語だと、(?i) という文字列で ignore case になる実装はあるらしい。 https://t.co/CPh83px65l」 / Twitter
Regex Tutorial - Turning Modes On and Off for Only Part of The Regular Expression
Shiro KawaiさんはTwitterを使っています 「正規言語の範疇だからDFAで充分やろ←コンパクトになるとは限らない 遷移を手書きしてたら似たような状態が倍々で増えて行くぞ」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#TypeScript 正規表現を型安全にするライブラリ作ってみた😌 正規表現にマッチしている、つまり結果がnullなら、結果のgroupがundefinedじゃないのは自明だし、groupの中にはyearとかmonthなどがあるのも自明なので、それをTSコンパイラに分からせるやつです。 https://t.co/uBqYbpnYyw」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「ちなみに、これは裏側で型レベルで正規表現を解析してAST化し、それを更に解析してmatchメソッドの戻り値型のヒントにしています。 https://t.co/jsaeN6PeQu」 / Twitter
Russ CoxさんはTwitterを使っています 「Recommended: Shift-based DFAs, by @pervognsen. https://t.co/ZBw3Kj7QYF Tried it out for replacing Go's utf8.Valid. Don't get to see this very often: https://t.co/WydmztLl7I」 / Twitter
Shift-based DFAs
Shinya KatoさんはTwitterを使っています 「2つの正規表現が受理する言語が同じかどうかって簡単に判定できるのかな...?」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「@0x19f 正規表現が正規なら最小 DFA を作って一致判定できるよ」 / Twitter
Masahrio IdeさんはTwitterを使っています 「https://t.co/7RP8otO1uJ Rubyの正規表現エンジン OnigmoのVMをdirect threaded codeで書き直してみました。手元のM1macではいくつかのbenchmarkで性能が良くなっているように見えるけど、CIはfailしてるのでどこかでLinux環境を手に入れなくては...」 / Twitter
Support Direct Threaded VM by imasahiro · Pull Request #156 · k-takata/Onigmo

正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 すみません、文字コードについては詳しくないので頓珍漢かもしれませんが、文字の認識と正規表現の解釈は別のレイヤで行うべきではないでしょうか。つまり、正規表現エンジンには.はあくまである1文字しか渡されないと」 / Twitter
ViVi & vine - regexp
ja
The Man Who Fell From The Wrong Side Of The Sky:2017年5月24日分
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
ヘルプシステムで正規表現を使う - 増井俊之
JFLAP Minimize DFA - Google 検索
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「regexパッケージのオプション、「multiline」の意味が完全にJavaScriptとかの正規表現の「multiline」と逆やね... 😱 https://t.co/deSXp3vojW」 / Twitter
Text.RE.REOptions
🈚️うひょ🤪✒📘さんはTwitterを使っています 「数学的な意味での正規表現はとてもcomposableな概念なのに、プログラミングでの正規表現は微塵もcomposableでなくてつらいな(動的に正規表現を作るのがめんどくさいエンジニアの魂の叫び)」 / Twitter
mod_poppoさんはTwitterを使っています 「Rakuの正規表現(正規なのかは知らん)はその辺強力になってるとかいう噂(よく知らない)」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellのregex-applicativeはcomposableと呼べるんじゃないかな。使ったことないけど https://t.co/HikFEFMHjS」 / Twitter
regex-applicative: Regex-based parsing with applicative interface

grep

ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
第287回 Ubuntuで超高速grep「The Silver Searcher」を使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
The Silver Searcher のススメ - Qiita
grepより高速に検索できるag(The Silver Searcher)のインストール方法 - Qiita
超高速grep「The Silver Searcher(ag)」からhighwayに乗り換えた - Shoyan blog
grepの高速版「ag」 (The Silver Searcher) - メモ
agとptとripgrep,どっちがどうでどれを使えばいいのか調べた予習 - Lambdaカクテル
agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE
FadisさんはTwitterを使っています 「FreeBSDからGPLなソフトウェアを排除する努力が続いている話。標準のデバッガがlldbになりgdbがports行きになったほか、GNU grepを置き換えるBSD grepの実装、それによって不要になったlibgnuregexの削除が挙げられている https://t.co/2LiJMqJOe1」 / Twitter
FreeBSD Continues Work On Ridding Its Base Of GPL-Licensed Software - Phoronix

find

ドッグさんのツイート: "grep に対する ag みたいな,find のユーザフレンドリ版.find のユースケースの80%ぐらいを確保しつつ find より速くて出力が色付きで見やすい https://t.co/lZ8KiQdH4a"
sharkdp/fd: A simple, fast and user-friendly alternative to find.
jhawthorn/fzy: A better fuzzy finder
tavianator/bfs: A breadth-first version of the UNIX find command

編集距離

4人のロシア人の方法

「4人のロシア人の方法」で編集距離を高速化する - EchizenBlog-Zwei
Method of Four Russians - Wikipedia
MoFR

レーベンシュタイン距離 - Wikipedia
Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
いまさら編集距離 (Levenshtein Distance) を実装するぜ | takuti.me
編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学
レーベンシュタイン距離のアルゴリズムを理解する
【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
編集距離アルゴリズムを使って文字列を変換する (1/4):CodeZine(コードジン)
レーベンシュタイン距離の編集操作を統合してグラフ化する - Qiita
編集距離についての説明及びPythonでの実装 - Qiita
編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | POSTD
bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
七誌さんはTwitterを使っています: 「単語の類似度と言えばレーベンシュタイン距離なので記事を読んでいた。 Pythonのデコレーターは処理系へのアノテーションではなく、関数をラップする糖衣構文だと知って驚いた。 このメモ化の手法はLISPっぽい。 編集距離(レーベンシュタイン距離)を理解し、実装する https://t.co/m1jBS6A5po」 / Twitter
編集距離(レーベンシュタイン距離)を理解し、実装する - Qiita
retrageさんはTwitterを使っています 「これ、足し算と引き算は教師データの中に繰り上がりと繰り下がりが網羅されているので正解しやすく、掛け算では網羅されにくいので結果として不正解になりやすいのでは」 / Twitter
Brendan Dolan-GavittさんはTwitterを使っています 「Heatmaps of similarity between GPT-NeoX-20B's answers and the correct answer (using normalized Levenshtein distance) https://t.co/q6OPSv24Pb」 / Twitter

ソート

Blitsort

mattnさんはTwitterを使っています 「マージソートを繰り返してく安定ソート。場合によってはクイックソートより速いらしい。 / “GitHub - scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort” https://t.co/XnzA8vscHR」 / Twitter
scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort
mattnさんはTwitterを使っています 「マージソートの場合は左辺が常に完結するけど、完結させずにローテートさせていくらしい。」 / Twitter
mattnさんはTwitterを使っています 「普通のマージソートの場合はこの完結が次第に大きくなるけど、このソートの場合は L1 キャッシュに乗る程度で繰り返されるので速いと。なるほどー。」 / Twitter
mattnさんはTwitterを使っています 「ローテーションは block swap というアルゴリズムを使うらしい。 https://t.co/Q5LVVhbjyR」 / Twitter
scandum/rotate: A collection of array rotation algorithms.
mattnさんはTwitterを使っています 「インタフェースが qsort ぽく、エレメントのサイズと比較関数を渡せる様になってる。実用的。 https://t.co/hGuKF2eoc1」 / Twitter
blitsort/blitsort.h at f84083834ac78994fc92473f286337f62e2a0bee · scandum/blitsort

シュワルツ変換

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そうか、シュワルツ変換した上でのsortって未だにJavaScript標準にはないのね... underscore.jsとかがもてはやされるわけだ。Prototype.jsが恋しい。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「よく考えたらHaskellのData.Listモジュールにもないじゃないか。一度全要素を処理してからじゃないとsortできなくなっちゃうから、Data.Listのsortと相性が悪いんでしょうね。でも見た感じvector-algorithmsにもないなぁ。意外と需要ないのかね。」 / Twitter
鶴谷さんはTwitterを使っています 「@igrep sortOnってData.Listモジュールじゃなかったでしたっけ?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@TTsurutani すみません、そうでした!ちゃんとすべての要素を変換した上でsortしてる! https://t.co/6fvrzW4N3E」 / Twitter
https://hackage.haskell.org/package/base-4.16.0.0/docs/src/Data.OldList.html#sortOn

安定ソート - Wikipedia
Kazuho Okuさんのツイート: "なるほどMSBからradix sortすればcache localityが確保できるのか #spkai"
Kazuho Okuさんのツイート: "cache digestsの計算はradix sort使ったほうがいいんだろうな。存在すら忘れてた #spkai"
404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い
404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な
積炭酸さんのツイート: ".NET ReflectorでC#のArray.Sortの実装見てるんだけどおもしろいね.再帰の深さ制限したクイックソートを使っているようだ."
ミクミンP/Kazuhiro Sasaoさんのツイート: ".NET Framework 4.5 以降は標準実装のソートアルゴリズムがイントロソートになったのか https://t.co/yPIyT5uAro 最悪でも O(n log n) 。 4.0まではクイックソートで最悪 O(n^2) https://t.co/EvD4ZyGcmf"
Array.Sort Method (Array) (System)
Array.Sort Method (Array) (System)
積炭酸さんのツイート: "ついでにSTLのstd::sort(Dinkumware)も見てみたけど,やっぱり似たようなことしている.範囲の大きさを見てヒープソートに切り替えたり,挿入ソートに切り替えたりしている."
イントロソート - Wikipedia
Introsort - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「クヌース先生の本にqsortも分割してnが小さくなってきたら、挿入ソートに切り替えると書いてある」という話、昔、RingServerミーティングの道すがらShow(@shownakamura)さんから「qsort→挿入ソートという切替が、常時、挿入ソートになるミスが混入してて困った」というネタと共に聞いた記憶。… https://t.co/3fgdn2W6i8"
satさんのツイート: "昨日だかにバブルソート(O(n^2)のほうがクイックソート(O(n*log(n)))より速いケースいついて少し触れたので、小さな記事を書いてみました。バブルソートのかわりに挿入ソートを使っていますが、両方O(n^2)なので s/挿入/バブル/ と読み替えてもだいたいOKのはず https://t.co/H5nJZhPbzq"
ソートの計算量と現実のプログラム - Qiita
satさんのツイート: "「バブルソートのかわりに」以降は忘れてください…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、WindowsSDKのqsortはループ実装かつ、ピボット配列が62個の固定長で確保されている(64bit版)。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "qsortの最悪ネスト数はn=最大ピボット数では?と思ってしまうが、2分割するたびに個数の少ない方から先に処理するというトリックで、最大log2N を実現。 さらに小さなエントリは挿入ソート切り替えのため、log2 2^64 = 64から2減らして、62個の配列でOKという話。… https://t.co/RA77dPcHC1"
高速な比較安定ソートアルゴリズム「颯式」の紹介 - Qiita
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「世界一単純な? ソートアルゴリズム。 for i=1..n: for j=1..n: if a[i]&lt;a[j]: swap(a[i], a[j]) 一見バブルソートのように見えるが、if判定の不等号の向きがバブルソートとは逆になっているのに、それでもソートされる。 https://t.co/1qSnomUrUR」 / Twitter
[2110.01111] Is this the simplest (and most surprising) sorting algorithm ever?
ドッグさんはTwitterを使っています 「- https://t.co/e5U4T9x2vE musl は smoothsort(ヒープソートの亜種) - https://t.co/73CC4NBnfm glibc は配列のサイズによって分岐してる.サイズが大きいと改良版クイックソート使って in place にソートしてる」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「「ライブラリ使うから関係ない」って反応が意外に多くてびっくり。自作しないまでも、技術の良し悪しをどう判断するんだろう。 例えばクイックソートが常に良い訳ではなく、「100万件から上位10件」を出力みたいなケースなら、単純ソートを途中で打ち切る方がマシだったりする。」 / Twitter
™さんはTwitterを使っています 「quick sort の計算量が理論側の「常識」だとしたら,実装側の「常識」は多分 latency numbers https://t.co/FxXsGvLi3w かしら.」 / Twitter
Teach Yourself Programming in Ten Years
Approaching Heapsort via Lazy Mergesort - HackMD
d.y.d.

スペルチェッカ

GNU Aspell - Wikipedia
欧文スペルチェッカー GNU Aspell — 名無しのvim使い
Rockridgeさんのツイート: "Fx55:Googleドキュメントなどアプリ側でスペルチェッカーが働く場合は、本体側のスペルチェッカーを動作させないことで無駄な処理を省いた。 / “1330912 - Don't init spell checker for …” https://t.co/CPLktJo8M0"
ブルームフィルタ - Wikipedia
Bloom filter - Wikipedia
確率的データ構造・ブルームフィルタについてのまとめ - kakts-log
ブルームフィルターとは
Shiro Kawaiさんのツイート: "Bloom filterはCommon Lispで実装されたものを以前仕事で使ったことあるけど気をつけて型宣言すれば非常に速いっす。Allegro CLではビットベクタのインデックスの範囲チェックを省くのに型宣言での値の範囲指定がクリティカルだったような覚えが… https://t.co/0VaNFjJg88"
Common Lispで動くブルームフィルタ作った - Lambdaカクテル
C++でブルームフィルタを実装する方法 | プログラミング | POSTD
渋川よしきさんのツイート: "Wordの文法チェックについてすごい書かれている。.netでもCOMでもいいからAPI化してほしいって10年ぐらい思ってる。… "
確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | プログラミング | POSTD

CSV

CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家
rfc4180
CSVの国際標準 RFC 4180をいまさら読みなおしてみた - MONEX ENGINEER BLOG │マネックス エンジニアブログ
RFC4180だけにとどまらないCSVフォーマットのおすすめお作法 – 株式会社ルーター

blog

Tociyuki::Diary

Emacs 風のキー入力部 - Tociyuki::Diary
Emacs 風テキスト・エディタ向けの端末キー入力手順 - Tociyuki::Diary
Emacs 風のキー入力部 (2) 単独 ESC 文字の受け入れ - Tociyuki::Diary
行の折り返し表示 その 1 - Layout クラス - Tociyuki::Diary
行の折り返し表示 その 2 - Line を求める - Tociyuki::Diary
行の折り返し表示 その 3 - キャッシュ - Tociyuki::Diary
テキスト・エディタの Undo - Tociyuki::Diary
テキスト・エディタのカーソル移動 - Tociyuki::Diary
テキスト・エディタのエコー領域 - Tociyuki::Diary
テキスト・エディタの文字列補完 - Tociyuki::Diary
テキスト・エディタの上下タイリング・ウィンドウ - Tociyuki::Diary
テキスト・エディタのウィンドウ - Tociyuki::Diary
テキスト・エディタのミニバッファ - Tociyuki::Diary
テキスト・エディタのインクリメンタル・サーチ - Tociyuki::Diary
テキスト・エディタのマルチ・バッファ - Tociyuki::Diary
テキスト・エディタの行の折り返し表示 その 4 - キャッシュ更新の改善 - Tociyuki::Diary
テキスト・エディタの interactive 引数指定の正規表現 - Tociyuki::Diary

本の虫: なぜedはクソなのか
Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
[速報]マイクロソフト、Webブラウザで動作する「Visual Studio Online」発表。VSCodeベース、IntelliCode、Live Share、拡張機能にも対応。Microsoft Build 2019 - Publickey
JetBrainsが軽量なコードエディタ「Fleet」発表。エディタとバックエンドの分散処理、多言語対応、共同作業対応など - Publickey
「IntelliCode」がさらに進化し、行全体を候補として提案。まるでAIとペアプロしているように - Publickey
テキストエディタを作る – GitHub 出張所 – プログラム関係のブログはここに
Goで作るテキストエディタ - Sansan Builders Blog
ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた - mizdev
Incremental Static Regeneration で実現する次世代のサーバーアーキテクチャ - mizdev
七誌さんはTwitterを使っています 「実際に使ってみたけど、メッセージが来た直後に取得すると結構な頻度で失敗する。0.1秒ほどウェイトを入れると問題なくなった。」 / Twitter
クリップボードの履歴をとるアプリの作り方 | 鳩でもわかるC#
クリップボードの内容の変化を知る方法 | 鳩でもわかるC#
テキストエディタのはなし - Message Passing
Toru MakabeさんはTwitterを使っています 「括弧に色つけるだけでしょ とか言う人は正座して読んでください / How We Made Bracket Pair Colorization 10,000x Faster https://t.co/2v2qybjK7G」 / Twitter
How We Made Bracket Pair Colorization 10,000x Faster In Visual Studio Code
トデス子'\さんはTwitterを使っています 「VS Codeの対応括弧色づけ機能。最初は拡張機能だったがパフォーマンスが悪いので本体に統合し、様々な最適化が可能に。括弧の対応を2-3 tree構造のASTとして持ち、絶対位置を保持しないことでクエリ(指定範囲のAST取得)がO(log^3 N)、更新(トークン長E)がO(log^2 N+E)に。」 / Twitter
トデス子'\さんはTwitterを使っています 「トークンの解釈結果はインクリメンタルに来るので、終わるまでは旧ASTを参照しつつ裏で新ASTを更新することでファイル末尾のハイライトがチカチカするのを防ぐ。ASTのクローンはCoWで速い。」 / Twitter
トデス子'\さんはTwitterを使っています 「JSの整数は2^53までいけるので、26ビット整数のタプルをひとつのnumberにエンコードできるぜ→V8は2^31以上の整数をヒープに追い出すので効果がなかったぜ……」 / Twitter
画力・博士号さんはTwitterを使っています 「((簡潔データ構造チャンス!)と思ったけれども2-3木で十分だったのか)」 / Twitter

GitHub

rhysd/NyaoVim: Web-enhanced Extensible Neovim Frontend
rhysd/neovim-component: <neovim-editor> WebComponent to embed Neovim to your app with great ease
vim/vim: The official Vim repository
welcome home : vim online
antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.
DigitalMars/me: Micro Emacs in C
GrenderG/tte: tte (tiny text editor) is a terminal based text editor written in C from scratch.
adsr/mle: a small, flexible console text editor (C)
martanne/vis: A vi-like editor based on Plan 9's structural regular expressions
lpan/viw: VI Worsened, a lightweight and fun VI clone.
hellerve/e: A dead simple editor
maildrop/a2pr-j

POSTD

15年目のVim | POSTD

OSDN

Emacs

Emacs超入門[1]:Emacsの基本的な使い方とショートカットキー | OSDN Magazine
Emacs超入門[2]:基本的なカスタマイズ方法と定番カスタマイズ例 | OSDN Magazine
EmacsでGPL違反が発覚、Stallman氏曰く「悪い間違いを犯した」 | OSDN Magazine
GNU Emacs 22が正式リリース――6年ぶりの新規バージョン | OSDN Magazine
レビュー:Emacs 22:機能強化で再び注目を集める伝統的エディタ | OSDN Magazine
Emacs 23.2リリース、入力補完やクラスブラウザなどを備えたプログラミング支援ツール「CEDET」を標準搭載 | OSDN Magazine
Emacs用の開発支援ツールを集めた「CEDET」、バージョン1.0が登場 | OSDN Magazine
バージョン24系初となる正式版「Emacs 24.1」リリース、パッケージ管理システムの導入などが行われる | OSDN Magazine
Webブラウザを内蔵した「Emacs 24.4」リリース | OSDN Magazine
「Emacs 25.1」リリース | OSDN Magazine
「GNU Emacs 25.2」がリリース | OSDN Magazine
「Emacs 25.3」が緊急リリース、悪意あるLispコードを実行する脆弱性を修正 | OSDN Magazine
「GNU Emacs 26.1」リリース | OSDN Magazine
「GNU Emacs 26.2」リリース、Unicode 11をサポート | OSDN Magazine
「GNU Emacs 26.3」リリース | OSDN Magazine
「Emacs 27.1」が公開、Portable Dumperを採用 | OSDN Magazine
「GNU Emacs 27.2」公開 | OSDN Magazine

ブラウザ上で動作するHTML編集コンポーネント「CKEditor 5 v12.2」リリース | OSDN Magazine
ブラウザ上で動作するリッチテキストエディタ「CKEditor 5 v12.3」リリース、文字数カウント機能などが加わる | OSDN Magazine
JetBrainsが各種IDEにリモート開発を導入、次世代IDE「Fleet」も発表 | OSDN Magazine

Qiita

ctrlp.vimの使い方まとめ - Qiita
自作エディタをつくる Advent Calendar 2016 - Qiita
VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】 - Qiita
HTML内でIDをつけた要素はJavaScriptのグローバル変数に格納される - Qiita
メニュー使っていますか? - Qiita
いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
Emacs の Major Mode におけるインデント計算を楽にする smie.el - Qiita
ゴリサンタですさんはTwitterを使っています 「:helpgrep でヘルプをgrepする事ができます 正確なwordを知らなくても、関連単語を使って絞り込めます 例えば :helpgrep job でgrepするとjobを含むヘルプがquickfixで開かれるので、その中からほしい情報を絞り込めます #vimtips_ac」 / Twitter
Vim Short Tipsのカレンダー | Advent Calendar 2021 - Qiita

Wikipedia

vi - Wikipedia
vi - Wikipedia
nvi - Wikipedia
nvi - Wikipedia
Vim - Wikipedia
Vim (text editor) - Wikipedia

Twitter

その他

シェル

解答略さんはTwitterを使っています: 「個人的には、zsh, awk, sed, textutilsといったUNIX系のCUIツールを現代的な視点で全て刷新してほしい。人間工学を取り入れつつ、頻出コマンドを全て1文字にしてタイプ数を現行シェルの半分以下に削減し、mapやfilterといった関数型言語の知見を取り入れた最強のツールを流行らせてPOSIXを滅ぼしてくれ」 / Twitter
解答略さんはTwitterを使っています: 「vimのノーマルモードでは、部外者に理解不能のキーコマンドを連打して画面をどんどん書き換えるけど、あんな感じでシェルを操作したい。」 / Twitter
解答略さんはTwitterを使っています: 「3年ほど前に「vimのようなコマンド入力でシェルを操作する拡張」を自作した。もうこれ無しでは生きれない。 僕以外の人類、みんなめっちゃ頑張ってコマンドラインにタイピングしまくってて笑う。あんまりTAB補完連打してたら小指壊すで https://t.co/aMkYfSyLgB https://t.co/PfrhQab6Zb」 / Twitter
解答略さんはTwitterを使っています: 「リポジトリはこれ。snippet.zshをsourceして、bindkeyをいくつか設定すれば動く。awkもperlもsedも使わず、素のzshだけで動くように作ってあるし、多分どこでも動く。ソースコードは短いけどキレイじゃないので、こういうの詳しい人がいたらどんどんフォークして改良版作って https://t.co/9cZL5zqrFA」 / Twitter
kaitou-ryaku/zsh-simple-snippet

グローバル変数

なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「https://t.co/4M2Vow6Yzw に報告してあるけど、今のGeckoのエディタって、変更直前にSelectionを変更、各メソッドはSelectionを取得してその範囲を編集ってやってる。」 / Twitter
1555919 - Make editor not update Selection directly
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「これ、分かりやすく言うと、グローバル変数を予め設定しておかないと動かないメソッドだらけって話。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「しかも、このグローバル変数にあたるSelectionの変更がとにかく遅い。DOMのRangeやSelectionの仕様が速度を全く考えていない仕様なのでそこのパフォーマンスの悪さは仕方ないものの、とにかく遅い。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「なので、editorをSelectionと切り離してしまえば速度も上がるし、コードも綺麗になるし、Chromeとの互換性も簡単に実現できるようになる(ただしものすごい行数の変更が必要)。」 / Twitter

Undo/Redo

ファイルシステム

Kazuho OkuさんはTwitterを使っています: 「ほんと、ディスクなんて大抵空き容量あるんだからさあ、その空き容量使って変更を巻き戻しできるようにしてよ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「unco は ld_preload であるがゆえに色々制限あるけど、ユーザランド fs でディレクトリ単位で任意の時点にロールパック可能とかキレイに作れるんじゃないのという」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@smbd 惜しい感じなんですよね。スナップショットだとちょっと粒度が大きいというか。あっコマンド間違えた、取り消し!みたいなことがしたい」 / Twitter
かげさんはTwitterを使っています: 「@kazuho すごい粒度の細かい自動コミット(ワンストロークごとコミットみたいな。そこまで言わなくても改行一回デリート一回コミットでも良い)内蔵の開発環境が欲しいです」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「fsのスナップショットじゃなく、ディレクトリやファイルのスナップショットがほしい、と言えばいいのかな。ボリュームバックアップとTime Machineの違いと同じ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「https://t.co/Z71pZUzeP0 これですね。すごく良い https://t.co/cbAwUyS7hE」 / Twitter
text.dvi
fjのYog教祖様さんはTwitterを使っています: 「@kazuho ElephantFS「btrfsやzfsは下がってな。こいつは俺でないと相手できねぇ事を言ってやがる。」」 / Twitter

じーくどらむすさんのツイート: "「階層構造を活かしたUndo」について考えていたが、これ実現したら結構使えそう。Undoって時系列で1本しか無いけど、しばらくたって「あの部分だけUndoしてぇー」って時に、そこの木だけにフォーカスしてUndoが可能。"
じーくどらむすさんのツイート: "ただし、RedoできるのはUndo実行時の木にフォーカスしている時のみ、アクションのChainが複数の木にまたがる場合はChainが分解される、などの仕様で色々と歴史の部分改ざん問題を回避する必要がある。"
なかのん&マジックさんのツイート: "ちょっと前に、GeckoのUndo/Redo周りを見てたけど、今の一本道なスタックでもキツいのに……"
なかのん&マジックさんのツイート: "まあ、どっちみち、ブラウザでやろうと思うと、消したハズのDOMノードをずっとundo/redoのスタックに積んでいかないといけないとか、ちょっとメモリに優しくない(JSでオブジェクトをつかんだまま、ツリーに戻って来たものを参照するかもしれないから)。"
なかのん&マジックさんのツイート: "undoが壊れるエディタとかまじで存在してて引く。"
Kazuho OkuさんはTwitterを使っています: 「何度でも言いますが、21世紀なんだし、エディタだろうがファイルシステムだろうがウェブ上のシステムだろうが、計算機上のすべてのUIはアンドゥ可能であるべきだし、そうじゃないシステムには unco 投げつけるべきなんですよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Undo managerなんて、2、3年前にrniwaさんが提案してたやつだよ https://t.co/7YTMLgsqKB」 / Twitter
Undo API

リサイザ

なかのん&マジックさんのツイート: "まだNightly 62での集計だけど、FirefoxのHTMLEditor固有の機能である、画像やら<table>やらのリサイザを使ってる人、予想通り少数ながら、予想外に使ってる人は使ってるって感じの数字だぞ?? https://t.co/OIcPy4cqO7 #もずでぶ"
Measurement Dashboard
なかのん&マジックさんのツイート: "1が意味するのは、実際にリサイザが表示されたHTMLEditorで、一回ハンドルをドラッグしてリサイズしたってこと。10の人なんかは10回リサイズやってるってこと。"
なかのん&マジックさんのツイート: "さすがにposition:absolute;の編集機能はほとんど使われてないな。 https://t.co/RJrdEtaHDo"
Measurement Dashboard
なかのん&マジックさんのツイート: "<table>エディタの方もサンプル数からするとまあ予想通りか。 https://t.co/RCCCCbN7zo"
Measurement Dashboard
なかのん&マジックさんのツイート: "Beta 62、Release 62での数字を見てからの判断になるけど、デフォルト非表示は問題なさそうなユーザ数だけど、リサイザのユーザ数を見るとややリスキーではあるな。"

解析木

DrumatoさんはTwitterを使っています: 「パーサがいきなりASTを作らずに一度具象構文木(解析木)を作ってから意味動作でASTにする実装のメリット,何があるだろう.」 / Twitter
市川 真一さんはTwitterを使っています: 「テキストエディタとかで、解析木生成パーサを流用する場合に対応する括弧へのジャンプが実装できそうな気がしています https://t.co/RKqMVsbb3C」 / Twitter
星にゃーんさんはTwitterを使っています: 「複雑な文法を持つ言語の場合パーサにいきなりASTを作らせるのが難しい場合がある(例えば演算子を自由に定義できる言語)、コンパイラが具象構文木を持ってるのでそれを出力するだけでコードフォーマッタができる、とか? https://t.co/9p2Yb1n7MK」 / Twitter
星にゃーんさんはTwitterを使っています: 「この二つは具象構文木である必要があるかどうかは微妙。ASTに加えてコメントとカッコの情報を持っていれば充分な気もする」 / Twitter
星にゃーんさんはTwitterを使っています: 「お気持ちでパーサを眺めると、具象構文木を生成する構文解析と具象構文木から抽象構文木への変換の合成と思うことができ、そうするとこの問題はどのぐらい両者を分離するかの程度問題と捉えることができる…?」 / Twitter
DrumatoさんはTwitterを使っています: 「とても共感できる意見をいただきました, 個人的に思ったのは,具象構文木からASTに変換する処理はトークンストリームから作るより随分シンプルなコードになるはずなので,そういう利点を持っていそう. 字句解析と構文解析を分けるかどうかとか,構文解析と意味動作を分けるかとかいう話とベクトルは一緒か」 / Twitter

検索

Takashi KawasakiさんはTwitterを使っています: 「いつも思うんだけど、こういう検索機能、ファイル名も検索対象に含めてほしいんだよね。例えば、プロジェクトに含まれるファイルのファイル名を全置換したい場合、ファイル名とそれを参照しているファイルの中のファイル名を同時に置換したいことが多い。 https://t.co/LiIZmFoKhq」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Javaのネームスペース名変更とか軽く死ねる。」 / Twitter

平易なエディタ

Kazuho OkuさんはTwitterを使っています 「Viとかnanoみたいなキーバインディングは調べて覚えろ的なスパルタじゃなくて、コンソールで使える軽量の、メニューがついてるエディタってないのかな。軽量の!!!!だからね。EmacsはNGワードだからね!!!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「この件 @cwyang さんに教えてもらった mc をモノクロモードで使ってるけど、キーバインド覚えなくても使えていい感じ https://t.co/n6hWy8oNFO https://t.co/5w4DnpSnrS」 / Twitter

LISP 構造エディタ

SODA NoriyukiさんはTwitterを使っています 「昔のLispではよくある拡張だったはず。Z80上のLispでもあったと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「UTILISPでは )))) は ] と一つで書ける。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@n_soda 括弧の数を数えなくて便利だと思って使っていると,後からデバッグや変更・再利用したいときに面倒な思いをします.結局Emacsで括弧を最後まで閉じる関数を書きました.」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@wtakuo 今みたいなスクリーンエディタによる支援がなかった時代には有用だったんですが、現代では不要ですよね。 そういえば当時のLispには構造エディタ https://t.co/sEXFvuCjoZ なんてものもありました…」 / Twitter
情報学広場:情報処理学会電子図書館
Kota Mizushima (on a diet)さんはTwitterを使っています 「今こそ汎用(N分木)木構造エディタが求められているのじゃなかろうか。汎用テーブルエディタがExcel(スプレッドシート)だとして。」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「Excelの資料からJSONファイルの生成をするコードが出来た。 なぜ人類はJSON形式のデータをExcelの書類で設計しようとするのか」 / Twitter

Emacs

ネイティブコンパイルEmacsの登場 | 日々、とんは語る。
Miura HidekiさんはTwitterを使っています 「でも、あまり速くなっていないな。おそらくバイトコードをそのままCコードに機械的に置き換える奴だろう」 / Twitter
Miura HidekiさんはTwitterを使っています 「ソース見たら、簡単な型解析を行っているようだ。おもしろい https://t.co/dbeT2DtaEW」 / Twitter
emacs.git - Emacs source repository
Miura HidekiさんはTwitterを使っています 「SSAなんて不穏なワードを発見した。奴ら本気だ」 / Twitter

Monaco

Google、VSCodeの代替を狙う「Eclipse Theia」コードエディタをクラウド統合開発環境として採用。Google Cloud Shellに統合を発表 - Publickey
Makoto Kato ︎︎さんはTwitterを使っています 「cloud shell editorはTheia使ってるってことはエディタ部分はmonacoってことだよな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GitHub CodespaceもGoogle Cloud Shell Editorもmonaco使ってるし、Geckoの自動テストにmonaco入れたほうがいいのかなぁ。https://t.co/TS7F0hjf9C が修正されたんで、致命的な問題はなくなったように見える (GeckoView除く)」 / Twitter
Fix composition logic for Firefox by belcherj · Pull Request #106873 · microsoft/vscode
Makoto Kato ︎︎さんはTwitterを使っています 「Eclipse TheiaってもともとTypeFoxが作ったエディタで、中身はVSCodeのエディタエンジン、Manacoを使ったものだけど、みんな分かってないのが笑えるというか、OSSとか発表されたらまずコード見るでしょ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「s/Manaco/Monaco/」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「いろんなものがMonacoによって駆逐されてしまうのかなぁ...」 / Twitter
Makoto Kato ︎︎さんのツイート: "Visual Studio Codeだって、そもそもVisual Studio Onlineのために作ったmonacoをElectronアプリにしてってところからなんだし、そもそも先祖返りしただけではと"
Makoto Kato ︎︎さんのツイート: "今まで存在したVisual Studio Onlineがなかったことになった件について"
Makoto Kato ︎︎さんのツイート: "Visual Studio OnlineはAzure DevOpsに名前変わって、Visual Studio Onlineが新たに発表されたのはわずらわしいので、アップルみたく"新しいVisual Studio Online"って名前だったらな"
Makoto Kato ︎︎さんはTwitterを使っています 「Monaco (VSCode)のビルド、LinuxよりもWindowsの方が簡単にビルドできるの、さすがMicrosoft感する。(Windows Termianlみたくrazzleコマンドでビルド環境設定できたらよりMicrosoft感)」 / Twitter

Vim

Masaki HaraさんはTwitterを使っています 「Vim: 最終行が末尾改行を含む JetBrains: 最終行が末尾改行を含まないが、最終空行には移動できない (IdeaVimの場合?) VSCode: 最終行が末尾改行を含まない」 / Twitter
Masaki HaraさんはTwitterを使っています 「汎用エディタとしてのVim, Ruby/Go用としてのJetBrains, Rust/TypeScript用としてのVSCodeを併用してるんだけど、3者ともに末尾改行の扱いが違うのでたまにミスる」 / Twitter
Kazuho Okuさんのツイート: "ログをテキストファイルにコピペする際に、vim起動して i して Cmd-V して遅くてウギャーってなるの1日に1回くらいある 正解は pbpaste > file なんだけど"
島鉄雄さんのツイート: "Emacs (substring "abcd" 0 1) ⇒ "a" (substring "abcd" 1 1) ⇒ "" Vim 'abcd'[0:1] ⇒ ab 'abcd'[1:1] ⇒ b これからも分かるように Vim は文字と文字の間という概念が無い。 だから文字を挿入する時に、文字の前に挿入する(insert)か、後に挿入する(append)かというコマンドが存在するのである。"
島鉄雄さんのツイート: "Emacs と Vim の違い Emacs のカーソルはポイントと言って文字と文字の間に位置しているから行末は文字の後ろに移動する。 Vim は違って文字の上に乗っているから行末でも文字の後ろには行かない。 Emacs → テクスチャの UV 座標指定 Vim → ファミコンなどのキャラクタベースの座標指定 と言える"
10/27,28はOSC Tokyoさんのツイート: "個人的によく使う、少しadvancedなvimコマンド3選 ・カッコの中を消す: di( ・複数行をコメントアウト: C-vで行頭を選択しI// ・空行単位の移動: {、}"
Vimのパッチ存在確認処理を速くした - プログラムモグモグ
SODA NoriyukiさんはTwitterを使っています 「emacsの場合 CTRL-_ (CTRL-/) が undo なので、この「直前に編集した場所に戻る」目的で CTRL-_ CTRL-p CTRL-_ とかしたりするな。undoの副作用でカーソルを戻して、二回目のundoでそのundoをキャンセルするという。 CTRL-p のところは連続undoを阻害する目的なので副作用の少ないコマンドなら何でもOK」 / Twitter
monaqaさんはTwitterを使っています 「コーディングのとき、一旦別の場所に飛んでコード片をコピーしてから、元いた場所にすぐ戻ってペーストする…そんな場面、よくありますよね。Vimなら g; と押すだけで"直前に編集した場所"にジャンプできます。g;/g,は"チェンジリスト"に登録された箇所を行き来できる便利コマンドです。 #vimtips_ac」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Vimで表示上の行(screen lines)間を移動したいときはgj/gk。もしかしてと思ってg0と入力したらちゃんと表示行の先頭に飛べた。日本語で長い段落書いていると助かる / “Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom” https://t.co/0Pbs8Go1QS」 / Twitter
Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom
smegheadさんはTwitterを使っています 「@igrep vim操作の一貫性は良いですね。 g$は良く使います。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Vim 使いだけど基本的に ESC じゃなくて C-[ 使うから実は ESC あんま要らない」 / Twitter
mattnさんはTwitterを使っています 「Windows の Vim を使う時に ^X^F でパスを補完すると shellslash オプションに影響して \ でセパレータが補完されるのだけど、shellslash を設定すると今度は色んな動作がアレになる可能性があって、致し方なく毎回 \ を / に書き換えてる皆さん、completeslash というオプションがあってですね...」 / Twitter
mattnさんはTwitterを使っています 「これソースでパスを補完する時に \ にするか / にするかを決定する専用のフラグでして set completeslash=slash にしておくと HTML のソース等を書く際には便利です。」 / Twitter

Windows

マイクロソフトサポートさんのツイート: "メモ帳で「F5」を押すと、現在の日付と時刻が挿入できます。ちょっとした会議のメモなど、日付を入れておきたい文書の時に便利ですよ。 #MSHelpsJP"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸は(空白インデントモードだと)インデントを1段解除するには「空白をひたすら削除」or「行選択してから SHIFT+TAB」(or そのマクロ化)しかない様子。 Python推奨な空白インデントだと、軽快に書きづらい点の解消は難しそうかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸サポートの方に、マクロでショートカット呼び出しの方法は聞いたので、それを試してみよう。それでもしっくり来ない場合は、他のエディタにお引越しするかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸のサポート掲示板、コメントが付く速さと内容(開発の人が書いている?)は見習うべきものがあるなぁ。"
Masaru IritaniさんはTwitterを使っています: 「同じ編集の繰り返しを自動的に検出してくれる AI-assisted Refactoring は、リファクタリングの時間も誤りも削減してくれる素晴らしい機能ですね。 https://t.co/nrx4QynCcw」 / Twitter
Visual StudioさんはTwitterを使っています: 「We're expanding the application of #AI to accelerate learning and improve development agility with two new capabilities: whole line completions and refactoring. Read more: https://t.co/6Tn1X1tELr https://t.co/Z8USvIvO6Y」 / Twitter
Re-imagining developer productivity with AI-assisted tools | Visual Studio Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「久々にWZを見た、、、最初の頃使っていた。 ただ1プロセス・マルチスレッドのため、バグがあると他の編集中ファイルも巻き添えに全て死ぬので、1年くらいで利用中止したっけ、、、」 / Twitter

@d_toybox

histric-1

なかのん&マジックさんのツイート: "実際に書いたこと無いんだけど、実装してる側からすると、アプローチがマズいものが多々ある。"
なかのん&マジックさんのツイート: "Geckoは基本的にはエディタの動作のグレーゾーンはBlinkに合わせて行くので、bugzillaにバグ報告もらえたら一番確実。数ヶ月後に修正されてることが多いので、そのときに、サイト側のハックを削除できるようになる。"
なかのん&マジックさんのツイート: "Blinkのエディタの動作は手堅くて良いんだよね。単純にmakes senseな事が大半で、やりやすい。"
なかのん&マジックさんのツイート: "私が担当してるジャンルだと、イベント周りのBlinkの動作は気に入らないこと多いんだけど、エディタ周りは、なるほどねって感心すること多い。"
なかのん&マジックさんのツイート: "仕事では今でも秀丸でソースコード書いてるけど、色々と不満もあってどうしたもんかとは思う。ただ、編集能力にはほとんど不満はなくて、素早くファイルを開いたり、タブを検索できないという、ファイル間のナビゲーションの不満が大きい。"
なかのん&マジックさんのツイート: "昔、ダメもとでスマートロケーションバーの機能を提案してみたんどけど、案の定、却下されてて、なんというか絶望感しかない。"
なかのん&マジックさんのツイート: "秀丸の開発者さんは複数のファイルを同時に編集しないのかな?と不思議に思うぐらいに、この辺に改良がみられないんだよなぁ。"
なかのん&マジックさんのツイート: "は? 一つのEditorBaseに複数のスペルチェッカーを登録できるの?"
なかのん&マジックさんのツイート: "editorとspellcheckerと謎のテキストコンテンツを管理してくるクラス、変に別モジュールに分割されててややこしい。"
なかのん&マジックさんのツイート: "うん? resizeイベントって要素ごとに発火してたっけ……? / 強力なポップアップブロックが追加された「Chrome 64」安定版リリース - GIGAZINE https://t.co/Y8dxXb29U7"
なかのん&マジックさんのツイート: "それはさておき、Geckoのresizeイベントは発火しちゃいけないloadイベント前に発火しちゃってないのかな。この前その仕様知ったものの、まだ調べてないや。"
なかのん&マジックさんのツイート: "Firefox for Androidで読み込み終わると同時に再読込が始まるページがあるの、resizeイベントがどうこうってのを見かけた記憶がある。"
なかのん&マジックさんのツイート: "エディタでは、しばらくやれないけど、重大なバグがあって、Enterキーとかでパラグラフが分割されるとき、Geckoだけ後方にある要素が既存の要素になってて、他のブラウザは前方にある方が既存の要素になる。このせいで、undo/redoにちょっと無理あるし、どうにかしないと。"
なかのん&マジックさんのツイート: "BlinkはBlinkでundo/redoが直感からズレるケースがあるの見つけてるけど、まあ、そんなことやるWebアプリは無いやろなっていうレベル。Blinkはどうも、新しい要素をその次にある要素と紐付けて保存してるらしい。"
なかのん&マジックさんのツイート: "細かく見てると気に入らない動作もあるし、凄い変なバグも見つかるんだけど、総じてBlinkのエディタは良くできてるというか、手堅いなっていう印象。"
なかのん&マジックさんのツイート: "Geckoのエディタは、自動テストが無かった頃に作られてから放置されてたんで、単純に使わなかった時の挙動がとにかく怪しい。"
なかのん&マジックさんのツイート: "とりあえず、ブラウザのエディタの何がしんどいって、undo/redoの前に、ユーザーの編集以外に、JSでDOMツリーを変更されてる可能性があるわけだ。基準をどうするのか考えないと、変なところに要素を作ったり、移動したりすることになる。"
なかのん&マジックさんのツイート: "Twitterのツイート欄にWebページの内容を貼り付けると、一瞬だけスタイルそのままのリッチテキストが表示されて、すぐにプレーンテキストになるでしょ。ああいう感じで、機能制限やブラウザ感の差異吸収のために、結構、JSでエディタの内容っていじられるのよね。"
なかのん&マジックさんのツイート: "Geckoの長年の不要なkeypressイベント(仕様で後からほかのブラウザの事情から不要と定義されたんだけど)に対処している、reactのソースコードを見つけて、ホントに申し訳ない。数ヶ月以内になんとかしたい。"
なかのん&マジックさんのツイート: "Webアプリ開発者の負担を減らすために、IMEの未確定文字列がある場合にもkeydownとkeyupは発火するべきってのも、同時にリリースしたい。"
なかのん&マジックさんのツイート: "とりあえず、keypressの方は最低限、どこを書き替えないといけないかを洗い出したけど、自動テストでeditorの挙動が全く引っかからなかったんで、自動テストでテストされてない機能が他にもありそうで、見通しはまだまだ。"
なかのん&マジックさんのツイート: "まあ、Thunderbirdを壊さないように、また、FirefoxのUIのコードの書き換えを最小限にするためにトリッキーなことしてるから、自動テストで引っかかりにくいんだけど。"
なかのん&マジックさんのツイート: "ブラウザのHTMLエディタは私が誤解してないなら、IEが最初に実装して、Netscape/Mozillaが独自に追走、そしてWebKit/BlinkがIEの動作をより研究して実装って流れだと思う。なので、Geckoの動作が一番違ってて厳しい。"
なかのん&マジックさんのツイート: "Geckoの動作をとっととBlinkと同じにすれば良いやんって思った人は互換性とか分かってなさ過ぎなのでお願いします。"

histric-2

道化師さんのツイート: "それにしてもWebブラウザ上で動かすタイプのテキストエディタ、よくやるよなぁ。textarea が直接的な拡張に対応してないが為にみんなクッソ涙ぐましい努力して実装してるよね・・・。"
なかのん&マジックさんのツイート: "正直なところ、テキストエディタをプログラミング勉強中に頭ひねって作ってた身としては、ブラウザのHTMLエディタがなんであんな高速に動いてるのか不思議だったりする。あんだけ、DOMオブジェクトを生成・破棄繰り返す上にエディタ的には余計なイベントやら、ミューテーションの通知投げてるのに。"
なかのん&マジックさんのツイート: "そーいや、生のDOMをガリガリ使えるWeb開発者さんは、Geckoのエディタのコードを見ると(汚くてしんどいけど)面白いと思う。やってることは、C++でDOMツリーをDOMイベントドリブンで修正してるだけやから。 https://t.co/9IjIAH2jYm"
HTMLEditRules.cpp - mozsearch
なかのん&マジックさんのツイート: "ちなみに、Geckoのテキストエディタも、HTMLエディタの機能削減版なだけだったりする。<textarea><div>value</div></textarea>みたいな感じ。"
なかのん&マジックさんのツイート: "やっぱ、あらためて見ててもSelectionとRangeが遅いなぁ。エディタが編集してる最中はSelectionの変更を最小限にすべきなんだけど、mutation observerとの絡みがあって、ざっくりと削減もできないんだよなぁ。誰だ、あんなの考えたヤツは。"
なかのん&マジックさんのツイート: "DOMツリーの変更とSelectionの変更は全て、EditorBaseのラッパメソッド(新設)を通すようにして、Selectionの変更メソッドは新しい範囲をキャッシュするだけにする。DOMツリーの変更ラッパメソッドはSelectionのキャッシュを実際にSelectionに行う、って形だとかなり改善できるかとは思うけど、つらい。"
Makoto Kato ︎︎さんのツイート: "CheckSelectionStateForAnonymousButtonsが呼ぶ… "
Makoto Kato ︎︎さんのツイート: "常にではないが… "
Makoto Kato ︎︎さんのツイート: "それ、formdata.jsmかなんかがfennecだけ動いてて、そいつがselection listener使ってるから余計重い話ある… "
Makoto Kato ︎︎さんのツイート: "abspos editorが実はFirefoxでは使う方法がデフォルトでは存在しないのに、そいつがSelection Listenerで常にReflow発生させてる話があって、あれprefs追加しようと思ったの忘れてた。content editableでチョイ速くなるはず"
Makoto Kato ︎︎さんのツイート: "あれ、Thunderbirdだけしか使う方法ないんだよね"
なかのん&マジックさんのツイート: "https://t.co/fCjJEth8BE これです??… "
なかのん&マジックさんのツイート: "うう。HTMLエディタではスペルチェッカー動いてないのを忘れてたorz"
FormData.jsm - mozsearch
なかのん&マジックさんのツイート: "エディタ周りのセキュリティリスクをどうにかうまくコントロールできないもんかなぁ。今、ぼんやりと考えてる設計は、DOMツリーに修正加えながら色々とやるんじゃなくて、何を削除して、何を追加するのかを先に全部計算して用意しておき、一気に変更する時だけひたすら慎重にやるって形。"
なかのん&マジックさんのツイート: "リッチテキストエディタをブラウザ上で作ってる人、日本人で居ないかな?"

histric-3

なかのん&マジックさんのツイート: "このページ、書いた人が横スクロールは使いにくいという判断をしていて興味深い。 / 自作ゲーム大年表 https://t.co/e571kwMUVA"
自作ゲーム大年表
なかのん&マジックさんのツイート: "今、まさに、writing-modeでスクロールバーが一方向に対してだけ存在してる要素は、垂直方向のwheel操作でスクロールできるようにする実験的なパッチがFirefoxのNightlyに入ろうとしてるところ。 https://t.co/4wUSMlkXbx #もずでぶ"
なかのん&マジックさんのツイート: "実際のデバイスで色々とやってみないと提案されている挙動が直感的かどうか、また、本当に使いやすいのか分からないので、縦書きのページのリストを募集中です。 https://t.co/WCrhIcNZ6k"
なかのん&マジックさんのツイート: "クロスブラウザなリッチテキストエディタを一から書いてみたさあるんだよな。ブラウザ側をやってると、「なんでそんな実装になってんの?」みたいに思えちゃうんで、ちょっと、現実の開発者さん達と知識や発想の乖離が起きててやりづらさを感じてきてる。"
なかのん&マジックさんのツイート: "Thunderbird使ってて思うのは、bodyテキストという好ましくないものが、引用部分でEnter押した時にデフォルトでそのモードになっちゃうところかな。ただ、人間の見た目的に問題少ないのと、まあ、機械的にもそこはよきに計らいやすい。"
「この世界の片隅に」はいいぞさんのツイート: "Nのnviにimctrl, imkeyオプションを実装しました。Tera Term / RLoginのエスケープシーケンスを使って、input methodを自動的にオン・オフできます。nvi-m17nのcannactrl, fepkeyオプションと同じように動きます。… https://t.co/GGHXnWQ2Ab"
なかのん&マジックさんのツイート: "HTML5的には<b>とかみたいにスタイル情報を持ってる要素を英語でなんと呼んでたっけ……"
なかのん&マジックさんのツイート: "特に呼び名が無さそうだな。意味付けが行われたせいか。HTML4.01だと"Font style elements"とインライン要素限定感あるグルーピングされてるな。"
なかのん&マジックさんのツイート: "ところで、エディタやってると、インライン要素とかブロック要素っていう用語が時代遅れなの分かってて使い続けないといけないのつらい。まあ、Blink/WebKitみたいにGeckoのエディタもdisplayの値を参照しろって話ではあるんだけど、その変更はかなりキッツい。"
なかのん&マジックさんのツイート: "しかも変更した所で、実際のwebアプリでの互換性向上はほとんど無い……"
なかのん&マジックさんのツイート: "今後のGeckoのエディタのために数ヶ月もデザインの変更に付き合ってくれてる会社や同僚には感謝の念しかない。日本の会社じゃまず無理そうだ。"
なかのん&マジックさんのツイート: "Site Isolationのためにメモリを減らそうとすると、今、やってる範囲では、TextEditor/EditorBaseのメモリ削減はサイトによってはそれなりに効果ありそうなんだけど、そのためには一時的に(かつスタックで済む)メンバは普段は持たない事が肝要だけど、今回のデザイン変更で一気に解決しそうな感じ。"
なかのん&マジックさんのツイート: "とりあえず、実際にコード触ってる人間以外に意味の無い、EditorBaseとTextEditorはマージして、メンバのalignmentを調整して1バイトでも削減すべきなんだろうな。"

histric-4

なかのん&マジックさんのツイート: "編集で(一時的に)壊れてる<table>を修復するっていうAPIがあるんで、それのリファクタリングのためにテストを書いてみると、壊れた<table>ではそれを検出した途端にエラーを返すという謎な挙動になってて、結局何もしていない……"
なかのん&マジックさんのツイート: "昔のGeckoのエディタのAPIを使ってた人って、本当にAPIなんだっていう感覚で書いてるんじゃなくて、実装の一部、C++じゃないとしんどいところをC++で書いて、JSでいけるところはJSでって感じにしただけなんだろうなぁってのをあらためて。"
なかのん&マジックさんのツイート: "まあ、大元のXPCOM APIをバンバン作ってた頃って、技術的にはアドオンのAPIとして使えますよって感じだけど、実際はアドオン自体が管理すらできない代物だったから、その意識が無かったってのも大きいんだろうな。"
なかのん&マジックさんのツイート: "呼び出し元のお気持ちに忖度したり、呼び出し時の状況に依存したりしなかったりするようなもの、APIとして最低だわ。"
なかのん&マジックさんのツイート: "例えば、foo(Element* bar)みたいな形のAPIが、barがnon-nullな要素だったらその要素基準で処理が行われて、null (undefined)だったら現在のSelectionの情報から勝手に探すよ、みたいなの多すぎ。バグでnullが渡された場合、呼び出し元のデバッグが困難になるからやったらあかん。"
なかのん&マジックさんのツイート: "使い勝手のためにそうしたいのなら、別のAPIでSelectionからそのElementを返すようなものを用意すれば良いし、その形なら、後で他の動作も選択肢に入れやすくなるし、何より呼び出し側のコードが明示的になって綺麗になる。"
なかのん&マジックさんのツイート: "「頭の良い」APIは将来、その挙動を変えないと破綻するって時に変えて、そのユーザが全滅するというオチ。"
なかのん&マジックさんのツイート: "秀丸、FirefoxのURLバーみたいに相対的に近いところにあるファイルに手軽にアクセスできるUIがあれば最高なのと、grepが速ければなぁ……(使ってるけど)"
なかのん&マジックさんのツイート: "macOSでVSCode使ってみてるけど、微妙に「あれができない」みたいなのにぶちあってて……"
なかのん&マジックさんのツイート: "それにしてもThunderbirdでのみ使ってるeditorのAPIをとにかく自動テストで固めないと、思わぬタイミングでregression報告が来るのキツいな。"
なかのん&マジックさんのツイート: "まあ、もう、editorのコードを自動テストの追加できないぐらいにドラスティックな変更かけることはもはや無いとは思うが。"
なかのん&マジックさんのツイート: "とりあえず、今ある仕様案にはかなり強い設計に書き換わってる。"
なかのん&マジックさんのツイート: "とにかく、標準仕様策定の主導権を握れないと、自分のところのプロダクトの設計では実装しづらいものが仕様として概ね固まってしまうと、大きな書き換えを余儀なくされるので、「まだか」って標準仕様界隈からはつつかれるんだよな。"
なかのん&マジックさんのツイート: "ただ、仕様案が固まってからの実装だと、設計自体を最適化しなおせるんで、選考実装してるブラウザが細かいバグを修正するために大きく書き換えてるのを生暖かく見てられるのはある(見られてることもある)。"
なかのん&マジックさんのツイート: "今のところ、どのテキストエディタも「ファイルを開く」という操作を非常に軽んじてUI設計しているのが私個人の利用方法と合わないんだよな。"
なかのん&マジックさんのツイート: "おお、VScodeのCtrl+Pの存在に気付いてなかった。秀丸で欲しかったの、この機能。作業速度が体感で倍ぐらいになってる。… "
リベラル.3goさんのツイート: "F1でも同じです… "
なかのん&マジックさんのツイート: "F1だとコマンドの一覧出てきますね……… "
リベラル.3goさんのツイート: "コマンドパレットは 何も入力がないとファイル一覧 >を最初に入れるとコマンド一覧 # を最初に入れるとシンボル一覧 になります。 F1は > が最初から入力された状態 Ctrl + pは何も入力がない状態 Ctrl + tは # が最初に入力された状態 で起動します 他にできることは ?を入力すると出ます… https://t.co/3NH66khMzH"
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ガッツリとした高速化は他の方々が先に入れてくれて、その後、ひたすら細かい最適化を3年間入れ続けてきたけど、その中でも効果があったのは、 1. virtual callを極力減らす 2. エディタが必要なオブジェクトはpublicメソッドが呼ばれた時に一度だけrefcount増やして保証する」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「3. 再生成するインスタンスは極力再利用する 4. 変更されない文字列はヒープに確保してnsString間でコピーが発生しないようにする(nsAutoStringは必ずコピーが発生するので遅い)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「1はXULアドオンの廃止が無ければできなかった。他はとにかくメモリをいじるなって所につきる感じ。4はnsAutoStringの設計が悪いように思えるのでそのうちに見てみる。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ちょっと見てみたけど、4は半分間違いみたい。コピー元がrefcountableな文字列ならコピーを行わないようになってた。ただ、inlineのバッファで文字列を持ってる状態でnsStringに渡すとコピーが発生するのでホットパスでのnsAutoStringは気をつけないとダメっぽい。」 / Twitter

分散処理に詳しいオタクさんはTwitterを使っています 「Emacsのお気に入りな機能にM-tの単語入れ替え機能があって、間違って INFO(LOG) とか入れてしまった時に一発で LOG(INFO) にスワップできます(そんな入力ミスをするな)」 / Twitter
κeenさんはTwitterを使っています 「面白い。確かにハイライトすべきなのが構文とは限らなくて、構文から導き出される文脈こそ欲しい情報だからそれをダイレクトにハイライトした方が便利だね。 Syntax highlighting is a waste of an information channel • Buttondown https://t.co/oPSizrlUjo」 / Twitter
Syntax highlighting is a waste of an information channel • Buttondown
でこれきさんはTwitterを使っています 「viはcopyのことをyankと読んでemacsはpasteのことをyankと呼ぶのだなあというところから、そういえばvimの人は"で指定するものをレジスタと呼ぶけどviの人はバッファと呼んでいて、vimの人はmaはマークaをつけると言いviの人はマークレジスタaに現在位置を入れると言うのだなという方にさまよっていた」 / Twitter
Miura HidekiさんはTwitterを使っています 「タイムマシンがあれば1960年くらいに飛んで括弧の対応をエディタレベルで明示することに関する特許を取っていれば大儲けできそう」 / Twitter
池田 泰延 / ICSさんはTwitterを使っています 「VSCodeのオススメ設定 https://t.co/DCJcKqjD0g」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「文章スキルを向上させる方法: エディタ1行の幅を狭くする。 理由: 人は1行1行が短いほうが早く読めるため、推敲しやすくなるから。 https://t.co/ZqFV6D4KEO」 / Twitter
Write Thin to Write Fast - Breck Yunits' Scroll
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「そういえば似たようなアイデアで、行頭・行末に色を付けることでテキストを速く読めるようにする機能拡張ってのがあった。 https://t.co/YNYEvOCbOM」 / Twitter
BeeLine Reader: making reading on-screen easier and faster.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「完璧なエディタ」とは: a. あらゆる情報を統合でき、すべての作業がエディタの中だけで完結できるエディタ (作業時間の100%を占有) b. あまりにも簡単にコードが書けるので、一瞬で作業が終了するエディタ (作業時間の0%を占有) どっちなんだ? 現在のトレンドはa.である。 https://t.co/R1flvQ5gLf」 / Twitter
Paradox of the perfect code editor - Austin Z. Henley
ゴリサンタですさんはTwitterを使っています 「クリップボードをレジスタと連携している場合、insert mode時にクリップボードの中身をCTR-R_* または CTRL-R_+でペーストできます #vimtips_ac」 / Twitter
bouzuyaさんはTwitterを使っています 「ぼくは VS Code に慣れてからエディタが「ファイルに対して起動するもの」ではなく「ディレクトリに対して起動(してからファイルを選択)するもの」になったんだけど、これって以前からそういうものだっけ?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「そもそもエディタは「ログインしてからログアウトするまで起動しっ放しで、ディレクトリ閲覧もシェル起動もビルドもそこからやる」ものだなあ (Emacs世代)」 / Twitter
Shinji KonoさんはTwitterを使っています 「NeXTが導入された当時は Hyper Textってのが流行り。それはHyper Cardに影響されていたかも。それを実現したのが、Objective Cのdictionaryの機構とDisplay PostScriptの組合せ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TextEditが例題として用意されていて、RichText でsaveできてた。で当時あったGopherとかのファイルサーバーとXeroxのSGMLと組合わせたのがHTML/HTTPだった。うまくNEXTSTEP依存を回避していたことと、これもできたばっかりだったDNSを使ったリンクがうまく機能してた。」 / Twitter

【山田祥平のRe:config.sys】クラウドワープロは、いったいいつまでページにこだわり続けるのか - PC Watch
C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画を立てる時につい「何をするか」に注目してしまう。そうではなく先に断片でいいから「(中間)成果物」を挙げる。そしたら、それらをつなぐ「変換」を挙げる。そうしてプロセスを組み立てる。これを表現するのが PFD。中間成果物が選べない人はプロセスを「分割統治」できていない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画の立て方 1.成果物を列挙する(生成プロセス決まる) 2.PFD (Process Flow Diagram) を書く 3.生成プロセスの時間を見積もる 4.リソースを配分する 5.リソースごとにトポロジカルソートする 6.バランスやクリティカルパスで調整 完成」 / Twitter

DB

その他

Dolt

Git for Data「Dolt」というDBの話
RDBのデータの構成管理ができるDoltとは - Qiita

log

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ログ出力のためのベストプラクティス: - 処理の前でなく、処理の後に過去形でログ出力せよ。 - 可変部分をメッセージに埋め込まず、末尾に追加せよ。 - WARNINGとERRORを区別せよ。 - INFOはビジネスレベルの情報、DEBUGは技術的な情報に使い分けるべし。 https://t.co/T56yxz3Z2a」 / Twitter
My Logging Best Practices – Thomas Uhrig
Masahiko SawadaさんはTwitterを使っています 「Logical Decodingの1つのバグ修正にもう2日位使ってるけど3日目突入。構造体をそのままシリアライズしてるからマイナーバージョン間でも構造体のメンバ変数を変えられない気がする。それもあって良い直し方を模索中。」 / Twitter
RookoutがLive Loggerを発表し、ログレベルが動的に変更可能に
今すぐ ALB のアクセスログをクエリする - クックパッド開発者ブログ

自作DBMS Advent Calendar 2020 - Adventar
Vaticle | TypeDB
ast.htm
バインド変数(ユーザー定義変数)とは - IT用語辞典 e-Words
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
データベース性能を向上させる「インデックス」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(26) - @IT
基礎から理解するデータベースのしくみ(8) | 日経 xTECH(クロステック)
YugaByte DB | YugaByte DB
NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由 | 日経 xTECH(クロステック)
[1712.01208] The Case for Learned Index Structures
LIS026115.pdf
Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
PoloDB: a lightweight NoSQL database | by Vincent Chan | Medium
日記 (2020 年 11 月)
サイボウズの新しいインフラ基盤を支えるストレージの本番適用に向けた取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載一覧:CodeZine(コードジン)
閉包テーブルモデル - Google 検索
シャーディング - Google 検索
Random Query Generator Tests - MariaDB Knowledge Base
30分で論文流し読みシリーズ 7「File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution」 - 覚書
CAS操作 - Google 検索

Apache Spark

Spark vs Hadoop MapReduce | Xplenty
【和訳】Hadoopは失敗した、という分析 #BigData - クリエーションライン株式会社
MapReduceは「ゆっくり死んでいく」、Hadoop開発者のカッティング氏 | 日経クロステック(xTECH)

FS

その他

Gfarm

Publications
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館

@hei_nyan

okamo(aged 5 yrs.)さんはTwitterを使っています 「lustreの動きと仕組みはなんとなく理解してると思うので、beegfsあたりの動きをちょっとみてみたいな。AWSのマーケットプレイスにあるので触ってみるか」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「分散ファイルシステムの振る舞いと実装って各システムが独自進化していってる感があって、よくわからんというのが正直なとこなんですよね」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「セマンティクスの定義はunix semanticsとsession semantics、以上、で細かい話し始めると色々疑問が出てくる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「"session semantics - no changes are visible to other processes until the file is closed." これ厳密に守ろうとするとバージョン管理が必須になるけど、そこ頑張ってるシステムは聞いたことない。DAOSとか最近のシステムの実装はわからんが https://t.co/PLW0SipacJ」 / Twitter
Distributed File Systems
okamo(aged 5 yrs.)さんはTwitterを使っています 「session semanticsの出自がどこかはわからないんだけど、業界ではNFSのclose to openがイコールで語られる。 でもNFSってcloseしてなくても別プロセス/クライアントから書いたデータ読めちゃうよね?となる。実用としてそこは気にならないんだろうけど、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「実態はclose前のデータは読めるかもしれないし読めないかもしれない、なんだろうな。とは言え実用としてはこの辺りの中途半端な状態は未定義で、closeしたら次のopenで読めますよ!が分かりやすいんだろう。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「namespaceのセマンティクスに関しては全く言及が無いし、実際NFSでもファイルをrenameして同名で作ったファイルを別クライアントからopenしたらrenameされたファイルが読めてしまうことはあったはずなので、色々複雑である。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「まとめると、FSのセマンティクス(そもそもセマンティクスてなんだ)って結構いい加減なので、期待される最低限以外は自由に作ってくださいな、になるんだろうと思った次第。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「unix semanticsはそれなりに厳しい。多分external consistencyレベルは維持しなきゃ成り立たなくて、Lustreは基本的にこれ。 (というかlinearizabilityとの作り上の違いをちゃんとわかってないので雑魚)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustreは排他周りが非常に複雑で20年を超えたシステムの成熟度合いを感じざるを得ない。使い手からは何したら良いのかわからん、みたいな話は聞くけどこれはunix semanticsを維持することの限界と勝手に思ってる。複雑すぎる」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そういえばLUMIがCephを入れてるのには結構興味ある。DAOSとかHPCメイン(?)で開発されたオブジェクトストレージじゃないCephをどう使ってくのか。IB対応とかも見かけるけど、割と一般的なオブジェクトストレージは敬遠されてたイメージなので、、、弊社の姿勢だけなのかもしれんが」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter

MBR(Master Boot Recode)
Episode 04: Filesystem on NVM / Self-Driving Car on Dessert – Misreading Chat
【USBメモリー】 最適なアロケーションユニットサイズ 【SSD&HDD】 | USBメモリー収集家のブログ
USBメモリのフォーマットを変更して高速化する - ぼくんちのTV 別館
浪費のような、そうでないような。: スマホでSD Formatterは使ってはいけない
closeがEINTRを返したらどうするべきか - Togetter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「前方に上書き可能領域があるから、ロジックは比較的簡単に実現できるが、有効領域サイズ分のwriteは必要と。 昔からログファイルで有用な、サイズ指定ローテーション可能なファイルシステム欲しいと思うことある。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「1TBのストレージの中に入っている700GBのテキストファイルの先頭3億行を削除したいのだがどうすればいい?」 https://t.co/33NRL4WSbI」 / Twitter
shell - How do I remove the first 300 million lines from a 700 GB txt file on a system with 1 TB max disk space? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「mpoolがバニラカーネルに入りたがっているらしい。mpoolはblock deviceの上で動くオブジェクトストレージで、書き換えにコストを伴う近代的なSSDで性能を出せるようにfsより制限されたデータの操作方法を提供する。SSD向けのKVS HSEがバックエンドとして使っている https://t.co/fb2k2yH8Un」 / Twitter
Micron Looks To Upstream Their Media Pool "Mpool" Object Storage To The Linux Kernel - Phoronix
[論文紹介] Snowflake - NSDI '20 -
FadisさんはTwitterを使っています 「HSEのような手法は「ハードウェアの構造化ログとファイルシステムの構造化ログは連携できない」という前提の上に成り立っているから、ハードウェアがより高レイヤーの操作(この書き込みは何の為の書き込み?)を理解するようになると、また事情が変わってくるんだよな」 / Twitter
スパコンポエムAdC2020 Day20 Nov/2020 IO500について少し語る - Qiita
mumumuさんはTwitterを使っています 「Rump File Systems: Kernel Code Reborn [ATC '09] 主にNetBSDのKernelで動いているFSをUserlandでそのまま動作させるためのKernel-User間のNamespaceの変換するモジュールを提案.以外とオーバヘッドも少なくていい感じ.OSSコミュニティとシステム研究がいい感じに協調してて?よい話感.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにエントリの名前取得だけなら r-- だけでも。 (xは名前 → inode変換に必要)」 / Twitter
中村 実さんはTwitterを使っています 「Azure Data Lake Storage Gen2(ABFS)はファイルシステムに近いが微妙に違うなぁ。 UNIXのファイルシステムはディレクトリにr-x権限があれば、その下のファイルにr--権限がなくてもリスティングできるしfstatでファイルのメタデータは取得できる。」 / Twitter
中村 実さんはTwitterを使っています 「でもABFSはfstat的なAPIにそのファイルのr--権限が必要になるようだ。「ディレクトリの一覧には出てくるけど、ファイルのメタデータは取得できない」という現象が起きている。ニントモカントモ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なので、x-- だけのディレクトリの場合、名前をしってるファイルはそれ自体にrがあれば開けるし、xがあれば実行できる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおファイルのxは実行許可だけど、読めないと実行できないので、NFSサーバ側はxだけでもrと同様に読めてしまう。 (NFSクライアントが read をブロックする形)」 / Twitter
Lustre
MEGFS - 借り初めのひみつきち
FadisさんはTwitterを使っています 「Linux 5.12でfsが激しく壊れる問題の原因が分かって修正が入ったらしい。スワップファイルのオフセットの扱いが壊れていて、スワップファイルを置いたパーティションの先頭にスワップへの書き込みが書かれてスーパーブロック狙い撃ちで雑なfsは即死、というオチだったらしい https://t.co/AP85yyuviN」 / Twitter
Linux 5.12 Lands Fix For File-System Corruption Caused By Swapfile Issue - Phoronix
FadisさんはTwitterを使っています 「@beepcap vfsを迂回して書きにくる奴がパーティションの先頭を破壊しても壊れないでいられるファイルシステムは、スーパーブロックを複数箇所に書いてるbtrfsみたいなバリ堅fsくらいだろうな」 / Twitter
FadisさんはTwitterを使っています 「BtrFSがZoned Storage上で使えるようになった話。Zoned Storageではブロックデバイスは複数のZoneに分割され、Zone内は追記か全て削除しかできない。NANDを使うSSDやSMRで書き込むハードディスクにおいて使い方に工夫を要求する代わりにコントローラの負担を減らす事ができる https://t.co/4lrepCzT7n」 / Twitter
FadisさんはTwitterを使っています 「BtrFSはCoWなfsで元々殆どの変更は追記にできるが、superblockに限っては書き換えられる必要があった。Zoned Storageには書き換え可能な特別なZoneを持つ物もあるが、複数箇所にsuperblockを置くBtrFSではここを利用するわけにもいかず、superblockを構造化ログで表現できるようにしたらしい」 / Twitter
2021年5月26日 F2FS,リードオンリー機能をLinux 5.14以降でサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

ISO image

UDF

ユニバーサルディスクフォーマット - Wikipedia
Universal Disk Format - Wikipedia
パケットライト - Wikipedia
Packet writing - Wikipedia
Standard ECMA-167
UDF(ユニバーサルディスクフォーマット)とは - IT用語辞典
書き込み型BD・DVDのファイルフォーマット(UDF)まとめ : Web Memo.SE

ISO image - Wikipedia
ISO 9660 - Wikipedia
ISO 9660 - OSDev Wiki
Standard ECMA-119
Joliet Specification
El Torito (CD-ROM standard) - Wikipedia
El-Torito - OSDev Wiki
注目の脆弱性:Power Software PowerISO、ISO のコード実行の脆弱性
Comparison of disc image software - Wikipedia
【レビュー】指定したフォルダをISO形式のディスクイメージファイルへ変換する「Folder2Iso」 - 窓の杜
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
CD から OS を起動する - 借り初めのひみつきち

Plan9 の WORM Jukebox ベースの日時差分記録

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LTOオフライン保管が強そうだけど、オンラインで守る場合は plan9 の WORM Jukebox ベースの日時差分記録のファイルシステムが強いのかな? (そういえば、ファームウェア的に WORM動作を実現した HDD/SSD とかあるのだっけ)」 / Twitter
ITmedia NEWSさんはTwitterを使っています 「日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 https://t.co/JXztYJ05Kd」 / Twitter
日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 - ITmedia NEWS
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(今回は知らないけど、バックアップしててもアウトな場合の一つは、気づくの遅れて、壊れたデータによるN世代ローテーションが埋まってしまうこと)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あとは、バックアップしてたはずなのに、ある時期から停止してたとか冷や汗もの…下記はピクサーでの実例。 https://t.co/KAJ94QmjjP」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「その直前のシーン。 事故が起きて「大丈夫バックアップがある」と思った後に、肝心のバックアップが取れて居なかった、と判った時の気分は想像したくない(笑) https://t.co/NfzW299gii」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても、削除ファイル復旧に一番肝心な、「なにもせず、すぐに電源を抜く」という最善手を打った(さすが)のに、ほぼ全滅に終わったのはなぜだろう?という疑問は少し残る。」 / Twitter
鯉江さんはTwitterを使っています 「@shirouzu 別のマシンにつないだときにジャーナルが実行されたというオチだったりして」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど…NTFSだとログがコミットされても、(上書き等をしなければ)MFTに概ね復元可能な痕跡が残るんですが、UNIX系だと厳しいかもですね。 それと映画は99年公開=事故は97-98年あたりですかね。当時のUNIXはジャーナルが広まる直前という感じでしたかね。(AIX/IRIXだけ先行状態)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ISMS等で年に1,2回、訓練のための模擬復元をして、バックアップデータの完全性を確認、みたいなルーチンを回している組織も多いはず。」 / Twitter

Linux

シンボリックリンク

Kazuho OkuさんはTwitterを使っています 「シンボリックリンクでパスが循環しちゃう問題、ディレクトリ内のファイルを再帰探索する際に気をつけないといけないやつ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シンボリックリンクは、まあ検出簡単だからいいとして、 mount --bind はマウント時に循環可能性検出してるんだろうか。どうやって?」 / Twitter
dancerj 🗾さんはTwitterを使っています 「@kazuho mount bindべつにサブマウントは反映しないので循環しないとかそういう感じだった気がするけど詳細思い出せない。」 / Twitter

9P

9P - Wikipedia
9P (protocol) - Wikipedia
ASCII.jp:Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に (2/2)
Plan 9 Wiki (Plan 9 wiki)
Plan 9: ILプロトコル
9P (Plan 9 Filesystem Protocol) VFS
https://www.kernel.org/doc/Documentation/filesystems/9p.txt
“どうやって実現してるのかというと、まさかの9P(Plan 9 Filesystem Protocol)です。令和の時代にまさからPlan9の単語を聞くとは思わなかったですが分散OSなので、こういうのには向いてるのかもしれないです” - twatw のブックマーク / はてなブックマーク
Plan 9
IL (network protocol) - Wikipedia
The IL Protocol
A sane distributed file system
intro page from Section 5 of the plan 9 manual

fsync

fsync, fflush

MURAOKA TaroさんはTwitterを使っています 「別名で書いてから名前変更するのと、fflushは関係ない気がするな…」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kaoriya fflush (fsync) rename close で、fflushがないと、プロセスの中のバッファにまだデータが残ってるのに目的のファイル名になってしまう(他のプロセスから不完全なファイルが見える)のが嫌だなぁと。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kaoriya OSが突然死したときの対応まで必要ならfsyncも必要だけど、そこまでは必要ないならfsyncは省略可。」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@methane いえね、書いてからリネームというテクニックはシェルスクリプトとかでも使うので、close&renameだけでfflushは自明ではないなと。厳密には各操作のあとsync要るのかもですが。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kaoriya close後にrenameするのだったらfflushは要らないですね。 その辺も含めて、安全で効率的な、atomicにファイルを作成する方法がどっかの教科書的な資料に書いてないかなぁと。」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@methane たしかにみたことないですね。僕も誰かのスクリプトから学んだのか気が付いたら知っていたという感じです。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@kaoriya @methane rename後にディレクトリのfsyncが必要ですね。 cf. https://t.co/sllS5s9Dxt のコメント含めご参照ください」 / Twitter
安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場
Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya OSクラッシュへの耐性までが必要であればそうなりますね。 ただ、性能への影響が激しいので、他プロセスから見たときのatomic性だけが必要な場合はディレクトリへのfsyncは不要なようです。 一方、ファイルへのfsyncはatomic性のためにも必要らしいです。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@methane @kaoriya POSIXならwrite完了した時点で他のプロセスからも書いたデータが見えるようになることが保証されてるので、その条件ならファイルのfsyncも不要だと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @methane @kaoriya ですよね。 参照されているissueには両方の意見があるけど、クラッシュ耐性不要&可視性必要なら fsync 不要という https://t.co/9L0itVglyy の意見の方が正しいはず…」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya 微妙に間違っていました。ファイルへのfsyncもOSクラッシュ耐性で、これが抜けると新しいファイルが壊れる(0バイトとか)になる。 https://t.co/YGFLWwwzwK つまり、OSクラッシュ後に「古いファイルか新しいファイルのどちらかがあればいい」ならディレクトリへのfsyncは不要ということに。」 / Twitter
Ext3のコミット間隔を当てにしたアプリケーションは、Ext4でデータロスの恐れあり | スラド
Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya OSクラッシュ後に「新しいファイルが壊れててもいい」ならファイルへのfsyncは不要。 これは普通に open(), write(), close() したときと全く同じ。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya PythonでWindowsまで対応したライブラリを見つけ、そのIssueでこの議論がありました。 https://t.co/SuiOZtHGB7」 / Twitter
Option to disable fsync · Issue #17 · untitaker/python-atomicwrites

まちカドおるみんさんはTwitterを使っています 「にわかに信じがたいけど,こういうの往々にしてあるものなのだな…… &gt;&gt; Can Applications Recover from fsync Failures? | USENIX https://t.co/PeV1TVBVxU https://t.co/ixaWDV3Qeq」 / Twitter
Can Applications Recover from fsync Failures? | USENIX
まちカドおるみんさんはTwitterを使っています 「https://t.co/A01UYtXyq4」 / Twitter
FOSDEM 2019 - PostgreSQL vs. fsync
まちカドおるみんさんはTwitterを使っています 「“PostgreSQL had been using fsync incorrectly for 20 years”」 / Twitter
PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -

fsck

ファイルシステム小噺(仮) - Qiita
docs.oracle.com/cd/E19253-01/819-0386/fstroublefsck-51788/index.html
エンタープライズ:Linux How-To 第1回:起動スクリプトを知って基礎を理解しよう
Linuxファイルシステム技術解説(3):ジャーナリングファイルシステムが保護する「情報」 (1/2) - @IT
fsck(えふえすしーけー)とは - コトバンク
linux - ルートファイルシステムを復旧させたいのにfsckが上手く使えない - スタック・オーバーフロー
Linuxファイルとファイルシステムのリカバリ | OSDN Magazine
ファイルシステム入門
fsckによるファイルシステム修復 | hajichan.net technical version
fsck - ArchWiki
Linux ジャーナリング・ファイルシステムの徹底調査
【3分でわかる】Linuxのシャットダウンと再起動
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
スーパーブロック (ファイルシステム) - Wikipedia

fd

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「中身」だけでなくハードリンクでファイル自体復活できたりするんだろうか」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@_marony @n12i オープンしている最中なら、たとえ消しちゃっても /proc/プロセスID/fd/ディスクリプタ番号 でアクセスできるので、中身の退避はできますよ>Linux含むUNIX系OS」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@esumii linux kernel-4.18.0 で試したら EXDEV (Cross-device link) でエラーになりました。 ただ /proc/$PID/fd/* はいろいろ作りが特別(Linuxの場合は一見symbolic linkに見えるけど、リンク先が消えていてもアクセスできる)なので、カーネル実装によってはハードリンクに成功しても不思議はないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@esumii NetBSD-9.2 でも試しましたが、こちらだと /proc/$PID/fd/* からハードリンク作成できて、復活可能でした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、fd/番号って symlink 的な意味しかないと思い込んでいた。 (creat("tmpfile")直後にunlinkでrootもアクセス不能という話はいつから無効だったのだろう)」 / Twitter
概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu たぶん30年ぐらい前から。」 / Twitter

Btrfs

FadisさんはTwitterを使っています 「btrfsに従来のbtrfsとのディスク上のフォーマットの互換性を捨てるextent-tree-v2を追加する提案がなされている話。extent-tree-v2では空き領域の情報やチェックサムがぶら下がっているglobal rootが複数作られ、どのglobal rootに情報を置くかが一定のルールで決定される https://t.co/J9O3W507GR」 / Twitter
On-Disk Format Changes Ahead To Improve "Painful" Parts Of Btrfs Design - Phoronix
FadisさんはTwitterを使っています 「従来の単一のglobal rootに空き領域等をぶら下げているbtrfsでは、この情報の書き換えの為にファイルシステム全体で1つのロックを取る必要があり、CPUが多いホストでたくさんのCPUが同じbtrfsの同じsubvolumesに書く場合にスケールし辛い事が知られていた」 / Twitter
FadisさんはTwitterを使っています 「extent-tree-v2では複数のCPUからの書き込みが不運にも同じglobal rootを触る状況にならない限り、それぞれの書き込みを同時に行う事ができる。extent-tree-v2を使うにはファイルシステムのマイグレーションを行う必要があり、行うとextent-tree-v2対応以前のlinuxカーネルではマウントできなくなる」 / Twitter
2021年6月18日 Fedoraプロジェクト,クラウドエディションのデフォルトファイルシステムをBtrfsに:Linux Daily Topics|gihyo.jp … 技術評論社
2021年8月13日 Btrfs,Linux 5.15でidmapped mountsをサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

idmappedマウント

FadisさんはTwitterを使っています 「F2FSをidmappedマウント対応にする変更が現れた話。Linux 5.12で追加されたidmappedマウントはfsをマウントする際にuidとgidを読み替える変換表を設定できるようにする。そのマウントポイントからはuidとgidが変換後の値に見えるが、実際にfsに記録されるのは変換前の値になる https://t.co/QSAJQar4OA」 / Twitter
F2FS File-System Adding Support For IDMAPPED Mounts - Phoronix
FadisさんはTwitterを使っています 「変換表はマウントに結びついているため、同じfsを複数箇所に異なる変換表でマウントした場合、それぞれのディレクトリのファイルはそれぞれの変換表で変換したUID/GIDになる。この機能の主な用途はUID名前空間が分離された複数のコンテナの間で同じディレクトリの内容を読み書きできるようにすること」 / Twitter
FadisさんはTwitterを使っています 「この機能が5.12で登場した当時idmappedマウントができるファイルシステムはext4とfatだけだったが、5.15でbtrfsでもidmammedマウントできるようにする変更が入っており、f2fsはそれに続く形になる。変更はF2FSの開発ブランチに現れた段階でどのバージョンでバニラカーネルに入るかはまだ分からない」 / Twitter

fscrypt

FadisさんはTwitterを使っています 「fscryptでDirect I/Oが使えるようになったらしい。LinuxのDirect I/Oはページキャッシュを介さずにユーザ空間プロセスのメモリを直接使ってハードウェアにI/O要求を投げる。「暗号化を挟むのにdirectとは?」となるが、inline encryption hardwareが必須になっているのがミソ https://t.co/zi0YdSvquO」 / Twitter
FSCRYPT Adding Direct I/O Support For Encrypted Files In Linux 5.18 - Phoronix
FadisさんはTwitterを使っています 「fscryptはLinuxのstorage stackのfs層で実装された暗号化。ディレクトリ毎にioctlで設定された鍵を使ってファイルの内容を暗号化する。dm-crypt等と違いfsドライバの対応が必要だが同じfs上に異なる鍵で暗号化されたファイルを並べられる。Androidのfs暗号化にも使われている https://t.co/F4u7SAjp2T」 / Twitter
Filesystem-level encryption (fscrypt) — The Linux Kernel documentation
FadisさんはTwitterを使っています 「fsの暗号化はCPUを割と使う処理なので、ナウいスマートフォン向けSoCのストレージのホストコントローラ等にはストレージデバイスを読み書きする際に自動でデータを暗号化、復号するinline encryption hardwareが備わっている https://t.co/YHS1LxSJY9」 / Twitter
Inline Encryption — The Linux Kernel documentation
FadisさんはTwitterを使っています 「fscryptは元々fs層でデータの暗号化を行う物だが、inline encryption hardawareが利用可能な場合、fsは自力で暗号化する代わりにストレージデバイスのドライバの層までハードウェアで暗号化する為に必要な情報をまわして暗号化を遅延させる魔改造がなされている https://t.co/WKElp20orY」 / Twitter
inline-crypto.pdf
FadisさんはTwitterを使っています 「通常のfscryptでは間に暗号化が挟まる為ハードウェアまでdirectにデータを送ることはできないが、inline encryption hardwareの場合ストレージデバイスのホストコントローラまでは平文でデータが渡る事になるため、そこまでdirectに送ることは出来る。出来るから出来るようにした、という話っぽい」 / Twitter

FadisさんはTwitterを使っています 「Linuxをinitramfsなしでbootする場合rootにはblock deviceを指定する。例外的にNFSかCIFSを使う場合アドレスを指定できる。ところがvirtiofsのようなblockではないけどrootfsにしたい物が増えてきたので、任意のblockでないfsをrootに指定できるようにする拡張が現れた話 https://t.co/7vF4fGpA4X」 / Twitter
New Linux Patch To Allow Booting From Arbitrary Non-Block Device File-Systems - Phoronix
FadisさんはTwitterを使っています 「ちなみにこの変更がなくてもinitramfsを経由してマウントすれば殆どのファイルシステムはrootfsにする事ができる。また、ユーザ空間デーモンが無いとマウントできない物はこの拡張を利用する事はできず、引き続きinitramfsでデーモンを動かさないとマウントできない」 / Twitter
FadisさんはTwitterを使っています 「Systems 249からファイルシステム丸ごとアップデートがサポートされる話。この機能はsystemdがinitramfsで動いている等のsystemdがrootfsを選べる状況でroot=が指定されていない場合に、/usrを含みパーティションラベルが文字列比較で最大のものをrootfsにする https://t.co/mnpbVu5g7J」 / Twitter
Systemd 249 Released With New Option For Simple Whole-File-System A/B Updates - Phoronix
FadisさんはTwitterを使っています 「この機能は新しいrootfsを2つめのパーティションに書き込んで再起動する、組み込み機器でよくあるファームウェアアップデートを簡単に実現できるようにする」 / Twitter
ファイルシステムを自作しています. - alphakai’s tech blog
2018年6月20日 次世代メモリをターゲットに開発が進むログベースファイルシステム「NOVA」:Linux Daily Topics|gihyo.jp … 技術評論社
Kazuho OkuさんはTwitterを使っています 「面白い。getdentsが0を返すまで呼び続ければ、全てのファイル名が取得できるんじゃないのかしら / https://t.co/gdkAsHVKu0」 / Twitter
旧ストレージ廃止大作戦−2900万超のファイルリストを取得する | PR TIMES 開発者ブログ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ディレクトリの実行権は、dir-entry に対して、entry名 → inodeへの変換権(namei)があるか、ですね。 ・r だけだと、entry名列挙はできるが、entryファイルにはアクセスできない。 ・x だけだと(entry名推測できれば)entryファイルにアクセスできる。 https://t.co/g4tITC5FGX」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「syscallやカーネルルーチン名のコマンドが徐々に増えた印象…昔は namei やstatコマンドは無かった気がする。 (namei は古からある name(パス要素名) -&gt; inode番号変換の カーネルルーチン。dir の x権限はこの変換の可否) https://t.co/Lv43wHQf6V」 / Twitter
【 namei 】コマンド――ファイルパス中のディレクトリやファイルの情報を表示する:Linux基本コマンドTips(399) - @IT
SODA NoriyukiさんはTwitterを使っています 「「すなわち、cdを実行できる」って書き方だと間違いなんだよなあ。 実行権限があればcdも実行できるけど、cdとは関係なくそのディレクトリのエントリへアクセスできるようにもなるわけで。 「たとえば、cdを実行できることなど」って表現ならOKなんだけど。」 / Twitter
LPIC1用ボットさんはTwitterを使っています 「ディレクトリに対する「実行」権限は、ディレクトリに入ることができる(すなわち、cdを実行できる)ことであるが、「読み取り」権限がなければ、ディレクトリ内の一覧表示(lsの実行)はできない。 #lpic」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「UNIX系ファイル削除は unlink(リンクカウンタ以外はファイル実体に触らない) だが Windows は(内部的には)削除対象のファイルを開いて削除属性を付けて閉じる、という挙動…閉じた直後はまだエントリから消えない・そもそも開けないと削除できない、とか謎挙動が多すぎ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「謎挙動の原因のもう一つはこれ。 ---- 「NTFSは(inode的な)データをディレクトリエントリにもキャッシュするが、最新情報はファイルが閉じられたときにのみ更新(=開いてるファイル相手だと FindFirstFile が旧情報を掴まされがち)」 https://t.co/T2rJMNRLIr」 / Twitter
NTFS - Wikipedia
FadisさんはTwitterを使っています 「HSE 2.0がリリースされたらしい。HSE 1.0は専用のカーネルモジュールmpoolを使う事でファイルシステムのログを回避して性能を出すKVSだったが、mpoolはバニラカーネル入りできなかった為、2.0は通常のLinuxのファイルシステム上で動く普通のKVSになっている https://t.co/4DzX7ksFXt」 / Twitter
Micron's HSE Storage Engine 2.0 Debuts - No Longer Relies On Linux Kernel Modifications - Phoronix
Linuxサポートを拡大した「OpenZFS 2.1.3」が公開 | OSDN Magazine

UEFI

The rEFInd Boot Manager: Using EFI Drivers
Free Software EFI Drivers
pbatard/efifs: EFI FileSystem drivers
日記 (2014 年 8 月下旬)

デフラグメンテーション

デフラグメンテーション - Wikipedia
The Desktop Files: The Truth about Defragmentation
インタビュー - ファイル断片化を元から断つ、デフラグの概念を大転換!:ITpro
無料デフラグソフト一覧 - フリーソフト100
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
デフラグのやり過ぎはHDDの寿命を縮める | スラド ハードウェア
デフラグで最適化 - デフラグソフト比較、断片化の理由 - Windows高速化への道
ファイルシステムの基本~ファイルはどのように記録されているのか~ - Yahoo!知恵袋
ファイルシステム圧縮による空き容量と、デフラグについて - すっきり!! デフラグのヘルプ
効率の良い『デフラグ』で性能低下を防ぐ 【桜PC情報】
NAS(LAN HDD / ネットワークハードディスク)は何故デフラグできないのか
ファイルシステム入門
しつこくデフラグ話【日記 2011/11/25】
デフラグって実際どうなの? 実力を徹底検証 - Windows7から話題のWindows10まで対応! (1) 知らないうちに断片化するデータ群 | マイナビニュース
「ディスククリーンアップ」と「ディスクデフラグ」の違いとは?|エンジョイ!マガジン
デフラグとは | Diskeeper 日本語版 公式サイト
ファイル・サーバのデフラグメントについて考える - @IT
知ってる?デフラグの力 - デフラグのメリット&デメリット
本の虫: ディスクのフラグメント防止に関する興味深いペーパー
NTFSFrag.pdf

NTFS

Wikipedia

NTFS - Wikipedia, the free encyclopedia
NT File System - Wikipedia
NTFS-3G - Wikipedia
NTFS-3G - Wikipedia, the free encyclopedia
Filesystem in Userspace - Wikipedia
Filesystem in Userspace - Wikipedia, the free encyclopedia

Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、NTFSのソート順(btree)は名前を大文字変換した後、UTF16コードでソート。 Explorerも大文字変換は同じだが、アンダースコア等が特別扱い、数字群は数値として比較とか、色々特殊。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "数字群を数値として比較することを、natural sort と言うらしい。 https://t.co/xATZlBNZ9a"
Natural sort order - Wikipedia

@shirouzu

復元不能にする方法

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのNSA方式削除では内部的に2モードあり、上書きバッファ用乱数はメルセンヌツイスタで初期化される。 だが、iniのcopy_flagsに OVERWRITE_PARANOIA(=0x2000)を追加すると、バッファをCryptGenRandomで初期化される。 (エントロピー不足か、死ぬほど乱数生成が遅いのでお勧めできない)… https://t.co/qgGp2ypCiM"
とつげき東北🌘さんのツイート: "復元防止をセキュリティ的にマジで考えると、単に物理的に上書きしたくらいでは足りないですね。0か1かはHDDの場合磁気的に保存されますので、一度書き込んで消しても、アナログ情報が残って再現できてしまう。 そういう「形跡」さえも消すには、何十回も0と1を繰り返し書かないとダメですね😇… https://t.co/qlwlO08Wky"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なかなか豪快なソフトですね(笑) ファイル単位の復元防止だと(削除前に)truncate無しの上書きが定番(ただしNTFS圧縮だと別セクタに書かれるので無意味)だと思うんですが、実はtruncateした後に上書きしてました、とかですかねぇ…逆にカジュアルな復元ができる下手を打つ方が不思議な気も。… https://t.co/7T3hvZtC5P"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ですね。NSA方式とかDoD方式とか、3~7回の乱数や0(or 0xff)での上書きを定めるものが多いみたいです。 (FastCopyだとNSA方式削除をサポートしてます)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、メルセンヌツイスタもシードだけは std::random_device(=CryptGenRandom)を使っている。"

histric-1

SHIROUZU(白水啓章)さんのツイート: "タイムスタンプとファイルサイズ(とファイル名)を使った、ファイル重複検出ツールって、意外と無い不思議。 それとできれば、MFTによる高速検査があると最高なのだが…自分で作るかな。 ファイル名は編集距離誤差を許す設定ができるとさらに良さそう。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyのI/O設定、Win10 + Gbit NIC以上だと1発行1MBで多重度2以上がベストで、1発行が4MBとかになると(多重度を上げても)逆に遅くなるな…パラメータのデフォルトを変えた方がいいかもしれない。"
SHIROUZU(白水啓章)さんのツイート: "それと、ver3 の I/O設定はちょっと判りづらい点を直した方がよいかな… 最大I/O単位=1発行サイズ * 重畳数、という意味なので、1発行1MBで多重度4だと、4MBに設定する必要がある。"
SHIROUZU(白水啓章)さんのツイート: "10G NIC と NVMe(960-EVO)を載せて、FastCopyで転送実験。 双方向でほぼ10Gbps出るようだ。 IPMsg転送だと5Gbpsが今のところ限界、さらにAES暗号化すると80Mbpsまで低下。"
SHIROUZU(白水啓章)さんのツイート: "CoffeeLake(i5-8600K)では、FastCopy + SMB で 10Gbps転送中のCPU使用率は概ね10-15%程度。"
SHIROUZU(白水啓章)さんのツイート: "ただし、非同期I/Oをやめると5Gbpsに一気に遅くなる(I/Oサイズを広げてもダメ)。 つまり、相変わらずアプリケーション側が先読み的な動作をさせないと、性能を十分出せない、WindowsのSMB実装ということかな。 (なお双方とも Win10 Pro for Workstat… https://t.co/DMind304I8"
SHIROUZU(白水啓章)さんのツイート: "そういえば、これ6コアだから、16%で1コア使い切りレベルだった。 4コア時代の25%基準で考えてしまう癖が。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkでの速度とFastCopyの速度が違ったので調べてみると、Crystal…の KB/MB は 1000^n、FastCopyの KB/MB は 1024^n という違いだった。FastCopyは正確に KiB とか MiB とかにしたほうが良いかな…"
SHIROUZU(白水啓章)さんのツイート: "C/C++でのポインタ同士の減算結果の型は size_t ではなく ptrdiff_t で「符号付」整数となる点に注意。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkの速度測定には、MSのdiskspdというコマンドを利用していた。 https://t.co/kwsrzWX6rv ちなみに「NCQ対応」は、diskspdを見る範囲では WinAPIのOVERLAPPED I/Oを行う=NCQ、という解釈かな。 (… https://t.co/CDXRmvKlMp"
Microsoft/diskspd: DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
SHIROUZU(白水啓章)さんのツイート: "実際、SATAのNCQは32個までだが、OVERLAPPED I/O自体は(手元で試した範囲では)128個発行なども可能だったりする。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyで、複数物理ドライブを束ねたボリュームでの物理ドライブ判定が正しくなかった。(別物理ドライブ同士が同一ドライブ判定になるケースが存在)"
SHIROUZU(白水啓章)さんのツイート: "SMB経由で確認した範囲では、btrfsは4KB * n で整列されたwrite後に、そのサイズより僅かにサイズ縮小するftruncateを発行すると、ext4やNTFSに比べて大変時間が掛かる不思議。 SMB経由でbtrfsかの識別する方法はないのかしらん?"
SHIROUZU(白水啓章)さんのツイート: "最近はNASでもbtrfsという選択肢が出始めているようなので、ちょっと対策しておきたいところ。"
SHIROUZU(白水啓章)さんのツイート: "OS、AntiVirus(MS純正)、NTFSのいずれの問題か不明だが、dir-entryを全削除した直後に、そのdirを削除しようとすると稀に「空でない」というエラーになることがある。その時、FindFirstでentryを調べると一瞬だけ削除したはずのentryが見える。 ローカルFSなのにアトミック性が破れてるな。"

histric-2

SHIROUZU(白水啓章)さんのツイート: "GetVolumeInformation APIで取れるファイルシステム名(lpFileSystemNameBuffer)、LTFSだと"LTFS"が返るのかしらん?"
Kengo Sawatsuさんのツイート: "結果でましたー。 ちゃんと'LTFS'と入ってきますね。 OS:WindowsServer2012R2 python3.4からwin32apiコールです。 results = win32api.GetVolumeInformation("J:\\") pprint.pprint(results) で、出てきたタプルです。 https://t.co/MnBOttlcJu… https://t.co/mOcNmgdTr1"
Kengo Sawatsuさんのツイート: "ちなみにLTFS実装はIBM純正の2.2.1です。 HPなどのその他実装では結果が異なることもあるかもしれませんが、各社のLTFSドライバはすべて?IBMが元なので、大丈夫じゃないかなあとは思います。… "
SHIROUZU(白水啓章)さんのツイート: "Win32非同期I/Oを使った連続read/write実験、少なくともネットワークドライブ(Win10 Pro Enterprise同士)相手に対しては、4MB*4重畳よりも1MB*4重畳の方が5~10%高速になるのは何故だろう?(ファイルサイズが20~30MBならおおよその理由は判るのだが、数GBでも同じ傾向)"
SHIROUZU(白水啓章)さんのツイート: "非同期RPCのやりとりをWireSharkで調べてみるのが近道かな。"
Kengo Sawatsuさんのツイート: "いつもありがとうございます。 smb multichannelとの関係など、結構調べないといけない話題は多いですよね。 なにかの折にまたデータをとってみます(40Gはストレージ側の性能引き出すのがちょっと難しいですが) また、https://t.co/GT7eFdWffLへの40GbitNIC貸与ができないか、社内で調整中です。… https://t.co/9ZffXqTPmb"
SHIROUZU(白水啓章)さんのツイート: "FastCopy英語掲示板に「もっとスレッド数を増やして高速化を」という要望が出ているのだが、何の処理を行うスレッドを増やしてほしいのだろう? ごく一部環境を除き、I/O (read or write) 並列化(連続命令の非同期I/O化を除く)は、遅くなるだけと思うのだが。"
Fomalhaut Weisszwergさんのツイート: "おそらく「スレッドをたくさん作れば早くなるんでしょ」と思っているだけだと思います。わたしもそういう人の相手をする羽目になったことがあります (ログファイルへの書き込みを並列化したところで高速化はできないということを理解してもらうのにすごいコストかかりました)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "先ほど、レスパスビジョンさん(https://t.co/lLhGI6a3Ro)のご厚意で、FastCopy進化用のMellanox 40Gbit NIC*2とケーブルが届きました! それにしても、さすがは40Gb用ケーブル、昔の放送用ケーブルかと見まがうゴツさ…QSFPという10Gを4本束ねたものらしい。 https://t.co/JPjOt4kQMq"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB転送速度に与えるレイテンシの影響は、非同期I/O数が4以上ならどの条件でもレイテンシに比例して速度低下。だが、ジッタが大きい場合だけは、I/Oサイズ*非同期I/O数=32MB以上の方が性能が出る(落ちづらくなる)不思議。 (前者でも、性能が落ちづらくて良さそうなのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "前者でも…というのは、I/Oサイズ * 非同期I/O数を大きくする≒TCPにおけるウィンドウサイズ拡大と類似した効果をSMB上に与えても不思議ではないため。 ただ、API上の非同期数に対して、SMB上の非同期I/O数に上限があるなら、そうならなくても不思議ではない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "だからこそ、自前転送の高速化の余地が大きいということではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40Gb転送中にRAM Diskアクセスすると、そのI/O速度分だけ速度低下する様子(CPU使用率にはまだ余裕がある)。 PCIeを空けても、メモリバスがネックとなっている? CoffeeLake i5-8600K + Z370の方は大丈夫のようだが、SkyLake i5-6500 + Z170程度だと性能が不足しているようだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "論理セクタが512byteでも、本当のブロックサイズは4KBだったりする現在、末尾の端数部分はブロックサイズ単位で書いてtruncateではなくて、端数だけappendの方が良いかもしれない、特にネットワークの場合。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前の話ではXeon + WinServer + SMB Directを使っても、40Gbpsを使いきれていないらしい?最新サーバ同士だとどうなんだろう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの重複データブロック削除機能=De-Duplicationだと思うのだが、DeDupと書くより、DeDupeと書く方が多い不思議。"

Shirouzu Hiroaki(白水啓章)さんのツイート: "10GのWin10Pro同士だと、ほぼ10G素直に出ていたのですが、samba経由だといろいろあるんですねぇ…(ただ、ジャンボパケットでないとダメだったかも)… "
Kengo Sawatsuさんのツイート: "10Gのsmb.confのパラメータを色々試して、Fastcopyとの組み合わせでざっくり810MB/secくらいまでは速度出るようになったけど、カーネルパラメータいじるのは面倒かつ危険なのでこれ以上の追い込みはやめておくマン"
Kengo Sawatsuさんのツイート: "今更ですが、これの効果は劇的です <I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上 10Gbps環境下でスイッチを2~3個経由していても、1ファイル数GBを超えるファイルであれば1000MB/secで張り付きっぱなしになります。 40Gbps環境にも恩恵あるはず。… https://t.co/cmKIS1WbNy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.50正式版をリリースしました。 Source選択で、ファイルとフォルダを同時に選択できるように。 I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上(レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)等 https://t.co/L7jJavdtio"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「BSD系がreadlinkでA更新しないのは知らなかった。 あとは、移動で対象ファイルCが変わる/変わらないの件…Cはinode更新時間(A更新以外)なので、Cが変化する実装=(atomicなので外部観察はできないが)内部でdst-ent追加でリンク数+1、src-ent削除-1操作、がC変化の原因かな? https://t.co/VwDT93ijU4」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、rename/move はファイルシステムを作った経験があれば判ると思うが、atomic性を満たすのに一番厄介。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「src/dst/target の3つロック(create/removeなら、親dir → targetだけのロックで済む。3つの場合、ロック順序保証が通常の親→子でないのもネック)、さらにtargetがdirの場合、dstがtargetツリーに存在しないこと確認する必要もあり。 (でないと、外部からの参照のない循環参照dirに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さらに、dstのtarget配下の非存在確認した後、移動が完了するまでは、src/dst/target配下が絡むdir関連rename操作はブロックしないといけない、みたいな話もあったり。 (でなければ、volレベルでジャンボロックするか…Linux2.0当時の実装を見たら、そうなっており、ああ手抜きだなと思った記憶)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSファイル名長は、漢字/ascii両方 255文字までOKに対し(サロゲートペアだと半分)、NAS(Linux)だと 漢字ファイル名は80数文字(UTF-8)が上限。 掲示板で問合せで、この状況で困ってる方居たのだけど、一般には全組織で 5%くらいの割合かな…?」 / Twitter

研究千年牛酪情報保管庫菩薩さんのツイート: "NTFS、しくみおもしろいなあ。これだとWinFSを作りたくなる気持ちがわかる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(POSIX対応のため)NTFSが大文字小文字違いを別ファイルとして扱える機能を持つのは知っていたが、(POSIXサブシステム経由だけでなく)Win32サブシステム経由でも(レジストリ変更で)大文字小文字区別したアクセスができるとは知らなかった。… https://t.co/LRLCQ3BWBn"
品川 高廣さんのツイート: "Cygwin 上で Linux カーネルをクロスコンパイル on @Qiita https://t.co/UATrQHnqhU"
Cygwin 上で Linux カーネルをクロスコンパイル - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSのハードリンクは、UNIX系と違い、片方のファイルを変更しても、もう片方にタイムスタンプがすぐに反映しない。 1度目は必ず古い情報を掴まされ、2度目のlookupから正しく取れるという、UNIX inodeとdirentyのような関係ではあり得ない挙動を示す。 ちなみに、ハードリンク上限もわずか1023。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSの設計者は「POSIX準拠機能なんて、本格的に使うわけないよね」と思っていたとしか思えない(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回の件、海外からFastCopyのコーナーケースのバグ報告?と思って調べたところ、NTFS側の問題だったというオチ。"
Egtra (ysk-noh)さんのツイート: "https://t.co/QJTi32Ys8q Windowsが初期設定だとシンボリックリンク作成を管理者に絞っているのは、Symlink attack対策なのだと思う。 https://t.co/nIkiEyVnaJ https://t.co/I0Zm2JxVqy"
PhoronixさんはTwitterを使っています 「"NTFS3" #Linux Driver Spun Up An 11th Time With More Optimizations https://t.co/qvrZtkQZHm」 / Twitter
"NTFS3" Linux Driver Spun Up An 11th Time With More Optimizations - Phoronix
Grzegorz TworekさんはTwitterを使っています 「We know NTFS can store invaluable #DFIR data in the USN Journal. But how long records stay there? You can check it with a simple app I have just created. C source code and the compiled .exe as usual: https://t.co/eW6XL95CT9 Using FSCTL allowing non-privileged users to check it. https://t.co/yEzywJcJQh」 / Twitter
PSBits/CheckOldestJournalEntry.c at master · gtworek/PSBits
Grzegorz TworekさんはTwitterを使っています 「BTW you cannot resize your USN Journal. You have to delete it, and then re-create with "fsutil usn" command.」 / Twitter
PAYLOAD - magazyn o ofensywnym bezpieczeństwie ITさんはTwitterを使っています 「@0gtweet Dużo ciekawiej się robi, jak zaczniesz analizować dane usunięte. Wówczas bez problemu znajdziesz mnóstwo parsowalnych fragmentów danych, które leżą sobie na dysku od samego początku jego używania. Byś się zdziwił, jakie rzeczy ja klientom znajdowałem na podsyłanych mi dyskach...」 / Twitter

NTFSの読み方 - Qiita
kusano/ntfsdump: Extract files from NTFS Volume
暗号化ファイル・システムを使うとWindows Updateができなくなる / SAFETY JAPAN [Windows XP プロの常識] / 日経BP社
最後に知っとく“Windows 8.1重箱の隅”10選 - AKIBA PC Hotline!
上原 哲太郎 - これは話が正確じゃないのでMSやWin10がかわいそう。要はNTFSをリムーバブルメディアで使っては... | Facebook
Why NTFS is a dangerous filesystem for external drives ... - PentaxForums.com
Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ | スラド IT
Transactional NTFS (1) - NyaRuRuが地球にいたころ
日記 (2013 年 4 月中旬)
NTFSのトンネリングとHardlink - ひよこメモ
Shirouzu Hiroaki(白水啓章)さんのツイート: "これが成功したら、あっという間に終了(or 非推奨化)した「トランザクションNTFS」も復活したりするのかしらん? https://t.co/oVhrlxprop… "
トランザクションNTFS - Wikipedia
Transactional NTFS - Wikipedia
アイコンを見るだけでデータが破壊されるNTFSの脆弱性 - PC Watch
アイコンを見るだけでNTFSドライブが破損する脆弱性が修正 - PC Watch

ReFS

Shirouzu Hiroaki(白水啓章)さんのツイート: ""CreateHardLink(この要求はサポートされていません。50)" というメッセージが出て何だろうと思ったら、ReFSはハードリンクをサポートしていなかった様子。 ---- https://t.co/Ss1hcvHxrq"
Windows の次世代ファイル システム: ReFS – Building Windows 8
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系のハードリンクはinodeとdentの仕組みを素直に使っている。NTFSハードリンクは当該ファイルスロット(≒inode)に別名エントリを格納していく変態方式のため1023リンクが上限だった。で、ReFSではサポートすら止めると。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSは全力で非同期writeするより、アクセスに僅かに空き時間を与えた方が速度が5~10%程度、増すなぁ。 非同期I/Oで連続アクセスすると、ReFS固有の付加的な作業が合理的に差し挟めないのだとすると、ファイルシステムドライバの作りが悪いとしか思えないのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSのBlockCloningを使うと、巨大なファイルの内部的なログローテーション的な動作が、実質データコピー無しで出来そう。 (現行ファイルの先頭クラスタ以外をクローンして、次ファイルを作るイメージ) https://t.co/wjy0lTy4Lm とはいえ、ReFS自体に余り良い評判を聞かないので微妙だが。"
Block Cloning | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSはディレクトリ探索負荷だけで、6コアが100%になり(System(pid:4)が大半)、各プロセスのタスクスイッチもロクに回らなくなり、各ウィンドウ描画が止まり、音楽再生も切れる。 (画像は探索を止めて、ようやく再描画再開されたタイミングでキャプチャ) https://t.co/DEljgQ0Hxj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ディレクトリ探索を続けると、何かのタイミングでこの状態が続く。アクセス数に比例したり、特定ディレクトリがトリガーでもない様子)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「どうも妙な挙動が多いので、ReFSを相手にするのは止めようかな… https://t.co/uZfbmqm9oO」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSは設計思想以前に、実装がダメダメなんでは疑惑。 (手触りが悪いというか、不自然に重いというか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「仕様云々より、実装が悪いのだろうなぁ、、、。 なおMSは流石に無いと思うけど、仕様を作って外注に作らせるパターンだと、そういう品質がほぼ宿命に。」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「ReFS、server2016で実運用してるとSMBのわけわからないタイムアウト(ファイルシステムから30秒応答返ってこない)とか本当に散々な目にあってるので、当面本番用途で使う予定ないのだが、相変わらずの様子・・・。。 MSは今すぐデビッドカトラーを連れてくるべき」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一度、腐ったものが出来上がると、性能・品質改善はほぼ望めず、作り直すのが最善手になる。 ただ初期コストの大きさから、改善で済まないか試みた挙げ句、無理なことを悟って作り直すという、一番高コストな道を辿るのが典型パターン(笑)」 / Twitter

FAT

exFAT

実は危険??「exFATフォーマット」との付き合い方|L'espace Vision
【2021年 exFATを改めて検証】 その1「マウント互換性について」|L'espace Vision
【2021年 exFATを改めて検証】 その2「exFATのファイルシステム破損実験」|L'espace Vision
【2021年 exFATを改めて検証】 その3「Macのファイルシステムチェック挙動はややこしい」|L'espace Vision
【2021年 exFATを改めて検証】その4「それでもexFATをオススメしない理由」|L'espace Vision
k-takata.o.oo7.jp/diary/exFAT.txt
Microsoft、パナソニックに大容量ファイルシステム「exFAT」のライセンスを供与 - ITmedia エンタープライズ
マイクロソフト、exFATのライセンスプログラムを発表 - CNET Japan
exFATのライセンス提供開始に見え隠れするMicrosoftの知財戦略 - builder by ZDNet Japan
FUSEベースのMicrosoft「exFAT」実装、「fuse-exfat 1.0」がリリース | OSDN Magazine
Tech TIPS:FATとexFATの違い - @IT
Microsoft readies exFAT patents for Linux and open source | ZDNet
2019年8月30日号 Ubuntu 18.04.3 LTS 日本語 Remix リリース・eoanのFeature Freeze・exFATの仕様書:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
exFAT について - 借り初めのひみつきち
米Microsoftが「exFAT」の技術仕様を公開、Linuxカーネルへのマージを認める | OSDN Magazine
Microsoft、ExFATのLinuxカーネルでの実装方法を明確に
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの exFAT はタイムスタンプ精度がFATと同等の挙動と。」 / Twitter
風柳さんはTwitterを使っています 「https://t.co/jPpOy02LH8 絡みでもうひとつ NTFS(1枚目)→exFAT(2枚目)→NTFS(3枚目) って移動したときにファイルの日付がずれてしまったらしく(exFATって仕様上10msの精度あるはずなのにWinでは使われておらずFATと同じ偶数秒の精度になってる)後ほど別のディスクにバックアップを取る際にハマった https://t.co/IcMGWRKJft」 / Twitter

MS

テクノロジ IP ライセンス | IP (知的財産) ライセンス - マイクロソフト イノベーション センター
Licensing exFAT | Microsoft IP Licensing
exFAT file system specification - Windows applications | Microsoft Docs

Wikipedia

exFAT - Wikipedia, the free encyclopedia
exFAT - Wikipedia
File Allocation Table - Wikipedia
File Allocation Table - Wikipedia
8.3形式 - Wikipedia
8.3 filename - Wikipedia

Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あらら。 私の方でも少し見てみますね。」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「exfatの現状記事を書くためにまずはまともなはずのwin10h2のexfatを触り始めたらいきなりヤバい、。 こいつ、プリアロケート予約出してからキャンセルすると全領域初期化で埋めようとしてる、。? hddでも起きるからデバイス側の挙動じゃないはず、。ext3かよ!w https://t.co/xrXVkMkfBU」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「@shirouzu ありがとうございます、本当にお暇なときにでも触ってみてください。 なんかMSの実装ポカな気がします、NTFSでは再現しませんでした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 Process Monitor で確認すると、むしろ Explorer が一時停止/キャンセル時小細工して(中断するとそのサイズでSetEndOfFileしてから削除)、exFATドライバ側の実装問題を回避してますね(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 (ただし、ファイルが見えない状態でコピーはどうやっているのだろう…?)」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「@shirouzu それですよね。外から見てる感じ、何も生成しないのがなんかズルくないか?MS社内専用の秘密の仕組みでもつかっとんのか?と思ってしまいます笑」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 上記の hack で ZeroFill を回避できることが判ったので、次のリリースで入れておきますね。」 / Twitter
Kengo SawatsuさんはTwitterを使っています: 「「Win/Mac両方で読み書きできたまじ便利ってネットの記事に書いてあった」 「macOSで選べるんだから大丈夫でしょ?」 exFATの実装仕様もライセンスも不明瞭だらけでジャーナルも無いウンコFSなのになぜAppleはフォーマットできることにしてるのか。。 #exFATは使うな死ぬぞ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(2年前の話ながら)exFATはMacOSXでファイルが壊れるという話があるのでご注意あれ。 https://t.co/C2UcXBRLYg https://t.co/Sm10ANvYuN https://t.co/06fENVA0jy」 / Twitter
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
FadisさんはTwitterを使っています 「一部のデジカメがexFATにファイル置く時にディレクトにクラスタチェーンだけ追加してDataLengthを更新しないせいで、DataLengthを見て終端を判断していたLinuxで一部のファイルが見えなくなる問題を受けて、LinuxがexFATのディレクトリのDataLengthを信じなくなった話 https://t.co/lXC4i8Q6y7」 / Twitter
Linux 5.14 Works Around Compatibility With Some Digital Camera exFAT File-Systems - Phoronix
ろ。まのふさんはTwitterを使っています 「exFATでお行儀の悪い書き方をするカメラってFujiなのワロタ…ワロタ…(ワロエナイ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi CP/Mだとblock size(128byte)がファイルサイズの単位だったため、テキストファイル末尾はControl-Zで埋めていたとか、 MS-DOS時代になってもその名残りで、テキストファイル末尾にControl-Zを入れる慣習が残っていることがあったとか、 もはやオッサンか おるみん神でないと覚えてなさそうですしねえ…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「^Z で埋めるのは良いけど、MS-DOS3.3ですら fopen(..."r") で ^Z に出くわすとファイルの読み込みを停止しちゃう仕様が嫌だったなぁ。 (今のmsvcrtもそうなのだっけ?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32API の CreateFileW ばかり使うので crt の挙動に疎くなってしまった。」 / Twitter

FatFs 汎用FATファイルシステム モジュール
FatFs - Generic FAT Filesystem Module
FATファイル システムのしくみと操作法
「DataRecovery」「Fat32Formatter」のソースコードを公開 - 窓の杜
FAT仕様書日本語訳.doc - Google ドキュメント
Microsoft Word - FAT32 Spec _SDA Contribution_.doc
日記 (2015 年 10 月上旬)

OSTree - Google 検索
カメラファイルシステム規格 - Wikipedia
Design rule for Camera File system - Wikipedia
そすうぽよ(すごい)(早寝早起き)さんはTwitterを使っています 「木構造によるファイルシステムと、内部的な並列度で性能を稼ぐ現代のSSD、相性悪くない?大丈夫?」 / Twitter
KOBA789さんはTwitterを使っています 「@_primenumber 緩和策としては、leaf node 以外は全部メモリに乗っけてしまうなどがあります」 / Twitter
そすうぽよ(すごい)(早寝早起き)さんはTwitterを使っています 「@KOBA789 電源落ちたときどうするんでしょう? 不揮発性メモリを使うにしてもここをNANDフラッシュで保持したら同じ問題に当たりそうです…」 / Twitter
KOBA789さんはTwitterを使っています 「@_primenumber 最悪 leaf ノードを全走査すれば branch node は再構築できるので……(それで遅いというなら、リカバリ高速化はまた別の頑張りポイントです)」 / Twitter

WinFS

WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFS - Wikipedia
Microsoft Developers Conference 2006 ― T2-206 新たなファイルシステム"WinFS"の方向性とその概要 - NyaRuRuが地球にいたころ
Windows PowerShell, WinFS, IQueryable - NyaRuRuが地球にいたころ
WinFS について (1) - NyaRuRuが地球にいたころ
WinFS について (2) - NyaRuRuが地球にいたころ
WinFS について (3) - NyaRuRuが地球にいたころ
WinFS について (4) - NyaRuRuが地球にいたころ
WinFS についてのビル・ゲイツ氏の最も新しい言及 - NyaRuRuが地球にいたころ

B+ Tree

μTree

okamo(aged 5 yrs.)さんはTwitterを使っています 「μTree スループットだけでなくtail latencyを改善するPMEM向けB+tree。従来手法ではstructural refinement operation(merge split)とinterference overhead(葉のロック)がtail latencyの要因になっていた。designはまだ読めて無いけどこの辺り頑張っているみたい https://t.co/r94NOfdHnE」 / Twitter
uTree: a persistent B+-tree with low tail latency: Proceedings of the VLDB Endowment: Vol 13, No 12
okamo(aged 5 yrs.)さんはTwitterを使っています 「ざっくりいうとPMEMはDRAMに比べてwriteが遅いから、PMEM場ではエントリをlinked listで管理して、tree構造はDRAMに持つ、がアイデア? kvペアのエントリをリストで管理してるのでput操作でPMEM上のSROは発生しない。リスト操作なので葉ノードロックも無くPMEM上の更新の並列性が上がる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「ツリー構造はシステム落としたら失われるので再構築についても頑張っているみたい。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「DRAMに比べて遅いはこれの通り」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そりゃないって、、、って数値だな https://t.co/VbGwzLPmIR https://t.co/WyngufgRO5」 / Twitter
Intel® 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「2.3GB/sというのはインタリーブしてnstore使った時の256B以降のスループットか(スループットといっても1thread) https://t.co/npJqjn9AWE https://t.co/z2QCS945o5」 / Twitter
fast20-yang.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「ntstore(non temporal store)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「評価の一部はこんな感じ https://t.co/fTYNjssc6h」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「細かい技術詳細は追えていないが、PMEMをDRAM like performance というのは誤りでindex構造だけとってももDRAMとPMEMのハイブリッドで作るのがトレンドかな。全てをPMEMに直接叩き込んで高速化、は今後の研究対象にはならなそう、本当にDRAM like performance なものがでれば世界はかわるが、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「low latencyという側面ではこの論文もあるけどこっちはネットワーク越しのkvsなので、タスクスケジューリングとか他のトピックも入っている。ちなみにデータストア自体はLSM treeである。 https://t.co/6O45Vfrp4e」 / Twitter
p1091-lersch.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「分析の対象はFAST&amp;FAIRで、こちらはPMEM直にデータをloggingなしに永続化する研究。メモリオーダリングも気にして頑張ってflush, mfence減らしてる。 https://t.co/RyWzKGiWiA」 / Twitter
DICL/FAST_FAIR: Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
okamo(aged 5 yrs.)さんはTwitterを使っています 「トレンドかな、とか言ったけど直接PMEMへの論文もあるはず、これはそうだった気がする、細かい内容を忘れてしまった https://t.co/JlwAdK2GjU」 / Twitter
p1078-liu.pdf

B-treeインデックス入門 - Qiita
B TreeとB+ Treeの違い - Carpe Diem
第4章 木構造とハッシュ―平衡二分探索木「赤黒木」で知る豊かなデータ型:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
10.pdf
B木 - naoyaのはてなダイアリー
B TreeとB+ Treeの違い | Engineer Log
なぜBTreeがIndexに使われているのか - maru source
[第6回]Bツリー・インデックスの構造 | 日経 xTECH(クロステック)
第7回 性能改善の鍵,インデックスの特性を知る~B-treeとハッシュ (1)B-tree :SQLアタマアカデミー|gihyo.jp … 技術評論社
インメモリー・データベースの注意点 | Think IT(シンクイット)
B-Tree by Java -- B木のすごく簡単な実例
RDBMSで使われるB木を学ぼう (1/3)- @IT
71.pdf
Oracle B-treeインデックスとビットマップインデックス
06gun_03hen_03.pdf
SQLデータベースにおけるバランス検索木(Bツリー)
Oracle の B*Tree インデックスの内部構造についてお勉強中(その1) - drk7jp
データベースの基礎 第2章
従来のデータベースをメモリに載せるだけではだめなのか? インメモリとカラム型データベースの可能性を調べる(その2) - Publickey
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
一番わかりやすい木構造 - NAVER まとめ
漢(オトコ)のコンピュータ道: オトコのソートテクニック2008
C library btree - Google 検索
markc/miniDB: A small fast isam/btree library for key/val access
www.mit.edu/afs.new/sipb/user/gamadrid/nscript/btree.c
B+Treeのページレイアウトと可変長タプル - Write and Run
B-Treeを図示するときの細かいテクニック - Write and Run
クエリエクスキューターの気持ちになる - Write and Run
Rustでon-diskなB+Treeを作ったときの細かな話(Rust LT Online #3) - YouTube
κeenさんはTwitterを使っています 「親への参照を持つB木を題材に循環参照のあるデータ構造の作り方3種の詳解 Rust data structures with circular references - Eli Bendersky's website https://t.co/BLcK6Z6ZZo」 / Twitter
Rust data structures with circular references - Eli Bendersky's website
κeenさんはTwitterを使っています 「紹介って言いたかったんだけど詳解でもまあいっか」 / Twitter

R-Tree

okamo(aged 5 yrs.)さんはTwitterを使っています 「DAOSのファイルの中身はKey Array Store使ってるのか。extentとepochをR-treeの拡張で管理している、と。 https://t.co/rpfLV5Kxnq」 / Twitter
daos/README.md at master · daos-stack/daos
okamo(aged 5 yrs.)さんはTwitterを使っています 「まぁなんか聞いたらそうりゃそうか、って感じだな。どう管理するか悩んでたけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Random write/read飛びまくりだけど、大体そういう性能になってんのかな」 / Twitter

MVCC

MVCC(多版型同時実行制御)
MultiVersion Concurrency Control - Wikipedia
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
4. MVCCとストレージ構造 · PostgreSQL Internals
MVCCトランザクションの動きが実装できた - きしだのはてな
PostgreSQL のトランザクション & MVCC & スナップショットの仕組み
multi-versionの基礎 - 急がば回れ、選ぶなら近道
InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst

CAP定理

Nayuta YanagisawaさんはTwitterを使っています 「CAP定理でDBを分類するのはナンセンスです。そうしようと思ったあなたは、ほぼ確実にCAP定理の主張を誤解しています。例えば、CAP定理のC (consistency)は線形化可能性(直列化可能性より強い性質)を指しますが、ほとんどのDBはこれを満たしません。そもそも前提が違います。 https://t.co/pgN0HU1ej5」 / Twitter
BrewersConjecture-SigAct.pdf
CAP定理 - Google 検索
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「CAP定理って証明されたと言われているけど、あれの証明を読んだ人によると、怪しいそうだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「肯定的な方向で解決してくれると世界が変わるプログラミング上の問題と言うと、CAP定理を否定するDB実装とか、P=NPを証明できるアルゴリズムの発見とか」 / Twitter

クエリ言語

クエリ言語の紹介 | Elasticsearchリファレンス [5.3] | Elastic
Logging のクエリ言語  |  Google Cloud
クエリ言語を理解する - Azure Resource Graph | Microsoft Docs
QUERY - ドキュメント エディタ ヘルプ
クラスタークエリ言語 - Amazon Elastic Container Service
Logica | Modern Logic Programming
BigQuery ドキュメント  |  Google Cloud
GoogleがCloud Monitoring用のクエリ言語”Monitoring Query Language”をGAリリース

トランザクション

The Unison language

るとさんはTwitterを使っています 「関数や型などの定義がcontent-addressingされているプログラミング言語“Unison”。 https://t.co/ITOM1XD4zB コードのASTがGitのようなレポジトリ(codebase)で管理されている。ファイルにコードを書くと型チェックがされて、通るとcodebaseに追加できるようになる。」 / Twitter
The Unison language
るとさんはTwitterを使っています 「AST内では関数などはハッシュ値で参照されている。 関数を「更新」するときは新しい定義を追加して、他の関数が新しい定義のハッシュ値の方を使うように再帰的に「更新」する。 このとき更新された関数に関連するテストのみを実行するとかもできる。」 / Twitter
るとさんはTwitterを使っています 「言語としてはHaskellに似た関数型言語で、algebraic effectsを持つ。FFIはまだ無いけど、IOはある。」 / Twitter

マイクロサービス

マイクロサービスアーキテクチャを再評価する - 影響、運用面での複雑性、代替案
モノリスからマイクロサービスへのマイグレーションで学んだ7つの教訓
伊津野 英克さんはTwitterを使っています 「データベースにもHTTPのEtag+If-Modified-Sinceと同じ仕組みがあるといいのにと思うことはよくある。」 / Twitter
Yoshinori KosakaさんはTwitterを使っています 「マイクロサービスって各サービスの状態が各サービス間で重複してしまうので、整合性を保つためにメッセージキューを使って状態の変化を他のサービスに通知する必要が出るんだけど、DBがCDCをサポートしているとアプリケーションサイドで状態変化の通知を実装する必要がなくなって便利なんだよね」 / Twitter
shino | ほかいちさんはTwitterを使っています 「@wawoon_jp ご期待のものなのかは分からないですが、SQL + キュー操作 を同じトランザクションとして扱えるんじゃないかなと思います。ドキュメント。 https://t.co/rbYkMPt4uH」 / Twitter
Oracle Transactional Event Queues対応のKafka Javaクライアント・インタフェース

ogiwaraさんはTwitterを使っています 「2PLは - 二つのトランザクションの競合についてのみ考えれば、3以上のトランザクションの競合について考えるのと同値 - 任意の述語を制約としておいても大丈夫 だったのに、Snapshot Isolationにした瞬間に一気に - n個のトランザクションのケースについて考慮の必要 - 述語のクラスに依存 になるね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱりどう考えてもここら辺の理論が全然進んでなくて、どうにかしないと議論が進まないとかんじる」 / Twitter
ogiwaraさんはTwitterを使っています 「データの粒度、読み込み、書き込み、制約として述語のクラス、実装と理論との乖離…無限に考えることが多いですね」 / Twitter
ogiwaraさんはTwitterを使っています 「「計算」の次の段階の議論がまだまだ未開拓すぎる」 / Twitter
ogiwaraさんはTwitterを使っています 「並行処理に対する人間の直感があまりにも脆いから、やっぱ証明でガッチガチに固める必要があると確信できる」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf そのあたりの概観を掴むのに良い教科書があります。あとで共有しますね。」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 とても有難いです!」 / Twitter
κeenさんはTwitterを使っています 「案外property based testing(多分Rustのproptestライブラリ)なんかも入ってて適材適所って感じ。 Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science https://t.co/FifgTacu40」 / Twitter
Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science
Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装:連載|gihyo.jp … 技術評論社

Window 関数

[SQL] 最強の分析ツールと言われるWindow関数について私が学んだこと | DevelopersIO
window関数を使いこなす 〜分析のためのSQL〜 - Qiita
ウィンドウ関数
Window関数 | Let's Postgres
窓関数 (SQL) - Wikipedia
分析関数の衝撃(前編) (1/2):CodeZine(コードジン)
PostgreSQLの分析関数の衝撃(7) ――window関数の変わった使用例 (1/4):CodeZine(コードジン)
SQLの便利な関数 〜ウィンドウ関数〜 | GROUP DEV BLOG | TECHNO MOBILE
分析関数 (Transact-SQL) | Microsoft Docs

SQLite

MS

「DB Browser for SQLite」“SQLite”のデータベースを管理できるソフト - 窓の杜ライブラリ
DB Browser for SQLite - 窓の杜ライブラリ
DB Browser for SQLite
sqlitebrowser/sqlitebrowser: Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
「PupSQLite」SQLiteのデータベースをGUIで操作できる高機能管理ソフト - 窓の杜ライブラリ
「SQLite」データベースの管理ツール「PupSQLite」がメジャーバージョンアップ - 窓の杜

OSDN

WALの強化などが行われた「SQLite 3.11」リリース | OSDN Magazine
組み込み向けデータベースライブラリ「SQLite 3.14」リリース | OSDN Magazine
SQLデータベースエンジン「SQLite 3.7」リリース、性能などを改善 | OSDN Magazine
「SQLite 3.20」リリース | OSDN Magazine
SQLデータベース機能を提供するライブラリ「SQLite 3.24」リリース | OSDN Magazine
ウィンドウ関数が加わった「SQLite 3.25」公開 | OSDN Magazine
「SQLite 3.37」が公開 | OSDN Magazine
JSON関数をビルドインした「SQLite 3.38」が公開 | OSDN Magazine

Qiita

SQLite C言語向けAPI チートシート - Qiita
C言語でSQLiteを使う - Qiita
C言語でsqlite - Qiita
渋川よしきさんのツイート: "このライブラリのいいところは生DBから必要な情報を抜いてくるので、DBのフル機能が使えるし、GUIのツールも活用できる。 : GOのORM sqlboiler 使ってみた  on @Qiita https://t.co/Fei2tYSOS8"
GOのORM sqlboiler 使ってみた  - Qiita

Wikipedia

SQLite - Wikipedia
SQLite - Wikipedia, the free encyclopedia
インメモリデータベース - Wikipedia

Twitter

Fadisさんのツイート: "sqlite-3.17.0がリリースされました。今回の変更点はパフォーマンスの向上やコンパイルオプションの改良などデータベースの使い方は変わらない変更が中心だが、ひそかにsha1を求める組み込み関数が追加されている https://t.co/YKG4Kw5Wqm"
Fadisさんのツイート: "複数のテーブルを結合して1つのテーブルとして見えるようにするUNION仮想テーブル、インタラクティブインターフェースの補完の挙動を変更するcompletionテーブル等の機能が追加されたsqlite-3.20.0がリリースされました https://t.co/MreLLp1dXc"
Fadisさんのツイート: "SQLite 3.22.0からの新機能zipfile。zip形式のアーカイブの中身をSQLクエリで漁れるようになる。つまり、SELECTでファイル一覧を取得し、INSERTでファイルを作り、DELETEでファイルを消し、UPDATEでファイルを書き換える https://t.co/HFqpH8aRVv"
The SQLite Zipfile Module
Shirouzu Hiroaki(白水啓章)さんのツイート: "設定類をiniではなくてsqliteにすると複数起動時の相互反映がやりやすい。 一方で、I/F を用意しない限り、ユーザ変更できなくなる縛りが出るので難しいところ。"
鯉江さんのツイート: "相互反映というのがイメージがわかないですが、起動したときにアトミックに更新するのはできても、異常終了したときにに更新するのはできないので、そんなに便利ではないような。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のFastCopyは複数起動して、それぞれで設定を変えても、最後にiniを上書きした方しか残らないのですよね。 ただ、何も考えずに取り込むと矛盾した項目が取り込まれる可能性もあって、なかなか簡単ではないのですが。… "
Fadisさんのツイート: "SQLite 3.24.0がリリースされた。主な変更点は、UPSERTをできるようになった、文字列にSQLiteのキーワードが含まれているかを調べる関数の追加、VACUUMするとデータベースの全てのデータが削除されるモードSQLITE_DBCONFIG_RESET_DATABASEの追加他 https://t.co/pBRdV82iTL"
本の虫: SQLiteの行動規範がキリスト教徒の戒律を全文引用していて香ばしすぎる
Kazuho Okuさんのツイート: "SQLiteのCoCを批判するのにキリスト教の悪口を持ち出すのマジ最悪手というか、欧米白人中心のコミュニティで非キリスト教徒が少数派であるのと同様に、日本国(あるいは日本語話者)内でキリスト教徒が少数派であることを考えれば、目糞鼻糞以下の行為ですよ"
Kazuho Okuさんのツイート: "Thank you SQLite for choosing religion as a new tool to offend minority developers"
Krøstianさんのツイート: "Apparently SQLite has a code of conduct that weirdly comes across as a "fuck codes of conduct". Will not participate in that community in any way.… https://t.co/p4U9zRzpb3"
Jan-Piet MENSさんのツイート: "I will not contribute to SQLite: “First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.” https://t.co/gmi3eicc5Q #codeOfConduct"
Code Of Conduct
およげmatsuuくんさんのツイート: "ワハハクソでしたな。批判の嵐だったのでSQLiteは結局Mozilla Community Participation Guidelinesを行動規範として採用した模様。 / “本の虫: SQLiteの行動規範がキリスト教徒の戒…” https://t.co/xdpdskN5sZ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sqlite(C言語)で、inner join・サブクエリを含むSQL文が一発で動いてホッとしたのだが、そもそもコンパイル時に文法エラー及びテーブル定義との不整合エラーを検出できる仕組みが欲しいところ。"
日比野 啓 (Kei Hibino)さんのツイート: "呼ばれたような気がする… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Haskellなら、HRRがありますね! https://t.co/eG4HCggy77… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SQLite3 では TEXTカラムに binary形式で保存できるが、その場合LIKE検索は出来ない様子。(少なくとも Python sqlite3 では)」 / Twitter
FadisさんはTwitterを使っています 「SQLite 3.33がリリースされたらしい。SQLite 3.33では新しく他のテーブルをSELECTした結果を使ってUPDATEを行うUPDATE FROMがサポートされる。またページ番号をintで扱っていた所が32bit符号なし整数に揃えられ、281TBまでのデータベースが作れるようになる https://t.co/cQXfWMJOpW」 / Twitter
SQLite 3.33 Released With PostgreSQL-Inspired UPDATE FROM, Database Files Up To 281 TB - Phoronix
井山梃子歴史館さんはTwitterを使っています 「SQLiteにjson突っ込むか… https://t.co/z3IFzg4k2Q」 / Twitter
SQLite as a document database
井山梃子歴史館さんはTwitterを使っています 「jsonのフィールドにインデックス貼れるの面白いな」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Richard Hipp (SQLite開発者) インタビュー。彼は軍艦の診断システムを開発中、Informixが頻繁にクラッシュするのに頭にきてデータベースを書き始めた。いまやSQLiteは世界でもっとも使われているコードである。彼曰く「自由とは自力で実装できること」話し上手で痛快。 https://t.co/26Qqh2N4Oc」 / Twitter
The Untold Story of SQLite With Richard Hipp - CoRecursive Podcast
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにSQLiteはおそるべき信頼性をもっており、分岐被覆率100%を達成している。テストケースは数十万個あり、これらをさらにパラメータ化している。テストは多様なアーキテクチャ (big endianなCPUも含む)・OS上で行われ3日間ぐらいかかるとのこと。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なお、Hipp自身によるSQLiteの発音は「えすきゅーらいと」ではなく「えすきゅーえるあいと」。彼はSQL以外にもプログラミング全般に一家言もっていて聴きがいがある。新山から見るとヒーローの一人といってもいい。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SQLiteに計画中の STRICTテーブル案。従来のSQLiteテーブルとは違い、データ型を厳密に指定できる。指定の型に自動変換できない場合はエラーを発生する。 https://t.co/reKdiRsAeH」 / Twitter
STRICT Tables

SQLite Home Page
SQLのインデックスとそのチューニングについてのオンラインブック
MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
SQLite4: SQLite4
SQLiteで組み込みDB体験 (1/3):CodeZine(コードジン)
Placesデータベースの読み書き処理を大きく減らす裏技(Firefox 49以降) - Mozilla Flux
SQLiteバイトコードを追う — 鱒身(Masu_mi)のブログ
SQLite入門
ファイルシステムよりも35%高速に | インフラ・ミドルウェア | POSTD
How Does a Database Work? | Let’s Build a Simple Database
cstack/db_tutorial: Writing a sqlite clone from scratch in C
SQLiteデータ型の仕様とセキュリティ問題 – yohgaki's blog
ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "顧客ごとにSQLiteなファイル作ってデータ入れることで、RDBMSにおけるマルチテナンシー問題を回避してるってことなんかな / “ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cyboz…” https://t.co/R8eGK1LWe7"
Kazuho Okuさんのツイート: "アクセス頻度が低いサービスが大量にある場合、アプリケーションサーバ立てるよりCGIのほうが便利だし、RDBMSサーバ立てるよりSQLiteのほうが便利"
SGソフトウェア開発ブログ: [SQLite]CでSQLiteのユーザ定義関数を作る その1
「SQLite」データベースに脆弱性--「Chromium」ベースのブラウザにも影響 - ZDNet Japan
SQLite/Chromium脆弱性“Magellan”は「Electron」にも影響 ~修正版が公開 - 窓の杜
SQLiteが「大量の小さなクエリ」の処理を得意とする理由とは? - GIGAZINE
FadisさんはTwitterを使っています 「rqlite 7.0がでたらしい。rqliteはsqliteをストレージエンジンとしつつ、クエリをログとして、分散合意アルゴリズムRaftを上に乗せる事で高可用性を実現する分散データベース。7.0ではConsulを使ってクラスタに参加したがっているノードを自動で見つけるようになる https://t.co/pe7O8E918c」 / Twitter
Rqlite 7.0 Released For Distributed Relational Database Built Atop SQLite - Phoronix
FadisさんはTwitterを使っています 「rqlite、Raftのleaderが複数のクエリに順番をつけて1本のキューに流すから、個々のfollowerは1本のキューで順に流れてくるSQLを処理する能力しか求められなくて、それsqliteで十分では?ってなるのか」 / Twitter
SQLite 3.38で、JSONクエリ、エラーメッセージなどが改善

Extensible Storage Engine

FadisさんはTwitterを使っています 「マイクロソフトがExtensible Storage Engine(ESE)をオープンソース化した話。ESEは*NIX畑で言うBerkeleyDBのような役割を果たす組み込みデータベースで、Windows2000で登場して以来今日に至るまで様々なマイクロソフト製品で利用されてきた。(例: Windows Updateの更新履歴) https://t.co/2jw1s2fJRc」 / Twitter
Microsoft Makes The Extensible Storage Engine Open-Source - Phoronix
Toshitaka MiuraさんはTwitterを使っています 「@fadis_ formerly known as JET Blueだと。 JETエンジンにRedとBlueがあったというのは知らなかったな。 Redの方がMS-Accessのエンジン部、BlueはExchange ServerやWindowsデスクトップサーチやIEのキャッシュで使われてて、機能も違うし交換もできないと。 ややこしいな。」 / Twitter
Toshitaka MiuraさんはTwitterを使っています 「@fadis_ メモ。 https://t.co/aQBj0b1A5V https://t.co/X0ICRHfdXu」 / Twitter
【レビュー】多くのMicrosoft製品で使われているESEデータベースを閲覧できる「ESEDatabaseView」 - 窓の杜
Extensible Storage Engine アーキテクチャ | Microsoft Docs
マイクロソフト、NoSQLデータベース「Extensible-Storage-Engine」をオープンソースで公開。25年以上、ExchangeやActive Directoryなどで利用 - Publickey

CacheLib

FadisさんはTwitterを使っています 「CacheLib: Facebookが同社のサービスで利用しているin-processなキャッシュ用KVSライブラリ。DRAM上のキャッシュのように振る舞うが、背後でcoldなデータをNVMに追い出して見かけ上大容量を実現する。キャッシュは手で消す以外に時限で消える等の多彩な設定が可能 https://t.co/B4dGZpKX1U」 / Twitter
CacheLib | CacheLib
FadisさんはTwitterを使っています 「よそのサーバから持ってきた情報をキャッシュするのにDRAMは容量単価とエネルギー効率が悪くなってるからNVMをキャッシュに使うって話、完全にIntelにやる気があればNVDIMMが圧倒していた筈の市場だ…」 / Twitter
FadisさんはTwitterを使っています 「実装的にはNVM以外のブロックデバイスでも別に動かないわけではなくて、積極的にtruncateを行う動きをするのと、実用上NVMじゃないと遅すぎるって話っぽい。NVM上のキャッシュはnamespaceやパーティションまるごとでも作れるし、NVM上のfs 上のファイルでも作れる」 / Twitter

blog

その他

pixivのブックマークに関する負荷対策をしました - pixiv inside
PostgreSQLパーティションプルーニングの動作を確認する | Future Tech Blog - フューチャーアーキテクト
Scala用のタイプセーフなSQLビルダを作ってみた - たけぞう瀕死ブログ
SQL Server 2019 プレビューで UTF-8 をサポート – Cloud and Server Product Japan Blog
PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
WEB+DB PRESS plus の DB 本 3冊を読んで index を学んだ · Yuichi Takada
Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
A Critique of ANSI SQL Isolation Levels再読 - 急がば回れ、選ぶなら近道
DBMSをGoで実装してみた - Sansan Builders Box
カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜 - Retty Tech Blog
Go用SQLスロークエリ解析ツールAqueryを書いてISUCON10の本選に出たらfailした | teqblog
【BigQuery】 AlphaSQLでスキーマ安全なデータ基盤を構築する | by Matts966 | JDSC Tech Blog | Dec, 2020 | Medium
yohさんはTwitterを使っています 「SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる https://t.co/kPb1OquVCq 「ロックを取る順番が一意になるようにクエリや実行計画を揃えるというのがこの手の問題に対する一般的な対処法」 今んところ人類はどこまで行ってもこの問題から逃れられんのか...」 / Twitter
Apache Calcite + Truffle でクエリエンジンを作ってる話
DSAS開発者の部屋:2019年01月
WASD Inc.という会社でCTOをやっています|Yudai Shinnoki|note
Python/R/SQL コード対応表 | みぞおちブログ
スキーマ駆動開発 (OpenAPI) 導入後の改善 - Adwaysエンジニアブログ
チョットワカル Row-Based Replication・その1 | エンジニアブログ | GREE Engineering
shallow1729さんはTwitterを使っています 「正確にはMySQLのphantomの扱いを分かってなかった。MySQLのやり方でphantom read防ぐのむずくね?ってなってたけど案の定best effortだった。 例えば以下のブログの例 https://t.co/ib2VrePhZO」 / Twitter
Understanding MySQL Isolation levels: repeatable-read | Official Pythian®® Blog
Google is pushing the new language Logica to solve the major flaws in SQL! | by Shingai Zivuku | Nerd For Tech | Medium
tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ
MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Blog

はてなブログ

Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ - ぱと隊長日誌
トランザクション理論における polygraph と History の VSR 判定 - ぱと隊長日誌
Berkeley DB (Hash) の実装 - knqyf263's blog
Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
トランザクション中の文の失敗の扱いの違い - Write and Run
WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run
DDLからコード生成するツールを作ったよ! - ハッピー抹茶工場
MVCCとInnoDBでの実装について - shallowな暮らし
ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし
InnoDBのMVCCのガベージコレクションについて - shallowな暮らし
nitpick 『詳説データベース』 - 井山梃子歴史館
【ProxySQL】入門する - 地方エンジニアの学習日記
【ProxySQL】mysql-shun_on_failuresの罠 - 地方エンジニアの学習日記
MariaDB のデバッグをいい感じにやる - それが僕には楽しかったんです。
Dive into InnoDB MVCC - nayuta-yanagisawa's blog
データベースシステム 改訂2版の数式でわからなかったところメモ - CubicLouve
自作DBを始めたい人におすすめの本 - salachike:blog
Rustのasync-stdを利用したRedisサーバクローンが公開されました - 未完成な論を綴るブログ

Publickey

AWS

AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能 - Publickey
Amazon S3がこれまでの「結果整合性」から「強い一貫性」サポートへ。データを更新直後でも最新データの読込みが保証されるように - Publickey
AWS Backupの新機能、Amazon RDSのデータベースを任意の時点に戻せる「継続的バックアップ」と「Point-in-timeリカバリ」が登場 - Publickey
AWS、自然言語でデータベースに問い合わせ、データ分析ができる「Amazon QuickSight Q」正式リリース - Publickey
AWS、データウェアハウスをサーバレス化する「Amazon Redshift Serverless」や「Amazon EMR Serverless」など発表。AWS re:Invent 2021 - Publickey
[速報]AWS、データベース性能問題を数分で検出、分析、解決までしてくれる「Amazon DevOps Guru for RDS」発表。AWS re:Invent 2021 - Publickey
AWS、新たな責任共有モデルの「Amazon RDS Custom」をSQL Serverへも拡大。マネージドサービスながらOSへのSSHなども可能。AWS re:Invent 2021 - Publickey
Amazon S3、データの整合性確認を最大90%高速化。新たなオブジェクトのチェックサムアルゴリズム追加で - Publickey
Amazon RDS MySQL/PostgreSQLのトランザクション性能が2倍に、可用性とスケーラビリティも高める新「マルチAZ配置オプション」登場 - Publickey

PostgreSQL

PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど - Publickey
PostgreSQL 12β1が公開。Bツリーインデックス周りの性能向上や、インデックスの並列処理による再構成が可能に - Publickey
PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など - Publickey
PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 - Publickey
PostgreSQL 14正式リリース。多くの接続を使用するワークロードや論理レプリケーションでの性能向上、可観測性の向上など新機能 - Publickey

MySQL

MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR] - Publickey
MySQLの新サービス「HeatWave」、SQLそのままで最大3000倍高速に。DMM.comが検証[PR] - Publickey
MySQLベースの分散インメモリDB「HeatWave」の最適化と運用自動化を支援する「MySQL Autopilot」、オラクルが発表 - Publickey

スケーラブルな分散SQLエンジン「Presto」の開発団体「Presto Software Foundation」が発足 - Publickey
Oracle Exadataの最新版となる「Exadata Database Machine X8」登場、自動チューニング機能「Automatic Indexing」など、機械学習による自動運用を強化 - Publickey
オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用 - Publickey
RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR] - Publickey
Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 - Publickey
tagomorisさんはTwitterを使っています 「OpenTracingベースのトレースの便利さをちゃんと理解したの割と最近だけど、これはよくできたUIとセットでないと実現が難しいやつかなとも思うので、一般化するのは早過ぎるのかもしれないとも思う。 そのうちOSSでVisualizeできるところまでいってからかな。」 / Twitter
tagomorisさんはTwitterを使っています 「この話は何かというと、もちろん、モニタリングまわりの機能まで含めたサービスをやってるGoogleがSQLにコメントを自動で入れるという大昔からの知恵をいま出してくるのが面白かったという話 https://t.co/m57avpjwmu」 / Twitter
Introducing Sqlcommenter: An open source ORM auto-instrumentation library | Google Cloud Blog
みょうがさんはTwitterを使っています 「@tagomoris こういうことやってくれる gem があった気がする・・・」 / Twitter
tagomorisさんはTwitterを使っています 「@mrkn これっすね https://t.co/v7u0UXuf6j」 / Twitter
Ryuta KamizonoさんはTwitterを使っています 「sqlcommenter_railsただのmarginaliaを依存で入れてくれるだけの代物だった https://t.co/wbXuT9DMGH」 / Twitter
sqlcommenter/sqlcommenter_rails.rb at master · google/sqlcommenter
オラクルがOracle Autonomous Data Warehouseを強化。SQLを知らないビジネスユーザーでもデータ分析を容易にする自動化とUIなど追加 - Publickey
MongoDB 5.0が登場。時系列データ対応、実行中のシャーディング変更に対応など - Publickey
無料のフルマネージドなグラフデータベース「Neo4j AuraDB Free」発表。5万ノード、17万5000リレーションシップまで利用可能 - Publickey
大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に - Publickey
オラクル、MongoDB互換API「Oracle Database API for MongoDB」をAutonomous JSON Databaseで提供開始 - Publickey

KaiGaiの俺メモ

スキャン速度10GB/sへの挑戦~その④ 完結編~ - KaiGaiの俺メモ
秒速で10億レコードを処理する話 - KaiGaiの俺メモ
Asymmetric Partition-wise JOIN - KaiGaiの俺メモ
Dive into Apache Arrow(その3)- SSD-to-GPU Direct SQL対応 - KaiGaiの俺メモ

豪鬼メモ

DBMの設計と実装

DBMの設計と実装 その0 全体の計画 - 豪鬼メモ
DBMの設計と実装 その1 ハッシュ関数 - 豪鬼メモ
DBMの設計と実装 その2 APIの草案 - 豪鬼メモ
DBMの設計と実装 その3 ハッシュロック - 豪鬼メモ
DBMの設計と実装 その4 ハッシュデータベースの構造 - 豪鬼メモ
DBMの設計と実装 その5 ハッシュデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その6 ハッシュデータベースの再構築 - 豪鬼メモ
DBMの設計と実装 その7 ファイルの抽象化 - 豪鬼メモ
DBMの設計と実装 その8 ファイルクラス毎の性能 - 豪鬼メモ
DBMの設計と実装 その9 B+木の構造 - 豪鬼メモ
DBMの設計と実装 その10 LRUキャッシュ - 豪鬼メモ
DBMの設計と実装 その11 ツリーデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その12 ツリーデータベースの実装 - 豪鬼メモ
DBMの設計と実装 その13 スキップリストの構造 - 豪鬼メモ
DBMの設計と実装 その14 スキップデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その15 スキップデータベースの検索 - 豪鬼メモ
DBMの設計と実装 その16 オンメモリデータベース - 豪鬼メモ
DBMの設計と実装 その17 ゾーンI/O - 豪鬼メモ
DBMの設計と実装 その18 アトミックなレコード処理 - 豪鬼メモ
DBMの設計と実装 その19 バックアップ - 豪鬼メモ
DBMの設計と実装 その20 セカンダリインデックス - 豪鬼メモ
DBMの設計と実装 その21 実装作業に向けて - 豪鬼メモ

histric

histric-1

データベースライブラリTkrzwの初版リリース - 豪鬼メモ
Tkrzw: a set of implementations of DBM
DBMのダイレクトI/O対応 - 豪鬼メモ
DBMを使った検索エンジンの作り方 - 豪鬼メモ
DBMで単語辞書を作ろう - 豪鬼メモ
DBMのローカルシャーディング - 豪鬼メモ
LRU削除キャッシュDBM - 豪鬼メモ
Wikipediaから作るN-gramフレーズ頻度DB - 豪鬼メモ
Wikipediaの共起語を使ってシソーラス検索をしよう - 豪鬼メモ
Wikipediaを解析して共起語抽出をしよう - 豪鬼メモ
ラテン文字のマッチング用正規化 - 豪鬼メモ
バッチで文字列探索する際の性能 - 豪鬼メモ
文字列探索法の比較 - 豪鬼メモ
ダイレクトI/O用のキャッシュ実装 - 豪鬼メモ
各種データベース実装と各種ファイル実装の性能比較 - 豪鬼メモ
I/Oのバッチ化によるDBの性能改善 - 豪鬼メモ
はじめてのDBM - 豪鬼メモ
はじめてのDBM - Google スライド
マルチレコードトランザクション機能 - 豪鬼メモ
トランザクションのACID特性と自動リストア機能 - 豪鬼メモ
壊れないデータベースと壊れにくいデータベース - 豪鬼メモ
CRCをデータベースに内蔵する - 豪鬼メモ
マルチシャードのトランザクション - 豪鬼メモ
圧縮アルゴリズムの事前調査 - 豪鬼メモ
圧縮データベースの性能評価 - 豪鬼メモ
各種エラー検出符号のエラー検出率 - 豪鬼メモ
ハッシュデータベースの互換的フォーマット変更 - 豪鬼メモ
BtrFSのスナップショットによるオンラインバックアップ - 豪鬼メモ
再構築しない復旧処理 - 豪鬼メモ

histric-2

TkrzwのC言語インターフェイス - 豪鬼メモ
C++/Java/Ruby/Pythonの並列I/O用ファイルインターフェイス - 豪鬼メモ
C++標準futureとスレッドプールの性能比較 - 豪鬼メモ
非同期APIでデータベースを操作する - 豪鬼メモ
非同期APIの性能評価 - 豪鬼メモ
Go言語勉強中 - 豪鬼メモ
TkrzwのGo言語インターフェイスをリリース - 豪鬼メモ
C言語での非同期API - 豪鬼メモ
Pythonの非同期APIとコルーチン - 豪鬼メモ
Javaインターフェイスで2倍の高速化 - 豪鬼メモ
スピンロックによる並列処理の高速化 - 豪鬼メモ
ネイティブ非同期APIとゴルーチンの性能比較 - 豪鬼メモ
スピン共有ロックの優先度制御とアップグレード機能 - 豪鬼メモ
共有ロックによる並列B+木操作の保護 - 豪鬼メモ
Tkrzw 1.0の性能評価 - 豪鬼メモ
各種メモリアロケータによる性能評価 - 豪鬼メモ
mallocの削減などによる性能向上 - 豪鬼メモ
DBサービスを作ろう その0 準備 - 豪鬼メモ
DBサービスを作ろう その1 ログとデーモン化 - 豪鬼メモ
DBサービスを作ろう その2 基本APIの設計と実装 - 豪鬼メモ
DBサービスを作ろう その3 ストリームAPIでイテレータを実装 - 豪鬼メモ
DBサービスを作ろう その4 gRPCの性能測定 - 豪鬼メモ
DBサービスを作ろう その5 バッチ化とストリーム化による性能向上 - 豪鬼メモ
DBサービスを作ろう その6 非同期化による性能向上 - 豪鬼メモ
DBサービスを作ろう その7 シャーディング最強説 - 豪鬼メモ
DBサービスを作ろう その8 レプリケーションを踏まえた更新ログの要件 - 豪鬼メモ
DBサービスを作ろう その9 更新ログのメッセージキュー化 - 豪鬼メモ
DBサービスを作ろう その10 更新ログによるインクリメンタルバックアップ - 豪鬼メモ

DBサービスを作ろう その11 非同期レプリケーション完成! - 豪鬼メモ
DBサービスを作ろう その12 非同期レプリケーションのプロトコルと実装 - 豪鬼メモ
Tkrzw-RPCのPythonクライアントライブラリ - 豪鬼メモ
Tkrzw-RPCのRubyクライアントライブラリ - 豪鬼メモ
Tkrzw-RPCのGoクライアントライブラリ - 豪鬼メモ
gRPCクライアントの各言語の性能比較 - 豪鬼メモ
Fedoraパッケージ対応とmmapに関する話 - 豪鬼メモ
DBMでメッセージキューイング その0 準備 - 豪鬼メモ
DBMでメッセージキューイング その1 メッセージキューサービスの利用法 - 豪鬼メモ
gRPCのJava版のアプリケーションを手動またはmakeでビルドする方法 - 豪鬼メモ
gRPCのJavaクライアントライブラリ - 豪鬼メモ
gRPCでのSSL暗号化と認証 - 豪鬼メモ
Go言語におけるスライスや文字列のアドレス検査と特異値 - 豪鬼メモ
DBMでメッセージキューイング その2 CompareExchangeとモニタリング - 豪鬼メモ

MasahikoSawada

ロジカルレプリケーションのレプリケーション衝突を解決する
シーケンシャル・スキャンだからといってデータがテーブルの先頭から返ってくるとは限らない、という話
PostgreSQLのソースコードの構造
BRINの概要
BRINソースコードリーディング(構築)
VACUUMのログの読み方(VACUUM VERBOSE)
FDWを使った時の読取り異常、更新異常を見てみる
PostgreSQLのリカバリ周りのバグを修正してみた - 原因究明編 -
PostgreSQLのリカバリ周りのバグを修正してみた - 問題発見編 -
Parallel Queryの概要
SQLからHINT句を生成するツール(phint)を作ってみた
トランザクションIDへのロックと行ロック
DeadlockとDeadLock対策のメモ
MyProc->delayChkptについての理解と覚書
PostgreSQL 14でのBtreeインデックスのVacuum関連の改善についての解説
PostgreSQLのMVCCとガベージコレクション(Vacuum)

日々の覚書

日々の覚書: MySQL 5.6のクラッシュセーフなレプリケーションの仕組み
日々の覚書: MySQL 5.6とそれ以前は「testデータベースを消せば良いってもんじゃない」というはなし
日々の覚書: レプリカにだけgenerated columnを追加したらセカンダリインデックスが更新されなかった
日々の覚書: MY-001192 Can't execute the given command because you have active locked tables or an active transaction に出会った
日々の覚書: 「MySQLのフェイルオーバーテストをする」と聞いてぼんやり思ったこと

クックパッド開発者ブログ

クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
Amazon Elasticsearch ServiceをつかったRDSのスロークエリの集計と監視 - クックパッド開発者ブログ
Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
全国のスーパーに置かれる storeTV 端末の情報の取得にかかる時間を15分から10秒にした話 - クックパッド開発者ブログ
データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ

Money Forward Engineers' Blog

【Rails】トランザクションを張るときにSQLキャッシュで気にすべきこと | Money Forward Engineers' Blog
OpenAPIでスキーマ駆動開発してみた | Money Forward Engineers' Blog

技術日誌

Effective SQL 読書会(4)に参加 - Yabu.log
Effective SQL 読書会(5)に参加 - Yabu.log
プログラマのためのSQL 読書会(25)に参加 - Yabu.log
プログラマのためのSQL 読書会(26)に参加 - Yabu.log
プログラマのためのSQL 読書会(27)に参加 - Yabu.log
dbtech showcase Tokyo2018に参加 - Yabu.log
プログラマのためのSQL 読書会(28)に参加 - Yabu.log
プログラマのためのSQL 読書会(31)に参加 - Yabu.log
「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ - Yabu.log
約2年間続いた読書会で「プログラマのためのSQL」を読み終わりました - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(1)に参加 - 誰にも見えないブログ
Transaction,Concurrency ControlとAntichain - Yabu.log
CMU 15-445/645 (FALL 2018)Database Systems - 01 Relational Data Modelノート - 誰にも見えないブログ
CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL - 誰にも見えないブログ
Transactionのinterpretation(herbrand semantics)について - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(6)に参加 - 誰にも見えないブログ
Scheduleをpolygraphに変換してVSR validationを行う方法 - Yabu.log

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"いつ誰がどのシステムを使って、何を変更したのか、変更前の状態、変更後の状態など、監査ログとして必要な情報が DB によって整合性と検索が担保された状態で永続化" / 1件のコメント https://t.co/E4ghgbKnGU “Datomic Cloud を半年運用した感想|hden|note” https://t.co/f53kC2mM28」 / Twitter
Datomic Cloud を半年運用した感想|hden|note
MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
FUJI GoroさんはTwitterを使っています 「おーなるほど、これはひどい。ライブラリが「賢い」振る舞いをサポートすることによって余計な穴ができるパターンか。 / “Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog” https://t.co/L4mVkxXLAY」 / Twitter
Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog

スライド

20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
RDBMS in Action - Speaker Deck
HSEとは何か - Speaker Deck
FadisさんはTwitterを使っています 「カーネル/VM online part1での発表「HSEとは何か」をYouTubeで見れるようにしました #kernelvm https://t.co/uSMzFNBJMl」 / Twitter
Kazuho OkuさんはTwitterを使っています 「mpool自体のアラインメントは自動的に取ってくれるんだろうか。mpoolの使うロジカルボリューム?がerase block境界に配置されないと悲しいことになると思うけど #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「@kazuho mpoolの作成時にブロックサイズを指定するとmblockやmlogの配置がアラインされるようになっています。デフォルトは32MBです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーHSE自体はfsは触らずにmpoolだけ使うのか。納得」 / Twitter
まちカドおるみんさんはTwitterを使っています 「そういえば SSD のコントローラーというとこういうプロジェクトもあるらしいですね &gt;&gt; The OpenSSD Project https://t.co/TD8u6zOdn7 #kernelvm」 / Twitter
The OpenSSD Project
Yasuo ItabashiさんはTwitterを使っています 「この手の問題は上層が指定したcapabilityやattributeを持つ下層を透過的に選択したり、下層のstatusを上層に通知する仕組みがあると良いと思う。シンプルにバイパスさせると環境依存が増えてOSの旨味をスポイルされるので。 #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm mpoolは作成するときにブロックサイズが指定できる、というか指定しないと意味がない。でもSSDのブロックサイズを公表しているとは限らない…」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「Event Sourcingとか、DBのトランザクションログとか、ジャーナルログとか、何となく雰囲気似てる感じがする」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「コピーGCみたいなことするのか」 / Twitter
まちカドおるみんさんはTwitterを使っています 「どっちかというと DB の wal」 / Twitter
まちカドおるみんさんはTwitterを使っています 「というか journaling と wal ってほぼ同じものが違う場所で使われてるだけな感じある」 / Twitter
DBアタマアカデミー:連載|gihyo.jp … 技術評論社
第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2):DBアタマアカデミー|gihyo.jp … 技術評論社
sat🌿さんはTwitterを使っています 「強いストレージデバイスのすごいところのひとつは上に乗っかってるLinuxのI/Oスケジューラとかファイルシステムとかに相当するものをフルセットで持っててカーネルが「俺何もしなくていいんじゃね?」ってなるところ」 / Twitter
FadisさんはTwitterを使っています 「昔は カーネル「ディスク君がスムーズに書けるように私が書き込み順を調整してやろう」 だったのが今や SSDのコントローラ「そういうの全部こっちでやるんでユーザ空間から来た書き込みは即座に渡してください」 だもんな」 / Twitter
僕がDIを否定する理由 - kbigwheelのプログラミング・ソフトウェア技術系ブログ
やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった - fsubal
フロントエンドにおける「関心の分離」は間違っていた - fsubal
How COMMIT Works in CockroachDB - Speaker Deck
Rustでon-diskなB+Treeを 作ったときの細かな話 - Speaker Deck
MySQLとインデックスと私 - Speaker Deck
PostgreSQLのCREATEROLE権限強すぎ問題(第27回PostgreSQLアンカンファレンス@オンライン 発表資料)
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - Speaker Deck
如何にデータベースが重要でなぜ私達が学ぶのか / Reasons for learning a database - Speaker Deck

GitHub

mysql80_no_usui_hon/book_ebook.pdf at master · hmatsu47/mysql80_no_usui_hon
YugaByte/yugabyte-db: YugaByte DB is the open source, high-performance SQL database for building internet-scale, globally-distributed apps.
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
非公式MySQL 8.0オプティマイザガイド by yakst

GIGAZINE

PostgreSQLには「中途半端なサイズ」のデータを格納しないほうがいい - GIGAZINE
簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた - GIGAZINE
データベースの文字数制限が191文字になっている理由とは? - GIGAZINE

技術評論社

2019年10月17日 "データレイク"のスタンダードをめざす ―Databricks,「Dalta Lake」をLinux Foudnationに寄贈:Linux Daily Topics|gihyo.jp … 技術評論社
第655回 オブジェクトストレージ,MinIOを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第657回 オブジェクトストレージ,MinIOを使用する[クライアント編]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

POSTD

リレーショナルデータベースの仕組み (1/3) | POSTD
リレーショナルデータベースの仕組み (2/3) | POSTD
リレーショナルデータベースの仕組み (3/3) | POSTD

infoQ

AWSがCloudTrailログ用のフルマネージドデータレイクをリリース
NoSQL データベースのアジャイルなデータモデリング
MicrosoftがEdgeにSQLを導入、Azure SQL Database Edge
COMN(Concept and Object Modeling Notation)によるNoSQLデータベースのデータモデリング
OCIはMicronaut Data 1.0を特徴とするMicronaut 1.3をリリースした
分散時系列、ドキュメント圧縮、インデクスを改良したRavenDB 5
KSQLがConfluent Cloudで利用可能に
Elasticsearch 7.7は非同期検索、セキュアなキーストアなどをもたらす
JepsenがMongoDBのデータ整合性の主張に異議を唱える
Kafka、MongoDB、Maxwell's Daemonを使用したSQLデータベース監査システムの構築
Amazon S3が強力な読み取り後書き込みの一貫性を提供する
Couchbaseで言語と開発者に使いやすいデータ構造を使用
Pinterestが階層化ドキュメントを効率的に検索するアーキテクチャについて解説
Lightstepは新しいChange Intelligence機能でトレースとメトリックを結び付ける
Couchbaseが自身の分散ACIDトランザクションアーキテクチャを詳細に説明
Google Logicaは、SQLクエリをより再利用でき、読みやすくすることを目指す
Prisma ORMツールスイートが実運用対応に
Logz.ioがログデータ内のパターンを自動特定する機能をリリース
オラクル オープンソース Coherence インメモリデータグリッド
AceSQL、オープンソースのJDBC-over-HTTPドライバをリリース
GoogleがポイントインタイムリカバリでCloud Spannerを強化
ZippyDB:Facebookの強力な一貫性のあるKey-Valueストアのアーキテクチャ
GitHubはいかにしてリレーショナルデータベースの信頼性と拡張性を改善したか
Yugabyte Cloud: マネージド分散SQLデータベース
Cockroach LabsがCockroachDB Serverlessを発表
CloudflareがR2ストレージとレグレス無償でAWSに挑む
HibernateがReactive APIのバージョン1.0をリリース
Neo4j Migrationsを使ったNeo4jグラフスキーマの移行
Amazon S3が整合性チェックのための新しいチェックサムアルゴリズムをサポート

OSDN

パーティション強化、JITコンパイラなどが加わった「PostgreSQL 11」リリース | OSDN Magazine
「PostgreSQL 11.2」リリース、fsync()失敗時の処理を修正 | OSDN Magazine
SQL互換のHTAP向け分散データベース「TiDB 3.0」リリース | OSDN Magazine
「PostgreSQL 11.5」リリース、4件のセキュリティ問題を修正 | OSDN Magazine
「PostgreSQL 12」リリース、性能面でさまざまな強化が行われる | OSDN Magazine
「PostgreSQL 14」が公開 | OSDN Magazine
Apache HadoopやSparkをパッケージした「Apache Bigtop 3」が登場 | OSDN Magazine
分散ファイルシステム「Gluster 10」が公開 | OSDN Magazine
「PostgreSQL 14.2」が公開、約55件のバグを修正 | OSDN Magazine
オープンソースのオブザーバビリティプラットフォーム「Grafana 8.4.0」が公開 | OSDN Magazine
ユニバーサルデータベースツール「DBeaver 22.0」が公開 | OSDN Magazine
米Redis、インメモリデータストアをすぐに利用できる「Redis Stack」を発表 | OSDN Magazine

Zenn

恐怖のphantom Atari partition
ベストプラクティスから読んで始めるdbt
What is dbt? | dbt Docs

Qiita

golang で 2 Way SQL - Qiita
ひとりRDBMS実装 Advent Calendar 2019 - Qiita
[#JTF2020 解説版]理解して拡げる 分散システムの基礎知識 - Qiita
自分用メモ: ウェブ設計チェックリスト - Qiita
SQL Server:ブロッキング発生時に情報を自動保存する仕組みづくり - Qiita
SQL Serverのロックについて出来る限り分かりやすく解説 - Qiita

Wikipedia

関係の正規化 - Wikipedia
List of order theory topics - Wikipedia
分散処理に詳しいオタクさんはTwitterを使っています 「SQLの実行中にそのクエリ自身によってタプルの位置を移動させてしまってスキャンが同じ行を複数回処理してしまう問題をハロウィーン問題と言って1976年のハロウィーンにSystem Rで見つけたそうな。 https://t.co/p5Ic5efqh3 ハッピーハロウィン!」 / Twitter
Halloween Problem - Wikipedia
ログ先行書き込み - Wikipedia
Change data capture - Wikipedia
ライトアンプリフィケーション - Wikipedia

Twitter

その他

通信・ORM

FUJI GoroさんはTwitterを使っています 「これはむしろ逆だと思っていて、「サーバーサイドとクライアントサイドを協調しやすくして、クライアントサイドは徹底的に薄くする」ためのQUERYだったりGraphQLだったりだと思っています。」 / Twitter
おれきゅーさんはTwitterを使っています 「GraphQLとかHTTPのQUERY見てて思うんですけどフロントにそんなにデータ持ってきて加工する複雑さ持ち込みたいモチベ強くあるんです? UIのstate管理するの大変だからデータはサーバー側によしなに都合の良い形で返してきてほしいって気持ちのほうが強いと思ってたけど」 / Twitter
FUJI GoroさんはTwitterを使っています 「対局にあるのが「綺麗なRESTful API」で、APIがシンプルなぶん、クライアントサイドで並列リクエストや細かなエラーハンドリングなど画面ごとに複雑な処理が必要になってしまう。そして行き着く先は画面ごとのスーパーエンドポイントを作ることになり、サバクラ双方でアジリティが失われる。」 / Twitter
mattnさんはTwitterを使っています 「「生 SQL 書きたくねぇ」で ORM が出てきた様にいずれ「生 GraphQL 書きたくねぇ」って言われてライブラリ出てきてたら、正直それ REST で良かったって話になったりしない?」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou 生SQLを書きたくないのは、普及の要因のひとつではあるかもしれませんが、ORMが出てきた理由ではなかったような。そもそも初期のORM、生SQL書いてませんでした?実装を意識せずにすむようになるなら、より進化したことになるので良い事なのでは。」 / Twitter
mattnさんはTwitterを使っています 「@potimarimo @EzoeRyou そうすね。ORM にもクエリは生で書かせて fetch した物をオブジェクトで扱わせる物と、クエリジェネレータ持ってる物の両方ありますね。そうなった際には中身が GraphQL でも REST でも、なんなら gRPC でもなんでもいいんですけども。その為に HTTP QUERY が入るのは、なんか違うなぁと思った次第。」 / Twitter
まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou ORMがあったおかげで、NOSQLやらJSONやらと混ぜてもあまり混乱していないように、上手いこと実装を隠蔽できるように進歩していくといいですね。そうすると、プログラマーが直接叩くことを考えないで済む分よを速いプロトコルが流行るかもしれない。」 / Twitter
mattnさんはTwitterを使っています 「SQL インジェクションがフォームに起因する脆弱性だというツイートを見たけど、どちらかというと ORM 等を使わない事で起きる脆弱性という認識です。」 / Twitter
mattnさんはTwitterを使っています 「SQL インジェクションはバインド変数を使わず SQL を文字列で組み立ててしまう事でエスケープされないクエリが実行されて起きる脆弱性ですので、動的に文字列を繋げて SQL を組み立てる事がない ORM の導入は効果があると思います。」 / Twitter
moajoさんはTwitterを使っています 「SQLインジェクション対策のためにORMを入れよう!って主張を聞いて???ってなってる」 / Twitter
mattnさんはTwitterを使っています 「欲しいのが SQL だけで良いならクエリビルダでも良いですね。」 / Twitter

みずほ銀行

Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクション(相当の機能)を実装しようという試みの99%は失敗に終わるだろうという直感がある」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「冪等リトライしか勝たん」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「ちょっとこれは違和感が。みずほの報告書を読む限り、Minoriは分散トランザクションをACIDではなく補償モデルで実装してるっぽいが、どの障害もロールバックに失敗していて、補償失敗の設計考慮が漏れてる。これテスト時にあんま問題が顕在化しないし、稼働し始めて問題が出て運用が苦しむやつ。」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「国立情報学研究所の佐藤一郎教授「連鎖障害が起きたのだから、システムの根幹に問題があったとみるべきだ」疎結合とグローバルトランザクションという相いれない2つを同時に追求したことが、MINORIの弱点となっていた / “SOAなのにトラブルが連鎖、みずほ銀行システム障害…” https://t.co/Rn130H8ily」 / Twitter
SOAなのにトラブルが連鎖、みずほ銀行システム障害の謎(2ページ目) | 日経クロステック(xTECH)
(๑╹◡╹๑)さんはTwitterを使っています 「例えば、報告書P43の2月28日の定期性預金トラブルに起因したATMのカード取込の状況だけど、本来なら取消情報テーブルの更新不可が発生すれば、直前の処理から遡ってロールバックするように設計されてるはずだけど、補償失敗時の動作がデッドロックとか最悪の結果になってる。 https://t.co/8QqY6LGwgK」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「別にSOAを実現するために分散トランザクション実装は必須ではけど、ACIDにしても補償モデルにしても、一貫性を補償する仕組みがないとロールバックに失敗するまずい実装になってしまう。SOA自体の問題じゃないと思うんだ(少なくとも誤解を生む表現だと思う)」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「CAP定理から言えば、Minoriの実装って一貫性・可用性・ネットワーク分断耐性のすべてが実現できてる想定で、どれも実現できてないんじゃぇねのっていう疑念を持ってる。」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「SOAと並んで疎結合化の問題視されてるけど、言うまでもなく疎結合化は金融機関系システムでは採用されてないところを探す方が難しいくらい一般的になってきているので、発生した現象と照らし合わせても原因でもなんでもないだろう。」 / Twitter

降順インデックス

Nayuta YanagisawaさんはTwitterを使っています 「ISUCON 絡みで、MariaDB も降順インデックスをサポートするよう求める声を聞いた。対応する JIRA issue はあるけど、いまのところ実装される気配はない。 https://t.co/1vku10XJ6e」 / Twitter
[MDEV-13756] Implement descending index: KEY (a DESC, b ASC) - Jira
Nayuta YanagisawaさんはTwitterを使っています 「&gt; MDEV-13756 Implement descending index: KEY (a DESC, b ASC) Sveta’s talk mentioned this functionality that isn’t in MariaDB yet. There are a lot of watchers on this issue. It is however too large a task to complete for 10.6.) https://t.co/19dOmRR3Ia」 / Twitter
FOSDEM 2021 MariaDB is listening - MariaDB.org

パラメーターチューニング

shallow1729さんはTwitterを使っています 「OtterTuneの文脈でMySQLのadaptive hash indexは切るとパフォーマンスむっちゃ上がったって話があったけどあれの詳細(どういうワークロードかなど)どこかにあるんだろうか? (人間がやるのやめて機械学習に任せようぜって話であってAHIがいつ有用かっていう議論がしたいわけじゃないのはわかってるが)」 / Twitter
shallow1729さんはTwitterを使っています 「adaptive hash index、早くもっとadaptiveになって脳死でonにさせてほしい」 / Twitter
shallow1729さんはTwitterを使っています 「これは2年ぐらいうまく折りたたまるタンパク質が設計できるようにアミノ酸や原子のモデルパラメーターをいじってた人間の発言だけどパラメーターチューニングは機械学習に任せたい」 / Twitter
shallow1729さんはTwitterを使っています 「まあDBMSのチューニングは再起動しないと適用されないパラメーターが多いから雑に試せなくて難しいよねー」 / Twitter

Multiversion concurrency control

ogiwaraさんはTwitterを使っています 「SIはMultiversion CCの特殊な場合として捉えられるよね 普通のCCは1VCCで一番最後の書き込みを必ず読まなきゃいけない」 / Twitter
ogiwaraさんはTwitterを使っています 「てことはlocal書き込みがそもそもMVCCに落とし込めるのか」 / Twitter
ogiwaraさんはTwitterを使っています 「これがデータベースの理論 面白いね https://t.co/Bvea0YJEC8」 / Twitter
Multiversion CC - Google 検索
Multiversion concurrency control - Wikipedia
並行性制御 - Wikipedia
Concurrency control - Wikipedia
トランザクションの並行処理制御
Snapshot isolation - Wikipedia
Snapshot isolation - Wikipedia
Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
Snapshot Isolation のおもちゃ - Tociyuki::Diary
PostgreSQL Isolation について - SIerだけど技術やりたいブログ
ogiwaraさんはTwitterを使っています 「そもそもMVCCを変形すれば1VCCに落とせるぽいね、定義上」 / Twitter
ogiwaraさんはTwitterを使っています 「MVはあくまで便宜上の表記だから」 / Twitter
ogiwaraさんはTwitterを使っています 「いや、それは言い過ぎだね より過去のを見ることができるから SIはMVCCと1VCCで表せるってだけ」 / Twitter

三大定理

足跡45(マストドンにいるかも)さんはTwitterを使っています 「CAP定理、ノーフリーランチ定理、あと1つ付け加えてステートメントがよくわからん3大定理にしたい」 / Twitter
Masaki HaraさんはTwitterを使っています 「@ashiato45 無限の猿定理とかどうでしょう? 厳密な定義もありますが、CAPやno free lunchもあとでそのコンセプトに基づく定理が与えられてるはずなので並べてもいいかなと」 / Twitter
足跡45(マストドンにいるかも)さんはTwitterを使っています 「@qnighy 個人的にはステートメントがよくわからん上でわからんまま濫用されがちというところにポイントをつけたいので無限の猿がよさそうな気がしています」 / Twitter
足跡45(マストドンにいるかも)さんはTwitterを使っています 「ステートメントよくわからん3大定理、qnighyさんのおかげでCAP定理、ノーフリーランチ定理、無限の猿定理の3つに決まりつつある」 / Twitter

OpenVDB

FadisさんはTwitterを使っています 「OpenVDB: 高速かつコンパクトに疎なデータを扱う空間的データ構造として2013年に発表されたVDBのオープンソースな実装。root nodeのみが可変長のハッシュテーブルになった3段固定のB+木を使う事で動的に変化する疎なデータへの償却定数時間でのランダムアクセスを実現する https://t.co/ld1UfO7nhs」 / Twitter
OpenVDB
FadisさんはTwitterを使っています 「衝突を想定する必要があるハッシュテーブルへのアクセスは償却定数時間だが高速ではないという問題がある。このためVDBでは「最近アクセスしたノード」を含むより小さいハッシュテーブルを持つ。小さいハッシュテーブルはキャッシュなので衝突したら古い値を消して良く、高速なアクセスが可能になる」 / Twitter
FadisさんはTwitterを使っています 「このデータ構造の問題点はread-onlyで使う場合であってもキャッシュが更新されるため書き込みを行うの等価に扱う必要がある点。OpenVBDの実装ではデータを読むだけの場合であっても同じデータ構造に対して複数のスレッドが同時にアクセスしない事を保証する必要がある」 / Twitter

HSE

FadisさんはTwitterを使っています 「HSE 2.0がリリースに向けた準備に入っている話。HSEはLinuxのカーネル空間でブロックデバイス上にトランザクショナルなKVSを作るmpoolを使って近代的なSSDで性能が出るデータベースを実現するストレージエンジン。2.0は今までの1.xとの互換性を捨ててAPIの改良を行うらしい https://t.co/0DAF2x3Fwh」 / Twitter
HSE 2.0 Open-Source Storage Engine Is On The Way From Micron - Phoronix
FadisさんはTwitterを使っています 「HSE 2.0では以前からあるC言語APIに加えてPython APIが追加され、既存のDBに組み込みやすいようにそれらで用いられるアラインメントに合わせるようになった他、将来の拡張に向けた内部の設計の見直しを行ったとされているが、現状ドキュメントがほぼ無く、具体的なところはソースを見る必要がありそう」 / Twitter
FadisさんはTwitterを使っています 「HSEの下を支えるmpoolには2.0のrc版は出ていないが、mpoolの説明にHSE 1.x向けと書かれていることから、HSE 2.0と組み合わせるためのmpoolのコードはまだ上がっていない段階のように思われる」 / Twitter
FadisさんはTwitterを使っています 「HSEってどんなやつ? がひと目でわかるやつ https://t.co/SxZiCbvNAK」 / Twitter

materialized view

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「マテリアライズド・ビュー使ったら負け」という気概の人達こそ本当のRDB至上主義だったり…RDB原理主義かな?」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「①はストアドやトリガー、マテビューなども使うし、あるいはDBMSが持つランタイムでSQL以外の処理も実行するかも知れない。 ②では、JOINやORDER BYをDBでは行わないという派閥もある。インデックスもDB内に持たずに、外部に実装する例も見たことがある。」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「経験上、 ①DBで何でもやりたい派 ②DBはミニマムな機能で良い派 があって、①と②の間に無数のバリエーションがある。両派が分かり合えることはほぼないので、数年おきにぶつかるイメージ。 極端な①はアプリもDB内に構築するし、極端な②はDBをファイルシステムのラッパーぐらいに考えてたりする。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu マテリアライズド・ビュー嫌いな人っているんですかねえ…(僕は好き)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど。 RDBに詳しく無いのでデタラメ言ってるかもですが(笑)、純粋なRDB概念としては鬼っ子な印象あります。 (正規化は無理だからビューだけど、遅いから半自動キャッシュ的な暫定解=マテリアライズド・ビュー、みたいな)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu マテリアライズド・ビューは論理的にはビューであり正規化は別に崩してないわけで、でも正規化した場合に発生することがある性能問題は改善されるわけで、純粋なRDBが好きな人も(それが必要な場合に使うことについて)特に抵抗感はないと思ってます。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど。 昔々、ユニマガか何かで、Oracleぐらいしかマテリアライズド・ビューをサポートしてない頃に、性能出るけど汚い仕組み、として紹介されてた記憶あるんですよねぇ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu 完全に透過的に使えるわけじゃなくて制限があったりはしますからね>汚い仕組み でも正規化を崩さずに済ませるために使える道具が増えるのは基本的にみんな歓迎なんじゃないかと… なお PostgreSQL も 9.3 から materialized view が実装されています。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda まあCPUでも何でも、キャッシュは一貫性の面で、汚い面が出るのは仕方ないですよね…代わりに圧倒的な性能が出るので。」 / Twitter

スラッシング, 監視

EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh この辺の代表的な性能指標を、muninの様な監視ツール やnagiosの様な通知フレームワークを使って「何が異常で何が健全か?」を定量化する・・・あたりが定石ですが、ツールやフレームワーク自体が高負荷で本末転倒だったり。。」 / Twitter
齊藤明紀さんはTwitterを使っています 「@eguchi3 そうですね。vmstat, iostat, top当たりですかねえ。」 / Twitter
EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh 「最近はストレージがSSD化されて、アクセスランプもシーク音もしないですが。」 という人が出そうなので「vmstat(8) で page in/out がI/Oを圧迫している状態」のような視点も必要ですね。」 / Twitter
mmasuda #あらゆる軍事侵攻に反対しますさんはTwitterを使っています 「@a_saitoh RDB でfull scan search が起きまくっている( ≒ index を上手く使えていない) という現象なのに「CPUガー」というのはよく見ましたね。ストレージがシリコン化(SSD)してからは見えにくくなっている気はする。」 / Twitter
齊藤明紀さんはTwitterを使っています 「例えば、スラッシングを理解してるとは、「物理メモリ不足のために、ページアウト・インが頻発しするというようなことを頻繁してシステムの動作が極端に遅くなること」と解答欄に書けることじゃなくて、そこにあるhddのアクセスランプを見て「これ、スラッシングじゃね?」と気づく人なのだ。」 / Twitter
齊藤明紀さんはTwitterを使っています 「いくら正しい回答文が書けても、スラッシング起こしてるマシンを「このCPU遅い」と評してしまう人は理解してるとはいえない。  てな感じで、ペーパーテストで理解度を測るには問題をよく練らないと暗記勢に正解されてしまう」 / Twitter

AUTO_INCREMENT

こば - as a DB Engineer -さんはTwitterを使っています 「メルカリさんで、すくすく育ったMySQLをNewSQL(ScalableなDB)に移行する事を検討している話。今の所はアプリケーションの互換性が焦点なようで、TiDB >> Spanner,Vitessとなっている。ただ他の事例を聞く限り、TiDBでもAutoIncrementの対応には苦労していたはず。 https://t.co/53TkKrurnt」 / Twitter
レガシーなシステムとの向き合い方 | メルカリエンジニアリング
こば - as a DB Engineer -さんはTwitterを使っています 「VitessがNewSQLかと言うと、個人的には違うかなと思うけど。」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「TiDBのMySQL互換性はここにまとめられており、AUTO_INCREMENTに関する注意も記されている。 https://t.co/n5oL7ymtBu」 / Twitter
MySQL Compatibility | PingCAP Docs
こば - as a DB Engineer -さんはTwitterを使っています 「ただ、MySQLをアプリケーションレベルでShardingしても、Auto Incrementは使えないよね?ここのインスタンス毎に採番されるし、全体としてユニークにもならなそう。」 / Twitter

histric

histric-1

SODA Noriyukiさんのツイート: "SQLの一番いいとこって(cost-based optimizerを利用していて、さらに適切にanalyzeも実行してる場合限定だけど)やりたいことを宣言的に書くと、効率のいいデータアクセス手続きを処理系側で推定して実行してくれるところだと思う。人手でアルゴリズム書く言語と比べると、間違いなく進んでる。… https://t.co/OzWxCE1oso"
SODA Noriyukiさんのツイート: "エンジン側に最適化させるためにはSQL一文でやりたいことを表現する必要があるので、副問い合わせも当然必要になる。"
KaiGai Koheiさんのツイート: "本日の発表資料を公開しました。 ■ GPUとNVMEでPostgreSQLの限界に挑む ~クエリ処理速度10GB/sを越えて~ https://t.co/Z02tkRieLW #dbts2018"
DB Tech Showcase Tokyo 2018: C23『GPUとNVMEでPostgreSQLの限界に挑む』実況と反応まとめ - Togetter
20180920_DBTS_PGStrom_JP
Fadisさんのツイート: "先日リリースされたPostgreSQL 11についてPhoronixがEPYCサーバでpgbenchを走らせた結果。クエリのJITコンパイルを有効にしても単純な読み書きでは殆ど性能が向上しない(これが役立つのはクエリが複雑な場合)、というそんな気はしてた傾向が数字で出ている https://t.co/QkjyuUQHsK"
Some Initial PostgreSQL 11.0 Database Benchmarks - Phoronix
渋川よしきさんのツイート: "相手がメリットだと思っていること、例えばとっつきやすさなどに寄り添わないと、説得はおろか、まずは相手が読んでくれることもないので、強すぎる言葉でエントリーを書くのは書くだけ損でメリットなしって思う派。 https://t.co/4qlOr0M5Q7"
O/Rマッピングは百害あって一利なし! - Qiita
渋川よしきさんのツイート: "ORMって、クエリービルダーとオブジェクトマッパーと大きく2つ機能があって、後者は面倒だから自動化したい、前者は直接書きたい派とかもあって、2 WAY SQLみたいなのもあるし、それとは別にActive Recordとかもあるので、まず要素分解して各個議論しないと、意味がない気はしてる。"
渋川よしきさんのツイート: "↑という分類も正しいかどうかはあんまり自信がないぐらい、僕自身はORMに馴染みがないので、誰か"
渋川よしきさんのツイート: "SQL直書きしたい派も、データ突っ込むのは別に雑でもいいけど、大量のデータをうまく取り出す必要が多くて、SELECTクエリーは手書きでじっくりチューニングしたい派、というのも観測している"
じょうさんのツイート: "コツコツと作ってたSQLのLanguge Serverをようやくリリースしました🎉 まだまだやることはたくさんありますが、ご興味ある方はぜひ試してみてください🙏 https://t.co/m836vJMNk3… "
joe-re/sql-language-server: SQL Language Server
KaiGai Koheiさんのツイート: "斜め読み。これ、k-selectionのためにソートを使ってるけど、上位k件の抽出だけならsorting blockの下の方に入る事が確定した時点で計算を打ち切って構わないので、それで更に最適化できないかしら。… "
Billion-scale similarity search with GPUs - Speaker Deck
Tatsuo Ishiiさんのツイート: "PostgreSQL 12でOIDがなくなる件、システムカタログにはoidという列が残るが、普通の列になってしまったので、うっかり今までのように、 SELECT oid, * FROM pg_class; とかやると、結果に"oid"という列が2回出てきてびっくりする。 管理系のツールや自作管理スクリプトに色々影響するような気がする。"
KaiGai Koheiさんのツイート: "なんだか SELECT * で展開されない”隠し列”みたいな属性が欲しくなりますね。 そうすると、行レベルアクセス制御用のACLを仕込んだり、別の応用も効きそうですし。… "
myuiさんのツイート: "https://t.co/dc0D7d83pd NVM over networkに特化したstorage formatらしい"
The Apache Crail (Incubating) Project: Overview
渋川よしきさんのツイート: "DDDの文脈で集約という言葉が出てくるんですが、集約だけだとただデータの集まりだから、MSつけて欲しいなって思っていたのを思い出した… "
Hiroaki Nakamuraさんのツイート: "確かにと思って改めて調べてみると https://t.co/PsfGfnwMYf databaseはデータの集合という意味なんですね。なのでそれを管理するシステムということでMSが必要になると。… "

histric-2

KaiGai Kohei 🌻さんのツイート: "ProjectionPathが入ってから、CustomScan側でtargetListの計算をして返すのが不便になったなぁ。。。 これ、実行計画を作った後でplanner_hookを使って書き換えるしか無いような気がするが。"
KaiGai Kohei 🌻さんのツイート: "ただ、元々GpuProjectionは42次元のベクトル間距離の計算を高速化(普通はSQLで書かない)するために実装したモノで、効果のある利用シーンが限定的という事を考えると、シンプルに被参照列だけをCPU側に返すような実装でも良いのかもしれず。"
KaiGai Kohei 🌻さんのツイート: "SSD2GPUのドライバを改良して、データがPage Cacheに載っている場合の性能を改善。PCIeスイッチ無しだとこの辺が頭打ちだと思うので、まぁまぁ、ゴキゲンな感じ。 SSDはIntel SSD DC P4510 (U.2, 1.0TB) を4本束ねてます。… https://t.co/2wmhS9HMfW"
KaiGai Kohei 🌻さんのツイート: "Page Cacheに載っている場合の性能デグレ小さくなり、かつ、タプル毎の visibility check をGPU側でできるようにしたら、書込み頻度の高いテーブルであっても、堂々とSSD2GPUを使って集計処理を回す事ができるんだが。"
KaiGai Kohei 🌻さんのツイート: "現状、MVCC検査の必要ない(ALL_VISIBLE=1である)ブロックのみSSD2GPUの対象にしている。本来、ALL_VISIBLEというのは強すぎる制約であって、t_infomaskのコミットフラグだけ見て可視・不可視を判断できれば良いが、commit logの参照が必要になるとダメ。"
KaiGai Kohei 🌻さんのツイート: "visibility mapみたく、『このブロックは t_infomask の情報だけでMVCC可視性チェックできます』なフラグがあると助かるんだが。"
Masahiko Sawadaさんのツイート: "実行計画のHINT句つくるツール作ってみた。PostgreSQL用です。 クエリを受け取ると(実行計画を取得して)そのクエリの実行計画を作るためのHINT句を返します。これで実行計画の固定化は簡単にできるようになりそう。 https://t.co/salhirHlf0… https://t.co/YrttCYrpCI"
MasahikoSawada/phint: Planner hint generator for PostgreSQL
KaiGai Kohei 🌻さんのツイート: "本日のセミナー資料です:PostgreSQLは最新ハードウェアでどこまでやれるのか?~GPUとNVMEで実現する超高速ログデータ処理基盤~ SSD-to-GPU Direct SQLが列ストレージ(Arrow_Fdw)上で動くようになりました。ベンチマーク結果も併せてどうぞ。 https://t.co/OlSPuYIAuL"
20190418_PGStrom_on_ArrowFdw
Fadisさんのツイート: "PostgreSQL12のベータが公開されたらしい。PostgreSQL12ではJSONに対するJSON pathを使ったクエリが可能になり、他のカラムの値を使って自動的に値が決定されるカラムが作れるようになり、クエリを実行する際のテーブルの漁り方をプラグインで変更できるようになる https://t.co/PCak0C0WtX"
PostgreSQL: PostgreSQL 12 Beta 1 Released!
にわか@OS自作さんはTwitterを使っています: 「DBMS自作入門って、 トランザクション管理みたいなのは、諦めて 最低限のSQL(挿入や削除やテーブル作成)コマンドや、データベースのファイルも2列(2属性)で固定してやれば意外とできそうじゃない? 素人なので、甘い考えです。」 / Twitter
yuyabuさんはTwitterを使っています: 「@89O5H1QpDQCbCkc TPC-CやTPC-Hのベンチが動くところまで作ってみたいですね」 / Twitter
:tom__bo:さんはTwitterを使っています: 「SQLからrelational algebraの式(?)を導出して、さらにそこからいい感じの可視化をしてほしい」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「昨日同僚と飲んだときに、自分はO/Rマッピングは嫌だし、かといって文字列でSQL書くのも嫌なので、単に型安全になるような、SQLの抽象構文木を書ければいいんだ(そのためのAPIがあれば十分なんだ)という趣旨のこと言ったんだけど、「SQLの抽象構文木」というのがイマイチ伝わらなかった感じ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「メソッドチェインでクエリを書くこと、だと思われて、それはめんどくさくない?的なことを言われたのだけど、メソッドチェインかどうかは本質的ではなくて、木が欲しいのだという気持ちを伝えたかった(でも、プログラム(SQLも)は木というイメージがそもそも伝えるのに時間が必要な気がする)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「抽象構文木という用語の選択かどうかの問題というより、プログラムが解釈される前には普通は木になるよね、ってイメージがあるのはそこまで標準的でない、というか。」 / Twitter
FadisさんはTwitterを使っています: 「PostgreSQL 12がリリースされた。PostgreSQL 12ではJSONB型の値に対してJSON pathを利用したクエリが可能になる他、インデックスの再構築を書き込みをブロックせずに行える REINDEX CONCURRENTLYが追加される https://t.co/ASLdFMfXGc」 / Twitter
PostgreSQL 12 Released As Newest Update To "World's Most Advanced Open-Source DB" - Phoronix
FadisさんはTwitterを使っています: 「データベースの操作はROLLBACKする可能性があるので、RDBMSは変更がCOMMITに至らなかった場合に元に戻せる必要がある。PostgreSQLはこれを簡単に実現する為に多くの操作をログの追記で表現する。結果ログが際限なく増えるので、もう戻らない時点のログを捨てるVACUUMで性能と容量を取り戻す必要がある」 / Twitter
K.Namba/ご注文は910ですか?さんはTwitterを使っています: 「@fadis_ VACUUM してない PostgreSQL は 死ぬ」 / Twitter
FadisさんはTwitterを使っています 「RDBMSのカラムにJSONを突っ込む事を恥じる必要はありません。何故ならISO/IEC 9075:2016からSQLにはカラムに突っ込まれたJSONをいじる為の関数が追加されていて、カラムに突っ込んだJSONの一部を使った検索などが綺麗に書けないのはお使いのRDBMSがふぁっきん古いのが原因だからです」 / Twitter
FadisさんはTwitterを使っています 「Micron、SSDや不揮発メモリで高い性能を発揮するKVS、HSEをオープンソースで公開。HSEはファイルシステムではなくSPDKのblobstoreのような機能を提供するLinuxカーネルドライバmpoolを使って、カーネルのページキャッシュを直接読み書きすることでオーバーヘッドを回避する https://t.co/emxbU2ejsC」 / Twitter
Micron Announces An Open-Source Storage Engine Designed For SSDs, Persistent Memory - Phoronix
FadisさんはTwitterを使っています 「今の所SSDにしか対応してないっぽいから、SSD向けが強調されてるけど、不揮発メモリデバイスだとページキャッシュをデバイス自体で置き換えられるわけで、これどう考えてもNVDIMMの時代にNVDIMMの性能を活かせるデータベースを作る為の土台だよな」 / Twitter

histric-3

画力・博士号さんはTwitterを使っています 「関係代数がわりと堅牢に確立されているのにSQLなどはあんまりカッチリと関係代数に “準拠” してないの(実装の都合なども加味しているのだろうけれども気持ちとしては)なんでやねん感はある」 / Twitter
画力・博士号さんはTwitterを使っています 「(まあでも例えばπ計算もそれに準拠している並行計算の言語で実用に供するものはそうそう見ないだろうし,関係代数もそういう “理想気体的な立ち位置” かな)」 / Twitter
t_yanoさんはTwitterを使っています 「SQLなあ。500行のSQLとかは今や論外であるのはいいとして、俺は多くの人がSQL(というか集合データ)に抱えてる不満って、テーブルをジョインしたら既存のエンティティにマッピングできなくて専用のValueObjectをたくさん作らなくちゃいけないとか、1:Nクエリが発生するとか、」 / Twitter
t_yanoさんはTwitterを使っています 「そういう部分にあるように見えてて、それってSQLというかRDBと集合データ側の問題ではなくて、集合データをそのままダイレクトに扱うのが難しい(オブジェクト指向?)言語側の問題だったりするんじゃねえの?って疑問は常に持っときたいんよね。」 / Twitter
t_yanoさんはTwitterを使っています 「結局インピーダンス・ミスマッチが存在するってことなんだけど、ミスマッチがあるからミスマッチの向こう側のRDBとかSQLとか集合データ構造が悪いわけじゃなくて、例えばLEFT JOIN一発で取ってこれるデータをなぜ1:Nクエリにしなくちゃいけないのか、ってとこに疑問を持ちたいんよ。」 / Twitter
t_yanoさんはTwitterを使っています 「だってリレーショナルデータベース側では、LEFT JOINしてWHERE区で絞ってシンプルに集合命令でスパッとデータ抜けちゃうわけで、スパッとデータ抜けるけどそれをうまく扱えないのは、スパッとデータ抜ける側の問題ではないよなーと。 特にこう解決しろって話じゃなく。」 / Twitter
t_yanoさんはTwitterを使っています 「めちゃくちゃパワフルな集合データベースを、それを使う側の言語?が集合データをうまく扱えないって構造だと思っていて、そういう自覚を持っておきたいんよ。 1クエリで取ってこれるデータを3回とか4回のクエリに分割しなくちゃいけないのは、RDB側じゃなくて、データを使う側の都合だよなと。」 / Twitter
t_yanoさんはTwitterを使っています 「だって、RDB側には、1クエリでデータを取ってきてさらにそれを処理できる機能があるんだから。その機能がないのはRDB使ってる言語・環境側なんであって。」 / Twitter
t_yanoさんはTwitterを使っています 「実際には、その機能がないというより、そのやり方が、言語のパラダイムに合わない(オブジェクト指向っぽくならない)から、誰もやらない、という方が正確だろうか。 ResultSetをグルグル回せばそのまま処理できるもんな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ、、、 あとmramのような細粒度アクセス可能な不揮発デバイスが広がると、脱b-tree系も有り得るのかな? (nvdimm-pとか裏にnandがある系は、ブロックアクセスでないと厳しそう?)」 / Twitter
中村 実さんはTwitterを使っています 「DB世界にはDBの内部構造に機械学習を使うというアプローチがボチボチものになり始めているように感じる。B-tree型インデックスをアクセス状態からMLを使って最適化するとか並列実行されているプラン間の資源をMLを使って最適化するとか。スキーマ推定とかはもともとMLありの分野だ。」 / Twitter
Y​S​R​@​も​の​べ​の​H​E​完​走​!​!さんはTwitterを使っています 「@kmizu 一応、あまりにアカン書き方だと警告が出たりはしますが、実行計画とにらめっこしていると、「実行計画の構図をそのままコードに落とし込んで動かねーかな」とは思ったりしますねw」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。 ---- fsyncへの2つの間違った期待 1: fsyncが失敗した場合、次のfsyncのタイミングで失敗したdirty pageは再度書き込まれる 実際には…最初のfsyncに失敗したらデータはpage cacheから削除される。…(略)…ext4は、dirty dataをpage cacheにcleanとして残すし、xfsは捨てる。… https://t.co/Smkhs9VzAi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsync成功まで、アプリケーション側はデータを捨てずに fsyncリトライではなく write or memcpyのリトライをしないといけない、と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsyncリトライが成功しても、未反映データが書き込まれていない(可能性のある)OSは、 Linux/MacOS/NetBSD/OpenBSD, 常にfsyncが失敗を返すのはFreeBSD、という感じかな? https://t.co/yrZMYDgOce"
Fsync Errors - PostgreSQL wiki
Fadisさんのツイート: "データがストレージに書き込まれる事を保証するためにfsyncやO_SYNC付きでのopen等を行っているソフトウェアに対してLD_PRELOADでそれらの関数をフックして書き込みを同期しない実装に置き換える事で、パフォーマンスと引き換えに書き込みの保証を失うライブラリ libeatmydata https://t.co/KmAOMLHtsk"
libeatmydata - disable fsync and SAVE!
チェシャ猫さんはTwitterを使っています 「なるほど、SAT ソルバをバックエンドに使って似たようなものが出来ないかと考えてた時代もあったけど公式からツールが出たのか。 https://t.co/s5LdqWN6hQ」 / Twitter
DynamoDBのテーブル設計に最適!NoSQL WorkbenchのData modelerで今度こそDynamoDBを使いこなす! | Developers.IO

histric-4

KOBA789さんはTwitterを使っています 「マイクロサービス化によってビジネスロジックのトランザクションが単一 DB のトランザクションに閉じなくなってしまうことが増えてて、ナイーブな分散トランザクションを無自覚に書いている場合などがある(本来ならトランザクション境界を跨がないようにサービス分割するのがベターですが……)」 / Twitter
成瀬さんはTwitterを使っています 「TDでも定期的に「distributed transactionを実装しようとするな!」っていう仕事が発生しがち」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORMと比べてどうなんだろう / 1件のコメント https://t.co/y0Qj7Reo5c “最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった” https://t.co/LQdBDrHY97」 / Twitter
最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった
dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「ええっ!?30万件近いデータの入ったemployeesデータベースがDocker imageとして公開されているのかい!? クエリやインデックスやパフォーマンスチューニングの練習に使える最高の環境がdocker runするだけで手に入るのかい!? すごいねマスオくぅん! https://t.co/Q8jKGs2I3F」 / Twitter
genschsa/mysql-employees - Docker Hub
成瀬さんはTwitterを使っています 「重要なのはIaaS/PaaSよりも、RDBとオブジェクトストレージがサービスとして提供されているかな気はする」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「SQLの隠蔽のレベルは(現実にはやや目をつぶって理想論で言えば)あれでいいと思うけど。 SELECT文みたいな宣言的プログラミングは、プログラミング言語の未来へ向けた方針としては正しいし、隠蔽せずに人間がイチイチ手でやるより、コストベース最適化に任せた方がいいことの方が多いと思う。」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「SQL や OpenGL などを見ていてもわかるように、本質的に複雑なものをプログラマから「隠蔽」しようとしたとき、結果としてエスパー能力が要求されるようになるので幸福度が増すとは限らない、みたいな教訓がある」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「すべての場合にうまくいくわけじゃなくて、実行計画を眺めてあれこれする必要が出ることがあるのが残念というのはその通りだけど、まあ仕方ないんじゃないかな。 宣言的プログラミングによる隠蔽は、処理系が行える自由度も高くて、ad hocな隠蔽に比べるとずっときれいだと思う。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「判る一方で個人的には、メタプログラミングと同様、宣言的プログラミングは抽象度に対する頭の良さを要求されて辛いこと多いなぁ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「僕もルールベース最適化時代はSQL嫌いだったんだけど、ある程度以上の年齢の情報系の人の中には、その時代のSQLに対する認識のまま止まっている人がいるような気が昔からしてる… コストベース最適化になってからのSQLは、(いろいろ足りない部分はあるにせよ)未来の言語って感じなんだけどなあ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「今のRDBなら、ANALYZEを実行してデータ分布の統計情報をとっておきさえすれば、RDBのコストベース最適化に任せるだけで、ほぼ最適な実行計画を選んでくれて(データ分布の変化にも追従するので)人間より賢いはず。MySQLはよく知らないけど少なくともOracleやPostgesQLなら(例外がないわけではないけど」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「https://t.co/JWCRXMy3QS 「最適化に任せるべき」は私も同意なんですが、前提として「最適化が十分に賢いこと」という前提があるんですよね。 たとえばC言語なんかは下手にアセンブリ書くよりコンパイラの方が賢いことが多いから素直に書けというのに説得力があるけど……」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「RDB / SQLも「書き方次第で (観測可能な振舞いが同じなのに) パフォーマンスが変わる」みたいな状況ではまだまだ「foo /= 2; よりも foo &gt;&gt;= 1; の方が良い」みたいな時代と変わらないような気がして、もっと最適化が人間より十分賢くなってくれないと人間はエスパーをやめられないのだろうなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@lo48576 手続き言語だとコンパイラがかなり無理しないと最適化ができませんが、SQLの場合、アルゴリズムはデータ分布に応じてアルゴリズムをRDB側で勝手に選択することができるので、ふつうの言語の最適化よりもはるかに強力です」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@lo48576 変な実行計画が選ばれることがないわけではないですが、その一番多い理由は、単にRDBの使い方を理解してないだけ(ANALYZEを実行しておらず、RDBにデータ分布を伝えていないとか)なんじゃないでしょうか。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「簡単に早く作るにはOODBの方が向いてると思うけど、 データを長生きさせるっていう意味では、応用と関係なくデータモデルだけでスキーマが決まるRDBの方が向いてると思う。 応用との距離がある分、インピーダンスミスマッチは仕方ない。 事務アプリ系はデータの方が長生きするからRDBの方が好きかな。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kfujieda OODBはプログラミング言語と密着してるべきなので、標準化は茨の道ですね。 仕組み的にはRPCのserializerにインデックス足しただけなわけで、言語ごとに一つは標準的なOODBがあってもいい気はします。」 / Twitter
やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
btnrougeさんはTwitterを使っています 「超重要なJTAを忘れていた。もっとも、表に現れるのはJDBC接続プールの設定か、Java EE 7以降の Transactional アノテーションくらいだけれど。」 / Twitter
btnrougeさんはTwitterを使っています 「J2EE 1.2の主要機能は、Servlet、JSP、EJB、JMS、JDBC、JNDI、それからJavaMail。これらがJ2EE 1.2として標準化された背景にはしかるべき理由 = "Why" がある。APIの改善や代替技術の登場により "How" は変わったけれども、こいつらが当初から持っている "Why" は変わっていない。」 / Twitter
やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter

histric-5

カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「SQLたくさん勉強して得られた結果、宣言型言語が嫌いになりました。実行順序を考えなくていいのがメリットのように言う人いるけど、結局は実行エンジン(planner)のお気持ち当てゲームしないといけなくて、それなら最初から実行順序を明示できたほうが結局は簡単。宣言型言語のパフォチューは大変不毛。」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「&gt; お気持ち当てゲーム SQLプランナー「わたしの考えてること、分かる?」」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「アルゴリズムとデータ構造を勉強して、最適な順序を記述 v.s 実行エンジンさまのお気持ちを推測して、最適なSQLを記述 (実行計画の変動によりきまぐれにお気持ちが変わるオプションつき)」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「実行計画を固定させる機能とか見ると、「宣言型とは?」という疑問が湧くことがある。必要性はすごく分かるんだけど、本末転倒な感じを受ける。」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「宣言型はデバッグも面倒なんだよな。SQL、正規表現、LaTeX、ワークフロー、・・・。宣言型は適用範囲を見極めて使ってほしい。最近の宣言型偏重ブームは懐疑的に見てしまう。」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「テーブル設計本で100%出てくる正規化の例。実はアレは例であって実際にはやってはいけない設計。 取引明細テーブル 商品テーブル で取引明細テーブルには商品名カラムは持たず正規化して商品テーブルに持つと。これが現実の設計だとダメなケースが多いんです。 #駆け出しエンジニアと繋がりたい」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「データのライフサイクル 過去データの取り扱い システムの利用者 業務面 法令面 この辺りを考慮して設計を考えると、正規化してはダメな理由がみえてくる。勿論、業界や業務によって正解はことなる。だから一般論だけ学んでもダメ。 #駆け出しエンジニアと繋がりたい」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「マスタテーブル側の時系列の持たせ方も関係してくるし、Webシステムならパフォーマンスも考慮しなくてはダメだし。そんな事を諸々考えてテーブル設計できる人になれば、価値は高いよね。本当に。 #駆け出しエンジニアと繋がりたい」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「RDBを座学すると大抵ハッシュテーブルの話も出てくるけど実際にRDBでハッシュテーブル使ってることあるんだろうか」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ JOIN のときの一時テーブルでは使ったりします」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@KOBA789 データ構造どっちを使うかはDBMSがよしなに決めてくれる感じですか」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ 実行計画によって使うデータ構造が決まるのでそうですね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@KOBA789 かしこい」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ もちろん実装によって様々ではありますが」 / Twitter
Mine02C4@半チンさんはTwitterを使っています 「@__pandaman64__ オンメモリだとハッシュインデックスになったりする(MySQLとか)」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「UPDATEのサブプランは変更していない列を含んだタプルを出力として返す必要があると。しかも、継承テーブルの場合だと、子テーブルごとに異なる列を持てる。オーバーヘッド大きそう。 #pgunconf」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「PG14だとUPDATEの下に子テーブル毎にサブプランを作るのではなくて、一つのサブプラン(Appendノードの下に子テーブルのスキャンがぶらさがっている)を作るだけで良くなったのか。子テーブルのスキャンの出力としてその子テーブルのOIDを含めると。 #pgunconf」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「Txのcommit時はcommit WALをfsyncしてclog内の対応するbitの"commit済み"に更新するのだけど、その間にcheckpointが入り込むとredoポイントがcommit recordの後になりclogはbitが更新されるる前にディスクに書きまれる可能性があるからTxはcheckpintが間に入り込まないようにしているのか。なるほど!」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「これに似た問題はcommit WALとclogの関係だけじゃなくて、PostgreSQLの実装だとprepare WALと2相コミットのファイルの関係でも該当する。」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「MySQL(innodb)にはclogみたいなものは(多分)ないからこれを心配する必要はないけど他の追記型のDBはどうやって対策しているんだろう。」 / Twitter
パン粉さんはTwitterを使っています 「マイクロサービスをやるってことは、つまりトランザクションをウェブの世界で再現するみたいな話に見えてきた。なので、僕はデータベースについてもうちっと見識を深めないといけない気がしてきた。どこから見ればいいんだ、「詳説データベース」から始めても分かるのかな...。分かんなそう...。」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクションを再実装しないといけないような分割はやめた方がいい派。どうしても分割したいなら、整合性は諦めるか、せいぜい冪等リトライで頑張るぐらいにしたい。」 / Twitter
Ü+1F980🦀さんはTwitterを使っています 「SCというHPC分野の最高峰の国際会議に単著論文が採録されました!! 著者版をarXivで公開してます https://t.co/5VvA6an5ej SCはスパコンTop500やゴードンベル賞の発表等も行われる由緒ある会議で、スパコンなど巨大スケール上の計算に関する最前線の応用や大きな理論的成果を挙げた論文が発表されます。」 / Twitter
[2108.02692] Accelerating XOR-based Erasure Coding using Program Optimization Techniques
Ü+1F980🦀さんはTwitterを使っています 「論文では、大規模ストレージの実装や実現上重要な「データの冗長性担保」問題につき、Erasure codingと呼ばれる代表的手法を、有限体上の行列積による従来実装を離れ、「プログラムの最適化問題」として捉え直すことで、プログラム理論の既存成果を徹底的に駆使し、大幅に最適化した点が評価されました」 / Twitter

histric-6

yuyabu🍥さんはTwitterを使っています 「SQLの集合演算子、union, intersect,exceptがあるけど、diffも欲しいよなぁ。(何回も言ってる気がする。)」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「"特定テーブルに1件のレコードを最初にINSERTした場合、アクセスが発生するファイルとその理由をすべて教えてください"、PostgreSQLでも考えてみたけど自分がどこまで把握してるかが分かって結構面白い。色んな人の回答が聞きたくなる」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、ファイルシステムとDB両方に保存しているデータの削除真面目にやるとめんどくせー!」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「Percona の QA チームが作ってる pquery がめちゃ便利(そう)だった。 自分が storage engine を一から書くことがあったら絶対に使うと思う。https://t.co/hhKjEtjNDD」 / Twitter
The Future of MySQL Quality Assurance: Introducing pquery
Nayuta YanagisawaさんはTwitterを使っています 「なぜ「便利(そう)」と書いたかというと、同僚のテストエンジニアが実行してくれて、自分は眺めてただけだからです。すごい勢いでコードの欠陥が明らかにされていってすごかった。」 / Twitter
Nayuta YanagisawaさんはTwitterを使っています 「あまり認識していなかったが、MariaDB/MySQL 界の有名人が身近にいてすごい(小並感)。」 / Twitter
κeenさんはTwitterを使っています 「ジョークかと思ったら真面目な記事だった…。主にSIMD(CPUによって命令があったりなかったりする)との付き合い方について。 Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files https://t.co/WhxEVWmzk5」 / Twitter
Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files
κeenさんはTwitterを使っています 「tacはファイルを逆順に表示するコマンドで、シェル芸でしか使わんだろって思ってたらログを最新順にみたいなどの需要がある。これも数GBクラスのログを逆順に表示したいというモチベーションからはじまってる。確かに言われてみればネタ扱いしたのも動作が遅くて使いづらいからだ。」 / Twitter
shallow1729さんはTwitterを使っています 「`select * from a where b_id in (値が数万ある)`みたいなやつがフルスキャンになるやつ、MySQL的にはb_idがuniqとかじゃなかったらいくつあるか分からないよ&gt;&lt;ってなって悲観的になっちゃう感じなのかな」 / Twitter
shallow1729さんはTwitterを使っています 「b_idのインデックスはあるけど同じ値の重複は認めてる、みたいなケースです https://t.co/bJyYth7mcR &gt; Otherwise, any index on col_name is nonunique and the optimizer can estimate the row count for each range using dives into the index or index statistics.」 / Twitter
MySQL :: MySQL 5.7 Reference Manual :: 8.2.1.2 Range Optimization
yoku0825さんはTwitterを使っています 「@shallow1729 INの要素が増えるとインデックスダイブやめて、1つの値に対する見積もりを「概算テーブル件数 / 概算カーディナリティー」でだしちゃうので、あっさりオプティマイザコストがテーブルスキャンを上回ることが多いです」 / Twitter
shallow1729さんはTwitterを使っています 「@yoku0825 インデックスダイブするとコスト見積もり自体が重くなるから概算を使うって感じなんですね。ありがとうございます!!」 / Twitter
hatoo💛さんはTwitterを使っています 「SQLアンチパターンでRDBMSでツリーを表現する方法があったからNeo4jについて少し調べてみたけど、index-free adjacencyってやつ諸刃の刃だな… https://t.co/7FVFReHOQn」 / Twitter
Neo4jについてちょちょいと調べたまとめ :: Igreque -> Info
κeenさんはTwitterを使っています 「現状のRustのWAFはフルスタックでないのでDB操作は手で書く必要があるんだけど、これはRustでデータ型を書いたらCRUD操作とそれへのルーティングを生成する試み An experimental Diesel-based CRUD for Rocket - Blog - Tweede golf https://t.co/nzj0naPJ0X」 / Twitter
An experimental Diesel-based CRUD for Rocket - Blog - Tweede golf
κeenさんはTwitterを使っています 「非同期かつコードでSQLを組み立てられるORMのSeaORMのアナウンス。dieselと違ってsimple系の設計かな? Introducing SeaORM | SeaORM - 🐚 An async &amp; dynamic ORM for Rust https://t.co/RqCE8vkRF5」 / Twitter
Introducing SeaORM | SeaORM - 🐚 An async & dynamic ORM for Rust
κeenさんはTwitterを使っています 「simpleとeasyの対比ってどのくらいのひとに伝わるんだろう。simpleは構造が単純でわかりやすい。easyは手軽に使える(記述量が少なくなる)。easyは背後のモデルが複雑になりがちで、却って難しいこともある。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「(Oracle からの離職に伴って) MySQL開発チームから去る開発者のメッセージ: MySQLはひどいデータベースであり、PostgreSQLを使うべきだ (MariaDBも同じ)。彼はMySQL開発者としてできる限りのことをやったが、それでもひどい設計であることには変わりがないという。 https://t.co/822DGspDys」 / Twitter
Steinar H. Gunderson
Kazuho OkuさんはTwitterを使っています 「MySQLのクエリ実行エンジンが好きでMySQL使う人はいないし、PostgreSQLをvacuumするのが好きでPostgreSQL使う人もいないわけで、それぞれ長短があって、長所を伸ばし短所をなくそうとしてる理解だけど、まあ中の人でも実行エンジンだけやってるとああいう感想になるんだろか、みたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「読後の技術的な感想としては 「えっMySQLの実行エンジン、他プロダクトの2010年レベルまで進化したの? むっちゃ使えるようになってるやん!!」 に尽きます。ありがたやありがたや」 / Twitter
くまぎさんはTwitterを使っています 「Volcano Iteratorをベースにしたexecution engineにリファクタリングするの、無脊椎動物に背骨を導入するぐらいの偉業なんだけど専門外の人にはその偉大さがわからないっていう難点がある。」 / Twitter

histric-7

令掛ベインさんはTwitterを使っています 「SQLはin句とorder byが動的生成したい場面が多いので、そのへんをORMに任せる。定型的なクエリもORMに任せる。それ以外は手書きで、仕組み的にORMと手書きを両立させる、というイメージ」 / Twitter
増田 亨.さんはTwitterを使っています 「外部キー制約とNOT NULL制約を一切使わない。 全てのテーブルは更新プログラムIDと更新タイムスタンプと削除フラグを持つ。 あちこちでDISTINCTと外部結合とNVLとCASE式を使う。 SQL弱者の自分には、このデータベースを使ってアプリケーションを開発できる気がしない。」 / Twitter
ドッグさんはTwitterを使っています 「SQL,SELECT と FROM は逆のほうがいいよなというのはほぼみんな思ってそう(補完もしやすいし)」 / Twitter
kurehajimeさんはTwitterを使っています 「@Linda_pp SQL風な構文を採用したLINQはfrom,where,selectの順ですね。」 / Twitter
まーさんはTwitterを使っています 「@kurehajime @Linda_pp 個人的には insert と update を揃えてほしい... 多分、英語に近くなるようにしてるんだと思うけど。」 / Twitter
t157さんはTwitterを使っています 「SQL ServerはVisual Studioでデバッグできるようになってからは、楽になったと思うね。w いや、普通のプログラミング言語のデバッグに比べたらやり難いけど。w」 / Twitter
伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「Web業界にストアドプロシージャ書ける人間がどれほど残っているというのかね。」 / Twitter
kuboon / Ohkubo KOHEIさんはTwitterを使っています 「将来的には、SQLとかいう中間言語を使わずDBのファンクションを直接呼ぶのが普通になるはず。必要なクエリは都度DB側へ組み込み、アプリケーションからはそれを呼ぶ。 今でもCでゴリゴリやればそのパターンは可能だが、面倒なのでやらない。rust のDBエンジンが来る。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@kuboon インデックスの利用とか排他制御が難しくなりすぎませんかね。そのあたりの難しさをのりこえてパフォーマンスが必要というシチュエーションが少ないか、あってもだいたいはMongoなどそもそもSQLつかわないDBを使って解決できるかになるような。」 / Twitter
kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis SQLを書くのと同じレイヤーのAPIが用意されてればいいんですよね?単純に、SQL構文解析のコストがなくなって、人間もSQLじゃなくrust文法で書けるようになって、言語支援も受けやすくなって便利になるかと。 RDBを使いたいので求めてるのは mongo ではないです。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@kuboon SQL相当のコード書くならJPAのCriteriaみたいなAPIができると思うのだけど、結局それではすべての処理が実現できずJPQLのようなクエリ言語を使うことになって、それならSQLでいいじゃんとなった歴史がありますね。 構文解析のコストが問題なのであればパラメータつきクエリの仕組みがあればいいだけで」 / Twitter
kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis 構文解析のコストは大した事ないですが、人間がSQLを書くよりはもっと合理的に書けるはず、という風には考えてます。Rails の where とか merge みたいなのが SQL に変換されるのでなく直接実行されるといいなと。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@kuboon SQLって直接実行してるんではなくて、オプティマイザがその構造をみてどの順番でテーブルアクセスするかとかどういうインデックス使うかとかの実行計画を作って、そのあとで実行エンジンが実行するので、構文木をうまいこと渡すくらいしかできないと思うのです。」 / Twitter
kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis それはわかります、構文木を渡すのでぜんぜん良いです。それが rust とかの型情報付きで構文木を構築出来る様になってほしいんですよね。」 / Twitter
きしだൠ(K1S)さんはTwitterを使っています 「@kuboon JPAのCriteriaのようなものが各言語にあれば、DBに渡すのは共通プロトコルとしてのSQLでいいと思うのですよね。実行計画つくるのに比べればSQLのパース時間は無視できると思うので、キャッシュするべきは実行計画になると思うし。」 / Twitter
くまぎさんはTwitterを使っています 「データベースの授業、正直SQLは基本的なことを一コマで抑えてあとはずっとオプティマイザとインデックスとトランザクションのちゃんとした話(CascadeとかARIESとか)を自分で実装できる解像度で授業でやって欲しい。」 / Twitter
Cascade sql - Google 検索
ARIES sql - Google 検索
7594591200220899443さんはTwitterを使っています 「ていうか数学も何も計算量の議論が理解できてない人なんて最適なSQL書けねえじゃん、と思うと、そやし誰も最適なSQLなんて書いてないねんな、という圧倒的現実が立ち上がって来るのであった。SQLというのはそもそも数学できなくてもプログラミングできるようになるための装置ではある。」 / Twitter
7594591200220899443さんはTwitterを使っています 「数学できなくてもプログラミングできるのは方向性としては正しい。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@shyouhei でもjoinとか「理解して」使ってるなら、関係演算を理解したってことなんですよね。難しいことをSQLが隠蔽いているというのではなく、関係演算の式そのものですから。 (単一テーブルのselectも関係演算のひとつだけど、それ自体は手続的に理解できなくはない)」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SQLの一部 (WHERE節など) にPythonを使えるようにしようという試み。 https://t.co/Zmr0BjGUtD」 / Twitter
dcmoura/spyql: Query data on the command line with SQL-like SELECTs powered by Python expressions

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PostgreSQLはどうやって行を記録しているのか? テーブルの内容は「ヒープファイル」と呼ばれるものに格納されている。各ファイルは通常8kbのページごとに分割されており、rowはページ末尾から詰められていく。いっぽう各rowへのポインタはページ先頭から並んでいる。 https://t.co/pFHHaspiW0」 / Twitter
How Postgres Stores Rows - Ketan Singh
Nayuta YanagisawaさんはTwitterを使っています 「Shopify が locality を高めるために (shop_id, id) の複合主キーを採用しているという話 (kamipo さんが言及してたやつ)。流石 Shopify という感じだ。 https://t.co/pAUvInE76S」 / Twitter
How to Introduce Composite Primary Keys in Rails
Kazuho OkuさんはTwitterを使っています 「スロークエリも、プログラムのロジックの無限ループも、むちゃくちゃ時間かかる正規表現も、それでサービスがストールしないように、タイマーでリクエスト処理中止するような緩和策入れておけばそれでいいと思うクラスタ。もちろんアプリの種類によるけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@__gfx__ @tkihira 似た問題としてDBのスロークエリがありますけど、やや違うところとして、正規表現は入力値によってとんでもなく時間がかかるところだと思うんですよね。逆にいうと、そこ以外は同じなので、HTTPリクエストの実行時間制限かけておけば、サービス投入後にログみて対応でもいいと思います」 / Twitter
Kenji OtsukaさんはTwitterを使っています 「@_inakun_ @rioriost PostgreSQLのほうはDDLもロールバックできるので便利です。 MySQLよりも先にいろいろ機能追加されている印象があります。」 / Twitter
ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「PKがサロゲートキー(id)だと並列化しづらくてツラい_( _´ω`)_ ナチュラルキーで良くね? ってなるけどORMで外部キーでオブジェックと引っ張る時は楽なんだよな。。。 というか!!!( ゚д゚)!!!!同時にINSERTされたら、超追いづらいデータにならねぇか??? 仕事のことを考えるのやめよ。。。」 / Twitter

やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter
伊津野 英克さんはTwitterを使っています 「昔はER図わかりやすいと思ってたけど、慣れるとキーを見れば結合がわかる(し、それがわかるように項目名決める)ので、最近は作らないこと多いなぁ。必要だとしても外部キー一覧っぽいものがあればそれで十分な気がする。」 / Twitter
チェシャ猫さんはTwitterを使っています 「DB スキーマのバージョン管理どうするか問題。 #kubernetes_casualtalk」 / Twitter

IDE

software product line engineering - Google Scholar
MJ文字情報検索システム | 独立行政法人 情報処理推進機構 - IPA
富豪的プログラミング
自分が使わないものを発表するな - 増井俊之
自分の成果物を自分で使え - 西尾泰和のScrapbox
設計に悩みすぎる前に手を動かしてみる話
Mikio Kiura / ANKR DESIGNさんはTwitterを使っています 「誰のためのデザインか?なんのためのデザインか?をすっ飛ばしてプロダクトを評価することはできない。僕はたまに研修の枕話で、F1の運転席とプリウスの運転席、どっちが良いUIでしょう?なんて意地悪な質問をしたりするんだけど、こんなの利用者も目的も違うから本来比較できないのよ。 https://t.co/PbT9unSV9o」 / Twitter
「目新しい技術」を避け「退屈な技術」をソフトウェア開発で採用すべき理由とは? - GIGAZINE
mdn/content: The content behind MDN Web Docs
アーキテクチャダイアグラム作成ツールを使うことでGoogle Cloudソリューションアーキテクチャの設計が容易に

IDE

リファクタリング - Visual Studio | Microsoft Docs
Visual Studio での C++ コードの編集とリファクター | Microsoft Docs
mumumuさんはTwitterを使っています 「SPINFER: Inferring Semantic Patches for the Linux Kernel [ATC '20] Linuxみたいな大規模SWのAPIの変更に対して,関連するファイルの変更Patchを自動で生成するためのルールを生成する研究.どちらかというとルールベースで推論(ML的なのではない)してる.正確性は90%近くくらいらしい.」 / Twitter
AmazonのAPI設計方針 (The Bezos Mandate) - Qiita
Firefoxは危険なJavaScriptに対応しない - Qiita
Google Registry APIを使用したAPI情報の整理
コードを読む上での課題とその対処方法
大規模ソースコードの読み方
Xcode 13でチームコラボレーションとソース編集機能が拡張
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コードを入力すると (Twitterなどに貼付け可能な) 画像ファイルを生成するサイト。 https://t.co/Toh7iWuKCU https://t.co/HkrcwJ8EnP」 / Twitter
Carbon | Create and share beautiful images of your source code
開発イテレーション偏重 - 兼雑記
Makoto Kato ︎︎さんはTwitterを使っています 「rniwaよりもWebKitトップのMajの方が方向性は一番重要だし、TPACそこまで重要ではない気がするし、WICGは個人草案という表現はちょっとと思うし、細かいところに粗がいろいろある感じ https://t.co/SFRnNutDep」 / Twitter
Web 技術の調査方法 | blog.jxck.io
Google、オープンソースのモジュール依存関係を分かりやすくグラフ化してくれる「Open Source Insights Project」公開 - Publickey
「Android Studio Bumblebee」が正式リリース ~Androidアプリ開発環境の最新版 - 窓の杜
人気の開発環境「IntelliJ」が完全日本語化 ~同梱プラグインまでローカライズ - 窓の杜
「Apache NetBeans 13」が公開 | OSDN Magazine

MS

その他

NyaRuRuが地球にいたころ

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
HotKey でキーリピートを無視する機能が付いたらしい - NyaRuRuが地球にいたころ
Header Annotations - Visual C++ - NyaRuRuが地球にいたころ
SPU C/C++ Language Extensions - NyaRuRuが地球にいたころ
Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
ゲームプレイ中のスクリーンセーバやディスプレイ休止を回避する方法 - NyaRuRuが地球にいたころ
コンソールアプリケーションで出力がパイプされているときに,それが閉じられたのを知る方法 - NyaRuRuが地球にいたころ
別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ

EternalWindows
Gecko1.8相当製品において修正したバグ - WebStudio
64 ビット Windows アプリケーション開発 - RAD Studio
碧落 - Win64 開発
1985年誕生「Windows1.0」を触ってみたら、恐怖のおっちょこちょいOSだった - デイリーポータルZ
Visual C++(cl.exe)で UTF-8 のファイルをコンパイルする - Bite Code
Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される | スラド
OneCore.lib/MinCore.libの紹介 « 他人の空似
Big Sky :: ネットワーク構成を変更した直後に Cygwin や msys2 が激遅になる問題の解決方法
Big Sky :: Windows で子プロセスの標準入出力バッファリングを無効にする
Idleプロセスと名無しのプロセス
ChalkTalk CLR – COMのすべて – kekyoの丼
ASCII.jp:Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? (1/4)|Windows Info
ASCII.jp:Windowsにおけるフォルダーとディレクトリとは (1/2)
\と¥の問題 - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ

MS

その他

Diagnostics (Windows)
Graphics and Multimedia (Windows)
Audio and Video (Windows)
System Services (Windows)
Security (Windows)
Restart Manager Reference (Windows)
Packaging, deployment, and query APIs (Windows)
System Administration (Windows)
Networking (Windows)
Per-directory case sensitivity and WSL – Windows Command Line Tools For Developers
KeyboardDeliveryInterceptor Class (Windows.UI.Input) - UWP app developer | Microsoft Docs
Ink presenter (Windows)
DirectComposition (Windows)
Makoto Kato ︎︎さんのツイート: "Windowsのコンソール系バグ (APIも含む) は、https://t.co/97QTqsydFS で報告できるようになったのは素晴らしい"
Microsoft/console: Windows Console Tools
Windowsドライバ開発を容易にするMicrosoft Driver Module Framework
Condition Variables - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自前Conditionクラス、CriticalSectionで守っているため、CAS(Compare And Swap)不要なのにCASを使っている気がする。 (そもそもVista以降、CV入っているし、ネイティブCVに移行してXPユーザには泣いてもらうかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちがった。 クラス内csで守る部分と、globalリソースのためのCASに分けていたのだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ポインタサイズの省サイズ&高速な ReaderWrite Lock (ポインタサイズのため再帰不可) ---- Slim Reader/Writer (SRW) Locks (Vista以降) https://t.co/CNVy8QiN1J」 / Twitter
Slim Reader/Writer (SRW) Locks - Win32 apps | Microsoft Docs

Windows 10

削除または非推奨

Windows 10 Creators Update Deprecated Features | Microsoft Docs
Windows 10 Fall Creators Update Deprecated Features | Microsoft Docs
Windows 10, version 1803 - Features that have been removed | Microsoft Docs

API

Windows 10 version 1607 API changes - UWP app developer | Microsoft Docs
Windows 10 Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Fall Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Build 17134 API changes - UWP app developer | Microsoft Docs
SetThreadDescription function | Microsoft Docs

Windows Hypervisor Platform

Windows Hypervisor Platform | Microsoft Docs
Windows Hypervisor Platform API Definitions | Microsoft Docs
VM Saved State Dump Provider API | Microsoft Docs
QEMUのWindowsホストでのHyper-Vのサポート | K'zlog
[Qemu-devel] [PATCH 0/4] Implements the Windows Hypervisor Platform acce
[Qemu-devel] [PATCH 1/4] Add the Windows Hypervisor Platform accelerator
[Qemu-discuss] configure fails with whpx enabled on msys2 w64 build proc

Microsoft Windows 10 - Wikipedia
What's new in Windows 10 build 10240 - July 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 build 10586 - November 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
Windows 10 の開発者向け新着情報、ツール、機能 - UWP app developer | Microsoft Docs
Windows Machine Learningなど開発者にも続々と新機能 - Windows 10 April 2018 Update | マイナビニュース
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
TLS (Schannel SSP) | Microsoft Docs
Why Are We Deprecating Network Performance Features (KB4014193)? | Ask Premier Field Engineering (PFE) Platforms
Update on Microsoft’s Symbol Server – Debugging Tools for Windows
Microsoft public symbol server | Microsoft Docs
Windows Filtering Platform (Windows)
SetThreadDescription function (Windows)

Technical documentation, API, and code examples | Microsoft Docs
Bug Check Code Reference | Microsoft Docs
Windows API Index (Windows)

非推奨

Shirouzu Hiroaki(白水啓章)さんのツイート: "WIn95時代から存在する、Win32アニメーションコントロールを初めて使ってみる…AVI縛り以外は意外と良いかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、非圧縮でない場合に、RLE8縛りになるのが厳しいな… https://t.co/5NHvwiXDeE An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding."
About Animation Controls (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "結局、GDIplusで、アニメーションGIFのフレームを1つずつ取り出しながらタイマーで描画、というベタな解に落ち着きそう。"
市川 真一さんのツイート: "古い環境をサポートするためなのでしょうけど、GDI+ は非推奨 API らしいですね。今なら Direct2D を使ってほしいみたいです: Deprecated or legacy APIs https://t.co/Z283r33XkN… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 MSは広まったAPIやコンポーネントは滅多に廃止しないので、GDIとGDI+は事実上廃止されないのではという気も(笑) (CreateFileTransactedのような不人気API群は躊躇なく廃止しますが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GDI/GDI+が廃止されるとしたら、デスクトップ開発はC#等のマネージドアプリのみを認め、C++はドライバ開発のみと決断した時かな?とも。… "
市川 真一さんのツイート: "それに期待したいところです。ゲームや Web 関係の技術は廃止されて被害にあってる人も多いようですね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それは知りませんでした。 ゲーム系はよく知らないのですが、Web系だとIEコンポーネントやInternetOpen等廃止されそうと言われつつも、しぶとく未だに使えている印象もあったのですが(笑)… "
市川 真一さんのツイート: "例えば Web 系だと C/C++ じゃないですが、J# が丸ごと廃止になってたり。あれで開発してた人もいたのですけどね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 MSの過去の行動を見ると、累積ソフト資産の総量で決めている感じがしますね。 累積総量が多いと、古臭くても非推奨でもしぶとくサポート、と。 逆に、Windows Mobileなどは、梯子を外された感を持つハード&ソフトベンダの方も多そうですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その点、Appleは結構大胆に切り捨てている印象が…でもユーザが思ったほど離れない不思議。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔MSは、SDIよりMDIを推奨し続けて、ついにMDIアプリはMS Excelのみ、といった時代になってようやくMDI推奨を取り下げて、その後ExcelもSDI化したという歴史があったような。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2001年に SDI推奨になった資料があった…ということで、記憶より前からSDI推奨に変わっていた様子。 https://t.co/j2vs3xRRW8"
Microsoft Windows ユーザー エクスペリエンス FAQ

Microsoft API とリファレンスのカタログ
Windows 7 API List (Windows)
Windows 8 and 8.1 Technologies (Windows)
Windows におけるコーディング規約 (Windows)
Technical features new to Windows Vista - Wikipedia
Windows のキーボード ショートカット - Windows Help

MSDN

Windows Hardware Certification blog

New Windows 10 Driver Failure Report, now live in Hardware Dev Center – Windows Hardware Certification blog
Win32 logo certification deprecation – Windows Hardware Certification blog
Errata filter database lookup is now available via Hardware Dev Center – Windows Hardware Certification blog

Japan WDK Support Blog

カーネルモード デバッガで UMDF ドライバをライブデバッグする – Japan WDK Support Blog
NDIS Connection-less Protocol Driver Sample をインストールする – Japan WDK Support Blog
MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法 – Japan WDK Support Blog
INF ファイルが Universal かどうか検証する方法 – Japan WDK Support Blog
SimRep File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
新しい Windows Driver Kit documentation – Japan WDK Support Blog
Minispy File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
Visual Studio 2015 でのテスト署名方法 – Japan WDK Support Blog
パブリック シンボルとプライベート シンボル – Japan WDK Support Blog
Windows 10 update history 公開 - Japan WDK Support Blog - Site Home - MSDN Blogs
Err.exe でエラーコードの定義を探す – Japan WDK Support Blog
WDK for Windows 10, version 1803 – Japan WDK Support Blog
Hyper-V 仮想マシンへのネットワーク経由のカーネルデバッガ接続方法 – Japan WDK Support Blog
プリンタードライバーの GPD ファイル記述に関する注意事項 – Japan WDK Support Blog
Authenticode 署名のドライバインストールのトラブルシューティングの一例 – Japan WDK Support Blog
Intel、新規格「UWD」に対応したグラフィックスドライバ - PC Watch
GPU情報取得ツール「GPU-Z」が新しいドライバー形式“UWD”に対応 - 窓の杜
Microsoft、Windows互換認定を受けたハードウェアのカタログサイトを公開 - 窓の杜
Partner Center

JAPAN Platform SDK(Windows SDK) Support Team Blog

NotifyIcon.ShowBalloonTip メソッドで表示されるバルーン表示の問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft Print to PDF 選択時の CPrintDialog::OnInitDialog() 動作について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて – JAPAN Platform SDK(Windows SDK) Support Team Blog
UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について – JAPAN Platform SDK(Windows SDK) Support Team Blog
ツールバー移動時の軌跡が残像となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
LoadImage 関数が負の高さをもつビットマップの読み込みに失敗する – JAPAN Platform SDK(Windows SDK) Support Team Blog
ICopyHook::CopyCallback ハンドラ関数へ通知される pszDestFile が空になる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 でトースト通知が表示されないことがある – JAPAN Platform SDK(Windows SDK) Support Team Blog
Virtual Bytes が、Windows 10 April 2018 Update 適用前後で異なる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません – JAPAN Platform SDK(Windows SDK) Support Team Blog
WPF アプリケーション上で、F10 キーが押されたことを検出できない – JAPAN Platform SDK(Windows SDK) Support Team Blog
仮想化した TreeView コントロールが自動的にスクロールされる。 – JAPAN Platform SDK(Windows SDK) Support Team Blog
TryShowPrimaryView メソッドを実行してもタッチ キーボードが表示されない – JAPAN Platform SDK(Windows SDK) Support Team Blog

Cloud and Server Product Japan Blog

Visual Studio 日本チーム Blog – 日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。
Cloud and Server Product Japan Blog – サーバー&クラウド関連の製品やサービスの発表をお伝えする、マイクロソフト マーケティングチームの公式ブログです。
Windows Server 2008 SP2 のサービス変更について – Cloud and Server Product Japan Blog
IoT デバイスへの証明書のインストール – Cloud and Server Product Japan Blog

Visual Studio サポート チーム blog

Visual Studio サポート チーム blog – Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。
夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について – Visual Studio サポート チーム blog
Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる – Visual Studio サポート チーム blog
Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について – Visual Studio サポート チーム blog
Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について – Visual Studio サポート チーム blog
参照側プログラムのリビルドが必要となるような DLL の変更について – Visual Studio サポート チーム blog
Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて – Visual Studio サポート チーム blog
Visual C++ の正規表現ライブラリで発生するバージョン間での動作の違いについて – Visual Studio サポート チーム blog
以前のバージョンの Visual Studio 2017 インストーラーについて – Visual Studio サポート チーム blog
OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する – Visual Studio サポート チーム blog

The Visual Studio Blog

The Visual Studio Blog | The official source of product insight from the Visual Studio Engineering Team

C

多次元配列 (C)
Microsoft 固有の修飾子
コンパイラ セキュリティの徹底調査
不完全な型
通常の算術変換
代入変換
定義済みマクロ
EncodePointer function (Windows)
DecodePointer function (Windows)
memcpy_s、wmemcpy_s
strnlen、strnlen_s、wcsnlen、wcsnlen_s、_mbsnlen、_mbsnlen_l、_mbstrnlen、_mbstrnlen_l
x86 Intrinsics List
C/C++ ビルドのリファレンス
/X (標準インクルード パスの無視)
コンパイラ組み込み
コマンド ラインでのビルド
Visual Studio での C++ プロジェクトのビルド
リンカー オプション
_STATIC_ASSERT マクロ
/Gs (スタック チェック呼び出しの制御)
Creating Guard Pages (Windows)
_resetstkoflw
__rdtsc
データ型の範囲
データ型定数
グローバル定数
非数 (NAN) 項目
How do I access the magic IEEE floating point values like NaN in code? | The Old New Thing
C 浮動小数点定数
String Manipulation Summary (Visual Basic)

Windows Driver Kit documentation | Microsoft Docs
UI オートメーションの概要 | Microsoft Docs
Windows Machine Learning - UWP app developer | Microsoft Docs
What’s new in Windows Console in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
IE11のドキュメントモードのフローチャート | Microsoft Edge Japan
USB デバイスが「不明なデバイス」として表示される場合の対処法 – Windows & Devices 開発統括部
ソリッド ステート ドライブ (SSD) に関するサポートと Q&A – マイクロソフトのEngineering Windows 7 ブログ
文字列の操作
Naming Files, Paths, and Namespaces (Windows)
お客様の声から学びました
Open Specifications Developer Center
Windows Driver Kit (WDK) - Windows 10 hardware dev
Functions
Open Specifications Developer Center
API を廃止する
wimをアクセスするコード(不完全)
新しいハードウェアダッシュボード問い合わせ方法について
Msdn forums - Open Specifications

Winsock

データの送受信(標準編)
Winsock2関数
c++ - what is __in and WSAAPI? - Stack Overflow
DNS クライアントの新機能
GetAddrInfoEx function (Windows)
FreeAddrInfoEx function (Windows)
GetAddrInfoExCancel function (Windows)
GetAddrInfoExOverlappedResult function (Windows)
Windows Sockets Error Codes (Windows)
Handling Winsock Errors (Windows)
WSAGetLastError function (Windows)
FormatMessage function (Windows)
Error Codes - errno, h_errno and WSAGetLastError (Windows)
IdnToAscii function (Windows)
IdnToUnicode function (Windows)
IPPROTO_TCP Socket Options (Windows)
Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
AF_UNIX comes to Windows – Windows Command Line Tools For Developers
Graceful Shutdown, Linger Options, and Socket Closure - Windows applications | Microsoft Docs

Application Manifests

MS

Wikipedia

リソース (Windows) - Wikipedia
Resource (Windows) - Wikipedia
Multilingual User Interface - Wikipedia

Resource Files

About Resource Files (Windows)
Resource-Definition Statements (Windows)
Resource File Formats (Windows)
RESOURCEHEADER structure (Windows)
Resource Types (Windows)
Resource Types (Windows)
Resource Files (Visual Studio)
Multilingual User Interface Reference (Windows)
Manifest Resources

/ALLOWISOLATION (マニフェスト検索)
/MANIFEST (side-by-side アセンブリ マニフェストを作成する)
/MANIFESTUAC (UAC 情報をマニフェストに組み込む)
/MANIFESTINPUT (マニフェスト入力の指定)
アプリケーション マニフェスト
方法 : マニフェストを C/C++ アプリケーションに埋め込む
C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング
Installing Side-by-side Assemblies (Windows)
Side-by-side Assemblies Reference (Windows)
Windows XP ビジュアル スタイルの使用
コマンド ラインでのマニフェスト生成
Visual Studio でのマニフェスト生成
Mt.exe (Windows)
Manifests (Windows)
Manifest Files Reference (Windows)
Manifest Files Reference (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Configuration Files (Windows)
Publisher Configuration Files (Windows)
Manifest File Schema (Windows)
Application Configuration File Schema (Windows)
Publisher Configuration File Schema (Windows)

UAC関連
現在のWindowsサイドバイサイドについて
現在のWindowsサイドバイサイドについて-続き-
Windows マニュフェストファイルの読み込み順 |
c++ - reading an application's manifest file? - Stack Overflow
winapi - How to use a manifest embedded as a resource? (Windows XP/Vista-style controls) - Stack Overflow
resourcelib/Manifest.md at master · resourcelib/resourcelib · GitHub
RT_MANIFEST
RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED – Junfeng Zhang's Musing
[Delphi/BCB] manifestファイルをexeに埋め込む: プログラミングの覚え書き
[ 314_アプリケーションマニフェストの作成とリソースの操作 ] - Mr.XRAY
Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス - Windows XP以降でアプリケーションにThemeを反映させるには(2)
WindowsXPのVisualStyleを使う(SDK)
Section7.5 ボタンとかのデザインをXP仕様にする
Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuが地球にいたころ
UTF-8文字列をAPI引数で使えるようになった – すらりん日記

PATH

PATH の正規化

パス内の"."や".."を削除して、正規化する - .NET Tips (VB.NET,C#...)
PathCanonicalize function - MSDN Search
軽減策: パスの正規化 | Microsoft Docs
8-1. Windowsパス名の落とし穴
Windowsのパスがうまく指定\表示できない問題 in Python - ぴよぴよ.py

MAX_PATH

INADA Naokiさんのツイート: "Pythonは10年以上かけてWindowsでwchar_tを使うように、ANSI APIを排除するように頑張ってきたけど、それが終わる頃に、WindowsがANSI APIでUTF-8つかえるようにする&パス長制限を外す動きを見せて、何もしなくてもUTF-8対応できたんや…ってなりそう。MSの動きが10年遅いんだよ。。。。"
About Unicode Enabling Applications and Code Pages – Windows Embedded Standard (Standard 7, Standard 2009, XPe…)
GetFullPathName function (Windows)
Naming Files, Paths, and Namespaces (Windows)
CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita
Windows で長いファイル名のファイルがあるフォルダに対して、ワイルドカードを使うと落ちることがある · Issue #675 · vim-jp/issues
.NET Framework 4.6.2 を発表 – Visual Studio 日本チーム Blog
More on new .NET path handling – Jeremy Kuhne's Blog
Maximum filename length in NTFS (Windows XP and Windows Vista)? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(1607)以降、レジストリ変更(LongPathsEnabled)すると、MAX_PATH制限が無くなる=システム全体の変更。 こういう制限は、アプリのマニフェスト定義でオプトインの形の方が望ましい気がする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "読み足りなかった。マニフェストに longPathAware を追加すれば、アプリ単位設定できる、とある。 https://t.co/rLxJ5bYraW (一方で、システム設定変更とマニフェスト追加の両方を行わないと有効にならない、と動作結果を報告しているサイトもあるな…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、\\?\ の場合の文字列上限に関する、最新と昔の記述の違い。 昔は「nearly 32,000 Unicode characters long」というアバウトな数字だった。… "

Naming Files, Paths, and Namespaces (Windows)
Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs

ファイル時刻

GetFileTime function (Windows)
FILETIME structure (Windows)
SetFileTime function (Windows)
c - How do I get the file HANDLE from the fopen FILE structure? - Stack Overflow
_get_osfhandle | Microsoft Docs
_get_osfhandle - RAD Studio
_fileno | Microsoft Docs
_fileno - RAD Studio

ストレージ

Disk Management Reference (Windows)
Distributed File System Reference (Windows)
Extensible Storage Engine Reference
File Management Reference (Windows)
Offline Files Reference (Windows)
Packaging API Reference (Windows)
Remote Differential Compression Reference (Windows)
Transactional NTFS Reference (Windows)
Volume Management Reference (Windows)
Windows Storage Management Provider (Windows)
hitoさんのツイート: "CVE-2018-6557を見て、symlink restrictionの有効性に久しぶりに感動している"
Create symbolic links (Windows 10) | Microsoft Docs
Symbolic link - Wikipedia
NTFS symbolic link - Wikipedia
Symlinks in Windows 10! - Windows Developer BlogWindows Developer Blog
ASCII.jp:Windows 10 RS5で改良されたファイル名の大文字/小文字の区別 (1/2)|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "と思ったが、このフラグはXP以降デフォルトでは無効らしい(レジストリ設定がある)。 で、WSL用にWin10で、ディレクトリにこのフラグを設定する例外を増設したという話…付け焼刃感強い&わかりづらすぎる。 https://t.co/rbsSnStKz5"
Enable or Disable Case Sensitive Attribute for Folders in Windows 10 | Tutorials
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に言うと、Windowsはopenやgetattr系の命令は同期なので(read/writeはasyncあり)、特にSMB3以降で、open/getattrをマルチスレッド化すると効果大。 (だが explorer はそれをやってない様子) https://t.co/bAVs9YmwHN」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya smbはopen/closeが同期かつ遅い、という印象はありますね。 逆に、nfsだとopen/close自体が無いのと、readdirplusでreaddirのついでにエントリのfh取得まで出来ます。 ただ、それ以外の話もありそう、、、sambaはユーザーモードですし。」 / Twitter

GUI

Windows Accessibility Features Reference (Windows)
DWM Reference (Windows)
Globalization Services (Windows)
National Language Support Reference (Windows)
Windows User Interface (Windows)
Windows Animation リファレンス (Windows)
Windows Ribbon Framework Reference (Windows)
Property System Reference (Windows)
Shell Reference (Windows)
Windows Search Reference (Windows)
Console Reference - Windows Console | Microsoft Docs
User Interaction (Windows)
Legacy User Interaction Features (Windows)
Windows and Messages (Windows)
Windows 10 Fall Creators Update での GetPixel、SetPixel 関数の処理速度について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 Fall Creators Update での Credential Provider に対する影響について – JAPAN Platform SDK(Windows SDK) Support Team Blog
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題 ~一部アプリの動作速度に影響 - 窓の杜
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題、「KB4058258」で修正 - 窓の杜
メッセージクラッカ - Web/DB プログラミング徹底解説
Windows Programming/Resource Script Reference - Wikibooks, open books for an open world

Windows のマウス キー機能 - マイクロソフト アクセシビリティ
なかのん&マジックさんのツイート: "マウスとか、特定の入力デバイスに依存したUIは本当にあかん。マウスに依存してるのだと、hover時にしか開かれないメニューとか。"
XAML Islands Archives - Windows Developer BlogWindows Developer Blog

SegmentHeap

メモリ食いのGoogle Chrome、ついに消費量削減へ - PC Watch
Opt in to the Windows "segment heap" (I217d045e) · Gerrit Code Review
May 2020 Updateの「Microsoft Edge」は省メモリ ~ブラウジング時の消費量を最大27%削減 - 窓の杜
Improving Memory Usage in Microsoft Edge - Microsoft Edge Blog
Application Manifests - Win32 apps | Microsoft Docs
Visual C++ 2017 第4回 アプリケーションマニフェストの作成(1/2) : FENIX-PC
us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion/ at master · synacktiv/Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion

Win32 Container

Microsoft explains how Win32 apps will work on Windows 10X - Neowin
Microsoft Bagikan Detail Lebih Lanjut Mengenai Windows 10X | WinPoin
Makoto Kato ︎︎さんはTwitterを使っています 「Windows internals Part 2が出ないところで、新しいContainerシステムなWindows 10Xが出るんだが、これをフォローするWindows internalsはいつ出版されるんでしょうか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Native ContainerなEdgeからWin32 ContainerなEdgeに変わるのは劣化だよな。。。」 / Twitter
ASCII.jp:Windows 10Xはなぜかアップデートが90秒で終わるらしい (1/2)
イスラエルエリカちゃんさんはTwitterを使っています 「Virtual events - Microsoft 365 https://t.co/OsuRSCDvBS」 / Twitter
Virtual events - Microsoft 365
イスラエルエリカちゃんさんはTwitterを使っています 「ぇっ、「Win32アプリが動くコンテナ」には「ゲストカーネルとドライバ」が動いていて、ホストOSへUIを表示する為にはホストOS上でRDP client走らせるの…」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「今までニュースサイトとかで話に出てた”Windows Core OS”の事っぽいから急に出てきたものじゃないみたいだけど、別OS感すげぇな」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「「Classicじゃん!!!(MacOS Xの)」ってなってしまった」 / Twitter
ASCII.jp:アプリ互換性を維持しつつ生まれ変わったWindows 10Xでタブレット市場を挽回できるか (1/2)
ASCII.jp:変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か (1/4)|Windows Info

NUMA

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MapViewOfFileExNuma というWin32APIが増設されていた。 https://t.co/BLSySUw57w」 / Twitter
MapViewOfFileExNuma function (winbase.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NUMA関連Win32API一覧 https://t.co/kMatP7SyHE」 / Twitter
NUMA Support - Win32 apps | Microsoft Docs

ストレージ

Project Zero

Project Zero: Windows 10^H^H Symbolic Link Mitigations
Project Zero: Between a Rock and a Hard Link
Project Zero: The Definitive Guide on Win32 to NT Path Conversion
Project Zero: Windows Exploitation Tricks: Arbitrary Directory Creation to Arbitrary File Read

@shirouzu

時刻

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32のSYSTEMTIME構造体はミリ秒が最小単位。 だが、Win8以降、GetSystemTimePreciseAsFileTime という100ns単位のAPIが増設され、実効的には1usの精度のUTC時間が取れるようになっていた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIXのファイル時間は秒単位の時代が長かったが、最近はns単位が普通となった。 以前は、samba経由で保存すると(100ns単位が)秒単位に丸められてしまった。 今は、samba経由で保存すると、100ns倍数のmtimeとなり、samba経由で保存したファイルだね、とすぐ分かるように(笑)"
SODA Noriyukiさんのツイート: "あれはLinuxのext2fsがウンコだっただけで、1990年代前半くらいにはffsを採用しているOSならばファイルシステムのフォーマット的にはミリ秒(SVR4)ないしナノ秒(*BSD)、解像度的には 10ms くらいにはなってました。ext2fs だけはファイルシステム的に秒単位だったので、だいぶ不便でしたが。… https://t.co/LsrXxpYO5z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 あとは、samba側が長らく秒単位のstat/utimeを使っていたから、というのもあったのかもしれませんね。(昔、SolarisやHP-UX上のsambaでも、長らく秒単位だった記憶があるので)… "
SODA Noriyukiさんのツイート: "なんと。SVR4 の場合、stat(2) でも st_mtime は「# define st_mtime st_mtim.tv_sec」で定義されていて、tv_nsec が使えたんですが、Samba 側が使ってなければどうしようもないですねえ... 僕はずっと UNIX native の開発ばかりしてたので気づきませんでした。… https://t.co/juPB5wvdiE"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Solaris7/8時代のmanを検索してみましたが、tv_nsecの件、見当たらないですね…statがtimevecも入れた構造体に拡張されると、statのABI互換が無くなると思うのですが、timevec対応statには別syscall番号を振る、みたいなことをしたんですかね。 https://t.co/0WtgsRlw8i… https://t.co/AcDQIe6iIC"
SODA Noriyukiさんのツイート: "4.0BSDではダメですが少なくとも 4.2BSD くらいには tv_nsec 分の領域が struct stat にリザーブされていたので https://t.co/0QatkejSe6 Solarisの場合、ABI問題はないんですよ。… "
SODA Noriyukiさんのツイート: "AT&T 3b2用のピュアなSVR4の場合、 ユーザーランド: !defined(_STYPES)ならばユーザランドはデフォルトでtv_nsec用の領域がある カーネル: システムコール番号18,28,88が昔からのstat(2),fstat(2),lstat(2)、123,124,125がtv_nsecつきのxstat(2),lxstat(2),fxstat(2) でした。… https://t.co/OzUDHKxenR"
SODA Noriyukiさんのツイート: "Solaris の方を見ると、システムコール番号18,28,88が st_nsec つきのインターフェースになっていて、 123,124,125は別のシステムコールになってますね。 https://t.co/Wb44d4q1Sw… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かに、各timeにreserveだかspareだかという記述なら、SunOS4.1.2時代のヘッダにも、それっぽいフィールドが載っていたような気も…。 ABI的には大丈夫だったのですね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの比較表。 ext4でようやく生成日時を保存するようになった様子だが、stat(2)側の問題で、Birth timeは空のまま。 https://t.co/QHYYiPleVL… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ext4のinodeを直接漁れば、生成日時は取れるらしい。 そういえば、UNIXのctimeはちょっと変わってる印象。 (atime以外の)inode修正日時の保存し、syscall経由では変更不可、というのは解析やセキュリティ用途を意識したものだったのかしらん? (たしかに調査用途に使ったことがある)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "timevecじゃなくてtimespecだった。 この構造体はいつ頃定義されたのかしらん。 (初めて意識に上ったのはnanosleepを使おうとした2000年くらいだったか、あまり昔という印象が無い)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho Win32API経由でOneDriveフォルダ(WebDav)を操作すると、CreateFile -&gt; WriteFile -&gt; SetFileTime -&gt; CloseHandle だと SetFileTime が反映しない・ローカル側が消えると秒粒度になる等で、使いづらい面はありましたね。 (OneDrive(WebDav client)実装側の問題かも)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。LAN用のファイル共有プロトコルから離れると、細かな問題はいろいろありそうですね」 / Twitter

セキュリティ

Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は、共有ドライブルートのACLは読めなかったと思うのだが、Win10で試すと問題なく取れるようになってるなぁ。 共有ドライブルートの場合、GetFileAttributes APIすらエラーになっていた記憶があるのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsドメインでのACLの扱いは、NT3.5時代にドメイン管理していた頃の知識のままだなぁ。 ローカルグループ同士は入れ子構造にでき便利だったが、サーバ側ドライブのACLで使えない。ドメイングループは入れ子表現できず、適切なACL表現にするのに苦労した記憶…今はそんな縛りは流石に無いのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CreateFileにACCESS_SYSTEM_SECURITYを立てると、BackupReadでもSACLを取得できるとは知らなかった。 でもこのフラグを立てたCreateFileはAdmin必須でsambaではエラーになる。local + admin の場合のみ有効にするかな…。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.62をリリース。 ACLオプション動作の拡張(管理者権限でローカルNTFS(or ReFS)間のコピーでは、DACLだけでなくSACLもコピーするように) https://t.co/L7jJavdtio #fastcopy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsでEAを使うには、ZwSetEaFileというドライバー用APIのユーザランド版をntoskrnl.dllからGetProcAddressして使うしか無さそうに見える。 https://t.co/4Y9332b9lq"
ZwSetEaFile routine (Windows Drivers)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32/NTFSって、chmod 600 としたいだけでも、これだけ手順必要。 (多機能=典型的な設定すら大変な作業に…典型的なダメデザイン) https://t.co/5J7695dCnB」 / Twitter
Win32API セキュリティ属性を指定してファイルを作成する - s-kita’s blog

ディレクトリ削除

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsのディレクトリツリーの削除が、POISIX的な削除ではうまくいかないという話。 (DeleteFile直後は dir-entry的から消えてないが、MoveFileだとentry消えるから、tempにfile-moveしてのempty-dir削除の方が確実と。悪夢だ…) https://t.co/eNtfzFKvGn https://t.co/bDzkL5a61x」 / Twitter
fs::remove_dir_all rarely succeeds for large directories on windows · Issue #29497 · rust-lang/rust
CppCon2015/Racing the Filesystem - Niall Douglas - CppCon 2015.pdf at master · CppCon/CppCon2015
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyではこの現象に出くわすため、RemoveDirでエラー発生時はNotification系APIでイベント待ちのループでリトライしてるのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「コマンドプロンプトから標準コマンドを使っても、問題を起こすので、皆のtipsが寄せられるの巻。 (リトライとか移動とか。大した解決策はない) https://t.co/pVQxIeD2oK」 / Twitter
windows - How to solve "The directory is not empty" error when running rmdir command in a batch script? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FindFirstFile等で得るファイル属性値と、ファイルハンドルから直接GetFileInformationByHandleで得る属性値が異なることがあって、NTFSがファイル情報を dir-entry と file-slot に二重持ちをしているのか、OSが最新でないキャッシュを握って返すのか分からないけど、この辺も妙なのは確か。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ の std::remove_all を見ると、やはりリトライしてるのだけど、最下部で Undocumented なパラメータを使った、SetFileInformationByHandle() を呼んでる…うーん、いつもながらのMSスタイル(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この辺の話。 https://t.co/YQWskLCgKg」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ読むと、VC++ の std::remove は Vista以降だと何も考えずに SetFileInformationByHandle を発行していて、DeleteFile/RemoveDirectoryは使ってない。(フォールバックすらしない) あとXPにはSetFile...は無いので、とりあえずRemoveDirectory発行してダメなら DeleteFileと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際の VC++ STL用ライブラリソースはこちら。 https://t.co/MAgVCURokh それを呼び出してるSTLヘッダ側はこちら。 https://t.co/4Ai75IT1kK」 / Twitter
STL/filesystem.cpp at master · microsoft/STL
STL/filesystem at 2914b4301c59dc7ffc09d16ac6f7979fde2b7f2c · microsoft/STL
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆に最新の Win10なら、SetFileInformationByHandle(FILE_DISPOSITION_FLAG_POSIX_SEMANTICS) が増設されたことで、Dir削除がnot emptyでエラーになる呪いが消えていたりする…?(要検証) (これ、元々はWSLのために作られたのかしらん?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で簡単に試した範囲では、同一プロセス内で create/unlinkがシミュレートできるようになっただけだった。やれやれ。 (別プロセスが開いたファイルは相変わらず ERROR_SHARING_VIOLATION が出る)」 / Twitter

direct I/O

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういうレポートは有り難い。 https://t.co/mOLcjcLzn4」 / Twitter
Results of using FastCopy in an LTO Drive environment. - Google グループ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1ファイル毎にヘッドが戻る現象、ftruncateが効いているのか、SetFileTimeが効いているのかだろうなぁ。 前者なら対処は可能だが、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「direct I/Oで用意するバッファ、セクタ単位必須(&アライン)なのはいいけど、末尾書き込みサイズは非セクタ単位をサポートしてほしいところ。 実際、読み込みではその仕様だし、、、書き込みと非対称。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、direct I/Oで末尾のセクタ単位未満のアクセス。 別スレッドで観察すると、末尾以降にディスクのゴミデータが一瞬現れた後にゼロクリア、なんてことが起きてないか、ちょっと気になったり。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IO前に、mmu/pte的に当該ページ群をユーザランドから無効化してそうだな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「太古のUSBだと Direct I/O や Async I/O でバグるのものあるのだよなぁ。 (あと XP時代のRDP Drive共有で Async I/Oで書き込み場所が狂うという豪快なのも…Async I/O = offset位置明示APIにもかかわらず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista あたりから Async I/O、Win8.1くらいからDirect I/Oを 標準Explorerでも使っている様子で、それ以降は枯れてきた感じある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、Linuxでも Async I/O が枯れてない話があった記憶…最近は io_uring も充実してきたので、状況変わったかな?」 / Twitter

非同期 I/O

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SetFileIoOverlappedRange は面白そうなWin32APIなのだが、Vista時代にSQL Serverでデータ破壊バグがあったのが少し気になる。 https://t.co/9PPX3QyYef https://t.co/sJLCdtJKU3」 / Twitter
SetFileIoOverlappedRange function (fileapi.h) - Win32 apps | Microsoft Docs
SQL Server data corruption when a memory range is accessed by the SetFileIoOverlappedRange function and an I/O operation in Windows Vista, in Windows Server 2008, in Windows 7, or in Windows Server 2008 R2
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このAPIは非同期I/Oするにあたって、事前に物理メモリロック範囲指定をファイルに紐づけて行うことで、I/Oごとの細かく個別ロックするカーネル処理がスキップできる、というイメージかな。 (手元で簡単に試した範囲だと、複数ファイルで同一領域しても大丈夫そう)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy で仮想メモリ→物理メモリロックで、時折遅い状況が出る、などがあれば改善できそう。 ただよほど巨大バッファ指定(GB越えとか)でなければ、普通は1周すれば物理メモリに乗った状態になるので、普通はそんなに変化無さそう。 (バッファにGB超指定しても、意味ある環境あるかな…)」 / Twitter

代替ストリーム

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そろそろ BackupRead/BackupWriteは全廃した方が良いかもしれない。」 / Twitter
サブストリームも含めてファイルのコピーを行う - わびさびサンプルソース
NTFS代替ストリーム | Netsphere Laboratories
FindFirstStreamW function (fileapi.h) - Win32 apps | Microsoft Docs
FindNextStreamW function (fileapi.h) - Win32 apps | Microsoft Docs
バックアップ アプリケーションの作成 - Win32 apps | Microsoft Docs
BackupRead function (winbase.h) - Win32 apps | Microsoft Docs
BackupWrite function (winbase.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても今更、Win10でNTFS周りの微妙な挙動を変えてくるとは感。 f=CreateFile("A"); fa=CreateFile("A:alt_stream"); WriteFile(fa); SetFileTime(f); の場合、Win8.1以前では、最後のSetFileTime前にCloseHandle(fa)をしないとその日付変更が効かない罠。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに何故 SetFileTime(fa) としないのかと言うと。ローカルやWindows同士なら実はそれでOK。 だがsambaでは(内部実装的に)alt_stream は別ファイルなので、SetFileTime(fa) は alt_streamファイルのタイムスタンプが変わるだけというオチになるのだよね。」 / Twitter

histric-1

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy実験。 削除をマルチスレッド対応にすると、ネットワークドライブの削除(小さなファイル群)で2.5倍の速度が出るようだ。 (ローカルドライブでも、1.5~1.8倍くらいのレートに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルドライブの単一ファイルシステム内の並列削除でも、マルチスレッドで高速化している。 OSファイルシステム処理(NTFSドライバ&キャッシュマネージャ)が、きちんと並列処理している現れで、興味深い。 (=MFT処理でジャンボロックなどしていない、ということ)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "本当はwin32に、asyncなopen/delete apiが欲しい。"
Ryota Shioyaさんのツイート: "Windows 上のファイルの削除ですと,先に全部ファイルを消してから次にディレクトリを消すと妙に速くなると言うのを以下で見て,実際やってみたらその通りだった記憶があるのですが,このあたりって何か関係あったりするんでしょうかね https://t.co/dUbeTuLfzA… https://t.co/bXc0f8WfP8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "どうなんでしょう? 手元のWin10(17134)で、HDD/SSDで数万~数十万ファイル程度の削除を何度か確認した範囲では、rmdir単体より、del + rmdir の方が速い、という傾向は出ないみたいですね。 XP~Win10のどこかで、処理が変わったのかもしれません。… https://t.co/2VRWenxYJb"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSファイル削除は、ブロック解放($Bitmap変更)、当該ファイルスロットの無効化(MFT自体の変更)、direntryの削除(B+treeのリーフ削除?)といった(あとジャーナル($LogFile)もかな)、あちこちにアクセスする話なので、それらの物理配置も強く影響しそう。(つまり作成時の状態に依存)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "高速なファイル検索のためには、先に空ファイルを全て作った後に、ファイル実体を作った方が、dir-entryの物理配置が集約するので良い、という話もあったり。 (いかにB+treeでも、物理ブロックが飛び飛びになると遅くなる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、SSDだとディレクトリのフラグメントはもう気にしなくていいかもしれない。(未計測だが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "削除多重度を上げるため、全ファイル非同期削除→全ディレクトリ削除、という2フェーズ削除を実験してみたが、これはHDD上では逆効果だった。 (別ディレクトリエントリ間の並列動作=ヘッドシーク多発、となった可能性あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSにバックアップ(FastCopy)すると「CreateHardLink(この要求はサポートされていません。50)」が大量に出ていた。 何だろうと思ったら、ReFSはハードリンクをサポートしていなかった。ReFSがシステムドライブに使えないのが理由の一つが良く判る(WinSxSには大量ハードリンク有り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルNTFS相手でも、多数のCreateFileをマルチスレッド化すると目に見えて高速化するのは想定外だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32サブシステムは、ファイル名の大小文字("A"と"a")を同一と見なすが、いわゆる全角の大小文字(「A」「a」)も同一とみなす…ちなみに「あ」と「ア」は別。 (なお、NTFS内は区別していて、POSIXサブシステム経由だと別扱い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTCreateFileを使うと、openat()相当の動作が可能になる。 ただし、そのハンドルはNTxxx系APIでしか利用できない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FAT32内のキリル文字ファイルをD&Dすると、FindFirstFileExW()で ERROR_NO_UNICODE_TRANSLATIONが発生する謎、しかもコマンドライン起動の場合は発生しないとのこと。 W系APIの中で、MBCS変換している?謎だ… https://t.co/FwWfW0lFp8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinAPIというより、システムコールと呼ぶべき、NTCreateFileを使うと、openat相当の技が使えるようになる…今計画している拡張にはすごく欲しいな。 (計画だと、パスデータのメモリコピーが多く発生しそうなのだが、それを一気に減らせる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetVolumeInformation、Win7以降からようやく、FileSystemFlagsにまともな値が返ってくる様子。 (ただし、この値を信用するとXP/Vistaでまともに動作しなくなる。起動すら不可、にしたら使う感じかな)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。ちょっと補足すると、 ・Transactional NTFS は事実上obsolete。 https://t.co/Ff9lb6vR4u ---- 「Windows のファイルのコピーは、驚くほど奥が深い」 https://t.co/O0fi9TiORc"
Transactional NTFS (TxF) - Windows applications | Microsoft Docs
登 大遊 - Windows のファイルのコピーは、驚くほど奥が深い。 Windows... | Facebook
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに補足。 ・ファイル拡大でゴミを読み取る可能性があるのは、SetFilePoiter+SetEndOfFile ではなく、SetFileValidData(管理者権限)を使用した時だけ。 (NTFSで)前者で領域確保のみを行い、ReadFileを行うと0データが返る。 初めてWriteした時点で、0~書込位置にゼロfillが走る。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なおFAT系の場合、書き込み時ではなく、領域確保時点でゼロfillが走る。 NTFSの挙動は extent方式の特徴。extent管理領域に「未書き込み」フラグを立てておき、読み込みで0を返す、という技が使える。 (ext4も同様で、ftruncateによるサイズ拡大が一瞬で終わるが、ext3だとゼロfillが延々走る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記は、一応昔ながらの BackupRead という手はあるかも。 >「Win32 SDK の API ドキュメントを見渡したが、NTFS のアクセス権限を無視した代替ストリームの列挙を可能とする API は 1 つも存在しなかった」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、SetFilePointer+SetEndOfFileは実領域確保が約束されているわけではなく、samba ではsparse fileとなり、これを避けるには(お勧めは出来ないが)SetFileValidData を使えばいけたはず。 (ただ、このAPIはfallocateに翻訳されるため、ext3だと延々zero-fillになる問題が出る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、登さん、良く調べてるなぁ。さすが。"

histric-2

Shirouzu Hiroaki(白水啓章)さんのツイート: "もし一般権限でファイルサイズ拡大だけで、全ユーザの削除データを読み取れるなら、ACLなど無意味な特大セキュリティホールのような…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。 ドキュメントに保証する記述が無いのは、そのためと。 https://t.co/fE5alE9v4y"
On the various ways of creating large files in NTFS | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: ""NtSetInformationFile extends the file and pads the extension with zeros." とあるので、NT系ならNTFS以外でも0fillを期待して良さそう。 https://t.co/HIOONRG02K"
NtSetInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "この件で、久々に「Windows NT ファイルシステム詳説」を見たのだが、あまり役に立つ情報は見つけられなかった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、昔の記憶にあった通り、「NTキャッシュマネージャ」は単なるキャッシュ以上の動きをしていることを確認できてよかった。 (場合によって、ファイルシステムドライバ側の領域拡張命令を呼び出したりする)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは正確でなかった。 WindowsNTファイルシステム詳細を参照すると、(ext4やxfsと違い)未書き込み管理はextentに保存していない。 ValidDataLengthという8byteの属性のみで、そのため、先頭からnバイトまで有効なデータ、という情報のみ=末尾writeすると、先頭~末尾0fillを行う必要が出る。"
鯉江さんのツイート: "ちなみにext4とかだとエクステント内に穴があくときはどうなるんでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そんなことは無かった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetFullPathNameW、パス途中にショートファイルな要素が存在すると、fnameポインタがNULLになる、というバグ的挙動があるな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "この関数「マルチスレッドでは非推奨」とあって驚く。 static buffer類は使ってないのに何故?と思ったら、「C:だけ指定するとカレントディレクトリを埋めて戻す」機能があり、別スレッドがcwdを変えると問題になるから、というオチだった。なんだそれ感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ふーむ、IO_REPARSE_TAG_LX_SYMLINKって知らなかった。 https://t.co/HCp71rLXsL"
ツッコミどころいろいろ (#3611861) | Windowsにおけるファイルコピーに関する驚くほど複雑な注意点 | スラド
Shirouzu Hiroaki(白水啓章)さんのツイート: "SHCreateItemFromParsingName APIに対しては、たとえMAX_PATHを超える場合も、\\?\ を付けてはいけない謎tips。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それはいいのだが、8.3文字変形される(=longpathではMAX_PATHを超える)場合、ファイルダイアログ系&ドラッグ&ドロップで、非ASCIIパス要素が化けるバグがある様子。 たとえば「あいう」が「B0D0F0」に化ける。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(17763)でLongPathAwareを有効にしなくても、ファイルダイアログ系で(バッファ指定を大きくすると)MAX_PATHを超えるパスを格納してくる様子。 パス要素8.3文字化でMAX_PATHに収まるときはその形。それでもMAX_PATHを超える時は \\?\ を付加して通常パス名で格納というハイブリッド動作。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、マニフェストでlongPathAwareを有効にすると、そもそも8.3文字変形が無くなるため、この問題は消える。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32では、Symlink / Junction / Mount-point はいずれも「リパースポイント」という枠組みで実装されている。 FastCopyではリパースポイントをリパースポイントとして複製しているため、新しい種類のリパースポイントが現れてもそのまま動作するはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、リパースポイントにもカテゴリーがあり、DeDupやHSM(階層化ストレージ)用のリパースポイントだけは実体をコピーするようにしている。 具体的には、IsReparseTagNameSurrogateで識別する。 https://t.co/E4AEELiaOm"
IsReparseTagNameSurrogate macro (winnt.h) | Microsoft Docs

histric-3

Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、Win10(17763.475)上で、マニフェストlongPathAware(&レジストリLongPathsEnabled)を有効にしても、Drag&Drop経由では ShortPath換算MAX_PATH以内のファイルしか受け取れない様子。 (DragQueryFileWで MAX_PATH以上のバッファを指定しても無効)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ManifestでLongPathAwareを組み込むには、Win10SDKのmt.exeが必要。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「MSさん、FILE_SHARE_DELETEを作った時にUNIX的挙動に寄せなかった理由は何だろうなぁ…まったくもって使いづらい。 (大昔と違って)開いていてもリネームは可能なので、それで凌ぐことが多い。(インストーラで、コピーしたいファイルが開かれている時など) https://t.co/pOOus50ERd https://t.co/YiOxt1mLTJ」 / Twitter
消えないファイルの話 – JAPAN Platform SDK(Windows SDK) Support Team Blog
mattnさんはTwitterを使っています: 「提案している人達は FILE_SHARE_DELETE を付け足す事で logrotate を実現したいという話だけども、Windows の FILE_SHARE_DELETE は UNIX のそれとは違う。これは issue の中のC言語のコードでも実証した。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昨年から fsutil file setCaseSensitiveInfo dir-path enable とやると、WSL配下以外でも大文字小文字を別ファイルとして扱うように、という今更迷惑千万な改変。 API的には NtQueryInformationFile(FileCaseSensitiveInformation) という隠しAPI的な呼び出しが必要。 https://t.co/9mIoB1292f」 / Twitter
NtQueryInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32APIのUTF8拡張を、システムグローバルなコードページ(日本だとSJIS/CP932設定)をUTF8に変更で実現もそうだけど、とってもセンスがない。 (APIの場合、やるならUTF8専用API(=主にW系APIのラッパーで良い)の追加が最もスジが良い方法)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「何と、この問題が起きるのは FindFirstFileExW だけであり、FindFirstFileW では問題なかった。 MSさん、一体どういう実装しているのかしらん…? https://t.co/Rm1VAZ6MUB」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いい加減な情報を返すことがある FindFirstFile系… ---- 「本当に最新情報が欲しい場合は GetFileInformationByHandle を使え」 https://t.co/RnvYvsd0en」 / Twitter
FindFirstFileExW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSの副次ストリーム(ADS)の上限数が、ストリーム名長合計に依存する話。 副次ストリーム名は$ATTRIBUTE_LISTに含まれ、$ATTR…のサイズ上限は256KiB(&UTF16で格納)。 https://t.co/D5Utjev1J6」 / Twitter
How many alternate data streams can a file have? - Colin Atkinson's Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SSD/NTFSで、10並列CreateFileすると、CreateFileプロセスよりMsMpEng(Windows Defender)がCPUの殆どを消費してしまう…これをOFFにすると10倍くらいCreateFile速度が延びる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GetDiskFreeSpaceWはドキュメントと違い、途中dirでも情報取得できる模様。(実際そうでないとジャンクション等で困る) https://t.co/JO3ALotTaK」 / Twitter
GetDiskFreeSpaceW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、GetFileAttributes等のfileattrに 0x100000 という undocumented な値が取れてしまう。 調べてみると最新のwinnt.hに FILE_ATTRIBUTE_UNPINNED という値が増えていた。(ただし説明無し。クラウド上ファイルをローカルに常駐させるかのフラグっぽい) https://t.co/VUwGZzsUSM」 / Twitter
What do new Windows 8/10 attributes mean: No scrub file (X), Integrity (V), Pinned (P), Unpinned (U) - Super User
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy英語掲示板で、アーカイブビット(変更があると1になる属性bit)を利用したバックアップできると良いなぁ、というご意見。 今時でもコレを利用したバックアップって、メジャーなのだっけ?」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「弊社ではまったく扱った記憶がなく、、どちらかというとAcronisとかのバックアップソフトが活用するメタなのでは?と思ってたり」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「タイムスタンプ&サイズ」が無変化だが、実は変更有だとアーカイブビットの意味ある…だがその状況はかなりレア。 (mmap中のメモリ経由更新はその類い。ただmmap中ファイルはバックアップする意味ほぼない)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Ext4 の Case Insensitiveモードって、Windowsとのファイル交換トラブルを減らすために作られたのかしらん? ちなみにWindowsだと、日本語ファイル名の「A」と「a」も同じ文字扱いと知っている人は少なめ。」 / Twitter
概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu ちゃんと追ってないけど、考慮不足な気がするんですよね。Sambaの下敷きとして使うときにcase insensitiveが欲しくなるのはそうなんですが、そういう時には厳密にMS互換の動作をしてほしくて、Unicodeルールで処理されてもうれしくないと思うんですよ」 / Twitter
UnagiさんはTwitterを使っています 「うお。全角 A a が同じなの今まで気付いてなかった。試してみると macOS もそうなのね。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「動作が奥まで見えていると、無駄・並列化可能部分が判るのだろうなぁ。 16年前にFastCopy設計した時も、src/dstは別物理HDDなら並列化可能(逆に単一HDDなら大きなバッファ単位で切り替え動作が良い)、OSキャッシュは利点無いので回避、といった知見の積み重ねだったな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「&gt;OSキャッシュは利点無い 大量のコピーやバックアップ的な動作では、srcやdstに溜まったキャッシュは、次々発生するコピーによって置き換わって再利用されず、しかも他のプロセス/ファイルの物理ページもLRU的に侵食していたのだよね。 (なお最近のWin10は置換ロジックが少し改善されたのだが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお UTF-16で数えた文字数なので、ANSI API+漢字だと 260バイト=130文字とかになる。 なお、OSレジストリ変更+アプリmanifest(longPathAware)+アプリ側で MAX_PATH超に対応、を満たすより、FastCopyのように内部で \\?\ 付与して MAX_PATH超対応する方がOS ver縛り無くて汎用性高いのだよな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyのベリファイは、OSキャッシュ排除は FILE_FLAG_NO_BUFFERING で排除してるが、デバイスキャッシュの影響も(なるべく)排除すべく、全コピー完了後にベリファイモードに移行する形にしてる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これに FILE_FLAG_WRITE_THROUGH を追加設定すると ReadFileでもCDB(SCSI/SATAコマンド列)にFUA(メディアI/O強制)ビットが設定されている、とのこと。へぇ。 (ただし効果があるかはドライバ依存) https://t.co/CK1KWGjZMR」 / Twitter
How to verify file write to a physical hard disk — OSR
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10以降は I/OサイズとQueueの調整をやり直した方が良いかもしれない。 (あと OS Cacheの使い方が随分改善されてる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと非同期I/O の Queue の数が10を超えてくると、転送レートが改善しない割に、HDD負荷が上がるだけになりがち。 (とはいえ、ネットワークI/Oだと効果高い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NCQって、転送レート以上にHDD負荷を高めがちなのかしらん?(HDD種類に依存?ともあれ連続領域のNCQ20~40個でアップアップとか限界低すぎ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「OneDriveフォルダ内でクラウドのみ実データがあるファイル。 FastCopy で読もうとすると ReadFileエラー(5:access denied) となり、特権昇格では OpenFileエラー(395:Access to the cloud file is denied) となる。 (とはいえ、わざわざ download させる動作も頂けない)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「R.チェン氏によると FILE_FLAG_WRITE_THROUGH は( FILE_FLAG_NO_BUFFERING と違い)メディア書き込みを強制しているとのこと。 (別資料では、前者はメタデータflushも強制) ---- https://t.co/3QrfIw4d11 https://t.co/zud6jgXQ0C」 / Twitter
On the interaction between the FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH flags - The Old New Thing
We're currently using FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH, but we would like our WriteFile to go even faster - The Old New Thing
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(こういう詳細情報は、公式API資料に載ってないのだよなぁ…ソースも公開されてないので、こういう情報に頼らざるを得ない。あ、過去にリークされたOSソースを調べる手が無くもないか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「後者のブログだと、SATAドライバがしばしば write through(FUA) を無視する作りのために NTFSのジャーナルログすら壊れることがある、と。 ATA‑7(2005) 以降でFUAの正確な規定が入ったが、安価HDDが全対応でもないと。FlushFileBuffersはFUAではなくFLUSHCACHEで古来でも安全 https://t.co/240gdaoit5」 / Twitter
Forced Unit Access (FUA) and Write‑Through
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「HDDを容量一杯まで使い切ろうとする人が意外と居て驚く。 HDDの残り10%、できれば残り30%は使わない、くらいのつもりでいないと、性能ががっくり落ちるよね。 (HDD自体の線速度低下、平均シーク距離増大、ファイルのフラグメント増大、と良い事無しに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(「4.3BSDの設計と実装」には、残り10%はrootしか使えない縛りが書いてあったけど、今時でも有効なのだっけ?)」 / Twitter

file コマンド

ぬるぽへさんのツイート: "最近のfileコマンドは、先頭のマジックとマジックごとに用意されたテキストデータベースを比較するとかじゃなくて、専用のバイトコードでマジックのインタプリタが書かれていてそれを走らせて判断しているらしい"
Tsukasa #01さんのツイート: "magic のバイトコードは一応チューリング完全になることを回避してるはず (私が知る magic では自由な形でのループは制限されてたはず)。 #kernelvm"
Tsukasa #01さんのツイート: "あぁ、線形実行する形になってるからやはりチューリング完全ではない (ある値にマッチしたら深いマッチを行える程度) し、実行時間も完全に予測/制御可能。 #kernelvm"
本の虫: 実行可能ファイルかつPDFファイルかつJarファイルかつHTMLファイルとして認識されるファイル

Cached I/O と Non-Cached I/O の違いをパフォーマンスカウンタで見てみたよ - NyaRuRuが地球にいたころ
「システム キャッシュ」の謎 - NyaRuRuが地球にいたころ
ハードウェア書き込みキャッシュのバイパス要請 - NyaRuRuが地球にいたころ
メモリマップドファイルとワーキングセット - NyaRuRuが地球にいたころ
Win32 API でファイルのハードリンクカウントを調べる - WinSxS フォルダの真実 - NyaRuRuが地球にいたころ
ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Vista のファイルコピーが遅い件について - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (2) - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ
IWordBreaker とファイル検索 - NyaRuRuが地球にいたころ
ReadyBoost と FILE_FLAG_NO_BUFFERING - NyaRuRuが地球にいたころ
Big Sky :: CreateFile で FILE_SHARED_DELETE を指定するとどうなるか
全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
ほぼすべてのウイルス対策ソフトにOSを破壊可能な脆弱性 ~現在は多くのソフトで修正済み - PC Watch
Microsoft、ゲームのロード時間を大幅削減する「DirectStorage」のWindows版を提供 - PC Watch
ドッグさんはTwitterを使っています 「path-slash で Windows のファイルパスの verbatim prefixes を正しく扱えてないバグがあった.ファイルパスの prefix 地味にムズいなぁ https://t.co/zp1Sft0Z2x」 / Twitter
std::path::Prefix - Rust
ドッグさんはTwitterを使っています 「これ例えば verbatim UNC だと \\?\UNC\server\share までが prefix なのか…」 / Twitter
マイクロソフトのDirectStorage APIがPCIe 3.0 NVMe SSDとDirectX 12 GPUを対応|自作.com

インストーラ

Windows Installer

MS

Windows インストーラー パッケージの作成
Visual Studio Installer :インストーラ パッケージ (.msi) ファイル
Windows インストーラーのエラーをトラブルシューティングする方法
Download Windows Installer 4.5 Redistributable - 日本語 from Official Microsoft Download Center
Windows インストーラー 4.5 について
【レビュー】「Windows Installer」の不正なインストール情報をクリアできるMS純正ツール - 窓の杜
Windows インストーラーの基本概念
Windows Installer (Windows)
Windows Installer Guide (Windows)
Windows Installer Reference (Windows)
About Windows Installer (Windows)
Windows Installer Examples (Windows)
Overview of Windows Installer (Windows)
Using Windows Installer (Windows)

サードパーティ

Windows Installer の修復によるインストールトラブル対処方法(Windows)
Windows Installer を修復してインストールの不具合を回避する方法 - F-Secure Community - 67241
「Windows Installer」とは何ですか? - Wise for Windows Installer 5J Professional - ナレッジベースの詳細 | GrapeCity Developer Tools
Windows Installerに対応したソフトウェアのリモートインストール手順
相栄電器 サポート情報: インストール時に Windows Installer のログを記録する
インストーラー作成ソフト「Inno Setup」が2年ぶりのバージョンアップ - 窓の杜
jrsoftware.org // Jordan Russell's Software

Qiita

Windows GUIプログラミング入門15 インストーラー(1) - Qiita
インストーラー作成ツールの選択 - Qiita

Wikipedia

Microsoft Windows Installer - Wikipedia
Windows Installer - Wikipedia
WiX - Wikipedia
WiX - Wikipedia

Twitter

おおきくてながいさんのツイート: "インストーラーの中身は全く見てないけどmsiならupgrade table吹き飛ばしたりsetup.exeからたたいてるみたいだからレジストリにlogging=voicewarnupつけて引数解析したうえでmsi直実行したりproperty tableのそれっぽい値を探したりいろいろ悪いことは思いつくインストーラークラスタ"
おおきくてながいさんのツイート: "インストーラーの中身全然知らないけどね。orcaも入れてないし。うん、全然知らない。何にも知らない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスに誤検出されずらい、インストーラの作り方、を知りたいところ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "この形にしたのは(Explorer等を使った場合に起きる)展開ファイルにゾーン情報が付与されるのを回避するため。 付与されていると、exe実行時に警告が出る以外に、ヘルプ(.chm)の目次は出るものの、肝心の中身が表示されないという、原因が分かりづらい問題が出る。… https://t.co/e71lQ4w7g3"
うがp@「~」←ちるだ!!さんのツイート: "FastCopyを使っていた人ならわかるけど、 今回からINSTのみの配布。 実行時、展開のみ というオプションがあるみたい。 高速ファイルコピーツール「FastCopy」v3.50が公開 ~処理が2倍以上高速化するケースも - 窓の杜 https://t.co/nHxDHpWnVQ @madonomoriさんから"
Shirouzu Hiroaki(白水啓章)さんのツイート: "32bit/64bit版を同梱した共通化インストーラ(32bit製)が完了。 1,194KB → 1,461KB と約22%のサイズ増加。 ただ今時だと、誰も気にしないレベルかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "/SILENT, /EXTRACT, /EXTRACT(32|64) などのオプションも追加。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinServer 2008以降、WOW64 をアンインストールすることが可能になっている様子。 (32bit製インストーラのみ、という点がネックになる可能性はあるのかな?) https://t.co/YAD124wZZ3"
WoW64 Is Now an Optional Feature for Server Core (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyインストーラは、インストーラexeをビルド後、末尾にメインファイル群を付加する形。 IPMsgインストーラでは、インストーラのソースに、メインファイル群をC言語データ配列化したものが含まれ、ビルドするとexe自身にそれらが内包される形。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "後者は、アンチウイルスの誤検出低減への効果を期待したものだったが、数年運用した結果として、全く無意味と判った(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy最新版は、32bit/64bitの両インストール(or 取り出し)を可能にした、単一インストーラ(当然32bitバイナリとして作成)となった。 今のところ、特に困った人もおらず、こちらは配布ファイルが1つで済むので良いことしかない様子。次の IPMsgでも同様にしよう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "普通にインストールすれば、x64環境ではx64版が動くはず。 だが、わざわざx86版を取り出して、x64環境で使っている人が居るっぽい。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラに、sha256による自己ハッシュ検証を入れるように変更。 ただ、コード署名を入れれば不要になるが。"
Rockridgeさんのツイート: "Fx65:MSI形式のインストールパッケージをサポート。15年前から要望がでていたが、ついに。参照:https://t.co/eWVZm3gyU7 / “show_bug.cgi?id=1475510” https://t.co/yw35MuaNhh"

WiX チュートリアル 日本語訳
WiXではじめるWindows Installer作成入門 第1回 (1/3):CodeZine(コードジン)
Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する
Visual Studio 2015でWindows Installerを使えるようにする - Webサービスで起業を目指すプログラマーblog
Visual Studio 2015 Community Edition で Windowsインストーラを作成する - グロブ
Visual Studio 2017 Installer Projects でインストーラーを作成する │ Web備忘録
Visual Studio Installer (インストーラー プロジェクト) に関するあれこれ | Tk2Kpdn Wiki
Windows Installer の削除して良いファイル - Windows 2000 Blog
第561回 ローカルインストール時もcloud-initを活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

MSIX

MSIX とは - MSIX | Microsoft Docs
Three things you need to know about Windows Developer Day - Windows Developer BlogWindows Developer Blog
Microsoft/msix-packaging: MSIX Packaging SDK
Free Windows Installer - MSI Installer Tool
Grant identity to non-packaged desktop apps | Microsoft Docs
Identity, Registration and Activation of Non-packaged Win32 Apps - Windows Developer Blog
新しいUWPとWin32アプリケーション配布モデル
Microsoftがアプリ戦略をアップデート 新形式「MSIX」でモダン化は進むか (1/2) - ITmedia PC USER
MSIXでパッケージ可能になった開発者向けWindows 10 SDK Previewが公開 - PC Watch
新しいアプリインストール形式“MSIX”が利用可能 ~「Windows 10 RS5」Build 17682以降 - 窓の杜
Microsoft、次世代アプリパッケージ“MSIX”を作成・編集するツールをストアで公開 - 窓の杜
「MSIX Packaging Tool」がストアで正式公開 ~MSI後継のインストールパッケージを作成 - 窓の杜
Microsoft、“MSIX Packaging Tool Insider Program”を開始 - 窓の杜
「Windows 10 May 2020 Update」、開発者向けの準備が完了 ~“Go-Live”なSDKが公開 - 窓の杜
Windows Virtual Desktop の MSIX アプリのアタッチの概要 - Azure | Microsoft Docs
Windows Virtual Desktop の MSIX アプリのアタッチ - Azure | Microsoft Docs
「Windows 10 Enterpriseマルチセッション」で「MSIX App Attach」をサポート - ZDNet Japan

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7以降、「プログラムの追加と削除」エントリは、非Adminでも登録可能になっていた。いつアナウンスされたのだろう…? (正確には HKEY_LM 以外に HKEY_CU 配下の REGSTR_PATH_UNINSTALL も有効になった、という形)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「コード署名」「Program Filesインストール」「マニフェスト(uiAccess=true)」の3つが揃ったプログラムはUACをバイパスして、管理権限プロセスにも SetWindowsHookEx できるのね。 (インストール時に管理者権限必須とはいえ、ちょっと微妙だな…) https://t.co/T9bnrIg7Ip"
visual studio でビルドする際の uiAccess="true" について
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確には、管理者権限アカウントからプロセス起動した場合に、UACでは落とされるべき一部特権が落とされないで起動する、という話だろうなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsで、日本語(マルチバイト)ユーザ名だけで発生する問題、時折、うっかり踏んでしまう…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近の FastCopy や IPMsgインストーラは、x86/x64版を同梱したファットバイナリで、OS種別により x86/x64バイナリのどちらかをインストール。 配布ファイルが1種類になり楽になった。 (以前は x86/x64 * exe/zip の4種類インストーラを配布。exeのみでOKになったのはコード署名のおかげ)… https://t.co/g8o1y5YmLv"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この意味が未だに分からない…どういう意図なのだろう? https://t.co/KLLYxZcwBT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「設定→「アプリと機能」と、コントロールパネル→「プログラムと機能」in Win10。 アンインストール時、ユーザ権限インストールで登録されたアプリでも、前者だけは必ず管理権限を求められる。」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うちのだと特に特権昇格してくる事はないんですけど、確かに動作が違っててよくわからん動きするんですよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix そうなのですね。 ところで「動作が違って、、、」というのは具体的にはどんな違いでしよう?」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うまく説明できないんですが、RestartManager API 周りがちゃんと動いてくれてない感じなんですかね。自分のアプリを落としてアンインストールした後にまた上がってきたりする。他のアプリでも、動きは違うけどうまくアンインストールできないケースをよく見ますね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix なるほど、、、 環境によって挙動がバラバラだと対処に困りますねぇ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は Program Files ではなくユーザ個別フォルダへのインストールが増えたけど(自動更新で管理者権限が不要になるなど)、さらに AppData\Local\Programs を使うという流儀があるらしい。 https://t.co/PADcyvah1K」 / Twitter
グレンさんはTwitterを使っています 「@shirouzu プログラム、設定ファイル、実データをどのフォルダに入れるかということについて、もっとOS(Windows)側で使いやすい規範を示して、みんながそれに従うようにして貰いたいと思ってます。」 / Twitter

2019年2月6日 OSを"インストール"ではなく"デプロイ"する ―マルチブート環境を簡単に実現するデプロイツール「znx」:Linux Daily Topics|gihyo.jp … 技術評論社
Dockerイメージのレイヤー構造について - めもめも
ASCII.jp:WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
第9回 Windowsのファイルシステムの概要とFATファイルシステム (1/2):Windows OS入門 - @IT
Periodic Background Sync 及び Web を Install するということ | blog.jxck.io
FadisさんはTwitterを使っています 「CentOSのインストールディスク、ボリューム名をデフォルトから変えるとinitrdの中で詰んでしまうの何でかと思ったけど、これ光学ディスクドライブが複数あるマシンでブートした時に間違ったディスクをマウントしない為にボリューム名をチェックしてるのか」 / Twitter

システム情報

システム情報
SystemParametersInfo 関数
IsProcessorFeaturePresent 関数
GetSystemMetrics 関数
GetSystemInfo 関数
GetKeyboardType 関数
GetCurrentHwProfile 関数

イベントログ

Windows 7/8.1/10などで一部アプリが接続不能に ~2021年6月のパッチが原因 - 窓の杜
Windows 10, version 21H1 | Microsoft Docs
Event Logging Reference - Win32 apps | Microsoft Docs
Windows Event Log - Win32 apps | Microsoft Docs

アクセシビリティ

Windows 8.1/8 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 7 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 10 のアクセシビリティ機能 - マイクロソフト アクセシビリティ
アクセシビリティ
マイクロソフト アクセシビリティ ホーム
アクセシビリティ対応アプリケーションの開発 – Windows アプリ開発
支援技術情報トップ - マイクロソフト アクセシビリティ
Windows Vista のアクセシビリティ機能 | マイクロソフト アクセシビリティ

Audio & Video

DirectX Video Acceleration - Wikipedia
DirectX Video Acceleration - Wikipedia
DXVA の構造体
MediaSinkでDXVA
便利機能 >ハードウェアデコーディング
Media Foundation - Wikipedia
Media Foundation - Wikipedia
つまみぐいプログラミング Media Foundation でカメラ画像を取得
XAudio2とMedia FoundationでMP3/WMA再生 - syghの新フラグメント置き場
MediaFoundation --- 動画の読み込み - 何でもプログラミング
5時間でMedia Foundation Interfacesをとりあえず使いこなしてアプリに実装する心得 - notes5375
MediaFoundationを使う (1) MediaFoundationの特徴 - プログラマのつれづれなるままに
Media Foundationで再生する動画(wmv)をDirect3D 9 surface上で表示したい
チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
MediaFoundationでID3D11Texture2Dに動画のフレームを読み込む 覚書β - 昏の花
XAudio2 Introduction (Windows)
XAudio2 移行ガイド

Fixstars Tech Blog /proc/cpuinfo

Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo
Windowsデバイスドライバの基本動作を確認する (2) : プラグアンドプレイ - Fixstars Tech Blog /proc/cpuinfo
仮想マシン上でWindowsデバイスドライバをデバッグする - Fixstars Tech Blog /proc/cpuinfo
Windowsドライバのテスト署名の動作を確認する - Fixstars Tech Blog /proc/cpuinfo
WDKのサンプルRAMDiskドライバを触ってみた (1) - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

クライアント/サーバー ランタイム サブシステム - Wikipedia
Win32コンソール - Wikipedia
Windows プレインストール環境 - Wikipedia
Windows Recovery Environment - Wikipedia
Windows Aero - Wikipedia
ClearType - Wikipedia
Microsoft Transaction Server - Wikipedia
Desktop Window Manager - Wikipedia
Windows Imaging Component - Wikipedia

GitHub

EasyHook
EasyHook/EasyHook: EasyHook - The reinvention of Windows API Hooking
Microsoft/vcpkg: VC++ Packaging Tool
masafumiさんのツイート: "MicrosoftからHLSLを様々なグラフィックスAPI向けシェーダにコンバートするツールがオープンソースになってた。SPIR-VやMetalとかどうなんでしょうなぁ ShaderConductor https://t.co/LgrPRJUkTr"
Microsoft/ShaderConductor: ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages

Qiita

Wine Emulator の内部構造 : Inside Wine - Qiita
Visual Studio 2017 Update 3 で Win32 プロジェクトが作成できなくなった時の対処法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "VisualStudioデバッガで、文字列表示をMBCSからUTF-8に変更する方法、残念ながらVS2017の設定ファイルに項目当該が見つけられない。 https://t.co/55UOPeSTn2 (毎回ウォッチ画面で、str, s8 とかすればいいのだが、ちょっと面倒)"
Visual Studio のデバッガで文字列を UTF-8 で表示させる - Qiita
ダウンロードしたファイルの「ブロック解除」をコマンドで - Qiita
Windows 10 NTFS代替ストリーム - いろいろメモ
COM Advent Calendar 2014 - Qiita
【IE限定】JavaScriptからCOMを呼び出す - Qiita

Twitter

その他

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "Cygwinがsocket全部にSO_{RSV,SND}BUF付けて回るのやめさせたら速くなったよって話 / “Windows network performance suffering from bad buffering |…” https://t.co/dIyhmKE12X"
Windows network performance suffering from bad buffering | Networking Blog
道化師さんのツイート: "Windows さん、単純なファイルの読み書きを大量に実行するとそれだけでちょくちょくエラーになるのホント勘弁して欲しい。。。 # 失敗した場合でもリトライするだけ成功する"
sweetie089さんのツイート: "windowsの下位互換性は他に比べるとすごいけどやっぱり色々切り捨てていて、例えば別に確保した隣り合うメモリーを一つと扱い巨大データを入れて一部APIに突っ込むとエラーする。 これができる前提のコンパイラ利用アプリは動くけど長く使ってると唐突に落ちるという意味不明挙動になりマジで困る。"
Windows_Japanさんのツイート: "【ファイルの容量をいち早く確認したいそんなとき】 メールに添付をするときなど、ファイルのサイズが気になる時はありませんか? 「Alt+ダブルクリック」でファイルを選択するとプロパティを表示できるので、すぐに確認ができますよ。 #Windows #Windows10… https://t.co/npiBujXYu0"
品川 高廣さんのツイート: "Windows 10 SDK (10.0.17763.0) にある Windows Hypervisor Platform API のヘッダファイルにタイポを見つけた。UINT32 を UNIT32 と書くのはありがちなタイポではあるけど、Microsoft がやるとはね。https://t.co/ys9MFdwl3e"
Virtual Processor Exception | Microsoft Docs
マイクロソフトサポートさんのツイート: "エクスプローラーをすぐに開きたい時は、「Windows」キー+「E」キーを使うのがお勧めです。キーボードだけで操作できるので作業時間の短縮にもなります。覚えておくと便利なショートカットキーですよ #MSHelpsJP… "
moriyoshitさんのツイート: "これかー https://t.co/xyp9yF9c3u… "
http://www.catch22.net/tuts/undoc01
mattnさんのツイート: "通常 Windows のプロセスは UNIX の様に extra FDs を渡せないんだけど、どうやら STARTUPINFO の lpReserved2 に * fd の個数 * fd の種別 * fd の配列ポインタ の構造体ポインタを食わせた場合には UNIX と同じ動作になるという裏 API があるっぽい。"
Takashi Kawasakiさんのツイート: "Restart Managerも結局のところ中途半端な感じだし、MSIは何をしているのかわからんし、Windows Updateでの再起動を減らしましたって話も気づいたら元に戻ってるし・・・、ファイルロックからは逃げられないのだよ。"
Akso de la Malbonoさんのツイート: "ちょっと待って, Windows 上で動くバイナリエディタ探したら20年以上更新が停止しているソフトウェアがいまだに人気で現役稼働ってどういうことやねん.というか,それよりも20年以上更新が停止しているプログラムが最新 OS で普通に動くってどういうことやねん."
Takashi ToyotaさんはTwitterを使っています: 「テーブルは各プロセスに紐づけられている。解析すれば、各プロセスとカーネルオブジェクトの関係が簡単に分かる。たとえば、気になるプロセスが参照しているレジストリ(Keyオブジェクト)情報を容易に取得・解析できる。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「Windowsのハンドルテーブル周辺は幾度となく内部変更されてきた。この記事では変更の背景をアセンブラーレベルで紹介している。このテーブルはオブジェクト名前空間と関連し、フォレンジック解析では避けて通れない。大変魅力的なテーブルである。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「WinDbgとWindows XP/7/8/10のハンドルテーブル解析 https://t.co/XYwXiaXNRS via @t_toyota」 / Twitter
Inada NaokiさんはTwitterを使っています: 「Windows 1903 から、アプリ単位でACPをUTF-8にできるようになったらしい。今までは-W系APIが推奨されていたけれども、これからは-A系もOK。 https://t.co/g5V8HEBJVG」 / Twitter
Windows UTF-8 コードページを使用する - UWP apps | Microsoft Docs
だんぼーだよさんはTwitterを使っています: 「PaaS やマネージドなクラウド移行ができず IaaS 移植に留まる原因いろいろあるのですが、検討の結果最終的に "外字" が主要因で諦めたケースをよく聞きます。そして大半が非 Unicode のシステムで、Unicode には意図する文字が存在する (外字不要) のことが非常に多いです。 https://t.co/CAFZq00T7F https://t.co/dJOo0cTecZ」 / Twitter
だんぼーだよさんはTwitterを使っています: 「アプリの書き直しに加えデータの置換が発生するため、非常に難しい移行になります。新規に開発するシステムでは少しずつでも Unicode 対応を検討し、やむを得ない場合以外は新たに外字を増やさないところから PaaS を見据えたデザインが必要です。業務上必要な記号等も外字以外の実装方法はあります。」 / Twitter
だんぼーだよさんはTwitterを使っています: 「なお、Windows において、外字は作成したコンピューター以外での使用は非サポートです。外字のコピーによって回避策のない文字化けや Bluescreen に至ることもありますので、すぐには難しいユースケースもあると思いますが、可能な限り控えてください。 https://t.co/8BMmugw9Gu」 / Twitter
Windows で外字エディタを使用して外字を作成する方法
Masahiro SakaiさんはTwitterを使っています 「Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA https://t.co/GwGqJ23yVz CoInitialize[Ex]してないのにMTAに属してているように見え、仕様なのか疑問に思ってたけど、一応ちゃんとドキュメントされていたのね。」 / Twitter
Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA | The Old New Thing
ケケモコソカメニハさんはTwitterを使っています 「(横から失礼します。Windowsのカット/コピー/ペーストは元々Shift+Del/Control+Insert/Shift+Insertでした。C X VはApple起源ですね。叩く方もよくわかってないまま叩いてるので流石に可哀想になります。 https://t.co/X8rbIpOtH7 https://t.co/whPSWFvxLz ……って割り込もうか悩んでまs)」 / Twitter
Cut, copy, and paste - Wikipedia
Computer History: Who Invented Copy and Paste Command?
ドッグさんはTwitterを使っています 「winrt-rs,windows-rs に改名してたことを知った.crate 名も windows という直球な名前になってる https://t.co/mqTF1aQi0c」 / Twitter
microsoft/windows-rs: Rust for Windows

API・型

kenichiudaさんはTwitterを使っています 「元ツイートの意図から外れるかもしれないが、Windows APIを擁護すると - STRICTが定義されていればHBITMAPとHCURSORは別になる。 - cにもintptr_tあるし、サフィックスのPTRはWindows API固有ではない。 - WORDはIAに引っ張られている感がある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語でなくWin32APIの型定義だと ・HANDLEのtypedef多すぎで、HBITMAPとHCURSORを取り違えてもエラーにならず ・LP…と言いつつ、far(lp)に対するnear pointerはもう無い ・DWORD_PTRは、ポインタ型でない ・WORDは2バイトのまま(まあ互換性大事) とか色々ツッコミ所多い。 https://t.co/THs00R4U4q」 / Twitter
Windows Data Types (BaseTsd.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からSTRICT入れてるのだが、最近もHANDLE関係で形違い代入できてオイオイと思った記憶あるのだが、何だったかなぁ。 (HICONとHCURSORは意図的に代入可能にしてあるっぽいが) STRICT は HDC だと struct HDC__ {...}; typedef struct HDC__ *HDC; みたいな変形になる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「型の話はズレるけど、HANDLE型の大半は CloseHandle() なのだが、HANDLE FindFirstFile() は FindClose() で閉じるとかの例外も意外と多くて困りもの。 (OS内部で振り分け可能だろうに…kernel32.dllなどのユーザランドでアレコレする必要があるとかだろうか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「レイモンド・チェン氏に、The Old New Things で取り上げてもらいたいところ。 (同じ型なのに開放方法が違うの、newとmallocポインタと同じで、自動開放しづらくて嫌)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、関連。 https://t.co/OBzWJY0Czd」 / Twitter
Kernel Objects - Win32 apps | Microsoft Docs
kenichiudaさんはTwitterを使っています 「@shirouzu ハンドル系のunique_ptrを個々に定義するより、WILを使った方が楽かもしれません。 https://t.co/NU9BsgLWcw」 / Twitter
RAII resource wrappers · microsoft/wil Wiki

App Paths

はぇ~☆さんはTwitterを使っています 「Windows APIの中には、ごくまれに実行ファイルのインストール先がProgram Filesか否かで挙動を変えるものがあるから、あんまりおすすめはできないよ。 https://t.co/xeCTyu8Rcl」 / Twitter
はぇ~☆さんはTwitterを使っています 「あとApp Pathsという仕組みがあるから、ちゃんとしたアプリケーションであれば、インストール先がどこであれ起動できるのよ。例えばGoogle Chromeは start chrome でちゃんと立ち上がる。」 / Twitter
UnagiさんはTwitterを使っています 「@haxe あれすごくチートっぽくて、ユーザープログラムが触れて良いものなのか悩ましい気がする。」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCRに書いてもいいのよ?」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCUだた」 / Twitter

Store 締め出し

Hideaki_nomapさんのツイート: "どうやらMicrosoftは、人気やアクティビティの低いappを排除することでStoreの質を高めようとしているみたいですが、市場の価値は人気商品ばかりではなく多様性も重要というところに、どうして気付かないのだろう。たとえ利用者が僅かでも、その人たちには有用でしょうに。 @microsoft @msdevjp"
Hideaki_nomapさんのツイート: "私が視覚障害者の補助のために作成したappは、この理由によって強制的に公開停止されたようです。フィードバックを得て改良する道も閉ざされました。Storeチームには本当に呆れました。… "
Hideaki_nomapさんのツイート: "Store teamは、"Create amazing apps with staying power" sectionを見ろと言ってきます。ポリシー10.1.4のActive Presenceは、よく考えると最悪ではないですか。人気の本しか置かないダメな図書館と似たような臭いを感じるのです。… https://t.co/BVWvyex40K"
Hideaki_nomapさんのツイート: "Win 10用のアプリをセキュリティ的に安全に配布しようとすると、Storeを使うことになるのですが、@microsoft が行っていることは、人気がないといった理由でその配布手段を開発者から奪う行為です。これが許されるなら、Windows用に開発する価値は全くないですね。"
Hideaki_nomapさんのツイート: "例えば、ホーキング先生の車椅子のようなのもを作ったとします。たった一人のためのアプリでも、利用者が必要性を認めるなら、有用性は高いものです。大勢に関係のないアプリでも、まだ稚拙な代物でも、その配布手段を奪う行為は、市場やプラットフォームの破壊でしかないと思います。"
Hideaki_nomapさんのツイート: "MSからメール連絡が来て、突然にunpublishされました。こちらで調査し、修正する余裕すらありません。理由はこれだけ→… "

SendInput

kayaさんのツイート: "UWPではSendInput使えなかったか..."
kayaさんのツイート: "いや、使えるけどキーロックがずれる?"
なかのん&マジックさんのツイート: "SendInput使えないと自動テストが限定的になりそう。"

@shirouzu

互換性

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@totutohoku ご興味がありましたら参考まで。 WindowsにSimCityのバグ対応が入っている話。 https://t.co/lD4ccuV95P 泥臭い対応の数々。 https://t.co/2c2nq0oN1S クラッシュで次回からメモリ管理の挙動変更 Fault Tolerant Heap。 https://t.co/omhmQlcKQj」 / Twitter
2004-07-03
本当はすごい「Windowsの互換性維持」 | 日経 xTECH(クロステック)
Fault Tolerant Heap - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32 APIのUTF-8版出さないかなぁと昔から思う。 (ANSI版をコードページで不完全にu8対応させるのではなくて)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「不完全と言うのは、ANSI用構造体だとサイズ不足なメンバがそこそこあること。 (以前はシステムグローバルでMBCS捨ててのUTF-8解釈モードという、さらに使い物にならない縛りがあったが、今はアプリ単位が可能に)」 / Twitter

同期

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32 CriticalSectionとEventを使った自作Condtionクラス、待受スレッド上限が32なのだが(atomic系演算の制約)、そろそろVista以上を必須とする Win32 CONDITIONを使うかな。 (以前のベンチでは、性能は同等だった)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それにしてもVistaて、セキュリティ関係だけでなく、CONDITION_VARIABLEやRWLockなど便利なプリミティブが随分と増えた…OSのメジャーバージョンを上げただけのことはある。」 / Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerのソートは、数字は自然ソート、漢字は音読みソート、になっている様子…NTFSの順序(unicode順)と違っているため、プログラム出力と順序が違っていて、作業がしづらいな。"
SODA Noriyukiさんのツイート: "音読みに変換しているわけではなくShift_JISというかJIS X0208的順序でしょうから(含まれている文字がすべてShift_JISで表現できるのであれば)文字コードを Shift_JIS にして自然ソートすればいいんじゃないでしょうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そこまでやる気なら、その通りです(笑)… "

エラー

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのHRESULTは、ファシリティだのといった構造を持っている割に、現実の問題解決に繋がらないことが多すぎ。 エラーコード(抽象化されたエラー内容)よりも、いっそエラーファイル名&行番号を出してくれた方が問題解決DBが充実するのでは感もあったり(笑) https://t.co/LMOWLxABiz"
ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "古い話だが、エラー時のHANDLE値がINVALID_HANDLE_VALUE(0xffffffff)だったりNULL(0)だったりと揺らぐ理由…Win16関連APIは前者、Win32独自は後者。 (前者はGetCurrentProcess()等の疑似ハンドルとも等値なので注意) https://t.co/HEzgH6enao"
Why are HANDLE return values so inconsistent? – The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただし、CreateFileはWin32新設だがWin16時代に予約されていたこと&OpenFileが存在することから、0xffffffffに統一。 そういえば、UNIXの creat → open に対し、Windowsは OpenFile → CreateFile と逆の名前に進化したな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "0xffffffff ではなく -1 が正しい。 (x64で符号拡張なしに64bit化したと思っていたのだが、改めて確認するとそんなことは無かった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、INVALID_HANDLE_VALUE という長い命名はイマイチ感。 命名は、エントロピー符号的に「頻度の高いものは短く」をベースにして欲しいところ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カーネル内部で発生したNTSTATUSエラーがWin32エラー番号に翻訳できないと、ERROR_MR_MID_NOT_FOUND(317: strerror() での変換に失敗的なエラー)に変換されてしまう様子。 https://t.co/LX107xcAXD"
c# - How to convert specific NTSTATUS value to the Hresult? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "出くわしたのは、GetOverlappedResult(非同期IOの結果を受け取るAPI)で 317 が返る、という問題。 非同期API系は利用頻度が少ないせいか、こういうアラが出やすい印象がある。"

エクスプローラ

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerの各アイコンの表示設定は、ROT13BLOBなレジストリに保存されている。 (これを強制変更すれば、次回ログイン(or Explorer再起動)以降は表示可能、という動作ならできるのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでシェル拡張のオプションが通常のオプション指定とは別画面になっているのは、元々、シェル拡張はOSグローバルな機能だった名残り。(全員に設定が反映する) しかし、今は原則ユーザ毎拡張が出来るようになったので、そろそろ通常設定画面に移してもよいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Fall Creators Updateから、通知領域アイコンが(隠しAPIを使っても)プログラム的に常時表示できなくなった点、いろいろと調べたけれど、結局、OS設定画面へのショートカットボタンを作るという、ソーシャル的解決にすることに。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、Explorerの標準コピーハンドラを置き換える実験に成功。 当初、ICopyHookを使うと思っていたのだが、これはsrcがディレクトリにしか効かない中途半端なシロモノだった。 何日か研究・試行錯誤した末にようやくたどり着いた…「MSさんちょっと酷いよ」と言いたくなる方法というか。"

ネットワーク

Shirouzu Hiroaki(白水啓章)さんのツイート: "WNetOpenEnum 等のWNet系APIですかね。 FastCopyだと逆に、ドライブレターの付いたネットワークドライブからサーバ名+共有名に変換するのに、WNetGetUniversalName APIを使っていたりします。… "
Kengo Sawatsuさんのツイート: "Win32APIでIPアドレスまたはUNCで引いた名前からSMBの共有ポイント名サーチする関数ってないのかなぁ。 ちょろっとした社内情報探索スクリプトを作りたいのだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワークドライブ相手だと、スレッド数は多いほど削除速度が上がっていく様子(50→60スレッドで10%向上など)。 自作CondVarは32スレッドまでの制限があるので、そろそろVista以降でのみ使える CondVar に移行するかな… https://t.co/mg9NKhH1OQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2018 April Update以降の挙動と思うが、隠しAPIに近い、IOCTL_LMR_DISABLE_LOCAL_BUFFERINGを発行しておかないと、ネットワークドライブへのWriteFileが、非同期I/Oあり非同期I/Oなしと同じ速度に低下する。 ちょっと酷い挙動だなぁ…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSDNでの IOCTL_LMR_DISABLE_LOCAL_BUFFERING に関する記述。 (SDKのheaderにすら番号の定義がない) ---- The IOCTL_LMR_DISABLE_LOCAL_BUFFERING control code is defined internally by the system as 0x140390 and not in a public header file. https://t.co/E2iWHkdlvQ"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista以降、CreatePersistentTcpPortReservation API が増設され、指定ポート範囲を永続予約(&この時のトークンを使って bind)が出来たのだが、手元で試すとトークン不要でbind出来てしまう謎… https://t.co/jIIJgS8yzA」 / Twitter
CreatePersistentTcpPortReservation function (iphlpapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Reserve済みでも(トークンなしに)bind出来て、逆にbind中にReserve試みると「使用中エラー」になるという、話が逆ではとか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、コマンドラインだと管理者権限でこんな感じ。 netsh int ipv4 add excludedportrange tcp 開始ポート番号 ポート数」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32APIで、20数年たっても未使用なreserved引数や、逆に Ex とか 2 が付いた APIも多いさまを見ると、事前に見通すことの難しさよとか思ったり。 (Win16 → Win32で形だけ残したreserved引数もあるらしいが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの中の人がコメントしていた。 https://t.co/o2vTZrQz9Z"
winapi - Windows API reserved parameters - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のWin系OS判定は、IsWindows10OrGreater() 的な関数を使うのが推奨だが、いずれ、 IsWin10FallOrGreater() みたいな関数が登場するのだろうか?(ない) https://t.co/U8QY5ahSjN"
Version Helper functions - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「古くて新しい話。 WinProcは汎用関数のため、メッセージ種類によって、2つ用意されたuint的なパラメータに、char/wcharポインタをキャスト代入したりする。 混在ミスがあってもコンパイラは警告を出せないという話。 unixのioctlの引数問題に近い。 https://t.co/b0DxHz5HiP」 / Twitter
「Windows 10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明 - CNET Japan
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、UWP/XAML を Win32 から使うという手はあるらしい。 ただこれは、Win8.1以降用のビルドの必要があるので、WIn7をサポートするならDLL化が必要。 https://t.co/T8JGi0t18v」 / Twitter
UWP XAML を使用した C++ Win32 アプリでの API のホスト | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32の Kernel Handle は常に下位2bitは0であり、それらは CloseHandle で閉じられる。 (のはいいけど、HANDLE型を名乗りながら、FindCloseしろとか、非Kernelな疑似Handle多すぎ) https://t.co/5XDjnNsJPn」 / Twitter
Why are kernel HANDLEs always a multiple of four? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昇格したプロセスから、ネットワークドライブ(レター)が使えない問題の解決方法。 (グループポリシー変更 or net use で再割り当て) https://t.co/3rPYtduEP3」 / Twitter
Mapped drives are not available - Windows Client | Microsoft Docs

@rockridge07

Rockridgeさんのツイート: "Fx57:Windows 10上のテーマではウィンドウの半透明効果を無効にしている。ウィンドウのリサイズが高速化されるなど、パフォーマンスに好影響も。 / “1366405 - We're forcing the window'…” https://t.co/WurqxtabCf"
Rockridgeさんのツイート: "Fx60:Windows版で、グループポリシーを用いた集中管理が可能となった。 / “1433136 - Implement GPO support on the Policy Engine” https://t.co/6ImjkZEVsQ"
Rockridgeさんのツイート: "Fx63:Windows 10のダークモードをサポート。Fx65ではアクセントカラーも正しく反映されるようになった。参照:https://t.co/Nre4vq8hvA / “1368808 - Respect Windows …” https://t.co/uACKUzrjGZ"
Rockridgeさんのツイート: "Fx64:Windows版で、ページアクションメニューに「共有」の項目が新設された。OSネイティブなページ共有機能を呼び出すことができる。 / “1363169 - Add support for native Windows …” https://t.co/MUAc7IToXv"

@d_toybox

なかのん&マジックさんのツイート: "WindowsってVista以降はプロセスがビジー状態になると一旦、ウインドウがフォーカスを失ったかのようなメッセージが発行されてるんで、たぶんそれによってドラッグの処理が中断されて……みたいな感じなんだろうなと。知らんけど。"
なかのん&マジックさんのツイート: "FirefoxでもIME周りでそれが原因で遅いマシンだと未確定文字列が意図せず確定されまくるというバグが昔あって、 https://t.co/ypmQllanBc で修正してたり。"
窓の杜さんのツイート: "正直、“タブレットモード”のボタンとかいりますか? クイックアクションに表示されるボタンをカスタマイズする【いまさら聞けないWindows 10のTips】 https://t.co/Whjwx33yv8 https://t.co/FtlmXUENU6"
なかのんクエストさんのツイート: "デバッグ時に必須のボタン。"
なかのん&マジックさんのツイート: "Windowsのタブレットモード使うと、WebアプリがFirefox for Androidより使いにくくて、逆に、「モバイルブラウザモード」みたいなの欲しくなるな。「PCブラウザモード」みたいなの。"
なかのん&マジックさんのツイート: "あ、先にGoogleさんとの協議の結果、決まったWindowsのAltGrキーのイベント発火を修正するか。おおむね、Geckoの動作が好ましかったっていう結果なので修正簡単そう。"
なかのん&マジックさんのツイート: "WindowsのAltGrって、なんで内部的にはCtrl+Altの同時押しという、すごいリソースが無かった時代からの伝統です、みたいな感じがあるんだろう。MS-DOSの頃にどうしてたのか分からないんだけど、少なくともWindowsの時代にはそこまでシビアじゃなかったと思うんだけど。"
なかのん&マジックさんのツイート: "Win10のRDP、サーバ側と、クライアント側でDPI設定が違うとき、RDP経由か否か、それぞれで起動したアプリが、もう一方の方で見る時にDPIおかしくなるのは、やっぱりアプリのデキが悪いのかなぁ。"
なかのん&マジックさんのツイート: "Windowsをタブレットで使うときには、タッチキーボードをサードパーティーに解放して欲しいのと、OSレベルでの戻るボタンみたいなの必要だなーと感じる。"
なかのん&マジックさんのツイート: "タスクバーに戻るボタンみたいなの、あるにはあるけど、そうじゃねーっていう動き。"
なかのん&マジックさんのツイート: "SendInput()でWM_KEYDOWNとWM_CHARを発生させたときに、lParamの31ビット目 (lParam << 30) がどうなるか詳しい人居ません?"
なかのん&マジックさんのツイート: "SinharaとTamilのIMEと自称するキーボードユーティリティがWM_KEYDOWNとWM_CHARを自前で生成して送ってくるんだけど、それらのlParamの31bit目が常に1で困ってる。"
なかのん&マジックさんのツイート: "(lParam & (1 << 30))だ"
なかのん&マジックさんのツイート: "あー、なんか分かった気がする。 KEYEVENTF_KEYUPを指定しておかないと、キーが内部的に押されたままになってて、lParamの31bit目の値が決まってそう。"
なかのん&マジックさんのツイート: "Win/macOS間はやりたいことと、好みの問題大きいな。個人的にはWinだけど、Winの、とくにノートパソコンでは、タッチパッドの出来が恐ろしいほどピンキリなんでこの辺の環境で当たりを引いたかどうかでも大きく評価が変わりそう。ひどいのは本当に使い物にならない。"
なかのん&マジックさんのツイート: "MicrosoftはSurfaceBook見る限りは、MacBookと同等のタッチパッドを提供できるんだから、各PCベンダにライセンス供与とかなんとかできんものかな。"
なかのん&マジックさんのツイート: "あの辺、ソフトウェア特許の塊らしいから。"
なかのん&マジックさんのツイート: "レビューしてて初めて知ったけど、Win2k以降はデバイスの変更を普通のアプリも簡単に検出できたのか。"
なかのん&マジックさんのツイート: "そういえばPDFのサムネイル作成って異様に遅いけど、あれやってるのはWindows自身なのか、Adobeのシェル拡張なのか。"
なかのん&マジックさんのツイート: "そーいや、D&Dを受け入れるアプリがバッチ処理とかで当分応答できない時に、エクスプローラからのドラッグ中にそのアプリのウインドウの上を通過しちゃうとエクスプローラ全体を再起動するしかなくなるのつらい。"
おこめ/つなもりさんのツイート: "リモートドライブ(停止中)通ったりすると死… "
なかのん&マジックさんのツイート: "歴史的にしゃーないけど、設計自体のバグよね……… "
なかのん&マジックさんのツイート: "Windowsがマイクロソフトアカウントの作成、もしくは登録から行くと、ユーザー名でフォルダ作るの本当に迷惑。古いVCのランタイムが使えなくなるんで動かないアプリが出てくるんだよな。"
なかのん&マジックさんのツイート: "非ASCII文字が含まれてる場合、ASCII文字だけの別名も用意しておくとか逃げ道欲しい。「短いファイル名」みたいな。スマートじゃないけど、アクセシブルなのは保証される。"
おおきくてながいさんのツイート: "名前に土吉含んでたらmsiすら動かなくて完全にダメ"
なかのん&マジックさんのツイート: "WindowsってプロセスのCPUの優先度以外に、ネットワークの優先度って設定できないのかな。ダウンロードしながらインストールするインストーラが動いてると、ストリーミングで動いてる動画ソフトが途切れ途切れになる。"
なかのん&マジックさんのツイート: "最近のMSはユーザー目線でも、悪い意味でMSらしくないと思うけど、アプリ開発者としては、APIの互換性・安定性という点、また、そのドキュメントのクオリティでは、最高かなって思えてしまう。"
なかのん&マジックさんのツイート: "よそのデスクトップアプリ開発者向けのドキュメントなんて、形だけで役にたたないとか、そもそも書いてることが嘘とか多過ぎで。"
なかのん&マジックさんのツイート: "ただ、COM形式のAPIは正直なところ、手放しで褒められるものは私の知ってる狭い範囲には無い。"
なかのん&マジックさんのツイート: "Win32のあのメッセージドリブンな形式の採用や、C APIの設計って今でも天才的だと思う。"
なかのん&マジックさんのツイート: "APIをオブジェクト指向にしちゃいかんと、最近本当に思う。オブジェクト指向は一見綺麗な、すっきりして見える構造を作り出せるんだけど、そのスッキリ感を維持するためには大きな変更を必要とするので、安定感や互換性を求められるAPI向きではないよな、と。"
なかのん&マジックさんのツイート: "Cocoaとかホントにアレ。"
なかのん&マジックさんのツイート: "そーいや、Cocoaに代替API無いのにCarbon APIを無かったことにしていくの、本当に頭おかしい。Geckoのキー入力のハンドリング部分なんか、今、Appleが公開してるドキュメントだけを元に書けなかったりする。"
なかのん&マジックさんのツイート: "興味ある人は読んでみると面白いかも。TISで始まってるAPIを使いまくってるけど、これがないと、入力を国際化してフレームワーク的な他のアプリの土台となるものを書けなかったりする。ちなみに、いまだにMacOS9以前のAPIも使ってたりする。使わないとどうしようもなく、かつ、今はドキュメントも無い"
なかのん&マジックさんのツイート: "https://t.co/kUOexQ9Ro6 このへん。"
TextInputHandler.mm - mozsearch
サンディスクさんのツイート: "Windowsさんはなぜ、「フォーマット」と「取り外し」をすぐ近くに配置するのか・・・(*'ー'*) (←USBメモリーを安全に取り外そうとして、間違ってフォーマットを押してしまい、しかも、あれ??フォーマットするんだっけか・・・・(*'ー'*)?? と勘違いしてフォーマットしてしまった)… https://t.co/agxZKjArdd"
なかのん&マジックさんのツイート: "フォーマットがそもそもコンテキストメニューに必要なんだろうかってのはいつも感じる。"
なかのん&マジックさんのツイート: "レコーダーで、BD/DVDのディスクの初期化の近くにHDD/USB HDDの初期化があるのもかなり怖い。"
なかのん&マジックさんのツイート: "GUIアプリ書いてると嫌になるのはダントツでmacOSだなー。APIがころころ変わったり、代替わりしたり、新機能への対応がしんどかったり。Linuxはちょっとシンプル過ぎてやれないこと多かったり、IME周りはカオス過ぎてアレ。Windowsはその辺のバランスが良い。進化してるけど互換性が凄い。"
なかのん&マジックさんのツイート: "うわー、Windows、VK_OEM_PLUS 0xBB For any country/region, the '+' keyっていう定義なのに、`+`キーが入力できないキーでこのキーコードが発生するケースあったのか。知らんかった……"
なかのん&マジックさんはTwitterを使っています: 「WindowsってShiftキーだけ、両方を離した時にしかWM_KEYUPが発行されないバグがあるんだ……Win7でも再現した。 / https://t.co/OFWbfje4Qj - keyup event with ShiftLeft/ShiftRight code sometimes not fired」 / Twitter
1566848 - keyup event with ShiftLeft/ShiftRight code sometimes not fired
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「全然違う話だけど、Microsoftさん、マウスホイールのメッセージに、モーメンタムかどうかの情報を足すようにしてくれませんかね。つまり、SendInputからの変更。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Ctel + wheelでズームを実装すると、惰性でホイールが回り続けているイベントを、後からCtrlキーを押したことで、意図しないズームが発生しちゃうんですわ。macOSはイベントから惰性かどうかを判断できるのでこういった不本意なズームを回避できる。」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Nightlyをアップデートするたびにe10s (with sandbox)が動作しなくなるので調べたけど、Windows 10のGetMappedFileNameWがバグってる気がするんだ。たぶんCoWがらみな気がするだけど。 https://t.co/TZM2FEEhOp"
Makoto Kato ︎︎さんのツイート: "https://t.co/zZDcKsDro8 "またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する" WDKみてると、なんかaarch64なデスクトップアプリ使えないようにしてる雰囲気あるって話でてるんだけど、こ… https://t.co/er1hwgIZKC"
Makoto Kato ︎︎さんのツイート: "WinRTの時だって、バイナリ的には署名チェックさえバイパスすれば動いたし (CSRSSにデバッガアタッチしてバイナリパッチしちゃえばだったはずだけど)、あれはホント愚策だったなぁと"
Makoto Kato ︎︎さんのツイート: "clang使った場合で、最新のWindows SDK使うとビルドエラーになるの、これね https://t.co/FPwttRPSeI"
clang can't compile wrl/implements.h - Developer Community
Makoto Kato ︎︎さんのツイート: "現在(過去も含めて)公開されているWindows SDKだとChakraCoreとか.NET Coreのaarch64版をビルドできないんだけど、彼らコントリビューター増やす気はさらさらない感じしてる"
Makoto Kato ︎︎さんのツイート: "https://t.co/A1Ny6xp2ne"
Makoto Kato ︎︎さんのツイート: "rustというかllvmのマトモなポートしない限り無理だけど"
Makoto Kato ︎︎さんのツイート: "Windows on arm用のイニシャルゴードはllvmに入ってるけどexception handlerのサポートが入ってないからrustはそままではポートできない。そもそもMicrosoftがehの仕様に関するドキュメント公開してない"
Makoto Kato ︎︎さんのツイート: "armasm64のehサポートに関しては必要なヘッダはバグ報告したんで最新のWindows SDKには入ってる"
Makoto Kato ︎︎さんのツイート: "armasm64のEHサポートに関してはcプリプロセッサ通さないとarmasm64だけではサポートほぼ不可という状況で、いろいろ面倒なこと増える"
Makoto Kato ︎︎さんのツイート: "そもそもMSはarm/aarch64のアセンブラを自社開発せずにArmからライセンス貰ったみたいで、いろいろ残念なこと多い"

@vyv03354

vyv03354さんのツイート: "@d_toybox OSVERSIONINFOとか、OPENFILENAMEとか、結構ありますよ。"
vyv03354さんのツイート: "@piro_or Win64にはファイルシステムリダイレクションというのがあって、32bitアプリがフルパスでSystem32を指定しても強制的にSysWOW64にリダイレクトされます。"
vyv03354さんのツイート: "爛 ←游ゴシックでは木偏、それ以外では火偏に見える不思議な漢字 とりあえずフィードバックは送った。https://t.co/otBZ51LvoT ネタ元はこちら https://t.co/WPawWoR3Ky #もずでぶ"
vyv03354さんのツイート: "爛︀ ←元ネタ通りにStandardized Variantを使えばTwitterにも投稿できるけど、Firefoxでしかうまく字形が変わらない"
vyv03354さんのツイート: "しかもどうやらTwitterがフォントを指定しているのでTwitter上では確認できない"

@unagix

uNagiさんのツイート: "Windows 10 IP 17063 の例のデフォルトロケール UTF-8 の件、有効にすると想像通りの動作になる。A 系の API が全て UTF-8 で I/O されてる。コマンドプロンプトは cp65001 になる。 https://t.co/E1t5YdPD8V"
uNagiさんのツイート: "メモ帳の読み書き時に選択できる" ANSI" は、A 系 API なので全て UTF-8 になる。だから Shift-JIS のファイルも UTF-8 で読もうとして化けてしまう。"
uNagiさんのツイート: "メモ帳で "UTF-8" を指定して保存しても、"ANSI" で保存しても、どちらも UTF-8 になるという奇妙な事が起きる。これがシステム全体で発生する事になるので、 A 系 API が一つでも残っているコードを保守している人はこの設定がいつデフォルトにされるか注視する必要が… https://t.co/hF5aShqkuu"
uNagiさんのツイート: "国内でよく見かけるのが ANSI API = cp932(SJISみなし) という間違った扱いをしているもので、そういうアプリは元から海外では正常動作していないのだけど、このオプションが有効の場合は国内でもダメという事になる。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・ https://t.co/59CktY6zOU"
Unagiさんのツイート: "@syuu1228 Windows NT には昔からある、予約語の制限を回避するプレフィックス。¥¥.¥ というのもある。これ使うとドライブレター無しでアクセスするのもできた気がする。まとまった公式ページがあったはずだけど、この記法に名前がちゃんと付いてなくてググれない…"

Error Handling (Error Handling) - Win32 apps | Microsoft Docs
Drawbridge - Microsoft Research
Drawbridge - Drawbridge.pdf
Author APIs with C++/WinRT - UWP applications | Microsoft Docs

Unicode

その他

公的機関等

法務省 戸籍統一文字情報 トップ
文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです
MJ縮退マップ | 文字情報基盤整備事業
長年の懸案だった“外字問題”が解決へ、6万字を1万字に対応付ける「縮退マップ」が完成 | IT Leaders
MJ縮退マップとマイナンバー | yasuokaの日記 | スラド

Locale

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)

Language code - Wikipedia
Locale (computer software) - Wikipedia
Codes for constructed languages - Wikipedia
List of HTTP header fields - Wikipedia
Country code - Wikipedia
ISO/IEC 9995 - Wikipedia

ascii

SODA Noriyukiさんのツイート: "*BSD系のascii(7) https://t.co/TzFY5Tqgtl が LF/FF じゃなく nl/np (newline/newpage) な件で、 Bell研からの伝統だよねー( https://t.co/gBQvXfjQTo )という話をしてた。 Linuxのman https://t.co/WtZTvdGgHE だとASCII規格通りでNPへの言及はないのね。LFはLineFeedじゃなくてnewlineとあるけど"
ascii(7) - NetBSD Manual Pages
unix-history-repo/ascii.7 at Research-V7-Snapshot-Development · dspinellis/unix-history-repo
ascii(7) - Linux manual page

革命の日々!

革命の日々! IEがEUCのJIS X 212をサポートしていないのは規格違反なのか
革命の日々! FirefoxのEUCの独自拡張のセンスが最低な件について
FrontPage - Legacy Encoding Project
革命の日々! プロジェクト「セーブ・ザ・鷗外」
革命の日々! レガシーエンコーディングなオフ会
革命の日々! それは典型的な波ダッシュ問題ではあるまいか

Man page of ASCII
Bonji Input 梵字入力
第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
文字のチェック方式 - マイクロソフト系技術情報 Wiki
文字コードについて
中国語の文字コード
Kyoto University Research Information Repository: 日本・中国・台湾・香港・韓国の常用漢字と漢字コード
ISCIE2001.pdf
CP932変換表の問題が顕在化する例 - yanok.net
書家の第3水準漢字が文字化けするわけ - yanok.net
Java 9 でようやくResourceBundle のデフォルト文字コードが UTF-8に - yanok.net
本の虫: ASCII以前の世界
libiconv - GNU Project - Free Software Foundation (FSF)
【やじうまWatch】 ウェブサイトにおける文字コードの割合、UTF-8が90%超え。Shift_JISやEUC-JPは? - INTERNET Watch
Usage Statistics of Character Encodings for Websites, June 2018
Usage Statistics of UTF-8 for Websites, June 2018
Historical trends in the usage of character encodings, June 2018
なかのん&マジックさんのツイート: "へー。便利そう。 / "WTF-8 (Wobbly Transformation Format − 8-bit) is a superset of UTF-8 that encodes surrogate code points if they are not in a pair." https://t.co/uvxuX2KXX6"
The WTF-8 encoding
強いユニコード - Google 検索
ドッグさんはTwitterを使っています 「godot engine って font fallback とか RTL とか CJK variants とか BiDi とかテキストレイアウトちゃんと実装してるのか https://t.co/znfSgWVG4X」 / Twitter
Godot Engine - Complex text layouts progress report #2
WindowsでもC++でUTF-8で読み書きしたい、他OSと同じビルドシステムを使いたい - Qiita
Your code displays Japanese wrong | Your Code Displays Japanese Wrong
ローカライズと(ローカライズについて話す時の)言語の壁 / Localization and the language barrier... on talking about localization - Speaker Deck
UTF-1 ‐ 通信用語の基礎知識

blog

その他

MySQL と寿司ビール問題 - かみぽわーる
Unicode の雪だるま - bkブログ
「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
文字コード考え方から理解するUnicodeとUTF-8の違い | ギークを目指して
プログラミング言語における文字コードの話 | ++C++; // 未確認飛行 C ブログ
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
kaya: 主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い
特殊顔文字に使われている謎の文字よ、お前は一体何者なのか – たぬきフォント
Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
クメール文字とUnicode - Togetter
Unicode 12.0正式版が登場。日本語では小文字の「ゐ」「ゑ」「を」「ヰ」「ヱ」「ヲ」「ン」が追加。新元号が発表され次第、次の12.1で新元号キャラクタを追加 - Publickey
UTF-8小話 - Plan9日記
UTF-8とルーン文字 - Plan9日記
Wayback Machine
unicode-math を完全に理解したい話(1) - マクロツイーター
漢数字が数字順にソートされない理由を調べてみた - give IT a try
文字エンコーディングの検出方法 - インフラエンジニアway - Powered by HEARTBEATS

The Unicode Blog

The Unicode Blog: Unicode CLDR 35 alpha available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 12.0
The Unicode Blog: Adopt-A-Character Grant to Support Maya Inscriptional Hieroglyphs
The Unicode Blog: Unicode CLDR Version 35 Language/Locale Data Released
The Unicode Blog: CLDR Version 35.1 Language/Locale Data Released for Reiwa Era, Unicode 12.1
The Unicode Blog: New Unicode Working Group: Message Formatting
unicode-org/message-format-wg: Developing a standard for localizable message strings
The Unicode Blog: Unicode Locale Data v37α available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 13.0

Tociyuki::Diary

「ソフトウェア作法」40周年を過ぎて - Tociyuki::Diary
日本語 Wikipedia の深さ優先探索 - Tociyuki::Diary
UnicodeData Canonical Combining Class のダブル配列トライ - Tociyuki::Diary
Unicode East Asian Width 再び - Tociyuki::Diary
Unicode East Asian Width さらに - Tociyuki::Diary
Unicode の文字数カウント - Tociyuki::Diary
ucd::width 関数 (その1) - Tociyuki::Diary
ucd::width 関数 (その2) - Tociyuki::Diary
EastAsianWidth 対応 wcwidth - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ その2 - Tociyuki::Diary

にせねこメモ

『ギリシャ文字・キリル文字・ラテン文字』 - にせねこメモ

ギリシア語

マクロン付きのギリシア文字の母音にアクセントや気息記号を付けて表示する - にせねこメモ
古典ギリシャ語会話表現集 - にせねこメモ

ロシア語

『ロシアの文字の歴史』 - にせねこメモ
ロシアらしい数字 - にせねこメモ

モンゴル語

ネット閲覧可能な(モンゴル文字による)モンゴル語資料 - にせねこメモ
モンゴル文字簡易翻字ブックマークレット - にせねこメモ
モンゴル文字とUnicode - にせねこメモ
Unicodeモンゴル文字フォント一覧 - にせねこメモ
現在のUnicodeモンゴル文字の問題点と最近の動き - にせねこメモ

中国語

簡体字フォントセミナー「中国の文字、いろいろと。」に行ってきた。 - にせねこメモ
繁体字フォントセミナー「台湾の文字、いろいろと。」に行ってきた。 - にせねこメモ

韓国語

ハングル書体セミナー「韓国の文字、いろいろと。」に行ってきた - にせねこメモ

ブラウザ上で文字列のUnicode Code Pointを調べる - にせねこメモ
イオニア数字変換TeXマクロ - にせねこメモ
文字のデザインに筆記具が与える影響 - にせねこメモ
変な文字化け - にせねこメモ
Adobe Illustrator CS6日本語版でタイ文字やアラビア文字を組む - にせねこメモ
Type& 2015「書体視認性:MIT AgeLab と Monotype の共同研究」を聴いてきました - にせねこメモ

yasuokaの日記

その他

「くゎ」と「か」の対立 | yasuokaの日記 | スラド
「だぢづでど」と「ざじずぜぞ」の対立 | yasuokaの日記 | スラド
法律における「碍」の1字 | yasuokaの日記 | スラド
島津製作所の「dzu」と標準式ローマ字 | yasuokaの日記 | スラド
常用國字標準字體表の「彞」とedukai-3.ttf | yasuokaの日記 | スラド
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
Universal Dependenciesにおけるcompound:prtと直接構成鎖解析 | yasuokaの日記 | スラド

Unicode・ISO・JIS

Unicode 10.0.0がリリース | yasuokaの日記 | スラド
「⿰月兊」はUnicode 10.0のどこに行ったのか | yasuokaの日記 | スラド
U+337B「㍻」は、いつUnicodeに収録されたのか | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されていない『新潮日本語漢字辞典』の漢字 | yasuokaの日記 | スラド
Adobe-Japan1-6にないJIS X 0212の漢字 | yasuokaの日記 | スラド
U+2D583は「出」の別体なのか | yasuokaの日記 | スラド
元号の合字を含むISO/IEC 10646:2017 Annex Aのコレクション | yasuokaの日記 | スラド
Unicode 13.0リリース | yasuokaの日記 | スラド

大漢和辞典

ISO/IEC 10646:2017に収録されていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されているが文字情報基盤に含まれていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
大漢和番号14404は本当にU+2339Fなのか | yasuokaの日記 | スラド

登記統一文字

登記統一文字01009170を含む会社法人 | yasuokaの日記 | スラド
登記統一文字01054170を含む神社 | yasuokaの日記 | スラド
登記統一文字01019580を含む寺院 | yasuokaの日記 | スラド
登記統一文字01009670を含む神社 | yasuokaの日記 | スラド
登記統一文字01080960を含む神社 | yasuokaの日記 | スラド
登記統一文字01104650を含む会社法人 | yasuokaの日記 | スラド
法人番号公表サイトにおける登記統一文字用例 | yasuokaの日記 | スラド

戸籍統一文字

戸籍統一文字152850「はかた」がU+2D92Aへ | yasuokaの日記 | スラド
戸籍統一文字で重複している漢字 | yasuokaの日記 | スラド
「⿺辶鳥」は“ナベ”の異体字なのか | yasuokaの日記 | スラド
戸籍統一文字370600はU+2713Cではないのか | yasuokaの日記 | スラド

住基統一文字

住基統一文字B159を含む会社法人 | yasuokaの日記 | スラド
『住民基本台帳ネットワーク漢字辞典』の音義未詳字 | yasuokaの日記 | スラド
住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
Re: 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド

文字情報基盤

𡶌部神社の「𡶌」は、なぜ文字情報基盤に含まれていないのか | yasuokaの日記 | スラド
U+2B1E6「𫇦」とU+241FE「𤇾」は、どういう関係にあるのか | yasuokaの日記 | スラド
「野」を字母とする変体仮名 | yasuokaの日記 | スラド

登記ねっと 供託ねっと

「登記ねっと供託ねっと申請用総合ソフト」の外字コード | yasuokaの日記 | スラド
ソフトウェアのダウンロード | 登記・供託オンライン申請システム 登記ねっと 供託ねっと

法人

U+2C0B2「⿰木亜」を含む会社法人 | yasuokaの日記 | スラド
U+2D047を含む会社法人 | yasuokaの日記 | スラド
「⿰金鼡」を含む会社法人 | yasuokaの日記 | スラド
「⿲氵車斥」を含む寺院 | yasuokaの日記 | スラド
U+2E092「⿰示責」を含む神社 | yasuokaの日記 | スラド
「⿱目勿」を含む会社法人 | yasuokaの日記 | スラド
「𛂯𛀿𛀸゙」を含む会社法人 | yasuokaの日記 | スラド
「⿸屁月」を含む神社 | yasuokaの日記 | スラド

人名漢字

「胱」「腥」「腟」は人名用漢字なのか | yasuokaの日記 | スラド
氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
Re: 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
子の名を当用漢字に制限する戸籍法施行規則の施行 | yasuokaの日記 | スラド
「襄」は子の名づけに使えるか | yasuokaの日記 | スラド
戸籍と在留カードにおける「陳」と「陣」 | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答の射程は「千遥」の出生届に及ぶのか | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答とその実態 | yasuokaの日記 | スラド
在留カードの入国管理局外字とその変遷 | yasuokaの日記 | スラド

本の虫

本の虫: ㄘんㄘん
本の虫: C++0x本:求む、簡単なBMP外の文字

yanok.net

波ダッシュ問題はなぜ『文字コード技術入門』の第8章にあるのか - yanok.net
Unicode の嫌なところを触ってしまった Python - yanok.net
Unicode 10.0リリース、変体仮名を収録 - yanok.net
言語を示すのに国旗を使うのはよくない - yanok.net
「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net
BOM つき UTF-8 へのその場しのぎの対処 - yanok.net
UTF-16 が単に Unicode と呼ばれることがある理由 - yanok.net

Python

DSAS開発者の部屋:最近のPython-dev(2017-12)

Ruby

Rubyist Magazine - Ruby M17N の設計と実装
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
UTS #18: Unicode Regular Expressions
Locale
最近のruby-core (2017年3月) | Money Forward Engineers' Blog

Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/RCyv4OefHq これ書いた人全くわかってないと思うんだけど、IVSはバリエーションがあるので、例えばAdobe-Japan-1-7対応なフォントがあったとしても、IPAフォントが採用してる汎用電子情報交換環境整備プログラムのHanyo-DenshiなフォントのIVSとは互換性がない」 / Twitter
Windows と日本語のテキストについて - Windows Blog for Japan
Makoto Kato ︎︎さんはTwitterを使っています 「なので、Windows側でHanyo-Denshi側のフォントもデフォルトで提供すべきだと思うんだ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「全く同じ字形であってもIVSのバリエーションが異なれば同じコードポイントにならんでしょ。」 / Twitter
堂前@IIJさんはTwitterを使っています 「古典的な「全角・半角」の考え方はもう通用しません。 UNIX likeなシェル環境で日本語を含めたUnicode文字を正しく表示するためには、その文字の幅を"正しく"描画する必要があります。アプリケーションから端末エミュレータに広がる沼のような問題に、IIJの大原が挑みました。 https://t.co/1YfmRQ8lWF https://t.co/1oLAeC5WlV」 / Twitter
端末の文字幅問題の傾向と対策 | IIJ Engineers Blog

News

UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch
Unicode 8に対応、「GNU C Library 2.23」が公開 | OSDN Magazine
Unicode 10、変体仮名と縦書きレイアウト導入へ | マイナビニュース
新絵文字56種類が追加された「Unicode 10.0」が発表される - GIGAZINE
変体仮名285文字や縦書きレイアウト仕様が追加された「Unicode 10.0」 -INTERNET Watch
ıɥɔıɐʇ ɐʇɐqɐʍɐʞさんのツイート: "そういえば今開催中のUnicode技術委員会で、新元号の合字の文字符号が U+32FF(ここしか空いてない)に確保されることになったらしいので、それである程度は備えられるかも。/https://t.co/nF9ou4TxCI / 新元号システム問題 https://t.co/w6xMtUelGC"
17429-sc2-n4577-japan-new-era.pdf
新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
「Qt 5.11」リリース、Unicode 10対応を強化 | OSDN Magazine
【山田祥平のRe:config.sys】さよならシフトJIS、主なしとて春な忘れそ - PC Watch
Unicode 12.1をサポートした「Glibc 2.30」リリース | OSDN Magazine

エンコード自動検出

Google Chrome 55.0.2845.0 canary で、ついにエンコーディング自動検出がデフォルトになって、エンコーディングメニューがなくな...
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

WTF-8, WTF-16

Masaki HaraさんはTwitterを使っています 「WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。」 / Twitter
Masaki HaraさんはTwitterを使っています 「https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。」 / Twitter
The WTF-8 encoding
NODA KaiさんはTwitterを使っています 「@qnighy Osほげほげを名乗るならOSのC APIからmemcpyしただけのバイト列にしてくれって訴えたのですが聞いてくれませんでしたね…」 / Twitter
WTF-16
Why should strings be lists of Unicode Scalar Values? · Issue #135 · WebAssembly/interface-types

ICU

Rust

icu - Rust
unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
ICU4X 0.4 Released – Unicode

ICU 55.1: Main Page
JVNVU#97322697: ICU4C ライブラリに複数の脆弱性
International Components for Unicode - Wikipedia
Downloading ICU - ICU - International Components for Unicode
ICU License - ICU 1.8.1 and later
ICU のライブラリサイズを削減する方法 - Qiita
小倉唯さんのツイート: "https://t.co/hR3900GqQl うおおおおおおおおおおおお, ABI 大崩壊わらうw"
Makoto Kato ︎︎さんのツイート: "Geckoの中のICU、59に上げるのはキャンセルになってます"
Rockridgeさんのツイート: "Fx56:文字の符号化処理を行うコンポーネントがuconvからRust言語ベースのencoding_rsに置き換えられた。参照:https://t.co/WFb7iNCLq2 / “1261841 - (encoding_rs)…” https://t.co/QGyHR8aExD"
Uconv - Wikipedia
uconv(1) - Linux man page
Makoto Kato ︎︎さんのツイート: "ICU 60.1って、Fuchsiaのサポート入ってるんだ"
Makoto Kato ︎︎さんのツイート: "https://t.co/kCtE4o40Gn icuもLinuxでUTF-8じゃないロケールサポートやめるぽいな"
PostgreSQL 10のICUコレーションとJIS X 4061 – yohgaki's blog
Makoto Kato ︎︎さんのツイート: "ICUのデータファイル、ECMA-402的には半分以上いらないので、BlinkとかGeckoとかがやってるようなデータ削減をnodejsもやるべきとは思う"
Makoto Kato ︎︎さんのツイート: "BlinkのAndroid版のICUデータ、通貨とかのローカライズ情報はGNPを元に削減してるのは、面白かった"
Rockridgeさんのツイート: "Firefoxでは、主にICUライブラリを通じて、Unicodeコンソーシアムが管理するCLDR(Common Locale Data Repository)によって提供されるロケールデータを利用している。 / “CLDR as…” https://t.co/QhO8R4vO1w"
CLDR as source of key internationalization data in Firefox: milestones achieved and next steps | Mozilla L10N
mattnさんのツイート: "昨日言ってた、Google Chrome の最新版が Windows7 で new Date が韓国標準時を返すバグ、ICU が原因なんだけど moriyoshi さんが詳細を送ってくれた事もあり解決しそう。 https://t.co/aZZ16PRsa3"
チェンジセット 41514 – Unicode ICU trac
Makoto Kato ︎︎さんのツイート: "ABI以外にもUnicode 10ベータのデータ使ってるとか、DateTimeのゾーン表記がGMTで書かれてたのにUTC表記になってるとか(これがなぜ変わったか調べてないからなんともいえないけど)ひどい有様です。… "
The Unicode Blog: ICU 64 Released
Zibi BranieckiさんはTwitterを使っています 「We're proud to announce #unicode #icu4x 0.5! Our major winter release. I'm particularly excited about solidifying Data Provider and getting closer to Segmenter API! #i18n #rustlang https://t.co/8tJiNErQ57」 / Twitter
Release ICU4X 0.5.0 (January 31, 2022) · unicode-org/icu4x
Makoto Kato ︎︎さんはTwitterを使っています 「Until last week, I have updated web platfoem test of screen orientation API to support this API in @GeckoView. I don't know why goolger don't fix it even if shipped by blink」 / Twitter

HarfBuzz

HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
HarfBuzz – Y.A.M.A.P
Fadisさんのツイート: "これからは「〜文字まで」みたいな仕様があったらHarfBuzzをリンクするか https://t.co/gVGozYsCZ1"
HarfBuzz Manual: Clusters
フリーのテキストシェープライブラリ「HarfBuzz 4.0」が公開 | OSDN Magazine

GNU FriBidi

GNU FriBidi - Wikipedia
fribidi/fribidi: GNU FriBidi
fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm

Unicode

Unicode Terms of Use
Unicode Terms of Use
Technical Reports
Unicode Character Database
Index of /Public/PROGRAMS
Index of /Public
Unicode 9.0.0
UAX #24: Unicode Script Property
UAX #31: Unicode Identifier and Pattern Syntax
UAX #34: Unicode Named Character Sequences
UAX #38: Unicode Han Database (Unihan)
UAX #41: Common References for UAXs
UAX #42: Unicode Character Database in XML
UAX #44: Unicode Character Database
UAX #45: U-source Ideographs
UCS-2 ‐ 通信用語の基礎知識
Unicode ‐ 通信用語の基礎知識
ユニコード
Unicode―文字コード入門―
Tech Basics/Keyword:Unicode(ユニコード) - @IT
怖くないユニコードの話 - YouTube

JIS X 0221

JIS X 0221:2014とISO 10754:1984 | yasuokaの日記 | スラド
JIS X 0221 - Wikipedia
JIS X 0221:2014が出ています - yanok.net
国際符号化文字集合(USC)(JIS X 0221)が改訂 | カレントアウェアネス・ポータル
JIS X 0221:2014附属書JA(参考)日本文字部分レパートリ | yasuokaの日記 | スラド

絵文字

The Unicode Blog

The Unicode Blog: Unicode Emoji 12.0 — final for 2019
The Unicode Blog: Emoji 12.0 Now Available for Adoption
The Unicode Blog: Unicode Technical Committee Considers Emoji Color Mechanism
The Unicode Blog: The Unicode Consortium Launches New Website in Celebration of World Emoji Day
The Unicode Blog: The Most Frequent Emoji
The Unicode Blog: Emoji 12.1 release: 168 Emoji added

窓の杜

“Emoji 5.0”をサポート、日本語対応も充実した「Windows 10」Build 16226 - 窓の杜
「Unicode 11.0」に含まれる157の新しい絵文字をサポート ~「Windows 10 RS5/19H1」 - 窓の杜
定番のテキストエディター「秀丸エディタ」v8.85β7、絵文字の結合文字に対応 ほか - ダイジェストニュース - 窓の杜
「Windows 10 19H1」Build 18277が公開 ~“集中モード”や“アクション センター”が改善 - 窓の杜
結合文字を利用したカラー絵文字をサポート ~「秀丸エディタ」v8.85が正式版に - 窓の杜
“Emoji 12.0”をフルサポートした「Windows 10 20H1」Build 18845が“Skip Ahead”に - 窓の杜
「Windows 10 19H1」も“Emoji 12.0”に完全対応 ~Build 18348が“Fast”リングに - 窓の杜
元Office アシスタントのあいつも登場 ~Microsoftが新デザインの絵文字セットをテスト - 窓の杜
Windows 11で新しい絵文字セットの一般提供が開始 ~クリッパー君やEmoji 13.1の絵文字も - 窓の杜

PC Watch

Windows 10プレビュー版で顔文字が呼び出し可能に - PC Watch
Windows 11プレビュー版、絵文字のデザインを大幅刷新 - PC Watch
Windows 10プレビュー、絵文字の検索機能を追加 - PC Watch

INTERNET Watch

「Unicode 9.0」が6月21日にリリース、72種類の絵文字を追加 -INTERNET Watch Watch
これからの絵文字の実装指針、UTR #51“Unicode Emoji”とはなにか - INTERNET Watch Watch
「Unicode 8.0」で肌の色の多様性に対応へ、“絵文字”に肌の色を変化させる符号を追加 -INTERNET Watch Watch
「Unicode 7.0」仕様公開、約250文字の絵文字を追加 -INTERNET Watch Watch
「Unicode 6.0」が策定、絵文字が国際標準に -INTERNET Watch Watch
Unicode、男女を切り替えられる絵文字を追加 -INTERNET Watch
「Unicode 10.0」への追加候補となる51種類の絵文字を発表 -INTERNET Watch

GIGAZINE

おう吐・ゾンビ・授乳などUnicodeに新しい絵文字69種類が追加される - GIGAZINE
iPhoneの絵文字一覧から「台湾国旗」が削除されてしまったと香港・マカオのユーザーが報告 - GIGAZINE

iPhone Mania

Unicode Emoji 11.0が公開〜157種の絵文字が2018年に仲間入り - iPhone Mania
iOS14.2で「マスクを着けた顔」の絵文字が笑顔に変更 - iPhone Mania

スラド

Unicode 9.0.0で追加される72種の絵文字 | スラド アップル
Unicode 9.0.0でライフルの絵文字が追加されなかったのはAppleとMicrosoftが反対したため? | スラド アップル
Unicodeの絵文字にスコットランド国旗が追加されない理由とは | スラド IT
iOS 10では拳銃の絵文字が水鉄砲の絵文字に置き換えられる | スラド アップル
絵文字のピストル、本物っぽいデザインとおもちゃっぽいデザインのどっちがいい? | スラド IT
Unicodeの絵文字のルーツ | yasuokaの日記 | スラド
キーマンズネットの考える絵文字とそのルーツ | yasuokaの日記 | スラド
J-PHONE SkyWalker絵文字とUnicode絵文字 | yasuokaの日記 | スラド

Wikipedia

UnicodeのEmojiの一覧 - Wikipedia
Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia

Twitter

Rockridgeさんのツイート: "Fx50:EmojiOneライブラリを取り込むことで、Windows XP/Vista/7およびLinux上で絵文字のサポートを強化。参照:https://t.co/ZDKMAOTZMA / “1231701 – Ship an…” https://t.co/jGCunzkZYt"
Rockridgeさんのツイート: "Windows版およびLinux版Firefox 50でカラー絵文字が正しく表示されるようになった。 / “Emoji for all Firefox users! | Blog: timdream” https://t.co/3zTq4D17Ur"
Rockridgeさんのツイート: "Fx59:絵文字用フォントの指定に対応し、通常文字と絵文字が混在しても絵文字が崩れないようにした。 / “1032671 - Add https://t.co/x39AiS2czz-list.* for Emoji” https://t.co/817tDG1ZM1"
Rockridgeさんのツイート: "Fx61:絵文字ライブラリがEmojiOneからTwitter Emoji(Twemoji)へと変更された。参照:https://t.co/mAgjkdO4nE / “1358240 - Replace EmojiOne wit…” https://t.co/lvlTa4XT6i"
Twitter Emoji (Twemoji)
twitter/twemoji: Twitter Emoji for Everyone
堀 正岳(Lifehacking.jp)さんのツイート: "台風の絵文字(U+1F300)は機種依存しているので環境や、使っているSNSによって表示は違うのですが、ツイッターとGoogle(Android)はなんと右巻きの渦になっています。現実の台風は北半球だと左巻きですので、注意しないといけませんね。… https://t.co/dIK3lSOlEk"
堀 正岳(Lifehacking.jp)さんのツイート: "iPhone上でもSafariでサイト上で見ると右巻き、アプリで見ると左巻きになっているところが面白い(笑)… "
堀 正岳(Lifehacking.jp)さんのツイート: "ツイートがのびているので付け加えておくと、もとのUnicodeは”Cyclone"に対応しておりこれは「低気圧」という一般的な名称をさしてます。だから右巻き・左巻きのどちらが正解ということはありません。でもふだんの経験と違うものがみえると驚くのと、表示環境しだいで違うというのは面白いですよね"
堀 正岳(Lifehacking.jp)さんのツイート: "「場所次第で台風・サイクロン・ハリケーンと呼ぶのでは?」という質問もあるかもしれませんがUnicodeはその3つを区別しているわけではなく、もし地域差を表示してるとしてもサイクロンは北インド洋を含むので右巻きか左巻きかは、言葉だけからはわからないんです..."
えいす8️⃣さんのツイート: "📛←日本人にはどう見ても幼稚園の名札だが、外人には何なのかさっぱり分からないらしく「燃えるトーフ」とか呼ばれている絵文字"
なかのん&マジックさんはTwitterを使っています: 「Windows 10でも、デスクトップアプリのpassword fieldと、UWPのそれは、絵文字の取り扱いが違うのか。前者はsurrogate pairだけ意識してて、後者は見た目の文字単位でハンドリングしてる。」 / Twitter
なかのん&マジックさんはTwitterを使っています: 「UWPのpassword fieldの動作が一番良いように思える。GTKのはUTF-16の一文字単位で編集できてしまうし(現在のGeckoも同じ)、macOSに至っては絵文字が混じってるとマトモに動作しなくなる。」 / Twitter
桃芭蕉実🍑🍌さんはTwitterを使っています: 「お寿司🍣の絵文字、見え方がスマフォとかによって違うんだね〜しらなかった〜 https://t.co/EReSX1551u」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「最近https://t.co/0cq48c17Uaの話を見ることなかったのですが、QID emojiってのを知って、まぁ呆れた https://t.co/cZuF21UHX4」 / Twitter
UTS #51 Addendum: Unicode Emoji QID
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「絵文字等のUTF16的にマルチバイトな文字をどうマスクするかで今年夏にちょっと格闘してみたんだけど、メチャクチャに難しいですな。確か、WindowsのUWPのパスワードフィールドの処理が一番綺麗だった気がするものの、細かいことは忘却の彼方。 https://t.co/y0KFfhi7HT」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox これ現在インストールされているフォントとかにも依存するので最適解はないですね。なんであんな仕様になったと今でも思ってる。(というと自分が仕様側に入れよと言われる話なんですが)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@makoto_kato とりあえず、layoutがflushされてるかという例の問題と、やたらとあちこちにassertが仕込まれてて、クラスタ内やサロゲートペア間で何も起きないこと前提になってて、どんだけ直さないといけないのやらっていう感触でした。フォントはシステムデフォルトを強制するとかで緩和するしかないですかね……」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox Platformのバージョンによってインストールされているフォントが変わるので、レンダリング情報 (nsTextFrame) をみないと正しいマスクされる文字数がわからないんですよね。。。プラットフォーム固定だとどうにかなるんですが。。。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更だが、emojiの書記素(Grapheme Cluster?)判定をやらないと、こんなことになる。 それにしても、「親」絵文字と「子」絵文字が並ぶと「家族」絵文字にする仕様、誰得な仕様としか思えない(笑) https://t.co/wGg7RMVUiB https://t.co/so7v3SabmY https://t.co/uTk0td9Ixu」 / Twitter
書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu 合字の仕様ですね。そうしたくない場合はU+00A0(NBSP記号)を間に入れるルールになってた筈です。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なぜ Unicodeの「グラフが上昇する絵文字📈」は赤線で表示されているのか? 理由: 日本の株式市場では、上昇銘柄が赤で表示されるという伝統に従っているため。 https://t.co/PnIdzvQjzm」 / Twitter
Why does the 📈 Chart Increasing emoji show in red?
yoh2さんはTwitterを使っています 「異体字セレクタや合成文字は元の文字に制御 or 合成文字を重ねているという体だからまだ納得できるが、🇯 と 🇵 を連続して書いたら 🇯🇵 になるとか何の嫌がらせなんだろうとよく思ってる。」 / Twitter
Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「@yoh2_sdj 国の承認云々でもめないための苦し紛れという側面も…… (つらい)」 / Twitter
yoh2さんはTwitterを使っています 「@a4lg まあその辺ですよね。 それに増えたり減ったりするので専用の領域を予約しておくのも勿体無いというか何というか……」 / Twitter
だんぼーだよ📦さんはTwitterを使っています 「竈門禰豆子を正しく表記しようとすると "禰󠄀" は異体字の表現のため U+79B0;U+E0100 で UTF-8 だと 7bytes 必要なんですね~っていうトリビアを仕入れたので、お客さんが鬼滅の刃を覚えている限りこのネタで掴んでいこうと思っています https://t.co/spglgPaBys」 / Twitter

特集 : 絵文字が開いてしまった「パンドラの箱」 - CNET Japan
「Firefox 50」リリース、絵文字の独自サポートなどを導入 | OSDN Magazine
絵文字を支える技術の紹介 - Qiita
栗田穣崇さん『ドコモの絵文字にうんちを入れたかったのですが、社内で大反対されまして…』 うんちの絵文字がUnicodeに登録されるまでの裏話 - Togetter
絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット - (page 6) - CNET Japan
Emoji Frequency - Unicode
HarfBuzz 絵文字 - Google 検索

照合

Unicode照合アルゴリズム - Wikipedia
Unicode collation algorithm - Wikipedia
UTS #10: Unicode Collation Algorithm
🐬🍣🍻さんはTwitterを使っています 「MySQL 8.0のキャラクターセットとCollation(照合)の利用。utf8mb3の利用はNG, 将来バージョンで非サポートの方向。照合は要件に応じてutf8mb4_binかutf8mb4_0900_*のいずれかのみ推奨。日本語ではutf8mb4_900_ai_ciは病院美容院(拗音の照合)問題があるので非推奨。 #mysql_jp https://t.co/VqMFnm6n9R」 / Twitter

互換漢字

CJK互換漢字 - Wikipedia
CJK Compatibility Ideographs - Wikipedia
CJK統合漢字 - Wikipedia
CJK Unified Ideographs - Wikipedia
Unicode CJK互換漢字 F900~FAFF - CyberLibrarian
Unicode CJK互換漢字補助 - CyberLibrarian
CJK互換漢字 ‐ 通信用語の基礎知識
日本の文字とUnicode 第4回 | 大修館書店 WEB国語教室
人名用漢字と互換漢字 | yasuokaの日記 | スラド
“情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」: 第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか

異体字

ITpro

新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
新常用漢字が引き起こす文字コード問題 - 漢字1文字が最大8バイト、Unicodeの「IVS」とは?:ITpro
新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro

INTERNET Watch

渡邊の「邊」などの異体字の使い分け、MS Officeで可能に、IVSアドイン公開 -INTERNET Watch Watch
人名に使われる異体字など、IVS文字の入力を支援するソフト「IVSパレット」、イーストが発売 -INTERNET Watch

blog

IVDの2017-12-12版が公開 | yasuokaの日記 | スラド
Index of /ivd/data/2017-12-12
「崙の簡化字」のIVS | yasuokaの日記 | スラド
Windows標準のフォントだけで異体字(IVS)を扱う | 毛流麦花
Mac OS X 用異体字(異体字セレクタ Unicode IVS を含む)入力支援プラグイン及び TeX 系エディタ TeXShop 対応バイナリ - 技術考
IMEパッドでUnicodeの異体字セレクタを利用する―Office IME 2010を使いこなすを使いこなす―
日本語は1文字何バイト? ( ソフトウェア ) - アルファのブログ - Yahoo!ブログ

Twitter

Tsukasa #01さんはTwitterを使っています: "PanCJKV IVD Collection (unregistered) : https://t.co/jjnt5Enuqh"
Tsukasa #01さんはTwitterを使っています: "国ごとの字形の違いを表現するための IVD を Adobe がとうとう提案しようとしているのか。"
Tsukasa #01さんはTwitterを使っています: "OpenType の feature で国ごとの字形の違いを表現することは一応可能だとは思うけど、IVD を使うことでプレーンテキストの中でも同様のことができるようになるのか。"
vyv03354さんのツイート: "@makoto_kato IVS対応フォントでも通常IVSを単独の文字として収録していないので、ブラウザが認識していないとVSだけフォールバックが起きてうまく表示されません。フォントを1つしか使わない普通のアプリでは問題になりませんけど。"
Rockridgeさんのツイート: "Fx52:Windows版で、Webメールなどにおいて、IVS(Ideographic Variation Selector:漢字の異体字セレクタ)を用いた文字がバックスペースを2回押さないと消えない問題を修正。 / “8500…” https://t.co/uKAQekBADG"
ISO/IEC 10646:2017発行 | yasuokaの日記 | スラド
なぜ「⿸广帯」はISO/IEC 10646:2017から漏れてしまったのか | yasuokaの日記 | スラド
「⿺辶鳥」はISO/IEC 10646:2017に収録されたのか | yasuokaの日記 | スラド
楠 正憲さんのツイート: "この6万文字をWindowsやOffice、Mac、Linuxでもちゃんと扱えるところまできたのに自治体外字は百数十万文字も残ってるんですよね。マイナンバー対応で統合宛名の整備も進んだので、さすがに決着をつけたいな / “コンピ…” https://t.co/wCtbmA3lPQ"
ひめ@女体化したいさんのツイート: "どうせISO/IEC 10646:2017に関係するニュースでしたらこちらの岩手県大船渡市盛町字二本𭫚(にほんどう、拡張F U+2DADA)がオススメです https://t.co/iazheILI34"
Tsukasa #01 [要出典]さんのツイート: "あ、文字情報基盤周りだと、ISO/IEC 10646:2017 だけじゃなくて、IVD が 2017-12-12 版になったことも関連してるのかな (この版では、大漢和で重複収録されたものを "区別" するための IVS が追加されている。"
Tsukasa #01 [要出典]さんのツイート: "まぁそれはそうと、"全漢字" 使用可っての、だいぶ語弊があるよね。(ここまで書いて) 語弊があるどころか、登記統一文字で実際に複数の法人名に用例があるような字でも収録から外れてたり云々。"
Makoto Kato ︎︎さんのツイート: "IVSってフォントに依存するし、AdobeのセットとあのIPAが絡んでるセットは正規化してないから、グリフの形が全く同一でも同じコードになってないってところが好きじゃないんだけど、それ解決してるの?"
Makoto Kato ︎︎さんのツイート: "だから、IPAフォントじゃなくて、Noto CJKにあのIPAのIVSを移植しないと意味ない"
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/IQO9FXyEbM に既に載ってるかな、と思ってみたら載ってなかった(同類の文字が載っていそうだけど」 / Twitter
minimaxir/big-list-of-naughty-strings: The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
ritsukaさんはTwitterを使っています 「鬼滅の刃に禰󠄀豆子というキャラがいるらしいけど、禰+異体字セレクタU+E0100を使わないと表現出来ない字なのか。 それでデフォルトではUTF-8は3バイトまでと決め打ちしてたMySQLとかそれを使うWordPressでトラブル起こすらしい」 / Twitter

Standardized Variants
Ideographic Variation Database
Windows 8 の IVS 対応と IVS Add-in for Microsoft Office | マイクロソフト 公共機関向け
c - C言語でのUTF-8文字列の正確な長さを取得する - スタック・オーバーフロー
ダイナフォントのIVS(異体字切り替え)対応について教えてください。 | ダイナコムウェア株式会社
Unicode IVSとは | 異体字フィクサー | 製品情報 | 株式会社リンクス
IVSフォント利用ライブラリー|イースト株式会社
IVD/IVSとは | 文字情報基盤整備事業
IVS対応情報 | 文字情報基盤整備事業
異体字セレクタ - Wikipedia
異体字セレクター
IVD ‐ 通信用語の基礎知識
異体字セレクタセレクタ (α v0.5)
さきさかさんはTwitterを使っています 「芦屋、Unicode規格に出てくるお嬢様が住んでるところという認識しかない https://t.co/u8kKtJLhYf https://t.co/IBfvKGqdVA」 / Twitter
UTS #37: Unicode Ideographic Variation Database

結合文字

Unicodeの特殊な文字 “結合文字列” – ものかの
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
結合文字列をUnicode正規化で合成する方法の危険性 - Qiita
結合文字列を合成する安全な方法を考える - Qiita
macのファイル名のための安全なNFC正規化 - Qiita
ICU 結合文字かを判定する - Faith and Brave - C++で遊ぼう
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
「プログラマのための文字コード技術入門」EPUB版販売開始! - yanok.net
合字 - Wikipedia
Typographic ligature - Wikipedia
複雑なテキスト配置 - Wikipedia
Complex text layout - Wikipedia
結合文字 - Wikipedia
Combining character - Wikipedia
合成済み文字 - Wikipedia
Precomposed character - Wikipedia
図形素結合子 - Wikipedia
Combining Grapheme Joiner - Wikipedia
Unicode結合文字 難読化シェル芸

制御文字

ASCII

制御文字 - Wikipedia
ISO 2047 - Wikipedia
エスケープシーケンス - Wikipedia
エスケープ文字 - Wikipedia
キャレット記法 - Wikipedia
肯定応答 - Wikipedia
削除文字 - Wikipedia
シフトアウト・シフトイン - Wikipedia
スペース - Wikipedia
ソフトハイフン - Wikipedia
タブキー - Wikipedia
置換文字 - Wikipedia
テキスト終結文字 - Wikipedia
伝送終了文字 - Wikipedia
問い合わせ文字 - Wikipedia
バックスペースキー - Wikipedia
否定応答 - Wikipedia
ベル文字 - Wikipedia
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「改行コードがCR+LFになった理由: 昔のテレタイプは、110bpsで動いており、1バイト送るのに約100msかかった。印刷ヘッドは遅かったため、改行コード(CR)が1バイトしかないと100msでは行頭に戻りきらなかった。そこで時間稼ぎのためにもう1バイト(LF)を送ることにした。 https://t.co/VJWsCYE9WG」 / Twitter
RevK®'s ramblings: CR+LF has a long history...
ぼやさんはTwitterを使っています 「CR+LF で CR が先に送られるのは物理的制約からだが、CR と LF に分かれてる理由ではない。 CR だけ送って上に xxx を重ねて消すとか、LF だけ送ってグラフのような表現(前からの相対。戻るのはBS)とか。 今でも CR だけ送ることで、画面に進捗を表示させたり。 https://t.co/UWsw4t6Xkg」 / Twitter
改行コード - Wikipedia
キャリッジ・リターン - Wikipedia

拡張子偽装

Yosuke HASEGAWAさんはTwitterを使っています 「誰やこんな悪用方法考えついたやつ…。 とりあえず、Windowsならソフトウェアの制限ポリシーで「新しいパスの規則」からRLOがファイル名に入ったものの実行を禁止してしまうのが対策としては手っ取り早い。」 / Twitter
オノッチさんはTwitterを使っています 「友人から渡されたexeファイルによるウイルス感染問題、「流石にexeファイルは開かない」なんて人も騙されるのが、Unicodeの制御文字(RLO)で文字方向を途中から入れ替える手法。 ファイル名の途中にこの制御文字を入れ、そこから文字方向を変えることで、本来の拡張子とダミー拡張子を逆転させる。 https://t.co/dw9aXyCmOj」 / Twitter
オカダリョウタロウさんはTwitterを使っています 「@hasegawayosuke グループポリシーでもできそうっすね。ただし、RLOのついた .txt や.pdfは開いちゃう(昔のバージョンだけかもしれないが)という話を見つけた。https://t.co/DLFlluwyV3」 / Twitter
GPO ソフトウェアの制限のポリシー(RLO拡張子偽装の対策)について
Yosuke HASEGAWAさんはTwitterを使っています 「@okdt まあ、.txt や .pdf を開いて何かしら問題が発生するという場合は、それらに関連付けられたビューアー/エディタに脆弱性があるということなので、それを解消するのが筋ですね。.exe をそれと知らずに開くということとは全然意味合いが違いますね(岡田さんはわかってると思うけど)」 / Twitter
オカダリョウタロウさんはTwitterを使っています 「@hasegawayosuke 会話形式の勉強楽しい!勉強になります!」 / Twitter
「もらったEXEなんて開かねえよw」なんて人も絶対に騙される偽装ファイル名に思わず戦慄 - やじうまの杜 - 窓の杜

一ノ瀬 いろはさんのツイート: "ゼロ幅接合子にゼロ幅非接合子・・・・・・ ウッ、アタマが!… "
ゼロ幅非接合子 - Wikipedia
Zero-width non-joiner - Wikipedia
ゼロ幅接合子 - Wikipedia
Zero-width joiner - Wikipedia
macOS 10.13/iOS 11のゼロ幅非接合子処理の不具合を利用しアプリをクラッシュさせる文字列が複数発見される。 | AAPL Ch.
2. スペースは" "だけじゃない的な話
jaco-js/SPACE_CHARS.ts at master · jaco-project/jaco-js
\sは本当に空白文字を網羅できているのか? - Panda Noir
新たな元号にZERO WIDTH JOINERは使えるのか | yasuokaの日記 | スラド
ノーブレークスペース - Wikipedia
単語結合子 - Wikipedia
Word joiner - Wikipedia
ゼロ幅スペース - Wikipedia
Zero-width space - Wikipedia
Thin space - Wikipedia
図形間隔 - Wikipedia
Figure space - Wikipedia
FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
Trojan Source Attacks
FadisさんはTwitterを使っています 「ソースコードにUnicode制御文字を挟むことで人間には違う意味に見えるソースを作るトロイのソースが出てから各言語で対応が議論されている。対応が早かったRustは問題となっているコードポイントがコード中に現れるのを禁止したが、Pythonでは違う方針がまとまりつつある https://t.co/zGkHy44qmC」 / Twitter
FadisさんはTwitterを使っています 「Pythonではこの問題を「ソースコードはエディタなどの支援なしに読むのはそもそも辛い」問題の一種とみなしており、言語にad-hocな制限を加えるのではなく、Pythonを書いたりdiffをとったりするソフトウェアがこのような細工がバレバレになる表示を提供すべきという推奨をPythonのドキュメントに加える」 / Twitter
StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita

正規化

Unicode正規化 - Wikipedia
Unicodeの等価性 - Wikipedia
Unicode equivalence - Wikipedia
Unicodeの互換文字 - Wikipedia
Unicode compatibility characters - Wikipedia
ダイアクリティカルマーク - Wikipedia
Diacritic - Wikipedia
Unicode正規化
Elasticsearchでの文字列の正規化 - Carpe Diem
IBM Knowledge Center - エンコーディングと正規化
ユニコード
UAX #15: Unicode Normalization Forms
Unicode正規化 用語の混乱について 第4.2版 – ものかの
HFS+のエンコーディングとUnicode正規化 第3版 | ものかの
HFS+のテキストエンコーディング – ものかの
普通のUnicodeはNFCなのか – ものかの
本の虫: Linus Torvalds、HFS+に激怒
Taku Kudoさんのツイート: "NFKC 正規化といっても、Unicode Version が異なると結果が変わることがある(極めてレアだけど)。正規化を完全に自己完結モジュールにしたければ、Unicode Versionもモデルに含めないといけない。"
Kazuho Okuさんのツイート: "しかし「NKDで正規化したハッシュテーブル」みたいなやつ(ファイルシステムとか)、文字が追加されたらNKDの定義がかわるわけだけど、いったいどういう動作するのかな。未定義文字は登録できない、かつ、定義済の文字についてはNKDの定義がかわらない、みたいな規則にはしてないだろうし"
macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
にせねこさんのツイート: "現在のTwitterでは投稿時にUnicode正規化がなされるらしく、互換漢字の旧字は対応する新字に置き換えられてしまうようです。 https://t.co/0CrCRXA9TM… "
TwitterにUnicode正規化が導入された時刻の推定 by zeeksphere - Togetter
ファイルシステムとS3でのユニコード正規化の関係を調べてみた2021 - Techブログ - MNTSQ, Ltd.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicodeで正規化された ö が、正規化されていない ö と一致せず、SMBでファイルが見えなくなる問題。Unicodeの正規化問題は &amp; とか †とかに続いて今後頻繁に起こるバグになりそう。 https://t.co/pwaxBnBIXy」 / Twitter
Unicode Normalization Forms: When ö != ö :: OpenCore Blog

東アジアの文字幅

UAX #11: East Asian Width
東アジアの文字幅 - Wikipedia
和字間隔 - Wikipedia

書記素クラスタ

Shiro Kawaiさんのツイート: "#tcfm 12回 https://t.co/orkUFymQiq Grapheme clusterを構成するコードポイント数って上限無いんじゃなかったっけ。文字数で入力制限かけるようなコードだとやばそうだな。"
Jun Mukaiさんのツイート: "https://t.co/mIq2d78OKz GB9とGB11のルールの組み合わせによりいくらでも長いgrapheme clusterはつくれます… "
UAX #29: Unicode Text Segmentation
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Perl 5.26 & Unicode 9.0 で変わる書記素クラスタ(grapheme Cluster)のお話 - Shogo's Blog
Python でタイ文字やアラビア文字の個数をうまく数える - Qiita
UAX #29: Unicode Text Segmentation

サロゲートペア

サロゲートペア入門:CodeZine(コードジン)
JavaScriptでのサロゲートペア文字列のメモ - Qiita
サロゲート・ペアのトラブルはいつまで続くか - yanok.net
Unicodeサポートの現状 - yanok.net

双方向テキスト

UAX #9: Unicode Bidirectional Algorithm
双方向テキスト - Wikipedia
Bi-directional text - Wikipedia
bidiフォーマット文字も追加:Unicode標準6.3が公開、日中韓の互換表意文字改善 - @IT
七誌さんはTwitterを使っています: 「Windows 2000の頃からWin32の標準TextBoxで右クリックするとメニューにRLM等のUnicode制御文字関連項目があるのは知っていたけど、初めて使った。 Wikipediaの例をコピペして制御文字を表示すると存在が確認できる。バイナリダンプすると対象文字(!)の後にある。 https://t.co/UbIAZG3oj0 https://t.co/KX29zYXXHz」 / Twitter
Right-to-left mark - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「牛耕式」を知っている人少なそう、、、牛耕式対応BiDiとかあったらすごいな。 https://t.co/o0QRy67YAk」 / Twitter
中村 実さんはTwitterを使っています 「古代ギリシャ語を牛耕式で書く場合、右から左の行と左から右の行では文字の左右が逆、つまり鏡文字になったそうだが、現代のエディッタ&amp;フォントで表示できるのかしら?」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみにRustは1年以上前に文字列の端を取り除くメソッドの一種であるtrim_left/trim_rightを非推奨にしてtrim_start/trim_endにしていますね。これは右から左に書記する体系では混乱のもとだからです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえは、IPMsgのログビューアは、一応アラビア語などbidi表示されるのだけど、範囲選択で馬脚を現してしまう、、、本当ローカライズは色々面倒。」 / Twitter
Go でアラビア語を描画する - Qiita
unicode-org/lstm_word_segmentation
千種創一さんはTwitterを使っています 「日本のパソコンには「㍍」や「㍿」とか無理矢理な圧縮文字がありますが、中東のパソコンには ﷺ という صَلَّى اللهُ عَلَيْهِ وَآلِهِ وَسَلَّمَ 彼(預言者)とその一族に神の祝福と平安あれ という文章を縮めた神がかった圧縮文字が存在します」 / Twitter
FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
Trojan Source Attacks
نۇرمۇقەددەسさんはTwitterを使っています 「تۆپىلىكتىكى ياپۇن چايخانىسى بىرىنچى باسقان قەدەمدىن بۇ چايخانىغىچە كۈلۈمسىرەش ئۆزگەرتكەن سوغاق ھاۋادىن قولۇڭ ئىللىتقان بارماقلىرىمغىچە قاراشلىرىڭدىن توختاپ قالغان نىگاھلىرىڭغىچە قايرىلغان چۈشتە تېپىۋالغان چايخانىمىزدا ئېيتماقچى بولغان سۆزلىرىمىز قەدەھلەرنى لىق تولدۇرغىچە https://t.co/nzcUSDt3M4」 / Twitter
右横書き言語 - Wikipedia
ソースコードに脆弱性を潜ませられるUnicode悪用攻撃法「Trojan Source」を研究者が発表 - ITmedia NEWS

行分割

- UAX #14 Unicode 行分割アルゴリズム - metacpan.org
UAX #14: Unicode Line Breaking Algorithm
UAX #29: Unicode Text Segmentation
Qt in depth: Qt の禁則処理 - Qt Japanese Blog
libunibreak
adah1972/libunibreak

Wikipedia

その他

U-PRESS - Wikipedia
Template:文字コード - Wikipedia
Template:Character encodings - Wikipedia, the free encyclopedia
Character encoding - Wikipedia, the free encyclopedia

文字

Unicodeにおけるラテン文字 - Wikipedia
Latin script in Unicode - Wikipedia
拡張漢字 - Wikipedia
香港増補字符集 - Wikipedia
Hong Kong Supplementary Character Set - Wikipedia
西夏文字 - Wikipedia
Tangut script - Wikipedia
バムン文字 - Wikipedia
Bamum script - Wikipedia
たいと - Wikipedia
Taito (kanji) - Wikipedia
ノーティカルスター - Wikipedia
Nautical star - Wikipedia
蘇州号碼 - Wikipedia
Suzhou numerals - Wikipedia
カシーダ - Wikipedia
Kashida - Wikipedia

Unicode - Wikipedia
Unicode - Wikipedia
ISO/IEC 10646 - Wikipedia
Universal Coded Character Set - Wikipedia
DIS 10646 - Wikipedia
ユニコードコンソーシアム - Wikipedia
Unicode Consortium - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Common Locale Data Repository - Wikipedia
Common Locale Data Repository - Wikipedia
Unicode一覧 - Wikipedia
List of Unicode characters - Wikipedia
Unicode一覧表 - Wikipedia
Unicode文字のマッピング - Wikipedia
Universal Character Set characters - Wikipedia
文字符号化方式 - Wikipedia
UTF-8 - Wikipedia
UTF-8 - Wikipedia
ホモグラフ攻撃 - Wikipedia
IDN homograph attack - Wikipedia
バイトオーダーマーク - Wikipedia
Byte order mark - Wikipedia

Twitter

その他

合字

KIMATA RobertHisasiさんのツイート: "日本語の文中で全く読めない文字「ゟ」に出くわして、「より」の合字があることを知る"
KIMATA RobertHisasiさんのツイート: "ひらがなの合字とカタカナの合字、UNICODEで定義されているのはここらへん参照らしい https://t.co/PSgHt1RbcO https://t.co/zLCBg9u89L 濁点、半濁点以外の合字だと平仮名の「ゟ」(より)と片仮名の「ヿ」(コト)がある模様。なお、「〼」(ます)は枡記号であって仮名ではないらしい。そうなんだ"
The Unicode Standard, Version 12.0
The Unicode Standard, Version 12.0
Shirouzu Hiroaki(白水啓章)さんのツイート: "「ゟ」は、「より」のひらがな合字、「合略仮名」と。… "

OS作れないマンさんのツイート: "wchar_tがUnicodeだと言われるともやもやする。"
なぎせ ゆうきさんのツイート: "ユーザー「ちゃんと文字数数えてくださいよ!」 プログラマ「では文字の数え方を定義して下さい。"👎"これは?」 ユ「1文字」 プ「サロゲートペアは1文字と。"・ิ"これは?」 ユ「1文字」 プ「合字は1文字と。"フ゜"これは?」 ユ「2文字……?」"
Fadisさんのツイート: "Unicodeへの絵文字の追加によって、表音文字を使ってきた文化圏が表意文字をカジュアルに使い始めた事は遠い未来から文字の歴史を見ると大きな事件になっているのかもしれない"
渋川よしきさんのツイート: "UTF-8は最大6バイトでは?「絵文字を入力する」ユースケース対応でIME対応が進むことも期待できる。 : 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note(ノート) https://t.co/nzV61y7j5Y"
kamimuraさんのツイート: "@shibu_jp @ymotongpoo 自身では単純に、utf-8の可変長でもほとんどの文字が6バイト(今では4バイト)になる、後方互換気にしない、いずれ2~6(4)バイトの大きさは気にするほどでもなくなる、と都合よく仮定して文字をUTF-32で実装してみたり。 https://t.co/KWo9s6Xqam… https://t.co/CAPAA5GLsz"
Shiro Kawaiさんのツイート: "@tenpoku1000 @mkamimura @rui314 同意。「文字」というのはどうコード化しても前後の文脈に依存する場合が出るので、文字列=互いに独立した文字オブジェクトのランダムアクセス列、という道は幸せにはなれないと考えます。SchemeもR6RS前に大きな議論があって、結局言語上の文字=コードポイントと割り切り意味的な文字はア… https://t.co/m04MNNXdGt"
鹿野壮(かのたけし)さんのツイート: "Google Chromeで絵文字のサイズを257px以上にすると、消えるよ。 (FirefoxやSafariでは消えない) #跡部王国 https://t.co/8lhNaJ9Fly"
mashabowさんのツイート: "新元号の組文字、「BMPに符号位置確保しといて」って要求が日本NBから出てた https://t.co/OsFnV1JWBT"
17429-sc2-n4577-japan-new-era.pdf
Ken Lunde (小林劍󠄁)さんのツイート: "This is the second—and likely final—draft of the new figure for Section 18.2, “Ideographic Description Characters,” of the #Unicode11 Core S… https://t.co/YEnqKjnYCq"
Kazuhiro Kazamaさんのツイート: "JavaやJavaScriptの国際化に携わってきたNorbert Lindenbergが日本語の勉強に来日した時に「日本語は難しい」と嘆いていたのですが,新たに日本語にハングルの要素を取り入れた"Niji script"を考えたそうです.ぜひ見てあげてください. https://t.co/5pJ1tSPZKq"
The Niji script
Masaki Haraさんのツイート: "WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。"
Masaki Haraさんのツイート: "https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。"
Hiroyuki Komatsuさんのツイート: "1970-1980 年代のコンピューターで使われていた画像描画用の文字が、ユニコードに採択されました。 古いコンピューター風の演出や、エミュレーター用途だけでなく、軽いツールのアイコンとしても使えそうです。顔文字の表現の幅も広がりますね。 僕の好きな MSX の命令は VPOKE でした。… https://t.co/ZrvdDhMVrc"
The Unicode Consortiumさんのツイート: "214 characters from legacy computers and teletext that were proposed by @DougEwell, @BeckieRGB, and others in the “Terminals Working Group” in L2/19-025 were just accepted at #UTC158 for a future version of #Unicode → https://t.co/BNVgHvH2XQ… https://t.co/iI2Zo54TZO"
島鉄雄さんはTwitterを使っています: 「「𩸽」(ほっけ)という漢字が UTF-8 だと 4 byte になる知見を得た。 4 byte 文字も含めてちゃんと UTF-8 に対応しているか確認する時と、居酒屋で取り敢えずツマミを頼む時にほっけが使える。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「全角スペースが紛れてsyntax error、というツイートをちらほらみかけるんだけど言語仕様でUnicode許すならカテゴリZsを空白扱いにすればいいのに」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています 「Unicode 13.0 がもうすぐ公開か。……このバージョンで、久しぶりに新しい面が使われる。そう、漢字のために第2面、6.5万字強を割り当てたにも関わらずほぼ使い果たし、またもや漢字専用に割り当てられた第3面が今回正式デビューすることになるのだ。」 / Twitter
ドッグさんはTwitterを使っています 「unicode-org 公式の i18n ライブラリ ICU4X が ICU4C や ICU4J での経験を生かして新たに実装されてる.実装は Rust .ECMA-402 互換の API を提供し,(多分 C ABI を通じて)複数のプラットフォームや言語で使えるようにするらしい | 'unicode-org/icu4x' https://t.co/GiILG5jWFv」 / Twitter
unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
ドッグさんはTwitterを使っています 「今のところ,対応予定のプラットフォームはブラウザ, iOS, Android, WearOS, WatchOS, Flutter, Fuchsia で,対応予定の言語は Rust, JavaScript, Objective-C, Java, Dart, C++.ブラウザ対応は Wasm を使うのか」 / Twitter

言語指定

Kazuho OkuさんはTwitterを使っています 「Unicodeで文字コードがユニバーサルになったと思ったら言語指定タグを別に用意しろって言われるの、ISO-2022のほうがマシじゃね、ってなるし、Unicodeは言語指定文字を追加すべき」 / Twitter
Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「もうそういう場合は仕方ないんじゃないかと思う (ニュートラルロケールっぽいものを勝手に仮定してその結果中華フォント問題などが起こっても仕方がない)。 ただ、特定言語を表示することが明確なときには、少なくともマークアップ側でページ単位の lang くらいはちゃんとしてて欲しい感。」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「CJKTのフォントの選択で、一番どうしようもないのは、マークアップに言語情報がなく、エンコーディングもUTF-8等CJKTを特定することのできるものでなく、OS、アプリのロケール設定もCJKT以外で、Accept-Languageの設定もCJKTを含んでいない場合ですな。」 / Twitter
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「ちなみに、マークアップの言語指定も使い物になるかどうかは微妙な話で、例えばCJKT間で機械翻訳をアドオン等で行ってコンテンツを置き換えたのに、lang属性が変更されなかった場合ってのも考えられる。」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@d_toybox GitHub の OGP Image がその状態だとか何とか。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho そういう機構自体は言語タグという形でUnicodeにも用意されていたけどdeprecatedになったような... https://t.co/0ow2JpJFT0 まあ全部UnicodeのHan unification時にコード空間使い過ぎとか言われてテケトーにされてしまったのがダメ…」 / Twitter
タグ (Unicode) ‐ 通信用語の基礎知識
SODA NoriyukiさんはTwitterを使っています 「ISO-2022 の stateless 版だった DIS 10646.1 の漢字部分をまるまる置き換えて今のUnicodeになったんだけど、まるで内容が違うから再度DISを出して検討すべきなのに、そのフェーズをかっとばして拙速に決めた結果がこれ(←当時の日本のオッサンはずっと恨んでる」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「言語指定文字は 20 年以上前に提案されて却下されてた気がする。ISO-10646 の原案は ISO-2022 の stateless 版だったんですけどねえ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「その当時、欧米人は16bitで収まると本気で思ってたのよねえ。 康煕字典だけで47,035字あるわけで絶対無理っていう意見は当然あったんだけどunifyすればなんとかなるデショっていう意見の方が通ってしまって、結局足りなくなってその後サロゲートペアを導入することに…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと坂村健氏によると、「16bit化ですら、我々は我慢してるんだぞ(それ以上はそっちが我慢しろ、足りないとか知ったことか)」みたいなノリあったとの話も。」 / Twitter

UTF-8(Windows)

Hideyuki Tanakaさんのツイート: "BOMってバイトオーダー示すためのものなのになんでバイトストリームであるUTF-8にBOMをつけてもいいような仕様にしたのか、Unicodeコンソーシアムの考えることはホンマわからん。(´・_・`)"
なかのん&マジックさんのツイート: "charsetをHTTPヘッダとかで指定できないローカルファイル向けじゃないのかなぁ。昔、HTMLエディタを自作してたけど、一番困ったのは、読み込んだファイルがASCII文字しかない場合に、どのエンコーディングを前提とするかって事。新しく非ASCII文字を入力して保存する場合、さて、どうする?ってなる。"
なかのん&マジックさんのツイート: "正直、なんで、UTF-8のBOMがそんなにうざがられてるのか理解できないんだよな。一部のアプリが適切にそれを無視できていないなら、悪いのはそのアプリの方なんで。"
なかのん&マジックさんのツイート: "テキストエディタがCRLFか、LFのみにしか対応してなかったら、そのテキストエディタは使えないって思うでしょ?"
なかのん&マジックさんのツイート: "逆に言えば、なんで未だにローカルファイルに文字コード情報がファイルシステムとかで記録・提供されないのよって思う。"
なかのん&マジックさんのツイート: "そもそも、U+FEFFは"ZERO WIDTH NO-BREAK SPACE"なので、これをBOMとか呼んでるのがそもそもどうなのって感じもする。昔、ブラウザの文字化け回避に、HTMLに<!-- あ -->とか入れてたハックみたいなもんよね、あれ。(「あ」だったかどうかちょっと自信無いけど)"
なかのん&マジックさんのツイート: "なので、あれを入れてる時点でASCIIなファイルではないので、これをUTF-8非対応のアプリに読み込ませるのは人の愚行なわけで。"
なかのん&マジックさんのツイート: "今どき、まともなテキストエディタならBOMを標準で入れたりしないだろうし、大抵のUTF-8 awareなアプリならそれを無視するだろうしで、どういうシナリオで問題になるのかよく分からない。"
KIMATA RobertHisasiさんのツイート: "Windows 標準及びごく少数の許可されたソフトウェアのみで作業する必要があり、しかも、BOMなしUTF8が必要だったため、メモ帳でJScriptファイル書いて、ADODBオブジェクトでBOM付きUTF8ファイルとして保存した上でバイナリとして読みだしてBOM分を飛ばしてから保存と言う作業をしたことがあり(笑)… https://t.co/mHP1FbgI78"
一ノ瀬 いろはさんのツイート: "notepad.exe が意図的に入れようとしなくても勝手に入れるぐらい。… "
一ノ瀬 いろはさんのツイート: "シェルスクリプトなどで使われる shebang の扱いと PHP ぐらいかな?… "
一ノ瀬 いろはさんのツイート: "どっちも書くのはツラいですね。 しかしnotepad.exeしか与えられない環境というのは意外と多く。… "
なかのん&マジックさんのツイート: "メモリ4GBを基本的人権とか言う前に、もっと大切なことがある気がしてきますな……"
なかのん&マジックさんのツイート: "とりあえず、みんな使っていないであろうメモ帳に変更があったからといって、なんでみんな反応したりするのかよく分からん。"
Piro/Linuxコマンド操作漫画連載中さんのツイート: "法人サポートではこのファイルをこれこれこのように編集して下さいと案内する事がありますが、そこでBOMを強制的に付与する物が標準的に使われてしまうと、恐らく要らぬトラブルが増える事が予想されます。… "
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows 10 のコントロールパネルの地域の設定で「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れると、今までデフォルトでShift JISだったもの(メモ帳をはじめ…)がUTF-8(BOM無し)になってくれてありがたいです。(それで不具合出る古い日本語アプリは捨てよう)… https://t.co/flgTiuKVCN"
村上真雄 MURAKAMI Shinyuさんのツイート: "この設定をすると「メモ帳」の「名前を付けて保存」で「文字コード: ANSI」(デフォルト)だとBOM無しのUTF-8、「文字コード: UTF-8」だとBOM付きのUTF-8のファイルになります。"
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows用語の「ANSI」は、ANSI(米国国家規格協会)の標準規格じゃないのに、誤った名前で使われ続けているらしい: https://t.co/RvWOzy3rZa そのあたりの謎なWindows用語も直してほしいものです。"
Windows code page - Wikipedia
なかのん&マジックさんのツイート: "あの設定を変更すると、壊れるアプリは多々ありそう……古いアプリというより、古くからあるアプリの互換性が心配。特にインストーラとか、メンテがそこまで活発じゃなさそうな部分。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・… "
なかのん&マジックさんのツイート: "あー、Unicodeアプリ以外全滅ですか。さすがに使えないですね……単純に古い開発環境で作ってるだけの新しいアプリも全滅しちゃいますね。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WinNT系カーネルもそうで、W系WinAPIは全てUTF-16(昔はUCS-2のLE表現)。 UTF8系WinAPIを用意すべきなのに、A系APIをOSコードページ指定(システムグローバル)を65001にすることで、UTF-8利用可にするという頭の悪い方向で頭が痛い… https://t.co/EZyfCcKfgj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1903からアプリ毎のUTF-8設定できるのね。知らなかった。 ただ、WIN32_FIND_DATAA など cFileName が MAX_PATH byte しか無いため、非ASCIIで87文字以上の長いファイル名が格納できないという、MBCS版(SJIS129文字まで)より、さらに制限のキツいアプリしか作れない。 https://t.co/1AnPmGpEfB」 / Twitter
K.TakataさんはTwitterを使っています: 「manifestでアプリ単位でUTF-8に切り替えできるようになったので十分じゃないのかな。 https://t.co/V0T47xXIgI UTF-8なAPIだけを用意してもCRTが使えないのであまり意味がないし https://t.co/kqfXMGhXRx」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それと、IPMsg で実際に W系APIを UTF-8 API的なラッパーを用意して、UTF-8で動くコードを書いてる経験からすると、CRTは(UTF-8明示対応が理想だけど)実はmbcs系を明示的に使わず、strXXXみたいなASCII用関数を使う限り、ほぼ問題ない。(UTF-8はASCII系との互換性が高い) https://t.co/lvFt3kI1iA」 / Twitter
ipmsg/tapi32u8.h at 733f2515b34f7a5f84342448540b1a61d9f1dd0b · shirouzu/ipmsg
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まずいのは mbsstr とか MBCS版CString のような MBCS前提に書かれたライブラリ。たとえば、VC6 の CString Find に UTF-8を食わせると破綻した経験。 (なお、VS2005のCStringだと leadbyte 終端時の \0飛び越しは無くなっていた) https://t.co/bCkJtweS6V」 / Twitter
私的メモ(2004年01月版)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば「アプリ毎コードページ設定化は無理?」と思っていたのだけど、意外と大丈夫だったのね。 コモンダイアログ等のDLLはMSさんがUTF-8対応したのだろうけど、それ以外で未対応DLLを食うパターンが無いかの確認はアプリ側でやれよ、ということかな。 https://t.co/fvAxXRJEcQ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、アプリ毎の ANSI API の MBCS/UTF8解釈切り替えは、DLLの存在を考えると、たぶん無理。」 / Twitter

Julia

ChuuiさんはTwitterを使っています 「@uchan_nos Julia言語は、REPL環境に「 \lambda タブ」と押すと、λ が入力できる機能が標準で備わっている。 Julia公式 unicode入力: https://t.co/SGQkkNb6UH 各エディタの場合は拡張機能で。 次のブログ、興味深い記事でした。 &gt; Unicodeプログラミングのすゝめ https://t.co/PRwjmS2h9n」 / Twitter
Unicode Input · The Julia Language
Unicodeプログラミングのすゝめ - りんごがでている

@rockridge07

Rockridgeさんのツイート: "Fx42:Unicode v8.0をサポート。参照:https://t.co/hR5TaueMuf / “1183209 – update Unicode character data to version 8” https://t.co/3lbspBIwRe"
Rockridgeさんのツイート: "Fx53:Unicode v9.0をサポート。参照:https://t.co/5eJdHuOEmL / “1281448 – update Unicode character data to version 9.0” https://t.co/QtHgUt197u"
Rockridgeさんのツイート: "Fx56:Unicode v10.0をサポート。参照:https://t.co/XCqHzGprAP / “1376834 - Update Unicode data to release 10.0” https://t.co/SyxYcNNjNa"

@d_toybox

なかのん&マジックさんのツイート: "これ、Unicodeが悪いかのような書き方してるけど、欧米の言語で考えればUnicodeのアプローチ正しいでしょ? 欧米の言語ごとに同じアルファベット定義させる気? lang属性はそういう意味で必要なのよ。 / 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? https://t.co/8eoYzLWlr0"
1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? (1)
なかのん&マジックさんのツイート: "あと、ページ全体のlang属性もきちんと指定しておかないと、例えば英語の設定しかしてないブラウザで漢字交じりのUTF-8なページを表示した時に、日中韓どのフォントで表示すれば適当なのかはヒントが他に無いのよね。実際にこういうトラブルで定期的にバグとしてFirefox側に報告来てたりするのよ。"
なかのん&マジックさんのツイート: "Firefox的にはユーザ自身が設定の言語の所に、自分の使えるCJKの言語を追加して優先順位を適切にしておくと、それを優先するよって形にはなってるんだけど、まあ、英語版のNightly使ってる中国系の人からの報告が常にやってくる。"
なかのん&マジックさんのツイート: "ちなみにGeckoは歴史の長いエンジンなので、過去からの互換性のために最後までヒントが無かったときのフォールバックで日本語が最初に来るので日本人は中々見かけない問題ではある。他のエンジンはどうしてるのか知らない。"
なかのん&マジックさんのツイート: "ブラウザの実装やってる側からするとこの記事とか本当にアホかって思う。検索エンジンの方だけ向いて、ユーザの方を向かずにWeb作ってるからこう判断しちゃうんだろうな。 / Google「言語指定にlangは使うな」/公式発言 https://t.co/xFuK2b8j6L"
Google「言語指定にlangは使うな」/公式発言
なかのん&マジックさんのツイート: "Unicodeのコードテーブルで#(U+FF03)の定義を確認したけど、FULLWIDTH NUMBER SIGNと、<wide># だけだし、# (U+0023)の方もNUMBER SIGN、pound sign、hash、crosshatch、octothorpeだけで、music sharpはU+266Fと案内してるよなぁ。"
なかのん&マジックさんのツイート: "UTF-16とかBOMは間違ってないと思うけどなぁ。少なくとも、処理する上でUTF-8は無いわーって思う。伝送にはUTF-8以外に無いわーだけど。"
なかのん&マジックさんのツイート: "'EXCLAMATION QUESTION MARK' (U+2049) / 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ https://t.co/R9KQ6G3cul"
「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ
Yuzuru Suzukiさんのツイート: "「々」が漢字ではなく記号扱いだからバリデーション通らない超基本のやつだ。… "
Atsushi Sasakiさんのツイート: "【悲報】ゆうちょPayでは「佐々木」という姓が名前として入力できない。なんだこれ日本に佐々木姓が何人いると思ってんだ……… "

@makoto_kato

Makoto Kato ︎︎さんのツイート: "emojiはUTF-32は解決できるかもしれないけど、IVSは解決できないし、クラスタは解決できないので、あのruiさんのエントリになるほどと思ってる人はunicodeのスペック読み直せ"
Makoto Kato ︎︎さんのツイート: "個人的にはJPって絵文字並べると日本の国旗ができるスペック、あれどうなのよだし、そのタイミングで文句言えなかったのは自分の守備範囲のせいかも"
Makoto Kato ︎︎さんのツイート: "元号が増えるとICUのアップデートが必要"
Makoto Kato ︎︎さんのツイート: "なので、ICUを使ってるコードはすべてアップデートしないといけないんですが、誰が調査するんですかねー。(そもそもそのアプリで日本の元号表示したりするのかは置いておいて)"
Makoto Kato ︎︎さんのツイート: "NEX久々に乗ったけどまだdouble byte言ってる。そもそもIDNとかあるのに何言ってるんだろ。作ったNTT Com?の人がおそらく40代以上なんだろうな… "
Makoto Kato ︎︎さんのツイート: "triple bytesならいいのかといつも突っ込みたくなるやつ"

@kazuho

Kazuho Okuさんのツイート: "今までマルチバイト対応が少なかったのを欧米圏の人たちの他文化への理解の欠如のせいにするツイートが散見されるけど、彼らからしてみれば、対応しようにも漢字読めないから正しい表示にできているのか判断しようがなかったんですよ。絵文字が流行るまでは。"
Kazuho Okuさんのツイート: "アラビア語の表示が正しくできてるかデバッグしたことのある人だけが、英語圏のプログラマに斧を投げなさいって感じ"
Kazuho Okuさんのツイート: "いっタイなんて書いてあるのか、わかりませんからねぇ https://t.co/Iexqryl8Xi"
Kazuho Okuさんのツイート: "実際、ASCII+EUC/ShiftJIS自体に発生した様々な問題をユニコード(UCS2)で解決しようというのはアメリカ主導の提案だったわけだし、彼らにとっては、文化的無理解からやりたくなかったのではなく商業的理由でやりたかった話"
Kazuho OkuさんはTwitterを使っています 「utf-8でBOM使うのがおかしいというのはunicodeの世界しか見ていない話で、文字コードの推定やる場合には便利だし、実際application/javascriptの場合は推奨されている推定手法です。ベストな解は、もちろんcharsetを指定することだけど。 https://t.co/AToDQAGcw9」 / Twitter
RFC 4329 - Scripting Media Types

@rui314

絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note
Rui Ueyamaさんのツイート: "欧米の人たちはマルチバイト文字圏の苦労がわかってないし、わかっていても意図的に無視してきた、みたいなこと、いわないほうがいいと思いますよ。実際に払われてきた苦労をわかってないのはそういう人たちのほうで、しかも僕も含めた開発者を人種差別的な意味まで含みながら侮辱しているだけなので。"
Rui Ueyamaさんのツイート: "UTF-8の認識が15年前くらいからアップデートされていないひとがわりといるのかも? Unicodeは2^32とかではなく最大でも1,114,112文字に制限されているので最長でも4バイトだし、冗長なエンコーディングは禁止されているのでそういうのは単に不正なバイト列。"
Rui Ueyamaさんのツイート: "@anohana @tenpoku1000 @mkamimura そうですね。それと、ほとんどのデータや文章は最初から順番に読んでいかないと意味がわからないので(HTMLや自然言語の文を途中から読んでパーズしたりできない)、n文字目にO(1)でシークできるというのは実際はほとんどメリットないと思います。"

@a4lg

Tsukasa #01 [要出典]さんのツイート: "ある資料の収録字を調べる → Unicode 中には無い → IDS で検索 → 中国国家図書館が、各地方志の電子化を行う過程で 4000 字以上の漢字を IRG に提出し、――その多くが今も未収録なことを発見する (IRG N1199 等)。"
Tsukasa #01 [要出典]さんのツイート: "奇妙な字がたくさん。まだ Unicode に登録されていない漢字が多いという事実に圧倒される。 https://t.co/m5KhzR53GP (提案[この時点では正式な proposal ではない]) https://t.co/2fUdm0vutW (グリフ一覧)… https://t.co/xGe2XEzdey"
Tsukasa #01 [要出典]さんのツイート: "念のため強調しておくと、Unicode 登録準備が進められているものを含めると、9万以上の漢字が Unicode (と、おそらく 2 年以内にそこに収録されるワーキングセット) に収録されているのだ。そこに漏れているものがまだまだ多いということは、………いやぁ、おそろしいねぇ。"
Tsukasa #01 [要出典]さんのツイート: "@wtnelson @sarasvati635 Yes, I agree that. The only (and the biggest) problem is, this ideograph got too famous (about its stroke count) to reject. It feels more li… https://t.co/J8pJeS9nog"
William T.さんのツイート: "@sarasvati635 @a4lg I am angry about UK-02960 「⿱䨺龘」 UK “additional evidence” is 和製漢字の辞典 that says: 存在未確認 UK says that UCS "does not encode idiosyncratic, pers… https://t.co/x0Mc38nVJ9"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK "単なるデマ" として潰すタイミングを逸した感 (デマだったとしても、それを前提として載せてしまっているものも笹原氏の本含めてありますし……)。"
Tsukasa #01 [要出典]さんのツイート: "oO( というわけで、それこそ 龍*n とか 雷*n の自称古文とかは広がらないうちに潰………れてるのかな。まぁ今はあまり広がってないが、流石にこれをエンコードしようっていうのなら強く反対。 )"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK これ単独ではないでしょうが、間違いなくひとつ挙げられるのは、今昔文字鏡等の宣伝があるかと。"ちくわ" "慶應" とかもその類ですし。"

@tanakh

Hideyuki Tanakaさんのツイート: "⿸ こんな文字とかあったんすね(´・_・`)"
Hideyuki Tanakaさんのツイート: "漢字構成記述文字なんてものが定義されてたのか(´・_・`)"

@ohashimasaki

Masaki Ohashiさんのツイート: "結局のところ、入力チェックを設けるよりも、所定の文字に関してだけ自動的に置換をするようにしといたほうがはるかに簡単だしスムーズだよね。どうせ0-9A-Za-zとカタカナと一部の記号だけなんだから…「全角」とか「半角」とかで決めるから意味が分からなくなる。"
Masaki Ohashiさんのツイート: "もし「全角」「半角」をチェックしたいなら、自分または顧客が「全角」「半角」と考える文字の範囲をあらかじめ決めておかないとチェックしようがないけど、そもそも意味あるのかw たいていは顧客の社内文書のスタイルに起因するものなんだろうけど。とくに「全角」限定は悩ましい。"

@anohana

Shiro Kawaiさんのツイート: "論文のアルゴリズム実装してみる時は、最近ではギリシャ文字とかあまり抵抗無く使うなあ。 上付き下付き文字を ^+ とか _1 とか書くのがいまいち、と思ってたんだけど、考えてみたらUnicodeにあるから使えばいいのか。U+2070 ~ U+209Cあたり。… https://t.co/W8RwPhGeG1"
Shiro Kawaiさんのツイート: "SchemeはUnicodeの一般カテゴリで識別子を定義してて、全角数字はNdなので最初の文字としては使えない(2文字目以降は可)。が、Gaucheは今のところ「数字として解釈できないシンボルっぽいやつはシンボルでいいや」という昔のLispのユルさを引きずってる。 gosh> (define 1 2) |1| gosh> (+ 1 1) 4… https://t.co/UdfDqGRZHG"
Shiro Kawaiさんのツイート: "これはやっぱりあんまりなのでそのうち変えるかも。"

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicode上では「.toUpperCase() は文字列の長さを変えない」という仮定はもはや成り立たない。 https://t.co/A8dFwX7ClY Pythonの.upper()も同様。 https://t.co/UuSmandUfP」 / Twitter
Marcin Koziej: "TIL the assumption that string length does not ch…" - chaos.social

decodeunicode.org
📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
文字コードDB
FileFormat.Info · The Digital Rosetta Stone
Unicode Standard
History of Unicode Release and Publication Dates
rusticstuff/simdutf8: SIMD-accelerated UTF-8 validation for Rust.

国際化

MS

リソース DLL

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのLCIDは、地域を指定した個別ロケールIDと親(総称的・ニュートラル)IDとが用意されていて、親IDリソースだけ作れば、個別ロケール環境に応じて自動フォールバック可能。 だが、繁体字だけは親IDがVS2017から選択できず、リソース言語IDを直接0x7C04に編集する必要あり…後付けなのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、直接編集した後に VS2017 で参照すると、こんな表示に。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10上のHK/TWの両環境で、正しくフォールバックされることを確認。 (ただし、Win10から対応した可能性も残る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(HK)からも、0x7c04なリソースにフォールバックされることを確認。 苦労して MUIの枠組みを使わなくても感(笑)"

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "フランス語Windowsだと、ASCII部分のキーアサインも随分違うのね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダウンロードフォルダは Téléchargement、デスクトップは Bureau と表記されていた。へぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ドイツ語Windowsだと、YとZだけが入れ替わっている。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "イタリア語で、第二キーボードを日本語にするときは「Giapponese」。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アラビア版Windowsは、全てが鏡像の世界…単に「文字が右から左に」というレベルではなかった(笑) ボタン配置もタスクバーもごみ箱も、すべて逆さま。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そう言えば、最初はWindowsも文字列だけ右から左にしようしたが、矛盾が吸収できず結局、全て逆さまにした、という話を大昔に読んだ気がする…が元ネタが思い出せない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(英語)でも(フォント=MS Shell Dlg)同時多言語表示できることを確認。 (昔はUNICODE版でもフォントが無く▮▮表示に。ちなみにANSI版等でUNCODE変換が失敗した場合は??表示に)… "

Gakuさんのツイート: "Win32APIのGetNumberFormat 関数を使って環境にあわせたロケールの数字形式に従って書式化されてはいかがでしょう。 https://t.co/lRY3KP9zxF… "
GetNumberFormat 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 このへんを眺めていたところでした。 https://t.co/7crsCHMuNG 日時その他もなかなか頭が痛いですが(笑) https://t.co/Uqho9drVT6… "
Locale and Culture - Globalization | Microsoft Docs
GetUserPreferredUILanguages function (Windows)
Multilingual User Interface (MUI) Support - NyaRuRuが地球にいたころ
MUI
Multilingual User Interface API - Google 検索
日本語のWindowsは礼儀作法にうるさい?――英語環境で動作するコードが日本語環境でNGなワケ:その知識、ホントに正しい? Windowsにまつわる都市伝説(86) - @IT
英語版と日本語版、どっちのOS環境が使いやすい?:山市良のうぃんどうず日記(23) - @IT
Shirouzu Hiroaki(白水啓章)さんのツイート: "今更ながら(多言語リソース/DLLを直接使う場合に比べて)MUIの枠組みを使うメリットが手間の割に見えないな。 https://t.co/Q7RfWu0eUZ"
Multilingual User Interface | Microsoft Docs
言語パックをストアから入手可能に ~「Windows 10 Insider Preview」Build 17074 - 窓の杜

Mozilla

Rockridgeさんのツイート: "MozillaはFirefox本体のリリースとロケールのリリースを分離することや、ロケール変更を即時に反映させることができるように、基盤整備を進めている。 / “Gecko Locale Selection remodel co…” https://t.co/Ii5ZBZAucY"
Rockridgeさんのツイート: "Fx55:日時の表示フォーマットについて、OSのロケールではなくブラウザのロケールを基準にするようになった。参照:https://t.co/Jyo42LH9H9 / “1339650 - Introduce mozIntl.Da…” https://t.co/cHPNVoaNvb"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに「翻訳記憶」のダウンロード機能が実装された。翻訳記憶は承認済み翻訳の集合体。ダウンロード機能はこれを別プロジェクトなどで再利用可能にするものだ。 / “Reuse…” https://t.co/9SWanizaYw"
Rockridgeさんのツイート: "Firefox(デスクトップ版・Android版)やThunderbirdなどの日本語ローカライズに関する進捗を確認できる。 / “Mozilla Localization Team Japanese” https://t.co/S5TET0Hbso"
Mozilla Localization Team Japanese
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに最大文字数の超過を防止する機能が追加された。残り文字数も表示される。また、検索の速度もアップしたそうだ。 / “FTL, RTL, Tetris and othe…” https://t.co/dIuDwTxr0G"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonで、外部から利用可能なAPIの開発が進められている。将来的にバックエンドとフロントエンドを明確に切り分けるつもりらしい。 / “Exposing Pontoon D…” https://t.co/widocPNsDu"
Rockridgeさんのツイート: "将来的に、Firefoxは個別のローカライズ版がビルドされるのではなく、単一のビルドにWebExtensionsベースの言語パックを載せる形へと移行する。ある意味で昔に近い形態といえるか。 / “Switching langua…” https://t.co/DDHKuoSz5v"
Rockridgeさんのツイート: "ローカライズ用リポジトリの統合(cross-channel)を達成した現在も、Firefoxのリリース日から遡ること2週前の水曜日がローカライズの期限となっており、それを過ぎると翻訳が製品版に反映されないらしい。 / “On c…” https://t.co/bjoeaZpje0"
Rockridgeさんのツイート: "Fluentをベースにした新しいローカライズ用フレームワークへの移行が開始された。 / “Migration of Preferences strings to Fluent” https://t.co/Ej6qNMQYcG"
Rockridgeさんのツイート: "GeckoのローカライゼーションAPIのスキームが2017年中に刷新され、基盤整備ができたので、2018年はFluentベースの新しい仕組みでローカライズが行われていく。まずは設定画面のUIから。 / “Multilingual…” https://t.co/H6NRzlPjC5"
Mozilla L10N Glossary · mozilla-japan/translation Wiki
Rockridgeさんのツイート: "ローカライゼーションに関するMozillaの汎用スタイルガイド。 / “Mozilla general style guide · GitBook” https://t.co/YiTw3aDvzG"
Mozilla general style guide · GitBook
Rockridgeさんのツイート: "Firefoxの設定画面のUIについて、Fluentベースの新しい仕組みでローカライズできるよう移行作業が行われている。Firefox Nightly 61で完成か。 / “L10n Report: March Edition …” https://t.co/mISsaGn87G"
L10n Report: March Edition | Mozilla L10N
Rockridgeさんのツイート: "Fx62:UIテスト用に疑似ローカライズ機能が搭載された。翻訳を待たずして特定のロケールに切り替えた場合のUIをチェックできる。参照:https://t.co/BM1xMtda9X / “Pseudolocalization i…” https://t.co/g0908Rpuqo"
Rockridgeさんのツイート: "Fx64:新しい言語パックをインストールした場合、関連する辞書もインストールされるようになった。 / “1479008 - Install related dictionaries when a new langpack is …” https://t.co/BJS1VcxVLS"
⁨L20n⁩ • Home
Mozilla in Japanさんのツイート: "本日、新たにFluent 1.0をリリースしました!新時代のローカライゼーションを体験してください😎 https://t.co/l0Zdxldgim… "
Makoto Kato ︎︎さんのツイート: "FluentはFirefox OSの残骸の一つだけどね"
chikoskiさんはTwitterを使っています 「今の所の案: - 対応する言語を 14 に絞る。これで 95% がカバーできる - 重要なコンテンツを機械翻訳で提供する。これらは編集できないものとする。 - 英語版が変更されるたびに、翻訳版も更新する - コミュニティによる編集を通じて、機械翻訳の質を向上するシステムを提供する」 / Twitter
chikoskiさんはTwitterを使っています 「"8 languages cover 90% of the accept-language headers received from MDN users (en, zh, es, ja, fr, ru, pt, de)" とあるので、日本語は翻訳対象に残るんじゃないかと想像してます。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNのローカライズの件が、ああなりそうなところで、これやるんですかねー https://t.co/NyCvL3LghN」 / Twitter
【オンライン開催!】【第28回!】みんなで MDN を翻訳しよう!翻訳コミュニティ定例ミートアップ! 2020年11月21日(土)開催 - Mozilla Japan コミュニティ | Doorkeeper

gettext

gettext - Wikipedia
ISO 639 - Wikipedia
ISO 3166 - Wikipedia
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
C言語系/memos/gettext - Glamenv-Septzen.net
gettext によるメッセージ処理
GNU <CODE>gettext</CODE>ユーティリティ:
GetTextを用いたローカライズ方法 - Conyac
Manual - Documentation - Zend Framework
本の虫: Boost.Localeがクソすぎる
自然言語(ロカール)の選択
Exgettextの話
Shirouzu Hiroaki(白水啓章)さんのツイート: "gettextを真面目に使うなら、en.poも作った方が良いという話。 (ただ、識別子を考えなくて良いというメリットが…) https://t.co/4Kh6eLHFE9"
gettextを使う場合の注意点 – FLAMA技術Blog
gettextとバージョン管理システムの相性の悪さを解消する案 - ククログ(2013-11-14)
i18nしてますか?(gettext+PHPその1):海外でも通用するエンジニアになる:エンジニアライフ
PHP国際化プログラミング - gettextを使った国際化
GNU gettext utilities
Gettextによるウェブアプリケーションの国際化と地域化 (1/4):CodeZine(コードジン)
gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita

catgets

Man page of CATGETS
catgets(3)
X/Open catgets API - Oracle Solaris でのアプリケーションの国際化とローカライズ
IBM Knowledge Center - catgets() — メッセージ・カタログからのメッセージの検索
メッセージカタログ(catgets)
標準 C 言語国際化プログラミング - メッセージ

Internationalization API

Standard ECMA-402
ECMA-402.pdf
ECMAScript Internationalization API Specification
ECMA-402.pdf
Standard ECMA-402-archive
ECMAScript® 2016 Internationalization API Specification
ECMAScript® 2017 Internationalization API Specification
ECMAScript Internationalization API Specification
tc39/ecma402: Status, process, and documents for ECMA 402
ibm-js/ecma402: ECMA-402 JavaScript Internationalization API "shim"
ECMAScript® 2019 Internationalization API Specification
Intl - JavaScript | MDN
WebKit、Safari 10でECMAScript国際化API「ECMA-402」をフルサポート。 | AAPL Ch.

Twitter

Fadisさんのツイート: "小数点は.とは限らなくて,を使う地域も存在する。一方JSONは小数点に.を使うことを要求している。従って、ロケールを指定せずにscanf/printf系の関数でJSONの数値を読み書きしてる実装は全てバグっている"
Fadisさんのツイート: "C言語の規格はscanfの浮動小数点数の符号の後eの前までのフォーマットについて何も規定してないから、ロケール設定すれば期待通りの動きをするかどうかは環境次第か"
Fadisさんのツイート: "POSIXとMSDNのドキュメントのレベルでロケールの影響を受ける事が書かれてる"
Fadisさんのツイート: "@n_soda あっ 確かにmainに入った時点では環境変数で設定されたロケールは反映されてないですね"
SODA Noriyukiさんのツイート: "@fadis_ 多国語対応するために setlocale(LC_ALL, "") を追加した瞬間にバグるの、怖いですねえ…"
SODA Noriyukiさんのツイート: "@fadis_ 正確に書くと「setlocale(LC_ALL, "") ないし setlocale(LC_NUMERIC, "") を呼んでいるプログラムはバグっている」ですね。 setlocale() を一切呼ばなければ、デフォルトである "C" locale になりますから。"
渋川よしきさんのツイート: "i18nをどこでやるのか、という問題もある : 良いエラーメッセージの書き方 by @castanea on @Qiita https://t.co/vwOe5ovAxY"
良いエラーメッセージの書き方 - Qiita
渋川よしきさんのツイート: "汎用のツリー差分取得エンジンみたいなのが欲しい"
Atsushi Enoさんのツイート: "DOMツリーを辿るとき、われわれはだいたいpreceding-siblingを左側に、following-siblingを右側に向かって読みに行くと思うけど、イスラエルのハカーとXPath実装の話をしていて話が全然合わなくて、ふと気づいて聞いてみたら彼らはわれわれと逆順にツリーを… https://t.co/80MlUkUdnx"
Rui Ueyamaさんのツイート: "アラビア語やヘブライ語ではカレンダーは右ではなく左にめくると次の月になる、というバグが報告されて、そこまで逆なのかよーと思いながら直したことがあった。そもそもアラブはイスラム暦なのではないか?と思って聞いてみたらグレゴリオ暦でもOKというので、国際化わからんすぎると思った思い出。"
Rui Ueyamaさんのツイート: "昔UIやってたころにmmddyyyyとddmmyyyyの違いでぐぐる検索の日付指定検索がカナダで何週間も使えない(アメリカでは使えた)というバグを作ってしまったことがあるので、国際化って英語圏vs非英語圏っていう話でもないんだよな。カナダでそんな問題になってるとはよくわかってなか… https://t.co/HLl0sopUfi"
hnw (@hnw) | تويتر
Shirouzu Hiroaki(白水啓章)さんのツイート: "数値のカンマ・ピリオド(ドイツ・スペイン・ポルトガル・イタリア語圏では意味が逆に)、英米式だと勘違いする人が居るのね…うーむ。 https://t.co/KgTSYYX8qI https://t.co/nStoBGLDMh"
カンマとピリオド | 貿易よもやま話
Shirouzu Hiroaki(白水啓章)さんのツイート: "「インド、バングラデシュなど南アジアでは…「12,34,567.89」となります。…桁の区切り方が独特で、最初は3桁で区切りますが、その後は2桁ごとに区切ります。」 「カシオがこのインド形式の桁区切りをする電卓(3桁式との切り替え可能なもの)を現地で発売したところ、大人気になったそうです」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「FastCopyだと 30分で75,256MB == 75MBしかコピー出来ていない」と勘違いしてしまったとのこと。 "I noticed FC had only copied 75,256 MB ( euh ...75 megabytes) in half an hour." https://t.co/KgTSYYX8qI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "誤解は無くなりそうですが、さすがに「75G256M」は気色悪い気が…(笑) (似た表記をしているアプリケーションはあるのかしらん?)… "
Dan Kogaiさんのツイート: "いや慣れの問題でしょう。今だって1m83cmのような表記はいくらでもあるし… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡体中文環境での利用が第1位で、アラビア語(エジプト)が第4位という驚きの結果。 やはり測定は大事。"
Shuuji Kajitaさんのツイート: "海外で△が通じないという話、研究室で緊急調査した結果がこちら。×は通じるけれど、○と△は通じなかったり誤解される危険性が高そうです。… "
Localization standards reader 4.0
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「kdiff3のショートカットキー、国際化されていないのしんどい(Ctrl + Shift + 数字を使うの素人仕事すぎ)。」 / Twitter
くいなちゃんさんはTwitterを使っています 「フランスでは、小数点にピリオド「.」ではなくカンマ「,」を使うので、「1.5」は「1,5」と表すのはご存じの通りですが、すると座標の「(1.5,2.5)」は「(1,5,2,5)」となって混乱しないのか疑問に思って調べてみました。 どうやら座標はセミコロン「;」を使って、「(x;y)」と表すようですね!」 / Twitter
Shinji KonoさんはTwitterを使っています 「xボタンで決定は洋ゲーやってる人には常識。⚪︎に肯定的な意味はないらしい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)では、小数点はピリオドでもカンマでも可だが、桁区切りはスペースのみ。 一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけと。 https://t.co/FRzQQ5vB79」 / Twitter
小数点 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)の起源はメートル法=フランスだけど、一方で他国基準の国際統一に、最も抵抗しそうな国がフランスかも?という疑念もあったり(笑) ---- 「一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけ」」 / Twitter

クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017 - Publickey
クックパッドの海外展開プロダクト開発ノウハウとは(後編)~ORは「オワ」か?「オレゴン州」か? 問題。Cookpad TechConf 2017 - Publickey
Mozilla、ローカライズのための仕様とツールを提供する「Fluent 1.0」を公開 | OSDN Magazine
リストのローカライズに便利なIntl.ListFormatコンストラクタ | フロントエンドBlog | ミツエーリンクス
geoloniaさんはTwitterを使っています 「Geoloniaが開発したオープンソースの住所正規化ライブラリ「normalize-japanese-addresses」(NJA)の最新のリリース「v2.5.0」を公開しました。ローカル環境のファイルシステムからデータをロードできるオプションが追加されています。 https://t.co/fwJZxQ4KZe」 / Twitter
住所正規化ライブラリ「normalize-japanese-addresses」にローカルファイルの利用に対応した新規リリースを行いました - Geolonia blog

diff

icdiff

Susumu MiwaさんはTwitterを使っています 「diff を side-by-sideで表示してくれる。GNU diff の --suppress-common-line -y --color よりは見やすい / “icdiff: side-by-side highlighted command line diffs” https://t.co/ALkpM2ABtt」 / Twitter
icdiff: side-by-side highlighted command line diffs
jeffkaufman/icdiff: improved colored diff

Difftastic

ドッグさんはTwitterを使っています 「新しい diff ツール difftastic.一般的な diff と違い,構文をパースして構文木ベースで diff を取るっぽい(スクショの reverse の部分見ると分かりやすい) | 'Wilfred/difftastic' https://t.co/5BAmzN98k6」 / Twitter
Wilfred/difftastic: a syntax-aware diff
ドッグさんはTwitterを使っています 「https://t.co/oNc7XHuczA うーんちょっとこの定義では厳しそうな雰囲気あるな」 / Twitter
difftastic/syntax.toml at master · Wilfred/difftastic
difftastic/syntax.toml at master · Wilfred/difftastic · GitHub
overloaded operatorさんはTwitterを使っています 「@Linda_pp これどうやって?木のdiffをするのはMAX SNP-Hardではなくて?」 / Twitter
ドッグさんはTwitterを使っています 「@gnaggnoyil README に How it works が追加されてますね.ダイクストラ法使ってると書いてありますが,詳細はよく知らないです」 / Twitter
uint256_tさんはTwitterを使っています 「引数与えなかったらクラッシュした... 日本語使ったらクラッシュした... (あとでPR送ろうかな)」 / Twitter

diff to html (diff2html) program - Stack Overflow
diffの動作原理を知る~どのようにして差分を導き出すのか|gihyo.jp … 技術評論社
文書比較(diff)アルゴリズム
diff - Wikipedia
www.ioplex.com/~miallen/libmba/dl/src/diff.c
diff-pdf - PDFファイルの差分を表示 MOONGIFT
objdumpのdiffをいい感じに取る方法のメモ - ももいろテクノロジー
Linux基本コマンドTips(102):diffコマンド(基本編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(103):diffコマンド(基本編その2)――テキストファイルの差分をcontext形式などで出力する - @IT
Linux基本コマンドTips(104):diffコマンド(応用編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(105):diffコマンド(応用編その2)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(107):patchコマンド――テキストファイルに差分を適用する(基本編) - @IT
Linux基本コマンドTips(108):patchコマンド――テキストファイルに差分を適用する(応用編) - @IT
LinuxコマンドTips(109):【patch】コマンド――テキストファイルに差分を適用する(応用編その2) - @IT
第97回 GNU diffからBSD diffへ切り替え:BSD界隈四方山話|gihyo.jp … 技術評論社
CUIで見やすい git コミットグラフ: git-foresta 作った - Qiita
Tree Edit Distanceと自然言語処理への応用 | Preferred Research
JavaScriptでテキストの差分を見るライブラリ - Qiita
linuxのdiffコマンドでファイルごとdiffを取るときに空のファイルを無視する方法 - 誰にも見えないブログ
コーディングスタイルと文章の認識 - in neuro
ドッグさんはTwitterを使っています 「"abc, abc" から "abc, " を削除した時,diff では "bc, a" を削除したと見なされるのは diff のアルゴリズム上仕方ないのかな多分」 / Twitter
HashiCorp Terraformに簡潔な差分フォーマッターと機密データの難読化が加わる
Terraform 0.14 Adds a New Concise Diff Format to Terraform Plans
Comlinkを使って手軽にWorkerを扱う | フロントエンドBlog | ミツエーリンクス

Git

OSDN

「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
「Git 2.0」リリース | OSDN Magazine
バグ修正が中心のリリースとなる「Git 1.9.3」が公開される | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
「Git 1.8.5」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine

xdelta - Wikipedia
こっそり始めるGit/GitHub超入門 - @IT
Git
git/git: Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
libgit2
libgit2/libgit2: The Library
渋川よしきさんのツイート: "git gcが内部でバイナリサイズのサイズ縮小で使っているアルゴリズムはこれかな?これをクリーンルーム実装しない限り、gitを非GPL v2にするのは難しいのでは。v3にしてくれないかねぇ。 https://t.co/2P1PCsxKV1"
NOKUBI Takatsugu野首貴嗣さんのツイート: "今のGnuPGはgpg-agentと通信すれば任意のアプリケーションから使えるようになっているので昔よりは扱いやすいはず"
アトラシアン、Gitクライアント「SourceTree for Windows 2.0」リリース。UI改善、高速化、Git Virtual File Systemサポートなど - Publickey
Introduction · Tig - Text-mode interface for Git
jonas/tig: Text-mode interface for git
.gitについて - Qiita
渋川よしきさんのツイート: "大学でgitを教えるかどうか、議論があるけど、あれのオブジェクトモデルはOSのファイルシステムをユーザランドで実現して、新から旧のスナップショットへのリンクを持っただけの素直な実装なので、Goならわかるシステムプログラミングを授業で扱ってくれたら一挙両得でお得ですよね #ステマ"
ブラウザ上で完結するGit組み込みエディタ作っている - mizchi's blog
ファイル更新に耐性のあるテキストタグ手法を考える - .mjtの日記復帰計画
高梨陣平さんのツイート: "Gitのメインな機能のみを500行のPythonで実装して学ぶとても便利な記事。 さらにHNのほうではGitの中身を学ぶための参考情報がこれでもかと紹介されている。Git以外の似た記事のまとめも https://t.co/ZbbGpYR6AT… https://t.co/tIEj1aX50t"
danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here)
Hacker News 100さんのツイート: "Write Yourself a Git (2018) https://t.co/G0XX7ql6iV (https://t.co/y0Hyhl4vxU)"
Write yourself a Git!
Write yourself a Git (2018) | Hacker News
GitHubのプッシュ障害をほぼゼロにしたProject Cyclop
Taku KudoさんはTwitterを使っています 「Google のPiper/CitC のエモさがあまり知られていないみたいなので紹介。クラウド上の単一コードツリーが CoW のファイルシステムとしてマウントされ、リビジョン番号(+開発者+作業領域名)が一意のディレクトリにマップされる。分散ビルドや自動テストがこの上で動く。 https://t.co/Nb43wPUDkc」 / Twitter
コラム - グーグルのクラウドを支えるテクノロジー | 第20回 Googleのソースコード管理システム ― Piper/CitC|CTC教育サービス 研修/トレーニング
Taku KudoさんはTwitterを使っています 「Piper/CitC の元論文。5年前なんですね。https://t.co/ZMSKLFIyBm」 / Twitter
Why Google Stores Billions of Lines of Code in a Single Repository | July 2016 | Communications of the ACM

ビルドシステム

その他

OWASP Dependency-Check Project | OWASP
MavenによるOWASPの脆弱性チェック
分散型ソフトウェアビルドシステム「Pants 2.8」 | OSDN Magazine
Naoki TakezoeさんはTwitterを使っています 「Databricks社内のCIをJenkinsからScala + PostgreSQL + EC2で動くシンプルなRunbotという自前システムに置き換えたという話。Beforeが辛すぎて泣きそうになってしまった。 https://t.co/EZssomxB6O」 / Twitter
Developing Databricks' Runbot CI Solution - The Databricks Blog
令掛ベインさんはTwitterを使っています 「サンドボックス化によってビルドルールの依存関係の記入漏れを検出するやつを探していて、おそらくこれ / [Sandboxing - Bazel main](https://t.co/sXQMpjP60s)」 / Twitter
Sandboxing - Bazel main
Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに - Publickey
NixでZenn CLIをビルドする
GENTOO INSTALL 週間さんはTwitterを使っています 「コンテナ時代の自動ビルドツール。各種言語と各種CIの橋渡しになるらしい。ビルド用のMakefile、シェルスクリプト、Dockerfileなどの代替。ほう / “GitHub - vladaionescu/earthly: Build automation for the container era” https://t.co/WwRQmgkQ4l」 / Twitter
vladaionescu/earthly: Build automation for the container era
東陽テクニカ、7時間かかるビルドを30分に短縮する開発高速化ツール | TECH+
Gradle7.4でテストレポートの統合へ

トポロジカルソート

強連結成分

強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
連結グラフ - Wikipedia
強連結成分分解 | グラフ | Aizu Online Judge
目指せグラフマスター
Microsoft PowerPoint - ad11-12.pptx
Microsoft PowerPoint - 6.6-6.7配布
ALG2012-B.ppt
グラフとネットワーク 第 10回 連結性:モデル化
強連結成分分解 (Tarjan) | libalgo

AWK 本記載の循環検出付き改良版 Tarjan のトポロジカルソート - Tociyuki::Diary
Tarjan のトポロジカルソート - Tociyuki::Diary
Kahn 系統のトポロジカルソート - Tociyuki::Diary
トポロジカルソート - Wikipedia
ネットワーク・トポロジー - Wikipedia
tsort - Wikipedia
有向非巡回グラフ - Wikipedia
二項関係 - Wikipedia
順序集合 - Wikipedia
全順序 - Wikipedia
深さ優先探索 - Wikipedia
Depth-first search - Wikipedia
Spaghetti Source - トポロジカルソート
Topological sort
アルゴリズムと データ構造
第 7 章: グラフ (graph) — WTOPIA v1.0 documentation
隣接行列 - Wikipedia
グラフ理論の基礎 | 高校数学の美しい物語
オイラーグラフの定理とその証明 | 高校数学の美しい物語
隣接行列,接続行列,ラプラシアン行列 | 高校数学の美しい物語
グラフを表すデータ構造(隣接行列と隣接リスト) - 具体例で学ぶ数学
Microsoft PowerPoint - ad11-09.pptx
Microsoft PowerPoint - 数理計画と最適化101210prn.ppt
オイラーグラフとハミルトングラフ
スペクトラルグラフ理論入門
隣接行列 — WTOPIA v1.0 documentation
グラフ構造で位相空間のイメージをつかむ - Qiita

CMake

MSVC

Use CMake Converter — CMake-Converter 1.2 documentation
visual studio - How to support both vcxproj to cmake on a project? - Stack Overflow
cmake-converter · PyPI
cmake_converter Documentation
Visual C++ での CMake プロジェクト | Microsoft Docs
visual-studio vcproj2cmake convert - How to support both vcxproj to cmake on a project? - CODE Q&A Solved

MSBuild

MSBuild

MSBuild (Visual C) | Microsoft Docs
MSBuild (Visual C) の概要 | Microsoft Docs

MSBuild

MSBuild | Microsoft Docs

MSBuild

チュートリアル: MSBuild の使用 | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成 | Microsoft Docs
MSBuild プロパティ | Microsoft Docs
MSBuild 項目 | Microsoft Docs
MSBuild でのビルド ログの取得 | Microsoft Docs
MSBuild でのログ | Microsoft Docs

MSBuild リファレンス | Microsoft Docs

MSBuild リファレンス

MSBuild の条件構造 | Microsoft Docs
MSBuild の予約済みおよび既知のプロパティ | Microsoft Docs
MSBuild プロジェクトの共通項目 | Microsoft Docs
MSBuild .Targets ファイル | Microsoft Docs
MSBuild 既知のアイテム メタデータ | Microsoft Docs
Msdn forums - MSBuild
WPF MSBuild リファレンス | Microsoft Docs
エスケープする特殊文字 | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス

Choose 要素 (MSBuild) | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
ImportGroup 要素 | Microsoft Docs
Item 要素 (MSBuild) | Microsoft Docs
ItemDefinitionGroup 要素 (MSBuild) | Microsoft Docs
ItemGroup 要素 (MSBuild) | Microsoft Docs
ItemMetadata 要素 (MSBuild) | Microsoft Docs
OnError 要素 (MSBuild) | Microsoft Docs
Otherwise 要素 (MSBuild) | Microsoft Docs
Output 要素 (MSBuild) | Microsoft Docs
Parameter 要素 | Microsoft Docs
ParameterGroup 要素 | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ProjectExtensions 要素 (MSBuild) | Microsoft Docs
Property 要素 (MSBuild) | Microsoft Docs
PropertyGroup 要素 (MSBuild) | Microsoft Docs
Sdk 要素 (MSBuild) | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
Task 要素 (MSBuild) | Microsoft Docs
TaskBody 要素 (MSBuild) | Microsoft Docs
Task 要素の使用 (MSBuild) | Microsoft Docs
When 要素 (MSBuild) | Microsoft Docs

MSBuild コマンド ライン リファレンス | Microsoft Docs

MSBuild コマンド ライン リファレンス

MSBuild プロジェクトの共通プロパティ | Microsoft Docs
MSBuild での複数のプロジェクトの並行ビルド | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
方法: 複数のプロジェクト ファイルで同じターゲットを使用する | Microsoft Docs
ターゲットのビルド順序 | Microsoft Docs
方法: 最初にビルドするターゲットを指定する | Microsoft Docs
MSBuild ターゲット | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ToolsVersion 設定のオーバーライド | Microsoft Docs
MSBuild ツールセット (ToolsVersion) | Microsoft Docs
標準ツールセット構成とカスタム ツールセット構成 | Microsoft Docs
MSBuild のマルチターゲットの概要 | Microsoft Docs
MSBuild ターゲット フレームワークおよびターゲット プラットフォーム | Microsoft Docs
MSBuild 応答ファイル | Microsoft Docs
Binary Log · Microsoft/msbuild Wiki

MSBuild タスク リファレンス | Microsoft Docs

Visual C++ に固有の MSBuild タスク

Visual C++ に固有の MSBuild タスク | Microsoft Docs
MSBuild の条件 | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
方法: タスクで発生したエラーを無視する | Microsoft Docs
BscMake タスク | Microsoft Docs
CL タスク | Microsoft Docs
CPPClean タスク | Microsoft Docs
LIB タスク | Microsoft Docs
Link タスク | Microsoft Docs
MIDL タスク | Microsoft Docs
MT タスク | Microsoft Docs
RC タスク | Microsoft Docs
SetEnv タスク | Microsoft Docs
VCMessage タスク | Microsoft Docs
XDCMake タスク | Microsoft Docs
XSD タスク | Microsoft Docs
MSBuild リファレンス | Microsoft Docs
MSBuild タスク | Microsoft Docs
タスクの作成 | Microsoft Docs

ビルド システムの変更 | Microsoft Docs
チュートリアル: MSBuild を使用した Visual C プロジェクトの作成 | Microsoft Docs
方法: MSBuild プロジェクトでビルド イベントを使用して | Microsoft Docs
方法: MSBuild プロジェクトにカスタム ビルド ステップを追加 | Microsoft Docs
方法: カスタム ビルド ツール MSBuild プロジェクトを追加する | Microsoft Docs
方法: プロジェクトのプロパティにカスタム ツールを統合 | Microsoft Docs
方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更 | Microsoft Docs

Visual Studio 2015

MSBuild リファレンス
MSBuild プロジェクト ファイル スキーマ リファレンス
MSBuild Task Reference
MSBuild Conditions
MSBuild Conditional Constructs
MSBuild の予約済みおよび既知のプロパティ
Common MSBuild Project Properties
Common MSBuild Project Items
MSBuild Command-Line Reference
MSBuild .Targets ファイル
MSBuild Well-known Item Metadata
MSBuild Response Files
MSBuild の追加のリソース
WPF MSBuild Reference
Special Characters to Escape

コマンドライン

コマンドラインで C/C++ コードをビルド | Microsoft Docs
C/C++ プログラムのコンパイル | Microsoft Docs
リンク |Microsoft ドキュメント | Microsoft Docs
Visual Studio Devenv コマンド ライン スイッチ | Microsoft Docs
NMAKE リファレンス | Microsoft Docs

GitHub

Microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
Microsoft/MSBuildSdks: MSBuild project SDKs
Microsoft/MSBuildLocator: An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.

CMake

CMake
Licensing | CMake
Download | CMake
CMake / CMake · GitLab
Documentation | CMake
CMake - KitwarePublic
CMake FAQ - KitwarePublic
CMake Reference Documentation — CMake 3.10.3 Documentation

Command-Line Tools

cmake(1) — CMake 3.10.3 Documentation
ctest(1) — CMake 3.10.3 Documentation
cpack(1) — CMake 3.10.3 Documentation

Interactive Dialogs

cmake-gui(1) — CMake 3.10.3 Documentation
ccmake(1) — CMake 3.10.3 Documentation

Reference Manuals

cmake-buildsystem(7) — CMake 3.11.1 Documentation
cmake-commands(7) — CMake 3.11.1 Documentation
cmake-compile-features(7) — CMake 3.11.1 Documentation
cmake-developer(7) — CMake 3.11.1 Documentation
cmake-generator-expressions(7) — CMake 3.11.1 Documentation
cmake-generators(7) — CMake 3.11.1 Documentation
cmake-language(7) — CMake 3.11.1 Documentation
cmake-server(7) — CMake 3.11.1 Documentation
cmake-modules(7) — CMake 3.11.1 Documentation
cmake-packages(7) — CMake 3.11.1 Documentation
cmake-policies(7) — CMake 3.11.1 Documentation
cmake-properties(7) — CMake 3.11.1 Documentation
cmake-qt(7) — CMake 3.11.1 Documentation
cmake-toolchains(7) — CMake 3.11.1 Documentation
cmake-variables(7) — CMake 3.11.1 Documentation
cmake-env-variables(7) — CMake 3.11.1 Documentation

CMake/Windows-MSVC-C.cmake at master · Kitware/CMake

Learning CMake

Learning CMake
Learning CMake
Learning CMake

Ninja

Ninja — CMake 3.11.1 Documentation
Building with CMake, Ninja and Clang on Windows - Stack Overflow
CMakeでNinja向けファイルを生成する - なんとな~くしあわせ?の日記
10.2.3で CMake with Ninjaを使う - Community Blogs - Embarcadero Community
cmakeゆとり用 - 藻ログ

blog

CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
CMakeを使ってみた(2)もう少しまともなプロジェクト - wagavulin's blog
MakefileをCMakeLists.txtに置き換える - Narrow Escape
CMakeとProtocol BuffersとVisual Studio 2015 – sgryjp.log
CMakeを使ってOpenCVを楽にセットアップする方法 (for Visual Studio 2010) - 意識の高いLISPマシン
Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る - 座敷牢日誌
Cmakeの使い方 – インストールと実行 | Sumire Lab Docs
CMakeの基礎とTheolizerの組み込み方 | Theolizer®
参°ぼっくす: cmakeの使い方
CMake の練習
モジュールセットファイルの構文
ビルドシステムとしてCMakeを導入する - FPGA開発日記
cmake チートシート - Qoosky
cmake での shared library/static library のテストプロジェクト
CMake を利用したライブラリの作成 - def yasuharu519(self):
CMake に入門&対処事例
超初心者の Visual C++ , CMake とともに。 – o6asan's soliloquy-part2
Makefileなんて書いてられない・・・CMakeでいってみる - alpaca2unix blog
CMakeで生成されたファイルを一気に削除 - Ry0 Note
CMake - CMakeLists.txtで用いられるFIND_PACKAGEについて(63275)|teratail
出力ディレクトリを指定する - Faith and Brave - C++で遊ぼう
CMakeによって生成されるVisual C++プロジェクトの構成 - Faith and Brave - C++で遊ぼう
CMakeで設定されているすべての変数を出力する - 座敷牢日誌
CMake と SWIG を使って C++ と Python と ROOT に対応させる - 宇宙線実験の覚え書き
Android C++開発 [1] : CMakeプロジェクトの作成 - つくるの大好き。
CMakeをSchemeにする -- S式のtokenize - .mjtの日記復帰計画
cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド - 誰にも見えないブログ
cmake tutorialその2:ライブラリ、テスト、Usage Requierment - 誰にも見えないブログ
cmake-tuorialその3:実行環境の確認 - 誰にも見えないブログ
cmake tuorialその4:ファイル生成,インストーラーのビルド等 - 誰にも見えないブログ
cmakeチュートリアルその5 - 誰にも見えないブログ
cmake tutorialその6 - 誰にも見えないブログ
自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中) - 誰にも見えないブログ
cmakeでinstallしたtargetを削除する方法 - 誰にも見えないブログ
cmake tutorial その7(最終回):EXPORT,find_package()など - 誰にも見えないブログ
C++ Modules in CMake with Visual Studio - C++ Team Blog

GitHub

How to write CMakeLists
HelloWorld for cmake
ijt/cmakelists_parsing: Python module for parsing CMakeLists.txt files
CMake 3.8.0以降のCTestの文字化け対策 · Issue #37 · yossi-tahara/Theolizer
CMakeをより便利にするライブラリ "CMakeSupports" がオープンソースになりました
flokart-world/cmake-supports: A collection of utilities for creating projects with CMake scripts.
Effective Modern CMake

Qiita

CMake Advent Calendar 2014 - Qiita
CMakeLists.txt から始めよう - Qiita
CMake言語の基本構造 - Qiita
CMakeの構文調べてみた - Qiita
CMake: 条件分岐 - Qiita
CMake: コメント - Qiita
ごく簡単なcmakeの使い方 - Qiita
CMakeで大きめのプロジェクトを構成するためのメモ - Qiita
CMake: ポリシー - Qiita
CMake: 便利なコマンド・変数 - Qiita
CMake の情報と 3.1.0 での変更点 - Qiita
CMake+Ninja 使ってるヤツは直ちに CMake-3.9 に乗り換えろ - Qiita
CMakeの使い方(その1) - Qiita
CMakeの使い方(その2) - Qiita
たのしい組み込みCMake - Qiita
CMake: target_link_libraries(PUBLIC/PRIVATE/INTERFACE) の実践的な解説 - Qiita
CMakeスクリプトを作成する際のガイドライン - Qiita
CMakeでマルチプラットフォーム開発 (ラズパイ用クロスコンパイル含む) - Qiita

Wikipedia

CMake - Wikipedia
CMake - Wikipedia

Twitter

渋川よしきさんのツイート: "C++で開発する時にまずやったのは、CMakeListsを自動生成もしてくれるパッケージマネージャをGoで作ることだった。"
渋川よしきさんのツイート: "C/C++のMakeっぽいものを作ろうとする人はかなり環境を限定しないとムリだよね。CMakeはこの世の闇をすべてその身に宿すことで世界に仮りそめの秩序をもたらす存在(modulesフォルダ以下を眺めながら) https://t.co/Wpv4tZBNbK"
渋川よしきさんのツイート: "CMakeのレイヤーはそのままで、CMakeラッパーというのが最近よく観る流れ。"
mitsutaka.takedaさんはTwitterを使っています: "https://t.co/PCM6K74XHy https://t.co/mRUQvdD8ar cmakeビルド時にinclude-what-you-useでチェックすればOK。直すのも自動化用のスクリプトがあるあらしいが未確認 https:
ロックフリーのkumagiさんのツイート: ".cファイルを新たに追加した時に漏れ無くビルドシステムに追加するようにする方法、cmakeならGLOBでゴリッとできるやんと思ったけどcmake的にGLOBは非推奨らしく(cmake初回時にしか実行しないから?)結局大抵の真面目なプロジェクトはGLOB使わずいちいちファイル名列挙しておりこの世に神はいない。"
Kazuho Okuさんのツイート: "CMakeは色んな環境で動いて色んなビルドツール用のファイルを生成できるというのが売りであって、あとは見るべきところないと思ってる"
Makoto Kato ︎︎さんのツイート: "*NIX環境で使われるautotoolsのほうが技術的負債だよ。Windows本体ののビルド環境はコンパイラまでレポジトリに入ってるからね。"
Ryou Ezoeさんのツイート: "autotoolsの競合はだいたい失敗している。CMakeとかひどい有様。いまMesonが流行りだがどうなることやら。… "
Makoto Kato ︎︎さんのツイート: "結局ChromeもFirefoxもコンパイラをダウンロードするってのが一番正しいということにたどりついたわけだし、まぁ多様性がありすぎるってのは変なバグを発生させる原因だと思うんだよね。。。"
Ryou Ezoeさんのツイート: "OSやブラウザーのような大規模なソフトウェアにはできるが、一般にはやりづらい。… "
Makoto Kato ︎︎さんのツイート: "Firefoxがビルドできないという話をIRCとかで見るたびに、どこから持ってきたのかわからない変なオプション使ってたり、タイポあったりするので、自動でできる限り設定されるべきなんだよね、いろんなデフォルトビルド設定は"
FadisさんはTwitterを使っています 「CMake、地道に便利機能が追加されていってて「RHEL7|CentOS7に入っているCMake 2.8(2013年時点の最新)でも動くようにせよ」という要件が万物を台無しにしがち」 / Twitter
中村さんはTwitterを使っています 「CMakeは共有できるベストプラクティス集みたいなのがないから、大々的に使えない。海外の記事のリンクとか渡しても困るだろうし。(bazelはもっと情報ないきもするが)」 / Twitter
Katsuhiro SuzukiさんはTwitterを使っています 「cmakeはすごく強力なんだけど、動かなかったときにさっぱり意味が分からなくて、デバッグが辛い。 autoconf/automakeは後ろのシェルスクリプトやMakefileが透けて見える(ただしm4に手を出し始めると地獄)、cmakeは癖が強すぎて「俺は何をしてるんだろうか……??」という気分になる。」 / Twitter
てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter
✧*。ヾ(。ᐳ﹏ᐸ。)ノ゙。*✧さんはTwitterを使っています 「何でも CMake にやらせようとした、でも面倒になったのか途中から Python とか呼び出しはじめて、ソースの依存関係が壊れてたり out-of-source build できなくされてたりするプロジェクトに遭遇したとか」 / Twitter
てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter

CMake-3.11.0
cmake-converter 0.0.2 : Python Package Index
peg-cmake - npm
Policies/CMake and Source Compatibility - KDE Community Wiki
cmake の使い方 - PukiWiki
cmakeコマンド構文の質問 [build-process] | CODE Q&A [日本語]
初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】 - Build Insider
CMake チュートリアル — Cmake-Tutorial
Learning CMake
CMakeの使い方.pdf
CMake を使ったクロスプラットフォーム開発環境 : LINE Engineering Blog
クイックCMakeチュートリアル - 公式ヘルプ | CLion
libressl cmake - Google 検索
shozfさんはTwitterを使っています 「CMakeと戯れ中💦 本家のリファレンスは網羅的で詳しく書かれているのだが、そこそこCMakeに慣れていないとハードルが高い。取っ掛かりはこの↓ドキュメントが良さそうかな。 Modern CMake: https://t.co/3yrFD9MGd5」 / Twitter
An Introduction to Modern CMake · Modern CMake

Ninja

Twitter

R. ShioyaさんはTwitterを使っています 「256 スレッド同時に走るマシン,gcc のコンパイルをするとコンパイル自体じゃなくて随所に入っているシェルスクリプトとかの実行で律速されるし,こまかいファイルを大量につくる系の実験してたらストレージキャッシュのデーモンで律速されるし,アムダールの法則の世界へようこそって感じだ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとメモリバスもキツそうですね。」 / Twitter
とよしまさんはTwitterを使っています 「@r_shioya そうそう、そういうのさせないために依存関係だけ書いてninjaにぶん回させる、どうしてもな部分を処理するためにgnでルール記述してninjaを生成する、みたいになった。そして今はリンカが並列化限界を律速してるのでRuiさんのリンカはキャッシュみたいなのまで持ち込んで高速化してるって流れよね。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim 研究室だと今までそこまで大きなソースをコンパイルする事もなく複数ノードで分散ビルドすることも無かったのですが,最近は単一ノードでもスレッド数が相当増えたり割とみんな LLVM 触ってたりで実感することが出てきた感じです.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim リンカの速度で律速されるのは身近だと RTL シミュレータの verilator を使ってる時もよく感じます.verilog->C++ に変換してから普通にコンパイルするのですが,途中のコンパイルは並列で走ったりキャッシュが効いたりでかなり高速なのに,でかいので最後のリンクがどうしても時間がかかります.」 / Twitter
shinichiro hamajiさんのツイート: "アンドロのヌルビルドがまだ遅いぽいの悲しい。3年前にねじ込めてれば、一回3秒ほどだったか、トータルでは結構な時短だった気がするんだよなあ https://t.co/LJwEeotrl8 https://t.co/md5k1YDMMj… "
mayahさんのツイート: "ninja 速くするアイデアは色々あるけど大体 nico に ninja はシンプルなままでいたいと言われて却下されるんだよな… ninja fork の機運か?"
Introduce binary manifest format by shinh · Pull Request #1093 · ninja-build/ninja
Add a flag to remain persistent. by jmgao · Pull Request #1389 · ninja-build/ninja
shinichiro hamajiさんのツイート: "本題関係ないけど、今はninjaが1.5GBあるのか…katiやってたときは500MBくらいだったぽい [generated by kati, 412MB] [generated by soong, 1078MB]… "
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaが話題になっている。やることはありきたりだが、細かい最適化を積み重ねて早くしている。 https://t.co/aWEtQ9gokP」 / Twitter
Tech Notes: The Success and Failure of Ninja
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは常駐を考えずに設計された。常駐する理由はキャッシュのためだ。でもカーネルはすでにファイルをキャッシュしているから不要だろ。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは依存関係のグラフ構築だけをやる。ユーザー向けの機能は別のフロントエンドにまかせる。この仕組みはうまく言った。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そんなのは誰でも考えつくがなぜninja以外のビルドシステムはうまくやれていないのか。厳密に分離するのは強い意志が必要だからだろう。みんな軟弱な思想で混ぜてしまう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Windowsへの移植が大変だった。ninjaはカーネルがファイル情報をキャッシュしてくれて速いということを当てにしていたのだがWindowsはぽんこつにもそうではない。 https://t.co/aWEtQ9gokP」 / Twitter

本の虫: 新しいビルドシステム、ニンジャ
Big Sky :: 高速なビルドシステム「ninja」
Linux kernelをninjaでビルドする - Gentoo metalog
kati とか依存関係とか strace とか - 200MB-300MBのbuild.ninjaファイル
ninja-build/ninja: a small build system with a focus on speed
Ninja, a small build system with a focus on speed
The Ninja build system
ninja-build/ninja-build.github.io: github pages
FAQ · ninja-build/ninja Wiki
build.ninja
michaelforney/samurai: ninja-compatible build tool written in C
本の虫: C++標準化委員会の10月の興味深い文書
tzikさんのツイート: "ninjaの並列化proposalが出てる。https://t.co/ZggyThRvXk 。マルチスレッドなプログラムは一般にforkと相性悪いけど、.protoがあるし、forkする部分を別プロセスに分離してるのかな。"
Parallelized Ninja for faster Android builds - Google グループ
tzikさんのツイート: "並列化してるのはhttps://t.co/88NHGe7UXmのパースとかグラフ生成とかの部分で、コマンドの実行時にはスレッドプールはいらなそう。現状joinせずにそのままforkするフェイズに入っているけど、スレッドたちをjoinしさえすればよさげ。"
cmake経由でmake実行時に-jオプションを渡す(未解決) - 誰にも見えないブログ
Ninjaの速さを体感するともはやMakeには戻れない - Qiita
ミローネ言語の開発用にビルドツールninjaを使っている感想など - ベインのブログ
raviqqe/turtle-build: Ninja build system clone in Rust

kati

DSan

Dependency Sanitizer - Google ドキュメント
Diff - f0a465c2cb5921762d7d17d65cd7352d0f64c261^1..f0a465c2cb5921762d7d17d65cd7352d0f64c261 - platform/build - Git at Google
shinichiro hamajiさんのツイート: "動機も似てて、kati+ninja+gomaで並列度上げてビルドするとはじめて発生するバグとかが出てきて、調べてみると依存関係壊れてるだけで俺悪くないやんけ、てことがたまにあったので根本的に解決したくなったっていう話"
shinichiro hamajiさんのツイート: "あとmakeは普通に書くと依存関係を適切に設定するのを絶対に間違えてしまうようなツールなので、Androidみたいに宣言的に記述するDSLにして定型パターンは間違えにくいようにするのは理に適っていると思う……がそのトレードオフとしてあの遅さを得たわけだった"

kati について - 兼雑記
kati とか依存関係とか strace とか - システムプログラミングぽい最適化
SetProcessAffinityMask 関数
はじめてのにき(2018-02-22)
google/kati: An experimental GNU make clone
StringPiece というライブラリの話 - 兼雑記
C++1z 文字配列をコピーせず参照してbasic_stringライクな操作をするstring_view - Faith and Brave - C++で遊ぼう
はじめてのにき(2018-08-17)
SetAffinityForMultiThread before execve. by yoshisatoyanagisawa · Pull Request #154 · google/kati
はじめてのにき(2018-10-31)
Improve regen performance by setting cpu affinity by danw · Pull Request #156 · google/kati
ラムダ式とMakefileマクロ - Qiita
日記 (2020 年 2 月)

autoconf

Shiro KawaiさんはTwitterを使っています 「autoconfは、開発者がrepoを抱えててtarballで配布→各ユーザが手元でコンパイルするが環境がバラバラ、という条件の下でうまく設計されたシステムだけど、repoが公開されてて誰でも引っ張ってこれる/コンパイルする人の環境をある程度想定できる、という時代には合わないかもなあ」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「本件、基本的な方針として * 今までgitからのbuildだとautoconfしてconfigureを都度作っていたのをやめて、tarball同様に、OTPチームの作ったconfigureを使用するようにする ということだそうです。 #erlang」 / Twitter
Shiro KawaiさんはTwitterを使っています 「考えてみれば、GaucheをrepoからコンパイルするにはGaucheが必要なんだから、そしたらGauche自身のconfigureもGaucheで書けるじゃん、ということに気づいてしまった。でもbdwgcやatomic_opsでautoconf使うから無理に切り替えることないけど。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「正確には、autoconf相当のものをGaucheで書ける、だな。configure自体はGaucheの無い環境でも走らないとならないので。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「開発側/内部的には、ソフトウェア部品化は大事だけど、エンドユーザにそれらの部品が見えたり、個別設定を強いられるのはダメダメと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ Dockerイメージで凌ぐのは、ジャンボロック風味すぎる…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(上記より少しミクロな話だけど、古の automake / configure って、環境を調べてそれに合わせた makefile を作るとか、結構頑張ってたっけ…用意する方は大変だったのだろうけど)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「似てるけど使い方がちょっと違うのかあ。autoconf的にはそれぞれを検出できるソースをコンパイルしてみるのが正解だと思うなあ。UNIX系の場合、ABI互換性はわりと保つけどソースコード(API)互換性はあまり気にしないので、APIがメジャーな実装と互換に変わる可能性もあるけどこ、それにも対応できるし」 / Twitter
ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「仕様通りに動作するかテストするコードをコンパイルしてテストが通ったら有効化する、なんて autoconf だか Waf (https://t.co/bd1RNuBwBt) なコードも見たことあるが、どうするのがベターなのかねぇ…。」 / Twitter
Waf - Wikipedia
Kazuho OkuさんはTwitterを使っています 「autoconf 系のフィーチャー検出、嫌いなんだよね。試しにコンパイルしてみてビルドできたら対応してるって判定するって、それダックタイピングやん。C/C++言語で書いてるのに????という」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というわけで一個消す PR https://t.co/5A2puIdBb2」 / Twitter
[FreeBSD] use pthread_setaffinity_np by kazuho · Pull Request #2942 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「仕様が標準化されてるオプショナルAPIで、それへの対応があるかどうか調べるならいいんだけど、pthread_setaffinity_npとかOS毎に違うAPIもあったりするので、そんなのでビルド通ったらオッケーとかやばい、って話」 / Twitter

infoQ

BazelがAndroidオープンソースプロジェクトの新しいビルドシステムになる
Npm 7がワークスペースと決定論的ビルドをサポートで一般提供
PantsビルドシステムがJava、Scala、Goを新たにサポート

make cmake convert - Google 検索
Kazuho OkuさんはTwitterを使っています 「実際のところ、gmakeに足りないのって ・依存チェックをもっと書きやすくする (pkgconf およびテストプログラム) ・前回の設定を覚えておいて、次回のmakeで使える くらいの気がするんだよねぇ。 ついでにいうと、CMakeみたくCLionとかでプロジェクトファイルとして使えると良い(ハードル上げる)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「shell script 複雑になるなと思った瞬間に Makefile にしちゃう。ステップごとに定義できるし、エラーが発生したら自動終了するし、どんなコマンドが実行されたかも画面にでるし、冪等性使える」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかしこれconfigureとかlibtoolが逆に移植をめんどくさくしている感じがする。2020年現在はもう変な野良Unixみたいなのほとんど存在しないわけだし、こういうツールは意味あるんだろうかと思ってしまう。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「make はコマンド変わった時にリビルドする機能が追加されるとだいぶ良くなる気がしてる」 / Twitter
sccache - Google 検索
ドッグさんはTwitterを使っています 「パッケージのコンパイル時 feature flag が増えて特定の組み合わせでしかテストしてない時,他の組み合わせでも最低限コンパイルは通ることぐらいは確認してくれる機能が cargo check あたりの拡張でほしいな」 / Twitter
Kazuho's Weblog: komake: Make の -j オプションに潜む罠とその解決策
平岡 拓也さんはTwitterを使っています 「ライブラリの依存解決とか、より良い解決方法を持っている他言語エコシステムとかに触れたりしないと、問題を認識出来ない感はあると思う(´・_・`) Rustのcargoとかは相当良いけど、それを知るまでは僕はライブラリがすぐに動かない事は問題ではあるにせよ、当たり前だと思っていた。」 / Twitter
MakeをPythonのタスクランナーとして使う | Honai's Blog
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellコードに加えた変更がビルド時間にどのような影響があるか判定するツールが欲しい。10回ぐらいビルドを走らせて平均と分散を計算するみたいなやつ」 / Twitter
MSBuild - MSBuild | Microsoft Docs
某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
NMAKE の実行 | Microsoft Docs
Makefile で第2引数を使う方法 - Qiita
iOSアプリのビルド時間を短縮することを目的としたXCRemoteCacheとは

libarchive

ZIP

ZIP (ファイルフォーマット) - Wikipedia
日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita
gaborcsardi/zip: Platform independent zip compression via miniz
ZIPを少しセキュアに暗号化するツールを作った - Qiita
とみながたけひろさんのツイート: "事情によりzipファイルの構造を調べなおしているんだけど、zipファイルに記録されるタイムスタンプって特にタイムゾーンとかの定義がないのね。2バイトで精度2秒というところからするとFATと同じくローカルタイムでいいのかな"
とみながたけひろさんのツイート: "なーんも考えずにzipファイルで1時間ごとのバックアップを取る、みたいなことをしていた場合、夏時間のある国や地域ではタイムスタンプが大変なことになるんだな"
りなたむ || RYOTA NAKAMURAさんのツイート: "暗号化ZIP終焉のお知らせ。 15文字程度のパスワードならRTX2080i 4基で15時間程度で突破されるとのこと。 AzureのNC24rがTesla K80 4基構成で¥443.52/時間なので、単純計算で8000円程度かければ解読できちゃうみたいですねぇ・・・… https://t.co/fpV4SRUtnZ"
hashcatさんのツイート: "Support for PKZIP Master Key added to #hashcat with an insane guessing rate of 22.7 ZettaHash/s on a single RTX 2080Ti. All passwords up to length 15 in less than 15 hours with only 4 GPUs! Excellent contribution from @s3inlc and @EU_ScienceHub https://t.co/kVUDBrQWM3… https://t.co/9PNj3wC5Ux"
ZIP形式のままでもっと圧縮する - fujieda's tech blog
「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
霞ヶ関でパスワード付きzipファイルを廃止へ 平井デジタル相 - ITmedia NEWS
macOSの暗号化zipファイルはパスワード無しで解凍できる - NFLabs. エンジニアブログ

zlib-ng

nikqさんはTwitterを使っています 「https://t.co/zVqd7rhVBY zlibがいろいろ更新がされなさ過ぎて次世代リポができてた」 / Twitter
zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.
nikqさんはTwitterを使っています 「zlibよりも最新のCMakeフレンドリに変更されている」 / Twitter
Rui UeyamaさんはTwitterを使っています 「zlibを使ったデータ圧縮をマルチスレッド化するというの、実は普通に可能らしい。ので実装してみた。 https://t.co/r6HcZB3EGG」 / Twitter
mold/compress.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「実はrawのzlib compressedなデータはそのまま連結するだけでマージできるので、小分けして別々に圧縮してから連結して、ヘッダとトレイラをつければ完成。境目で辞書がリセットされちゃうので、圧縮率がちょっとだけ犠牲になるけど。」 / Twitter

tar

ドッグさんはTwitterを使っています 「macOS の tar(bsdtar)よりも Python の tarfile ライブラリのほうが圧縮率が10倍以上良かった話.理由は,後者は対象ファイル群をソートしてアーカイブしてから圧縮するため.圧縮するファイル群が時系列であまり変化しない内容だったのでソートすると効率的に圧縮できた https://t.co/fkHzyR4EpD」 / Twitter
Why are tar.xz files 15x smaller when using Python's tar library compared to macOS tar? - Super User
ドッグさんはTwitterを使っています 「GNU tar なら tar --sort=name でできるのか.他にも --sort=inode も指定できる.こっちは場合によって disk の seek の回数が減ってアーカイブの速度が上がるっぽい」 / Twitter
Rui UeyamaさんはTwitterを使っています 「tarファイルを出力するコード、人生で何回も書いている気がする。歴史が古すぎていろんな亜種があるんだけど、とりあえず読めればいい程度のものを書き出すのは実は簡単。 https://t.co/8GYMV54xd6」 / Twitter
mold/tar.cc at main · rui314/mold
ぬるぽへさんはTwitterを使っています 「あと、posixではtarじゃなくてほんとはpaxコマンドを使うんだよっていう小ネタのためだけに存在すると思っていたpaxが、tarの99文字以上ファイル名拡張とかのフォーマットの方としてはちゃんと働いていることを知った https://t.co/YvpdCj2Qzr (gnu拡張もある」 / Twitter
pax

LZMA

FadisさんはTwitterを使っています 「LZMAベースの圧縮形式には圧縮は死ぬ程遅いけど展開は早いっていう特徴があって、殆どの人は圧縮頻度に対して展開頻度が極めて高くなるカーネルやinitramfsの圧縮においてはこの特徴が強すぎる」 / Twitter
FadisさんはTwitterを使っています 「7-Zipのオリジナルの開発者がLinux版を作り始めたらしい。LZMAを用いる可逆圧縮アーカイバ7-Zipには従来Windows向けの実装しか無かったため、7-Zipで圧縮したアーカイブを送ってくるWindows野郎に対応するために*NIX畑ではp7zipが別の開発者によって実装されていた。 https://t.co/6SwN0GCguR」 / Twitter
Upstream 7-Zip Adds Preliminary Linux Support - Phoronix

bzip2

FadisさんはTwitterを使っています 「Linuxカーネルからbzip2によるinitramfsの圧縮を削除する提案がなされている。bzip2による圧縮はgzipについで古くからサポートされてきたが、xzやzstdといった近年サポートされた圧縮形式と比較して展開が遅い割に圧縮率が低く、誰も選ばない形式になっていた https://t.co/kSDW8iiFcJ」 / Twitter
Patch Proposed For Removing BZIP2 Support From The Linux Kernel - Phoronix

lz4

ТагсановさんはTwitterを使っています 「zstandardが「オレが一番...!」みたいなネーミングしてたのに、多少のトレードオフはありつつ遥かに解凍が高速な圧縮アルゴリズムでてきたじゃん、facebookはイキったネーミングを反省して https://t.co/XfRxbCV4yE」 / Twitter
lz4/lz4: Extremely Fast Compression algorithm
ТагсановさんはTwitterを使っています 「圧縮が遅くても、解凍が速いほうがユーザーにとってはありがたいことが多いので個人的にはlz4推したい、というか早速インフラで使いたい」 / Twitter

ANS

Daisuke OkanoharaさんはTwitterを使っています 「エントロピー符号化は2009年に登場したANS (Asymmetric Numerical Systems)が算術符号と同等の圧縮率、RangeCoderより2倍高速、ハフマン符号に匹敵する速度で広く使われるようになっている。これだけ基本的な問題に新しい手法が登場することが驚き https://t.co/JayYi7QNFj https://t.co/RczS5Wo6g5」 / Twitter
[0902.0271] Asymmetric numeral systems
Asymmetric numeral systems - Wikipedia
Daisuke OkanoharaさんはTwitterを使っています 「ANSは多くの圧縮で算術符号/ハフマン符号に代わって採用されているが、英語でも解説本は殆どなく、日本語解説もない。理解するためにはこのチュートリアルがおすすめ(Rangeバージョン)https://t.co/S2gdaxRsiw。ANSがエントロピーを達成する証明とともに、復号化から導入しわかりやすく解説している」 / Twitter
[2001.09186] A tutorial on the range variant of asymmetric numeral systems

技術評論社

2018年12月26日 Fedora,圧縮ファイルフォーマット「zchunk」を実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2019年5月31日 Fedora,RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
2020年4月28日 バイナリパッケージの信頼性と再現性を検証するArch Linuxの独自プロジェクト「Rebuilder」:Linux Daily Topics|gihyo.jp … 技術評論社
2021年1月15日 Flatpak 1.10がリリース,新たなリポジトリフォーマットを実装:Linux Daily Topics|gihyo.jp … 技術評論社
第654回 snapパッケージング入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第656回 EPUBリーダーをsnapパッケージ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第658回 自作のsnapパッケージをコンテナ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第659回 systemd-nspawn+pbuliderでパッケージのビルド環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第660回 自作のsnapパッケージをSnap Storeに公開する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
Dropbox、改良型Brotliを使用して同期パフォーマンスを改善
Rockridgeさんのツイート: "MozillaがFirefoxユーザーに対し送信するスニペットのデータ容量を削減した話。画像の最適化はさほど効果がなかった一方、画像のリンクへの置き換えやGZipからBrotliへの切り替えは大きな効果があったという。 / “U…” https://t.co/JTa932baYW"
圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案 | マイナビニュース
Huffman Coding with Gap Arrays for GPU Acceleration | 49th International Conference on Parallel Processing - ICPP
Facebookの圧縮アルゴリズムZstandard 1.5におけるパフォーマンス向上
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++によるモダンなLZアルゴリズムの実装。ビットの読み書きから二分木を使ったハフマン符号の構築、マッチングアルゴリズムの詳細を解説している。メイン部分のコードは1,000行たらずでgzipと同程度に速い。 https://t.co/OFGhG2ZaXG」 / Twitter
Modern LZ Compression
Facebookが独自開発のアプリ圧縮技術「Superpack」を発表 - GIGAZINE
高梨陣平さんはTwitterを使っています 「スゴイ。YAMAHAが世界を席巻したシンセサイザー、DX7のFM音源のreverse engineering。ROMの容量が少い当時、サイン波を1/4のみ保存、差分の保存で圧縮等。かけ算が重いのでlogの加算を利用。logが重いのでテーブルを利用等。 スレッドで紹介されているblog記事がより詳しい。https://t.co/inrw6wKbOI」 / Twitter
Yamaha DX7 reverse-engineering, part III: Inside the log-sine ROM
Miura HidekiさんはTwitterを使っています 「サインテーブルなら1/4だけを保存するのは常識だと思っていたけど、サインテーブル自体が失われた技術なのだろうか」 / Twitter
とみながたけひろさんはTwitterを使っています 「元祖FM音源の内部回路で掛け算をけちるためにlog領域で計算している、というの、あの当時も後段につけるDAコンバーターがlogフォーマットになっているところから推測されていましたよね(あれ私の周りだけ?)」 / Twitter
とみながたけひろさんはTwitterを使っています 「この手の音声系のhackといえば 直交変換使った音声圧縮(mp3みたいなの)は今どきのガチCPUとかは別としてデコードが重くてゲームの効果音みたいなので沢山音を重ねるのが辛いのだけど 直交変換前の周波数領域で加算して直交変換は一回で済ます、みたいなテクノロジーとかもあったな (CRIだっけ…?)」 / Twitter

Package Manager

Nix Package Manager

井山梃子歴史館さんはTwitterを使っています 「コンピュータ科学の銀の弾丸だ https://t.co/CMU7VaSexG」 / Twitter
NixOS - Nix 2.3.10 manual
井山梃子歴史館さんはTwitterを使っています 「@mt_tilde Indirection」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Nix使ってRustバイナリビルドするやつできた(依存関係キャッシュもしてくれる) https://t.co/39r3zpWiFh」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「バージョン指定もできるようにした https://t.co/4PK7FoIbL6」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「いろいろビルドしてみるか」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Nixのマニュアル何言ってるか分かんないし果てには「自然演繹で定義するね!」って言いだしててキレそう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「NixOS - Nix Pills https://t.co/BU1eAXbwvq propagatedBuildInputsってそういう意味だったんだ…」 / Twitter
NixOS - Nix Pills
井山梃子歴史館さんはTwitterを使っています 「NixOS - Nixpkgs 20.09 manual https://t.co/FpLJIB1Je4 これで読むの3回目ぐらいだけどそれでもいまいち分からんな」 / Twitter
NixOS - Nixpkgs 20.09 manual
井山梃子歴史館さんはTwitterを使っています 「depsHostHostが推奨されない理由が分からんな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「buildInputsでいっか!w」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「default.nixを書いたのですが,このパッケージだけ含むシェルってどう作るんだ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「依存関係を追加しても既存のはキャッシュしてくれてうれしい crate2nix最高」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「tracing-error/color-eyreで実質バックトレース」 / Twitter
2021年6月29日 Is NixOS Reproducible? ―NixOS,最小イメージのビルドを100%再現可能に:Linux Daily Topics|gihyo.jp … 技術評論社

Shinji KonoさんはTwitterを使っています 「いろいろなpackage管理はコンテナで解決しつつあるんだが、GUI/IDE側がな。 コンテナとpackage管理は本来関係ないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「GUI/IDEも構成管理ベースでイメージ配布になる気がする。もうなってるかも知れん。」 / Twitter
hkobaさんはTwitterを使っています 「flatpakが近いかも、です? https://t.co/HryP0y2Uzo」 / Twitter
第513回 新しいパッケージの仕組み,Flatpakを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Shinji KonoさんはTwitterを使っています 「@hkoba あぁ、brew cask みたいなのかな。」 / Twitter

Twitter

histric-1

:craftsman/kawasimaさんはTwitterを使っています 「業務システムの設計に迷ったら、まずredmineではどうしているかを見に行くとよいです。テーブル設計、認可、マルチテナント、テスト、ユーザ設定可能なワークフロー、ユーザ削除時の対応、プラグインによる拡張などなど、参照実装としてすごく有用です。」 / Twitter
hikaliumさんはTwitterを使っています 「変数名の取り違え、型さえ合っていればコンパイラは無力なの悲しい(変数名の取り違えを防ぐコンパイラやlinter側での努力に関する研究ってあるのだろうか?(ソフトウエア工学とか心理学とか方面寄りになりそう?))」 / Twitter
KOBA789さんはTwitterを使っています 「@hikalium rust-analyzer とかだと仮引数の名前と実引数の名前に common suffix がない場合は仮引数の名前がエディタ上で補完されて名前付き引数のような見た目になったりしますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「利用する側を先に作ることでインターフェイスを整理してから、実装やテストを書くことも多い気がする」 / Twitter
Takuto WadaさんはTwitterを使っています 「どちらかというと、メソッドのインタフェースをゴリゴリ変えたいからこそ先にテストを書くんですよね。「どうやって使わせようか先に思いつかない」のは私もそうで、だから自分が一番先に使う側に回って考えようというのがテストファーストです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アプリケーションコードからの使いやすさと、テストのしやすさと、内部実装の簡潔明快さはどれも重要で、実際はその3つのバランスをどう取るかだし、手を動かすことができるならば、あまり順番は重要じゃない気がするけど」 / Twitter
神速さんはTwitterを使っています 「DDDの話は何度聞いても「世の中の9割はそんなにクラス設計を上手くできない...」という点を感じていて、そういう意味では「ActiveRecordに密結合で短いコードにする」という割り切りの方が好みではある。無駄に多いクラスよりマシなので。」 / Twitter
sumimさんはTwitterを使っています 「コピー&ペースト(より正確にはカットとペースト)がSmalltalkのどんなキー操作にいつ頃アサインされたのかをざっと当時のコードを読んでこれ→https://t.co/BEAFBElfFl を書いたのですが、もう少し丁寧に調べてみたら少なくともSmalltalk-76の時点でLFではなくBLANK-TOPに割り振られていた事が判明… https://t.co/l6hAVNeLKn」 / Twitter
sumim: "#365 収録後トークの「コピー&ペーストはMacが最初」というのは少々いただけないです(アラン・…" - グルドン
sumimさんはTwitterを使っています 「カット・コピー・ペースト操作が [修飾キー]+X/C/V になったのがLisaからなのは明らかとして、コピー&ペースト操作のネタ元であるSmalltalkで(特にペーストの)キー操作はどうだったのか…というのはオレンジ本にも書いておらず長らく疑問に思っていたのですが、ようやくモヤモヤが晴れてスッキリ!」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@sumim そろそろ本にまとめることをお勧めします。」 / Twitter
mima_itaさんはTwitterを使っています 「javascriptは大抵mockやfakesで依存関係を偽装できるのでテストは簡単な部類。」 / Twitter
mima_itaさんはTwitterを使っています 「中間言語作る系のC#やJavaも頑張れば基本的に何とかなる。Cもプロダクトコード側が適切にライブラリに分割してあればコールバック関数を偽装して偽のライブラリを作成して何とかなったが・・・C++だけは今でも苦戦しそう。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Jupyterって画像が表示できるREPLでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「画像が表示できて自然に複数行入力できて実行コードと結果をまとめてファイルに保存する機能がついたREPL」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンピュータ、out of the boxで動いてほしい」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「のでvimとかwmをカスタマイズとかはあまりノレない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えーなんでここで schemes が non-NULL なの? 酔っ払ってるのかな https://t.co/PkAohxLU4s」 / Twitter
ItSANgoさんはTwitterを使っています 「@kazuho 関数を2回以上通っていませんか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@ItSANgo ほんまや! 誰や static とかつけたやつ!!! ありがとうございます」 / Twitter
κeenさんはTwitterを使っています 「Rust Analyzerがマクロを克服しつつある。Rust内部のマクロ展開後の形式を人間可読な表示する機能をつけて、マクロ内で定義した関数の型を表示できるようになってる。マクロで生成したものは元のテキストがないからちょっと特殊で今まで表示崩れしていた。 Changelog #69 https://t.co/AZJkHGoirL」 / Twitter
Changelog #69
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IDE で関数単位で全return文にbreakをセット/解除するボタン欲しい。」 / Twitter
コードが読めるソフトウェア開発者 - As a Futurist...
7594591200220899443さんはTwitterを使っています 「コード読む力、大部分がVisualStudioの使い方だったりするんだよなあ」 / Twitter
7594591200220899443さんはTwitterを使っています 「ともかくEmacsだのVimだの使ってる場合じゃないとまでは言えますよ。書くのは好きにすりゃあいいけどさ。読むのに関しては。」 / Twitter
7594591200220899443さんはTwitterを使っています 「JetBrainsとMicrosoftに足向けて寝てるやつがプログラマを名乗るなという感がある」 / Twitter

ねこねこきーつね♪さんはTwitterを使っています 「最近のプログラミング言語はビルドシステムやらパッケージマネージャやら、ドキュメンテーション生成やらテストやらの機能を備えてないといけないみたいになってて大変そうだ」 / Twitter
ねこねこきーつね♪さんはTwitterを使っています 「フォーマッタやらLinterやらLanguage Serverやらもだね」 / Twitter
しゅうや@やる気探索中さんはTwitterを使っています 「昔インデントめちゃ気にしたことあるけど、副業とか案件で途中から受けたやつとかチームでやる案件どれだけ差分を出さない方がもっと大事。 適当にフォーマットかけられて、別の人がコンフリクト修正するコスト方が圧倒的にに高い! なので一ファイルの中にタブとスペース混ざってもそのまま維持する」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「VSCode上で各種ツールが動くとうれしい理由の一つは、Remote SSHで、XとかVNCとかそういうリモートデスクトップツールなしでsshだけで何も設定せずに動いちゃうのが便利すぎる。だからこそ、Electronベースで動いてるようなツールは、この際、VSCodeに拡張として移植してくれないかなぁと思うんだよ。」 / Twitter
エヌユルさんはTwitterを使っています 「Emacsのdiredほど強力なファイルマネージャを他のOSも含めて見たことがない WindowsでもMSYS2のEmacs立ち上げてdiredをなるべく使ってるぐらい trampでssh, android, dockerコンテナの内部を閲覧編集出来たり文字列置換でrename出来る むしろLinux以外が貧弱に思える Nautilusも普通に使えるけど」 / Twitter
市川 真一さんはTwitterを使っています 「@puni2marimo @uchan_nos オブジェクトの型を名前空間に import する宣言文を書くように設計すれば、それが実質的に前方参照みたいなものだし、1 回目の構文解析では未定義の名前が定義されるまではトークンを保持するだけで構文解析しないようにするだけでも結構いけそうな気もします。型を定義するキーワードも普通は規定済み」 / Twitter
Yasunori GotoさんはTwitterを使っています 「10年以上前かな? 当時の上司が「メインフレームのDBのトランザクション処理って、ネットワークDBでしかもアセンブラでゴリゴリ頑張って書いていたので、CPUの命令で400stepぐらいで済んでたらしいんだよね。今ならJava+RDBで1万stepぐらいは余裕でかっ飛んでいるよね!」って話してたの思い出した」 / Twitter
novtanさんはTwitterを使っています 「しかしだよ、処理効率が上がるたびにそれを食いつぶすテクノロジーを開発し続けてきているIT業界に本当に必要なのは「阿部寛のホームページ」への回帰なんではなかろうか。 / “IBM、世界初の2nm半導体技術を発表 バッテリー寿命は7nmの4倍 - ITmedia NEWS” https://t.co/ELGO5eJXnf」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バイナリファイル視覚化ツール。各バイトをヒルベルト曲線に沿ってプロットすることにより、単純な左→右のスキャンで表示するよりもパターンが目立ちやすくなる。エントロピーによる色分けにより、圧縮されてそうな部分を検出することも可能。 https://t.co/weZyGe5LU9」 / Twitter
binvis.io
Keigo ImaiさんはTwitterを使っています 「言語とIDE. PPX + merlin + VSCode + OCaml Platform のおかげで OCaml はあんまりそういう悩みがないかな...」 / Twitter
令掛ベインさんはTwitterを使っています 「IDEとマクロの相性が悪いという記事。IDEとバッチコンパイラが必要とする言語の性質の違いが出てておもしろい / [IDEs and Macros](https://t.co/DxwTy7dk5k)」 / Twitter
IDEs and Macros
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラミング、7つの大罪: 1. タブでなくスペースを使うこと 2. スペースでなくタブを使うこと 3. 自動インデントを使わないこと 4. IDEを使うこと 5. IDEを使わないこと 6. C/C++を習わないこと 7. わざわざ低水準言語で書くこと 8. 配列の添え字が1だけ多いこと https://t.co/nhtgOhkgMA」 / Twitter
The 7 deadly sins of programming : ProgrammerHumor
ぽんこつさんはTwitterを使っています 「JavaのimportはIDEが自動で書くやつという認識で大体良いんだけど、Scalaのimportはよく import hoge.fuga.Implicits._ とかいうやつがあって、なんか怪しい挙動を感じたらimportを確認しないといけないやつ」 / Twitter
Pamela FoxさんはTwitterを使っています 「I made a lil tool to visualize the call graphs of tree recursive Python functions, since I got tired of drawing them manually. All runs in the browser thanks to Pyodide and WASM! https://t.co/CO44C7kaDT https://t.co/3ZVW4jer4g」 / Twitter
Recursion Visualizer

OS

Desktop Screen Resolution Stats Japan | StatCounter Global Stats
Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
I2C-bus specification and user manual - UM10204.pdf
メインフレームの異常処理 - Qiita
「フェイルバック(failback)」と「フォールバック(fallback)」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ウェブのしくみ - ウェブ開発を学ぶ | MDN

その他

MS

Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「NTカーネルの仕様書を読んだことある人って、どれくらいいるんだろうか? 昔CD-ROMに焼いて配ったんで、それなりの数の人が目を通したはずだけど。今どきOS/2 NTと書かれてても何ソレ?ってスルーされちゃうかも知れず / “Windows-Research-Kernel-WRK-/NT_Design_Workbook…” https://t.co/TDaKERbmK3」 / Twitter
Windows-Research-Kernel-WRK-/NT_Design_Workbook/Get_Workbook at master · HighSchoolSoftwareClub/Windows-Research-Kernel-WRK- · GitHub
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「とりあえずke.docがカーネル全体について記述しているので、その辺から読むといいかも。そこから先は趣味ですがvmdesign.doc辺りを読むと、いきなりNTカーネルが当初i860向けに開発されたことなんかを知ることができて面白いですね。i386/486も似たようなPTEフォーマットで云々」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ぶっちゃけ30年前に書かれたカーネルの仕様書を読んで何になるのか?という話ではあるのだけど、四半世紀以上も生き残った商用ソフトウェアの初期仕様書を読める例って本当に少ないので、少なくとも考古学的な価値は高いんじゃないかな。読みやすさでいえばタンネンバウム先生のMinix本の方が上だけど」 / Twitter
「Windows 11」は操作への応答が高速化 ~Microsoftがその秘密を解説 - やじうまの杜 - 窓の杜
マイクロソフト、Windows 11をWindows 10よりも高速化した方法を詳述|自作.com
マイクロソフトがWindows 11のアップデートサイズを制限する方法|自作.com
ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
Microsoftが諦めた幻のモバイルOS「Andromeda OS」とは? - GIGAZINE

Google

GIGAZINE

GoogleのIoT用プラットフォーム「Android Things」が終了へ、IoT向け汎用OSの野望は軌道に乗らず失速 - GIGAZINE
ついにGoogleの新OS「Fuchsia」が一般ユーザー向けに公開される - GIGAZINE
Google PlayでAndroidアプリを公開するにはAPKでなく「Android App Bundle」を使う必要があるとGoogleが発表 - GIGAZINE
Googleが進めていた秘密計画「Project Hug」とは? - GIGAZINE
折りたたみ式スマホに対応した新機能搭載の「Android 12マイナーアップデート版」開発中 - GIGAZINE
「Android 12(Goエディション)」はアプリ起動が最大30%高速化&自動休止によりバッテリー持続時間増加 - GIGAZINE
Googleが革新的なARデバイス向けの「拡張現実OS」の開発に着手したことが明らかに - GIGAZINE
「Android 13」の情報がリークされる、アプリごとの言語切り替えや通知のオプトイン化などの新機能が登場か - GIGAZINE
ついにリリースされた「Android 13」の開発者向けプレビュー版で明らかになった新機能まとめ - GIGAZINE
Android 13搭載のPixelはWindows 11とChromebookへAndroidアプリを「ストリーミング」可能 - GIGAZINE
古いPCやMacでも軽快に動作する「Chrome OS Flex」早期アクセス版をGoogleが発表 - GIGAZINE
日本語表示の改善やプッシュ通知のオプトイン可などが「Android 13」の開発者向けプレビュー版で実装される - GIGAZINE
バッテリー使いまくりアプリの警告や通知パネルの「Music」表示など「Android 13」の開発者向けプレビューで実装される新機能まとめ - GIGAZINE
AndroidスマホにプリインストールされているGoogle製アプリはユーザーの同意なしにGoogleへデータを送信している - GIGAZINE
「最高のAndroid」を目指して開発された「Nothing OS」&搭載スマホ「phone (1)」が発表される - GIGAZINE
GoogleがAndroidアプリで独自の決済手段を選べるようにする方針を示す、まずはSpotifyから - GIGAZINE

PC Watch

Chromebookのシェアが1%から13%に急増。2021年には24%へ - PC Watch
Android 12がAOSP向けにソース提供。PixelやGalaxy、Oppo、Xiaomiが順次対応へ - PC Watch
Google、Chromebookの修理マニュアル公開。教育機関での自力修理向け - PC Watch
Google、PC/Macに無料で導入できるOS「Chrome OS Flex」 - PC Watch
【西川和久の不定期コラム】Google本家からChrome OS Flex登場!いろいろなマシンへ入れてみた - PC Watch
Chrome OS向け「Steam」が登場。Alpha版はまもなく提供開始 - PC Watch

窓の杜

「Chrome OS 93」が安定版に ~ファイルの仮置き場「トート」がちょっと便利に - 窓の杜
「Android 12」が正式リリース ~今後数週間のうちに「Pixel」を皮切りに展開へ - 窓の杜
「Chrome OS」の長期サポート版は3月から ~先行提供中の候補版にセキュリティアップデート - 窓の杜
古くなったWindows/MacをChrome OS化で再生 ~「Chrome OS Flex」がプレビュー公開 - 窓の杜

infoQ

RustがAndroid OSセキュリティのための新しい基盤を提供
Google Nest HubでGoogle Fuchsiaがデビュー
CanonicalのAnbox CloudアプライアンスでAWS上でのAndroidアプリ実行がシンプルに

blog

won't fix: いまさらながらAndroidのAutofill Frameworkの困った話
TermuxをF-Droid経由に移行しよう! - lisz-works

スライド

Architecture Overview of Fuchsia OS - Speaker Deck
厳しくなったSafetyNet Attestationによる端末チェック - Speaker Deck
Running Android Apps on VM in Chrome OS - Google スライド

Twitter

ぬん。さんはTwitterを使っています 「これ、まじ使える!! もっと早く知りたかった。 #linux のコマンドラインからめっちゃ簡単に #Android とかに通知送れるの。 時間かかる計算とかコンパイルしている時に超絶便利。 /Send push notifications to your phone or desktop via PUT/POST https://t.co/gWQLOdwFbl https://t.co/oBAoQ6Dlls」 / Twitter
ntfy.sh | PUT / POSTを介して携帯電話にプッシュ通知を送信します
binwiederhier/ntfy: Send push notifications to your phone or desktop using PUT/POST
κeenさんはTwitterを使っています 「Googleの作ってるOS、Fuchsiaのセキュリティについての書き散らし。メッセージパッシングにすることで権限管理がやりやすいよねと。Fuchsiaはかなりの部分がRustで書かれている。 cr0 blog: A few thoughts on Fuchsia security https://t.co/TKQYWVkhwZ」 / Twitter
cr0 blog: A few thoughts on Fuchsia security
Makoto Kato ︎︎さんはTwitterを使っています 「Chrome OSの利点ってアップデートも含めだと思うのだが 、こういうChrome OSのforkをインストールしてって話はセキュリティの担保の保証が難しいので勧めるのはどうかと思う。(CloudReady自体はGoogleが買ったから別になるかもだけど) https://t.co/rasVmwhdZT」 / Twitter
Windows 11に見捨てられたPCをChromebook化して幸せに:小寺信良のIT大作戦(1/4 ページ) - ITmedia NEWS
Makoto Kato ︎︎さんはTwitterを使っています 「担保の保証ってなんで2重になってんだ。書き直しミスった」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@makoto_kato CloudReady のアップデートポリシーってどうなるんですかねぇ。 ホンモノのChromebookの方もアップデートは機種毎の期限付だし、こう言う目的には合わなさそうですが。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「@ichinose_iroha 現時点でなにも考えてないと思いますよ」 / Twitter
Taku KudoさんはTwitterを使っています 「chromebook以外使うのホント辛い。クラウドネイティブじゃないレガシーOSって、いちいち「保存しますか」的なダイアログが出てイライラする。」 / Twitter
FadisさんはTwitterを使っています 「Freedrenoの作者が開発の近況を解説している話。FreedrenoはQualcomm SnapdragonのGPU用のOSSドライバで、リバースエンジニアリングで開発されている。このドライバはAndroidで既に使われているが、Snapdragon上で動くChromeOSのために改良が進められてきた事が述べられている https://t.co/hVSeQeb1DL」 / Twitter
Google Is Successfully Using The Open-Source Qualcomm GL/VLK Drivers On Chromebooks - Phoronix
FadisさんはTwitterを使っています 「SnapdragonはAndroidで定番のパワフルなARM SoCだが、純正のGPUドライバはdolphinの開発者からHorribleと評される品質だった。マシなドライバを自作しようとFreedrenoを立ち上げたRob Clark氏らをGoogleが雇い、Pixel3a以降のGoogleのAndroid端末では純正ドライバではなくFreedrenoが用いられている」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Googleアカウント (Gmail等) は、しばらく使わないでいるとある日「このデバイスから本人確認する手段がありません」としてログインできなくなるらしい。Amazonでも似たような問題があるという。たとえ利用料を払っていてもサポートはないも同然。 https://t.co/w5O3ZpHjNU」 / Twitter
Ask HN: Gmail account security | Hacker News
エヌユルさんはTwitterを使っています 「最近のAndroid端末はswap機能を備えてることが増えてきたんだけど、 Windowsの用語に合わせて「仮想メモリ」って言われてることが多くて「いや違うだろ」ってよくなってる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Android 13の新規APIを見てたけど、これは自分が一番ほしかったやつでは? datalistとかspellcheckerの実装に使えるのではと https://t.co/FC3uoCYPUd」 / Twitter
TextAttribute  |  Android Developers

shinobu.dartさんはTwitterを使っています 「いや、ほんとAndroid Code Search コードを読む上でほしい機能が揃いまくっててすごすぎるよこれは☺️ https://t.co/FXQ78WY99w」 / Twitter
Android Code Search
Downloading the Source  |  Android Open Source Project
The Android Source Code  |  Android Open Source Project
Selecting Devices  |  Android Open Source Project
Codenames, Tags, and Build Numbers  |  Android Open Source Project
Android Compatibility Definition Document  |  Android Open Source Project
platform/ - Git at Google
platform/development.git - Git at Google
android/platform_development
Androidタブレットを強力カスタマイズ、「最高の業務機材」にできるAPI「CSDK」とは? ~起動ロゴ変更やボタン無効化もできる、Lenovo専用API~ - INTERNET Watch
Termuxでpkg(apt)が使えない問題を解決する(2021年5月) - Qiita
Chrome OSコードは、ゲーム用Chromebookが発売する可能性があることを示しています|自作.com

Linux, POSIX, UNIX, Multics

GIGAZINE

世界で最も使われるオープンソースのUNIX系OS「Linux」が生誕30周年 - GIGAZINE
宇宙の極限状態で動作する「リアルタイムオペレーティングシステム」とは? - GIGAZINE

技術評論社

2021年8月26日 Happy Anniversary! Linux,30歳になる:Linux Daily Topics|gihyo.jp … 技術評論社
2021年12月7日 「OpenIndiana Hipster 2021.10」がリリース,OpenSolaris後継の最新版:Linux Daily Topics|gihyo.jp … 技術評論社
2021年9月10日 Linusもたまには折れる!? "-Werror"問題は「"COMPILE_TEST"有効時」で決着:Linux Daily Topics|gihyo.jp … 技術評論社
2022年1月12日 2022年最初のカーネル「Linux 5.16」がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
第699回 「ファイル(Nautilus)」のさまざまな機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第701回 ストレージ管理ツール「ディスク」を活用する[2022年版]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2022年2月9日 StarlingX ―OpenStackの流れを汲むエッジコンピューティングのオープンソースプラットフォーム:Linux Daily Topics|gihyo.jp … 技術評論社
2022年2月21日 Fedora,pkexecをオプション扱いに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
第705回 Radeon Software for Linuxを使用する[2022年版]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第708回 GUIでネットワーク設定を行う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2022年3月25日 Linux 5.17がリリース,「AMD P-State」新ドライバサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
2022年3月29日 Debianプロジェクト,ポイントリリース「Debian 11.3」「Debian 10.12」を同時に公開:Linux Daily Topics|gihyo.jp … 技術評論社

ZDNet Japan

トーバルズ氏が語ったLinuxカーネル開発者や開発の未来 - (page 2) - ZDNet Japan
トーバルズ氏と振り返る、30年前に"趣味"で始まった「Linux」の初期やこれまで - ZDNet Japan

マイナビニュース

11月WebサイトLinuxシェア、Ubuntuの増加傾向続く | TECH+
LinuxやmacOSでWindowsアプリを動作可能にする「Wine 7.0」リリース | TECH+
Webサイト向け2月Linuxシェア、Ubuntuが増加 | TECH+

VA Linux エンジニアブログ

vmlinuxのヒミツ - VA Linux エンジニアブログ
vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その1 - VA Linux エンジニアブログ
.note.ABI-tagとはなにか - VA Linux エンジニアブログ
AF_XDPアプリケーション性能特性の定性的評価 〜レイテンシ編 - VA Linux エンジニアブログ
vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ - VA Linux エンジニアブログ

blog

Linux Kernel 5.15リリース。LTS版、新しいNTFS対応ドライバ、インカーネルSMB 3サーバ、不揮発性メモリへのスワップアウトなど新機能 - Publickey
お手軽Linuxカーネル開発/自動テスト - 覚書
GNU/Hurd Continues Effort To Use NetBSD's Drivers For Better Hardware Support - Phoronix

OSDN

「Linux 5.16」が公開 | OSDN Magazine
米MSのLinuxディストリビューション「CBL-Mariner Linux」、最新版ではISO提供 | OSDN Magazine
microsoft/CBL-Mariner: Linux OS for Azure 1P services and edge appliances
Linuxはバグ修正の優等生、平均25日で修正ーーGoogleのProject Zero | OSDN Magazine
LinuxベースのネットワークOS、「DENT 2.0」が公開 | OSDN Magazine
「Linux 5.17」が公開 | OSDN Magazine
セキュリティ修正が中心の「Debian 11.3」が公開 | OSDN Magazine

Qiita

組み込みLinuxデバイスドライバの作り方 (11) - Qiita
NetBSDを手探りで移植したときの話 - Qiita

Twitter

stage0

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最初のバイナリシードを最小にするために頑張っているのだが、実はもう一つ大きなバイナリシードが残っている。この作業をするためのLinuxカーネルで、これはホストのカーネルを使っている。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「具体的に言うとホストのカーネルを使ってchroot jailかqemu(もしくはUSBストレージに書き出してベアメタルブートもできる)で作業する。」 / Twitter

histric

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU/Linuxのreproducibleなブートストラップへの道のりが長すぎる。 https://t.co/EkfG1aFoHT」 / Twitter
live-bootstrap/parts.rst at master · fosslinux/live-bootstrap
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「お使いのGNU/Linuxのバイナリは本当に信頼できる? ソースからコンパイルしてるって言っても最初のコンパイラーはバイナリで手に入れてるよね。何十MBものバイナリを検証なんかできるわけがない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「この問題は、検証可能なサイズのバイナリからブートストラップを始めることにより解決できる。そのためのプロジェクトがlive-bootstrapで、その最初に存在するのがstage0」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もともとGNU Mesというプロジェクトがあり、それを発展させる形でさらに推し進めた。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Mesは簡単な5千行のCで書かれたScheme実装と、schemeによるCコンパイラーとlibc。これは多少パッチを当てた軽量Cコンパイラーのtccをビルドでき、tccはgcc 2.95.3をビルドできるので、これでブートストラップが完了する・・・はずだった。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「5千行のCコードは検証しやすいが、結局それをコンパイルするのにバイナリが必要になる。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そこで出てきたのがstage0。これは主要なアーキテクチャー用に書かれた500バイトほどのhexアセンブラー https://t.co/wQchEOMe8g」 / Twitter
oriansj/stage0: A set of minimal dependency bootstrap binaries
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「これで最初のseedたるバイナリは数バイトのhex0にまで落とし込むことができる。hex0アセンブラーはhex1をコンパイルし、hex1はhex2をコンパイルし、hex2はM0をコンパイルし、M0はcc_x86をコンパイルし、cc_x86はとうとう、C風のコンパイラー、M2-Planetをコンパイルする。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「M2-Planetにまで達したら、いくつかのソフトウェアをコンパイルした上でM2-Planetをコンパイルし直す。その上で出来上がったM2-PlanetのバイナリはM2-Planet用に移植したmesccをコンパイルできる。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「しかしまだ終わらない。この結果できあがったmesccはまだtinyccを完全にコンパイルできない。そこでパッチを適用した不完全版tinyccをコンパイルし、mesccをコンパイルし直し、さらにもうちょっとマシなtinyccをコンパイルし・・・」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「というピンポンゲームを繰り返してtinyccとlibcを5回コンパイルしなおした後に、ようやくlong longとfloatをサポートしたtinyccのバイナリができあがる。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「tinyccが出来上がったので、gzip, tar, sed, patch, makeなどといったソフトウェアをビルドしていくのだが、バージョンがとても古い。最新のバージョンはビルドできないのだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「いくつかのツールをビルドした上でtinycc 0.9.27がビルドできるようになる。これまでビルドしていたのはtiny cc 0.9.26をM2-Planetに移植したもの。これでようやくGNU coreutils 5.0がビルドでき、catとかcpといった馴染み深いソフトウェアを使うことができるようになる。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「その次に必要なのはlexとyaccだ。しかしいきなりflexというわけにはいかない。最新版のflexをコンパイルできる環境はまだない。GNU makeはまだ3.8だし、実はbashもない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「なのでCalderaとSunのコードを引き継いだlexとyaccをビルドする。これでようやくbash 2.05bとflex 2.5.11がビルドできる。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ここまで作り上げてきた環境は色々と問題がありすぎてコマンドライン引数を255個以上取れないなどの成約があるので、ここまで作ってきたツールを使ってmesのlibcやtccをビルドし直す。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「次にビルドするのは軽量libc実装のmusl、今まではmesのlibc実装を使っていたが、これは貧弱すぎてうまく動かないのでここからはmuslを使う。当然これまでにビルドしてきたtccやsedやらもmuslを使うようにビルドし直す。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてようやくm4にたどり着く。m4は古代のマクロだが、もう少し新しいバージョンのautotools, flex, bisonで多用されている。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「grep 2.4やdiffutil 2.7、coreutils 5.0などをビルドしていく。5.0ではうまくビルドできなかったり問題のある一部のツールは6.10からビルドする。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてgawk 3.0.4。これはとても重要だ。というのもまだautomakeやautoconfはないので、しばらくビルドスクリプトはsedやawkを使い自前で文字列置換して動かなければならないからだ」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてようやくperl 5.000にたどり着く。perlはautotoolsのビルドに必要なのだが・・・問題はperlをビルドするのにperlが必要なのだ。そこでビルドにperl依存の少ないとても古いperlを使い、どうしても残っているビルド用のperlスクリプトはawkで実装する。まだperlのconfigureスクリプトは使えない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perl 5.000がビルドできたのでバージョンをあげていく。一気に上げることはできない。5.003→5.004_05→5.005_03→5.6.2 とあげていく。前のバージョンのperlでビルドできる最新のバージョンがこうなっているからだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perlが用意できたのでautoconf 2.52をビルドするが、まだautotoolsがないのでautoconfのスクリプトを自前でインストールした上でsedで文字列置換して動くようにする。autoconf 2.52はperlを必要としない最新のバージョンなので多少楽だ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「automake 1.4-p6が必要。というのも古いバージョンのautoconfからブートストラップしていく必要があるのだが、古いバージョンのautoconfは古いautomakeが必要だからだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「再びmuslやtccのビルド。今回はarコマンドがあるのでtcc -arを使わなくていい。貧弱な環境のため当てていたパッチも当てずにすむ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「autoconfのバージョンがとても大量に必要。ツールごとに使えるautoconfのバージョンが異なるからだ。新しすぎてもいけない。古すぎてもいけない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「help2manのビルド。必須というわけではないが、これでドキュメントの生成をスキップするためのパッチが不要になる。findutils、libtoolなど」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GCC 4.0.4、やったねだいぶ新しいぞ。でもビルドするのはCフロントエンドだけ。あとトップレベルmakefileもまだ使えない。」 / Twitter

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「成約はあるもののGCC 4.0.4が手に入ったので最新のmuslやbash 5.1がパッチを当てずにビルドできるようになる。そう、今までは成約がありすぎて色々とパッチを当ててごまかしていたのだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「既存のソフトウェアのある程度新しいバージョンをビルドしていく。初めてビルドするソフトウェアはgmpやmpfrやmpcなど。任意精度整数や浮動小数点数ライブラリ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「flex 2.5.33をビルド。 すでにbison 3.4.1をビルドしているのだが次に控えるperlのために古い2.3をわざわざビルドしなければならない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perl 5.10.1をビルド。perl 5.32.1をビルドするために必要。このperlを使ってperl 5.32.1をビルドする。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「色々あるがgcc 4.7.4をビルドできる。こんどはC++バックエンドも有効。g++はgperfに依存しているのでパッチを当てて無効化する。このg++を使ってgperfをビルドする。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「多分まだまだ続くんだけど今の所ドキュメントはここで終わっている。」 / Twitter
市川 真一さんはTwitterを使っています 「@EzoeRyou バイナリが信頼の連鎖で作成可能でも、悪意のあるソースコードを検証できるわけではないという印象」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@tenpoku1000 Ken Tompsonの有名なバックドアへの対処法は、最初のseedたるバイナリをできるだけ小さくして人間が検証可能にするしか無い。」 / Twitter
市川 真一さんはTwitterを使っています 「@EzoeRyou 途中から規模の大きなソースコードを導入し始めてる時点で、悪意のあるソースコードが混入してる可能性が排除できないんですよね」 / Twitter
岡田哲哉さんはTwitterを使っています 「ここから始まるスレッド、「ゼロから現代のOSを作るまでの長い道のり」って感じですごく面白い😁」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perlのビルドにperlが必要でブートストラップが大変面倒なことになっているが、perlといえば @dankogai の感想とかがほしい。」 / Twitter
Dan KogaiさんはTwitterを使っています 「@EzoeRyou FreeBSD が userland から perl を外した時のことを思い出した。awk++ 的なスクリプト言語は欲しかったけど、Perl自体は巨大すぎかつさらに成長している最中で、だからと言って perl が自身のビルド用にビルドする miniperl では能力不足で…結局 sh ハッカーたちが sed awk してなんとか山を避け…」 / Twitter
Dan KogaiさんはTwitterを使っています 「@EzoeRyou miniperl とあるように、perl のビルドは2段ロケット🚀いや厳密にはそのあとモジュールのビルドもあるので3段ロケットなのだけど、perl自体が単体でPOSIX userland無双というか一種のbusyboxだけあってビルドもそれ相応に大変だった印象。セルフビルド比較までするgccほどではなかったけど」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@dankogai このブートストラップでperlのビルドにperlが必要なのはperlについてくる生成済みソースファイルを使わずにそのファイルを自力で生成しようとしているからのようで、それさえ無視すればperlを用意するのは楽になりそう。」 / Twitter
Dan KogaiさんはTwitterを使っています 「@EzoeRyou FreeBSD が perl 分離された頃には CPAN も充実してそこからインストールできるものは標準モジュールに入れなくてもよくなったこともあって今や perl 5 は言語実装としてはむしろ小さい方。この辺は emacs が重量級扱いから軽量に分類されるようになった遠隔と似てる」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「具体的に言うとホストのカーネルを使ってchroot jailかqemu(もしくはUSBストレージに書き出してベアメタルブートもできる)で作業する。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最初のバイナリシードを最小にするために頑張っているのだが、実はもう一つ大きなバイナリシードが残っている。この作業をするためのLinuxカーネルで、これはホストのカーネルを使っている。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「s/数バイト/数百バイト/」 / Twitter
Dan KogaiさんはTwitterを使っています 「@EzoeRyou miniperl とあるように、perl のビルドは2段ロケット🚀いや厳密にはそのあとモジュールのビルドもあるので3段ロケットなのだけど、perl自体が単体でPOSIX userland無双というか一種のbusyboxだけあってビルドもそれ相応に大変だった印象。セルフビルド比較までするgccほどではなかったけど」 / Twitter

systemd

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「systemdのunitの書き方をブラウザ上で実際に動かしながら学習できるチュートリアル。targetを追加し、serviceを追加し、service間の依存関係を記述して異常時の対応もおこなう。 https://t.co/zlwsjybZ99」 / Twitter
systemd by example - the systemd playground

同様な経験を得られるエポックメイキングなソフトウエアを開発

Miura HidekiさんはTwitterを使っています 「そうは言っても1990年以前にUNIXを触れると言う経験はこれまでにない価値観を得る経験なので価値があると思う。必要なのはそれを揶揄するのではなく今の時代にも同様な経験を得られるエポックメイキングなソフトウエアを開発することだと思う」 / Twitter
NAKAMURA Yoshiyuki (中村 良幸)さんはTwitterを使っています 「「UNIX 触った事がある自慢」は、おじさんアピールというよりはむしろおじいさんアピールじゃないかなと思った次第です。 (オジーさんなら歌ったことあります😇)」 / Twitter
mattnさんはTwitterを使っています 「UNIX 触った事がある自慢をすればするだけ、おじさんアピールになるのでしません。」 / Twitter
やす⋈尾鷲市に移住してテレワーク中さんはTwitterを使っています 「@mattn_jp 若者なので、毎日UNIX (macOS) 使ってます。若者なので。」 / Twitter
不要になった1円玉を送って欲しいハムスター🐹さんはTwitterを使っています 「UNIXって何? になりつつあるんじゃないか? macOSを除くと、FreeBSDあたりが一番触れやすくて、Solaris、HP-UX、AIXを触る機会って、若い人にはほとんど無いのでは???」 / Twitter
Kazuho OkuさんはTwitterを使っています 「UNIXとは、macOSやHP-UXなどLinuxライクなOSにおいてもサポートされている、Linuxのサブセットを指す言葉です #という見方がエンジニアリング的には妥当だと思う」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「初期のUnixは8Kワード(1ワード=18ビット)のメモリで動き、カーネルで4Kワード、ユーザ空間で4Kワードを使用した。Thompsonは家族が留守の3週間にシェルとエディタとアセンブラをそれぞれ1週間ずつかけて完成。Unixがうまくいったので、研究チームは当時最新の計算機PDP-11を買ってもらうことができた。」 / Twitter
"The early days of Unix at Bell Labs" - Brian Kernighan (LCA 2022 Online) - YouTube
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Brian Kernighan講演 (https://t.co/Tpjcv133Br)。当時ベル研はMulticsプロジェクトから脱退し、計算科学部門は予算もなかった。Ken Thompsonは誰も使わない旧式PDP-7上で階層型ファイルシステムの研究を始め、そのためのテストツールとして開発されたのがUnixだった。 https://t.co/0jO47g22Ye」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザ上で動くUnix。仮想マシンではなく、JavaScriptで動くカーネルが各プロセスをWebWorkerとして起動し、fork, kill, socketなどのシステムコールが使える。C++やGNU Make, LaTeXなどが使用可能。端末機能つき。 https://t.co/nDJjDZIlAn」 / Twitter
Browsix: Unix in the browser tab
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「フルスクラッチで書かれた Unixコア+Win95風UIをもつSerenityOSのデモ。/procがJSONを返してjsでスクリプティングできるなど、モダンな面もある。作者は元薬物依存患者であり、リハビリとしてコードを書き始めたらしい。ブラウザや JS engineも自作されている。 https://t.co/jxfdAkLzOq」 / Twitter
SerenityOS

POSIX と UNIX の違い

Kazuho OkuさんはTwitterを使っています 「僕のようにUNIXについてウンチクをツイートする人は、POSIXとの差分が何かとか説明できて当然だよね。で、何が違うんだろう」 / Twitter
齊藤明紀さんはTwitterを使っています 「問題はUNIXを知らないことじゃなくて、知りもしないのに UNIXはlinuxの一種とかMacのOSはLinuxとか書いちゃうこと。他人に能書きたれるならちゃんと裏取れ。 僕なんか能書きたれるときは「とかいううっすらした記憶が」という逃げ道を常に作っているよ。」 / Twitter
齊藤明紀さんはTwitterを使っています 「UNIX使いだって「メインフレームなにそれ美味しいの?」「LISPマシンなにそれ美味しいの?」的言動は日常茶飯事なので,linux使いがや「unix何それ美味しいの」というのを咎め立てするのは天唾」 / Twitter
Kazuho OkuさんはTwitterを使っています 「base = POSIX なので、違いは curses が含まれるかだけ。ってマジで? https://t.co/5rSVzglc6N」 / Twitter
Kazuho OkuさんはTwitterを使っています 「衝撃のあまりソースはるの忘れた https://t.co/RIat1MAWKg」 / Twitter
The Single UNIX Specification, Version 4 - Introduction
Kazuho OkuさんはTwitterを使っています 「UNIXに詳しい人から「そんなことも知らなかったの?」か「cursesだけじゃないよバカじゃないの?」のどちらかのツッコミが入るのを待ってる」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@kazuho 落ち着いてそのページを下のほうまで読めば、いろいろなマークをつけた記述があって、XSI とマークがついていると POSIX としては optional だが UNIX としては必須とか、書いてある。つまり、curses 以外にも違いはある。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tanaka_akr 本当ですね。ありがとうございます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なるほどたとえば O_SYNC は POSIX ではオプションだけど UNIX だと必須なのか。勉強になる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linuxからPOSIXに入った機能の話もあって良い / https://t.co/MVURGDHZwP」 / Twitter
What is POSIX? Richard Stallman explains | Opensource.com
Kazuho OkuさんはTwitterを使っています 「UNIX認証を得るためにSUSを実装してさえいればいいなら、システムはマルチユーザーである必要すらないんじゃないのかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Linuxに多様な語義があるのと同様に、UNIXにも * 規格としてのUNIX (SUS) * UNIX認証を受けた製品 * UNIX認証を受けた製品群の普遍的特性 * UNIX系OS みたいな多様な語義があって、そこが文脈で分からない限りは明確に書き分けないと混乱するってことなんだと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「"z/os is different from Unix. There does not exist a single root password or root user. User IDs are external to z/OS UNIX System Services." これでUNIX認証取れるんだから面白い https://t.co/HUCYlhH6BH」 / Twitter
How to find the root user in the specific USS? - Mainframe Security
Kazuho OkuさんはTwitterを使っています 「UNIXの仕様的には "Processes have appropriate privileges, and there is no concept of the ``superuser'' or ``root''." https://t.co/RIat1MAWKg」 / Twitter
The Single UNIX Specification, Version 4 - Introduction
Kazuho OkuさんはTwitterを使っています 「このWikipediaの説明はよく出来てて「UNIX系OS」ではないUNIX(メインフレームOSであるz/OS)も「互換レイヤーとしてのUNIX」と上手にカバーしてるんだけど、「UNIXとはUNIX系OSの中でUNIX認証を受けたものだ」という俺々定義がされがちなのよね… って秘書のアブドルが言ってた」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「UNIXってOSの血脈(同一コードから派生した仲間)で、BSD系統とSysV系統(天皇家と源氏と平氏のような(笑))がありMacOSXはBSD系統に属する。 https://t.co/qSPmTYEOpd MinixやLinuxは全く関係なく同じコンセプトで作られた。但しLinuxには名誉UNIXになっているものもある(笑)」 / Twitter
Unix-like - Wikipedia
まさみさん⋈語りたいさんはTwitterを使っています 「参考 https://t.co/3RtJhFZSyn 「 Many ancient UNIX systems no longer meet this definition.」っていうところが面白。」 / Twitter
Unix-like - Wikipedia
Miura HidekiさんはTwitterを使っています 「そういればLinuxとUNIXを厳密に区別するくらい言葉に厳密な人たちが、JITコンパイラという意味でJITと表記しても何も文句を言わないのだろう?」 / Twitter
Tadachika OkiさんはTwitterを使っています 「@miura1729 関心について、 OS の方がコンパイラより強く、概念に対する解像度が異なるということではないでしょうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@salmoncrawler 多分そう言う話だと思います。正確にはOSの方がコンパイラより概念に対する解像度の高い人が多いと言うことですね」 / Twitter

数学の素養

Naoya HoriguchiさんはTwitterを使っています 「iff が話題になっているけど、似たような数学の素養が試されると思った場面に、半閉区間 [a, b) がある。カーネルコミュニティでもアドレス範囲を議論するときに普通に使われているけど、社内レビューで「なんだよそりゃ、プゲラ」という人がいた。」 / Twitter
satさんはTwitterを使っています 「typo修正PR投げようとしてる人に言いたいのは"iff"は"if"のtypoではないこと(if and only ifの意)があることである。わたしは就職したてくらいのときにそれを修正して「それは意図的だ」と返された」 / Twitter
arhさんはTwitterを使っています 「@satoru_takeuchi 昔見たコードで、tmpa、tmpb、tmpc、なんてのが出て来て、なんて雑な naming だと思って読み進んだら、ASCIIコード用、ブール値用、カウンタ用になっていて感動したことがあります。でも、コメント付けろよ、とも思ったものです。」 / Twitter
FUJI GoroさんはTwitterを使っています 「"iff"、コメント読んだ人にしばしば伝わらないことが広く知られているので、ちゃんと "if and only if" と書くべきだと思ってます。」 / Twitter

Rust

ytakanoさんはTwitterを使っています 「Linux nextにrustと言うディレクトリが掘られていて、色々あって面白い。 https://t.co/oBvpGXhX29」 / Twitter
rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
ytakanoさんはTwitterを使っています 「Linux Rustのpreludeはkernel::preludeっぽい。 https://t.co/a9GooZmtR2」 / Twitter
prelude.rs « kernel « rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
ytakanoさんはTwitterを使っています 「カレントタスクはTask::current()で取得できて面白い。Iteratorは実装してないのかな? https://t.co/dxMfOK9MXv」 / Twitter
task.rs « kernel « rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
ytakanoさんはTwitterを使っています 「TaskがDropで自動的に参照カウンタをデクリメントするから、currentで取ってきた場合はManualllyDropするためにTaskRefと言う別の型にしているのか。cloneすると参照カウンタがインクリメントされてTask自体が返ると。なるほど。」 / Twitter
ytakanoさんはTwitterを使っています 「幽霊型でsend出来なくしてるのか。賢いな。」 / Twitter
Danna@クラウドネイティブジャパニーズな電網妄想さんはTwitterを使っています 「@ytakanoster この前、SREconで、Linux Kernelとドライバをrustに書き換えまくってるぜ!全部rustに変えるのが目標!っていうと叫んでる人がいたので、マジメにKernelコードからCが無くなる日が来るのではと期待している…」 / Twitter
ytakanoさんはTwitterを使っています 「Rustでコード書いていたら、アドレスの挙動が意味わからなくてLinuxカーネルソースまで見るハメになった…」 / Twitter

histric

histric-1

暗黒美無王 dark VimさんはTwitterを使っています 「これを読むと、なぜArchLinuxが流行らないのかがわかりやすいですよ。 広く使われるLinuxは安定していて、そこに価値があるんです。 https://t.co/5p0kyP9rtz」 / Twitter
「Steam」開発のValveはなぜDebianからArch Linuxに乗り換えたのか? - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxカーネルモジュール・プログラミングガイド。必要なツールの準備方法、Hello Worldモジュールの書き方から始まって、characterデバイスの設計、/procの対応、mutexとspinlockを使った排他制御、割り込みやあ暗号の扱いなどまでソースコードレベルで詳細に解説している。 https://t.co/WEVReuA1Qu」 / Twitter
The Linux Kernel Module Programming Guide
Hacker MaskeeさんはTwitterを使っています 「これ、Linuxと386BSDの作者の行動の違いが大きかったと思うよ」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「これ、なぜなのかな?BSDのほうが取っつきにくかったとか、そういう理由があるんだろうか?」 / Twitter
Hacker MaskeeさんはTwitterを使っています 「パッチをガンガン取り込んでくれたというのと、全然反応してくれなかったというのの差があったと思う」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「386BSDを書いたJolitzがパッチを取り込んでくれなくて、仕方ないのでJolitzとは別にパッチをまとめるグループができて(patchkitグループ)、なんだかんだでNetBSD, FreeBSD, OpenBSDにそれが分裂してっていうのはわりと不幸な歴史だったなあ」 / Twitter
FadisさんはTwitterを使っています 「今から丁度30年前の1991年8月25日、USENETのminixコミュニティに「386 AT互換機向けのOSを作っている。4月から作っていてようやく公開できそうだ。」という人物が現れた。ほどなくしてlinux-0.01がリリースされた https://t.co/zjpzNlECFo」 / Twitter
Happy birthday – 30 Years of Linux | Ubuntu
Naoya HoriguchiさんはTwitterを使っています 「昨日のカーネルレポートの資料、アナウンスされてないけど以下からアクセスできるようだ。 https://t.co/u9ntDhMpRO」 / Twitter
202b11889d9ccbba9d15344fc708bc66f2d2b278-1629987572843.pdf
ドッグさんはTwitterを使っています 「MS-DOS に Linux を統合し,DOS 窓から DOS アプリケーションと Linux アプリケーションの両方を使えるようにしたらしい(なぜ…) | 'haileys/doslinux: Run Linux programs on DOS' https://t.co/2AMysnxVI4」 / Twitter
haileys/doslinux: Run Linux programs on DOS
yukiさんはTwitterを使っています 「Linus曰く、来年にはカーネルの主要な部分にRustのモジュールが統合されるかも、とのこと。いよいよなのかな!その他、LinusはCのいくつかの難点をRustでは解決できてるかも、と見ているなど😳/Linus Torvalds on Community, Rust and Linux’s Longevity https://t.co/BzBBWdG3l3」 / Twitter
Linus Torvalds on Community, Rust and Linux’s Longevity – The New Stack
Yasunori GotoさんはTwitterを使っています 「まあ、そうなんだけど、動きを止めるだけで無く、問題のありそうなソフトを判定して除去してくれる機能が無いので、そこら辺が一般の人への納得性を難しくしてる感はあるな。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxの場合、下手なアンチウイルスソフト入れるより、コミュニティで開発されてる最新のセキュリティ機能を動かすほうがよっぽど安心できる。取り敢えずselinux有効にするだけでも相当効果が期待できるのは草。」 / Twitter
ガクムラ氏さんはTwitterを使っています 「金融領域でもUNIX系だったからか、サーバにアンチウィルスソフトを入れろって言われたことはないな。LinuxやWindows Serverだったらまた事情が違ったのかもしれない。アンチウィルスソフト、いろいろお行儀が悪いことができて稼働システムへの影響が予測し難いのでサーバには入れたくないですね。。」 / Twitter
FadisさんはTwitterを使っています 「2次記憶の急激な性能向上に対してLinuxカーネルがボトルネックにならないようにLinuxではブロックレイヤーの改良が続けられていて、最新のカーネルでは820万IOPSを達成したという話も出ている。その一方で、入れたら性能に響くタイプの機能追加が難しくなっている問題について https://t.co/ZK76rBZ5nA」 / Twitter
FadisさんはTwitterを使っています 「PhoronixによるFreeBSD DragonFlyBSD NetBSD OpenBSD ClearLinux CentOS Ubuntuの幅広いタスク、比較的新しいCPUのベンチマークの比較。大体Linuxが強いがスレッドの作成やメモリ確保では突然FreeBSDがLinuxを圧倒したり、OpenSSLベンチではDragonFlyBSDが最速になったりする https://t.co/xYgNxYnDbz」 / Twitter
Benchmarks: FreeBSD 13 vs. NetBSD 9.2 vs. OpenBSD 7 vs. DragonFlyBSD 6 vs. Linux - Phoronix
7594591200220899443さんはTwitterを使っています 「UNIXのシェルは対話環境になぜだかオートパイロット機能がついてきているわけだけど、このデザインはさほど自明ではないよな。一体どういう経緯で誰が着想したんだろうね。」 / Twitter
Yusuke EndohさんはTwitterを使っています 「@shyouhei Louis Pouzin って人が着想したっぽい文書を発見しました https://t.co/Pn58sKawcj」 / Twitter
The Origin of the Shell
7594591200220899443さんはTwitterを使っています 「@mametter へー。すごい。面白い。初めて知りました」 / Twitter
Yusuke EndohさんはTwitterを使っています 「@shyouhei 参照されてる論文読まないとよくわからないですが、コマンドのオートパイロットツール(RUNCOM)が先に作られて、それから似たようなコマンド体系を持つ対話環境が開発されて、Multicsを作るときにそいつらを合体させた(なぜ?)、という雰囲気ですかねえ」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Q: 何故、この着想に至ったのか? A: あれこれ試行錯誤した結果、残ったのがこの方法だった」 / Twitter

Kazuho OkuさんはTwitterを使っています 「linux vs. minix論争を読んだときの僕「きれいに設計されたインターフェイスとか二の次だよね」 gitを使うときの僕「なんだこの最悪なインターフェイスは!」」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「「不揮発メモリへのスワップアウト」って... https://t.co/78jeFLFQmY のことを言っているんだと思うけど、マイグレーションとスワップアウトは別物です。」 / Twitter
Linux_5.15 - Linux Kernel Newbies
だめぽラボ@技術書典9さんはTwitterを使っています 「みんな[誰?]が欲しているのはPOSIXではなくLinuxだし、標準C++ではなく&lt;bits/stdc++.h&gt;の使えるG++だし、WebブラウザーではなくてChrome/Chromium」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「BSDがなぜLinuxになれなかったのか論争を定期的にみるけど、所詮IBMとかの開発リソースを持った企業がどっちについたかだけだと思うんだけど。所詮リソースが多いほうが勝つ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「1990年後半にIBMがLinux+Javaを選択したからね」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GNU coreutils 詳細解説。各コマンド (ls, dateなど) について、大まかな流れ、使っているC構造体、各関数の動き、エラー制御などを細かく解説している。システムプログラマ必読。 https://t.co/AHl1BYWlYV」 / Twitter
Decoded: GNU coreutils – MaiZure's Projects
mattnさんはTwitterを使っています 「mkdir はもともと親ディレクトリを作らなかった。その後、mkdirhier という名前で親ディレクトリを作るコマンドが誕生し、X11 ディストリビューションに含まれる様になったが、mkdir コマンドが -p フラグでその機能を取り込む様になった。それが今の形。」 / Twitter
mattnさんはTwitterを使っています 「でなぜデフォルトじゃないかって話だろうけど、それは単に歴史だと思うし DIR=/path/to/backup/(date +%Y%m%d) if mkdir $​DIR; then backup $​DIR fi が便利だからってだけな気もする。」 / Twitter
mattnさんはTwitterを使っています 「>Because no error is produced if any path component already exists, the -p option is also useful to ensure that a particular directory exists. あぁなるほどね。 https://t.co/KPGsuWZuwE」 / Twitter
mkdir
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「すべてGoで書かれたRaspberry Pi用の Linuxユーザーランド。init以下すべてGoで書かれている。 https://t.co/TXgIFznBxw」 / Twitter
gokrazy/gokrazy: a native Go userland for your Raspberry Pi 3 or 4 appliances (or amd64 PCs!)
FadisさんはTwitterを使っています 「メンテナ不在で廃止が検討されていたLinuxのfbdevドライバに、新しくメンテナになるべく名乗りをあげる人物が現れたらしい。名乗りをあげたHelge Deller氏はLinuxのPA-RISCアーキテクチャのサポートで活躍している人物。今はとりあえずメンテナ変更のPRをLinus氏が通した段階 https://t.co/1FiMqn8ZU4」 / Twitter
Developer Steps Up Wanting To Maintain Linux's FBDEV Subsystem - Phoronix
FadisさんはTwitterを使っています 「fbdevはLinuxに古くから備わっているグラフィックハードウェアを抽象化するインターフェースで、専用のキャラクタデバイスに書いた通りの画像が画面に表示される。アクセラレータを持つハードウェアを全く活用できず、今日ではがっつりGPUを使う方面はDRM/KMSにとってかわられている」 / Twitter

Ubuntu release cycle | Ubuntu
Releases - Ubuntu Wiki
2021年10月22日号 Ubuntu 22.04 LTS “Jammy Jellyfish”の開発開始:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
UNIX®, an Open Group Standard
The Register of UNIX® Certified Products
Beyond Linux® From Scratch
The Linux Kernel Archives
Interactive map of Linux kernel
/pub/FreeBSD/releases/amd64/amd64/ のインデックス
NetBSD Internals
MR12.7 - Multics Wiki
BAN.AI Public Access Multics
Ban.ai Public Access Multics | Hacker News
低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|Webエンジニアのキャリアを考える!
「Wine 7.0」が正式リリース ~新しいWoW64アーキテクチャーなどを導入 - 窓の杜

Plan 9

Plan 9 Foundation
Plan 9 From Bell Labs - Plan 9 from Bell Labs 翻訳プロジェクト
Plan 9 from Bell Labs in Cyberspace! - Nokia Bell Labs
plan9foundation/plan9: Plan 9 History, from 1992-09-21 to 2015-01-10.

FreeDOS

OpenGEM

GUIデスクトップ(2) - GEM - - DOS環境構築日記
OpenGEM - Opendawn
shanecoughlan/OpenGEM: OpenGEM is a non-multitasking 16-bit graphical user interface (GUI) for DOS. It is an extended distribution of FreeGEM that includes features of the original Digital Research GEM. Learn more here: http://www.opendawn.com/opengem/
Graphics Environment Manager - Wikipedia
GEM (desktop environment) - Wikipedia

1.2

FreeDOS 1.2 がリリースされたので FreeDOS/V 化してみた: Aiming Off のブログ
FreeDOS 1.2正式版がリリース - 新しいインストーラーやコマンドが追加

1.3

FreeDOS 1.3 Release Candidate Available For Retaining MS-DOS Compatibility In 2019 - Phoronix
FreeDOS 1.3が登場、2016年以来の最初のメジャーアップデート|自作.com
2022年2月22日 「FreeDOS 1.3」がリリース,オープンソースのMS-DOS互換OSが5年ぶりにアップデート:Linux Daily Topics|gihyo.jp … 技術評論社
「FreeDOS 1.3」がリリース ~オープンソースの「MS-DOS」互換OS - 窓の杜

FreeDOS | The FreeDOS Project
FreeDOS/Vページ
microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes
MS-DOSに続いてGW-Basicがオープンソースに
microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983
RawWrite for Windows: FDをイメージ化したりイメージをFDに戻すツール - ぼくんちのTV 別館
chrysocome.net - RawWrite for Windows
ibiblio FreeDOS Package -- OpenGEM desktop (Utilities)
DosUSB - providing USB support for DOS
http://bretjohnson.us/forum • View topic - FreeDOS and USB Flash Drives
Karellen's Unix Blog: Basic networking with FreeDOS
Antique Software
FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する - Qiita
日記 (2014 年 3 月下旬)
DOSBox, an x86 emulator with DOS
File Cabinet - JamesOnline - Electrical Controls
open-watcom-v2/usage.sp at master · open-watcom/open-watcom-v2
DJGPP
MS-DOS Player for Win32-x64 謎WIPページ

Illumos

illumos - Wikipedia
Illumos - Wikipedia
illumos
illumos

Theseus

ドッグさんはTwitterを使っています 「Rust で開発されてる live evolution や fault recovery を備えたモダンな OS.組込みシステムやデータセンターのエッジなどを想定してる.Intel NUC とかの実機でブートできるらしい | 'theseus-os/Theseus' https://t.co/QbGCc5YNJW」 / Twitter
theseus-os/Theseus: A modern experimental OS written from scratch in Rust to explore novel OS structure and state management techniques.
ドッグさんはTwitterを使っています 「知らなかったけど2017年から開発されてるのか.去年最新の紹介論文が OSDI '20 で出てた https://t.co/rJSsubxxEA」 / Twitter
theseus_boos_osdi2020.pdf

TRON

トロンフォーラム
製品紹介 / 特長 - 超漢字ウェブサイト
TRONWARE VOL.191 - パーソナルメディア書籍サイト
μITRON4.0仕様に準拠するためには | OsaruSystem
なぜTRON OSが「非常に優れていたが外圧で潰された」とか「組み込みで世界標準OSだ」とかいう誇張された伝説をいまだに信じている人が大勢いるのですか?に対するFurukawa Isaoさんの回答 - Quora
もなかさんはTwitterを使っています 「実身仮身ファイルシステムとか TRON 文字コードとか、構想先行の部分はあったけれども。 そして、割と上手く行かなかったのは構想先行の部分に偏っている、という雑感はある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「実身仮身ファイルシステム、ナイーブに考えると何の制約もないグラフになるから実装大変だろうなって思う。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 ファイルシステムにデータモデルをマップしていると(例えば大きなCG映画の製作過程)、木構造の制約がきつくて有向グラフに出来たら楽なのにと思うけど、実際やろうとしてみると性能や安定性、そして何よりユーザのメンタルモデルがついていけなくなる」 / Twitter
もなかさんはTwitterを使っています 「今の技術と使える計算機資源で、実身仮身ファイルシステムと TACL を実装するなら、どう作るだろう。 というのは、暇なときに、時々考える。 分散ハッシュとスマートコントラクトになるのだろうねぇ。ぶろっくちぇーん。」 / Twitter
もなかさんはTwitterを使っています 「DHT に基づく分散ストレージだけで、概ね作れちゃいそうだけど。 永続性の強いリンクを張り続けようとすると、復元できる履歴を保存する必要がある。 そうすると、ブロックチェーンのお出ましだわなぁ。」 / Twitter
四弦/超越基底:いぶきさん.kml (佐藤陽花)@分散処理/RT-OS/コンピュータ言語さんはTwitterを使っています 「@monamour555 今これに取り組んでいます 恐らく今冬か来年あたりには最初の学会発表できそうではあります」 / Twitter

Rust

フリースタンディングな Rust バイナリ | Writing an OS in Rust
新しい抽象化とインフラストラクチャを備えたRust for Linuxの進歩とは
Writing an OS in Rustを読んでの気がつき
Writing a Linux-compatible kernel in Rust
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
κeenさんはTwitterを使っています 「メモリ不足でパニックするのは標準ライブラリの設計ですね。言語仕様ではない。なので標準ライブラリ相当のものを自前で実装すればパニックしないことも可能です。」 / Twitter
κeenさんはTwitterを使っています 「これ、Rustにメモリ確保するような構文あったっけと思ってメーリスのスレッド追ったけどLinusは「Rustよく分からないけどもしそんな構文があるならダメだよ」くらいのニュアンスで言ってるっぽい。続くスレッドで標準ライブラリの作りの問題だからライブラリどうしようねと議論が続いてる」 / Twitter
κeenさんはTwitterを使っています 「Linusの続く返信これね。Rustの標準ライブラリの 多くの型の `new` 関数がC++の `new` 構文相当の挙動するのがよくないと言及してる。それをやめて `Result` にするような関数群を用意する方針になるだろうとも。 https://t.co/OZUE4ybuw6」 / Twitter
LKML: Linus Torvalds: Re: [PATCH 00/13] [RFC] Rust support
κeenさんはTwitterを使っています 「結構昔から組み込み方面でもパニックしないタイプのAPI群が欲しいという要望は上がってて、プランとかも上がってたけど結局進んでないなぁ。Rustの作りとしてアロケータが絡むAPIは分離されてるからそれを使わずに自分達で再実装するかRust側にno-panicサポートを要求するかになるんじゃないかな?」 / Twitter
嶋田大貴さんはTwitterを使っています 「Cコンパイラの生成したコードはヒープに勝手にメモリを確保したりしないけど、Rustみたいにメモリ管理込みの言語だとコンパイラがヒープ確保込みのコードを生成することになるだろうからメモリ不足状況下でパニックするのでは?ユーザーランドならいいけどカーネルでそれはダメやろ?ってことですね。」 / Twitter
嶋田大貴さんはTwitterを使っています 「mallocに失敗した時にシステムを停止させずにきちんとエラーリターンできるかどうかっていうのは組み込み系の人ならいつも気にしてるんじゃないのかな知らんけど。気にするとしんどいので代わりにstaticなアドレスに固定長でスペースを確保しておくとかしがち(可能なプラットフォームなら)だと思う。」 / Twitter
嶋田大貴さんはTwitterを使っています 「MMUのないプロセッサで任意の物理アドレスにアプリケーションをロードして走らせるようなプラットフォームだと static使えなかったりするんだよね。あ、嫌な思い出が・・・」 / Twitter
嶋田大貴さんはTwitterを使っています 「嫌な思い出が実は夢であって欲しいと brew arm で検索したらMacの情報しか出てこなかった。」 / Twitter
Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
Rust言語によるOSと言語処理系ができるまで - 未完成な論を綴るブログ
BLisp言語のドキュメントを作成しcrates.ioに登録してみた - 未完成な論を綴るブログ
自作言語BLispがHackers Newsで話題になっていた - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「Linux Kernel in Rust、panicするアロケータを取り除いたと書いてある。 https://t.co/kqOdpmapuZ」 / Twitter
[PATCH 00/17] Rust support - ojeda
ytakanoさんはTwitterを使っています 「アロケータがOptionで返ってくると、データ構造のnewやinsertの返り値ももOptionにしないといけないような。」 / Twitter
入門 Reseaオペレーティングシステム
Linuxカーネル開発の第2言語にRustを採用する試み、議論の意義とこれから - ZDNet Japan
まちカドおるみんさんはTwitterを使っています 「ownership はべつに Rust 固有ではなく C++ の unique_ptr と move semantics でも実現されているもの。だけれど、これを型システムに折り込んだものが研究ではいくつかあれど実用される上で中々見ないというだけだと思う。」 / Twitter
2021年8月第4週 Android OSの開発にRustが使われる:Android Weekly Topics|gihyo.jp … 技術評論社
Hideyuki TanakaさんはTwitterを使っています 「https://t.co/vxYAxSU4yg ChromiumもRust使おうとしてんの?(´・_・`)」 / Twitter
c5fb8a006339ad45fef217f7c0045df6f6a45f4c - chromium/src - Git at Google
Hideyuki TanakaさんはTwitterを使っています 「GAFA&MSのなかで、Rustを使っていないのAppleだけ(´・_・`)」 / Twitter
HatさんはTwitterを使っています 「@tanakh ちょうど今週のThis Week in RustにAppleのRust求人が。実は使ってるっぽいです。」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「@n_hatta ふむふむ、メディアプロダクツでJava、Rust、C#、Swiftでのバックエンドシステムの経験ですか。そういうところにRust使ってる(使おうとしてる?)んですねえ。」 / Twitter
RustでRTOSを考える - Ryuz's tech blog
Rustをフル活用したリアルタイムOS「Tock」の特異性:リアルタイムOS列伝(18)(1/3 ページ) - MONOist
この個人サイトは自作OSで動いています - seiya.me
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「学部生が、ユーザーランドとカーネルスペースの空間が同じでも、Rustなら安全に書けるという事の凄さを理解したっぽくて、興奮していた。その凄さがわかってくれて俺は嬉しいよ。」 / Twitter

Wikipedia

アポロコンピュータ - Wikipedia
Apollo Computer - Wikipedia
Magic Cap - Wikipedia
Magic Cap - Wikipedia

Twitter

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バージョン博物館。MacOS, Photoshop, Word などのアプリから、Amazon, Google Mapsなどの有名サイトまで初期バージョンから現在までの変遷を展示している。 https://t.co/X5L74qhffS」 / Twitter
Version Museum: A Visual History of Your Favorite Technology
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザ上で動作するPDP10エミュレータ。これを見ると、昔のコンピュータってPC(プログラムカウンタ)の変化を目で追えたんだな...ということに気づく。 https://t.co/a7b8yso8mn」 / Twitter
paulnank/nankervis-pdp10-js: DECsystem-10 (PDP-10 KI10) Emulator in Javascript
Miura HidekiさんはTwitterを使っています 「CP/CMSですね。https://t.co/aMbX2mEL5Z 学部の頃に使っていてなんでこんなめんどくさい構成なんだろう?って思いましたが、今思うとものすごい先見の明だなって思います。」 / Twitter
z/VM - Wikipedia
齊藤明紀さんはTwitterを使っています 「ユーザーが個別に仮想マシンを持っててそこでシングルユーザーOSを使う、という形態で、シングルユーザーOSの使い勝手そのままにマルチユーザーにした事例はメインフレームであったはず。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「永続的OS (Persistent Operating System) という考え。たとえOSが再起動してもユーザーランドのプロセスは持続し、再起動直前の状態から復帰して走り続ける。これにより一部のプログラムにはファイルシステムが不要になるなどのメリットが生まれる。 https://t.co/iJN01EfSOw」 / Twitter
dzavalishin/phantomuserland: Phantom: Persistent Operating System
Makoto Kato ︎︎さんはTwitterを使っています 「BeOSのIsPowerOnみたいな、IsPowerOutage APIどこかにないの?」 / Twitter

Igalia - Open Source Consultancy and Development | Index
Birchill
Operating Systems: Three Easy Pieces
The ADvanced Systems Laboratory (ADSL): Publications
OSKitで遊ぼう - Kota Abe
OS(オペレーティングシステム)の設定や利用 - NISC
kosakiのブックマーク - はてなブックマーク
筑波大学情報科学類:情報システム実験:カーネルハック
nakst / essence · GitLab
ざっくり理解するSRE - 赤帽エンジニアブログ
General Magic / MagicLink (1) 発端 | Good Old Bits
これまでどんなOSが開発されてきたのか&どう派生したのかが見てわかる系図が公開 - GIGAZINE
「ReactOS 0.4.14」公開、NEC PC-9800ブートをサポート | OSDN Magazine
ASCII.jp:15年はやくスマートフォンになろうとした端末
オープンソースOS「Haiku R1/ベータ3」が公開 | TECH+

Hardware

その他

レガシー

IBM、「Power10」プロセッサ搭載でx86より高速なサーバー - PC Watch
IBM Power Virtual Server - 概要 - 日本 | IBM
SPARC/Solarisをクラウドに移行できるサービス - 製品&サービス:IT:日経クロステック Active
アメリカの「MIPSマイクロプロセッサ」のライセンスが複雑な取引を経て中国の手に渡った経緯とは? - GIGAZINE
MIPSは中国半導体産業のエンジンとなるか? - 吉川明日論の半導体放談(155) | TECH+
history - Why was '~' chosen to represent the home directory? - Unix & Linux Stack Exchange

PC Watch

【藤山哲人と愛すべき工具たち】ネジ山が潰れた! ネジ頭が取れた! 悲劇を救う天使の工具 - PC Watch
東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネルギー効率3.8倍 - PC Watch
Hara-Laboratory/subrisc: SubRISC: Simple Instruction-Set Computer for IoT edge devices
SUBRISC - Google 検索
SubRISC+ メモ: 竹下世界塔の計算機よもやま話
Miura HidekiさんはTwitterを使っています 「プログラミングは覚えることがいっぱいで大変という皆様に、二進表記の機械語直接入力がお勧め!これなら0と1を覚えるだけで済みますね (嘘」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 「メモリのある場所から1を引いて0でなければ指定番地に飛ぶ」という命令ひとつ覚えておけばOK!」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana この話ってよく聞くのですけど、具体的にどう構成するとチューリング完全になるのかよく分かっていないです...」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 命令列だけじゃなくて初期値をうまく埋めとく必要があると思うんだけど、自分も具体的に作ったことはないや。 一段間接参照が入る (DJN X Y ≡ if (--*X == 0) goto Y) のでポインタ操作でいろいろできそうだという気はする」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 記事見つけた。XとYが逆だった https://t.co/6Hv0sRAVWa」 / Twitter
Thoughts on Corewar...: Redcode's OISC - the DJN Computer
Shiro KawaiさんはTwitterを使っています 「@miura1729 あと条件も逆だった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど、チューリング完全と分かっている命令セットをシミュレートすればいいんですね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 作ってみたけど、メモリの内容がwraparoundするって仮定が要りそう。減らすことしかできないんだから任意の値にセットするにはwraparoundして合わせるしかないよね。 https://t.co/0zIfUi0X7l」 / Twitter
gist:69c6e054336f3f43e337e846425d7aa9
Miura HidekiさんはTwitterを使っています 「@anohana 確かに。しかしそうすると、ポインタが有限になってしまいチューリング完全では無くなってしまうような。」 / Twitter
全世界のPC出荷は引き続き増加。半導体不足で今後は需要が鈍化の可能性も - PC Watch
中国での半導体製造、2021年にも日本を上回る見込み - PC Watch
IBMとSamsung、微細化FinFETと比べて85%省エネ化できる「VTFET」 - PC Watch
【福田昭のセミコン業界最前線】半導体不足を追い風に、2年連続で過去最大を更新する半導体市場 - PC Watch
AMD、Arm、Intelら、チップレットの標準規格「UCIe」を発表 - PC Watch
GIGABYTE、マザーボード製品のドライバディスク同梱を廃止 - PC Watch

GIGAZINE

細胞分裂による増殖が可能な人工生物が作り出される - GIGAZINE
自然に成長し分裂する「人工生命体」が開発される - ナゾロジー
半導体製造業の復活を試みる日本の取り組みに対する海外メディアの評価とは? - GIGAZINE
アメリカVS中国の半導体開発競争で鍵を握るオランダ企業の精密機械とは? - GIGAZINE
世界中の半導体製造業者が頼る露光装置メーカー「ASML」はどんな会社なのか - GIGAZINE
全パーツを好きなタイミングで交換できる自作ノートPC「Framework Laptop」とは? - GIGAZINE
MicrosoftがXboxやSurfaceの部品をユーザーに提供することに合意 - GIGAZINE
「password」や「admin」など安易なパスワードをデフォルトに設定することを禁じる法案をイギリス政府が提出 - GIGAZINE
IntelがLinuxカーネルに用途不明のコードを追加、新たな収入源の模索か - GIGAZINE
IBMとSamsungが「バッテリーが1週間持つスマホ」の実現につながる新型半導体設計を発表、「トランジスタを縦向きに重ねる」という新発想 - GIGAZINE
Alexaユーザーの4人に1人は最初の1週間しか使っていない - GIGAZINE
なぜ半導体不足が世界規模で起きているのか? - GIGAZINE
中国政府が2600億円以上を半導体の国内製造に投資するもことごとく失敗、いったいなぜ? - GIGAZINE
Armが6年以上かけて開発したセキュリティ向上型アーキテクチャ「CHERI」対応のボード「Morello」を発表 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Capabilityベースのアーキテクチャである"Morello"の最初の試作版がARMからリリースされる。 ポインタは128bit幅になり、プロセス内のすべての独立したメモリ領域が区別できるため違反アクセスを防止できる。CapabilityはPDF-11に実装されたが、長らく顧みられてこなかった。 https://t.co/Nz4D258oDl」 / Twitter
An Armful of CHERIs – Microsoft Security Response Center
ロシアのウクライナ侵攻はチップ不足を悪化させる可能性あり、チップ製造レーザーに不可欠な半導体グレードのネオンの90%以上を供給しているため - GIGAZINE
Intel・AMD・Microsoft・TSMC・Samsungなどがチップレットの新規格を策定する「UCIe」コンソーシアム設立を発表 - GIGAZINE

自作ユーザーが解説するゲーミングPCガイド

リーク情報の用語解説 - 自作ユーザーが解説するゲーミングPCガイド
OEMとかリテールとかってなんだ? - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルグリスについて - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルパッドについて - 自作ユーザーが解説するゲーミングPCガイド
140mm/120mm PWMファンの比較 -Noctua神話は本当か?- - 自作ユーザーが解説するゲーミングPCガイド

自作.com

Ascenium社は、CPUを再発明し、命令セットを完全に破壊しようとしている。|自作.com
Jingjia Micro社、JM9シリーズGPUをテープアウト、GTX 1080のパフォーマンスを目指す|自作.com
マイクロソフト、投資家の圧力に応えてデバイスの修理を容易にする|自作.com
IBM、Samsungが将来に向けたVTFET半導体設計を開発|自作.com
CPUは、新しいアダプティブテクノロジーで85%少ないトランジスタを使用できます|自作.com
研究によると、半導体ナノワイヤーは超高速トランジスタのロックを解除できる|自作.com
ウクライナへの攻撃はチップ不足を悪化させるものではない|自作.com

スライド

どうして昔の人は八進数でしゃべるのか?
リセットとフリーズで解析する電子辞書リバエン記 - Zopfcode
リセットとフリーズで解析する電子辞書リバエン記 / reverse-engineer-e-dictionaries-with-reset-and-freeze - Speaker Deck
JTAGでarmプロセッサをデバッグする話/KernelVM Online4 - Speaker Deck

ALLDATASHEET.COM - Datasheet search site for Electronic Components and Semiconductors and other semiconductors.
BugStories
“PC”の定義は何か まずはIBM PC登場以前のお話から (1/3) - ITmedia NEWS
CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明 - Qiita
なぜもっとたくさんのコアを搭載したCPUを作らないのでしょうか?2000コアのGPUなんかそこら辺にありますが、なぜCPUでは同じようにできないのでしょうか?に対するHayashida Katsutoshiさんの回答 - Quora
マイコン製品における出荷テストとは:ハイレベルマイコン講座【出荷テスト編】(1)(1/4 ページ) - EDN Japan
マイコン製品出荷時に実施されているテスト内容:ハイレベルマイコン講座【出荷テスト編】(2)(1/5 ページ) - EDN Japan
Steve WeisさんはTwitterを使っています 「Discovering a CPU bug is the worst because after proving how smart you are, you are still stuck with a broken CPU. https://t.co/hYtqb147E3 https://t.co/Uns3PqUMg0」 / Twitter
Cores that don't count - hotos21-s01-hochschild.pdf
ロボットプログラミングで遊んだ - 未完成な論を綴るブログ
Mune-sanさんはTwitterを使っています 「2005年も今も、VHDLやVerilog HDLで書いて、ModelSimでシミュレーションして、QuartusでコンパイルするAlteraのFPGA。自動化はTcl」 / Twitter
ASCII.jp:Windows PCのヘッドセット端子にマイクは直接接続可能……ではない!? (1/2)
PCテクノロジートレンド 2022 - プロセス編 (1) | マイナビニュース
MSXの立役者・西 和彦氏が“次世代MSX”に「もうすぐ」とコメント。自身で“狂気の沙汰”と呼ぶプラットフォームとは
西 和彦氏,「次世代MSX」の進捗状況らしき映像とコメントを公式Twitterアカウントで公開
半導体のプロセスルールについての補足

Intel

その他

その他

米IntelがRISC-V Internationalに最高位レベルで加盟 | OSDN Magazine
intelのCPUロードマップ : 過去・現在・未来のLake – curional
RISCとCISCの境目がなくなる Pentium Proの逆襲 (1/3) - ITmedia NEWS
インテル、CPUの性能アンロックコードを販売 - Engadget 日本版
北森瓦版 - Intel コンシューマ向けのOptane SSDを終売へ―後継製品の予定もなし
Intel Lightning Mountain を追う | Coelacanth's Dream
20210327
謎?のコードネーム、Intel Molasses Rapids | Coelacanth's Dream
IACAとは何ですか?どのように使用しますか? - Javaer101
Intel Invests $3.5 Billion in New Mexico Fab to Focus on Foveros Packaging Technology

PC Watch

Intel、ポストCMOSとなる新半導体素材「MESO」 ~CMOS比30分の1の消費電力や5倍の演算性能、ムーアの法則継続にも - PC Watch
他人のPCで仮想通貨マイニングする攻撃を防ぐIntelとMicrosoftの技術 - PC Watch
Intel、仮想化処理などデータセンターのCPU負荷を軽減する「IPU」 - PC Watch
Intel、半導体技術首位の座を2025年に奪還する意欲的な新ロードマップ - PC Watch
【笠原一輝のユビキタス情報局】巻き返しなるか!? Intelが今後4~5年で5世代分のプロセスノードを連投 - PC Watch
Intelプロセッサを利用したAIの実装のメリットとは? ~Intelがなぜデータセンターで強いのか? その包括的な製品群を徹底解剖!- PC Watch[Sponsored]
世界初のマイクロプロセッサ「Intel 4004」生誕50周年 - PC Watch
CPUを評価する時に最も注目すべき「リアル・ワークロード」とは? - PC Watch[Sponsored]
Intel、ファウンドリ事業に10億ドルの基金。RISC-V IPコアも提供 - PC Watch
【笠原一輝のユビキタス情報局】Intel、製造技術「Intel 18A」の開発を前倒し、自社製品製造とファンダリサービスが相乗効果を生む - PC Watch
第12世代Coreベースでセキュリティ性が向上した「vPro」、Chromebookにも展開 - PC Watch

GIGAZINE

Intelの先進研究機関「Intel Labs」がどのような問題に取り組んでいるのかを中の人が解説 - GIGAZINE
Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか? - GIGAZINE
Intelが自動車向けチップ生産を計画中、6~9カ月以内の生産開始が目標 - GIGAZINE
MicrosoftとIntelが勝手に仮想通貨を採掘する「クリプトジャッキング」からデバイスを保護する機能を発表 - GIGAZINE
IntelがQualcommと提携し新チップを製造すると発表、2025年までのロードマップも公開 - GIGAZINE
Intelが第2世代ニューロモルフィックチップ「Loihi 2」を発表、試作段階の「Intel 4」プロセスノードを採用 - GIGAZINE
およそ3000種類の過去製品を保管する「Intelの秘密倉庫」の役割とは? - GIGAZINE
Intelがムーアの法則を加速させるための計画を発表、配線密度10倍以上&ロジックスケーリング最大50%向上を目指す - GIGAZINE
Intel史上最も驚異的なマシン「EUVシステム」の裏側を追ったムービーが公開中 - GIGAZINE
Intelが1000億円越えのファンドを設立しオープンソースのRISC-Vに投資 - GIGAZINE
IntelとAMDがロシアへの半導体販売を停止、TSMCも制裁に参加でロシアの国産チップにも影響する可能性 - GIGAZINE

Publickey

インテルから「oneAPI」登場。アプリケーション起動時にCPU/GPU/FPGA構成を自動判別、処理を適切なプロセッサに割り振る[PR] - Publickey
インテル、新デバイス「Infrastructure Processing Unit」(IPU)発表。スマートNICを拡張しストレージ仮想化やネットワーク仮想化処理などCPUからオフロード可能に - Publickey
インテル、オープンな命令セットを推進する「RISC-V 」に最高位メンバーとして加盟。RISC-VベースのFPGAチップも提供開始など、RISC-Vへのコミットを明確に - Publickey

マイナビニュース

完全版!! 「Core i7」極限検証 - 内部アーキテクチャ解析編 (13) Cache (3) | マイナビニュース
なぜTSMCだけEUVプロセスで高い歩留まりを達成できるのか? | マイナビニュース
Intel 4004が50周年、第12世代Coreまで続くマイクロプロセッサのマイルストーン | マイナビニュース
Intel、「ムーアの法則」維持・前進のための最新技術を公開 | マイナビニュース

ASCII.jp

ASCII.jp:次世代CPUのIntel 4とIntel 18Aを半年前倒しで投入 インテル CPUロードマップ (1/3)
ASCII.jp:忘れ去られたCPU黒歴史 20年早すぎたCPU iAPX 432 (1/3)

EE Times Japan

AMDは2016、Intelは2014……。最新CPUチップの刻印が意味するもの (1/3) - EE Times Japan
前進し続けるIntel:製造委託は成熟したアプローチ - EE Times Japan

自作.com

Sapphire Rapidsの予備機能が明らかに。56コア、64GB HBM2E、MCMデザイン|自作.com
インテルとマイクロソフト、仮想通貨ジャッキング対策で提携|自作.com
インテルのSkylake Visionaryがクライアントチップ開発の指揮に復帰|自作.com
インテルがGlobalFoundriesを300億ドルで買収する交渉を開始|自作.com
2025年までのインテルのプロセスロードマップ。プロセスノードの名称変更、オングストローム時代の幕開け|自作.com
インテル社、第3四半期の消費者向けチップの不足を警告|自作.com
Intel: 来るべき米国のFabは小さな都市になり、600億~1,200億ドルのコストがかかる|自作.com
インテル、ソフトウェア定義のXeon CPUを準備:今買って、後で機能を追加|自作.com
intel/intel-sdsi
インテル、4nmのLoihi 2 Neuromorphicリサーチチップを公開|自作.com
インテルが20億ドルでSiFive社を買収しようとしたが、失敗に終わったと報道される|自作.com
インテル社のパット・ゲルシンガー氏が語る「スーパー・ムーアの法則」と数十億ドルの賭け|自作.com
Intelによると、ITCが重要な材料を禁止すると、供給不足が悪化する可能性あり|自作.com
Intelは新しいFabサイトで2,000億ドルの決定を遅らせる|自作.com

自作ユーザーが解説するゲーミングPCガイド

インテル、民生用チップ向けに2021年第3四半期までABF基板が不足することを確認、CPU価格の上昇を予想 - 自作ユーザーが解説するゲーミングPCガイド
インテル、2025年以降のプロセスロードマップを発表。新しいネーミングスキーム、10nm ESFはIntel 7、7nmはIntel 4、Intel 3、Intel 20A、そしてその先へ - 自作ユーザーが解説するゲーミングPCガイド
2022年からのIntelのデスクトップCPUの考察 - 自作ユーザーが解説するゲーミングPCガイド
インテル、RTX/DLSS技術を開発した元NVIDIA研究員のAnton Kaplanyan氏を引き抜き - 自作ユーザーが解説するゲーミングPCガイド
インテル社がx86人材のためにVIAテクノロジー社と1億2500万ドルの買収契約を開始し、混乱が生じる - 自作ユーザーが解説するゲーミングPCガイド
インテル、IEDM 2021でムーアの法則を加速させる計画を発表:10倍の密度向上、最大50%のロジック・スケーリング、ポストシリコン・トランジスタの時代へ - 自作ユーザーが解説するゲーミングPCガイド
インテル、ファウンドリ・イノベーション・エコシステム構築のための10億ドルファンドを発表。Open RISC-VとChipletの技術を活用する - 自作ユーザーが解説するゲーミングPCガイド
インテル、CPUの追加機能を購入後に有料で提供することを希望 - 自作ユーザーが解説するゲーミングPCガイド

instlatx64
Identify CPU features (beta)
インテル チップセット - Wikipedia
Template:Intel processors - Wikipedia
mjg59 | Microsoft aren't forcing Lenovo to block free operating systems
a4lg.com | x86 ファミリーとモデル一覧
IntelのCPUの末尾についているK, S, Tなどのアルファベットについて
Intel CoreなどIntel製CPUの型番ごとの違いや性能と見分け方を解説
BIOS Implementation Test Suite
bochs.sourceforge.net/techspec/PORTS.LST
ASRock Rack > E3C236D2I
Intel iAPX 432 - Wikipedia
Microarchitecture Cheat Sheet - Google スプレッドシート

Intel

SDM・ISA Extensions・Optimization

Intel® 64 and IA-32 Architectures Software Developer Manuals
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
ISA Extensions | Intel® Software
Intel AVX512-FP16 Architecture Specification
Intel® Software Development Emulator
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
Intel® Architecture Instruction Set Extensions Programming Reference | Intel® Software
Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
intel/optimization-manual: Contains the source code examples described in the "Intel® 64 and IA-32 Architectures Optimization Reference Manual"
Intel(R) 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
Intel® 64 and IA-32 Architectures Optimization Reference Manual
Hisaki Oharaさんのツイート: "ISA Extensions出てた。主にguest OS monitoringを実現するためのEPT-based Sub page permission、これ変態機能でしょう https://t.co/7yNl961Zl7"
Hisaki Oharaさんのツイート: "ISA ExtensionsのTable 1-1が死ぬほど便利。特定の命令セットがどの世代から入ったかまとめられている。つうかなんで今までなかったのか。あとさりげなくIcelakeの文字が。 https://t.co/7yNl961Zl7 https://t.co/sujkidSIX2"
Hisaki Oharaさんのツイート: "BPU (Branch Prediction Unit)は最近のOptimization Reference Manualには最低限のことしか書いていないのだけど、Branch Target Bufferといった言葉の意味を知る程度でよければ、Pentium IIとかIIIの時代… https://t.co/frQiiqVWPA"
Intel® Architecture Optimization
Hisaki Oharaさんのツイート: "いまどきのアーキテクチャでは激変しているはずなので参考以上で受け取っては駄目です。ただ、Google Project Zeroのblogを読む際の一助になるかもしれない。つうかこのファイル、https://t.co/SJAL9HrWvEからまだダウンロードできるようになっていると… https://t.co/rB3R5eKitY"
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals

Processors and Chipsets

Intel Processors and Chipsets by Platform Code Name
Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
Intel® Chipsets
Intel® Desktop Chipsets
Intel® Mobile Chipsets
Intel® Server Chipsets
Intel® Product Specifications
8th and 9th Generation Intel® Core™ Processor Families Datasheet, Volume 1 of 2
10th Generation Intel® Core™ Processor Instruction Throughput and Latency Docs | Intel® Software
Intel® Processors based on Gracemont Microarchitecture Instruction Throughput and Latency - 350391-Intel-Processors-Based-on-Gracemont-Microarchitecture-Latency-Throughput.pdf

Security

Best Practices for Software Security
Technical Documentation for Software Security
white-paper-intel-hardware-shield.pdf
Intel Security Features and Technologies Related to Transient...
Intel® Boot Guard - Understanding the UEFI Secure Boot Chain
What is Intel® Secure Key Technology?
Intel® Product Security Center
Memory Encryption Technologies
Affected Processors: Transient Execution Attacks & Related Security...

Hardware List
Microcode Revision Guidance (Apr 3, 2018)
インテル® リソース・ディレクター・テクノロジー (インテル® RDT)
IPMI Technical Resources
製品の仕様情報 - Intel® Optane™ Memory Series
Intel® Virtualization Technology for Directed I/O Architecture...
Flexible Return and Event Delivery (FRED) Draft Specification
Benefitting Power and Performance Sleep Loops | Intel® Developer Zone
Nios® V Processor - Intel® FPGA
Intel® Intrinsics Guide
ゲーム用 PC の組み立て方 : ゲーム用 PC パーツとセットアップ手順 | インテル
Intel® In-Memory Analytics Accelerator Architecture Specification - 350295-iaa-specification.pdf

デスクトップ

Coffee Lake

Intel

Intel Core i38100 Processor 6M Cache 3.60 GHz 製品仕様
インテル® Core™ i5-9400 プロセッサー (9M キャッシュ、最大 4.10 GHz) 製品仕様
新しい保護機能をハードウェアに実装
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.1
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.2
8th Gen (S-platform) Intel® Processor Family Spec Update
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 1
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 2
Intel® H370 Chipset Product Brief
Intel® Z390 Chipset Product Brief
インテル® Wireless-AC 9260 製品仕様
インテル® Wireless-AC 9560 製品仕様

Coffee Lake - Microarchitectures - Intel - WikiChip
Core i3-8100 - Intel - WikiChip
Intel Core i3-8100 - CM8068403377308 / BX80684I38100 / BXC80684I38100
ASRock > B360M-HDV
【後藤弘茂のWeekly海外ニュース】Intel「第8世代Core」に見る、微細化準備が整っても、製品を移行させない/させたくない理由 - PC Watch
Intel、第9世代Coreプロセッサに「Meltdown」対策をハードウェア実装 ~開発中の“単体GPU”のコンシューマ向け投入も明言 - PC Watch
Intel、次期CPUにSpectre対策機能をハード実装 - PC Watch
Intel、第9世代Core「Coffee Lake Refresh」を2021年末に製造終了 - PC Watch
Core i7-9700Kの新ステッピング、今度はリテールパッケージが入荷 - AKIBA PC Hotline!
Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE
新ステッピング「R0」のCore i7-9700Kが発売開始~既流通品と選択可能~ - エルミタージュ秋葉原
北森瓦版 - デスクトップ向けCore i 9000 seriesのS-specとsteppingを理解しよう
Intelで脆弱性緩和済みCPUリスト - Qiita
Spectre and Meltdown Hardware Protection Added to Intel's 9th Gen CPUs
Best motherboard manufacturers. Biostar provides various high quality motherboard gaming series, including am4 motherboa

Comet Lake

インテル® Celeron® プロセッサー G5905 (4M キャッシュ、3.50GHz) 製品仕様
Intel Celeron G5905 - CM8070104292115 / BX80701G5905 / BXC80701G5905
Comet Lake - Microarchitectures - Intel - WikiChip
Z490 UD AC (rev. 1.0) フォトギャラリー | マザーボード - GIGABYTE Japan
インテル® Celeron® プロセッサー G5925 (4M キャッシュ、3.60GHz) 製品仕様
Intel Celeron G5925 - CM8070104292013 / BX80701G5925 / BXC80701G5925
PRIME B460M-A - スペック|マザーボード|ASUS 日本
Intel、10コア/5.3GHz動作の「Core i9-10900K」など第10世代Sプロセッサを展開 ~TB Max 3.0やThermal Velocity Boostサポートで高クロック動作 - PC Watch
Intel、よりセキュアな第10世代Core vProプロセッサ - PC Watch
BIOSTAR製IntelマザーがAMD Smart Access Memoryをサポートへ ~2021年1月より提供の最新BIOSで対応予定 - PC Watch
ASUS、最新のBIOSアップデートによりIntel Z490, H470 & B460マザーボードのサイズ変更可能なBAR(スマートアクセスメモリ)をサポート可能に - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Radeon RX 6000 seriesのSmart Access Memoryの話題いろいろ
北森瓦版 - “Comet Lake-S”のPL1, PL2, Tauの値
intelの第10世代は、あらかたの脆弱性が対策済みなのですか? - Quora

Rocket Lake

Intel Core i511500 Processor 12M Cache up to 4.60 GHz Product Specifications
Intel Core i5-11500 - CM8070804496809 / BX8070811500 / BXC8070811500
CPUID for Intel Core i5-11500 (by tenpoku1000)
Rocket Lake - Microarchitectures - Intel - WikiChip
Z590 D (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump (#CypressCove, #AVX512F/CD/BW/DQ/IFMA/VBMI/VBMI2/VNNI/BITALG/VPOPCNTDQ/GFNI/AES/VPCLMUL supported, #AVX512_VP2INTERSECT unsupported) Commit: https://t.co/7vEz7YzH9P https://t.co/hVTEgW2O6M」 / Twitter
Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump · InstLatx64/InstLatx64@1bbddaf
InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700K (#RocketLake-S) A0671 CPUID dump, x64 InstLat dump added (thx, @IanCutress!) Good: critical byte-granularity cross-lane instructions behave the same way as on SNC/WLC Bad: tp of FP zmms are half of ymms = single 512bFPU Commit: https://t.co/jLHZfEFvCR https://t.co/STWAZddr7E」 / Twitter
OctalCore Intel Core i7-11700K (Rocket Lake-H/S) A0671 CPUID dump, x6… · InstLatx64/InstLatx64@2903c11
Intel、デスクトップ向け第11世代Core「Rocket Lake-S」の詳細を発表 ~CPUはIPCを大幅向上させたCypress Cove、GPUにXe Graphicsを採用 - PC Watch
Rocket Lake-Sこと第11世代Coreデスクトップ・プロセッサが正式発表 - PC Watch
【Hothotレビュー】新コア設計でゲーム性能が向上した第11世代Coreを徹底ベンチマーク - PC Watch
GeForce RTX 30シリーズで「Resizable BAR」対応開始 - PC Watch
ASUS、M.2 SSDをツールレスで固定できる新機構「M.2 Q-LATCH」 - PC Watch
Intel B460/H410マザーは第11世代Core対応できず - PC Watch
GCC と LLVM に Rocket Lake のオプションが追加 | Coelacanth's Dream

Tiger Lake

Intel、65W動作のデスクトップ版Tiger Lake「Core i9-11900KB」を追加 - PC Watch
intel 10nm Tiger Lake CPUが第11世代デスクトップ・プラットフォームに登場、WillowCoveコア搭載のBシリーズチップ、TDP65Wを実現 - 自作ユーザーが解説するゲーミングPCガイド
インテル、超高クロックの65W BシリーズTiger Lake CPUを掲載|自作.com
Intelの愛好家グレードのCore i9-11900KB Tiger Lake CPUがベンチマークされた|自作.com

Alder Lake

その他

Intel Z690チップセット搭載マザーボード(Alder Lake CPU用)の24ピンコネクタの保持について - 自作ユーザーが解説するゲーミングPCガイド
Intel、次期BIOSでAlder Lakeの全CPUのAVX-512サポートをマザーボードメーカーに強制的に無効化させる - 自作ユーザーが解説するゲーミングPCガイド
MSI MEG Z690 Unify-Xマザーボードは、BIOS内のマイクロコード選択により、AVX-512サポートを有効にすることができます。 - 自作ユーザーが解説するゲーミングPCガイド
インテル社製デスクトップCPU「Alder Lake」では、旧型のCPUクーラーでは取り付けや圧力分散に問題がある可能性があることが判明 - 自作ユーザーが解説するゲーミングPCガイド
LGA1700のCPUが反ってしまう問題 - 自作ユーザーが解説するゲーミングPCガイド
Intel、Alder LakeのAVX-512サポートを廃止、今度はシリコンの配線をカット - 自作ユーザーが解説するゲーミングPCガイド
Intelの第12世代プロセッサ「Alder Lake」でターボボタンが復活したと話題に - GIGAZINE
Intelの次世代CPU「Alder Lake」は,高性能コアと高効率コアを組み合わせてPC向けCPUに変革をもたらす
北森瓦版 - “Alder Lake”は“Commet Lake / Rocket Lake”よりも高消費電力になる?
CapFrameXさんはTwitterを使っています 「i9-12900K supports AVX512 when E cores are disabled. https://t.co/WPilMgtz5k」 / Twitter
Intel Alder Lake PCIe5.0の構成がcorebootで詳しく説明されていると報告|自作.com
Alder LakeのチップセットはPCIe Gen 5.0をサポートしない|自作.com
ASUS Z690 Q-ReleaseボタンでGPUの取り外しが簡単にできるようになりました。|自作.com
Windows 11はAlder LakeのCPU搭載のLinuxを上回る、スケジューラーが原因か|自作.com
Intel Axes Alder LakeのAVX-512サポート、シリコンで融合|自作.com
IntelはコンシューマーAlderLakeCPUでECCメモリを有効にします|自作.com
北森瓦版 - Intel W680チップセットのブロックダイアグラム

M1 対 Alder Lake 性能談義

SODA NoriyukiさんはTwitterを使っています 「例えば以下のuop cacheヒット時の同時実行可能op数とか見てもM1はCPUコアそのものが速い https://t.co/x4BvCw83BX Skylake: 4 fused uops/cycle Ice Lake: 5 fused uops/cycle Zen, Zen 2: 6 MOPs/cyle, 5 instructions/cycle Zen 3: 6 MOPs/cycle, 6 instructions/cycle Apple M1: 8 ops/cycle」 / Twitter
Performance Speed Limits | Performance Matters
MURAOKA TaroさんはTwitterを使っています 「うーん「M1 macにしたらコンパイルが速くなった」なんてのはメモリやディスクの帯域が増えてることが支配的であって、CPUそのものではないと思うんだよな。まぁ普通のユーザーにとっては知ったこっちゃないんだろうけど、ソフトウェアエンジニアはその違いを認識していて欲しいと願ったり。」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@n_soda https://t.co/WZmTHbnJvu」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「変にバズってるから補足しておくけど、M1のCPU部分が遅いと言っているわけではないです。自分で買って試しているからそれが速いことはよくわかってます。 一方でエンジニアならばベンチマーク対象であるタスクが何を測ってるか=何が支配的な要素であるかを認識しておいて欲しい、という話しです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kaoriya M1のディスク帯域はWindows PCの最速機よりはむしろ遅いですし メモリ性能もTiger LakeだったらLPDDR4x-4266のモデルがあり、M1とスペック的には同じ性能が出るはずです。あと(iGPU性能とは異なり)メモリバンド幅がCPU性能でボトルネックになることは少なくM1との性能差を説明するのは無理ではないかと」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@n_soda エンジニアならそういうことを踏まえてちゃんと調べて把握したほうが良いよという話です。ただコンパイルというタスクにおいてはI/Oがボトルネックになってるケースが多かったので、そこを均さずベンチマークの結果だけに一喜一憂するのはエンジニア的ではないなと。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kaoriya コンパイルでI/Oがボトルネックというのも対象プログラムによりけりで、NetBSDのOS全体(ソース3.5GB )の並列ビルドを vmstat で眺めていると、ほぼほぼCPUボトルネックでした。 ふつうのPCの方がI/Oデバイスをリッチにできますから、本当にI/Oがボトルネックだったらx86の方が速くできそうですね…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kaoriya CPUネックだった場合も、(並列ビルド可能なソースツリーであれば) M1よりもRyzen Threadripperを使った方が間違いなく速そう…」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@n_soda ですね。なのでそういう諸条件を加味せずに一喜一憂するのはエンジニア的ではないという話です。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「Apple M1で、実測 7.36 instructions/cycle 出てるという例もググったらあった: https://t.co/ho5H2CpaEb」 / Twitter
Counting cycles and instructions on the Apple M1 processor – Daniel Lemire's blog
SODA NoriyukiさんはTwitterを使っています 「Alder Lakeはμop cacheからのスループット8μop/cycleに増えてるって話が出てたけど、 @tanakmura さんの実測値 https://t.co/unTSsDe1OV を見ると(8μopではなく実命令で) 6命令/cyleなので、IPC的にM1を越えるのは無理そう。 クロックはAlder Lakeの方が速いけど。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「https://t.co/v2t4FKv1Zj ごめん実況すると言ってたけどIPCひとりで取ってしまった。」 / Twitter
11-12.md
tanakmura🎯さんはTwitterを使っています 「デコーダが6に増えてるので、xorとかの消えるやつが6になっとる。あとなんかの間違いでなければ lea がIPC6いってる。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「これは P core で、E coreはperfのインターフェースが変わっていてなんか対応しないとinstruction,cycleが取れない。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「説明書いてないけど、比較元はtigerlake」 / Twitter
tanakmura🎯さんはTwitterを使っています 「https://t.co/CoNcncxuqL いやleaのレイテンシが1より減ってるから、なんかの理由で演算が消えてる。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「lea は dst と src が同じだと消えるんかな…あ、lea eax,[eax]とかはアラインするための2byte nopとして使われてるから、これが消えると嬉しい場面はあるのか。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「@n_soda これは、一種類の命令しか出してないので、最大値ではないと思います。 MAX値はbit演算+add+mul+load+storeみたいなうまくいく組み合わせを探す必要があります。」 / Twitter
tanakmura🎯さんはTwitterを使っています 「@n_soda 自動で見つけるいい手段思い付かないのでやってないですが、llvmのツール類の中にやろうとしてるのはありました (多分これ:https://t.co/hZQLx6GizI)」 / Twitter
llvm-exegesis - LLVM Machine Instruction Benchmark — LLVM 13 documentation
SODA NoriyukiさんはTwitterを使っています 「@tanakmura ありがとうございます。 https://t.co/ho5H2CpaEb がdoubleを扱うプログラムで計測していたのはそういう背景があったわけですか...」 / Twitter
Counting cycles and instructions on the Apple M1 processor – Daniel Lemire's blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @kaoriya 近年のコンパイル速度ネックは CPUが多いように思いますね。(RAM-DISKで爆速化したのは MS-DOS時代) https://t.co/kGPiuy91pG」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やはり手元の環境(i5-6500)では、現在も VC++ビルドで SSDよりもCPUがボトルネックに。 https://t.co/dCEuwNAy8H RAM Diskより、CPUコアを増やす方がビルド時間短縮には効果が高そう。 https://t.co/iCVw8LbV1e」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1993年頃にMS-C出力のHDD→RamDisk移行でビルド爆速化を経験して、2007年頃に再びVC++で試すと僅かしか速くならず調べると、.cは速くなるが、.cppはHDDよりCPUが主要な律速要因になっていた、という経験を思い出した。 ただ今の多コアだとまた状況は違うのかな https://t.co/PfsUrQRZcs」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Visual Studioってメモリ上で全部ビルド(いわゆるLinuxでいうtmpfsで全部ビルド)ってできるんだっけ?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @kaoriya (原因を見極めようという意図は判るも、まずアタリを付けるための常識感覚も大事だよねと)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kaoriya IOネックかCPUネックかは、Windowsならタスクマネージャ、macOSならアクティビティモニタを出していれば判別できますから、ふだんからこの辺を出しっぱなしにして常識を養っておくかどうかですよね」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「@n_soda @shirouzu それでわかるのは自分がやってる作業についての傾向であって常識とは言えませんよ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kaoriya @shirouzu 自分のやっている作業についての常識は分かりますし、たとえばコンパイルにおいてIOネックであるという主張を出すのであれば、こういった根拠を同時に出すべきだと思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最初のアタリを付ける感覚と、さらに頭をリセットして網羅的な候補&確率分布を考える/思い浮かべられる能力、どちらも大事だよねと。 (なお初発に見える事象に対し、異様に鋭い洞察を働かせる方も居て参ることある…普段から対象のモデリング精度が高いのだろうな)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(蛇足だけど私の場合、技術的に「○○が支配的であって、XXではないと思うんだよな。…その違いを認識して欲しい」とまで書いて、その内容が間違い/微妙だったら、訂正/補足を書くかな…事実優先というか)」 / Twitter

Coelacanth's Dream

Intel Alder Lake、Sapphire Rapids にて追加される2つの命令 ――AVX2 VNNI /HFNI | Coelacanth's Dream
Intel、拡張命令リファレンスをアップデート (Sapphire Rapids /Alder Lake /ハイブリッドプロセッサ) | Coelacanth's Dream
ChromiumOSへのパッチから Alderlake-S / Alderlake-P を確認 | Coelacanth's Dream
Alder Lake では BIOS から一方の CPUタイプを無効化可能 | Coelacanth's Dream
Alder Lake (Golden Cove + Gracemont) のキャッシュ詳細 | Coelacanth's Dream
Intel Architecture Day 2021 個人的まとめ ―― Gracemont, Golden Cove, Alder Lake | Coelacanth's Dream
Intel、Alder Lake Developer Guide を公開 | Coelacanth's Dream
N バリアントも存在する Alder Lake | Coelacanth's Dream
Alder Lake-N は Atom系コアのみの構成か | Coelacanth's Dream
Alder Lake-N の PCIe I/O 構成 | Coelacanth's Dream
Linux Kernel に Intel HFI を活用するパッチ | Coelacanth's Dream
Intel Alder Lake と Rocket Lake に追加される CPUID Model | Coelacanth's Dream
Intel、SDM に Golden Cove、Gracemont アーキテクチャの詳細を追加 | Coelacanth's Dream

Chips and Cheese

Gracemont: Revenge of the Atom Cores – Chips and Cheese
Intel’s Tremont: Atom Changes Course – Chips and Cheese
Alder Lake – E-Cores, Ring Clock, and Hybrid Teething Troubles – Chips and Cheese
Popping the Hood on Golden Cove – Chips and Cheese
Alder Lake’s Power Efficiency – A Complicated Picture – Chips and Cheese
Going Armchair Quarterback on Golden Cove’s Caches – Chips and Cheese

Intel

Intel® Core™ i7-12700 Processor (25M Cache, up to 4.90 GHz)
Intel® Codename Alder Lake (ADL) Developer Guide
Optimizing Software for x86 Hybrid Architecture - 348851-optimizing-x86-hybrid-cpus.pdf
intel/dptf
Deprecated Technologies - 004 - ID:655258 | Core™ Processors

include/pci_ids/iris_pci_ids.h · main · Mesa / mesa · GitLab
Intel Disabled AVX-512, but Not Really - The Intel 12th Gen Core i9-12900K Review: Hybrid Performance Brings Hybrid Complexity
Poor Alder Lake performance when building Firefox due to bad scheduling
Ocean Cove - Microarchitectures - Intel - WikiChip
Alder Lake - Microarchitectures - Intel - WikiChip
Z690 UD (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
INTEL 第12世代Coreプロセッサー Alder Lake-S (LGA1700) 対応情報 - 株式会社サイズ
Intel、次期CPU「Alder Lake」に搭載される新コアの詳細を発表 - PC Watch
Intel次期CPU「Alder Lake」はWindows 11に最適化されたスレッド割り当て機能を搭載 - PC Watch
Intel、ゲーミング向けCPUで最速の座奪還を狙う第12世代Coreを11月4日に発売 - PC Watch
【レビュー】Alder Lakeこと第12世代Coreが編集部に着弾!早速開封してみる - PC Watch
第12世代Coreと一部ゲームに互換性問題。暫定対策はScroll Lockキー - PC Watch
【笠原一輝のユビキタス情報局】第12世代CoreのDRM問題は解決の方向へ。Intel開発者が語るAlder Lakeがゲームに魅力的な理由とは - PC Watch
Intel、最大5.5GHzまでブーストできる第12世代Core KSシリーズ。GPU「Arc」もデモ - PC Watch
デスクトップ向け第12世代Coreに安価モデル追加。H670/B660/H610チップセットも - PC Watch
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PだけよりP&amp;Eが速くなる?…説明が全く理解できない(笑) ---- 「CPUの演算器をずっと使っているようなマルチスレッド処理を行なう場合には、実はPコアよりも効率よく処理することができる、それがEコアの特徴だ」 「結果的により早く処理することが可能になる」 https://t.co/YbV9OVionk」 / Twitter
【笠原一輝のユビキタス情報局】第12世代Core、PコアとEコアという2種類のCPUの組み合わせなのになぜRyzenより速い? - PC Watch
SODA NoriyukiさんはTwitterを使っています 「@shirouzu 電力(発熱)に限界がないならともかく 今はだいたい電力(発熱)がCPUの出せる性能を決めますから、 Eコアの方が性能電力比が高いせいで、Eコアを沢山使った方が同一電力バジェットでは性能が出るみたいな話だと思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda うーん…本当に性能まで上がるなら、大半をEコアにした方が良かったりしませんかね。 瞬発力の為だけに半分はPコアというのも、何か解せないです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu 大半をEコアにして、ごく少数をシングルスレッド特化したPコアにした方が、サーバー向けとかだとたぶん間違いなく性能が上がると思います。 完全に想像ですが、GUI主体だと必要なPコア数が多くなるといった事情があるんじゃないでしょうか。Apple M1も big:LITTLE=4:4 で同数ですし。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu あとはbig.LITTLEの同時稼働・使い分けに対応している既存のソフトウェアが少なく(というかWindows向けではほぼゼロ?)、既存のソフトウェアを従来通りの速度で動かすにはこれだけの数のPコアが必要だったという可能性もありますかね…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、ご説明ありがとうございます。 (個別の話は判るのですが、全体としては解せない感じが残るので、もう少し詳細な情報が出るのを待ちたいと思ってます)」 / Twitter
【Hothotレビュー】「Alder LakeのEコアはSkylake級の性能」は本当?Pコアを使わずベンチマークで検証 - PC Watch
Core i9-12900Kの性能が出るのはWindows 11とWindows 10どっち? - AKIBA PC Hotline!

Raptor Lake

インテル 第13世代Raptor Lake CPUは、2022年第3四半期に最大15%のシングルスレッド性能と40%のマルチスレッド性能を向上させ、AMD Ryzen 7000「Zen 4」チップに対抗する。 - 自作ユーザーが解説するゲーミングPCガイド
第13世代Raptor Lake CPU向けIntel 700シリーズチップセット、PCIe Gen 4レーンおよびUSB 3.2 Gen 2×2ポートの増設を決定 - 自作ユーザーが解説するゲーミングPCガイド
Intel、700シリーズチップセット搭載マザーボードでDDR5のみのメモリサポートを推進、第13世代Raptor Lakeは最大DDR5-5600に対応可能 - 自作ユーザーが解説するゲーミングPCガイド
Intel 第13世代Raptor LakeデスクトップCPUのスペック、性能、価格、発売日 - 現時点で判明していることすべて - 自作ユーザーが解説するゲーミングPCガイド
Intel Raptor Lake-S Bootlog | Coelacanth's Dream

Meteor Lake

Golden Cove - Microarchitectures - Intel - WikiChip
Meteor Lake - Microarchitectures - Intel - WikiChip
Intel、2023年に7nmのコンピュートタイルを持つ「Meteor Lake」を投入。x86 CPUのIPも顧客に提供へ - PC Watch
Intel新ロードマップを発表。Meteor Lake、Arrow Lake、Lunar Lakeへと進化 - PC Watch

【スペック一覧】デスクトップ向けIntelプロセッサー・ナンバー一覧表 - PC Watch
ASCII.jp:2024年にArrow LakeとLunar Lakeを投入 インテル CPUロードマップ (1/3)

モバイル

8th, 9th Core

【笠原一輝のユビキタス情報局】第8世代Coreプロセッサの本当のコードネームはどれ? ~Kaby Lake Refresh、Coffee Lake、Cannonlakeの3つが同じ製品ブランドで同時展開 - PC Watch
【笠原一輝のユビキタス情報局】Intel、今年後半に8コアのCoffee Lake Refresh、2019年にComet Lakeを投入へ ~Xプロセッサの28コアはBasin Falls Refreshに - PC Watch
【笠原一輝のユビキタス情報局】Whiskey LakeとAmber Lakeの正体 - PC Watch
インテル® Core™ i5-8250U プロセッサー (6M キャッシュ、最大 3.40 GHz) 製品仕様
Intel Core i5-8250U Mobile processor - FJ8067703282221
iiyama STYLE-15FH038-i5-UHEX [Windows 10 Home] | パソコン工房【公式通販】
インテル® Core™ i5-8265U プロセッサー (6M キャッシュ、最大 3.90 GHz) 製品仕様
DELL CINEMAテクノロジー搭載のInspiron 15インチ5583ノートパソコン | Dell 日本
最新Intel NUC「BEAN CANYON」が計4モデル発売、Core i7/i5は4コア8スレッド - AKIBA PC Hotline!
Intel NUC「BEAN CANYON」の薄型モデルにCore i3搭載版が登場 - AKIBA PC Hotline!
製品の開発コード名 Whiskey Lake
Whiskey Lake-Uを搭載したNUCマザーボード、ASRock「NUC-8365U」 - エルミタージュ秋葉原
ASRock Industrial > NUC-8265U
製品の開発コード名 Amber Lake Y
デル、Amber Lake搭載の「XPS 13 2-in-1」を国内投入 - PC Watch
Amber Lake-Y搭載の7型2in1「OneMix 2S」 - PC Watch
Core m3-8100Y/256GB SSD搭載になった「GPD WIN 2」が発売 ~基板刷新で放熱性、オーディオ音質が向上 - PC Watch

Comet Lake

Intelが6コア12スレッドのモバイルPC向け第10世代Coreプロセッサ「Comet Lake」を発表 - GIGAZINE
ASCII.jp:Comet Lakeは事実上Coffee Lake Refresh インテル CPUロードマップ (1/4)|ロードマップでわかる!当世プロセッサー事情
Intel、"2種類目"のモバイル向け第10世代Coreプロセッサを発表 - PC Watch
Intel® Core™ i5-10210U Processor (6M Cache, up to 4.10 GHz) 製品仕様
デル、13.3型プレミアムノート「XPS 13」の第10世代Coreモデル - PC Watch
日本エイサー、Comet Lake搭載の15.6型ノートPC - PC Watch
A315-54-F58U/K | acer
Intel® 400 Series Chipset Family On-Package Platform Controller Hub. Datasheet, Volume 1 of 2
中小企業にもSOHOにもうれしい超絶コスパノートPC「ThinkBook 14」を徹底分析 (1/2) - ITmedia PC USER
インテル® Core™ i3-10110U プロセッサー (4M キャッシュ、最大 4.10 GHz) 製品仕様
最新Intel NUC「Frost Canyon」のCore i3搭載モデルが発売、税込38,500円 - AKIBA PC Hotline!

Lakefield

Atom

Intel Celeron (2010年) - Wikipedia
MinnowBoard.org
Intel Celeron J1900 - FH8065301615009
Intel Celeron J3160 - FH8066501715935
Intel Celeron J3455 - FH8066802986102
Apollo Lakeが長期稼働で信号劣化し品質基準を満たさず。ステッピング変更へ - PC Watch
Intel Pentium J5005 - FH8068003067415
Intel Celeron J4105 - FH8068003067403
ASRock > J4105-ITX
製品の仕様情報 - Intel® Celeron® J4005 Processor (4M Cache, up to 2.70 GHz)
Intel Celeron J4005 - FH8068003067416
インテル® ネクスト・ユニット・オブ・コンピューティング・キット NUC7CJYH 製品仕様
PRIME J4005I-C | マザーボード | ASUS 日本
ファンレスGemini Lake世代SoC intel Celeron J4005搭載Mini-ITXマザーボードがASUSから販売開始 | Ark Tech and Market News Vol.3002134
Intel、次世代省電力コア「Tremont」でシングルスレッド性能を改善 ~マイクロアーキテクチャを公開 - PC Watch
2019年9月18日 Linux 5.3がリリース,「AMD Navi」「Intel Speed Select」のサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
10nmプロセスがようやく。 インテルの2021年までのCPUロードマップがリーク
Intel Atom® Processor based on Tremont Microarchitecture Instruction Throughput and Latency - intel-atom-tremont-microarchitecture-throughput-and-latency.pdf
ASCII.jp:Ice Lake-SPは2021年第1四半期に遅延、Elkhart Lakeの機能追加に仰天 インテル CPUロードマップ (3/3)
ASCII.jp:最後のAtomとなるChromebook向けプロセッサーのJasper Lake インテル CPUロードマップ (3/3)
Intel、前世代からGPU性能が78%向上した「Jasper Lake」CPU - PC Watch
FadisさんはTwitterを使っています 「誰も使っていないプラットフォームのサポートの大掃除を進めるLinuxでIntelのMoorestown及びMedfieldマイクロアーキテクチャのサポートが廃止が決定したらしい。これらはAtomの中でも特に省電力を重視したSoCで、IntelがまだスマートフォンでARMと戦う気があった時代の産物 https://t.co/KlKx8M0ug6」 / Twitter
Linux Says Farewell To Intel's Smartphone Attempts With Clearing Out Moorestown / Medfield - Phoronix
FadisさんはTwitterを使っています 「「誰も使っていない」と判断した理由が「ここ数年このプラットフォームでLinuxが動かなくなるような変更が入った際にIntel以外から不具合の報告が上がったためしが無い」(つまりIntelは今もしっかり保守しているけどこのSoCを使っているユーザは存在しない)なのが哀愁漂ってる」 / Twitter
製品の開発コード名 Elkhart Lake

【イベントレポート】Intel、次世代10nm CPUと22nm Atomを積層した混載CPU「Lakefield」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが3D積層のヘテロジニアスマルチコアCPU「Lakefield」の技術を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】2020年代のIntel CPUのカギとなる新2.5D/3D積層技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】チップレットレースで静かに突き進むIntelのパッケージ技術 - PC Watch
Samsung、異種混在CPU“Lakefield”搭載のモバイルノート「Galaxy Book S」 - PC Watch
【笠原一輝のユビキタス情報局】CoreとAtomを両搭載するIntelの新CPU「Lakefield」 - PC Watch
Products formerly Lakefield
InstLatX64さんはTwitterを使っています 「5-Core #Intel Core i5-L16G7 (#Lakefield) 806A1 CPUID dump added - Supported: SSE4.2, GFNI, CLWB, HYBRID - Unsupported: MOVDIR*, WAITPKG, CLDEMOTE, AVX, FMA, BMI, HTT, LZCNT, ADX, X2APIC, PAGE1GB, X2APIC, MPX, SGX https://t.co/f2lANECbdu https://t.co/0Lvti67aSq」 / Twitter

Ice Lake

Ice Lake (client) - Microarchitectures - Intel - WikiChip
Sunny Cove - Microarchitectures - Intel - WikiChip
製品の開発コード名 Ice Lake
Intel Core i31005G1 Processor 4M Cache up to 3.40 GHz Product Specifications
価格.com - ASUS VivoBook 15 X512JA X512JA-EJ115T 価格比較
herumiさんのツイート: "Cascade Lake-AP https://t.co/MdOLsFwmDv >プログラマーはMKL-DNNの最新版を利用することで、VNNIに自分のソフトウェアを対応させることができる。 Xbyakも1年以上前からVNNIに対応してます。というかMKL-DNNはXbyak経由でvpdpbusdを使ってるともいう。 https://t.co/x2N8zFJOE9"
mkl-dnn/jit_avx512_core_gemm_s8u8s32_kern.cpp at master · intel/mkl-dnn
Intel、次世代CPUアーキテクチャ「Sunny Cove」の概要を明らかに ~Willow Cove、Golden Coveと進化予定、Atomのロードマップも更新 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの10nm世代CPUコア「Sunny Cove」のカギとなるAVX-512 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが10nmプロセスの「Ice Lake」を正式発表 - PC Watch
【笠原一輝のユビキタス情報局】Intelが新CPUを製品コードネームではなくマイクロアーキテクチャ名で説明したその背景 - PC Watch
Intel、10nmの第10世代Coreを出荷開始。プロセッサー・ナンバー変更 - PC Watch
【笠原一輝のユビキタス情報局】Intel、第10世代Core発表。10nmプロセスで、L1が1.5倍、L2は倍増に - PC Watch
【イベントレポート】次世代ノートPCでは1秒復帰/薄型狭額縁/AI機能/Core i5以上が標準に ~Intelのモダン化規格「Project Athena 1.0」を公表 - PC Watch
「Project Athena」でユーザーの声を汲み上げたモバイルPCを提供するIntel - PC Watch
【笠原一輝のユビキタス情報局】第10世代Coreの複雑怪奇なプロセッサナンバーを理解する - PC Watch
第231回 Intelの新プロセッサ「第10世代Coreプロセッサ」3つの特徴をざっくり検証:頭脳放談 - @IT
インテル® Adaptix™ テクノロジーが実現する自動チューニング
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 1
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 2
IntelがIce Lake世代のCPUに施した「目立たないパワーアップ」とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ネタ自体は面白いけど、GIGAZINEさん自身は bit と byte をあちこち混同して説明してるな。 ---- 「32bitを1単位として、「ymm1」レジスタの値をメモリに書き込んで」 「256bit分の領域を値で埋めることができたら…次のループに備えています。… add rax, 256」 https://t.co/6Zfi4RC5pl」 / Twitter
IntelのIce Lake世代CPUは「命令の種類による最大クロック制限」が緩和されている - GIGAZINE
InstLatX64さんはTwitterを使っています 「The only non-Core #SunnyCove, the Pentium 6805 also supports #AVX512: https://t.co/mrQjdBqlkV Source: https://t.co/WtIwBkuCx4 Well done! https://t.co/lmZFwjiWqO」 / Twitter
Intel® Pentium® Processor 6805 (4M Cache, up to 3.00 GHz) Product Specifications
Asus Laptop X515JA-BR661 Pentium 6805 тест с комментариями - YouTube

Tiger Lake

Willow Cove - Microarchitectures - Intel - WikiChip
Intel、新GPU「Xe」内蔵の「Tiger Lake」プロセッサを2020年投入 - PC Watch
【イベントレポート】Intel、10nm+のTiger LakeとXeアーキテクチャの単体GPU「DG1」を実機デモ - PC Watch
Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加 - PC Watch
Intel、次世代モバイルプロセッサ「Tiger Lake」の詳細を明らかに ~L2/L3が大幅増加、96EUのXe-LPを内蔵、LPDDR5やPCIe Gen4などに対応 - PC Watch
Intel、第11世代Coreプロセッサーを正式発表。「Intel Evo platform」のブランドも導入 - PC Watch
第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
Intel、“AMDのノートはバッテリ駆動時に性能が大きく低下”と指摘 - PC Watch
Intel Sunny Cove - Agner's CPU blog
InstLatX64さんはTwitterを使っています 「#Intel #Celeron 6305 (#TigerLake-UP3) 806C1 (#AVX512 enabled, #AVX512_VP2INTERSECT, MOVDIRI, MOVDIR64B, CLWB, RDT_A) CPUID dump Thx, @ccc00911! https://t.co/9y3gXcmKJW https://t.co/KqURzj8psd」 / Twitter
InstLatX64さんはTwitterを使っています 「#Intel Ark seems wrong regarding SIMD support of #Pentium Gold 7505 and #Celeron 6305: https://t.co/YuspuMvlHQ https://t.co/wIUSyAIE0A」 / Twitter
Intel® Product Specification Comparison
Intel、最大8コアになったゲーミングノート向け第11世代Core - PC Watch
Intel、TDP 35Wの高性能CPU「第11世代Core H35シリーズ」を発表。VAIOの次世代ハイエンドノートと思しきマシンがチラ見せ - PC Watch
PC=職場という新しい認識にマッチした第11世代vPro搭載ノート - PC Watch

Alder Lake

【笠原一輝のユビキタス情報局】モバイル版第12世代Coreは、M1 MaxやRyzen 9を超える性能を発揮 - PC Watch
Intel、性能が4割向上したノート向け第12世代Core - PC Watch
【笠原一輝のユビキタス情報局】なぜ第12世代Core Pは性能が2倍になるのか?第3世代Evo登場で薄型ゲーミングノート流行の兆しも - PC Watch
Intel、薄型軽量ノート向け第12世代Coreを出荷開始。28Wでも14コア - PC Watch
Alder Lake-P のブートログ | Coelacanth's Dream
ALDERLAKE_L と Alder Lake-P/M | Coelacanth's Dream
Alder Lake-M 関連のパッチが Coreboot に投稿される ―― ADL-M は ADL-P の I/O 縮小版か | Coelacanth's Dream
Alder Lake-P/M のステッピング、PL1/PL2 参考値 | Coelacanth's Dream
Alder Lake-P/M の PL4 参考値と Brya の設定値 | Coelacanth's Dream
Alder Lake-N を搭載する Chromebookボード Nissa, Nivviks, Nereid | Coelacanth's Dream
CPU 8-Thread、GPU 32EU を持つ Alder Lake-N | Coelacanth's Dream
メモリコントローラー 1基 (64-bit) の Alder Lake-N | Coelacanth's Dream
第12世代Alder Lake Mobility CPUのロードマップで、14コアのAlder Lake-Pと10コアのAlder Lake-Mを確認、DDR5をサポートする最初のノートPCを発表 - 自作ユーザーが解説するゲーミングPCガイド
低消費電力コアにもかかわらず、インテルのAlder LakeモバイルはTDP115Wまで押し上げられる|自作.com
Intelが第12世代AlderLakeモバイルのフルラインナップを発表:最大14コアと5.0 GHz|自作.com
Intelが「世界最速のモバイルプロセッサ」としてモバイル向け第12世代Coreプロセッサを発表 - GIGAZINE
ASCII.jp:Alder Lake-HはIntel Arcと連動させてエンコードを高速化できる インテル CPUロードマップ (1/3)

Meteor Lake

Coreboot に Meteor Lake-M/P の DeviceID が追加される | Coelacanth's Dream

【スペック一覧】モバイル向けIntelプロセッサー・ナンバー一覧表 - PC Watch
パソコン/タブレット/スマートフォン ノートパソコン Acer - PC Watch
PCパーツ ベアボーン Intel - AKIBA PC Hotline!
専用ベンチではRyzenが高性能でも、ゲーム性能ではCoreが勝つ理由とは ~Intelがベンチマーク説明会を開催 - PC Watch

レガシー

Pentium Pro

ASUS P/I-XP6NP5 - Specs | BIOS | Drivers | Manual | Download
ASUS 日本
Pentium Pro - Wikipedia
P6マイクロアーキテクチャ - Wikipedia
Socket 8 - Wikipedia
I2O - Wikipedia
I2O - Wikipedia
Dynamic Random Access Memory - Wikipedia

Ivy Bridge

Westmere - Microarchitectures - Intel - WikiChip
Sandy Bridge (client) - Microarchitectures - Intel - WikiChip
Ivy Bridge - Microarchitectures - Intel - WikiChip
「第3世代Coreプロセッサ・ファミリ」はどこが進化したのか - @IT
Intel Core i3-3220 - CM8063701137502 / BX80637I33220 / BXC80637I33220
GA-H77M-D3H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 3rd Generation Intel® Core™ Processor Family: Spec Update
Mobile 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Mobile 3rd Generation Intel® Core™ Processor Family, Mobile Intel® Pentium® Processor Family, and Mobile Intel® Celeron® Processor Family - Datasheet, Volume 2
Mobile 3rd Generation Intel® Core™ Processor Family: Spec Update
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Family - Datasheet Specification Update

Haswell

Haswell - Microarchitectures - Intel - WikiChip
Intel Core i5-4200U Mobile processor - CL8064701477702
Intel® Core™ i5-4200U Processor (3M Cache, up to 2.60 GHz) 仕様
E1-572-A54D_H1 - E1-572-A54D_201306.pdf
製品サポート
価格.com - Acer Aspire E1 E1-572-A54D スペック・仕様
Intel® Core™ Processors (M/H-Processor Lines) Datasheet, Vol. 1
Mobile 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Mobile 4th Gen Intel® Core™ Processor Family I/O: Datasheet
Mobile 4th Gen Intel® Core™ Processors Spec Update
Desktop 4th Gen Intel® Core™ Processors Datasheet, Vol. 1
Desktop 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 4th Gen Intel® Core™ Processors Spec Update
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 8/C220 Series Chipset Platform Controller Hub: Update
14nmの不足の中で、Intelは22nm Pentium G3420に命を吹き込みます - 自作ユーザーが解説するゲーミングPCガイド
Intel Celeron G1840 - CM8064601483439 / CM8064601562181 / BX80646G1840
インテル® Celeron® プロセッサー G1840 (2M キャッシュ、2.80 GHz) 製品仕様
価格.com - 東芝 dynabook Satellite R35 R35/M PR35MGAD423AD71 価格比較
Intel Core i3-4005U Mobile processor - CL8064701478404
ASUS H87-PRO Review & Specs - Pangoly

Broadwell

Broadwell - Microarchitectures - Intel - WikiChip
H97-PRO | マザーボード | ASUS 日本
Intel Core i5-5675C - CM8065802483201 / BX80658I55675C
製品の仕様情報 - Intel® Core™ i5-5675C Processor (4M Cache, up to 3.60 GHz)
5th Generation Intel® Core™ Processor Family Datasheet Vol. 1
5th Generation Intel® Core™ Processor Family Datasheet Volume 2
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 1
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 2
Desktop/Mobile 5th Gen Intel® Core™ Processor Family Spec Update
Intel® 9 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 9 Series Chipset Platform Controller Hub Spec Update
MSI、Intel 9シリーズマザーのBIOS更新でNVM Expressに対応 - PC Watch

Skylake

Intel

Intel® Core™ i3-6100 Processor (3M Cache, 3.70 GHz) 仕様
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Processor Datasheet for S-Platforms — Datasheet – Volume 2 of 2
6th Generation Intel® Processor Family
6th Generation Intel® Processor Family Uncore Reference Manual
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 1
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 2
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Specification Update

Errata

Skylake CPUで複雑な処理を実行させるとPCがフリーズするバグが確認される | スラド IT
IntelのSkylakeプロセッサに複雑な計算プログラム実行でシステムフリーズするバグが見つかる - GIGAZINE
【PC】Intel Skylake/Kaby Lakeに深刻な欠陥 Hyper-Threadingでシステムが予測不能な動作、データ損失などの可能性 すべてのOSに影響 | LH MAGAZINE
[WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
Skylake/Kaby LakeプロセッサのHTTに不具合 | スラド Linux
IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Skylake/Kaby Lakeでシステムクラッシュを引き起こすエラッタが発見。BIOS更新が必要 - PC Watch
北森瓦版 - “Skylake”と“KabyLake”にHyperThreading周りのエラッタが発見される
2017年6月29日 Debian開発者,Intel Skylake/Kaby Lakeユーザにハイパースレッディング無効化を警告:Linux Daily Topics|gihyo.jp … 技術評論社

News

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に : ニッチなPCゲーマーの環境構築
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
第 6 世代インテル® Core™ プロセッサー (開発コード名 Skylake) の概要
古田雄介のアキバPickUp!:Skylakeに低GPU内蔵のPモデルが登場! (1/4) - ITmedia PC USER
Hot Chips 28 - Inside Skylakeと題したIntelの発表 (1) 消費電力管理に改良が施されたIntelのSkylake | マイナビニュース
【特集】「Skylake」完全攻略!!(追加検証) - 内部解析で第6世代Coreの謎に迫る | マイナビニュース
Intel、SpectreパッチでのOS再起動問題に対処したSkylake向けファームウェアを提供 - PC Watch
Intel microcode updates
Microsoft Update カタログ

マザーボード | H170-PRO | ASUS 日本
J10812_H170-PRO_web_only.pdf
Intel® Management Engine の重要なファームウェア・アップデート | サポート 公式 | ASUS 日本
Skylake (client) - Microarchitectures - Intel - WikiChip
Core i3-6100 - Intel - WikiChip
Intel Core i3-6100 - CM8066201927202 / BX80662I36100

Kaby Lake

GA-Z270X-UD5 (rev. 1.0) | マザーボード - GIGABYTE Japan
Kaby Lake - Microarchitectures - Intel - WikiChip
Core i3-7100 - Intel - WikiChip
Intel Core i3-7100 - CM8067703014612 / BX80677I37100 / BXC80677I37100
インテル® Core™ i3-7100 プロセッサー (3M キャッシュ、3.90 GHz) 製品仕様
Datasheet, Vol. 1: 7th Gen Intel® Processor Family for S Platforms
Datasheet, Vol. 2: 7th Gen Intel® Processor Family for S Platforms...
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH
Intel® 200 and Z370 Series Chipset Families PCH Spec Update

Intel、Core 2 Duoなど旧CPUの「Spectre」対策を中止 - PC Watch
1502494_PC_AT_Technical_Reference_Mar84.pdf
Chromeは15年以上前のプロセッサではまもなく機能しなくなります|自作.com
化石レベルの古いCPUは切り捨て ~「Google Chrome 89」でx86版はSSE3命令が必須に - やじうまの杜 - 窓の杜
Flash対応を廃止。「Electron 12」が正式リリース ~SSE3命令が必須に - 窓の杜

GPU

その他

Intel Graphics - ArchWiki
drivers/gpu/msd-intel-gen - Git at Google
Makoto Kato ︎︎さんのツイート: "先週聞いた面白バグでDXGI_USAGE_SHADER_INPUTを使うかどうかでIntel GPUが激速くなるって話があったんだけど、これのRoot cause知りたい https://t.co/VgdEMJsdZA"
1528865 - Blitting picture cache tiles seems slower on Windows/ANGLE for the same hardware.
グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて - DXR165の備忘録
Intel Processor Graphics 調査メモ - DXR165の備忘録
実機でIntel Processor Graphicsメモリ検証 - DXR165の備忘録
Windows 10プレビューに“外部GPUの安全な取り外し”機能追加 - PC Watch
Windows 10プレビュー版、iGPU/dGPUを任意に切り替え可能に - PC Watch
【イベントレポート】Intel、ノートPC向けディスプレイの消費電力を削減する新技術 - PC Watch
CURD: A Dynamic CUDA Race Detector
FadisさんはTwitterを使っています 「初期のPC向けGPUは座標変換をCPUに任せていたけど、それだと座標変換で詰まるって事で座標変換もGPUで行うようになった。その後GPUがプログラマブルになると頂点計算する演算器とピクセル計算する演算器をパイプラインを止めない割合で積むのが難しくなり、両方を共通のプロセッサで行うGPUが登場した」 / Twitter
FadisさんはTwitterを使っています 「一方SGIのワークステーションは、浮動小数点数の計算が超速いDSP積んだからそこで全部なんとかしろ、というハードウェアだったので、PCのGPUは試行錯誤の末にSGIと同じ形にたどり着いた感がある」 / Twitter
Intel GPUドライバ、PCメーカー版と相互入れ替え可能に - PC Watch
Intel、内蔵GPUによるウイルスチェック機能を実装。チップ消費電力を半減 - PC Watch
統合型GPUでメモリ内のマルウェアをスキャン。Intelがセキュリティに関する新技術や取り組みを発表 - 4Gamer.net
IntelがマルウェアスキャンにGPUの使用を開始
Intel、Lakefield の GPU Programmer's Reference Manuals を公開 | Coelacanth's Dream
【山田祥平のRe:config.sys】本当に必要なのかを悩み続けるグラボ狂想曲 - PC Watch

Driver

グラフィックドライバーを更新してハードウェアアクセラレーション機能と WebGL を使用する | Firefox ヘルプ
インテル® ドライバー & サポート・アシスタント
AMD Radeonの公式ソフトウェアおよびドライバー
NVIDIAドライバダウンロード
ドット絵を引き伸ばしてもボヤけない機能、Ice Lakeの内蔵GPUにも実装 - PC Watch

Intel

Hardware Specification - PRMs | 01.org
VAAPI | 01.org
Hardware Accelerated H.264 Video Encoding using VAAPI on the Intel® Atom™ Processor E6xx Series
インテル® プロセッサー・グラフィックス | iSUS
Intel® Processor Graphics | Intel® Software
インテル® グラフィックス・コントローラーの識別
Identify Your Intel® Graphics Controller
Quick Reference Guide for Intel® Core™ Processor Graphics | Intel® Developer Zone
Using hardware video decode on Mobile Internet Devices | Intel® Developer Zone
01org/intel-hybrid-driver

レガシー

Clarkdale

【多和田新也のニューアイテム診断室】CPU+GPUを統合したClarkdaleこと「Core i5-661」 - PC Watch
【後藤弘茂のWeekly海外ニュース】BecktonからClarkdaleまでの実態が明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】IntelがMoorestownとClarkdaleの新情報を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Westmere系CPUのラッシュとなるIntelの2010年ロードマップ - PC Watch

Sandy Bridge

Intel Fanboy Blog: いまさらSandy Bridge 2: RWT Graphics編
Intel Fanboy Blog: Agner氏の最適化manualが更新された
Intel Fanboy Blog: いまさらSandy Bridge 1: RWT編
Intel Fanboy Blog: Sandy Bridgeの最適化マニュアル
Intel Fanboy Blog: 駄文: uop長とuop cache
Intel Fanboy Blog: 単一uopで128b/256bのLoadを実現するSandy Bridge
【後藤弘茂のWeekly海外ニュース】今どきのGPUコアへと生まれ変わるSandy Bridge - PC Watch

Ivy Bridge

【後藤弘茂のWeekly海外ニュース】Ivy Bridgeの強化ポイントはGPUアーキテクチャの改革 - PC Watch

Haswell

【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
【後藤弘茂のWeekly海外ニュース】次世代CPU「Haswell」の2倍強力なGPUコア - PC Watch

Broadwell

【後藤弘茂のWeekly海外ニュース】IDFでIntelが14nmプロセス世代の「Broadwell」を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelがデスクトップ/eDRAM版を含めた「Broadwell」ファミリを説明 - PC Watch

Skylake

COOL Chips XIX - コンピューティングの新たなフロンティア (1) SkylakeのGPUが示したIntelの新たな方向性 | マイナビニュース
COOL Chips XIX - コンピューティングの新たなフロンティア (2) SkylakeのGPUの構造 | マイナビニュース
歴代Intelグラフィックの劇的進化が第6世代Intel Coreプロセッサ「Skylake」のGPU詳細から浮き彫りに - GIGAZINE
【後藤弘茂のWeekly海外ニュース】Intelがチラ見せする「Skylake」世代のCPUの姿 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeアーキテクチャの謎 その2 ~5命令デコーダと6命令uOPキャッシュ - PC Watch
【後藤弘茂のWeekly海外ニュース】実行モデルを変更したSkylakeのGPUコア ~より汎用的なGPUコンピューティングに向いた設計へ - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUコンピューティング機能を強化したSkylakeのGPU ~タブレットの応答性が向上 - PC Watch

Kaby Lake

Intel、Kaby Lakeこと第7世代Coreプロセッサを正式発表 ~Skylakeからビデオエンジンが強化 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Kaby Lake」は“+”プロセス世代初のCPU - PC Watch

Ice Lake

【イベントレポート】Intel製Gen11 GPUは、ユニット3割増で1080pゲームも可能に。Adaptive-Syncにも初対応 - PC Watch
Intelの次期内蔵GPUは1TFLOPSの性能で3Dゲームにも対応 - PC Watch
西川善司の3DGE:第10世代Coreプロセッサに統合されたGPUの正体。性能はRyzen 7 3700Uの内蔵Vegaとほぼ同等で,Variable Rate Shadingにも対応 - 4Gamer.net

Tiger Lake

【やじうまPC Watch】Tiger Lake内蔵のXe GPUで「バトルフィールドV」がプレイ可能 - PC Watch
薄型ノートでゲーミングを可能にするIntel Xe GPUまとめ 〜ゲーム認証プログラムが日本国内でも開始 - PC Watch

Alder Lake

Linux Kernel に Intel Alder Lake-P をサポートするパッチが投稿される ―― ディスプレイエンジンに "XE_LPD" | Coelacanth's Dream

Raptor Lake

Alder Lake-S と同じ GPU IP となる Raptor Lake-S | Coelacanth's Dream

Xe GPU

DG1

【後藤弘茂のWeekly海外ニュース】IntelがディスクリートGPUのプロトタイプを発表 - PC Watch
【イベントレポート】Intel、同社初の単体GPU「DG1」搭載ビデオカードを初披露。開発者向けボードは第1四半期中に出荷 - PC Watch
【PR】Architecture Dayに見た、Intelの底力と変貌【新GPU「Xe」編】 ~GPUでもトップ性能を狙うIntelの秘技とは- PC Watch
Intel、22年ぶりのディスクリートGPU「Iris Xe MAX」を正式発表 - PC Watch
Intel、ゲーミング向けXeとなるXe-HPGの存在を明らかに ~Xe-HPGは外部のファウンダリで製造され、2021年に市場投入 - PC Watch
Xe LP採用ビデオカード「DG1-4G」スペック公開。対応マザボは2種類限定 - PC Watch
i740以来のIntelビデオカードがついに登場。まずASUSから - PC Watch

Intel Arc

Intelの単体GPU「Arc」、デスクトップ版は第2四半期 - PC Watch
Intel、ゲーマー向け次世代GPU「Arc」をチラ見せ。ハイエンドまで対応可能な伸縮アーキテクチャ - PC Watch
Intel製GPU「Arc」に搭載される高解像技術「XeSS」、初のゲームデモ - PC Watch
Intel のマルチタイル GPU をサポートするパッチが投稿される | Coelacanth's Dream
Xe-HPC のサポートが intel-graphics-compiler、oneDNN に追加される | Coelacanth's Dream
最大 16本の Pixel Pipe を持つ Intel DG2 | Coelacanth's Dream
3種類存在するかも知れない Intel Alchemist/DG2 と 2種類存在する Ponte Vecchio | Coelacanth's Dream
Intel Alchemist/DG2 は AV1エンコードをサポートか | Coelacanth's Dream
DG2-G12, DG2 L3 banks, SIMD width | Coelacanth's Dream
DG2 と Arctic Sound-M の関係性 | Coelacanth's Dream
2つの非同期パイプラインが追加される XeHP EU | Coelacanth's Dream
Intel Xe-HP EU に追加されるパイプラインと増加するスレッド、レジスタファイル | Coelacanth's Dream
Linux Kernel に Intel Xe-HP SDV, DG2 をサポートする最初のパッチが投稿される | Coelacanth's Dream
Xe-LP/HP より大きな命令キャッシュを持つ Xe-HPG | Coelacanth's Dream
Intel、Display13 改め "XE_LPD" をサポートするパッチを投稿 ―― 今後は独立して各 IP が更新されるように | Coelacanth's Dream
Intel DG2-G10 (512EU) Bootlog | Coelacanth's Dream

Wikipedia

Intel Arc - Wikipedia
Intel Xe - Wikipedia
Intel Xe - Wikipedia
Intel HD Graphics - Wikipedia
Intel HD and Iris Graphics - Wikipedia
Intel GMA - Wikipedia
Intel Extreme Graphics - Wikipedia
Intel 845 - Wikipedia
Intel 830 - Wikipedia
Intel 815 - Wikipedia
Intel 810 - Wikipedia
Intel 740 - Wikipedia
Intel740 - Wikipedia
Accelerated Graphics Port - Wikipedia
実行ユニット - Wikipedia
High-bandwidth Digital Content Protection - Wikipedia

MIMD/SIMT

Hideyuki Tanakaさんのツイート: "てか僕はいまだにMIMDでなんでNVIDIAと同じぐらいの面積当たり演算性能出せてるのかがいまだに謎(´・_・`)いやまあ若干低いけど、それがそこまでのコストになんないならなんでNVIDIAがSIMTにこだわる必要があったんだろうとか。"
青子守歌さんのツイート: "@tanakh GPUだから・・・"
Hideyuki Tanakaさんのツイート: "@aokomoriuta そりゃまあそうですね…"
Hideyuki Tanakaさんのツイート: "結局クソでかいレジスタファイルは用意しないといけないし、面積インパクトとして独立したIPもってデコードして云々はそんなにでかくもなかったというのがアレなのかなあ。"
Jun Makinoさんのツイート: "フルデコードの倍精度浮動小数点演算器1つに比べてプロセッサコアは「小さい」のでMIMD にすることのシリコン面積的なオーバーヘッドはせいぜい 30%(数字は適当) という議論はまさに2014年3月にTさんとした。"

IPU

Intel、第11世代Coreプロセッサの技術詳細を語る:新技術「SuperFinテクノロジー」採用(3/3 ページ) - EE Times Japan
第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
Intel,デスクトップPC向け第11世代Coreプロセッサ「Rocket Lake-S」を発表。14nmプロセスを使いながら6年ぶりにCPUコアを一新
Image Signal Processing of Intel® Core™ Processors: Presentation
17. Intel Image Processing Unit 3 (IPU3) Imaging Unit (ImgU) driver — The Linux Kernel documentation

GNA

AI 機能を搭載したインテリジェントな PC
intel/gna: GNA - Gaussian & Neural Accelerator Library repository
GNA Plugin — OpenVINO™ documentation

IPU

Miura HidekiさんはTwitterを使っています 「メインフレームの時代はチャネルに振るのが善だったわけだから時代が一周しただけのような気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 汎用vs専用コアか... あまり専用プロセッサが専用につくられていないと「あれ? このコアでも汎用計算させればいいんじゃね?」となると予想。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki それをずっと繰り返していますね。GPUとかは結構汎用的ですからCPUにパスが回ってくるのはメモリ帯域とかの理由になるかなーって思います。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「ほんと、「CPU使ったら負け」な世界になってきた。」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「今はクラウド利用者の処理⇒CPU、クラウドプロバイダの処理⇒IPUという形で、プロセッサレベルで処理を分けるのか。その方がセキュリティなどでも優位と。さらにDisklessなサーバ構成が実現できる。 「インフラ処理でCPUを使ったら負け」はつよいなー。」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「@kkaigai そうなりつつありますねー。やっぱり自社DCは厳しい。」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@tzkb 規模の経済性で、従来は汎用のCPUを行わざるを得なかった処理も、大手クラウドDC並みの規模になると、専用プロセッサを使っても利益を出せる…みたいな世界観なんでしょうね。 たぶん、頭で分かってても真似できないヤツ。」 / Twitter
こば - as a DB Engineer -さんはTwitterを使っています 「で、IPUでもIntelとArmが戦っており、ArmのNeoverseがAWSやOracle Cloud、Alibabaで採用されるなど優勢のようだ。」 / Twitter
Intelが新カテゴリーのプロセッサー「IPU」 NICでCPUの負荷軽減 | 日経クロステック(xTECH)

VPU

Intel Movidius VPU に関するメモ ―― Keem Bay, Thunder Bay, Meteor Lake | Coelacanth's Dream

AMD

その他

Windows 11の地味に便利な新機能! 「Nested Hyper-V」がAMD製CPUでもようやく可能に【イニシャルB】 - INTERNET Watch
Ryzen等でWindows11を実行するとゲーム性能が低下。2021年10月中に修正 [Update 1: 修正] | ニッチなPCゲーマーの環境構築Z
本の虫: AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題
swayからi3へ移行しました - w_o’s diary
AMD、Windows 11でRyzen CPUの「UEFI CPPC2」問題を解決するチップセットドライバーをリリース - 窓の杜
Versioned Chip Endorsement Key (VCEK) Certificate and KDS Interface Specification - 57230.pdf
Linux Kernel Set To Finally Retire AMD 3DNow! - Phoronix
Ryzen イベント 18 WHEA-Logger Cache Hierarchy Error 対策に CPU LLC Level 変更が効いた - ..たれろぐ..
第705回 Radeon Software for Linuxを使用する[2022年版]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

TAGE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2レベル適応型分岐予測で知識が止まっていて、TAGE知らなかった。 見た感じ、2レベル適応型をベースに、履歴ビット長を級数別で用意みたいな雰囲気…?なぜオカルト派的な話が出るのか不思議。 https://t.co/hqKVDOoXjX https://t.co/2l4pAU6FJa」 / Twitter
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
R. ShioyaさんはTwitterを使っています: 「「原理的には相関がある分岐がロジカルに見つかるはず」なデジタル派と「分岐予測ってのは,とどのつまり流れなわけよ流れ」とか言ってるオカルト派みたいに分かれて話してた https://t.co/vgXW8DNZqx」 / Twitter
hrk先生さんはTwitterを使っています: 「@r_shioya TAGEは巧みな方法ですが、動作内容を理解してない人が多すぎ。オカルトと思っているのじゃないかな?分岐予測論文で比較対象として実装して提案手法の優位性をしめしている論文の少なくない割合の論文では実装が間違っている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔々「2レベル適応型分岐予測」を知った時に、もう十分賢いから改善余地無さそうと思っていたけど、最後の数%ミスで数10%のパフォーマンス影響とは…」 / Twitter
R. ShioyaさんはTwitterを使っています: 「TAGE 自体に興味ある方は,BATAGE という改良版のこの論文が過去の予測器の経緯とかも含めてコンパクトにまとまってると思いますので読んでみてはと. https://t.co/ovCGPq4jkk https://t.co/WVYvMPQIwb」 / Twitter
An Alternative TAGE-like Conditional Branch Predictor
R. ShioyaさんはTwitterを使っています: 「@shirouzu オカルトについては別に書いた通りなんですが,今日日だと「1サイクル8命令フェッチ × 予測ミス判明まで最短15サイクル=120命令取り消し」みたいのが,2レベル適応型だと1000命令あたり10回ぐらいはおきるので,実質半分以上無駄に実行してるみたいになって,これでは全然精度たりないみたいな感じです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya ご説明ありがとうございます。まさにそこが判らなかった点でした。 (パイプライン10数段のペナルティ=10数命令破棄だけのはずでは、と) なるほど、そういうことなのですね。とても興味深いです。」 / Twitter
Branch Prediction and the Performance of Interpreters - Don't Trust Folklore

PC Watch

Zen

【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Zen」アーキテクチャの概要を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代コア「Zen」などの概要が明らかに ~「Hot Chips 28」セッションにて、IBM製CPU「Power9」の概要も - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPU「ZEN」の整数ユニットはBulldozer系と全く異なる - PC Watch
【後藤弘茂のWeekly海外ニュース】相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ISSCCで明らかにされたAMD Zen CPUコアの実装 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが新CPU「Ryzen 7」を発売。続けて「Ryzen 5」と「Ryzen 3」も投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch

Zen 2

【後藤弘茂のWeekly海外ニュース】AMDがチップレットアーキテクチャのクライアント版Zen 2を投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが16コアRyzen 9を含むZen 2の概要とアーキテクチャを発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に - PC Watch
【後藤弘茂のWeekly海外ニュース】処理能力が2倍に拡張されたAMD Zen 2のAVXユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN 2ベースの64コアCPU「Rome」はなぜCPUとI/Oを分離したのか - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの7nmプロセス「ZEN 2」CPUコアのマイクロアーキテクチャ拡張 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、“Renoir”ことZen 2ベースAPU「Ryzen Mobile 4000シリーズ」の概要を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2 CPUコアの物理的な姿が明らかに - PC Watch

Zen 3

【後藤弘茂のWeekly海外ニュース】AMD Ryzenの「Zen 3」と「Zen 4」アーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmプロセスに最適化したAMDのRyzen 4000 - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmで作られた第3世代Ryzenのトランジスタ密度が低い理由 - PC Watch
【笠原一輝のユビキタス情報局】「Ryzen 7 5800U」はApple M1を上回る性能で、Intel並みの長時間駆動を実現 - PC Watch
AMD、Zen 3採用のデスクトップ向けAPUを発表。従来比50%高速なノート向けGPUも - PC Watch
AMD、Zen 3アーキテクチャに刷新したGPU内蔵の「Ryzen 5000G」 - PC Watch
「Ryzen 7 5700G」と「Ryzen 5 5600G」が6日に国内発売 - PC Watch
【Hothotレビュー】Zen 3コアとなり、リテール版も用意された「Ryzen 7 5700G」と「Ryzen 5 5600G」をテスト - PC Watch

Zen 3+

Ryzen 6000モバイル版で遂にGPUにてこ入れ。Zen3+とRDNA2で性能大幅引き上げ - PC Watch
AMD、高性能かつ長時間駆動なモバイルノートを実現するRyzen 6000シリーズ - PC Watch
【笠原一輝のユビキタス情報局】AMDのモバイルハイエンドCPU「Ryzen 6000シリーズ」、その高性能の秘密 - PC Watch

Zen 4

AMD、Socket AM5と5nmに進化した「Zen 4」こと「Ryzen 7000」 - PC Watch

【笠原一輝のユビキタス情報局】AMD PROで国内法人PCシェア倍増を目指すAMD ~チャネル市場向けAMD PROの計画も明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDやIBM、Armが「Hot Chips 31」でCPUアーキテクチャを公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが目指すマルチダイ統合最初の一歩“ZENのMCMアプローチ” - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがISSCCでZENベースSoC「Zeppelin」の詳細を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの2017年以降の全チップの土台となる「Infinity Fabric」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが12nmプロセスの第2世代Ryzenファミリを正式発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが第2世代RyzenやAPU版Ryzen、モバイル版Vegaなどを一挙発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN+Vegaとなった「Ryzen Mobile」ファミリの詳細 - PC Watch
第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch
Ryzen 5000などにSpectreに似た投機実行の脆弱性 - PC Watch
AMD、高速L3キャッシュでゲーム性能を15%向上させる3D積層技術 - PC Watch
【笠原一輝のユビキタス情報局】AMD RyzenがIntelより優位な理由。プロセッサの競争軸を変えていく「3Dパッケージング技術」とは? ~AMDが3D Chiplet Technologyを発表 - PC Watch
AMD、Re-Size BAR対応のRyzen 5000シリーズ向け新BIOSを2月に公開 - PC Watch
UEFI CPPC2 - Google 検索
第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch
AMD製CPUとWindows 11で起こる不具合が複数解消 - PC Watch
Windows 11でのRyzenのL3キャッシュ遅延問題が解消 - PC Watch
【やじうまPC Watch】初のWindows 11パッチでRyzenのL3遅延がさらに悪化? - PC Watch
Windows 11テスト版でRyzenのL3キャッシュ遅延問題が修正。非ASCII文字+レジストリの不具合も対処 - PC Watch
AMD、LinuxのNUMA性能を約15%高める400行未満のコード - PC Watch

GIGAZINE

「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE
最新グラボから旧式グラボまで対応の超解像技術「AMD FidelityFX Super Resolution」をAMDが解説 - GIGAZINE
Zen4アーキテクチャベースの次世代Ryzenプロセッサは2022年に発売予定 - GIGAZINE
AMDが「Windows 11でRyzenプロセッサのパフォーマンスが最大15%低下する問題」を修正するチップセットドライバーを配布 - GIGAZINE
Windows 11環境でRyzenなどの性能が低下する問題があるとAMDが発表 - GIGAZINE
「Windows 11におけるAMD Ryzenプロセッサの性能低下」問題の次期アップデートでの解決をMicrosoftが報告 - GIGAZINE
UEFI CPPC2 - Google 検索
「Windows 11でAMD製CPUのパフォーマンスが低下する問題」が更新プログラムでさらに悪化 - GIGAZINE
AMDがゲーム性能を底上げしたノートPC向けAPU「Ryzen 6000」シリーズを発表 - GIGAZINE
Lenovoに搭載されているAMD CPUにベンダーロックが設定されているせいで中古市場が混乱している - GIGAZINE
AMD製CPUでfTPM機能を有効にしているとWindowsの性能が一時的に低下する可能性がある - GIGAZINE

ASCII.jp

ASCII.jp:ついにBGAからLGAに変更されるZen 4 Ryzen AMD CPUロードマップ (1/3)
ASCII.jp:Zen 3に埋め込まれたTSVが3D V-Cacheにも実装か? AMD CPUロードマップ (1/3)
ASCII.jp:判明した第3世代Ryzenの内部構造を大解説 AMD CPUロードマップ (3/4)
ASCII.jp:Alder Lakeと十分戦える省電力機能が実装されたRyzen 6000 Mobileシリーズ AMD CPUロードマップ (1/3)
ASCII.jp:ISSCC 2022で明らかになったZen 3コアと3D V-Cacheの詳細 AMD CPUロードマップ (1/4)

自作ユーザーが解説するゲーミングPCガイド

AMD FidelityFX Super Resolution(FSR)が6月22日に正式に公開、RadeonとGeForceのGPUが対応 - 自作ユーザーが解説するゲーミングPCガイド
AMD、BIG/LITTLEプロセッサ間のタスク移行方式の特許を取得 - 自作ユーザーが解説するゲーミングPCガイド
AMDはデスクトップ用CPUおよびGPUよりもサーバーおよびノートブック用CPUを優先する - 自作ユーザーが解説するゲーミングPCガイド
AMD CPUの脆弱性が発見され、管理者以外のユーザーのパスワードを漏らしてしまう - 自作ユーザーが解説するゲーミングPCガイド
AMD、Ryzen発売5周年を迎え、メインストリームおよびエンスージアスト向けCPUのリーダーへの道を歩む - 自作ユーザーが解説するゲーミングPCガイド
AMDとマイクロソフト、Ryzen CPUのL3とCCPC2の問題を修正するWindows 11エラーの公式パッチを公開 - 自作ユーザーが解説するゲーミングPCガイド
Zen 4 Dense (Zen4D)はIntel Hybrid Technologyに対するAMDの回答かもしれない - 自作ユーザーが解説するゲーミングPCガイド
次世代アップスケーリング技術「AMD FSR 2.0」を近日公開。あらゆるベンダーのGPUで動作し、優れたパフォーマンスと画質を実現 - 自作ユーザーが解説するゲーミングPCガイド
AMD、GDC 2022でFSR 2.0を発表 レイトレーシングでネイティブ解像度の2倍の性能、MLハードウェアなしで高画質化へ - 自作ユーザーが解説するゲーミングPCガイド
AMD FSR 2.0「FidelityFX Super Resolution」正式発表。最新のAAAゲームにおいて、ネイティブと同等以上の画質と、より高速なパフォーマンスを実現 - 自作ユーザーが解説するゲーミングPCガイド
AMD、「FSR 2.0」の詳細を発表。NVIDIA GeForce 10以上のサポート、機械学習なしの高画質アップスケーリング、より多くの品質モード - 自作ユーザーが解説するゲーミングPCガイド

自作.com

AMDのCPU「Zen 3」にSpectre類似の脆弱性が存在|自作.com
AMDはRyzen USB接続の問題の可能な修正を提案します|自作.com
AMD Ryzen 5000G Cezanne APU:現在OEM向けに出荷中、年内にDIY向けに発売予定|自作.com
AMD Zen 4プロセッサはより多くのSKUで統合グラフィックスを提供する可能性がある|自作.com
Researchers Disclose Meltdown-like Vulnerability for AMD Processors (Updated) | Tom's Hardware
レポート:AMD Zen 4 "Raphael" CPU、熱対策と電源管理が強化される|自作.com
AMD社製チップセットの脆弱性によりパスワードが流出、パッチを提供|自作.com
AMDのRobert Hallock氏がZen 4 PCIe Gen4の噂を払拭し、「Zen 哲学」の将来を語る|自作.com
AMD、Windows 11のバグに対する最初の公式修正プログラムを公開|自作.com
DDR5サポートが疑われるAMD初のRyzenCPUが登場|自作.com
テスト済み。Windows 11でAMDのCPUキャッシュレイテンシーが最大で12倍遅くなる|自作.com
Windows 11のベータ版にRyzen Cacheのレイテンシーを修正|自作.com
AMDがTSMCの3番目に大きな顧客になる|自作.com
AMDの詳細FidelityFXスーパーレゾリューション2.0|自作.com

Coelacanth's Dream

Aldebaran/gfx90a への対応を進める ROCmソフトウェア | Coelacanth's Dream
AMD の次世代モバイルプラットフォームでは人感センサーをサポート | Coelacanth's Dream
AMD CES 2022 個人的まとめ | Coelacanth's Dream
57-bits の仮想メモリアドレス空間と UAI が実装される将来の AMDプロセッサ | Coelacanth's Dream

Wikipedia

Ryzen - Wikipedia
Ryzen - Wikipedia
Zen 3 - Wikipedia
Zen 3 - Wikipedia

Twitter

AGESA

suzakiさんはTwitterを使っています 「メモ。AMDのUEFI以前にPSP(Platform Security Processor) とAGESA(AMD Generic Encapsulated Software Architecture )が行っていることについての記事。 AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? https://t.co/4bUtwxGeXR」 / Twitter
AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? | igor'sLAB
suzakiさんはTwitterを使っています 「AMDのAGESA(AMD Generic Encapsulated Software Architecture )インターフェース仕様 AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification https://t.co/cxmRjqmYZ9」 / Twitter
AMD Generic Encapsulated Software Architecture (AGESA™)Interface Specificationfor Arch2008 - 44065_Arch2008.pdf

OpenBMC

suzakiさんはTwitterを使っています 「メモ。AMDで進むオープンソースのファームウェア。まず、OpenBMCから ”AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC” https://t.co/dpY5gqjWv2 Open-Source Firmware Conference (OSFC 2020)での発表で水ども公開さ入れている。 https://t.co/2QDUUsdDJX」 / Twitter
AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC - Phoronix
AMD's Journey towards Open Source OpenBMC firmware :: Open Source Firmware Conference 2020 :: pretalx

Fumihiro MatsuiさんはTwitterを使っています: 「そういえば某社CPUのRDRAND命令の起動後エントロピー少ない場合の挙動あれじゃね?の件どうなったんだろうっていまググったら既にパッチ(マイクロコードアプデ?)で対応されたみたいだった」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@MikeHommey あえて空冷にしました。 https://t.co/LLDs9ArmPV 見た目よりも大きいので、PCIeスロットがソケットに普通より近いモデルではグラフィックカードと干渉します。また、高さもあるのでケースも選びます。私はLEDを設定するためのUSBケーブルが、グラフィックカードと干渉して付けられませんでした。」 / Twitter
Cooler Master: Wraith Ripper
うーさんはTwitterを使っています: 「もしやと思ってIA32_STAR[48:63]に設定する値(アプリ用のスタックセグメントセレクタ)に3を足してみたら(RPL=3)GPが出なくなった。多分AMDのCPUのバグだこれ。」 / Twitter
うーさんはTwitterを使っています: 「いや,バグじゃない。仕様通りだ。IntelのCPUで例外にならずAMDのCPUで例外になるというのが仕様通り。やられた。」 / Twitter
FadisさんはTwitterを使っています: 「AMDの少し古いCPUでLinuxカーネルから得るCPU情報を「乱数生成器なし」にする提案がなされている。対象のCPUは乱数生成器を持つが、このCPU向けの一部のBIOSがサスペンドから復帰する際に乱数生成器を正しく初期化せず、復帰後予測可能な値が出てくる問題が指摘されていた https://t.co/CmBOGEFq84」 / Twitter
AMD Bulldozer/Jaguar CPUs Will No Longer Advertise RdRand Support Under Linux - Phoronix
Takuto NaitoさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
Attacking the Golden Ring on AMD Mini-PC - danny odler - Medium
Kota Mizushima (on a diet)さんはTwitterを使っています 「「安定性はIntel」って言葉を(自作かじってるくらいの人が言ってるのを)未だにちょくちょく見かけるけど、どういう意味なのだろう?Intel 系にしかない命令セット使ったなら、そりゃIntelでしか動かないと思うけど、安定性とは如何に……」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu クリエーター系のツール群をA社が出してますが、3世代目になったA社のR CPUでも若干不安定という話もあるので、ハードのみならずソフトウェアの互換性でもその言葉に意味はあるかも。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@keisuke_n 若干不安定て https://t.co/7E7es9Ta4q 辺りでしょうか?ただ、これくらいしか、落ちる系の話見当たらないんですよね。「安定」って何かを考えた時に、デバイスドライバはまあ、M/Bとかも絡むので、ともかくアプリケーションレベルだと、安定しなかったらCPUの不具合だと思うのです……」 / Twitter
AMD・Ryzenに対してAdobeのソフトウェアは最適化されておらず相性が悪いというのは本当か?
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu プレミア(映像編集)あたりで特によく落ちるということなのでSIMD関連(SSE/AVX)が一番の問題だったのかと思います。3000番台になってから特にSIMD関連のチューニングされたらしいとのことです。 ただ業務だと敏感になるところなのでIntelにしておきたいという本音はあるかと思います」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu 追記:3000番台になって落ちにくくなった。 CPUの挙動は結構バラバラ(特にタイミング)なのでたぶんA社がかなりクリティカルなアセンブリなコードを書いていてそれで意図しない動作になってしまっているのかと思います。まぁ実際はApple Siliconでは動いているようですけど(^^;。」 / Twitter
InstLatX64さんはTwitterを使っています 「My #Zen3 expectations -Documented non-Zen2 feats:#VAES,#VPCLMUL, PKU, PCIDE -Dual int store -300+ ROB -Better L1,L2 latency to compensate bigger L3 -4x256b, more symmetrical FPU (2x256b (v)shift, store, perm, div) -fewer ucoded insts -0 crosslane penalties My Zen2 complaint list https://t.co/j78IT9NdQx」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 1: Application Programming" with shadow stack support https://t.co/5MgdnLZ0gg https://t.co/uZpXkdmLEH」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.36 with shadow stack support https://t.co/gzSS39wm69 https://t.co/oKqqTdz0wJ」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" 24594.pdf to 3.31 with new features for #Zen3 https://t.co/tQvRMvLG86 https://t.co/f92iS17RQ2」 / Twitter
HXLさんはTwitterを使っています 「Zen 4 Support AVX512? https://t.co/ZwNql3MPxL」 / Twitter
北森瓦版 - “Zen 4”はAVX3-512とBFloat 16をサポートする
InstLatX64さんはTwitterを使っています 「#AMD released the Supervisor Entry Extensions 0.50 pdf with Enhanced SYSCALL/SYSRET (#ESC), Reserved Supervisor Shadow Stacks (#RSSS) and Re-Entrancy Protection https://t.co/QKShUOqs56 https://t.co/7O2CxXhjZS」 / Twitter
AMD Supervisor Entry Extensions, 57115 - 57115_0.50.pdf
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.37 with #X2APIC, #APERF, SPEC_CTRL, PRED_CMD MSRs, etc. https://t.co/nndFzrwnqA https://t.co/sJGJtv7lGb」 / Twitter
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
Rui UeyamaさんはTwitterを使っています 「しかしx86エコシステム全体からみてみると、x86がIntelオンリーだったら今ごろTSMC製造のARMチップと性能差がつきすぎて、真剣にARMへの移行を検討するクラウドベンダとかが出てきたかもしれないから、AMDが存在しているのはIntelにとってもよかったのかもしれない。」 / Twitter
FadisさんはTwitterを使っています 「PhoronixがGoogle Cloudが近く公開する新しいVM「Tau VM」の性能を大体同じ値段で借りられるAmazon EC2のGraviton2と比較したベンチマーク。Tau VMにはAMD EPYC 7B13(Zen3)が載っていて、ベンチマークの結果は総じてTau VM有利で内容によっては倍以上の性能差が出ている https://t.co/RxtY0jYk3G」 / Twitter
Google Cloud Tau VM Instances Deliver Better Performance, Price-Performance Than Graviton2 M6g - Phoronix
FadisさんはTwitterを使っています 「AmazonがわざわざARMのインスタンスを用意した狙いがサーバの性能あたりのコストを抑える為だったわけで、Zen3はそれをも乗り越えてくるプロセッサなのか」 / Twitter
FadisさんはTwitterを使っています 「AMDがCPUの新機能Smart Trace Buffer(略してstb)をLinuxのユーザ空間から読む為のパッチを投げている話。stbについて公式な発表はないが、パッチの説明は問題が生じた時に直前に通過したfeatureを取れるdebug trace bufferとなっておりIntel Trace Hubに類するものと思われる https://t.co/YKVQhmbFwE」 / Twitter
AMD "Smart Trace Buffer" Feature Being Wired Up For Linux - Phoronix
FadisさんはTwitterを使っています 「AMDが次の世代のAMD CPUで必要になるとして、CCD(core-complex dies)が12基載っている場合に全てのCCDから温度を取れるようにする変更をLinuxカーネルに入れている話 https://t.co/fSKzU3oumU」 / Twitter
Linux Prepares For Next-Gen AMD CPUs With Up To 12 CCDs - Phoronix
FadisさんはTwitterを使っています 「AMDのCPUはCPU外とのデータの出入りを担うIODと演算を行うCCDに分離されていて、CCDの個数を変える事で幅広い用途向けの製品を出し分けている。現行の製品で最もCCDが多いのは8コア16スレッドを1CCDに収め、CCDを8基積む128スレッドのEPYCだった」 / Twitter

WSL 2使用時の注意点(BIOS(UEFI)でCPUの仮想化機能の有効化について)
Developer Guides, Manuals & ISA Documents - AMD
GPUOpen - GPUOpen
Welcome to ROCm Platform — ROCm Documentation latest documentation
AMD Prepping PCID/INVPCID Support For KVM Guests On Zen 3 EPYC - Phoronix
AMD Programmer Manual Update Points To PCID Support, Memory Protection Keys - Phoronix
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
AMD Ryzen™ 5 5600G | AMD​
AMD Ryzen 5 5600G - 100-000000252
TUF GAMING B550-PLUS - スペック|マザーボード|ASUS 日本
[マザーボード] BIOS Flashback™ の使い方 | サポート 公式 | ASUS 日本
ThunderboltEX 4|マザーボード|ASUS 日本
ASRock > FM2A68M-HD+
AMD A6-Series A6-7400K - AD740KYBI23JA / AD740KYBJABOX
AMDプロセッサーにも脆弱性みつかる。Ryzen 7 / Threadripperまで2011年以降全CPU - Engadget 日本版
security-analysis-predictive-store-forwarding.pdf
SEV Secure Nested Paging Firmware ABI Specification - 56860.pdf

DM&P Electronics

PCテクノロジートレンド 2022 - CPU編 (1) | マイナビニュース
DMP Electronics Inc. | 製品情報 | ダイトロン株式会社
Vortex86 - Wikipedia
Vortex86 - Wikipedia
DMP Electronics INC.
PCM-9343EFG-S6A1E-CIRCUIT BOARD, DMP Vortex86DX 800MHz w/graphic,512MB,dual LAN
3.5"シングルボードコンピュータ - VMXP-6453M - ICOP TECHNOLOGY - DM&P Vortex86MX+ / 搭載
DMP
Digital Media Professionals Inc.@Digital Media Professionals Inc.
DM&P Electronics - WikiChip

Apple

Apple

ソフトウェア

各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
iTunes で iPhone、iPad、iPod が認識されない場合 - Apple サポート
iTunes の USB 関連の警告を解決する - Apple サポート
Use zsh as the default shell on your Mac - Apple Support
Apple ID - Apple サポート
Apple IDの復旧 - Apple (JP)
Apple ID の 2 ファクタ認証 - Apple サポート
セキュリティと Apple ID - Apple サポート
Apple ID のデバイスリストを調べて Apple ID でサインインしているデバイスを確認する - Apple サポート
定期購読内容を表示・変更・解約する - Apple サポート
プライバシー - Apple(日本)
Apple セキュリティアップデート - Apple サポート
Apple security updates - Apple Support
Apple Pay に対応しているアジア太平洋地域の銀行とカード発行会社 - Apple サポート
WebKit Downloads | WebKit
Getting the Code | WebKit
WebKit/webkit: Unofficial mirror of the WebKit SVN repository
Bugzilla Main Page
iTunes Store で購入したコンテンツの再生時に iTunes からコンピュータの認証を求められる場合 - Apple サポート
iTunes Store で -45054 エラーが表示される場合 - Apple サポート
iTunes でコンピュータの認証を解除する - Apple サポート
アップル、157ページに及ぶ詳細なセキュリティガイドを公開 - ZDNet Japan
Apple Platform Security
‎「+メッセージ(プラスメッセージ)」をApp Storeで
Apple Open Source

技術仕様

iPhone 6 Plus - 技術仕様
iOS UPnP/SSDP Multicast over USB Tethering | Apple Developer Forums
usb endosope | Apple Developer Forums
Tethering over USB protocols? | Official Apple Support Communities

修理

保証状況と修理サービスオプションについて - Apple サポート
製品の保証状況とサービス期間を確認する - Apple サポート
iPhone、iPad、iPod touch を修理に出す準備をする - Apple サポート
「iPhone を探す」のアクティベーションロックを無効にする - Apple サポート
修理 - Apple サポート 公式サイト

サポート

Welcome - Apple Support
ビンテージ製品とオブソリート製品 - Apple サポート
ARM ベースおよび Intel CPU の投機的実行の脆弱性について - Apple サポート
iPhone、iPad、iPod touch でメッセージを送受信できない場合 - Apple サポート

[HD] Steve Jobs - iPhone Introduction in 2007 (Complete) - YouTube
Appleプラットフォームのセキュリティ - apple-platform-security-guide-j.pdf
Apple(日本)
iCloud
復旧キーを生成する方法 - Apple サポート
Apple ID を管理
apple id 削除 サインアウトできない - Google 検索
iPhone、iPad、iPod touch を売却、譲渡、下取りに出す前にやっておくべきこと - Apple サポート
Apple - Support - System Status
MFi Program - Apple Developer
バッテリー - サービスとリサイクル - Apple(日本)
Lightning - USBケーブル(1m) - Apple(日本)
USB-C - Lightningケーブル(1 m) - Apple(日本)
20W USB-C電源アダプタを購入 - Apple(日本)
環境 - Apple(日本)
iOS 12 のアップデートについて - Apple サポート
iOS 14 や iPadOS に対応しているデバイス - Apple サポート
iOS 15 や iPadOS 15 に対応しているデバイス - Apple サポート (日本)

blog

Windows10でiPhone・iPadとiTunesが連携しない|Tascal PCサポート情報
Windowsにおいて、iTunesをインストールせずiPhoneイーサネットドライバのみをインストールする方法(USBテザリング可能に) – Luna Blanca
iPhoneで有線LAN接続はできる?
iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
【知ってた?】iPhoneが勝手に「弱Wi-Fi」を拾わないようにする方法(iOS 11新機能) | できるネット
スティーブ・ジョブズは自分の子どもにiPadを禁止したのか?|中植正剛|note
「iOS 15」 「iPadOS 15」 対応機種まとめ。初代iPhone SEもサポート継続 | CoRRiENTE.top
SMSを利用したフィッシング詐欺「スミッシング」から身を守るには | GMOグローバルサインブログ
それを作れば彼らはやってくる:Appleが開く世界的な監視・検閲へのバックドア | P2Pとかその辺のお話R
Apple File Systemの下にはEFI driverが埋まっている - Blog posts by @retrage

GIGAZINE

Hardware

「AppleやAmazonは電子廃棄物の津波を引き起こしている」という批判 - GIGAZINE
「iPhone 11/11 Pro」は非正規のディスプレイ交換サービスを利用すると警告が出る - GIGAZINE
iPhone 13はサードパーティーの修理業者に画面修理を依頼するとFace IDが機能しなくなる可能性 - GIGAZINE
iPhoneの「サードパーティーによるディスプレイ交換が行われた場合Face IDが使用不可になる」仕様がiOS 15.2で変更に - GIGAZINE
Appleがサードパーティーの修理業者にも正規の部品&修理ツールを供給 - GIGAZINE
AppleはiPhoneのバッテリーをロックして非正規プロバイダーが交換できないようにしている - GIGAZINE
「修理する権利」を保証する法律をイギリスが施行、ただしスマホやノートPCは対象外 - GIGAZINE
スマートフォンメーカーに「7年間のソフトウェアアップデートおよび修理サポート」をドイツ政府は求めている - GIGAZINE
Appleは純正以外のワイヤレス充電器の速度を半分に制限している - GIGAZINE
iPhone 12 miniのみMagSafe充電器での出力が12Wに制限されることが明らかに - GIGAZINE
Appleの「ロスレスオーディオ」はAirPods ProやAirPods Maxでは利用できない - GIGAZINE
iPhoneのカメラはバイクの振動などで壊れる可能性があることをAppleが警告 - GIGAZINE
第6世代「iPad mini」は画面スクロール時に表示が崩れる「ゼリースクロール」が生じる - GIGAZINE
電源オフのiPhoneでも「探す」機能で位置を特定できるのはなぜか? - GIGAZINE
iPhone 13の「認定業者以外がディスプレイを交換するとFace IDが使えなくなる罠」がまもなく解除されるという報道 - GIGAZINE
Appleがついに自分でiPhoneを修理可能な部品やツールを一般販売すると発表 - GIGAZINE
AppleのLightningケーブルはなぜ壊れやすいのか? - GIGAZINE
Appleは独自の5Gモデムチップを2023年までにiPhoneに採用するとの報道 - GIGAZINE
Appleが複数台の端末を充電可能なワイヤレス充電マットを開発中か、Apple端末同士で充電しあえる未来を構想か - GIGAZINE
Appleは認定サービスで修理したiPhoneやMacを再びAppleCare+に加入できるようにするオプションを検討中 - GIGAZINE
iPhoneに磁石でくっつく「MagSafeアクセサリー」をAppleはおろそかに扱っているとの指摘 - GIGAZINE
Appleがワイヤレスチップの独自開発をスタートか - GIGAZINE
Appleが紛失・盗難されたiPhoneの修理を拒絶することに - GIGAZINE

セキュリティ

警察はiPhoneのパスコードをわざわざ破らなくてもあっさりiPhoneに侵入できるとの指摘 - GIGAZINE
iPhoneの強固なセキュリティがハッカーの隠れ蓑になってしまっているという指摘 - GIGAZINE
Appleが新しくSafariに追加した「Face IDやTouch IDによるウェブサイト認証機能」はこんな感じで動作する - GIGAZINE
Appleがパスワード不要でFace IDやTouch IDだけでウェブサービスにログインできる「パスキー」機能を開発中 - GIGAZINE
WindowsでiCloudキーチェーンのパスワード管理が可能&EdgeでiCloudが使えるようになったので実際に導入してみた - GIGAZINE
iOS 15にある3つのゼロデイ脆弱性をセキュリティ研究者が公表、理由は「Appleのバグ報酬プログラムが機能していないから」 - GIGAZINE
いかにしてマルウェアアプリはApp Storeに侵入するのか? - GIGAZINE
Appleの落とし物トラッカー「AirTag」の紛失モードを悪用したフィッシング攻撃が可能であるという報告 - GIGAZINE
iPhoneには「認証なしでApple Payでの支払いが可能になる脆弱性が存在する」とセキュリティ研究者が指摘 - GIGAZINE
Appleが「iOS 15.0.1」でロック画面をバイパスできてしまう脆弱性を修正、しかしバグ報奨金を支払っていないとの指摘 - GIGAZINE
Appleに報告したゼロデイ脆弱性がサイレント修正される事態をセキュリティ研究者が報告 - GIGAZINE
指紋認証は500円あれば作れる「偽指紋」で簡単に突破できることを示すムービー - GIGAZINE
iOS 15.4でマスクを着用したままFace IDが利用可能に、設定方法はこんな感じ - GIGAZINE
GmailやiPhoneのメールアプリでスパムからのトラッキングを防ぐための方法とは? - GIGAZINE

プライバシー

iPhoneユーザーのほとんどがiOS 14.5で有効になったATTからアプリによるユーザー追跡を拒否していることが明らかに - GIGAZINE
AppleがiPhoneの写真やメッセージをスキャンして児童の性的搾取を防ぐと発表、電子フロンティア財団などから「ユーザーのセキュリティとプライバシーを損なう」という抗議の声も - GIGAZINE
iOS15の性的虐待画像の検出「誤解を解く説明必要」ソフトウェア担当副社長語る - iPhone Mania
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Appleによる写真監視システムの詳細。iCloudにアップロードされた写真は、NCMECによる児童虐待画像データベース (CSAM) と比較される。iMessageで送られた画像はデバイス内蔵のデータベースと比較され、人間のレビューを経て、違反と認定されたユーザアカウントは抹消される。 https://t.co/KUSmtdhoAA」 / Twitter
Apple's Plan to "Think Different" About Encryption Opens a Backdoor to Your Private Life | Electronic Frontier Foundation
世界中から猛反発を受けるAppleの「iPhone内の児童ポルノ検知システム」には大きな穴があることが判明 - GIGAZINE
90の人権団体らが「iPhoneの写真やメッセージのスキャン」に抗議する公開書簡を発表、かえって子どもの権利が侵害されるとの懸念 - GIGAZINE
物議を醸しているAppleの写真スキャンで「偶然の一致」の実例が報告される - GIGAZINE
AppleはiCloudメールの添付ファイルを2019年からスキャンしていた - GIGAZINE
Appleが「iPhoneの写真やメッセージをスキャンする施策」の延期を発表 - GIGAZINE
「ロンドン新技術憲章」で顔認識技術の扱いはどうなるのか? - GIGAZINE
Appleの児童ポルノ規制はかえってリスクの増加を招くという指摘 - GIGAZINE
iPhoneの加速度計を使ってアプリがユーザーの活動・心拍数・位置・音声データなどを収集できるとの指摘 - GIGAZINE
死後に遺族があなたのiPhoneデータへアクセスできる機能がiOS 15.2 Beta 2で追加 - GIGAZINE

App Store

AppleがApp Store以外からアプリを入手できないようにしているのは「ユーザーの安全のため」とするレポートを発表 - GIGAZINE
「フォートナイト」開発元のEpic GamesがAppleを提訴 - GIGAZINE
Apple対Epic Games訴訟の対審がスタート、ティム・スウィーニーCEOも発言 - GIGAZINE
Googleがフォートナイトの開発元・Epic Gamesの買収を目論んでいたことが明らかに - GIGAZINE
iOS版フォートナイトアプリの再リリースを予定しているとEpic Gamesが発表 - GIGAZINE
AppleとEpic Gamesの訴訟で「App StoreはApple以外の支払い方式も認めるように」との判決が下る、一方でAppleの勝利という声も - GIGAZINE
Epic GamesがAppleとの訴訟の判決を不服として控訴 - GIGAZINE
Appleが「アプリ内でアカウント削除を可能にすること」を必須に、開始時期は? - GIGAZINE
App Storeの高額な手数料を回避してアプリ内課金が可能な「Appleと競合する新たな決済システム」が発表される - GIGAZINE
「App Store以外からのアプリ入手」が実現するとマルウェアがあふれ出すとAppleの上級副社長がサイドローディング自由化を批判 - GIGAZINE
Appleが実装するはずの「アプリ外課金」が大幅に遅れる可能性が出てくる - GIGAZINE
「非公開アプリの配布」機能がApp Storeに登場、直接リンクを介して検索から見つからないアプリのインストールが可能に - GIGAZINE
最強広告ブロッカー「280blocker」は通信量の消費を何分の一にしてくれるのか検証してみた - GIGAZINE
スマホとPC間でファイルやメッセージを一発共有できる無料アプリ「Now Push」レビュー - GIGAZINE

無料&広告なしで圏外でも使えるオープンソースの地図アプリ「Organic Maps」を使ってみた - GIGAZINE
AppleがNFCチップ関連でEUの独占禁止法違反の罪に問われる可能性、Apple Payのような非接触決済が他サービスにも開放か - GIGAZINE
iPhone 13 Pro以外のiPhoneでもマクロ撮影が可能になるカメラアプリ「Halide」を使ってみた - GIGAZINE
iOSの「数タップで絵文字を返信する機能」にAndroidが対応予定であることが判明 - GIGAZINE
AppleがVR/ARヘッドセット向けOS「realityOS」を開発中であると判明 - GIGAZINE
iOS・macOSと同時に大型アップデートがSafariにも到来、新たな「高さ」の基準やカスケードレイヤーが追加される - GIGAZINE
iPhoneのウォレットアプリで運転免許証と身分証明書を提示できるようになった初の地域が登場 - GIGAZINE

News

iCloudキーチェーンのパスワード管理がWindowsでも可能に - PC Watch
iOSの外部課金実装を認める命令、Appleが発効延期を主張も裁判所は拒否 - PC Watch
iPhoneに死後のアカウント管理人を指定できるデジタル遺産機能。iOS/iPad OS 15.2が配信開始 - PC Watch
日本政府公式の「新型コロナワクチン接種証明書アプリ」が配信開始 - PC Watch
Apple、「iCloud for Windows 12.5」を公開 ~「Microsoft Edge」ともパスワードを同期可能 - 窓の杜
Windows版「iCloud」アプリがメジャーバージョンアップ ~パスワード管理・同期を強化 - 窓の杜
「Microsoft Authenticator」が住所と支払い情報の自動入力に対応 ~Edge、公式Chrome拡張とも連携 - 窓の杜
もし死んでもiPhone/iPadを家族・友人託せる ~Apple、「iOS 15.2」「iPadOS 15.2」を公開 - 窓の杜
中古スマホでいまだ「iPhone 8」「iPhone 7」が売れている理由 - ITmedia Mobile
“シャッター音が消せない”日本のiPhone、海外に持っていけば鳴らない設定可能に iOS 15で - ITmedia NEWS
Apple、App Storeの「問題を報告」ボタンは詐欺アプリ対策のためと認める - iPhone Mania
AppleのATTの導入により、ソーシャルメディアに約100億ドルの損害が出ると推定 - iPhone Mania
Apple、「iCloud for Windows 12.5」を公開 - iPhone Mania
Apple Storeで一括購入したiPhoneになぜかドコモのネットワーク利用制限が () - AKIBA PC Hotline!
アップル純正のMagSafeバッテリーが登場、AirTagアクセサリーの新色も - ケータイ Watch
【悲報】iPad mini 6でディスプレイの歪み・変色問題が報告される - ソフトアンテナブログ
「ノートPCを持ち歩くのが重いので、iPhoneだけで仕事してみた」――急遽テレワークを導入した中小企業の顛末記(77)【テレワーク顛末記】 - INTERNET Watch
「iPhone」で部品と修理履歴を表示へ--「iOS 15.2」から - CNET Japan
「MacはもともとWindowsだし」にならなかった理由:CloseBox(1/3 ページ) - ITmedia NEWS
Ken Gregg's answer to Does Windows use Big Endian? - Quora
スマホからハイウェイラジオ情報を入手できる アプリ「みちラジ」を開発しました ~2021年2月1日(月)アプリ配信予定~ | ニュースリリース | プレスルーム | 企業情報 | 高速道路・高速情報はNEXCO 中日本
【西川和久の不定期コラム】UTMを使ってM1 Mac上でArm版Windows 11を動かす!無償の仮想化ツールが完成度アップ - PC Watch

Wikipedia

iOS version history - Wikipedia
History of iTunes - Wikipedia
Safari version history - Wikipedia
Apple motion coprocessors - Wikipedia
Secure Enclave - Wikipedia
iPhone - Wikipedia
iPhone 7 - Wikipedia
Apple A10 - Wikipedia
IPhone 8 - Wikipedia
Apple A11 - Wikipedia

Twitter

トワイライト - Le☆S☆Caさんのツイート: "iOSのSafariは更新マーク長押しでPCレイアウトに出来る、っていうの人に教わるまでずっと知らなかった https://t.co/LsEfkYZZav"
Tsuzuさんのツイート: "多分USB/Bluetoothテザリングに限ると思うけど"
Tsuzuさんのツイート: "待って、iOS12ってiPhoneはWi-Fiに接続しながらPCはテザリングとかいうやばいことができるようになってるんですか すごいですね(誰得"
まちカドおるみんさんはTwitterを使っています 「macOS が安定しているという意見を散見するんだけど、マジかって感じです。たぶんそれ環境が不安定になるまえにハードウェア換えるから不安定なの踏まないだけだよ、サポート中でもサポート終わりかけのときは Windows とは比べものにならないぐらい不安定になる。まあはよ買い替えろだけど」 / Twitter
まちカドおるみんさんはTwitterを使っています 「iMac 2011 は High Sierra までサポートされてたけれど、Mojave や Catalina 出る前から不安定だった。3 回に 1 回くらいは cold boot コケるし。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「macOS で sudo nvram boot-args="-v" すると splash screen の皮が剥れて黒背景に白文字のなんの色気もない verbose な boot log が画面に出てくるけれど、こっちのほうがまだコケたところわかるから安心できる」 / Twitter
まちカドおるみんさんはTwitterを使っています 「たぶん大多数のユーザーは黒地に見慣れない白文字がダーッて吐かれたら不安なことこの上ない、というのはわかる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Google Docs のスライドに、自分の話しているところをオーバーレイして、動画にしたいことって、あるじゃないですか。QuickTime Viewerのビデオ録画ウィンドウをスライドの前に配置して、QuickTime Viewerでスクリーンキャプチャ動画を録画すれば、簡単にできるというのが、今日の学びです https://t.co/wmd0DkQ8nL」 / Twitter
Kazuho OkuさんはTwitterを使っています 「フフフ… そんなローテクな方法で合成してるとは、誰も気づくまい」 / Twitter
KOBA789さんはTwitterを使っています 「macOS だと開発がハードモードなもの、iOS または macOS 向けアプリ以外すべて、という雰囲気になってきたよな」 / Twitter
カナやん@みかん本重ね合わせ中さんはTwitterを使っています 「@KOBA789 SIP導入されたあたりから、少しずつ使い勝手が悪くなってきている印象ありますね。最近だとYosemiteあたりが一番使いやすかった。」 / Twitter
hikaliumさんはTwitterを使っています 「macOS上のQEMUで、-smp cores=2にしてもEFI_MP_SERVICES_PROTOCOLが1コアしかないぞって言ってきており悲しい(むずかしい)。 https://t.co/SUORcbo5Xw」 / Twitter
hikaliumさんはTwitterを使っています 「kvm有効にしたLinuxホスト上なら4コア見えることが確認できた。結局kvmかあ〜(たぶんみんな-enable-kvmの状態しかテストしてない/使っていないんだと思う)。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「iOS 15では iPhoneが完全にシャットダウンされていてもデバイスが「発見」可能である。これはメインのプロセッサと独立して AOP (Always-on Processor) と呼ばれる電源管理チップとBluetoothチップが動作し、シャットダウン直前に暗号化キーを転送することにより行われる。 https://t.co/gq1vAxbxbc」 / Twitter
Always-on Processor magic: How Find My works while iPhone is powered off
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「週末に見たドキュメンタリー映画「GENERAL MAGIC」の紹介記事を書きました。1990年創設、約1,900億円を調達、スターエンジニアが集まりスマホを生み出そうとした熱気、華々しいIPO、そしてその崩壊。後にスマホを生む2人もGM社で机を並べていた、とはすごい話です。 https://t.co/bpnaiQWxSK」 / Twitter
iPhone誕生まで17年―、シリコンバレーで最も重要な失敗をした企業とは? | Coral Capital
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「このドキュメンタリーで最も重要なメッセージは「アイデアも会社も失敗する。でも、そこで仕事していた人たちは失敗したと言えるんだろうか?」というもの。iPod・iPhone発明者・共同発明者のトニー・ファデルもAndroid生みの親のアンディー・ルービンもGMにいて、トニーは「訓練の場だった」と回想」 / Twitter
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「General Magic社員集会の映像には、後に業界で活躍する人物が高密度に映ってた。TwitterのCTO、LinkedIn共同創業者のCTO、女性初の米政府CTO、Dreamweaver創業者で後のAdobeのCTO、Safariブラウザ開発のヘッド、AppleのAI部門トップ、Nest Lab共同創業者、WebTVの創業者など。超新星爆発のような現象」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータの世界って歴史を変えたけどそれ自体は商業的には失敗したってプロダクトが時々でて来るよね。たとえば、Stretch, ALTO,Apollo,NeXT,CRAY2,Magic CAPなど。最近は見ないな。そろそろ面白いものが出てこないかな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「IBMの計算機でStretchが一番好き。いまのCPUの高速化の技法はだいたいStretchが元と言う。動的型付け言語の最適化技法が大体Selfが元って言うのと似ている。そういえば、Selfも歴史を変えた商業的に失敗したプロダクトだな」 / Twitter
暗黒美無王 dark VimさんはTwitterを使っています 「macOSやWindowsがLinuxと違ってソースコード公開されてないから優れてるとか優れてないとかいう話ではない。 ソースコードが公開されてないということはアップルやマイクロソフトが問題が起こったら対応してくれるということで、それは非常に便利なのです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@ShougoMatsu macOSは カーネル: https://t.co/sMPx4URRBg とか libc: https://t.co/6A2qvSrsj9 のソースは無償公開されていて、そういう部分についてはハマった時にソースを見て挙動を確認できるので、Windowsよりはマシですね。 まあ、ありえないコードを発見→絶望もあるわけですが…: https://t.co/YatbzRPllJ」 / Twitter
Source Browser
Source Browser
Backport #5155: [BUG] pthread_cond_signal: Resource temporarily unavailable (EAGAIN) - Backport192 - Ruby Issue Tracking System
noppeさんはTwitterを使っています 「これスクショ撮った時にSafariだけフルページっていう裏オプションが出てきてそこからも出来る」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「多分知られていないiOSの秘密機能なんですけどね、Safariで印刷する画面でプリントを長押しするとPDFで保存できるんですよ。さらに共有のマークアップでなにも書かずに完了を押すと見ているページ全体が縦長のPDFで保存できるんですよ。サイトで印刷しかできない結果を保存するのに便利です。 https://t.co/zb2PBL0Vla」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「@noppefoxwolf うわ、それは知らなかった... 便利...」 / Twitter
渋川よしきさんはTwitterを使っています 「M1 mac、基本的にバッテリー長持ちなのだけど、DockerとJetBrainsのIDEを使うと本体があったかくなってバッテリーがどんどん減っていく。」 / Twitter

BCNランキング - BCN+R
中古スマホ・タブレット販売の【イオシス】|けっこう安い。
株式会社デジフォース
The Official Bluetooth SIG Member Website
【mį】iPhone6PlusのBluetoothは何台まで同時接続出来るの!? | ミヤチャンブログ
libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
libimobiledevice/libplist: A library to handle Apple Property List format in binary or XML
Diego Giagio :: Personal Website - iPhoneEthernetDriver
dgiagio/ipheth: iPhone USB Ethernet Driver
M1RACLES: M1ssing Register Access Controls Leak EL0 State

USB

USB4

その他

USBプロモーター・グループがUSB4仕様を発表:時事ドットコム
最大転送速度は40Gbps、USB 4ではThunderboltとUSBが完全統合 | TechCrunch Japan
「USB4」の仕様が発表、より高速かつスマートな転送が可能に - CNET Japan
USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに - 4Gamer.net
「USB4」が普及すれば、規格乱立という問題が今度こそ解決する(かもしれない)|WIRED.jp
USB4は転送速度40Gbpsに100W給電対応!アレと同じ! - ハイパーガジェット通信 | SIMフリースマートフォン/iPhone/タブレット/充電器/便利グッズ
「USB4」でカオス状態が解消される!?「USB」の気になるアレコレを徹底解説! - 価格.comマガジン
USB 4はバスのプロトコルトンネリングをサポートし、40 Gbpsの転送をサポートします - 自作ユーザーが解説するゲーミングPCガイド
USB4とは?—Thunderbolt 3(DP・PCIe)を内包した新規格を事前予習|8vivid
USB 3.xでプラグをゆっくり挿すとUSB 2.0で接続されてしまうという話 | Interface – CQ出版
【USBコラム13】USB認証とUSB機器間認証は別物 | Interface – CQ出版
AMD の USB4 ホストルーターをサポートするパッチが投稿される | Coelacanth's Dream

Thunderbolt

Thunderbolt

Thunderbolt Technology Community
IDF Session Presentation Template
Intel Presentation Template Overview
Thunderbolt 3 Overview Slides_Web_v3
Thunderbolt3_TechBrief_FINAL.pdf
PowerPoint Presentation

DP Alternate Mode

DisplayPort - Wikipedia
DisplayPort - Wikipedia
Snapdragon 835はDisplayPort Altモードに対応、USB Type-Cからの画面出力が可能 | ガジェット通信
VESA、8K解像度を見据えた映像出力インタフェース規格「DisplayPort 2.0」を発表 (2019年6月27日) - エキサイトニュース
DisplayPort 2.0 Published For 3x Increase In Data Bandwidth Performance - Phoronix
最大帯域幅77.4Gbpsで16KディスプレイやVRをサポートする「DisplayPort 2.0」が発表される - GIGAZINE
16K解像度に対応した新規格「DisplayPort 2.0」が重要な理由 | ギズモード・ジャパン
VESA、ケーブル1本で16K 60Hz/HDRの伝送が可能な「DisplayPort 2.0」 - PC Watch
次世代USB「USB4」ではDisplayPort出力対応が“必須要件” ~DisplayPort 2.0はThunderbolt 3並の速度へ - PC Watch
VESA、DisplayPortコネクタのフェードアウトを示唆。将来的にはUSB Type-Cに集約 ~DisplayPort 1.4規格の現況を報告 - PC Watch
FadisさんはTwitterを使っています 「USB端子を通してDisplayPortの信号を吐くDisplayPort Alternate Modeの規格がバージョン2.0になったらしい。この変更でUSB4 Type-Cの端子が生えている場合にDisplayPort 2.0相当のレートで信号を吐けるようになり、8Kを超える画面や高解像度のHDRに対応できるようになる https://t.co/cuP50cq9oL」 / Twitter
DisplayPort Alt Mode 2.0 Brings Interoperability With USB4 - Phoronix
USB4互換で16K HDR対応の「DisplayPort Alt Mode 2.0」 - PC Watch
DisplayPortやUSB Type-Cで8K伝送、VESA「HBR3」。製品の早期開発用に認定プログラム - AV Watch
とみながたけひろさんはTwitterを使っています 「@n_soda @k_nitadori @DIME_HACKS USB-CのAltModeでDP使う場合、最大4lane使えるので、DP1.4(HBR3)流せば8.1Gbps*4流せます。まあそれでも4laneで4k*2k*60fps*30bpp*2あたりが限界ですが、いいやつだといまどきはDSC使っての圧縮ができるので更に頑張れます」 / Twitter
可食さんはTwitterを使っています 「USB Type-CハブのUSB Type-Cポートから映像出そうとして失敗してる人たまに見かけるけど、仕様で禁止されているのでどのハブを使っても無理 https://t.co/CaD9TNQD2Q」 / Twitter

ストレージ

日本サムスン、Thunderbolt 3対応の超高速ポータブルSSD - PC Watch
【レビュー】Thunderbolt 3接続ポータブルSSD「Samsung Portable SSD X5」実機レビュー - PC Watch
デル、世界最速/最小Thunderbolt 3 SSD。最高速度2,800MB/s - PC Watch
パナソニック、Thunderbolt 3対応のポータブルSSD - PC Watch
グリーンハウス、Thunderbolt 3接続の高速SSD - PC Watch
センチュリー、Thunderbolt 3接続の500GB~2TBポータブルSSD - PC Watch
Thunderbolt3 Portable NVMe SSD 512GB [CPNVTB3-512] |秋葉館.com Mac専門店
USB, ストレージ | GH-SSDTB3A | GREEN HOUSE グリーンハウス
Thunderbolt 3接続の高速外付けM.2 SSDケース - PC Watch
【ニュース・フラッシュ】Thunderbolt 4接続対応のM.2 SSD用ポータブルケース - PC Watch

Intel

TB-TechBrief-02.indd
Thunderbolt™ Controllers Product Specifications
製品の開発コード名 Alpine Ridge
製品の開発コード名 Titan Ridge
Introducing Thunderbolt 4: Universal Cable Connectivity for Everyone | Intel Newsroom

AMD

AMD XConnect™テクノロジー | AMD
AMD,Thunderbolt 3接続の外付けGPU技術「XConnect」を正式発表 - 4Gamer.net
AMD、外付けGPUとノートPCをThunderbolt 3でつなぐ「AMD XConnect」 | マイナビニュース
AMD、Thunderbolt 3経由でノートPCに外部GPUを接続する技術「XConnect」 ~再起動不要で着脱可 - PC Watch

GIGABYTE

反撃の狼煙を上げるGIGABYTE、「ビデオカード部門とマザーボード部門の統合」で何が変わるのか? - AKIBA PC Hotline!
GC-ALPINE RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-ALPINE RIDGE (rev. 2.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev. 2.0) フォトギャラリー | マザーボード - GIGABYTE Japan
GC-MAPLE RIDGE (rev. 1.0) 主な特徴 | マザーボード - GIGABYTE Japan
GIGABYTEからThunderbolt 4増設ボード「GC-MAPLE RIDGE」が登場
GIGABYTE、7万円超のハイエンドIntel Z390搭載マザーボード ~X299マザーやThunderbolt 3増設カードも - PC Watch
GIGABYTE、Thunderbolt 4を2基増設できるPCIe 3.0 x4接続の拡張カード - PC Watch
GC-TITAN RIDGE (rev.1.0): どてやの戯れ言
Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
USB4製品の登場と次期Ryzenなど: どてやの戯れ言
Thunderblt AIC: どてやの戯れ言

PC Watch

【PR】【パソコン実験工房PC Watch出張所 - Supported by パソコン工房】今後要注目のThunderbolt 3にも対応できるDAW向けマシン - PC Watch
【イベントレポート】ASRock、Mini-ITXケースに入る世界初のThunderbolt 3ネイティブビデオカード - PC Watch
【イベントレポート】Intel第10世代Coreは、Thunderbolt 3をオンダイ統合 - PC Watch
Thunderboltに数分でハッキング完了可能な脆弱性。2011年以降のPCが対象 - PC Watch
Intel、USB4準拠の「Thunderbolt 4」を次期CPUに搭載 ~単体のIntel 8000シリーズのコントローラも - PC Watch
【山田祥平のRe:config.sys】ゆくポートくるポート - PC Watch
ベルキン、ACアダプタ不要のThunderbolt 3ドック - PC Watch
OWC、4K/60Hzの2画面出力が可能なThunderbolt 3ドック - PC Watch
OWC、Thunderbolt 3対応NVMe SSDケース「Envoy Express」 - PC Watch
Club 3D、USB4認証で40Gbps転送可能なケーブル - PC Watch
OWC、100W給電やUSB4にも対応のThunderbolt 4ケーブル - PC Watch
M1 Macにも対応した3ポートThunderbolt 4ハブが入荷、USB Type-Aもあり - AKIBA PC Hotline!
【山田祥平のRe:config.sys】周辺機器接続用としてのThunderbolt 4ケーブル - PC Watch
Club 3D、3ポート増設できるThunderbolt 4 Hub - PC Watch

GIGAZINE

Thunderboltポート経由でPCのシステムメモリを直接読み書き可能となる脆弱性「Thunderclap」 - GIGAZINE
数分でPC内のデータにアクセス可能なThunderboltの脆弱性が判明、ソフトウェアによる修正は不可能 - GIGAZINE
IntelがUSB4に準拠したThunderbolt 4の概要を発表、次世代Intel CPUが対応予定 - GIGAZINE
ノートPCでの快適なゲーム環境を実現する「WD_BLACK D50 Game Dock」レビュー、周辺機器をThunderboltケーブル1本に - GIGAZINE
Thunderbolt 5の転送速度は「80Gbps」と現行の2倍となる可能性 - GIGAZINE

Thunderbolt - Wikipedia
Thunderbolt (interface) - Wikipedia
分かりづらいThunderbolt 3とUSB Type-Cの違いについてまとめた | HANPEN-BLOG
Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
Amazon.co.jp: 【USB-IF 認証済み】Cable Matters Thunderbolt 3ケーブル (20 Gbps) サンダーボルト3ケーブル/ USB-C 3.1 Gen 2 (10 Gbps) ケーブル USB2.0 / 3.0 / 3.1 対応 2m(ブラック): 家電・カメラ
More information on Thunderclap
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第15回 PCIパススルーその1「PCIパススルーとIOMMU」
日記 (2019 年 3 月上旬)
iommu - Google 検索
MSIのZ77A-GD80でThunderboltを試す | 日経 xTECH(クロステック)
Fadisさんのツイート: "Thunderclap: 多くのOSでデバイスがアクセスできるメモリを制限するIOMMUの扱いがMMUほど徹底されておらず、悪意あるデバイスがDMAを使ってメモリ上の触ってはいけないデータを読み書きできるよ、という脆弱性 https://t.co/W1OCHgK14b"
Thunderclap
Fadisさんのツイート: "Thunderclapはハードウェアに物理的なアクセスを要する脆弱性ではあるけど、最近のPCはThunderbolt3とかいうPCI-Express(もちろんDMA付き)が充電端子として生えている為「悪意ある充電スタンドが任意のコードを実行できる」というシナリオが容易に想像できるあたりが問題を深刻にしてるっぽい"
ASCII.jp:その名はTiger Lake、IntelがノートPC向け最新CPUを発表:CES 2020|CES 2020レポート
Kernel DMA Protection for Thunderbolt™ 3 (Windows 10) - Microsoft 365 Security | Microsoft Docs
More information on Thunderbolt™ security research published by Eindhoven University
ASCII.jp:IntelがThunderbolt 4の詳細要件とIntel 8000シリーズコントローラーを発表
ASRock > Thunderbolt 4 AIC
Thunderbolt 4 AIC:ASRock Thunderbolt™ 4 増設ボード | CFD販売株式会社 CFD Sales INC.
hanpenさんはTwitterを使っています 「@uchan_nos Thunderbolt 3コントローラーにはAlpine Ridge(古)とTitan Ridge(新)の大きく2種類があるんですが、Alpine Ridge採用デバイスはThunderbolt 3ホストにしか対応していません。USB接続は不可です。Titan Ridge採用デバイスはUSBホストとThunderbolt 3ホストの両方で使えます。」 / Twitter
Thunderbolt™ 3 Controllers Product Specifications
Thunderbolt 4について解説。USB4やThunderbolt 3と何が違うのか
Thunderbolt 5、PAM-3変調により80 Gbpsの帯域幅を実現か - 自作ユーザーが解説するゲーミングPCガイド
Thunderbolt 5の仕様が明らかに?有効帯域幅が2倍、転送速度は80Gbps - iPhone Mania
Thunderbolt 5は80 Gbpsに達する可能性がある、とリークされた画像が示す|自作.com

USB Type-C

PC Watch

【山田祥平のRe:config.sys】転ばぬ先のType-C - PC Watch
【山田祥平のRe:config.sys】Type-Cポリスの憂鬱 - PC Watch
【山田祥平のRe:config.sys】何がなんでもType-C - PC Watch
【笠原一輝のユビキタス情報局】DisplayPort/Thunderbolt/ACアダプタを飲み込んだUSB Type-C ~5年後ノートPCの専用アダプタは消滅する? - PC Watch
【特集】USB Type-Cの挙動を探る(ディスプレイ編) ~Type-C搭載ディスプレイの映像出力&給電機能をチェック - PC Watch
【特集】ケーブル選びに失敗しないための「USB Type-C」基礎知識 - PC Watch
【山田祥平のRe:config.sys】ありがちのType-C、まさかのType-C - PC Watch
Cypress、USB4とPD 3.0対応のUSB Type-Cコントローラをサンプル出荷 - PC Watch
【藤山哲人と愛すべき工具たち】USB Type-C壁コンセントの組み込み手順を紹介。LAN付きテーブルタップへの改造も - PC Watch
【特集】「USB Type-C」と「Thunderbolt」って同じもの?よく分かる最新コネクタ解説 - PC Watch
【山田祥平のRe:config.sys】Type-C、ややこしいのはポートの仕様 - PC Watch
【山田祥平のRe:config.sys】USB Type-C以外のレガシーポートはなくても困らない - PC Watch
【山田祥平のRe:config.sys】USB Type-Cケーブルの長さとしなやかさと色分けはコーデの基本 - PC Watch

GIGAZINE

USB Type-Cケーブルにはなぜたくさんの種類があるのか、どうやって見分ければいいのか? - GIGAZINE
USB Type-Cに「表裏」を取り戻させる悪魔のデバイスが爆誕 - GIGAZINE
USB Type-CをDisplayPortに変換するハブはどのように選べばよいのか? - GIGAZINE
PCを破壊する恐るべきType-CのUSBケーブルがちまたにあふれかえる現状にGoogleエンジニアが怒りのAmazonレビューを連載中 - GIGAZINE

blog

規格的にアウトなUSB Type-C変換アダプタが売られている話 | HANPEN-BLOG
USB-C – イヤホンジャックの変換アダプタは2種類あるので要注意
日本で買えるUSB-IF認証済みUSB Type-Cアクセサリのリスト
USB Type-C プラグがゆるくなったときの対策と直す方法|What to do when USB-C become loose. | フレークの素 | Web制作・システム開発のCreativeFlakeブログ
Thunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG
USB-TypeCで、地獄をみた話。 | モテモテテクノロジーブログ
「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など | AndMem
プロフィール
USB 3.0/3.1/3.2の違い—速度・形状・4つの注意点を簡単にまとめたよ!|8vivid
仕様違反のUSB Type-C変換アダプターが売られている話
【2022年1月】管理人が使っているUSB Type-C周辺機器

Twitter

finoさんのツイート: "USB Type-Cくんのまとめ、拡散されちゃったんでアレだけど一応書きもらしとかツッコミあったやつ追記したらもっと長くなりました https://t.co/JWOg9xwFAi"
Fadisさんのツイート: "Type-C登場以前から電源周りに関してUSBの規格は無視され続けているが、問題はそこから供給される電力が大きなものになってきて、昔のようにいいかげんなままにしておくと危険なものになってきた事なんだよな"
UTiCd/うちかどさんのツイート: "USB PDのデュアルロール持ってるデバイスは、強制給電-自動選択-強制受電 くらいのスイッチ(もしくは内部設定)を付けておいてくれればって話よね・・・ 特にモバイルバッテリとノートPCを繋いだときにどっち方向に給電されるのか分からないの勘弁して欲しい"
岡田哲哉さんのツイート: "Mac同士をUSB-Cで繋ぐと「給電ガチャ」が楽しめますw(実験済み)… "
Kazuho Okuさんのツイート: "レビュー削除以前の話として、USB-C規格に不適合な製品を「USB-C対応」として販売することに法律上の問題はないのかな / “Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ” https://t.co/ojX1JV4IDH"
Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ
しめじさんのツイート: "Type-C、なんでレセクタプル側の内部に薄い基板付ける構造にしたのか、本当に分からん。折れたら機器の修理、交換だぞ… "
伯爵格雷 ✌️🐸✌️さんのツイート: "・モバイル版Chromeはアドイン出来ないし広告ブロッカー外付けだし何の価値ですか? ・どうせW1チップ搭載機に取り込まれるのだ諦めよ ・TypeCは中のベロが腐る ・高い(わかる)"
なかのん&マジックさんのツイート: "適度に故障からの買い換え需要を狙ってるのでは……microBでもデバイスのコネクタがグラグラしてくるからどっちみちって気もする。"
とみながたけひろさんのツイート: "規格上、ハブ通すとPDやaltモードが使えなくなって色々と不便(PDは使えたかも、自信なし)、というのを理解してもらうコストが高いとかかなあ… "
かごめPはマスタリング講座始めましたさんのツイート: "教えて偉い人! USB Type-cのハブが欲しいなあとぼんやり思っているんですが、市販のハブで「USB Type-CをUSB Type-C複数口に分配するハブ」が無いんです。USB Type-Cを複数口出せるハブが欲しいんだけど、そういうのって無いんです?規格上の問題?"
はんぺんさんのツイート: "PCメーカー各社はマジで ・USB 2.0 / 3.1 Gen.1 / 3.1 Gen.2 のどれなのか ・USB PDで充電できるのか ・何W以上のUSB PDなら充電できるのか ・DisplayPort Alt Modeの有無 ・最大の解像度とフレームレート ・DisplayPort MSTの有無 ぐらいは詳細スペックのどこかに書いといてほしい"
monochromeさんはTwitterを使っています 「規格上は遅くなることはないが、規格に準拠していない粗悪品があって、それだと実際に遅くなることがあるという話らしい」 / Twitter
也田嗔/旧式P [焼]さんはTwitterを使っています 「USB TYPE-Cはどっち向きでも挿せるけど、端子の並びは完全対称ではないので、実は表裏が存在する。 そのため、データの転送速度がなんか遅いなって時は表裏を変えると改善する場合がある。 #新年だからみんなに役立つこと言うぞ選手権 https://t.co/ZdggXFCaWq」 / Twitter
HiguchiさんはTwitterを使っています 「@latentacle @yumori0305 外部から失礼&amp;書き足したい補足説明 皆さん勘違いされてますけどUSBの企画に準拠したtype-cは転送速度が遅くなることはありません。企画に準拠していない粗悪品では遅くなる可能性がある、というだけで、間違えた知識になりませんように。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「1本のケーブルで全てを接続」、聞こえはいいけど何らかの不具合の時にHDD等がそれ経由で刺さっていると「試しに抜き差ししてみる」という手段が取りにくいのが厄介」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「どうせ据え置きで使うのだし、Type-Cしか挿さらないMacBook Proにドッキングステーション経由で色々繋いで使うよりは、アダプターなしでUSB Type-AやEthernetやHDMIが繋がるMac miniを使った方が良い気がするな」 / Twitter
hanpenさんはTwitterを使っています 「建前:USB Type-Cは裏表どっちで挿しても動く 現実:仕様書を読まないで作ると普通に片面でしか動作しないUSB Type-C製品が爆誕する」 / Twitter

「USB-C」が本領発揮できる環境が、ようやく整ってきた|WIRED.jp
100均(ダイソー)で売ってたUSB Type-Cのケーブルやアダプタをたくさん分解してみた:ウェブ情報実験室 - Engadget 日本版

USB 3.2

転送速度を2倍に引き上げた「USB 3.2」が策定 - PC Watch
USBの新仕様「USB 3.2」は対応端末ならマルチレーン動作可能で最大速度はUSB 3.1の2倍に - GIGAZINE
マルチレーンにより2倍の転送速度を実現する「USB 3.2」 | マイナビニュース
USB 3.2の仕様が正式公開 - PC Watch
北森瓦版 - USB 3.2の規格策定が完了―Dual-laneで最高20.0Gbpsに対応可能に
一ノ瀬 いろはさんのツイート: "“「USB 3.2 Gen.1x1」と書けば、USB 3.0と同じシングルレーンの5Gbps転送にしか対応しないのに「USB 3.2」と記載できる” / “「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術…” https://t.co/Et6I5QlmTw"
「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術 (1/3) - ITmedia PC USER
一ノ瀬 いろはさんのツイート: "USB-IF はわざと混乱を起こそうとしているのでは無いか。"
期待がすごい。20Gbps/sの激速なUSB 3.2、年内に対応製品登場へ | ギズモード・ジャパン
20Gbpsの転送速度を誇るUSBの次期規格「USB3.2」は2019年中にPCへの搭載が始まる見通し - GIGAZINE
20Gbpsに対応したUSB 3.2、2019年後半にデスクトップPC向けに登場予定 - Engadget 日本版
ASCII.jp:USB 4の発表で、USB 3.2はどうなった? (1/5)|ロードマップでわかる!当世プロセッサー事情
【イベントレポート】ASMedia、転送速度20Gbpsの「USB 3.2 Gen2x2」コントローラを展示 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch

USB Power Delivery

EPR

「USB Type-C Revision 2.1」では240Wと現行の倍以上の電力が供給可能に、PCやモニターをUSBで使えるようになる可能性も - GIGAZINE
naitakuさんはTwitterを使っています 「EPR (Extended Power Range) Mode なるもので240Wまで供給できるようになるっぽい?5/25に仕様書更新されたみたい https://t.co/cTRM7baDXT」 / Twitter
USB Power Delivery | USB-IF
hnpnさんはTwitterを使っています 「USB Type-C Revision 2.1と今後公開される新しいリビジョンのUSB PDを組み合わせると最大240Wの電力供給が可能になるらしい」 / Twitter
hnpnさんはTwitterを使っています 「- 240W = Extended Power Range (EPR) - 電流は最大5Aのままで電圧が50V (正確には48V) になる - ケーブルのeMarkerを確認するので、EPR非対応のケーブルに48Vが掛かることはない - EPR対応ケーブルはEPRロゴの表示が必須なので見た目で区別できる」 / Twitter

PowerIQ

第692回:PowerIQとは - ケータイ Watch Watch
Anker、急速充電の新技術「PowerIQ 3.0」発表 USB PD互換に - Engadget 日本版
Anker PowerPort Ⅲ Duo レビュー – すまほん!!
USB Type-AとType-Cを両方搭載、最大出力45WでノートPCも充電できるUSB PD充電器 - ケータイ Watch

Quick Charge

【山田祥平のRe:config.sys】QuickChargeがUSB Power Deliveryを包み込む将来 - PC Watch
Qualcomm、従来より低温で35%充電速度が向上した「Quick Charge 3+」 - PC Watch
Qualcomm、「Quick Charge 4+」でさらなる充電速度向上と温度低下を実現 - PC Watch
第812回:Quick Charge 4/Quick Charge 4+とは - ケータイ Watch
Qualcomm、4倍高速で100W超の充電可能な「Quick Charge 5」規格 - PC Watch
Quick Charge 4/4+とは一体何だったのか
Quick Charge 4+スマートフォンをQC4+充電器で充電したら、むしろ充電が遅くなったりそもそも充電できなかった話

PC Watch

Anker、30WのUSB PD給電対応で低価格化した5ポートUSB充電器 - PC Watch
【山田祥平のRe:config.sys】USB PD時代のチャージャー選び - PC Watch
ASUS、USB PDやQC 3.0対応のモバイルバッテリ2種 - PC Watch
TI、200W給電対応のUSB Type-C/PDコントローラ ~USB接続で端末の急速充電から“電動工具”まで対応 - PC Watch
【山田祥平のRe:config.sys】USB Type-C充電統一への道遙か - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【PC給電編】 ~MacBookとThinkPadで各社のケーブルをチェック - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【スマホ編】 ~Type-C搭載スマホの充電速度をチェック - PC Watch
日本初のUSB-IF認証取得USB PD対応ACアダプタ - PC Watch
「Type-C=USB PD対応」ではない。高速充電には認証済みType-Cケーブルも必要 ~USB-IF認証取得の充電器「Energear」発表会レポート - PC Watch
【特集】これで失敗しない、USB PD充電器選び(解説編) - PC Watch
【山田祥平のRe:config.sys】世界中の電源プラグをUSB Type-Cに置き換えるサイプレスの野望 - PC Watch
【特集】これで失敗しない、USB PD充電器選び(ノートPC編) ~ThinkPadとMacBook Proで検証 - PC Watch
【特集】【特集】これで失敗しない、USB PD充電器選び(タブレット/スマホ/ゲーム機編) ~iPad ProとPixel 3、Nintendo Switchで検証 - PC Watch
【特集】これで失敗しない、iPhone/iPadを高速充電できるUSB PD充電器選び ~8製品×7アダプタの組み合わせでチェック - PC Watch
Anker、100W給電可能なUSB PD×2搭載の急速充電器 - PC Watch
【山田祥平のRe:config.sys】理想のマルチポートPDチャージャーを考える人間のわがまま - PC Watch
AnkerのUSB充電器で発煙の報告。回収へ - PC Watch
【山田祥平のRe:config.sys】それでもType-C、やっぱりType-C - PC Watch
【特集】ノートPCを充電できるUSB PDモバイルバッテリ、失敗しない選び方はこれだ! ~容量10,000mAh以上/最大出力30W以上の6製品を検証 - PC Watch
【山田祥平のRe:config.sys】Type-C PD、怖いながらもNew Normal - PC Watch
【山田祥平のRe:config.sys】Type-CがさらにややこC - PC Watch
【特集】徹底解明。VAIOが電源オフでもバッテリを使っている真の理由 ~VAIO開発者が語るUSB PD設計の難しさ - PC Watch
Anker、Type-C搭載で直接スマホを充電できる電源タップ。30W USB PD対応 - PC Watch
USB Type-Cの給電能力を240Wに引き上げる「USB PD EPR」 - PC Watch
【山田祥平のRe:config.sys】30WアダプタはUSB PD充電の新定番 - PC Watch
【特集】イマドキの急速充電機能「USB PD」って知ってる?スマホ/タブレット/ノートPCで即役立つ充電の必須知識 - PC Watch
Gloture、合計150Wまでの給電に対応する4ポートUSB PD充電器 - PC Watch
【特集】18~100WまでのUSB PD充電器を徹底検証!出力が違うとノートPCの挙動はどう変わる?11機種を総当たりチェック - PC Watch

GIGAZINE

最大20W出力が可能なモバイルバッテリー兼急速充電器「Anker PowerCore Fusion 10000」と薄さ1.5cmのモバイルバッテリー「Anker PowerCore Slim 10000 PD」レビュー - GIGAZINE
コンパクトかつ最大45WでスマホからノートPCまで充電可能な「Anker Nano ll 45W」レビュー - GIGAZINE
iPhoneのUSB電源アダプタを分解したら中身はこんな感じ、Apple純正は一体何が違うのか? - GIGAZINE
AnkerのACアダプターをバラバラに分解、玉石混交のACアダプターでも「良品」はこうなっている - GIGAZINE

@IT

【USB】第6回 USB充電を大きく変える新規格、USB PDとは? (1/3):ITの教室 - @IT
第4回: eMarker内蔵Type-CケーブルのUSB PDプロトコルを見てみよう:ThousanDIYの「ガジェット分解ライフ」:エンジニアライフ

blog

多機能USB電力メーター AVHzY CT-2を使ってみた
USB Power Delivery Analyzer of MediaLogic
LightningなiPhone・iPadでUSB PD充電に失敗する場合がある
USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい
USB PD 60W対応Anker PowerPort Speed PD 60 暫定レビュー
USB Power Deliveryの規格について調べた | HANPEN-BLOG
Nintendo Switchの純正ACアダプタはUSB PDの規格に準拠していないという話 | HANPEN-BLOG
乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG
USB-IF認証済み Anker PowerPort I PD レビュー | HANPEN-BLOG
誰でも出来る? USB Type-Cケーブルや充電器が規格に適合しているか安価に調べる方法 - AndroPlus
Apple純正品の仕様をコピーしているサードパーティUSB PD製品の話
USB Type-CとUSB PDの仕様がアップデート 240Wまで受給電可能に | Interface – CQ出版
ThinkPadなどのノートPCが一部のUSB PD ACアダプターで充電できない話
USB PD非対応のUSB Type-Cケーブルは仕様上存在しない
Ankerのモバイルバッテリーに付属してきた変換アダプターが最悪だった
一部のPPS対応ACアダプターで充電できない不具合が修正されるアップデートがThinkPadに降ってきているらしい

Amazon | USB Power Delivery アナライザ DTW2U3 (PDワットみるC) | メディアロジック (Media Logic, corp.) | USBフィギュア 通販
しっかり分かる“USB パワーデリバリ”入門:ついにやってきたUSB Power Delivery(USB PD)とは (1/3) - EDN Japan
(3)規格が守るUSP PDの安全性 偽造品を見逃さない機器間認証(C-AUTH) | ルネサス エレクトロニクス
USB-IF、USB-C向け認証プログラムを発表。粗悪な充電器などを排除 - Engadget 日本版
第840回:VOOC とは - ケータイ Watch
最新モバイルバッテリーの価格破壊がアツい!! PC派待望「5000円でUSB-C 45W」製品も(橋本新義) - Engadget 日本版
TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual (Rev. B)
aroe(Yoshio Nomura)さんはTwitterを使っています 「USB PDのコントローラーIC、最初は各社バラバラに作ってて制御方法もバラバラだったけど最近はUSB-IFが制定したTCPI(Type-C Port Interface)という名称の規格で統一されてきてる。I2Cスレーブとして動作してレジスタの配置も決められてるので、共通のコードで動作するようになってる https://t.co/AnE3CrGZ8H」 / Twitter
aroe(Yoshio Nomura)さんはTwitterを使っています 「微妙に間違えてた。正しくはTCPCI(Type-C Port Controller Interface)である。対応した製品として FUSB307B(On),TUSB422(TI),PTN5110(NXP)がある 対応したMCU向けライブラリとしてはSTMicroのX-CUBE-USB-PDがある。これは一応FUSB307Bに作られてるけど他にも使えるっぽい」 / Twitter
葛城玲さんはTwitterを使っています 「@uchan_nos PDパススルーはアクセサリーの電力を横取りするので、容量がギリギリだと上手く動きません。 また、ただでさえ相性問題多発のPD充電器に機器を2台も繋ぐと色々起こります」 / Twitter
GIGABYTE、100W給電が可能なUSB3.1 Type-Cフロントパネル「GC-USB 3.1 BAY」など2種 - エルミタージュ秋葉原
FadisさんはTwitterを使っています: 「USB機器はホストに自分が何mA使うつもりか申告していて、ホストはその情報に基づいて必要な電流を供給できない場合デバイスを拒否できる、というのはもう少し知れ渡ってほしい」 / Twitter
日本産業規格(JIS)を制定・改正しました(2021年5月分) (METI/経済産業省)
JIS C 62368-3:2021 オーディオ・ビデオ,情報及び通信技術機器―第3部:通信ケーブル及び通信ポートを介する直流電力伝送の安全性要求事項 | 日本規格協会 JSA Group Webdesk
UTiCd(モデルナ×3)さんはTwitterを使っています 「https://t.co/XOZF9PCdBx デルタ製Type-C 60W出力ACアダプタ、Innergie 60C Pro(Fold)も3990円になってるじゃん。さすがに買い足さないけど。30.4 x 30.4 x 60 mm(ブレード折り畳み時)の小型サイズだし、ブレードが折り畳みの都合で中心から外れてるから、隣の差込口もまず塞がないよ!」 / Twitter
製品一覧 | Innergie

日経 xTECH(クロステック)

USB4の実像に迫る | 日経 xTECH(クロステック)
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経 xTECH(クロステック)
USB4で採用した3つの新機能、高速化には「あの部品」が不可欠に | 日経 xTECH(クロステック)
高速化だけじゃない、USB4はここが違う | 日経 xTECH(クロステック)
USB4の実像に迫る | 日経 xTECH(クロステック)
USB4が40Gbpsの超高速を実現した技術とは | 日経 xTECH(クロステック)
11年ぶりの大幅アップデート、USB4の真の価値とは | 日経 xTECH(クロステック)
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経クロステック(xTECH)

ギズモード・ジャパン

USB 4が発表。ややこしい規格が統一されてほしい | ギズモード・ジャパン
新規格「USB4」発表。何がどう変わるか、今知っておくべきこと | ギズモード・ジャパン

GIGAZINE

最大40Gbpsの転送速度を想定した新規格「USB4」の暫定仕様が発表される - GIGAZINE
最大転送速度40GbpsでUSB 3.0の8倍速い「USB4」の技術仕様をUSB-IFが正式に公開 - GIGAZINE
新旧入り交じり混乱を極めるUSB規格をスッキリ解説 - GIGAZINE
PCがUSBデバイスを認識した時に何が起こるのか? - GIGAZINE

PC Watch

Thunderbolt 3が「USB4」として登場へ - PC Watch
エレコム、業界初のUSB-IF認証取得済みUSB4対応ケーブル - PC Watch
ケイデンス、業界初のUSB4検証IP - PC Watch
【特集】「USB 3.0」=「USB 3.1 Gen 1」=「USB 3.2 Gen 1」? すぐ分かるUSBの「Gen」表記ルール - PC Watch
【山田祥平のRe:config.sys】USB4の高速ポートをどう使う - PC Watch
【特集】Amazonの安いThunderbolt 4/USB4ケーブルは大丈夫なのか?ケーブル10種で4K×2同時出力・100W充電・データ転送を試してみた - PC Watch
VIA、USB4ドッキングステーション向けコントローラ「VL830」 - PC Watch

ITmedia

「USB4」発表 「Thunderbolt 3」ベースでデータ転送速度は40Gbps - ITmedia NEWS
USB 4がついに船出 Thunderbolt 3ベースで最大40Gbpsを実現 - ITmedia PC USER

iPhone Mania

USB4の仕様が発表。2021年までは製品化されない? - iPhone Mania
ややこしい?「Thunderbolt 4」は「3」よりも転送速度は速くない - iPhone Mania

Twitter

確定未申告さんのツイート: "あー、現状のTB3ポートはUSB 3.2の2レーン動作をサポートしてないから、Thunderbolt 3ポート ≠ USB 4ポートか あと、現状のTB3アクティブケーブルはUSB 3.XやTB以外のModal Operationをサポートしてないから、USB 4にTB3が取り込まれればそれが解決するな"
す~さんはTwitterを使っています: 「USB 4はUSB 2.0のバスを使いつつ、USB 4のレーンを別で使うのでUSB 2.0と互換性がある。 USB 4の電源はType-C, PDの定義に従うためUSB 4では定義されない。 USB3/DisplayPort/Host2Hostトンネルをサポート。 PCIeトンネル/Thunderbolt3/Alternate Modeはオプションサポート https://t.co/15HEztQExD」 / Twitter
す~さんはTwitterを使っています: 「USB4ではUSB2.0バスを制御用バスとして生かして、高速データ転送のために別レーンでGen 2(10Gbps),3(20Gbps)と高速化、さらに帯域稼ぐのにレーンを多重化してGen 2x2, Gen3x2として行く。 USB3/4は互いに物理層での互換性がないため物理的にUSB3/4を用意してMUXする」 / Twitter
FadisさんはTwitterを使っています: 「linux-5.6でUSB4のサポートがバニラカーネル入りする見通しらしい。USB4は最大40Gbpsの次世代USBとして今年の夏に標準化された規格。Thunderbolt3をUSBの規格に取り込んだような物で、USBケーブル上でPCI-Express Gen3 x2レーンを喋るEnhanced Super Speedモードが追加される https://t.co/cN8Ns9gYTj」 / Twitter
USB4 Support Being Introduced With Linux 5.6 Kernel - Phoronix
🍭さんはTwitterを使っています 「今まではeMarkerが無かったり全部のピンが結線されてない仕様違反ケーブルでも問題なく使えちゃうケースもあったけど、USB4からはeMarker必須でFull-Featuredじゃないとうまく動かん (はず) なので、昔買った仕様違反ケーブルが原因でUSB 3.xケーブルなのにUSB4で使えないみたいなことが増えそう」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プライバシー保護という観点からは、AndroidもiPhoneも50歩100歩という研究結果。どちらのデバイスも (ログインしなくても) 4~5分に1回の頻度でデータを送信する。データの量ではAndroidのほうがiPhoneより10倍以上多いが、iPhoneは周辺のデバイスに関する情報も送っている。 https://t.co/c4R79eb85J」 / Twitter
New study reveals iPhones aren't as private as you think | Tom's Guide

Thunderbolt 3 40Gbpsに対応しないUSB4 40Gbpsケーブルの話
玄人志向 | GWM.2NVMe-40GC:USB-C接続 M.2 NVMe対応SSD用ポータブルケース

FIDO

MS

YubikeyでLinuxサーバへの二要素認証sshログインを行う | 俺的備忘録 〜なんかいろいろ〜
YubiKey Personalization Tools | Yubico
OpenSC/OpenSC: Open source smart card tools and middleware. PKCS#11/MiniDriver/Tokend
Home · OpenSC/OpenSC Wiki
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikey (スマートカード)に入れた秘密鍵を使ってSSHにログインする | n10の個人的なメモ
Yubikey 4 にSSHの秘密鍵を格納する | n10の個人的なメモ
Windows Hello and FIDO2 Security Keys enable secure and easy authentication for shared devices - Windows For Your BusinessWindows For Your Business
YubiKey for Windows Hello を入手 - Microsoft Store ja-JP
YubiKey Edge で 2段階認証 ~ Windows10編 - Qiita
IdM実験室: [Windows Hello]Yubikeyを使ってWindows 10 PCにサインインする
指紋認証は高精度な偽の指紋なら成功率80%で突破可能 - GIGAZINE
ASCII.jp:Windows 10、パスワードなしの世界へ一歩前進 (1/2)

GIGAZINE

指紋認証システムは機械学習で生成した「マスター指紋」でも突破可能だと判明 - GIGAZINE
3Dプリンターで作った石膏の「顔」でスマホの顔認証は突破される危険性あり - GIGAZINE
GmailやYahoo!メールの2段階認証を無効化するフィッシング詐欺が横行している - GIGAZINE
Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み - GIGAZINE
Googleの安全な2段階認証を構築し不正アクセスを防ぐ物理キー「Titan セキュリティ キー」が日本で登場 - GIGAZINE
iPhoneに物理的に挿入するだけで二段階認証が可能なセキュリティトークン「YubiKey 5Ci」 - GIGAZINE
GitHubがWebAuthn対応で物理セキュリティキーによる二段階認証を正式にサポート - GIGAZINE
Googleの2段階認証を構築する「Titan セキュリティ キー」にUSB Type-Cタイプが登場 - GIGAZINE
物理セキュリティキーの「YubiKey」でついに生体認証が可能となることが判明 - GIGAZINE
スマホでもPCでも使えるUSB Type-CとNFCを搭載した物理セキュリティキー「YubiKey 5C NFC」レビュー - GIGAZINE
2020年アメリカ大統領選でメール流出がなかったのは「物理的なセキュリティキー」の採用による可能性 - GIGAZINE
Googleの物理キー「Titan セキュリティ キー」がサイドチャネル攻撃により突破される - GIGAZINE
「セキュリティリスクが高い」のにパスワードが認証方法として使われ続ける理由とは? - GIGAZINE
「パスワード認証なし」の世界に向けて足りなかったピースをFIDOアライアンスが発見 - GIGAZINE

Publickey

GitHubがWebAuthn対応を開始。MacのTouch IDやWindows Helloの指紋認証などを使いパスワードレスでログイン可能に - Publickey
LINEがオープンソースで「LINE FIDO2 Server」公開。パスワード不要でログインできる「FIDO2/WebAuthn」を実現 - Publickey

Qiita

YubiKeyを実用面から機能別レビュー - Qiita
YubiKey+Pageantでらくらく秘密鍵管理 on Windows - Qiita
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikeyを使って、Githubのcommitをverifyする - Qiita
今さら聞けない2段階認証の話いろいろ - Qiita
YubiKey NEO で Linux でも 2段階認証しよう! - Qiita

FIDO(ファイド)に準拠した認証セキリティデバイス | 飛天ジャパン
Fingerprint USB Dongle - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
Compare YubiKeys | Strong Two-Factor Authentication for Secure Logins | Yubico
Basic YubiKey Troubleshooting : Yubico Support
USB-based YubiKey Now Boosts Security for iPhones Running iOS 11 | Digital Trends
YubiKeyストア
Fingerprint reader
Sign in if you’re locked out on iOS 12.3 - Google アカウント ヘルプ
FadisさんはTwitterを使っています 「ちなみにWebUSBは、フィッシングサイトがFIDO U2FのドングルとWebUSBで直接お話して2要素認証を台無しにする脆弱性 が見つかったあと多くの主要なデバイスクラスのデバイスをWebUSBから使えなくする変更が入った為、楽しむのは難しいAPIになった」 / Twitter
A Side Journey to Titan - NinjaLab
Yubikeyを使う:OpenPG編 | κeenのHappy Hacκing Blog
YubiKeyをLinuxの「鍵」にする | κeenのHappy Hacκing Blog
FIDO U2F/PKCS#11対応で4つの鍵が管理できるセキュリティキー - PC Watch
Keisuke KATOさんはTwitterを使っています 「YubiKey Bio は OpenPGP に対応していない?そろそろ自分も SSH は GnuPG をやめて FIDO2 resident key に切り替えたい… が,git の署名がまだ GPG か… ssh-keygen -t ed25519-sk -O resident」 / Twitter
FIDO/WebAuthNにおけるAndroid SafetyNet AttestationとKey Attestationの違い - Got Some \W+ech?
Twitterのセキュリティキー実装の概要

FeliCa

Sony Japan | FeliCa | 個人のお客様 | 製品情報 | RC-S380
ソニー、次世代型FeliCaチップ開発 クラウド連携機能を追加 - ITmedia NEWS
マイナンバーカードをMacで利用可能、ソニーの「PaSoRi」がmacOSに初対応 - INTERNET Watch
ソニー株式会社 | FeliCa | 個人のお客様 | 製品情報 | RC-S300
ソニー株式会社 | FeliCa | 個人のお客様 | アプリ・ソフトウェア

I/F

GC-USB 3.1 BAY (rev. 1.0) | Motherboard - GIGABYTE Global
REX-PCIU3製品仕様[RATOC]
玄人志向 | USB2.0V-P4-PCI:VIA社製 VT6212L搭載 USB2.0 外部x4 内部x1 ※合計4ポートまで同時使用可 インターフェースボード(PCI接続)
玄人志向 | USB3.0R-P2-LPPCI:Renesas社製 μPD720202搭載 USB3.0×2 インターフェースボード(PCI接続)
玄人志向 | USB3.1C-P2-PCIE:ASMedia社製 ASM2142搭載 USB3.1 Type-C x2 インターフェース(PCI-Express x4接続)
USB 3.1 Gen 2対応コントローラは搭載チップにより性能が異なる!? ASMedia ASM1142 / Intel DSL6540 : AKIBAオーバークロックCafe
「1mのケーブル長さ制限を克服」とうたうUSB 3.1カード - AKIBA PC Hotline!
GIGABYTE、世界初のUSB3.2 Gen.2×2拡張カード「GC-USB 3.2 GEN2X2」 - エルミタージュ秋葉原

Hub

USB2.0ハブ 4ポートタイプ|株式会社バッファロー BUFFALO
Inateck - Portable Mini 4-Port USB 3.0 Hub HBU3VL2-4
Anker 4-Port Ultra-Slim USB 3.0 Hub|USBハブの製品情報 | Anker (アンカー) Japan公式サイト
USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト
USB Type-Cハブ(4ポート・USB3.1 Gen2・セルフパワー・ブラック)400-HUB061の販売商品 | 通販ならサンワダイレクト

UART

FTDI Chip launches USB 3.1 evaluation modules
ラトック、USB Type-C接続のシリアルポート変換ケーブル - PC Watch
定番USBシリアルコンバータのUSB Type-Cバージョン RS-USB60FC [RATOC]
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「懐かしのInterlinkでシリアル転送したいのですが、左のクロスケーブルを買ったけどぜんぜんつながりませんでした… 結線が違う右のやつを見つけたのですが、これだといけるの?? ていうか両方ともクロスケーブルって言って売ってるのに何が違うの???? シリアルケーブルくわしいニキ助けて!>< https://t.co/lDtEjXaQDZ」 / Twitter
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「よくみたら右のにはヌルモデムケーブルって書いてありました。 Interlinkの説明に「クロスケーブル(ヌルモデムケーブル)」って書いてあるから、やっぱり右のじゃないとダメなのかな… ヌルモデムってなんぞ… おねえさん17歳だからわからない><」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird ヌルモデム=クロスケーブルという認識で良いかと。モデムを経由せずにテレタイプ端末同士を接続できるというのが語源らしいです。」 / Twitter
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「@zilfhum_power そうすると左の自称「クロスケーブル」はなんなんでしょ?」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird 対応してないんですかね。DTR、RTS、CTSあたりは正しく繋がってないとダメかもしれません。無視して強制的に送るようなソフトあるんでしょうかね?」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird 左のはフロー制御用の信号がクロスしてないのでは(わからん)」 / Twitter
Y8LさんはTwitterを使っています 「@HentaiThird 2ピン3ピンのみのクロスは運しだいのレベルで繋がりますって感じで、Winでは下のがPC間のクロスケーブル、PC-98用ってのは、7と8がショートして反対の1ピンへ行くのもあったかと。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@HentaiThird RS232Cは25ピンと決まっててIBM-PCの9ピンは規格外。クロス接続も規格外。フロー制御もIBM-PCの8250系とPC98の8251で仕様が違う。全部規格外なので正解は無く、クロスケーブルは窓から投げ捨ててUSBメモリかイーサLANでデータ転送しましょう。」 / Twitter
Parallel - Serial encorder
RS-232Cの簡易接続

Debug

USBケーブルチェッカー

USBケーブルチェッカー | LimePulse
LimePulse USBケーブルチェッカー 機能解説 - YouTube
aroerina/LimePulse_USB_cable_checker: LimePulse USB cable checker schematic
【やじうまミニレビュー】USB Type-Cケーブルなどの素性を一発チェックできる必携アイテム「USB CABLE CHECKER2」 - PC Watch
USB ケーブルの性能を明らかにする「USB CABLE CHECKER 2」 | Bit Trade One, LTD
USB CABLE CHECKER 2 | ビット・トレード・ワン 公式オンラインショップ 【 BTOS (ビートス) 】

USBで接続してPCをロジック/プロトコルアナライザにできる「ポケアナ」 - PC Watch
NET20DC-USB / Hi-Speed USB 2.0 Host-to-Host Debug Device | 海外ハードウェアの購入なら「ユニポス」
USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
見た目はUSBケーブル、中身はハッキングツールの悪用厳禁ケーブル「O.MG Cable」がLightningに続きUSB Type-Cバージョンなども販売開始 - GIGAZINE
USB Native Debug Class (DbC) Cable
USB3 debug port — The Linux Kernel documentation
開発ツール(インテルデバッガー) – フラットーク株式会社
naitakuさんはTwitterを使っています 「唯一規格にあるのはこちらのVBUSが繋がってないデバッグ用ケーブルではないかと思います。 https://t.co/kxOnzOIatZ」 / Twitter
USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
Dan KogaiさんはTwitterを使っています 「実は規格違反🙅‍♂️「※USBの規格には、USB Aオス-USB Aオスケーブルの規格はありません。本ケーブルは特殊な規格なので、ご使用前に、各機器の使用方法を確認の上ご利用ください」 https://t.co/5bPrGrZiTr」 / Twitter
KU-RAA05【両面挿せるUSBケーブル(A-Aタイプ)(0.5m・ブラック)】USB Aコネクタの向きを気にせず挿せるA-A ケーブル。0.5m・ブラック。 | サンワサプライ株式会社
Dan KogaiさんはTwitterを使っています 「なぜ規格違反かというと、元々USBはホストと周辺機器の向きが決まってたから。Aは必ずホスト側、周辺機器はBだったのが、ケータイ(スマフォに限らず)のコネクターにMicro-Bが使われるようになったあたりから曖昧になり、公式に表裏だけではなくホストゲストも双方向になったのはUSB-Cから」 / Twitter

LAN

Realtek

Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch
プラネックス、USB 3.0接続の2.5Gbps対応Ethernetアダプタ - PC Watch
4480円で2.5GBASE-T、USBの高速LANアダプターをプラネックスが発売、「USB-LAN2500R」 - INTERNET Watch
4500円で有線LANが2倍速くなる! プラネックスの2.5Gbps対応USB LANアダプター「USB-LAN2500R」【イニシャルB】 - INTERNET Watch
USB-LAN2500R
2.5Gbps対応で4千円以下! AnkerのUSB Type-C接続LANアダプターを使ってみる【イニシャルB】 - INTERNET Watch
Anker PowerExpand USB-C & 2.5Gbps イーサネットアダプタ | アダプタの製品情報
Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - リアルテック
SilverStone、USB Type-C接続のGbEアダプタ - PC Watch
USB Type-C対応のUSB - LANアダプタが販売中、ORICO製 - AKIBA PC Hotline!
RTL8153B-VB-CG - REALTEK

ASIX

所有

ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社
Plugable USB 3.0 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable

ESXi 向けUSB NICにオススメが増えた
ASIX ESXI - Google 検索
AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
玄人志向 | GbE-USB3.0S2:ASIX社製 AX88179搭載 1000Base-Tイーサネットアダプター(USB接続)
Plugable USB Type-C 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable

Marvell(Aquantia)

PHY トランシーバ、Alaska マルチ・ギガビット PHY - 製品 - マーベル
QNA-UC5G1T | ハードウェア仕様 | QNAP
5GBASE-T対応LANアダプター、QNAP「QNA-UC5G1T」、USB 3.0接続 - INTERNET Watch
Aquantia、ノートPCで5Gbps有線LANを実現するUSB LANアダプタ用ICチップ - PC Watch
AQtion Chips - Aquantia Corp
AQtion AQC111U & AQC112U - Aquantia Corp

USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
Realtek
2015816232439101951.pdf
USB-C to Ethernet Adapter - Thunderbolt 3 Compatible | Cable Matters
プラネックス、USB 3.0 Type-C接続の5GbE/2.5GbE対応有線LANアダプタ - PC Watch
5Gで1.5万円、2.5Gは6000円弱のUSB Type-C接続LANアダプター「USBC-LAN5000R/2500R」、プラネックスが発売 - INTERNET Watch
USBC-LAN2500R
USBC-LAN5000R
USB Type-Cケーブル1本で有線LANと電源をつなげる「USB-CVLAN7」、サンワサプライが発売 - INTERNET Watch

Audio

1.0

USBオーディオ変換ケーブル(USB A to 3.5mmステレオミニプラグ)|株式会社バッファロー BUFFALO
PCM2704 ステレオ、USB 1.1、DA コンバータ、ライン出力およびS/PDIF 出力付、バス/セルフ・パワー(外部ROM インターフェイス) | TIJ.co.jp
ヘッドフォンアンプ付 USB-DAC LXU-OT2
Amazon.co.jp: Flameer PCM2704 サウンドカード ボード 3.5mm アナログ出力 デコーダ USB DAC-S / PDIF 高品質: カメラ
Amazon.co.jp: Dovewill PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  アクセサリー: カメラ
Amazon.co.jp: IPOTCH PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  交換性 便利性: カメラ

2.0

exaSoundの「PlayPoint」、USB Audio Class 2.0接続したDACを操作可能に - AV Watch
【藤本健のDigital Audio Laboratory】Windows 10がついに「USB Audio Class 2.0」対応へ? ドライバ無しでハイレゾ再生 - AV Watch
K3 – Fiio Japan
USB-DAC | アムレック
E10K Type-C – Fiio Japan
FiiO、バスパワー駆動のUSB DAC内蔵ヘッドホンアンプ「K3ES」。DACチップ変更でS/N、歪み率を改善 - PHILE WEB
K3ES – Fiio Japan

3.0

PCからも3.5mmミニジャックが消える日が近い。USB Audio Device Class 3.0仕様が策定 - PC Watch
USB Type-Cを次世代オーディオの標準端子に。「USBオーディオデバイスクラス3.0」発表 - PHILE WEB
USB-IF、USB Type-C経由のオーディオ再生を可能にする「USBオーディオデバイスクラス3.0」を発表 | ガジェット通信 GetNews
スマホのイヤホンジャックを廃してUSB Type-Cをオーディオケーブル代わりにしようとIntelが新規格策定中 - GIGAZINE
「音声端子はステレオミニからUSB Type-Cへ」。USB Audio Device Class 3.0発表 - AV Watch
モバイル機器からヘッドホン端子が消える日は来るか。インテルがUSB-Cにオーディオサポート拡張を提案 - Engadget Japanese
iPhoneに続いてPCの音声端子もなくなる? 知っておきたい2017年の注目技術 (1/4) - ITmedia PC USER

ASCII.jp:Xperia XZ3も含めた「イヤホン用アダプター増えすぎ問題」|Xperia XZ3ロングランレポート
「ヨンナナ」プラグについて | g200kg Music & Software
Creative BT-W2 - パソコンやMac、PlayStation®4とUSB接続可能なUSBオーディオBluetootnアダプター - Creative Technology (日本)
まちカドおるみんさんはTwitterを使っています 「@yuki424zti ハイレゾ,可聴域が広がることよりもサンプリングポイントが増えることと bit 数が増えてダイナミクスレンジが大きくなることのほうがキモなので」 / Twitter
uint256_tさんはTwitterを使っています 「ハイレゾだろうと酷い波形もあるので世界は厳しい」 / Twitter

キーボード

Wikipedia

Computer keyboard - Wikipedia
キーボード (コンピュータ) - Wikipedia
FITALY - Wikipedia
IBM PC keyboard - Wikipedia
Keyboard layout/chart - Wikipedia
Latin-script non-QWERTY keyboards - Wikipedia
キー配列 - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
Altキー - Wikipedia
Japanese language and computers - Wikipedia
PS/2コネクタ - Wikipedia
PS/2 port - Wikipedia

Owltech キーボード OWL-KB104SFD/E
Microsoft キーボード:Wired Keyboard 600 (ワイヤード キーボード 600) | Microsoft Hardware
USB 切替器 キーボード 切替機 プリンタ 切り替え機 USB 手動切替器
テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE
CNN.co.jp : ビル・ゲイツ氏、「Ctrl+Alt+Delete」を後悔
ビル・ゲイツ、Ctrl+Alt+Deleteについて語る | スラド ハードウェア
Apple、キーボードへのホコリ侵入を防ぐ特許 - PC Watch
パソコンのキーボードは,なぜABC順・五十音順ではないのですか | ことばの疑問 | ことば研究館
1877年3月のフランス向けレミントン・タイプライターのキー配列 | yasuokaの日記 | スラド
はじめてのにき(2018-08-07)
日記 (2018 年 12 月下旬)
Microsoftは「Office専用キー」をキーボードに追加することを検討中 - GIGAZINE
【悲報】Realforce R2はキーボードじゃなかった。 - チラシの裏の走り書き はてなブログ版
Retr0bright でキーボードを漂白する | IIJ Engineers Blog
【山田祥平のRe:config.sys】拡張が「ない」を「ある」に変える - PC Watch
妻「ねぇ、SysRq キーがないんだけど」 | IIJ Engineers Blog
Happy Hacking Keyboard 誕生の経緯 | IIJ Engineers Blog

マウス

有線レーザーマウス(5ボタン・チルトホイール) - M-LS15ULBK
なかのん&マジックさんのツイート: "ハイエンドに近いマウスを使ってると、いい加減にWindowsもホイールのmomentumスクロールをOSレベルで扱って、アプリから識別できるようにして欲しい。たとえば、ホイール回した後にCtrlキーを押して、ズームとして扱われてしまうのを回避できるようにして欲しい。"
なかのん&マジックさんのツイート: "今のところ、本当にユーザの操作の結果としてのホイールイベントなのか、UXやスムーズスクロールのための予備的に発火されたイベントなのか見分ける手段がなさげ。"

対応機種 | サービス・機能 | NTTドコモ
USBホスト| Android(TM) 技術情報 | au
「USBに裏表がある理由」をUSBの開発者が明かす - GIGAZINE
「USB 3.0機器はゆっくり差すと2.0、素早く差すと3.0として認識される」って本当? →メーカー「本当です」 - ねとらぼ
USBが誕生したのは「奥さんのプリンタをつなげる手間にキレたから」 USBの設計当時を振り返る:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/6 ページ) - ITmedia NEWS
SATA3.0 SSDより速いUSBメモリ、Patriot「Supersonic Rage Prime」 - エルミタージュ秋葉原
USB Type-C/PD給電対応のPC切替器、サンワサプライから - PC Watch
USBメモリの耐久性をテストした結果とは? - GIGAZINE
USB-IF、給電能力を示す新しい認定USB-Cケーブル・ロゴ発表、USB4ロゴも更新 | マイナビニュース
最大40Gbps転送のUSB4と240W給電可能なUSB PD EPRに合わせた新しいUSBの認証ロゴが発表される - GIGAZINE
新しいUSBロゴは最大240Wの充電機能を示す|自作.com
USBに新ロゴ。USB4および240W PD向け - PC Watch
ログイン中のPCが盗まれた時に強制的にPCをシャットダウンしてデータを保護してくれるUSBデバイス「BusKill」 - GIGAZINE

PCIe

PC Watch

【特集】ビデオカードはPCI Express x16接続が必須かどうかを検証してみた - PC Watch
PCI-SIG、16GT/sを実現するPCI Express 4.0規格Ver 1.0を公開 - PC Watch
PCI-SIG、4.0の2倍の転送速度を実現する「PCI Express 5.0」規格を策定 - PC Watch
PCI-SIG、x16で256GB/sの高速転送を実現する「PCI Express 6.0」 - PC Watch
Intel、PCIe 4.0/Optaneメモリに対応したFPGA「Stratix 10 DX」 - PC Watch
PAM4採用で速度2倍の「PCI Express 6.0」仕様が確定 - PC Watch
PCI Express 6.0の最終ドラフトとなるバージョン0.9発表 - PC Watch
PCI Express 6.0規格が正式公開。帯域幅は前世代比2倍に - PC Watch
Rambus、PCI Express 6.0対応コントローラを発表 - PC Watch

マイナビニュース

CCIX vs CXL(4) CCIXとよく似た別のモノ「CXL」とは何なのか? | マイナビニュース
『PCI Express 6.0』の帯域幅は前世代比2倍の256GB/秒へ - PCI-SIGの仕様策定が完了 | マイナビニュース
【連載】CCIX vs CXL | マイナビニュース
玄人志向、Realtek Dragon機能対応の2.5GbE LANカード | マイナビニュース

GIGAZINE

双方向転送速度最大256GB/sとなるPCIe 6.0の最終ドラフトが発表される、早くて2022年中に対応製品が登場予定 - GIGAZINE
256GB/sの最大転送速度を誇る通信規格「PCIe 6.0」の仕様策定が完了 - GIGAZINE

自作ユーザーが解説するゲーミングPCガイド

PCI-Express Gen 6.0仕様策定は2021年までに完了する - 自作ユーザーが解説するゲーミングPCガイド
PCIe 6.0仕様の進捗状況が最終ドラフトに、データ転送速度は128GB/sと高速に - 自作ユーザーが解説するゲーミングPCガイド

北森瓦版

北森瓦版 - PCI-Express 6.0 ver. 0.7がリリースされる―2021年の規格策定完了を目指す
北森瓦版 - PCI-Express 6.0規格が正式に公開される

blog

DMA(Direct Memory Access)関連調査メモ - DXR165の備忘録
ACPI DMARメモ - 睡分不足
VFIOによるデバイス操作 - 睡分不足
なぜPCI Expressはエンベデッド・クロック方式を採用した? - パソコンの選び方と買い方
20210320

CXL

FadisさんはTwitterを使っています 「CXL 2.0のinitialなサポートがLinuxカーネルに入りそうらしい。CXLはPCI-Express 5.0上でメモリ一貫性プロトコルを喋る規格で、GPUのようなアクセラレータやストレージがデバイス側に持っているキャッシュとCPUのキャッシュの間でキャッシュのInvalidateが出来るようになる https://t.co/IdaU8WyT8L」 / Twitter
CXL 2.0 Support Steps Closer To The Mainline Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「IntelがLinuxでCXL 2.0を使えるようにするための実装を続けている話。新しくLinux 5.16で入れようとしている変更ではCXLを介して不揮発メモリデバイスが接続されている場合に使えるコマンドの実装がなされている。 https://t.co/dIl4NXChvg」 / Twitter
More Of Intel's CXL Enablement Code Arrives For Linux 5.16 - Phoronix
FadisさんはTwitterを使っています 「CXLはCompute Express Linkの略で、PCI-Expressの物理層の上でベンダー非依存の標準化されたキャッシュ一貫性プロトコルを喋る規格。CPUとPCI-ExpressのデバイスがCXLを喋ることで、NICのバッファやGPUのメモリ等のPCI-Expressの向こう側にあるメモリとCPUのキャッシュの間でキャッシュ一貫性を保てる」 / Twitter
FadisさんはTwitterを使っています 「CXL 2.0は、NVDIMMのCPUからキャッシュライン単位での読み書きという特徴を損ねる事なく、物理的な不揮発メモリをPCI-Expressの向こう側に置く目的でCXLを使う事を想定しており、そのためのコマンドや、従来ACPIから取っていた情報をPCI-Expressのデバイスから取る手段が定義されている」 / Twitter
FadisさんはTwitterを使っています 「ところでLinuxはCXLで接続された不揮発メモリデバイスもlibnvdimmで扱うつもりっぽくて、DIMMとは一体…」 / Twitter
FadisさんはTwitterを使っています 「IntelがLinuxカーネルにCXL 2.0のCXL.memのサポートを追加している話。CXLはPCIe 5.0をベースにデバイスがキャッシュしているホストのメモリのキャッシュ一貫性を保つCXL.cacheとホストがデバイスの任意のアドレスのデータを読み書きするCXL.memの2つの機能を追加する https://t.co/r83shHzfhH」 / Twitter
CXL 2.0 Driver For Host-Managed Device Memory Should Be Ready For Linux 5.18 - Phoronix
FadisさんはTwitterを使っています 「PCIeには従来からBARを使ってデバイスのメモリの一部をホストのアドレス空間にマップし、CPUや他のPCIeのデバイスから読み書きできるようにする仕組みが備わっていたが、これには厳しいサイズ制限があり、GPU等はベンダー固有の方法でBARを拡張してGPUのメモリ全体に対するアクセスを提供していた」 / Twitter
FadisさんはTwitterを使っています 「ホストとデバイスがCXL 2.0対応の場合ホストのメモリコントローラを介して、まるでそれがホストのメモリであるかのようにデバイスのメモリの全領域を読み書きできる。つまりPCIeに接続されたDRAMや不揮発メモリをCPUはホストのメモリと同じように触れるようになる。読み書きの単位はホストと同じ64B」 / Twitter
FadisさんはTwitterを使っています 「既存の不揮発メモリ(NVDIMM)はDIMMにさして使う為、従来のストレージデバイスと比較して、1ホストに接続できる最大数、fabricによる接続先ホストの切り替え、故障時の交換の容易さの点で劣る事が問題視されていた。CXL.memはこの問題を「不揮発メモリをPCIeにさせるようにする」ことで解決する」 / Twitter

Twitter

slankdevさんのツイート: "PCのMBがPCIe x16なのに内部がx4という原因で3時間溶けた。勉強になった"
FadisさんはTwitterを使っています 「来年の完成を目指すPCI-Express 6.0の最初のドラフトが出たらしい。PCI-Express 6.0はようやく製品が出てきたPCI-Express 4.0の次の次の規格で、PCI-Express 5.0の倍となる64GT/sでの通信が可能 https://t.co/RzuauPNu2b」 / Twitter
PCI Express 6.0 Reaches Version 0.5 Ahead Of Finalization Next Year - Phoronix
FadisさんはTwitterを使っています 「PCI-Express、規格としてはどんどん速くなるんだけど、正しく動くための要件もどんどん厳しくなっててハード屋さんが乗り気じゃなくなってるんだよな」 / Twitter
FadisさんはTwitterを使っています 「PCI-Express 6.0の規格が完成してリリースされたらしい。PCIe 6.0は差動ペアの電位差が基準の-1, -1/3, 1/3, 1倍となるような4種類の信号を使って1本の差動ペアで1クロックに2ビットの情報を送るPAM4を用いるのが大きな特徴で、これによってPCIe 5.0の倍の帯域を実現する https://t.co/9wQSaxAhu5」 / Twitter
PCIe 6.0 Specification Released With 64 GT/s Transfer Speeds - Phoronix
FadisさんはTwitterを使っています 「PCI-Expressは従来からパケットにCRCを持ち、データが化けているのを検知すると再送を行なっていたが、これが起こると再送が完了するまで後ろのデータも処理できない為大きなレイテンシが生じる。PCI-Express 6.0では前方誤り訂正がパケットに追加され、少々の化けなら再送せずに修正できるようになる」 / Twitter

redvespid - Qiita
Download the Specification | Compute Express Link

I2C

あおいさやさんはTwitterを使っています 「I2C規格が脱master/slaveしたことを知る。 2021/10 rev.7.0 https://t.co/Xtx0zF31AY」 / Twitter
I2C-bus specification and user manual - UM10204.pdf
あおいさやさんはTwitterを使っています 「I2Cのmaster/slaveはcontroller/targetに https://t.co/GFc06NGcsI」 / Twitter
ChuuiさんはTwitterを使っています 「@La_zlo 回路図だと controller/target では長くて見辛くなるので、どのように略すかという意見の食い違いから、また戦争が勃発するだろう。 ctl/tgt ctrl/trgt なお「略すのはダサい。略すな!」という言葉は、あなたが今使っているキーボードの印字を見たあとで発言してほしい。」 / Twitter
うえのさんはTwitterを使っています 「@es_chuui @La_zlo 略すのはダサい。略すな! https://t.co/G5nNDzU3jU」 / Twitter
TNさんはTwitterを使っています 「@n_ueno @es_chuui @La_zlo そのaltというのは何ですか?」 / Twitter
Specification – I2C Bus
nxp fanさんはTwitterを使っています 「I2Cの仕様書 第7節にもその決め方が載っています. https://t.co/M2CXAh1Mi9 (この日本語版は少し古いRev.5のもの.基本的には同じですが最新の仕様Rev.7はこちら→ https://t.co/6P1rdPeWrk)」 / Twitter
UM10204 I2C バス仕様およびユーザーマニュアル - UM10204.pdf
nxp fanさんはTwitterを使っています 「いつもメールで届く「トラ技 便り」. 今回はI2Cバスのプルアップ抵抗の値についてのクイズだった. https://t.co/ghOiapht2s いつも適当に決めちゃってる人も多いかもしれないけど,こんな風に算出します.」 / Twitter
I<sup>2</sup>Cバスのプルアップ抵抗の値 | CQ出版社 オンライン・サポート・サイト CQ connect
FadisさんはTwitterを使っています 「I2C(Inter Integrated Circuit)の後継規格がImproved Inter Integrated Circuit略してI3Cなのいいセンスしてる。しかしI2Cの人気は絶大なので相対的にあまり流行っていない」 / Twitter
FadisさんはTwitterを使っています 「I3CがI2Cと比べて良くなっている点としてはまずデバイスに動的にアドレスを振る方法と、デバイスをスリープ/復帰させる方法が標準化された。更にクロックの上下のエッジでデータを送り、クロックが変化していないけどデータ線の値が変化している状態も使って6clockで16bitを送り、30Mbpsを超えられる。」 / Twitter

ストレージ

その他

blog

SSDについて勝手に語る : sside.net
ベルQ(手動RTbot)さんのツイート: "【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い - ニッチなPCゲーマーの環境構築 https://t.co/1SclTqPQaR 1年前の記事だけど まぁ大容量書き込みする人がそんなに居ない現実もある"
【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い : ニッチなPCゲーマーの環境構築
SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe) - uchan note
北森瓦版 - Western DigitalのPenta Layer Cell NANDは2025年以降

Storage Reviews - CNET
VIOPS10: SSDの基本技術と最新動向
AIF-06 | Ainex
SSD ドキュメント | タイプ別 Download | サポート | Samsung Semiconductor Global Website
個人向けSSD | 製品別 Download | サポート | Samsung Semiconductor Global Website
SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
Data degradation - Wikipedia
WD、2020年に世界最大容量の20TB HDD投入 ~CMR方式の18TB HDDも - PC Watch
トリムの概要
FadisさんはTwitterを使っています 「erase block sizeを公表しないSSD屋、やる気が足りないのでは」 / Twitter
キオクシア、Ethernet接続型のNVMe-oF対応ストレージ - PC Watch
東芝、Ethernetから直接アクセスできる「NVMe-oF SSD」試作機を開発 ~ランダムリード1,600万IOPSを実現 - PC Watch
ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは? - GIGAZINE
✿sat❀さんはTwitterを使っています 「SSDは内部的にいろいろ隠蔽してくれていて「ぷるぷるぷる…ぼくは速いだけで他はHDDとは変わらないブロックデバイスだよ」という顔してるけど中身は「ファイルシステムとブロック層をフルセットで持っとるやんけ!」なところがある。しかも各社独自実装」 / Twitter
SSDの読み書きはどのように行われるのか - GIGAZINE
HDD・SSDの使用時間と故障率の関係を示す「バスタブ曲線」に変化あり - GIGAZINE
キオクシア株式会社 | Maker Faire Tokyo 2021 | Make: Japan
書換え耐性が低いNAND flashメモリ向けの キャッシュアルゴリズム - Google スライド
Western Digital、キオクシアは汚染のために「少なくとも」6.5エクサバイトの3DNANDを失う|自作.com
キオクシア、四日市と北上の工場でコンタミ発生 - 約6.5エクサバイトの生産に影響 | マイナビニュース

SD

PC Watch

最大985MB/sを実現する高速SDカード規格「SD Express」 ~最大128TBの「SD Ultra Capacity」も策定 - PC Watch
PCIe/NVMeで最大転送速度985MB/sを実現する「microSD Express」 - PC Watch
【イベントレポート】実測で888.5MB/sを実現するPCIe/NVMe SDカードの仕様が公開 ~WDがいち早くデモを実施 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
東芝メモリ、ほぼmicroSDサイズで最大8GB/sのリムーバブルメモリ「XFMEXPRESS」 - PC Watch
PCI Express 4.0採用で最大4GB/sを実現した「SD 8.0」規格 - PC Watch
偽物SDカードの見分け方教えます!買ったら最初にチェックすべき4つのポイント - AKIBA PC Hotline!
SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website

GIGAZINE

microSDカードの「A2規格対応」にパフォーマンス向上の意味はないとエンジニアが主張 - GIGAZINE
microSDカードのA1規格対応品は最低基準の2倍の性能を発揮しA2規格対応品を超えることがある - GIGAZINE
microSDカードより小さい「NMカード(ナノメモリーカード)」をHuaweiが発表 - GIGAZINE
SDカードの新規格「SD 8.0」が登場、PCI Express 4.0採用で最大4GB/sの転送速度を実現 - GIGAZINE

FlashAir Developers - upload.cgi
PQI Air Card - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
SDA、Ver 6.0仕様のA2規格とLVS仕様を追加 - EE Times Japan
第789回:Application Performance Class 1(A1)とは - ケータイ Watch
第882回:SDUCカード とは - ケータイ Watch
転送速度985MB/秒の高速SDカード「SD Express」発表。128TBのSDUCも - AV Watch
ぉゅぅさんはTwitterを使っています: 「あるある... SD hostのレジスタなんかは規格で一緒のはずなのに ベンダ依存とか ソコを使うためのお膳立てが違うのよね. 最悪なのは続いてるツイートのような ほかの機能と混ざってるようなところとか怪しい挙動... SoCベンダが大きく情報を出してくれないと推定もアタリもつけるのが大変よぬ... https://t.co/pz07dLD9WJ」 / Twitter
ぉゅぅさんはTwitterを使っています: 「まぁなによりもベンダが提供してくれないってところがアレなんですがねぇ... (あっちからしたら 数量出ないのに面倒見てられるかよってことなのかもしれないけれど #何の話だ」 / Twitter
1TBのMicroSD及びSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
高速なSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
FadisさんはTwitterを使っています 「SPI mode、SDカードが本来のプロトコルではなく、3ピンだけを使ってSPIをしゃべるようになるモード。SPI対応のマイコンで読む時とかに便利。SDカードのプロトコルにはライセンスまわりの面倒があるが、この方法なら回避できる。ただし遅い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「SDカードの新しい規格SD 8.0が完成したらしい。端子が2列から3列になり、SD ExpressでPCI-Expressを喋る時に2レーンで通信できるようになる。これに加えてPCI-Express 4.0に対応することで、従来のSD Expressの約4倍となる4GB/sでのデータ転送を実現する https://t.co/rUkaSR9Ij6」 / Twitter
SD 8.0 Specification To Allow 4GB/s Transfer Rates By Leveraging PCIe 4.0 - Phoronix
FadisさんはTwitterを使っています 「SD 7.1のSD Expressは帯域を最大まで使えるデバイスが登場すると「お前のSATA SSDはSDカードより遅い」が発生するデバイスだったけど、SD 8.0のSD Expressは「お前のNVMe SSDはSDカードより遅い」が狙えるデバイスになるのか…」 / Twitter
SDカードのSecure Eraseの方法 (Linux向け)
FadisさんはTwitterを使っています 「Linux 5.14では更にSDカードのPower-off通知にも対応するらしい。SD 4.0以上に対応するSDカードはもうすぐ電源が落ちるのにガベージコレクションを始めてしまうような事態を避ける為にホストからの「もうすぐ電源切るぞ」通知を受け取るようになっている」 / Twitter
Linux 5.14 Bringing SD Cache Ctrl Support, Other SD Card Support Improvements - Phoronix
FadisさんはTwitterを使っています 「Linux 5.14からSDカードのキャッシュ制御に対応するらしい。SD 6.0以上に対応するSDカードはカード側にキャッシュメモリを持っている事があり、有効にするとflushを明示的に要求されるまで書き込み要求がキャッシュにかけた時点で完了するようになる https://t.co/T29IZPjlc6」 / Twitter

SATA

HDD

SATA I

Samsung HM020GI 1. Specification Summary

SATA II

Toshiba MK6034GSX Specs - CNET

512

Toshiba MK3276GSX Specs - CNET
Amazon | 東芝 512セクター 2.5インチ SATA接続ハードディスク 5400rpm 320GB MK3276GSX | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

3.5インチHDD、内蔵と外付けで消費電力を計測しその差を確認してみた - みこぼね
東北大と京大、HDDの超高密度化が期待できる反強磁性体スピントルク磁気メモリを実証 - PC Watch
【福田昭のセミコン業界最前線】HDD出荷金額は監視や仮想通貨特需で3年ぶりに拡大も、2.5インチは終息へ - PC Watch
Seagate、HDDで480MB/sを実現するデュアルアクチュエータ技術をデモ - PC Watch
Seagete、HDDの速度を倍増させる「マルチアクチュエータ」技術 ~1ドライブで並列処理が可能に - PC Watch
Fadisさんのツイート: "SSDの陰であまり注目される事はないけど、ハードディスクもじわじわ速くなってて、Intel SSDが最初に注目された頃は120MB/s出せるハードディスクは優秀だったのに、今では200MB/s超えてきたりするんだよな"
Fadisさんのツイート: "NVMeが3000MB/sとかやってる前では誤差のようなものかもしれないけど"
「2019年はPC用HDDの販売数が半減する」とHDD部品で世界シェア1位の日本電産が予測 - GIGAZINE
ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE
19万台超のHDD運用データから算出された故障率レポートの2021年Q3版をBackblazeが公開 - GIGAZINE
HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは? - GIGAZINE
Western Digital、20TBのOptiNAND HDDを11月に出荷|自作.com
シーゲイト、PCIe NVMeインターフェイス搭載のHDDを実演|自作.com
30TB以上のHDDの東芝詳細計画|自作.com
SeagateHDDのBackblazeの2021年の故障率データ|自作.com
東芝:1年以内に26TBのHDD、5年以内に40TBのHDD|自作.com
Seagate、CMR仕様の20TB HDD「IronWolf Pro 20TB」「Exos X20 20TB」 | マイナビニュース
昭和電工、HDDの次世代記録技術「MAS-MAMR」対応メディアを開発 - 最大30TB以上へ | マイナビニュース
故障率が最も低かったハードディスク、どのメーカーの6TBモデル? | TECH+
ASCII.jp:3.5インチHDD過去最大容量となる20TBモデル「ST20000NE000」が発売
伸びしろあったHDD、東芝が新マイクロ波アシストで30TBを射程に | 日経クロステック(xTECH)

Advanced Format

512e

MQ04AB*** Series | 東芝 半導体&ストレージ製品
Amazon | 東芝 HDD MQ04ABFxxx シリーズ ( 2.5インチ / SATA 6Gbit/s / 1TB / 5400rpm / 128MiB / 7mm / 512e エミュレーション ) MQ04ABF100 | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

4K

MG04ACA**** シリーズ | 東芝 半導体&ストレージ製品
Toshiba MG04ACA500A Specs - CNET
Amazon | Toshiba mg04aca500 a 3.5インチ5tb SATA 6 Gb / s 7.2 K RPM 128 MB 4 KNTomcatベア | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
MARSHAL/マーシャル 東芝製 3.5インチHDD 4Kネイティブモデル Ma series 5TB 7200rpm MG04ACA500ABOX [1523286254-21942] - 39,794円 :
東芝(TOSHIBA)製HDD_リテール品_MG04ACAxxxABOXシリーズ

Advanced Format - Wikipedia
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブの違い - ぼくんちのTV 別館
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行|Seagate
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
アドバンスト・フォーマット | 東芝 ストレージ&デバイスソリューション社
Advanced Formatの識別方法 - ハードディスク入れ替え13 FAQ
ASCII.jp:Windows 8は2.2TB超の大容量HDDにどう対応しているのか? (2/3)|塩田紳二のWindows 8 IN-N-OUT
Windows での 4K セクターのハード ディスク ドライブに関するマイクロソフトのサポート ポリシー
【HDD】4Kセクタって何?/4Kセクタの制限事項は?/Windows7でバックア...

SSHD

Seagate Laptop Thin SSHD ST500LM000 Specs - CNET
Amazon | Seagate 2.5inch Hybrid Laptop Thin SSHD ST500LM000 SATA 6Gb/s 500GB 5400rpm 64MB AF | SEAGATE | 内蔵ハードディスク 通販
ゲーム1本60GB!大容量ゲーム時代に使う「SSHD」 ベンチマークにでない「体感」を試してみた - AKIBA PC Hotline!

SMR

Seagate Mobile ST1000LM035 Specs - CNET
Seagate Mobile ST2000LM007 Specs - CNET
Amazon | [SEAGATE] シーゲート 2.5inch HDD 1TB SATA 6.0Gbps 5400回転 7mm厚 128MBキャッシュ ST1000LM035 [並行輸入品] | Mobile HDD | 内蔵ハードディスク 通販
価格.com - SEAGATE ST2000LM007 [2TB 7mm] 価格比較
SMR(瓦書き方式)のHDDは避けるのがオススメ | Kanon好きさんの掲示板 | マイネ王
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
最安の8TB HDD「ST8000AS0002」をテスト、SMR技術を再確認 - AKIBA PC Hotline!
“10TB時代”に向けた最新HDD技術「SMR」のポイントを Seagateに聞いてみた - AKIBA PC Hotline!
【福田昭のセミコン業界最前線】10TBの大容量HDDを実現した「SMR技術」登場の背景 - PC Watch
SMR な HDD で記憶域パリティ備忘録
価格.com - 『このHDDはSMRです』 SEAGATE ST2000LM007 [2TB 7mm] のクチコミ掲示板
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
新技術『SMR』が可能にした低コストで省スペースな大容量HDD - Seagate Desktop HDD(8TB)のレビュー | ジグソー | レビューメディア
ASCII.jp:ヘリウム充填HDDの8TB「WD80EFZX」を触ってみた (1/3)|最新パーツ性能チェック
HDDのSMR技術とはなにか:T43p SATA化ブログ改めパソコン色々ブログ:So-netブログ
個人的にSSDを信用していない理由、そしてSMRが好きではないという理由。 – ひねもす庵
DEIM.pdf
WDの技術者ら、瓦記録方式HDDの開発で文部科学大臣賞を受賞 - PC Watch
なかのん&マジックさんのツイート: "ランダムアクセスのテストが雑すぎて信頼できない。SMRは最初のArchiveHDDで(覚悟してた以上に)痛い目にあってるんで、抵抗あるんだよな。 https://t.co/KPI5PNCY7R"
最新HDDはどれだけ進化したのか、2011年の大人気モデルといろいろ比べてみた - AKIBA PC Hotline!
ネットの論客にファイナルアンサー!? ~「もしかして……SMR!?」。最新2TBプラッタHDDをとことんイジメる - PC Watch
第556回 SMR方式のHDDでも実用できるか検証する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE

M.2

【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
品川研究室@学生募集中さんのツイート: "AHCI は 1.3.1 までしか規定されてませんが、SATA 3.2 で 20 Gbps が定義されたので、そこで AHCI の拡張も定義されていたりするんじゃないですかね。仕様書が非公開で分かりませんが。… "
品川研究室@学生募集中さんのツイート: "AHCI の ISS は 4 ビットあるので、いかにも 0100 あたりが使われてそうです。BitVisor でフックして調べてみると面白いかもしれません。… "
hiyohiyoさんのツイート: "SATA の規格書を読んでも AHCI + PCIe の組み合わせの速度を判定する機能がないようなので、CrystalDiskInfo では、PCIe のリンク速度とバージョンを表示しています。 1000MB/s を軽く超えるものの ATA コマンドでは判定する術がなさそうで・・・ 早く滅び去って欲しいところです。… https://t.co/9IJVXkUT80"
OS自作 uchan_nosさんのツイート: "なるほど。実際に、コントローラのレジスタでは判断できない、規格無視した速度のデバイスが存在するんですね。… "
hiyohiyoさんのツイート: "コントローラーのレジスタに直接アクセスするというよりは、IDENTIFY DEVICE コマンドの結果は SATA/600 対応なので、判別できないというのが正確ですね。 何らかの方法はあるのかもしれませんが・・・… "
OS自作 uchan_nosさんのツイート: "なるほどー。やはり、ソフトウェアには適当な値を見せておいて、物理層ではその速度より速い通信をしてしまう、という仕組みなんですねえ。… "
hiyohiyoさんのツイート: "手元にも 2 枚ほどありますが、過渡期の製品って感じで使い道は限られますねぇ~ 現在は、 M.2 + NMVe に統一されているのであまり気にする必要はないかと思います。 ただ、自作 OS 的には ATA コマンドで制御できる(既存OSと互換性あり)のは便利ですね。… https://t.co/xidMsAaGB6"

SATA Express

ASCII.jp:SATA3.2の仕様策定で見えてきたSATA ExpressとM.2 (1/3)|ロードマップでわかる!当世プロセッサー事情
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中|COMPUTEX TAIPEI 2014レポート
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER

シリアルATA - Wikipedia
Serial ATA - Wikipedia
HotSwap!
Transcend SSD370S Specs - CNET
SATA-III 6Gb/s SSD220
製品の仕様情報 - Intel® SSD 330 Series (180GB, SATA 6Gb/s, 25nm, MLC)
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Overview - CNET
2.5/3.5インチHDD 各1台を5.25インチベイに簡単増設|オウルテック
玄人志向 | SATA3I2-PCIe:Marvell社製 88SE9128搭載 SATA3x2 インターフェースボード(PCI-Express x1接続)
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 - サンワサプライ株式会社
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)|本命が続々登場!! mSATA SSDに大注目

NVMe

PC Watch

WD、メインメモリのように使えるNVMe SSD ~仮想メモリでメモリ容量を8倍に拡張 - PC Watch
【イベントレポート】ついに4GB/s超え。世界初のPCIe 4.0対応SSDコントローラ登場 - PC Watch
SSD価格、2019年末までに1GBあたり10円台まで下落の見込み ~SATA SSDとの価格差解消でPCIe SSDが主流に - PC Watch
【平澤寿康の周辺機器レビュー】2TBに到達したSamsung 「970 EVO Plus」SSD。1TBより高速 - PC Watch
Samsung、書き込みも3GB/s超えのNVMe SSD「970 EVO Plus」2TBモデル - PC Watch
【イベントレポート】1,500万ドル超を投じて9カ月で完成させたPhisonの世界初PCIe 4.0 SSDコントローラ - PC Watch
【イベントレポート】Realtek、NVMe SSDのDRAMキャッシュ必要量を4分の1に低減 - PC Watch
【イベントレポート】ADATA、Silicon Motion製コントローラ採用のPCIe 4.0 SSDを展示 - PC Watch
【イベントレポート】GIGABYTE、リード5GB/s超えのPCIe Gen4接続SSD ~実測値15GB/sの超高速PCIeカードSSDも - PC Watch
【イベントレポート】PCIeの高速化と3D NANDの低速化による性能ギャップがSSDで顕在化 - PC Watch
【イベントレポート】Samsung、リード最大6,500MB/sのPCIe Gen4対応M.2 SSD「980 PRO」 - PC Watch
Samsung、PCI Express 4.0対応SSD「980 PRO」を10月中旬に発売 - PC Watch
【Hothotレビュー】7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch
Marvell、14GB/sを実現した業界初のPCIe 5.0対応SSDコントローラ - PC Watch
Phison、PCIe 5.0 SSD向け新コントローラ。採用製品は2022年後半に登場 - PC Watch
Phison、10,000MB/sを実現したゲーミング向けPCIe 5.0 SSDコントローラ - PC Watch
Micron、世界初の176層QLC NAND搭載NVMe SSD - PC Watch
【ニュース・フラッシュ】TEAMGROUP、PCI Express 5.0対応SSDを予告 - PC Watch

マイナビニュース

Phison、PCIe 5.0に対応する超高速SSD用のコントローラー「PS5026-E26」など発表 | マイナビニュース
PCテクノロジートレンド 2022 - Flash Storage編 (1) | マイナビニュース

自作.com

サムスン、PCIe 5.0 SSDの発表を予告:2022年第2四半期に登場|自作.com
サムスンもSSDのパーツを交換|自作.com

自作ユーザーが解説するゲーミングPCガイド

Kioxia、PCIe Gen 5.0 SSDプロトタイプの性能を発表 - Gen 4.0 SSDと比較して最大14,000 Mbpsの読み込み速度と約2倍のIO性能を実現 - 自作ユーザーが解説するゲーミングPCガイド
Phison社の次世代コントローラ「E26」を搭載したPCIe Gen 5.0 SSDを2022年に出荷開始、最大16GB/sの高速化を実現 - 自作ユーザーが解説するゲーミングPCガイド
Phison、次世代PCIe Gen5、Gen6、Gen7 SSDについて語る - アクティブ・クーリング・ソリューション、L4キャッシュ、新しいインターフェイス、最大14WのGen5および28WのGen6 TDP - 自作ユーザーが解説するゲーミングPCガイド
アクティブM.2 SSDクーリングソリューションは、次世代PCIe Gen 5 SSDに非常に有効です。 - 自作ユーザーが解説するゲーミングPCガイド
Phison、PCIe Gen 5 NVMe SSDの高温を再確認、コントローラとアクティブ冷却の要件は最大125℃に制限 - 自作ユーザーが解説するゲーミングPCガイド

北森瓦版

北森瓦版 - Marvell PCI-Express 5.0に対応するNVMe SSDコントローラを発表
北森瓦版 - Koxia PCI-Express 5.0 x4対応のSSDを試作―Sequential Readは14GB/sに
北森瓦版 - Phison PCI-Express 5.0に対応するE26コントローラを2022年に出荷予定
北森瓦版 - PCI-Express 5.0接続のSSDがメインストリームに降りてくるのは2024年?

Twitter

なかのん&マジックさんのツイート: "NVMe SSDに関しては、自作PCで色々と試してる身からすると、ノートPCが薄型になることとと、「単純な」ファイルコピーが高速になるぞってこと以外に、2.5インチSATA SSDからのメリットが全く無くて、色々とアレです。… "
なかのん&マジックさんのツイート: "NVMe SSDが高速で良いって言ってる人、たぶんベンチマークしか見てないか、単純なファイルコピーとかが日常作業で多い人だと思う。"
なかのん&マジックさんのツイート: "Windowsでしか比較検証してないんで、他のOSだと知らない。"
一ノ瀬 いろはさんのツイート: "NVMe SSD の評価、私のTL だとサーバー用途に使う基準で話す人が多すぎてよくわからない感じに。 とりあえず熱がしんどいらしい。"
なかのん&マジックさんのツイート: "放熱まではちゃんと検証できてないなぁ。あくまでも、860EVOについてる、ヒートシンクを兼ねたあのシールとのテストだけ。ただ、NVMe SSDにはファンの風を直接当てるようにしてて、空冷レベルではそれなりにやってる構成で確認してる。"
Sadayuki Furuhashiさんのツイート: "2017年の資料だけども、NVMeは12us程度のレイテンシがあるのに対し、NVMDIMM(-N)は3us。 https://t.co/MQv4ABzgWB"
Title of Presentation
Kimihiro Nonakaさんのツイート: "へぇ | Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ https://t.co/DHM3MX2kgt"
Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ
Fadisさんのツイート: "我が家のNVMeにはCMBも仮想化支援も無いことが明らかになった。かなしい"
Kazuo Moriwakaさんのツイート: "NVMe Firmware: I Need Your Data – Technical Blog of Richard Hughes https://t.co/afGViyrKEt Linux上でファームウェア更新基盤つくってる人がNVMeデバイスのID情報がほしいらしい。NVMeがついたLinux環境持ってる人は記事中にあるコマンドを打ってID情報送ってあげるとよさそう。"
Fadisさんのツイート: "最近のNVMe SSDがどのメーカーも3400MB/sとかその辺で並び始めてるの、あれPCI-Express Gen3 x4の帯域の限界が近いんだよな。で、何でもっと太いPCI-Expressにしないかというと、NVMe SSDの一般的なフォームファクタになっているM.2のM keyからはPCI-Expressが4レーンしか出ていないんだ。"
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "Reference Guideを入手してから約半年、ついにIntel RST NVMe対応することができました! 動作確認ができたら正式版としてリリースします。"
Reference Guide Intel RST - Google 検索
Fadisさんのツイート: "cpの実装が残念でコピーが遅いという話。一度に読み書きするサイズが小さすぎる、一度しか読まないデータをpage cacheに乗せている、分散fsなら同時に複数箇所の読み書きをした方が良い、デバイスがコピー用の仕組みを持っているかも等が指摘されている(リンク先有料記事) https://t.co/onJY1Wtq8p"
Fadisさんのツイート: "そういえば、良いNVMeだとデータをメインメモリに持って来ずにブロックのコピーが出来るよね"
FadisさんはTwitterを使っています 「Fusion-io最速信仰はあれに救われた人間の多いソシャゲ畑には根強く残っているんだよな。酷い場合あれを作っていた会社はとうの昔に無くなっていることを知らない」 / Twitter
FadisさんはTwitterを使っています 「NVMeがコントローラの気持ちを考えて使わないと性能ガタ落ちなのも問題をややこしくしている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なおすぐに思いつくのは、熱とSLC的キャッシュ領域とIOサイズあたりですが、他にも変な挙動とかありましたっけ?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu 単位時間あたりに捌けるリクエスト数は多いですが、1リクエストあたりのレイテンシが大きいです。この為ioDriveからNVMeに移行するアプリケーションでは非同期I/Oで休みなくリクエストを投げ続ける事がより重要になります」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ それは知りませんでした。参考になります。 (そのレイテンシ差は、本質的には何に起因するのかなぁ…)」 / Twitter
FadisさんはTwitterを使っています 「なんかナウめのNVMe SSDが既に「PCI-Express 4.0では帯域が足りない!!」みたいな性能で並び始めてて激しい」 / Twitter

SSD市場の主流に躍り出るNVMe SSDストレージ、なお残る課題は? - TechTargetジャパン サーバ&ストレージ
ASCII.jp:いまさら聞けないIT用語集 RAIDのボトルネックを解消するVROC (1/3)|ロードマップでわかる!当世プロセッサー事情
NVMe SSDの外付けケースもカバー ~ディスク健康管理ツール「CrystalDiskInfo」v7.7.0 - 窓の杜
第5世代V-NANDの優位が歴然! PCI Express SSDの新定番「970 EVO Plus」の爆速性能を確かめる(ITmedia PC USER) - Yahoo!ニュース
M.2 SSDをPCIeスロットから交換可能にするリムーバブルケース「ICY DOCK ToughArmor MB840M2P-B」レビュー - GIGAZINE
Crucialの新型NVMe SSD「P5」がデビュー、最大2TBまで計4製品 - AKIBA PC Hotline!
won't fix: キオクシアのNVMeを買ったらハマった
DRAMレスとHMB採用でコスト競争力を高めたNVMe SSD「Samsung SSD 980」を試す(1/3 ページ) - ITmedia PC USER
NVMe 2.0、「未来のストレージの需要に対応」:NVM Expressが発表 - EE Times Japan
停電などの電源遮断時にデータが消えてしまうSSDとそうでないSSDが存在する - GIGAZINE

NVMe 1.1

MZVPV128HDGM - Client SSD | Samsung Semiconductor Global Website
Samsung Electronics Now Producing Industry’s First M.2 NVMe PCIe SSD for the PC Market – Samsung Global Newsroom
Samsung、世界初のNVMe対応M.2 SSD「SM951」を量産開始 ~PCI Express x4(3.0)対応で最大2,260MB/sec - PC Watch
価格.com - サムスン SM951 MZHPV128HDGM スペック・仕様
コストパフォーマンスが良いのでは? - SM951 256GB M.2 PCIe Gen3 8Gb/s x4 SSD MZHPV256HDGLのレビュー | ジグソー | レビューメディア
[画像] NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~(5/7) - AKIBA PC Hotline!
リード2GB/s超えのM.2 SSD「SM951」に安価なNVMeモデルが登場 - AKIBA PC Hotline!

NVMe 1.2

SSD 960 EVO M.2シリーズ | Samsung SSDシリーズ
【詳報】Samsungの新SSD 960 PRO/EVOは10月発売。価格も明らかに - PC Watch
価格.com - サムスン 950 PRO M.2 MZ-V5P256B/IT スペック・仕様

NVMe 1.3

【レビュー】Samsung、第3世代のNVMe/PCIe SSD「970 PRO」、「970 EVO」 - PC Watch
Samsung、読み込み3,500MB/sのNVMe SSD「970 EVO」、「970 PRO」 - PC Watch
Silicon Motion、読み書きとも3GB/sを実現するNVMe SSDコントローラ - PC Watch
【イベントレポート】Silicon Motion、PCIe 3.0 x4/NVMe 1.3対応SSDコントローラ新モデルを展示 ~搭載製品は2017年第3四半期以降に登場予定 - PC Watch
64層3D NANDで生まれ変わった、Intelの最新NVMe SSD「SSD 760p」検証 - エルミタージュ秋葉原
価格.com - インテル SSD 760p SSDPEKKW256G8XT スペック・仕様
製品の仕様情報 - Intel® SSD 760p Series (256GB, M.2 80mm, PCIe 3.0 x4, 3D2, TLC)
Intel® Solid State Drive 760p Series Product Brief
ASCII.jp:M.2 SSDの新定番か!?  安くて速い「Intel SSD 760p」 (1/2)|最新パーツ性能チェック
東芝メモリ、約3GB/sのライト性能を実現した業界最速クラスのSSD - PC Watch
【レビュー】Samsung、前モデルから50%以上高速化したM.2 SSD「970 EVO Plus」 - PC Watch
Samsung、最新V-NAND採用で高速化したNVMe SSD「970 EVO Plus」 - PC Watch

NVMe 1.4

NVM Express Set for Busy 2018 | EE Times

NVMe 2.0

FadisさんはTwitterを使っています 「NVMeの最新の規格NVMe 2.0が出たらしい。2.0ではNamespaceにTypeが追加され、Zoned Namespaceのような通常のブロックデバイスとしてアクセスしない領域を同一のデバイスに混載できるようになる他、コントローラの先に繋がっているのがHDDだった場合の為の機能が追加される https://t.co/rxuuQo9ZMN」 / Twitter
NVMe 2.0 Released As A Library Of Specifications With ZNS, Simple Copy + More - Phoronix
FadisさんはTwitterを使っています 「NVMe 2.0ではZoned Namespace(ZNS)とKey-Value(KV)がNVMeの規格の一部に加わる。これらは従来のブロックデバイスと異なる機能を持ったストレージを表現するもので、ZNSはNANDフラッシュメモリの制約をより直接ソフトウェアに見せる事でソフトウェアに工夫を要する代わりにコントローラの負担を軽減する」 / Twitter
FadisさんはTwitterを使っています 「KVはSSDのコントローラが行う処理の本質がKey-Value Storeである事に着目して、ハードウェアをそのままKey-Value Storeとして使ってしまおうという物。一度ブロックデバイスに見せかけて、ブロックデバイスの上にソフトウェアでKey-Value Storeを実装する事によるオーバーヘッドの回避を目的とする」 / Twitter

NVMe/TCP

FadisさんはTwitterを使っています 「linux-5.14でカーネルにNVMe/TCP Offloadをサポートする為のパッチが入りそうらしい。NVMe/TCPはNVMeをTCP/IP上で喋る事でリモートのマシンからNVMeストレージを読み書きできるようにする規格。この変更でNICが対応している場合NVMe/TCPの処理をNICに丸投げするようになる https://t.co/DL6Llrcf5u」 / Twitter
NVMeTCP Offload Bits Coming For Linux 5.14 To Lower CPU Utilization, Better Latency - Phoronix
FadisさんはTwitterを使っています 「NVMe/TCPは素直にソフトウェアで実装するとストレージとネットワークに対してCPUが遅すぎて性能が出ないが「TCPスタックとNVMe/TCPを喋る為の実装を丸ごとハードウェア化すれば性能が出る!」というクレイジーなNICがMarvellから出ており、これを使うとCPU負荷とレイテンシを大きく改善出来るらしい」 / Twitter

Fake RAID

Linuxキーワード - フェイク・レイド:ITpro
One Foot: CentOS 7 で Fake RAID を使用した RAID 構成
穀風: Ubuntu で FakeRAID/1
RAID - ArchWiki

FDD

sakohitiさんのツイート: "え、ふとアクセスしたら、ワイ・イー・データの事業統合に伴う合併で、会社と一緒にHPも消えちゃうのか・・・   しれっと3.5インチFDD製品の仕様pdf類が転がっていて、検索からならアクセスできたり、カードリーダーのドライバ類も置いてあったりと、重宝していたのですが。 orz… https://t.co/uni4AtUXOD"
sakohitiさんのツイート: "そういえばYD-702Dのページ https://t.co/PA9DxCeD4W (なぜかYD-702Jで検索すると出る)から拾える仕様書のpdfが2つと、普通に検索すると出てくるYD-702J-6639Dの仕様書のpdfの合計3つも回収対象ですね。 FDDメーカーの公式サイトに残っているほぼ最後の日本語資料だっただけに、これは惜しいです。"
sakohitiさんのツイート: "ちなみにドライバ類へは、トップページからのリンクが切られたまま放置されている情報マルチメディア事業のページから行く必要があるので、メモとして貼っておきます。 https://t.co/Q6TFl9KXNM"
マルチメディア_Internal Half-inch FDD_株式会社 ワイ・イー・データ
製品仕様書
528028.PDF
Z529020_A2.PDF

にわかに“ゼロSATA”構成が人気を集めている理由 (1/4) - ITmedia PC USER
Latency で見る Intel 3D Xpoint SSD - Fixstars Tech Blog /proc/cpuinfo
QLC NANDのtRを調べる - Fixstars Tech Blog /proc/cpuinfo
SSDの性能を比較する上で考慮すべき3つのポイント - GIGAZINE
HDD・SATA SSD・NVMe SSD・Optane SSDで「レイテンシ」にどれほど差があるのか? - GIGAZINE
どのSSDが壊れやすいのか「SSD故障率のメーカー・モデル別統計データ2021年版」をBackBlazeが公開 - GIGAZINE
yutkatさんはTwitterを使っています 「@uint256_t 少なくともノートPCはした方がいい認識ですね(盗難のリスクがどうしてもあるため)。 LUKS暗号化でなくても、PCが自己暗号化ドライブ(OPALドライブ)搭載だとそちらで代用することもできると思います。」 / Twitter

LAN

Realtek

玄人志向 | GbE-PCIe4:Realtek社製 RTL8168搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch
【ニュース・フラッシュ】玄人志向、Realtek製コントローラ採用の2.5GbE対応拡張カード - PC Watch
玄人志向 | GBE2.5-PCIE:Realtek RTL8125BG搭載 2.5GBase-T イーサネットボード (PCI Express接続)
3500円で2.5GBASE-Tへアップグレード、プラネックスのPCIe接続アダプター「GPE-2500T」を試す【イニシャルB】 - INTERNET Watch
4千円を切る2.5GbE対応PCIe LANカード、プラネックスが発売 - INTERNET Watch
4千円切りの2.5GBASE-T対応LANカード、玄人志向が発売 - INTERNET Watch
第693回 Ubuntuでも2.5GbEを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Linux向け2.5Gbイーサネットアダプタの実効速度の検証結果は? - GIGAZINE
複数ポート搭載で高速&冗長化の2.5GBASE-T LANカード、プラネックスが発売 - INTERNET Watch
2.5Gbps最安を連発! プラネックスの新8ポートスイッチングハブ「FX2G-08EM」【イニシャルB】 - INTERNET Watch
プラネックス、2.5GbEを2基/4基搭載したチーミング対応拡張カード - PC Watch
Realtek
SD-PEGLAN-S2(ジーノ2世)
ETG3-PCI | LANアダプター | IODATA アイ・オー・データ機器
LANアダプタ|LGY-PCI-TXD

Marvell(Aquantia)

第706回 Ubuntuでも10ギガ(10Gbps)インターネットを体験してみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
企業 - ニュースルーム - マーベルが Aquantia 社の買収を完了 - マーベル
Aquantia Corporation - Wikipedia
10GbE界隈が動くか? 格安10GbEチップメーカーのAquantiaがMarvellに買収される | がじぇっとりっぷ
Marvell、ネットワーク技術のAquantiaを4億5,200万ドルで買収 - エルミタージュ秋葉原
AQUANTIA AQC107 NIC コントラーチップ・ドライバー入手方法・ダウンロード方法 | 自転車通勤とプチ・オーディオなあれこれ
AQUANTIA製の10Gbps対応NIC「AQC-107」を使っていると突然切断やデバイスを見失う現象が頻発する #Aquantia #AQtion #AQC107 #NIC #10Gbps │ Recon-ReviewDays
PCでも使えるQNAPのNAS用10GbEカード「QXG-10G1T」が発売 - AKIBA PC Hotline!
6G→9Gbpsに! 10GbE NICで遅いならUEFIでPCIeリンク幅を固定しよう【イニシャルB】 - INTERNET Watch
10GbE対応NICとスイッチで5万円台! ASUS「XG-C100C」とネットギア「XS505M」で10GbE環境を構築【イニシャルB】 - INTERNET Watch
1万5千円を切る10GBASE-T LANカード発売、ASUS「XG-C100C」 -INTERNET Watch
1.5万円の10GBASE-T対応LANカード「XG-C100C V2」、ASUSが発売 - INTERNET Watch
1万円を切る10GBASE-T対応LANカード、LR-LINK「LREC6860BT」、アユートが販売 - INTERNET Watch

Intel

インテル® 製品の仕様情報
インテル® 製品の仕様情報
インテル® 製品の仕様情報
インテル® 製品の仕様情報
インテル® 製品の仕様情報
インテル® PRO/100 デスクトップ・アダプター
インテル® PRO/1000 MT デスクトップ・アダプター・シリーズ
インテル® PRO/1000 PT デスクトップ・アダプター・シリーズ
インテル® ギガビット CT デスクトップ・アダプター シリーズ
製品の仕様情報 - Intel® Ethernet Converged Network Adapter X540-T1
製品の仕様情報 - Intel® Ethernet Server Adapter I210-T1
製品の仕様情報 - ギガビット・イーサネット・アダプター
[アドバイザリ]VMware ESXi環境においてIntel製X550-AT2ネットワークアダプターの特定ixgbenドライババージョンを使用しSR-IOVを有効にした場合にゲストOS上の仮想ポートにVLAN Tag設定後のゲストOSからの通信制約について:日立
北森瓦版 - Intel 低価格な2.5Gbps Ethernet PHYであるi225-V―“Foxville”を準備中
I225 2.5GbeのZ490を含むIntel 400シリーズのチップセットには、ネットワークのバグがありますが、2020年下半期にされます。 - 自作ユーザーが解説するゲーミングPCガイド
Intel、「Killer NIC」で知られるRivet Networksを買収 - PC Watch
ホ タ テ ラ スさんはTwitterを使っています 「天下のいんてりゅさんでも、phy の ip が買い物だったりするのかなぁ」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 元々昔からPHYの半分は Marvell ほぼそのままだし。igp と言われるやつが独自なのかどこかから買ったかは不明。82578 は Attansic (-&gt;Atheros -&gt; QCA)です。MII OUI が Attansic そのもので、最初はボケて他社の OUI 使ったのか と思ったのですが、ベンダ依存レジスタ部分が AR8021 と同一。10G(文字数」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 10G は、ixgbe ドライバ内で TN と言われてるのは OUI が Teranetics だけど、これは外付け PHY かな。」 / Twitter
msaitohさんはTwitterを使っています 「Intel I225の不具合が話題ですが、どういう問題を議論しているのかよくわかんないけどPHY作るのがヘタクソ(というか他からIP買ってそれが元々ダメなのかそれとも改造した時にヘマこいたのか・・・)なのは昔からですよね。僕はまだI225持ってません。 ところでこれは何ですか? https://t.co/WElAT06PEh」 / Twitter
dpdk - Data Plane Development Kit
msaitohさんはTwitterを使っています 「低消費電力にしないといけなくて多方面で改善しないといけなくて大変なのはよくわかる(てゆーかドライバ書く側も大変なのよん)。」 / Twitter
msaitohさんはTwitterを使っています 「てゆーか、2.5G とか 5G が ethtool から見えないドライバを長期放置しておいておめーらどんなテストしt(以下略」 / Twitter
IntelがIPUの具体的な製品計画を発表 Arm CPUを搭載したMount Evansなど3製品を投入 - クラウド Watch
Intel NICを搭載したLinuxサーバのLLDPが正しく動作しない問題 - show log @yuyarin

ケーブル

LANケーブルの正しい使い方 - LANケーブルの信号線がねじられている本当の理由:ITpro
LANケーブルの正しい使い方 - LANケーブルは規格値を超えたスピードで通信したらどうなる?:ITpro
【特集】よく分かるLANケーブルの選び方。CAT.6でも10Gbps対応可能。CAT.8まで速度差を検証 - PC Watch

スイッチ

スイッチ|CentreCOM GS908M/GS916M/GS924M
ギガビット8ポート アンマネージプラス・スイッチ(VLAN, QoS) GS108E | 9,500 円 | ネットギア【NETGEAR】
Tag VLAN を利用の環境でスイッチの管理画面にアクセスできません。 《対象機種》 GS108Ev3(GS108E-300JPS) GS108PEv3(GS108PE-300AJS) | ネットギア【NETGEAR】
【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch
LANケーブルの入れ替え不要、2.5/5GBASE-T対応スイッチがバッファローから - AKIBA PC Hotline!
DSAS開発者の部屋:Brocade VDX NOS 7.0 は Python が動く!
BSH-10G08 仕様 | スイッチ | IODATA アイ・オー・データ機器
SODA Noriyukiさんのツイート: "リピーターHUBって、100BASE-Tまでの製品しかないと思ってた、驚いた>FXG-05RPT でもなんか怪しい挙動する→ https://t.co/MHl7ah6Zdy ので、実は物理的にはリピーターじゃなくてブリッジでで、学習機能を省いて全ポートにミラーリングしてるだけだったりして?"
リピーターハブ(ネットワークタップ)|FXG-05RPT|PLANEX
IzNoMaさんのツイート: "今回いろいろ見てて気がついたんですけど、今時のGbEのばかHUBって実はばかじゃなくて、プリアンブルを再生成するんですね。プラネックスのばかハブ通すと6だったのが7オクテットに戻るという不思議。そんなものなの?"
Fadisさんのツイート: "スイッチングハブなら他所のMACアドレス宛てのパケットは見えないというのは全く期待できなくて、一度もパケット受信した事がない宛先への通信は全ポートに流すし、受信した事があってもテーブルを溢れさせて忘れさせるのは割と簡単だったりする"
ASUS、2基の10Gigabit Ethernet搭載スイッチングHub - PC Watch
バッファロー、約24,000円で全ポート2.5Gbps対応の5ポートHub - PC Watch
手のひらサイズで爆速10Gbps&冗長電源まで備える格安ルーター「MicroTik CRS305-1G-4S+IN」レビュー - GIGAZINE
エレコム、5ポート全てが2.5G対応のファンレススイッチングHub - PC Watch
1万円を切る2.5GbE 5ポートスイッチ「FX2G-05EM」、プラネックスが発売 - INTERNET Watch
ついに2.5Gbpsスイッチが税込1万円以下! 熱対策も万全なプラネックス「FX2G-05EM」【イニシャルB】 - INTERNET Watch
バッファローが10G/2.5Gをコモディティ化! 2万円切りのスイッチや、3.4万円で10G×2ポート+2.5G×4ポートのスイッチを試す【イニシャルB】 - INTERNET Watch
10GbE×2+2.5GbE×4で3万円以下! ホームネットの高速化に最適なQNAPのお手軽スイッチ「QSW-2104-2T」【イニシャルB】 - INTERNET Watch
【ニュース・フラッシュ】放熱性を高めた2.5GbE対応の8ポートスイッチングHub、プラネックスから - PC Watch
1万7千円台で8ポートの2.5GbEスイッチ「FX2G-08EM」、プラネックスが発売 - INTERNET Watch
第665回 ホワイトボックススイッチのインストール環境であるONIEを仮想マシンに構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
サンワサプライ、全ポート2.5GbE対応の5ポート/8ポートスイッチングHub - PC Watch
全ポート2.5GBASE-T対応、8/5ポートの強力マグネット搭載スイッチングハブ、サンワサプライが発売 - INTERNET Watch

PLC

【トピック】コンセントに挿すと通信できる「PLC」、再び注目の理由とは? 電波法改正で新たな用途- 家電 Watch
Kazuho OkuさんはTwitterを使っています 「HD-PLC、なんでUDPよりTCPが遅くなるんだろ、って思ったんだけど、L2で壊れたパケット「だけ」再送するのか。これがパケットの到達順を破壊しちゃうんだろうか。だとすると、到達順を利用する再送制御との相性悪そう https://t.co/8OJS94NLh5 https://t.co/jdMZ59SlmE」 / Twitter
高速電灯線通信(HD-PLC)「どこでもリンク《 - hdplc_white_paper_complete.pdf
Kazuho OkuさんはTwitterを使っています 「転送順序を維持するために無駄なバッファリング行わないという方針だとして、それ自体は技術的に正しい。エンドポイントの再送制御やってる側としては、タイムベースの再送制御に切り替える仕組みはあるので、理オーダの頻度観測すればいいんだろうか。実機がほしいなぁ」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho communication protocol specialist の血が騒ぐ?🤭」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕は詳しくないですけど、ロス率が高い区間があるとして、 * その区間独自に再送と順序性回復を行うか * 再送も順序性回復も行わないか * 再送だけをやるか みたいな話は、業界的にも論争があるんですよ。これ、ちゃんと標準化してほしい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕の朧げな知識では、 * 無線は割と再送と順序性回復の両方をやってる。遅延にセンシティブなアプリ書いてる側としては、これはやめてほしい * 両方の回復をL3でやろうという標準化提案は昨年あったが、反対意見が強く頓挫した (cf. LOOPS BoF @ IETF 108) * 再送のみやるL2の存在は初耳」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho 変数沢山ある😮… latency が変数に入るとツラソー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「んー詳しい論文 (https://t.co/D8hgDGOOoX) を見つけたから読んだけど、リオーダによる低下とかじゃなくて、半二重回線でデータとackが競合する問題だった。QUIC だと ack frequency extension でだいぶ解決しそう」 / Twitter
147425895.pdf
Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
atc14-paper-salameh.pdf
Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
【大河原克行の「パソコン業界、東奔西走」】密かに市場が拡大している電力線搬送通信「HD-PLC」。パナソニックの取り組みを追う - PC Watch
【知識】コンセント経由でネットにつながる「PLC」って今どうなってるの? | &GP

マルチギガビット・イーサネット - Wikipedia
既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
【匠の部屋】元・インテルのエンジニアは「Wake on LAN」からvProまで知る「匠」だった - INTERNET Watch[Sponsored]
【匠の部屋】進化していく「Wake on LAN」、しかし弱点が浮き彫りに…… - INTERNET Watch[Sponsored]
MACアドレスに関する注意事項
MACアドレスについて教えてください。MACアドレスが消えてしまって... - Yahoo!知恵袋
Tech TIPS:ネットワーク・インターフェイスのMACアドレスを変更する - @IT
セイコーソリューションズ、NTPサーバーと同期するネットワーク型時計「NTPクロック」を販売開始 - クラウド Watch
玄人志向 | GbE-PCIe:MARVELL社製 88E8053搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
Broadcom 5751 Netxtreme Gigabit PCIe NIC
10Gbps通信の普及を阻んだ「高過ぎるエラー率」問題 (1/2) - TechTargetジャパン ネットワーク
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じ40Gb NIC対応でも Mellanox MCX313A-BCBT は PCIe3.0 x8レーン、MCX415A-BCATは PCIe3.0 x16レーンなのはなぜかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbit搭載マザーボードも徐々に増えているし、10Gbitが徐々に一般にも広がりつつある感じ。また、10Gbitなら今時のCPU&メモリバスで問題ない。 これが、40Gbitになると、あちこちネックが出てきて、普通に使うと15~20Gbit程度で引っ掛かりやすい印象。… https://t.co/ZzKRsXWlbK"
なかのん&マジックさんのツイート: "10GbEでもマルチギガには対応してないってパターンもやはりあるのかな? (全く分かってない)"
dynamis (でゅなみす)さんのツイート: "徐々に減っていくのかもてすが、あります。 必ずしも上位互換で全対応ではないです。… "
一ノ瀬 いろはさんのツイート: "あくまで別の規格、かつ 10Gbase-T より 2.5/5 Base-T の方が後の規格ですからね。 実装上の差分は小さいのでこれから作る分には対応しない理由は少ないですが、 10Gbase-T として作られた製品は後続の規格には対応出来ない事も多いはず。… https://t.co/99A9q2G78d"

無線

その他

FOTA(Firmware Over-The-Air)とは - IT用語辞典 e-Words
「技適」の話をあらためて整理する (1/3) - ITmedia Mobile
無線LANデバイスが技術適合証明を受けなければならない理由 | Noisefactory
M.2 の NGFF 形状 WiFi モジュールと繋ぐケーブル
AC-8260NGW
NTTと東工大、テラヘルツ帯での100Gbps無線伝送に成功 - PC Watch
パナソニック、数mmから数十cmに制限可能な近距離無線通信技術。セキュアを実現 - PC Watch
技適取得済み機器の検索APIを総務省が公開中、技適取得の有無のほか機器情報も取得可能【やじうまWatch】 - INTERNET Watch
技適の無い海外端末の合法的利用について | かくいちさんの掲示板 | マイネ王
Cell Phone Unlocking | Federal Communications Commission
「なぜ無線通信で用いられる周波数帯域は2.4GHzなのか」調査中の学生の前に立ちはだかった最後の巨大な壁 - GIGAZINE
【速報】「技適」のない機器の実験利用が可能に、電波法改正で11月20日から:教育とICT Online
家に届いた「NEXT! 700MHz」のチラシ、これは何? - AV Watch
MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは? - GIGAZINE
【悲報】電池が1年持つ無線マウスを導入して、5か月経った結果
【マジか!】マウスのチャタリングがたった10秒で直った!その方法とは…?
チャタリングを直したマウスのその後

Wi-Fi

Wi-Fi 7(IEEE802.11be)

Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
atc14-paper-salameh.pdf
Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
MediaTekがWi-Fi 7の技術デモを実施。Wi-Fi 6から2.4倍高速化 - PC Watch
11ax後継「IEEE 802.11be」では6GHz帯がほぼ必須、2022年に採用なるか?【周波数帯を拡張するWi-Fi 6E】Wi-Fiで増える6GHz帯、日本ではしばらく利用不可? 次世代「Wi-Fi 7」では必須?【ネット新技術】 - INTERNET Watch
次世代通信規格「Wi-Fi 7」の世界初のデモで現行規格の2.4倍の通信速度を達成 - GIGAZINE
半導体不足で「Wi-Fi 6E」より先に「Wi-Fi 7」が普及する流れが強まっている - GIGAZINE
不足によって妨げられたWi-Fi6Eの採用は、Wi-Fi7の普及を加速します|自作.com
FadisさんはTwitterを使っています 「IntelがLinuxのmac80211に802.11be(WiFi 7)のサポートのためのパッチを投げている話。802.11beは米国等で既に法整備がなされている6GHz帯を使って1チャネルあたり320MHzを使い、4096-QAMで変調した信号を16x16 MIMOなアンテナで送る事で約40Gbpsの帯域を得る新しいWiFiの規格 https://t.co/RpBMMx7sKu」 / Twitter
Intel Preparing Wi-Fi 7 / 802.11be / EHT Support For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「パッチに含まれているのは主に320MHz幅のチャネルのサポートの為のもので、具体的なハードウェアのドライバ等は含まれない。802.11beはまだ規格が完成していない為、実際のハードウェアが登場するまでにはまだ時間がかかると思われる」 / Twitter

Wi-Fi 6(IEEE802.11ax)

【NW未来予想図01】無線LANは11axが主流に。光並み20ギガWi-Fiも | ビジネスネットワーク.jp
第848回:IEEE802.11ax とは - ケータイ Watch
速度は11acの倍、11ax対応のWi-Fi子機向けチップ「WCN3998」、Qualcommが発表 - INTERNET Watch
802.11axの呼称が「Wi-Fi 6」に、11acは「Wi-Fi 5」、11nは「Wi-Fi 4」 - INTERNET Watch
次世代高速無線LAN規格「11ax」について
【Wi-Fiルータ】次世代規格IEEE 802.11axの無線通信に対応した機器まとめ - 踊るびあほりっく
無線LANに11axが必要になった理由 | 日経 xTECH(クロステック)
IEEE 802.11ax - Wikipedia
_pdf
最新規格「IEEE802.11ax」がやってきた!最新無線LAN事情 - IT、IT製品の情報なら【キーマンズネット】
IEEE802.11ax | IoT
Wi-Fi 6(11ax)搭載拡大へ、2023年にWi-Fiチップ出荷の約3分の1に達すると予測 - INTERNET Watch
CES 2019で見かけた「Wi-Fi 6」(802.11ax)対応製品【CES 2019】 - INTERNET Watch
無線LANも2.4Gbpsに。Intel、Wi-Fi 6モジュールを出荷開始 - PC Watch
【周波数帯を拡張するWi-Fi 6E】Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド【ネット新技術】 - INTERNET Watch
6GHz帯の無免許利用をFCCが承認、高速な無線LAN新規格「Wi-Fi 6E」が使用可能に - GIGAZINE
アイ・オー、1万円切りのWi-Fi 6対応無線LANルーター - PC Watch
免許なしで使える6GHz帯まで拡張した「Wi-Fi 6E」の認定プログラムがスタート - GIGAZINE
世界初のWi-Fi 6対応のUSB接続子機、ASUSとD-Linkが発表【CES 2021】 - INTERNET Watch
10GのSFP+はどれぐらい高速なのか?Wi-Fi 6対応ルーターASUS「RT-AX89X」使ってみた&速度実測レビュー - GIGAZINE
USB接続では初のWi-Fi 6子機「USB-AX56」、ASUSが発売 - INTERNET Watch
IEEE802.11ax(Wi-Fi 6/6E)のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Huawei、Wi-Fi 6特許に関するライセンス契約でバッファローと合意 - PC Watch
「Wi-Fi CERTIFIED 6 Release 2」、新機能を加えた認証プログラムをWi-Fi Allianceが開始 - INTERNET Watch
6GHz帯の国内利用は6月から? 当面はWi-Fi 6/6Eが主流に、Wi-Fi 7は30Gbpsが目標で製品の登場は2024年?【ネット新技術】 - INTERNET Watch
WN-DAX3600QR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
WN-DAX3000QR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器

WPA3

Twitter

Eijiro Sumiiさんのツイート: "本当に(←そればっか)、「無線LANの暗号化意味ない」は広まってほしい… "
アナネコさんのツイート: "WPA-PSKでL2レベル暗号化していても、パスワードを共有している場合は簡単にそれぞれのセッション鍵を計算することができてL2レベルの暗号化が無意味になるんですよ。って研修でやるのに買ったやつ。"
Eijiro Sumiiさんのツイート: "本当に(略)、「https (SSL/TLS)使う」のほうがはるかに重要 https://t.co/IessKQmFmc"
アナネコさんのツイート: "ちなみにL2の暗号化が破られるから危険!という主旨ではなく、L2の暗号化なんてあてにならんのだから重要な通信は上のレイヤーで暗号化して改竄検知しましょう!というお話をしました。"
Eijiro Sumiiさんのツイート: "パスワード共有してたら暗号云々以前に偽アクセスポイント立てればもっと簡単に盗聴・改ざんし放題だし。"
Eijiro Sumiiさんのツイート: "https://t.co/kuRAuKXj8Q 「利用者を特定少数に制限したい場合」「管理者側にとっては」無線LANに暗号化パスワードつける意味あります。念のため。"
Eijiro Sumiiさんのツイート: "誤解している例:https://t.co/M05PCQqkZz"
Eijiro Sumiiさんのツイート: "HTTPSを使うとかブラウザをアップデートするとか本当に必要な対策ではなく、「暗号化されていないWi-Fiがある」から「利用を控える」は、被災者に誤った不便を強いる呼びかけでは… https://t.co/IjWX8QuTih"
Eijiro Sumiiさんのツイート: "https://t.co/1eL3b1FhHT 記事が消えてた。熊本県警の「呼びかけ」。"

第863回:WPA3 とは - ケータイ Watch
Wi-Fi Alliance、次世代無線セキュリティ「WPA3」 - PC Watch
Wi-Fi Alliance、Wi-Fiセキュリティの新規格「WPA3」発表 | マイナビニュース
Wi-Fiパスワードを破る新たな攻撃手法が見つかる--「WPA」「WPA2」を無効に - ZDNet Japan
Wi-Fiは将来的に「WPA3」必須に、Wi-Fi Allianceが新たな認定制度をスタート - INTERNET Watch
【利便性を向上するWi-Fi規格】(第7回)Wi-Fi最初の暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第8回)Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第9回)2003年までの実装が必須だった「WPA」で採用された「TKIP」の4つの特徴【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第10回)暗号化方式に「AES」を採用した「IEEE 802.11i」や「WPA2」、11n普及とともに浸透【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第11回)WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第12回)WPA3は「SAE」採用で鍵の推測が不可能に、KRACKsで悪用の穴ふさぐ、2018年末から登場?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第13回)SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」、各社規格の乱立に終止符?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第14回)ボタンを押すとSSID&パスフレーズはどうやってやり取りされる? 「WPS」の接続手順【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第15回)SSID・パスフレーズ交換の標準規格「WPS 2.0」、「WPS 1.0」の脆弱性を解消【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第16回)認証不要でWi-Fi通信の傍受を不可能に、フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第17回)フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」、盗聴の恐れがある通信路で秘密鍵を安全に共有【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第18回)Passpointの仕様である「Hotspot 2.0」のベースとなった標準規格「IEEE 802.11u」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第19回)国内キャリアも採用のホットスポット提供指標「WISPr」、「IEEE 802.11u」と一本化へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第20回)ホットスポットでの認証の問題を解消した「HotSpot 2.0」、IEEE 802.11uやWISPr 1.0/2.0に欠けた要素を追加【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第21回)Wi-Fiホットスポット接続規格「Passpoint」、高速なLTEの普及で拡大せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第22回)スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」、画面やカメラがない機器を接続可能に【ネット新技術】 - INTERNET Watch
Wi-Fiセキュリティの新規格「WPA3」に脆弱性が発見される - GIGAZINE
Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される - INTERNET Watch
Dragonblood: Analysing WPA3's Dragonfly Handshake
Wi-Fiセキュリティ新規格「WPA3」にWi-Fiのパスワードが漏れる新たな脆弱性が発見される - GIGAZINE
Wi-Fi 6の認定プログラム「Wi-Fi CERTIFIED 6」開始。WPA3が必須に - PC Watch

Mesh

「Wi-Fi CERTIFIED EasyMesh」発表、異なるベンダー間でもメッシュを構築できる製品を認証 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第1回)Wi-Fiにおけるメッシュネットワークの必要性【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第2回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第3回)Wi-Fiメッシュで通信コストを最小化する仕組み、「IEEE 802.11s」の採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第4回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第5回)Wi-Fiメッシュの主流はQualcomm「Wi-Fi SON」へ、「IEEE 802.11s」に準拠せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第6回)続々登場するQualcomm「Wi-Fi SON」採用製品は相互非互換、Wi-Fi Allianceは「EasyMesh」を発表【ネット新技術】 - INTERNET Watch
2017年度のベスト5wifiメッシュネットワークシステムに関してお読みください
最高のメッシュWi-Fiルーター 2018版
メッシュ ネットワークとは - Google Wifi ヘルプ
Google Wifi を使用したメッシュ ネットワークの仕組み - Google ストア
Google Wifi vs. deco M5 メッシュ対応Wi-Fiルーター徹底比較 (1/6) - ITmedia PC USER
ASUSのメッシュルーター「Lyra mini」で自宅Wi-Fi環境が改善するかテスト:旅人目線のデジタルレポ 中山智 - Engadget 日本版
【メッシュWIFIシステム】Google WiFiと中継機やルーターとの違いを比較。おすすめ機種も。 | モノログ.fun
メッシュWi-Fiの基本的な仕組みと特徴を理解しよう|MacFan
「メッシュWi-Fi」で家中どこでも快適Wi-Fi環境を実現
IEEE802.11sメッシュのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社

ケータイ Watch

第880回:Wi-Fi CERTIFIED Vantage とは - ケータイ Watch
第881回:Wi-Fi 4/5/6 とは - ケータイ Watch

INTERNET Watch

Wi-Fiルーターのサポート期間っていつまで? 国内メーカー4社に聞いてみた  - INTERNET Watch
無線LANの5.2GHz帯(W52)、屋外利用を可能に、電波法施行規則を改正へ - INTERNET Watch
【利便性を向上するWi-Fi規格】(第23回)Wi-Fiを利用してVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第24回)Wi-Fi子機同士を直接接続する「Wi-Fi Direct」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第25回)高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第26回)Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第27回)公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」、11ac+PassPointから拡充へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第28回)「Wi-Fi CERTIFIED Agile Multiband」、ネットワーク内の移動に伴うローミングなどの対応をまとめて規定【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第29回)ESSIDの異なるWi-Fiへの接続を高速化する「Wi-Fi CERTIFIED Optimized Connectivity」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編1)11acから11axへの移行は2019年末から2020年初頭~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編2)11axはCBRSとあわせて伸びる分野、その先には5Gも~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
Wi-Fiが瞬間的に切れることがある【“Wi-Fiの困った”を解決:トラブル編 第1回】 - INTERNET Watch
Wi-Fiでの通信がいつも不安定……【“Wi-Fiの困った”を解決:トラブル編 第2回】 - INTERNET Watch

PC Watch

アイ・オー、4,000円を切る一人暮らし向けの無線ルーター - PC Watch
アイ・オー、税別5,500円のIEEE 802.11acルーター - PC Watch
無線LANのスペクトルを6GHz帯に拡張した「Wi-Fi 6E」 - PC Watch
Wi-Fi Alliance、低消費電力で長距離通信できる「HaLow」 - PC Watch

GIGAZINE

Wi-Fiのパスフレーズを「パケットを食べる」ことで解析する電子ペットキット「Hash Monster」 - GIGAZINE
約15年前の「無線LANルーター」が今でも販売され続けている理由とは? - GIGAZINE

Wireless・のおと

KRACKのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
WoWのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社

脆弱性

FragAttacks

FadisさんはTwitterを使っています 「FragAttacks: 同一のWiFiネットワーク内にいる攻撃者が対象とアクセスポイントの間が暗号化されていても対象に平文のパケットを食べさせる事が出来る脆弱性。WiFiの仕様上の問題と多くの機器で見られる実装の問題の合わせ技で、WPA3を含む全ての暗号化を乗り越えられる https://t.co/u5ACPdHR6k」 / Twitter
FragAttacks: New Security Vulnerabilities Affecting WiFi Devices, 12 CVEs Issued - Phoronix
FadisさんはTwitterを使っています 「今日のWiFiは性能向上のために小さいパケットを束ねて送るframe aggregationを備えているが、束ねているかどうかを示すフラグは完全性の対象になっておらず攻撃者が書き換え放題で、これにいろんな状況で平文パケットを機器が受け取ってしまうバグが組み合わさって攻撃者がパケットを挟めるようになる」 / Twitter
FadisさんはTwitterを使っています 「平文でやりとりするしかないハンドシェイクにいきなりframe aggregationでデータのパケットをくっつけて送るとデータが平文でも食べちゃう機器が結構あるの、面白い」 / Twitter
事実上ほぼ全てのWi-Fiデバイスに内在する脆弱性「FragAttacks」が公開される、ユーザー名やパスワードの流出、PCの乗っ取りも可能 - GIGAZINE
FadisさんはTwitterを使っています 「FragAttacks、攻撃の足掛かりになってるのがWiFiの仕様自体の問題だから、WiFi全部ダメだー!みたいに言われてるのが散見されるけど、これだけだと暗号化されたパケットを捏造できないと攻撃できないので、平文食べちゃうWiFiデバイスの方が何とかなったらとりあえず脅威ではなくなりそう」 / Twitter
FadisさんはTwitterを使っています 「雑なIoT機器もWiFi喋ってる時代にそれをやるのが結構大変な話ってのはあるだろうけど」 / Twitter

Wi-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に - PC Watch
iPhoneやGalaxyなど10億を超えるWi-Fi端末に通信を傍受される脆弱性「Kr00k」が存在すると判明 - GIGAZINE
スマホ・PCなどほぼすべてのWi-Fi機器に影響があるWPA2自体の脆弱性「KRACK」とは、そして対策は? - GIGAZINE
mjg59 | Wifi deauthentication attacks and home security
数十億のデバイスに影響を与えるWi-Fチップの深刻な脆弱性が発見 | TECH+

無線LANルーター|MZK-MF300HP2|PLANEX
WN-AX1167GR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
「Wi-Fiの基本」から「Wi-Fiトラブル解消テクニック」まで、Q&A形式で解説!【“Wi-Fiの困った”を解決:連載記事まとめ】 - INTERNET Watch
2.5GBASE-TのWANとLAN搭載のWi-Fi 6ルーター「WN-DAX3000QR」、アイ・オーが発売 - INTERNET Watch
6GHz帯の国内利用は6月から? 当面はWi-Fi 6/6Eが主流に、Wi-Fi 7は30Gbpsが目標で製品の登場は2024年?【ネット新技術】 - INTERNET Watch
WN-DAX3000QR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
TL-WPA4220KIT | 300Mbps AV600 PLC Wi-Fiエクステンダーキット | TP-Link Japan
802.11ac 対応のインテル®...
ランダム ハードウェア アドレスを使う理由と方法
わかめ@毎日猫がいるさんはTwitterを使っています: 「Pixel 4になってからなぜか会社のシステムにMACアドレス登録してもWi-Fi打刻できなくなってて ??? ってなってたんだけど、MACアドレスをAPごとにランダマイズする機能がAndroid 10からデフォルトオンに…! https://t.co/Fxtih3NiZn」 / Twitter
Privacy: MAC Randomization  |  Android Open Source Project
わかめ@毎日猫がいるさんはTwitterを使っています: 「ていうかMACアドレスがソフトウェア的にランダムに変わるのってすげーな。いいのか?(プライバシー保護的にはOKなんだろうけど)」 / Twitter
そな太@Swift始めましたさんはTwitterを使っています: 「@vvakame MACアドレスはブロードキャストが届く範囲でユニークであれば良いので問題ないです(ブロードキャストドメインを超えて利用されることはないため) 仮想環境のMACアドレスも本物ではなかったりしますよね」 / Twitter
わかめ@毎日猫がいるさんはTwitterを使っています: 「@sonatard たしかに。なるほどなぁ。」 / Twitter
FadisさんはTwitterを使っています 「物理的に何かを所有していることを利用者が本物であると考える根拠としてWi-Fiの利用者を制限したい場合、EAP SIM認証というのがあってな」 / Twitter
Virtual WiFiとSoftAP - Google 検索
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無線アクセスポイント(AP)で 2.4GHz「デュアルチャネル機能」を有効にすると、古め2.4GHz 11n対応機器から全てのAPが見えなくなる現象発生…Atermのヘルプにも出ていた。 https://t.co/pG1gCpAFyx」 / Twitter
デュアルチャネル|機能詳細ガイド

Bluetooth

その他

成熟Bluetoothチップ市場に吹く新風 (1/4) - EE Times Japan
渋川よしきさんのツイート: "Bluetoothを青歯って書く人いるけど、中国語の藍牙のほうが中二病感あってカッコイイと思う。簡体字だと蓝牙。ピンインだとlanyaで変換できます。"
Anker Soundsync A3341 - .mjtの日記復帰計画
(1)「マルチペアリング」や「マルチポイント」で手軽になったBluetooth | 日経 xTECH(クロステック)
【小寺・西田の「金曜ランチビュッフェ」】AirPodsから考えるBluetoothの「切り換え」問題
AndroidスマホのBluetoothに重大な脆弱性、攻撃者が任意のコードを実行可 - Engadget 日本版
Google、Bluetoothデバイスを初回から自動接続できるFast Pairの詳細を公開 - PC Watch
2020年10月20日 Linux 5.9.1がリリース,Bluetoothの脆弱性を突いた「BleedingTooth」に対応:Linux Daily Topics|gihyo.jp … 技術評論社
第681回 BluetoothヘッドセットでHD Voiceを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
多数のBluetooth製品に影響する脆弱性「BrakTooth」の概念実証ツールが公開 | TECH+
メガネとBluetooth Low Energyでお喋りする - Speaker Deck

Sniffer

「Bluetooth Low Energy BLE 4.0 nRF51822」に該当する海外通販 - セカイモン
2269 Adafruit Industries LLC | RF/IF and RFID | DigiKey
DSAS開発者の部屋:技適マークつき BLE パケットスニファを入手する
DSAS開発者の部屋:BLE デバイス間の通信内容をパケットレベルで読み解いてみる

ケータイ Watch

第660回:iBeaconとは - ケータイ Watch Watch
第679回:ポータブルSIM とは - ケータイ Watch Watch
第718回:Eddystone とは - ケータイ Watch Watch
第720回:ジオフェンシング とは - ケータイ Watch Watch
第832回:完全ワイヤレスステレオ(TWS) とは - ケータイ Watch
第859回:eMBB、URLLC、mMTC とは - ケータイ Watch

GIGAZINE

低電力Bluetoothチップの多くに存在するリモートアクセスを可能にする脆弱性「BleedingBit」の存在が明らかに - GIGAZINE
Bluetoothデバイスの接続に潜む新たな脆弱性を用いたなりすまし攻撃「BIAS」が発見される - GIGAZINE
Bluetoothデバイスの認証キーを攻撃者が上書きできる脆弱性「BLURtooth」が発見される - GIGAZINE
スマホやPCなど無数のBluetoothデバイスが乗っ取られてしまう脆弱性「BLESA」が発見される - GIGAZINE
何十億台のスマートフォンに搭載されるWi-FiチップやBluetoothチップをとっかかりにしてパスワードやデータを盗み出す攻撃手法が開発される - GIGAZINE

FIDO

ユーザーは改良版への交換を。GoogleがBluetooth版Titanセキュリティキーをリコール - Engadget 日本版
Google Online Security Blog: Advisory: Security Issue with Bluetooth Low Energy (BLE) Titan Security Keys
パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る: Tender Surrender
GoogleのTitanセキュリティキーがNFCを広くサポートへ、Bluetooth対応は廃止 - GIGAZINE

Audio

LE Audio

ASCII.jp:Bluetooth「LE Audio」の技術的な詳細は? ソニー講演から探る
クアルコム、次世代規格「Bluetooth LE Audio」に対応したミドルクラスSoC「QCC305x」 - PHILE WEB
【本田雅一のAVTrends】次世代Bluetooth音声“LE Audio”は、ワイヤレスイヤフォンのなにを変えるか? - AV Watch
Bluetooth SIG、新音声規格「LE Audio」のコーデック仕様書を公開 - ITmedia PC USER
ASCII.jp:混沌としたBluetoothの高音質コーデック、新標準LE Audio/LC3の立ち位置は? (1/2)
「Bluetooth LE Audio」に対応したコーデックを提供開始:組み込み開発ニュース - MONOist
次世代Bluetooth「LE Audio」は高音質LC3採用、ワイヤレスでシェアも - AV Watch
Bluetoothの新音声規格「LE Audio」、新コーデック「LC3」採用やマルチストリーム・ブロードキャストに対応 - ケータイ Watch
Bluetooth SIG、ブロードキャストにも対応する「LEオーディオ」を発表 - ケータイ Watch
Bluetoothの次世代音声規格「Bluetooth LE Audio」が発表される、低電力で高品質ながら複数機器での再生も可能に - GIGAZINE
LE オーディオ |ブルートゥース®テクノロジーウェブサイト
Bluetooth SIG Unveils LE Audio, the Next Generation of Bluetooth Audio – Bluetooth® Technology Website
Bluetooth SIG、音質が抜本的に改善したLE Audio用新コーデック「LC3」 - PC Watch
LEオーディオの仕様|Bluetooth®テクノロジーウェブサイト
Low Complexity Communication Codec - LC3_Specification_v1.0.pdf
とみながたけひろさんはTwitterを使っています 「そういえばBluetoothのLC3コーデック仕様書が公開されたのでhttps://t.co/SWndAk9WSM (PDF) つらつらと見ているんだが、リサンプリング検出器があるのが面白かった。これはVoice系の8kHzサンプリングされた音声を48kHzに変換したんだな、てのを認識したときに特別扱いするっていう」 / Twitter
とみながたけひろさんはTwitterを使っています 「あとはまあウィンドウ長を時間固定にするとか、プリエコー対策でもウィンドウサイズ変えないとか、エントロピーコーディングはVQと算術符号とか、なるほど計算量減らしつつ効率上げるならこのへんかー、今時だなーという感じ」 / Twitter
とみながたけひろさんはTwitterを使っています 「直交変換の窓函数が変態形状である。これはvorbisからあったしそれほど最新ではないのかもだけど、あんまり他では見た事ない気もする」 / Twitter
Masami HIRATAさんはTwitterを使っています 「@takehiro_t @yohhoy それって、モノラル音声のストリームを 6 本束ねて 5.1ch みたいな用途を想定していて、LFE に特化しているツールが用意されてるみたいな感じなんですかね?」 / Twitter
次世代Bluetooth「LEオーディオ」の解説書を無償配布 - AV Watch
Bluetooth® LEオーディオのご紹介|Bluetooth® Technology Website
高音質&低遅延なBluetooth「LEオーディオ」まもなく登場? ソニーが技術解説 - AV Watch

遅延対策

Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi @beepcap Android って動画の場合 SBC のでかい遅延に合わせて映像ずらしてくれるから気にならないんですよね。まぁ macOS もそうなんですけど。操作音みたいなやつは画面更新遅らせるわけに行かないから露骨にずれますね。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 @beepcap なんか動画だとリップシンクうまくやってくれるらしいですね。OS が対応してなくても VLC なんかはたいてい音声のオフセット設定とかできるし,まあなんとかなる印象」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi Android と macOS で試して、あぁー今時のオペレーティングシステムはこうなんだーいいじゃんって思って、それから Windows を触った時の絶望感...」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 Android も macOS も A2DP の接続コーデック確認とかもできるんですが Windows はそれすらも出来ない(とはいえ標準のソフトウェアスタックで aptX に対応したり進歩はしているのですが」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi まぁなんか、Bluetooth オーディオは闇なので、自宅では PC 同士を PulseAudio で飛ばすことにしました...」 / Twitter

kanamonoさんのツイート: "左右独立したイヤフォンは音がずれることがないのかなと思っていたが、昨日ついにズレが発生した。電源切るまで直らなかった"
kanamonoさんのツイート: "ズレは1秒未満でしたが、ズレると物凄く不快なので実用に堪えない感じになります… "
耳を塞がないイヤホンambieを一ヶ月でぶっ壊してしまった話 - にせねこメモ
【藤本健のDigital Audio Laboratory】iPhoneからBluetoothで聴くと音質はどう変わる? 波形で比較した-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質をテストしたら、謎の結果が出てしまった-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質を再び検証。SBCとの違いを波形で比べた-AV Watch
Logicool Bluetooth Audio Receiver for Wireless Streaming
【笠原一輝のユビキタス情報局】Microsoftのノイキャンヘッドフォン「Surface Headphones」をレビュー ~PC&スマホの同時に利用に便利。日本でもまもなく発売 - PC Watch
高音質なワイヤレス体験!24bit Bluetooth DUAL DAC搭載。バランス接続対応ワイレスレシーバー『EarStudio』 | 株式会社フリーウェイ
SBC XQ - Google 検索
Qualcommが高品質&低遅延の次世代ワイヤレスオーディオ技術「Snapdragon Sound」を発表 - GIGAZINE
とみながたけひろさんはTwitterを使っています 「BTのaudio, あまりにも罠が多すぎて、電話が祖先の機材(スマートフォン)はともかく、CS対応考えると一般人向けゲーム機では対応しないのが正解!みたくなってるよな(XBOX1はBTそのものがない、PS4/5, Nintendo SwitchはBTあるけどAudio使えない、XBOX X|SはAudioも対応してる、だったかな…)」 / Twitter
Qualcommが高音質コーデック「aptX Lossless」を発表、CD音質の音楽を無劣化でワイヤレス再生可能に - GIGAZINE
Bluetoothで44.1kHz/16bitロスレス「aptX Lossless」 - AV Watch

MIDI

nRF51でBLE MIDIをアドバタイズする - Qiita
BLE-MIDI : 藤本健の“DTMステーション”
kshoji: Android用のBLE MIDIライブラリのご紹介
kshoji/BLE-MIDI-for-Android: MIDI over Bluetooth LE driver for Android 4.3 or later
Downloads | KORG BLE-MIDI Driver - Bluetooth MIDI Connection Guide E | KORG (USA)
ble-midi - npm
Bluetooth LE MIDI Specification
Microsoft Word - rp52.doc
Bluetooth LE MIDI Specification
Midi over BLE
MIDI 2.0、始動 今も使われる電子楽器規格が38年後のバージョンアップ - ITmedia NEWS
MIDIが38年ぶりのバージョンアップでMIDI 2.0に。従来のMIDI 1.0との互換性を保ちつつ機能強化 | | 藤本健の "DTMステーション"
【藤本健のDigital Audio Laboratory】Bluetooth MIDIは本当に遅延が大きい? 測定して比べてみた-AV Watch
Keigo ImaiさんはTwitterを使っています 「MIDIファイルの時間の表現がそんな感じでしたかね、デルタ・タイム 休符の長さは短いと64音符、長いとほぼ一曲丸ごとなので固定長では効率が悪かったという」 / Twitter
トデス子'\さんはTwitterを使っています 「暗号みたいなリファレンスを読んでいる(7バイトのデータがMIDIに乗ると8バイトにエンコードされて各バイトの上位は0、最初のバイトは7バイトのMSBを並べたもの、だと言いたいのだと思われる…… 未確認) https://t.co/oQ0f0dRD2B」 / Twitter
トデス子'\さんはTwitterを使っています 「さすがにrust+nanokontrol2というニッチはないやろと思ったら先人がおるやんけ https://t.co/PAahTI5VZ4」 / Twitter
jonnybolton/korg-nanokontrol2: A rust API for the Korg nanoKONTROL2 device.

マウス

Bluetooth 4.0 レーザーマウス - M-BT13BLBK
EX-G Bluetooth BlueLEDマウス - M-XG4BBBK
【PR】接続も充電もワイヤレスなCorsair製マウス「DARK CORE RGB SE」を試す。ケーブルに縛られないゲームライフはとことん快適だ - 4Gamer.net
Corsair、Qi無線充電が可能な2.4GHz無線/BT/有線対応ゲーミングマウスなど2機種 - PC Watch

I/F

BIOS 画面でもBluetooth LE な無線キーボードを使いたい | tech - 氾濫原
Releases · cho45/hid2hcix
HID API for Linux, Mac OS X, and Windows
Bluetooth Ver.4.0+EDR/LE対応 小型USBアダプター|PLANEX
Bluetooth(R) USBアダプター(Class2) - LBT-UAN05C2
Nintendo Switchでワイヤレスイヤフォン/ヘッドフォンを使用可能にするドングルが発売 - GAME Watch
Nintendo Switch™をワイヤレスで楽しもう!世界初、ワイヤレスヘッドホンを可能にするドングル『Genki』

au

仕様 (スペック) | Bluetooth(R) | au
仕様 (スペック) | Bluetooth(R) | au
機能説明 | Bluetooth(R) | au

Bluetooth 5

【ニュース・フラッシュ】ケイデンス、Bluetooth 5の検証IPを提供開始 - PC Watch
「Bluetooth 5」に対応したスマートフォンが認証の取得を開始 | ガジェット通信
新規格登場のBLE、非モバイルに浸透へ - 日経テクノロジーオンライン
Bluetooth SIG責任者が今だから語る、Bluetooth 5仕様の真実 - TechTargetジャパン ネットワーク
速度2倍、到達距離4倍になったBluetooth 5 - PC Watch
Bluetooth 5 通信距離「従来比4倍」の仕組み (1/4) - EDN Japan
Bluetooth 5 対応スマートフォンをサムスンとアップルが製品化 (プレスリリース) - エキサイトニュース
新しいiPhoneの「Bluetooth 5.0」で何が変わる? - いまさら聞けないiPhoneのなぜ | マイナビニュース
【解説】誤解していませんか?「Bluetooth 5対応」の真の意味とは - PHILE WEB
Bluetooth 5でオーディオは進化するの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
方向検知機能が追加された「Bluetooth 5.1」 ~位置測位もセンチメートル単位で可能に - PC Watch
Core Spec Version 5.2の新機能について|Bluetooth®テクノロジーウェブサイト
「Bluetooth 5.2」、3つの新機能を理解する:注目される「アイソクロナスチャネル」など(1/2 ページ) - EDN Japan
Bluetooth 5.2はどう進化した?バージョン5.1との違いと新しく追加された仕様を解説! | マクリン
Bluetoothの『バージョン』とは?5.2の進化ポイント「オーディオ機能」などを解説|TIME&SPACE by KDDI
【1.0-5.2】Bluetoothバージョン別の特徴まとめ | BableTech

Bluetooth mesh

Bluetoothがメッシュネットワークをサポート ~数千デバイスの相互ネットワークを実現 - PC Watch
第817回:Bluetooth Meshネットワーク とは - ケータイ Watch
低エネルギー: メッシュ | Bluetooth Technology Website
Low Energy: Mesh | Bluetooth Technology Website
数千ノードのメッシュネットワークを構築できる「Bluetooth mesh」 ~大規模デバイスネットワークの基礎を目指す - PC Watch

Bluetooth Low Energy

はじめに | 基礎知識 | ROHM TECH WEB
AndroidでBluetoothヘッドホンのバッテリー残量インジケーター表示のサポートが行われる見込み - GIGAZINE
Shiki Okasakaさんのツイート: "Bluetooth SmartとBluetooth Smart Readyマークは2016年いっぱいで廃止されている、というのはどれくらい周知されているのだろう? https://t.co/vJFGi6WCBf https://t.co/ZhY3hOw3Z0"
ネット環境不要で広域通信可能な「BLEルーター」、IoTデバイス開発のBraveridgeが提供 - INTERNET Watch
Bluetooth LEにWindows PCやiOS/macOSなど対応デバイスを識別/追跡できる脆弱性 - PC Watch
popets-2019-0036.pdf
Appleデバイスの位置を第三者が確認できる抜け穴 - PC Watch

Bluetooth Technology Website

LTE

LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
ピクセラ、LTE対応USBドングル「PIX-MT100」がファームアップデート - CNET Japan
法人向けSIM・高速モバイル通信サービスのIIJモバイル | IIJ
520BU | 端末情報 | IIJモバイル サポートサイト
520BU | 端末情報 | サプライ | IIJモバイル サポートサイト
AMP520 - SORACOM 認定デバイス
M2Mに挑戦するAM Telecom
相互接続性試験(IOT) IOT完了済みメーカーブランド通信モジュール・製品 | ドコモビジネスオンライン | NTTドコモ
modulelist.pdf
品質 4G LTE モジュール & 3G 変復調装置モジュール 製造元
第839回:PS-LTE とは - ケータイ Watch
第853回:EVS とは - ケータイ Watch
Enhanced Voice Services - Wikipedia
Enhanced Voice Services - Wikipedia
スマホの通信規格「4G/LTE」「5G」でユーザーになりすまして通信に介入できる脆弱性が見つかる - GIGAZINE
ピクセラ、LTE対応のUSBモデムを秋に発売 - PC Watch
LTE対応 USBドングル(PIX-MT110) - 仕様 | 株式会社ピクセラ
ピクセラモバイル新プランの評判は?PIX-MT110と共にレビュー!初期設定手順・既存プランからの改善点まとめ | minto.tech

5G

報道発表資料 : (お知らせ)5G標準仕様策定が完了 | お知らせ | NTTドコモ
【笠原一輝のユビキタス情報局】MWC 18で見えてきた5Gを巡るIntelとQualcommの熱いつばぜり合い - PC Watch
NOKIA、5G特許で端末1台につき3ユーロのライセンス料 - PC Watch
【やじうまPC Watch】豪政府、Huawei/ZTE両社を5Gネットワーク供給から排除 - PC Watch
トランプ大統領、米連邦政府機関でのZTEおよびHuawei製品使用禁止令に署名 - ITmedia NEWS
ドコモの3Gは2020年代半ばに終了へ 5Gで2023年までに1兆円を投資 - ITmedia Mobile
Rockridgeさんのツイート: "5Gについて、「(TCP輻輳制御方式として)CUBICの方がBBRよりも一般には高速で通信可能」「HTTPはTCPセッション数を増やすと速くなる」「QUICは帯域を限界まで使える可能性があるが不明な挙動も」。 / “HTTP a…” https://t.co/4W2uBcH5Rh"
【イベントレポート】FibocomがIntel製5GのM.2モジュールを年末までに出荷 ~次世代Xeon Dの開発コードネームはHewitt Lake - PC Watch
【山田祥平のRe:config.sys】5Gネットワーク始動、その万感の想い - PC Watch
AppleとQualcomm和解で、Intelがスマホ向け5Gモデムから撤退 - PC Watch
いろいろ世界初。MediaTeckの5G対応チップはQualcommの良きライバルになりそう | ギズモード・ジャパン
Intelが5Gモデム搭載ノートPCの実現に向けMediaTekと協業 - PC Watch
中国が「Huaweiと5G契約しないと貿易協定を締結しない」と外国の首脳を脅迫していたと判明 - GIGAZINE
次世代通信「5G」に通話の傍受や位置情報の特定が可能になる脆弱性が発覚 - GIGAZINE
MediaTek、Intel PC用の5Gモデム「T700」 - PC Watch
5G携帯のはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
5G携帯のはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
5G携帯のはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
FlexRAN SDK 詳解 ~ 5G NR - VA Linux エンジニアブログ

6G

NTTが「6G」向け通信技術を開発、5G超え「シャノン限界」まで高速化 | 日経 xTECH(クロステック)

ケータイ Watch

第604回:「ucode」 とは - ケータイ Watch Watch
第765回:デュアルスタンバイ とは - ケータイ Watch
第796回:デュアルアクティブ とは - ケータイ Watch
第816回:UDCとは - ケータイ Watch
第824回:プロビジョニングとは - ケータイ Watch
第826回:0AB~J番号 とは - ケータイ Watch
第845回:RCS(Rich Communication Services) とは - ケータイ Watch
第847回:iSIMとは - ケータイ Watch
第849回:マルチプロファイルSIMとは - ケータイ Watch
第856回:+メッセージ とは - ケータイ Watch
第868回:クラウドSIMとは - ケータイ Watch
電波法改正案、電波利用料を大幅見直し - ケータイ Watch
電波法改正案、技適なしでも試験利用は可能など一部緩和 - ケータイ Watch

TPM・Microsoft Pluton

GIGAZINE

MicrosoftがWindows搭載PCを保護する新型セキュリティチップ「Microsoft Pluton」を発表 - GIGAZINE
Windows 11に必須な「TPM」で保護されたPCから情報を盗み出す手口をセキュリティ企業が解説 - GIGAZINE
MicrosoftがWindows 11で必須にしている「TPM」とは?なぜ必須なのか? - GIGAZINE
一部PCは「TPM 2.0をサポートしていないのにWindows 11がインストールされている」と判明、中国やロシア向けの製品か - GIGAZINE
PCを保護するモジュール「TPM」をハードウェア経由でハッキングしてデータにアクセスできるとの報告 - GIGAZINE
AMD製CPUでfTPM機能を有効にしているとWindowsの性能が一時的に低下する可能性がある - GIGAZINE

PC Watch

【特集】Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介 - PC Watch
Microsoft、TPMに代わるCPU内蔵型セキュリティチップ「Microsoft Pluton」 ~AMD、Intel、Qualcommと共同開発 - PC Watch
【Windows 11便利テク】実験!Windows 11でTPMをクリアしたらサインインできなくなるのか? - PC Watch

自作.com

Windows 11のTPM要件はPCビルダーを驚かせたが、BIOSで有効にすることができる|自作.com
Windows 11、"Special Purpose "システム向けにTPMの必要性を排除して出荷|自作.com
Windows 11からの排除される:TPMの要求により多くのPCが除外される|自作.com

だんぼーだよさんはTwitterを使っています 「みんな TPM なんか付いてないって言ってるけど、UEFI で有効にできる場合あるから確認してね。独立チップのイメージでいると思うけど、最近は Firmware TPM が Intel PTT / AMD GuardMI で使えるよ。マザーボードの TPM 用ピンヘッダは埋めなくていいです。BTO で選択肢なくても設定で有効化できます。 https://t.co/1VsuaXJoFY」 / Twitter
🎒♨️ 👀(6★)さんはTwitterを使っています 「Intel PTTを有効にすると通るな、ほんとは対ダンパ性とかでファームウェアで鍵保存しちゃいけない気がするけど https://t.co/k0eTe8en6T」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「まあ Intel PTT も論理ロジックだけで TPM 実装してるわけでもないんだろうから、そういう意味では Intel も AMD も独立したサブプロセッサでファームウェア的に TPM 機能を実装してる、という温度感ではだいたい同等なのかな。」 / Twitter
TPMのファームウェアバージョンを確認する方法 - FMWORLD(法人):富士通
microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.
次のPC買い換えはPluton搭載CPUが鍵か - 阿久津良和のWindows Weekly Report | マイナビニュース
daem0nc0reさんはTwitterを使っています 「ちょっと前にWindows 11で話題になったTPM 2.0ですが、数少ないTPM 2.0の専門書のPDFデータとEPUBデータをApressが公式に公開してくれているので、気になる人はダウンロードして熟読するといいですよ https://t.co/adAGiZrrJA」 / Twitter
A Practical Guide to TPM 2.0 | SpringerLink
YurikaさんはTwitterを使っています 「Windows11 セキュリティの話のブログ Plutonが表舞台にどんどん出てきてます https://t.co/jS8vBPU90H」 / Twitter
Windows 11 offers chip to cloud protection to meet the new security challenges of hybrid work - Microsoft Security Blog
suzakiさんはTwitterを使っています 「メモ。 MicrosoftセキュリティチップPlutonが2022からPCに付くアナウンス。 Pluton付いたら買うぞ! Windows 11 Security Book: Powerful security from chip to cloud https://t.co/B2o5SvFCOU The Microsoft Pluton security processor will ship with select new Windows PCs starting in 2022.」 / Twitter
YurikaさんはTwitterを使っています 「Windows 11 Security Book https://t.co/k8TxJRnjAn」 / Twitter
Windows 11 Security Book_01Oct2021.pdf
MR201510_Overview_and_usage_examples_of_TPM_2.0_JPN.pdf
【自作PC】パソコンのCPU交換手順 | 趣味語り
エヌユルさんはTwitterを使っています 「@tenpoku1000 TPM自体に物理アクセスされたら結局色々だめな気がします」 / Twitter
Kazuho OkuさんはTwitterを使っています 「TPMとBitLockerまわり、何をやってるかわかりやすくまとめた文書少ない気がする。 https://t.co/UyHZaL2sEi はブートプロセスの説明があってわかりやすかったけど、ログオンプロンプトで入力されるパスワード認証がTPMに絡むのか(オフライン攻撃可能なのか)みたいなところが書いてない」 / Twitter
How Windows uses the TPM - Windows security | Microsoft Docs
Kazuho OkuさんはTwitterを使っています 「preboot認証はTPMとの通信が発生しオフライン攻撃不可能なはずなのでWindowsのログオンプロンプトも当然そういう作りになってそうな気はする」 / Twitter

ディスプレイ

DisplayPort

VESA、ノートPCなどでGPUの省電力効果を高められる「eDP 1.5」 - PC Watch
【ニュース・フラッシュ】サンワサプライ、DisplayPortからDVI/HDMI/ミニD-Sub15ピンへの変換アダプタ - PC Watch
VESA、超高ビットレート転送に対応するDisplayPortケーブルの認証プログラムを開始 - PC Watch
16K/60p HDR対応の「DisplayPort 2.0」'20年認証開始。DisplayHDRは有機EL/microLEDにも - AV Watch
超絶わかりにくいDisplayPortのバージョンを見分けるために通信帯域幅がケーブルに貼られることに - GIGAZINE
VESAがDisplayPort2.0UHBR認定を発表|自作.com

HDMI

HDMI CEC

ビエラリンク - Wikipedia
ブラビアリンク - Wikipedia
Nintendo Switch発売、ソフト更新でHDMI CEC対応。FB/Twitter投稿も - AV Watch
デジモノ家電を読み解くキーワード:「HDMI CEC」――AV機器メーカーによる囲い込みポイント - ITmedia LifeStyle
HDMI CECとはテレビやレコーダーなどの機器間で制御信号をやり取りするリンク機能 | ホームシアターナビ

GIGAZINE

「HDMI 2.0」から「HDMI 2.1」になると一体何が変わるのか? - GIGAZINE
「HDMI 2.0」で一体何が新しくなって大幅に強化されるのかまとめ - GIGAZINE
取り回ししやすい「HDMI 2.1」対応ケーブルはどれなのか一斉比較レビュー - GIGAZINE
HDMI 2.0にしか対応していないモニターを「HDMI 2.1対応」と宣伝するのは虚偽なのか? - GIGAZINE
HDMI業界の閉鎖体質がオープンソースのGPUドライバーに悪影響を及ぼしているとの指摘 - GIGAZINE
HDMIの新しい規格ライセンス「HDMI 2.1a」が発表、新しく追加される機能「SBTM」とは? - GIGAZINE

PC Watch

HDRフォーマットの伝送に対応したHDMI 2.0aが発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUの真の性能を活かすHDRに、2016年からRadeonが対応へ - PC Watch
HDMI Licensing、2.0規格で定められた新機能を解説 - PC Watch
HDMI Forum、次期HDMI規格2.0を発表 ~4K@50/60、32オーディオチャンネルなどに対応 - PC Watch
WQXGA/48bitカラーをサポートした「HDMI 1.3」説明会
10Kまで対応する「HDMI 2.1」が公開。ゲーム向け同期機能など搭載 - PC Watch

HDMI - Wikipedia
<CES>新規格「HDMI 2.1」を策定メンバーに聞く。 “48Gbps”の意味とは? いまのケーブルは使える? - Phile-web
[CES 2017]「HDMI 2.1」が規格化。“HDMI版Adaptive Sync”な「Game Mode VRR」や8K/60Hz,4K/120Hz表示などが目玉に - 4Gamer.net
「HDMI 2.1」が発表 - 8K/60Hzに対応、新たにゲームモードも | マイナビニュース
HDMI ケーブルのイーサネット対応と非対応の違い
ARC対応ってなに?
Fadisさんのツイート: "HDMIにはロゴを表示すると最終製品のロイヤリティが下がる、という決まりがあって今日多くのHDMI対応製品がロゴを表示してるわけだけど、スーパーファミコンにHDMIって書かれてるのじわじわくる https://t.co/vlqJdNajIN"
【西川善司の大画面☆マニア】HDMI 2.1とは何か。8K/60Hzや動的HDRだけでない、次世代ディスプレイにもたらす変化-AV Watch
【西川善司の大画面☆マニア】8Kだけじゃない! ブラックアウト回避やeARC、あなたの知らないHDMI 2.1の世界-AV Watch
4K/8K映像対応で“曲げても踏んでもOK”なHDMI光ケーブル。56Gbps伝送も - AV Watch
対応テレビの準備も完了? 「HDMI 2.1」最新動向をHDMI Licensing CTOに聞く - PHILE WEB
HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査 - .mjtの日記復帰計画
SD-HDSPRL【Kyo-ons SEPARATOR】
Dolby Digital Live を手作りしたい実験 - Qiita
FadisさんはTwitterを使っています 「HDMI 2.1は仕様をHDMI Adoptersのメンバー以外に公開することを認めておらず、オープンソースドライバを実装する事は間接的に仕様を公開していると判断される恐れがあることから、FreeSync等のHDMI 2.1で利用できる筈の機能をオープンソースドライバに実装できない問題の話 https://t.co/iF1NHthY9m」 / Twitter
HDMI Forum Closing Public Specification Access Is Hurting Open-Source GPU Drivers - Phoronix
FadisさんはTwitterを使っています 「特に現行のAMDGPUのLinuxドライバは全てオープンソースになっているから、Linux+AMDGPUの組み合わせではHDMI 2.1の機能は使えんので諦めてDisplayPortで繋いでください状態になっている、と」 / Twitter
エンドツーエンドのHDMI2.1システムは、ホームエンターテインメントを簡素化|自作.com
4K120p入力で解像度半分になっちゃう問題。TVメーカー5社に聞いた - AV Watch

マルチディスプレイ

Z87-PRO:オンボード出力とグラフィックカード出力の同時利用(マルチディスプレイ)について
マルチディスプレイのまとめスタイル修正: Intel IGP
マルチモニター(マルチディスプレイ)を活用する【液晶モニタの基礎知識】
マルチディスプレイの方法 パソコン初心者講座
マザーボードでマルチディスプレイ パソコン初心者講座
Windows TIPS:ノートPCでデュアルディスプレイの表示設定を変更する - @IT
業務効率が一気に上がる、実践!マルチディスプレイ - 余ったディスプレイをつなげばすぐにできる、マルチディスプレイの基本:ITpro

Adaptive-Sync/FreeSync

GPUとディスプレイを自動同期する機能がDisplayPortに実装 ~テアリングを解消し、消費電力も削減 - PC Watch
ゲームがよりなめらかに、FreeSyncで最高の描画品質を楽しむ - AKIBA PC Hotline!
西川善司の3DGE:AMD,HDR対応の「FreeSync 2」を発表 - 4Gamer.net
NVidia、ついにAdaptive-Sync/FreeSyncに対応 | スラド ハードウェア
NVIDIA,「G-SYNC Compatible Monitors」プログラムを開始。Adaptive-Sync対応ディスプレイ12製品でG-SYNCの利用を可能に - 4Gamer.net
Announcing G-SYNC Compatible Monitors and BFGD Pre-Orders
GeForce G-SYNC Monitors: Manufacturers & Specs
AMD、FreeSync Premium ティアを発表、FreeSync 2 HDRをPremium Proにブランド変更 - 自作ユーザーが解説するゲーミングPCガイド

Sync on Green

Sync on Green ‐ 通信用語の基礎知識
価格.com - NEC MultiSync LCD-P243W-BK [24.1インチ] 価格比較
MultiSync LCD-P243W-BK : ディスプレイ | NEC

RGBW

RGBWとは - IT用語辞典 Weblio辞書
Sony Japan | ニュースリリース | デジタルカメラ向け新開発「RGBW方式」の3型VGA液晶モジュール“WhiteMagic™ ”(ホワイトマジック)※1を商品化

HDR

HDR10+

HDR10+ License Program
HDR新規格「HDR10+」対応製品がまもなく。パナやSamsung、ワーナーも対応 - AV Watch
【本田雅一のAVTrends】一見地味なHDR新規格「HDR10+」が、多くの消費者に魅力的な体験をもたらすかもしれない - AV Watch
パナソニックとフォックスがSamsung提案のHDR方式「HDR10+」を推進へ - AV Watch
SamsungとAmazon Video、HDRの拡張規格「HDR10+」発表。今年後半にコンテンツ配信 - AV Watch
サムスンとAmazon Video、「HDR10」を拡張した新規格「HDR10+」を発表 - Phile-web
<IFA>「HDR10+」とは何か、パナソニックがなぜ推進するのか。サムスンと手を組んだねらい - PHILE WEB
Samsung、画質調整不要の「HDR10+ GAMING」サポート - AV Watch

DisplayHDR

Vesa Certified DisplayHDR™
VESA Defines New Standard to Help Speed PC Industry Adoption of High Dynamic Range Technology in Laptop and Desktop Monitor Displays | VESA
VESA、DisplayHDR対応確認アプリをMicrosoft Storeで公開 - PC Watch
VESAがHDR標準「DisplayHDR」策定 PCディスプレイの性能を底上げ - ITmedia NEWS
VESA,HDR対応液晶ディスプレイの標準規格「DisplayHDR」を発表。対応製品は早ければ2018年に登場か - 4Gamer.net
VESA、HDRに関する標準規格「DisplayHDR」を策定 ~輝度やコントラスト比などを厳密に規定 - PC Watch
Samsungの49型ゲーミングディスプレイが、業界初のDisplayHDR 600認定 - PC Watch
日本初HDR 1000液晶モニタや4K放送チューナ、痛4K中継車も。「4K・8K機材展」 - AV Watch
【PR】1,000nitの高輝度とHDRでゲームはここまで変わる! PhilipsのDisplayHDR 1000対応液晶を西川善司氏が徹底解剖- PC Watch

High-dynamic-range video - Wikipedia
Rec. 2100 - Wikipedia
Hybrid Log-Gamma - Wikipedia
よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社
UHDTV HDR,HLG & WCGを理解する by LightIllusionに関する製品情報|クリエイティブサポートカンパニー Edipit
4Kテレビ選びの重要ワードHDR=「HDR10」「Dolby Vision」「HLG」って何? - 価格.comマガジン
4K HDRとDolby Visionはどう違うのか? (1) CES 2016で見たホームエンターテインメントの進化 | マイナビニュース
Dolby Vision方式のUltra HD Blu-rayが'17年発売。ワーナー、ユニバーサルなど - AV Watch
いま注目の高画質化技術「HDR」とは何か? ドルビーの真野ディレクターに聞く - Phile-web
HDR10とは? ゾーンとは? Blu-ray Copyはどうなる?「Ultra HD Blu-ray」の詳細を聞く(後編) (1/4) - Phile-web
【イベントレポート】NVIDIA、65型の4K/HDR/120Hz/G-SYNC対応となるBig Format Gaming Displaysを提唱 ~8コアCarmel CPU+512CUDAコアのVolta GPUとなるXavierも発表 - PC Watch
ソニー、Microsoftらがゲーム向けにHDRガイドライン団体「HGiG」を発足 - PC Watch
Razer PhoneがNetflixのHDR再生に対応 | ガジェット通信 GetNews
Rec.2020とBT.2020の違いとは
PCとモニターがHDRへ対応しているかの判別方法
【プレイバック2018】液晶テレビ“視野角問題”に終止符? HDR動向とこれから by 本田雅一-AV Watch
SODA Noriyukiさんのツイート: "HDR は 何nits まで要求するかが大問題ですね… 1000nits のモニターっていうと PG27UQ と UP2718Q の2機種しか候補が残らないような気が…(正しい?)… "
Fadisさんのツイート: "こっちで探した時もその辺しか見つかりませんでしたね… "
FadisさんはTwitterを使っています: 「4K HDRで画面が暗くなる問題、以前は扱える色の範囲が狭すぎるからテレビ側で信号に厚化粧してたのが、広範囲の色を扱えるようになったからテレビは信号通りの色を出すようになったけど、撮影設備、放送設備その他の対応が出来てなくて狭い範囲の色がそのまま画面に反映されてるって話なんだよな」 / Twitter
HDR Ecosystem Tracker update fall 2019

モニターおよびモニター周辺機器 | Dell 日本
半導体/周辺機器 液晶ディスプレイ - PC Watch
BCNランキング - BCN+R
60B4RAR6JP | モニター ThinkVision | 製品情報 | Business with Lenovo
BenQ 23.8型アイケアディスプレイ GW2480 | BenQ Japan
VESA DDC - Google 検索
DDC/CI - Google 検索
今すぐやるべき「ディスプレイの設定」と「4K以上の高解像度ディスプレイ」に買い替たほうがいい理由 - GIGAZINE
ITmedia流液晶ディスプレイ講座III:HiDPIやRetinaを誤解してない?――4K時代のディスプレイ選びに欠かせない「画素密度」を理解する (1/4) - ITmedia PC USER
4Kの基礎知識① RED社の4Kテクノロジーの変遷 | 4K入門 高精細映像の世界 | Shuffle by COMMERCIAL PHOTO
ドットバイドットとは|dot by dot - 意味 / 定義 / 解説 / 説明 : IT用語辞典
【解説】ディスプレイケーブルのコネクタについて - ELECOM WEB SITE!
最新ディスプレイ講座――HDMI、DislplayPortから先進のUSB Type-Cまで映像入力インタフェース徹底解説 | EIZO株式会社
Shirouzu Hiroaki(白水啓章)さんのツイート: "有機EL「テレビ」は、白色発光+カラーフィルタ、主流なのね…RGB発光と思い込んでいた。 3色フィルタは効率1/3=消費電力が大きい理由の一つかな? (白色を含む4色フィルタというのもあるらしい)"
SODA Noriyukiさんのツイート: "サイズが小さいものはRGB発光、大きいとRGB発光のものは実用化できてなくてすべてがLG電子の白色+カラーフィルタと、サイズによって完全に住み分けされてるっぽいですよね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "みたいですね。 有機ELなのにカラーフィルタって、やや騙された感がありました(笑)… "

プリンタ

ブラザー

プリンター | ブラザー
インクジェットプリンター - プリンター | ブラザー
【インクジェット/レーザー プリンター】(Windows)今まで印刷できていたのに、突然印刷できなくなった|ブラザー
使用済みトナーカートリッジ/ドラムユニット回収リサイクル|サポート情報|ブラザー
HL-L2360DN | レーザープリンター・複合機 | ブラザー
MFC-L2750DW | レーザープリンター・複合機 | ブラザー
消耗品・オプション | MFC-L2750DW | レーザープリンター・複合機 | ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
cv_bcld100_jpn_usr_led253047_a.pdf
MFC-J4940DN | インクジェットプリンター・複合機 | ブラザー
消耗品・オプション | MFC-J4940DN | インクジェットプリンター・複合機 | ブラザー
製品マニュアル | MFC-J4940DN | 日本 | ブラザー
MFC-J4940DN | 日本 | ブラザーサポート
How to obtain Brother SNMP MIB information
NetDiscover MIB/OID - BROTHER-MIB.mib
MIBViewerProbes/BROTHER-MIB.txt at master · richb-intermapper/MIBViewerProbes
BROTHER-MIB
Free BROTHER-MIB SNMP MIB Download - Free MIB Download - Search MIBs - OiDViEW

Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な
第806回:Mopria とは - ケータイ Watch
“Google クラウド プリント”が来年末で廃止 ~10年間ベータ版のまま終息 - 窓の杜
Chromebookが複合機からの直接スキャンなどをサポート - PC Watch
マイクロソフト、「Universal Print」のパブリックプレビュー開始。プリンタサーバをクラウド化し、プリンタドライバのインストールを不要に - Publickey
マイクロソフト、「Universal Print」を発表。プリンタサーバをクラウド化し、プリンタドライバ不要、集中管理へ。キヤノンと対応プリンタを共同開発中 - Publickey
Microsoft、印刷スプーラーのゼロデイ脆弱性に対処するためWindowsの既定動作を変更 - 窓の杜
印刷スプーラー脆弱性「PrintNightmare」対策に、ドライバインストール時に管理者権限必須に - PC Watch
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「最近のネットワークプリンタは $ nc printer 9100 &lt; file.pdf だけで印刷できる。CUPSよさようなら。 https://t.co/5ptdbr1saH」 / Twitter
Bye CUPS: Printing with netcat - by William Blankenship - retrohacker
【山田祥平のRe:config.sys】見えるeMarker - PC Watch
ラベル作りに必要な機能をこれでもかというほど搭載し「ケーブル用ラベル」の作成法も秀逸なテプラの究極形 「『テプラ』 PRO SR-R980」レビュー - GIGAZINE
2021年8月16日 "The Universal Operating System"をめざして ―Debian 11 "bullseye"がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「キヤノンUSAに対する集団訴訟。 どうやらキャノンの複合機 Pixma MG6320は、インクが切れるとスキャンもしなくなるらしい。HNのコメントでは、良心的な企業はブラザーだという声が多い。 https://t.co/7uPff3Q8HZ」 / Twitter
Canon sued for disabling scanner when printers run out of ink
在宅勤務する社員の「印刷ログ」を把握、エプソンがテレワークの課題を解決するクラウドサービス - INTERNET Watch
Windows 10および11におけるプリンタの問題は依然として未解決 | TECH+
Windows10 / Windows11でプリンターに関する複数の不具合。Windows10はKB5006670等で一部修正 | ニッチなPCゲーマーの環境構築Z
Windows 11、USBでプリンタが認識されない不具合。ブラザーのプリンタで発生 - PC Watch
Windows 11/10最新パッチ適用でプリントサーバーの接続に失敗する問題 - PC Watch
「Windows 11」に新たなプリンター問題が3件 ~既知の問題は計6件に - 窓の杜
Windowsの印刷機能に新たな問題 ~Windows 11にも影響 - 窓の杜
「Windows 11」に初めてのCパッチ ~AMD Ryzenや印刷、エクスプローラーの問題などが多数解決 - 窓の杜
Windows 10/11にCパッチ ~IMEの利用中にIEが動作しなくなる問題やプリンターの接続問題を解決 - 窓の杜

メモリ

News

PC Watch

【メモリ屋社長のちょっとタメになるメモリ話】Ryzenで話題になった、メモリの”Rank”って何のこと? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】メモリモジュールに“SPD”という情報があるのを知っていますか? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】SPDとマザーボードの関係性 - PC Watch
DDR4メモリのSPD情報を編集できるツールが発売、センチュリーマイクロ製 - AKIBA PC Hotline!
JEDEC、低消費電力版DDR5メモリ「LPDDR5」規格を公開 - PC Watch
【イベントレポート】Samsung、次世代モバイルDRAM「LPDDR5」で7.5Gbps/ピンの超高速伝送を達成 - PC Watch
【福田昭のセミコン業界最前線】NANDの10倍、Intel Optaneの2倍の速度を実現するMRAM SSD - PC Watch
東芝メモリ、10月1日より「キオクシア」へ社名変更 - PC Watch
Intel、クライアント向けPersistent Memoryの実現に向けてMicrosoftと協力 - PC Watch
JEDEC、次世代DRAM「DDR5」の標準規格を公開 - PC Watch
SK Hynix、世界初のDDR5 DRAMを発売 - PC Watch
【後藤弘茂のWeekly海外ニュース】広帯域と大容量にフォーカスした“第2世代”のHBM2メモリ - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelなどプロセッサベンダーがけん引するHBM3規格 - PC Watch
SK hynix、1anmプロセス/EUV採用の8Gbit LPDDR4 DRAMを量産開始 - PC Watch
Rambus、サーバー向けDDR5メモリ用のバッファチップを開発 - PC Watch
Rambus、5,600MT/s対応のDDR5 RDIMM向けレジスタリングクロックドライバ - PC Watch
ADATA、DDR5メモリやUSB4対応外付けSSDなど投入 - PC Watch
JEDEC、2倍の帯域幅を実現する「HBM3」 - PC Watch

マイナビニュース

PCテクノロジートレンド 2022 - メモリ・DRAM編 (1) | マイナビニュース
JEDEC、帯域幅819GB/秒にも及ぶ「HBM3」 | マイナビニュース

GIGAZINE

50年以上前のコンピューター黎明期を支えた「磁気コアメモリ」とは? - GIGAZINE
メモリの脆弱性を利用してデータを盗み読む「RAMBleed攻撃」が発見される - GIGAZINE
SSDなどのストレージへの連続アクセスで権限を奪取できる「Rowhammer攻撃」類似のサイバー攻撃が可能 - GIGAZINE
メモリとストレージの性質を兼ね備える夢のデバイス「ユニバーサルメモリ」がついに実現か - GIGAZINE
次世代メモリの標準規格「DDR5」の最終仕様をJEDECが発表、DDR4から何が進化したのか? - GIGAZINE
Linuxを生み出したリーナス・トーバルズがIntelを厳しく批判、理由は「ECCメモリを死に至らせているから」 - GIGAZINE
爆速メモリ技術「3D XPoint」の開発からMicronが撤退、Intelは開発継続の意向を示す - GIGAZINE
Samsungが業界初となる512GBのDDR5メモリを開発 - GIGAZINE
DRAMに保存されたデータを改ざんする「Rowhammer」攻撃の対象範囲がメモリ小型化で広がっているとの指摘 - GIGAZINE
ほぼ全てのメモリのセキュリティを突破可能なツール「Blacksmith」が登場 - GIGAZINE
ついに登場したDDR5メモリはメーカーごとに仕様が異なる、一体何が違うのか? - GIGAZINE

自作.com

DRAMの代替品を開発。4倍の集積度で高速・低消費電力化を実現|自作.com
DDR5は2023年までにメインストリーム市場に登場する見込み|自作.com
ADATA、12,600MTpsの超高速DDR5モジュールを発表|自作.com
ZeroPoint Technology AB、ハードウェアベースのRAMデータ圧縮で250万ドルを獲得|自作.com
サムスン、DDR5-7200 512GB RAMを公開|自作.com
DDR5はDDR4の50%から60%のコストアップになる|自作.com
DDR5 RAMの価格は次の四半期に下がる可能性があり|自作.com
インテル、Alder Lake CPU向けのXMP 3.0 DDR5 QVLを掲載|自作.com
DDR5メモリの供給不足が深刻化、原因は電源管理チップにあり|自作.com
IntelのOptaneビジネスは2020年に5億ドル以上の損害を被りました|自作.com
Intelが第3世代Optaneメモリ、新技術をからかう|自作.com
新しいプラットフォームにより、GPUとFPGAでIntelOptaneメモリモジュールを使用できるようになります|自作.com

More information on RAMBleed
ロウハンマー - Wikipedia
Row hammer - Wikipedia
20210313
NVDIMM Protocol Expands Non-Volatile Memory Options | EE Times
グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率 - CNET Japan
20210522
Unisantis Unveils Advances in Dynamic Flash Memory - EE Times Asia
北森瓦版 - JEDEC HBM3の仕様書を公開

スライド

電源を切っても消えないメモリとの付き合い方 - Speaker Deck
不揮発メモリ(NVDIMM)とLinuxの対応動向について(for comsys 2019 ver.)
不揮発メモリ(NVDIMM)とLinuxの対応動向について

Qiita

Linuxの不揮発メモリ(NVDIMM)対応動向について(2018年版) - Qiita
Linuxの不揮発メモリ(NVDIMM対応について(2019年版 補足編) - Qiita
Linuxの不揮発メモリ(NVDIMM)対応について(2020年版) - Qiita
パソコンユーザーのためのDRAM入門 Part 1 パソコンにおけるDRAM、DRAMの構造 - Qiita

Twitter

histric-1

suzakiさんのツイート: "ECC無しの1ペタバイトメモリではsilent errorが 90分ごとに起こる。"
Fadisさんのツイート: "memtestしたら1bit壊れてるのが見つかった → 1bit壊れてるメモリなら今にも壊れそうなbitがまだあるかもしれない → ヒートガンでメモリを加熱しながらmemtest → ほらさらに3つ出てきた その発想はなかった"
Fadisさんのツイート: "で、壊れてたbitと壊れそうなbitが限られたアドレスの範囲に入るようにメモリを並べ替えてGRUB2で使ってはいけないアドレスの範囲を指定してデバッグを再開、と つよい"
Ahmet Alp Balkan (🍖KubeCon)さんのツイート: "This guy heated up his RAM with a heat gun to debug a @golang runtime bug. https://t.co/KKSA7vqfr8 I hereby nominate him to most persistent… https://t.co/glga0uPchs"
FFFumihiro MMMatsuiさんのツイート: "DRAMのリフレッシュ(抜けていく電荷の補充)ってあるけど確かに人間も風呂入ってリフレッシュしたらなんか電荷がチャージされる感じするな。あれはなかなか的確な名前だな"
Shirouzu Hiroaki(白水啓章)さんのツイート: "稼働中だったDRAMを液体窒素保存した後、別マシンに挿して、BitLocker、dm-crypt、TrueCryptの鍵を取り出すって、凄いけど誰得な感じも…NSAあたりが使う想定なのかしらん?… "
Ryota Shioyaさんのツイート: "この論文だと、メモリを引っこ抜いて液体窒素に漬け込んで一時間後に戻したらデータが化けてたのは0.17%だったとかで、思ってた以上に冷やすとデータのこるんだなと言う話もhttps://t.co/xdAjRMdqzA"
Ryota Shioyaさんのツイート: "この論文だと,エアダスターとかのスプレーで冷やして実行しても結構うまくいってたので,あとはメモリ配置を割り出すあたりを誰かが自動化してしまうと結構お手軽に誰でも実行できてしまって怖いなって気はします… "
Lest We Remember: Cold Boot Attacks on Encryption Keys | Center for Information Technology Policy
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「DRAMを4KB単位でI/Oしたものと同等性能って話っぽい? 4KB I/O はキャッシュライン単位としては大きいので、巨大VLIWの登場とか無い限り、メインメモリとしては厳しいのかな? それでも、NVDIMM-Pみたいな無理筋よりはずっと良さそう。 ---- https://t.co/nAlXpI2GD6」 / Twitter
【イベントレポート】東芝メモリ、DRAMと同等性能のSSDを披露 - PC Watch
FadisさんはTwitterを使っています: 「NVDIMMが従来の二次記憶と大きく異なるのはそれがブロックデバイスではなくバイト単位での読み書きが出来るという点。NVDIMMはDRAMと同じアドレス空間にマップされ、同じように読む事ができる。書いた内容が永続化された事を保証するには、CPUのキャッシュをflushして、メモリバリアで完了を待てば良い」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMはDRAMのように書けるが、DRAMのように書くのは得策ではない。永続化されるという事はデータは書いている最中にアプリケーションがクラッシュしたり電源が落ちたりしても正常であり続ける必要がある為、FSのジャーナルに似た手順でいつ処理が止まってもデータを壊さないようにする必要がある」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMのDAXで必要になる処理をまとめたPMDKは複数のライブラリで構成されている。libpmemはOS非依存のmmapとmsyncを提供し、libpmemobjはジャーナルで指定した範囲の値をトランザクショナルに書く仕組みを提供する。libpmemblkはNVDIMMブロック単位でload/store仕組みを提供する」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMではファイルの読み書きをユーザ空間で片付けるFilesystem DAXが使えるため、カーネルがオーバーヘッドだからデバイス丸ごとカーネルから奪い取るSPDKと異なり、PMDKによる読み書きとカーネル経由のファイル操作は同じファイルシステム上で共存できる」 / Twitter
FadisさんはTwitterを使っています: 「mmapしたファイルをflushするにはmsyncするのが普通だが、FS DAXの場合カーネルは変更箇所を知らない為効率の悪いflushしかできない。更に必要な操作はclflushoptだけなのでカーネル空間に行きたくない。結果ユーザ空間で勝手にflushしてFSのメタデータの変更が放置されて壊れる世紀末が生まれた、と」 / Twitter
FadisさんはTwitterを使っています: 「で、ストレージが百nsオーダーで応答しないと困る人達はこれを「カーネルが俺の知らないところでFSのメタデータなんか書くからデータが壊れるのだ」と捉え、カーネルがデバイスを一切触らなくなる(=ユーザ空間プロセスが把握している変更だけflushすればデータは壊れない)Device DAXが誕生した、と」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMに関するLinuxの対応の歩み「直接仮想アドレス空間にマップできるデバイスによってmmapは神になる。読み書きはユーザ空間で片付いてボトルネックは解消され …ると思ったのにCPUキャッシュ、お前、お前…!」みたいな感じで大変アレ」 / Twitter
FadisさんはTwitterを使っています: 「もしかして、linuxでmmapしたファイルに書くだけの処理でも、それがsparseで書いてる先がブロックの割当がまだ無い所だった場合、メタデータが書き変わるわけだからmsyncじゃなくてfsyncが必要になるんじゃなかろうか…」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「@fadis_ こういう場合メタデータの書き換えは常に最後なのでは?(msyncのタイミングでメタデータの書き込みになるのでは)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@beepcap @fadis_ 現状、ファイル用mmapでsparseページ宛に memcpy等しようとすると、命令トラップ&disk領域割り付けが走り、万一disk-full等で割り付け失敗するとSIGBUSで落ちます。 なので、メタデータ操作が後とは思えないですねぇ。」 / Twitter
FadisさんはTwitterを使っています: 「x86_64 linuxのページサイズが4KBなのに対して、NVDIMMが64Bのキャッシュライン単位でflush出来る為、ページ単位でしかdirtyな部分を知らないカーネルは1箇所の書き込みに対して64倍のflushを行う羽目になり、これがdirtyなデータをユーザ空間で管理したい大きな理由になっているっぽい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ただ、backendの不揮発部分は4KBよりずっと大きそう。 行列とかで疎な書き込みが発生すると厳しいとか無いのかな? https://t.co/IAKNMrLrmc」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「まあ、RAMについても昔は夢でしか無かったんですけどね。 DIMMとCPUが載ったシステムボードを複数搭載して、そのボードを丸ごと抜くという技で抜けるようにしたPrimeQuestって製品があるんですけどね。 RAMはpage migrationの機能でカーネルがこっそりデータを移動する。NVDIMM+DAXはそこが課題よね… https://t.co/27ObKDwOAM」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@YasunoriGoto1 あれ、結局primary boot processorがhotplugできない問題って解決したんでしたっけ?」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「@mhiramat そこはまだなんですけどね」 / Twitter
FadisさんはTwitterを使っています: 「Linuxでは1ページ64バイトのpage構造体でメモリのページを管理しているけど、1TiBのNVDIMMを4KiBページで利用する場合page構造体が7.85GiBになって、これをメインメモリに置くとページの情報でメモリが埋め尽くされるから、NVDIMMのpage構造体はNVDIMM自体に確保したスーパーブロックに置くらしい」 / Twitter
FadisさんはTwitterを使っています: 「このスーパーブロックは必要なサイズ以上になるページサイズの倍数の容量で確保される為、1GiBページを使っていると1GiB単位のサイズになる。結果、2GiBのNVDIMMを1GiBページで利用すると1GiBがスーパーブロックで1GiBが唯一のページという、ページとは何かについて考えさせられる使い方がなされる」 / Twitter
FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter

だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 組込みならBIOSとかIPL等のプログラムを書いたりしない? メモリを初期化するのにSPD情報を読もうとすると、何もしてない(書いても読んでもいない)のに、迂闊なI2Cアドレスをバスに出すだけで、メモリに以上電圧が掛かって燃えるで。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 ×以上 ○異常」 / Twitter
Yasunori GotoさんはTwitterを使っています 「FPGA、NVDIMM共にユースケース(を見つけるの)が難しい2大巨頭と言われた事がある…。 まぁ、実際そう思う…。」 / Twitter
FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
Samsung、DDR5型DRAMのDIMM向けにPMICを発売 | 日経クロステック(xTECH)
(๑╹◡╹๑)さんはTwitterを使っています 「えーっと、これなんですが、DDR4では駆動電圧が1.2Vだったんですが、DDR5では1.1Vまで下がります。ここまで下がると、マザーボード上からの電源供給だと電圧が低すぎて安定的に供給できないので、DIMMモジュールへは5Vで供給してPMICで1.1Vに変換する必要が出てくる。かなりのコストアップですな。」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「PMICは、SoCの旺盛な需要や8インチプロセスのキャパシティ不足から深刻な供給不足が続いているんですが、サムスン自信がPIMCを手掛ける、しかも90nmノードで生産するというのは、PMICの供給がネックになってDDR5の立ち上げがつまづくのを防ぐという意味合いもあるのかな、と」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「90nmノードなので多分12インチプロセスを使うんでは、という感じもしてる。8インチは増産余地が小さいので、ディスクリート半導体や車載用途では12インチへの転換を進めてるところもあるけど、コスト的にはかなり上がってしまうので、量産規模を確保出来たらよい話だと思う。」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「https://t.co/fVnyNlVXbR NVDIMM 勉強しててこれ読んだけど、なかなか巧妙だった。特定のパターンの処理では Non-Temporal store → Temporal store という順番になり、後者の方が永続化に時間がかかるので sfence なくてもほぼ永続化の順序は変わらないから省いて性能を稼ごうというアイデア。」 / Twitter
(Almost) Fence-less Persist Ordering | IEEE Conference Publication | IEEE Xplore
とみながたけひろさんはTwitterを使っています 「昔はメモリコントローラの設定を変えてクロック変えたりセルフリフレッシュ状態にする場合、処理中にはDRAMアクセスできないので超絶技巧で対処してたが 最近はメモリコントローラにファームウェアがあってそのなかのマイコンがいいようにしてくれると聞いてほぇ~ってなってる」 / Twitter

DRAMeXchange - World leading DRAM and NAND Flash market research firm, with more than a decade of most authoritative database
自作PCをよくするワザ、教えます(5) ~メモリ編~ - AKIBA PC Hotline!
オーバークロックメモリの基本と実際の性能、見れば全部わかるDDR4メモリ完全ガイド - AKIBA PC Hotline!
ASCII.jp:メモリモジュールオーバークロック指南 (1/7)|Windows 7で行なうオーバークロック
DDR4-2400以上のメモリはDDR4-2133で動作するか? : AKIBAオーバークロックCafe
シングルランクとデュアルランク、どちらのメインメモリーを使う方が良いのか
Rowhammer問題私的まとめ | @knok blog
NVDIMMとACPI - 睡分不足
Persistency for synchronization-free regions
自作OSでできる!NVDIMMのつかいかた - /var/log/hikalium
CK16GX4-D4UE3200 | 288pin DDR4 SDRAM | ECC | サーバー用メモリ | PCパーツと自作パソコン・組み立てパソコンの専門店 | 1's PCワンズ
Native 3200MHz DRAM搭載 32GB メモリーモジュール各種を発表 | センチュリーマイクロ株式会社
【メモ帳】メモリー階層レイテンシー - fortran66のブログ
Intel Optane Persistent Memory を使ってみた - VA Linux エンジニアブログ

電源

12VHPWR(ATX 3.0, PCIe 5.0)

ASUS、PCIe Gen 5.0 Ready電源コネクタ搭載の「ROG THOR 1600W Titanium」「ROG THOR II」電源を発表 - 自作ユーザーが解説するゲーミングPCガイド
次世代グラフィックスカード用PCIe 5.0ハイパワーコネクタ、GPUに最大600Wの電力供給が可能に - 自作ユーザーが解説するゲーミングPCガイド
PCIe Gen5の12P+4P電源コネクタはGeForce RTX 30 Founders Editionの電源コネクタと互換性がある - 自作ユーザーが解説するゲーミングPCガイド
ATXバージョン3.0デザインガイド、PCIe 5.0コネクタケーブルの詳細を公開、次世代GPU向けに最大600Wの電源入力に対応 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - PCI-Express 5.0世代で600Wまで給電可能なコネクタ―“12VHPWR”
北森瓦版 - Intel ATX 3.0規格でPCIe Gen 5電源プラグ―12VHPWRを導入へ
PCIe 5.0専用設計の「12ピン」600W出力対応コネクタ - PC Watch
PCIe 5.0 Power Connectorは、次世代AMD、Nvidia GPUに最大600Wを提供します|自作.com
Asusが16ピンPCIe5.0電源コネクタを備えた小型1200ワット電源を発表|自作.com
FadisさんはTwitterを使っています 「PCI-Expressの12ピン電源コネクタは1レーンに9.2Aを流す設計で、残念な電源で使われている20AWGの補助電源ケーブルでも最大電流は11Aあるから、一応ケーブルがとろけるチーズになったりはしない。でも今まで通りの安全マージンを取るなら600W流す場合は推奨通り16AWGの電源ケーブルが望ましい、と」 / Twitter
北森瓦版 - Intel 新しいATX電源規格―ATX 3.0とATX12VO 2.0を発表
FSPは、今後のNvidia、AMDGPUに2000Wの電源を提供します|自作.com
北森瓦版 - GeForce RTX 3090 Tiの基板や電源周りの話

ATX12VO

自作PCのケーブル取り回しや電源効率改善の可能性を秘めたIntel発の新規格「ATX12VO」とは? - GIGAZINE
インテル、第12世代Alder Lake CPU向けにATX12VO電源コネクタを推進中|自作.com
ベンダーは、インテル第12世代Alder Lakeのリリースに先立ち、ATX12VOマザーボードを準備します。|自作.com
インテルは、安価なAlder Lake-SマザーボードでATX12VO規格が普及することを望んでいる - 自作ユーザーが解説するゲーミングPCガイド
インテルがATX12VO仕様で電源の未来を変える理由 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Intel 新しいATX電源規格―ATX 3.0とATX12VO 2.0を発表

UPS

UPS選定ツール|製品選定|OMRON 無停電電源装置(UPS)
電源障害時に複数のサーバ・パソコンをシャットダウンするにはどうしたらよいでしょうか。|FAQ/よくあるご質問|OMRON 無停電電源装置(UPS)
無停電電源装置(UPS)のプロトコル公開について|製品情報|OMRON 無停電電源装置(UPS)
BW120T/BW100T/BW55T/BW40T 仕様|製品情報|OMRON 無停電電源装置(UPS)
BWB120T|製品情報|OMRON 無停電電源装置(UPS)

バッテリー

JBRC会員企業リスト | 小型充電式電池のリサイクル 一般社団法人JBRC
【特集】いざという時に困らないために……モバイルバッテリの処分方法まとめ - PC Watch
電動工具の互換バッテリーを分解、検証してわかる安さの理由 | VOLTECHNO
リチウムイオン電池の10倍の速さで充電できる新型電池登場、火災の危険性が低く環境への悪影響も控えめ - GIGAZINE
リサイクル部品を使用したバッテリーが未使用バッテリーよりも長寿命であることが判明 - GIGAZINE

ワイヤレス

スマホのワイヤレス充電は超絶非効率、有線充電と比べて電力消費量がおよそ1.5倍と判明 - GIGAZINE
新しいワイヤレス充電の規格が策定される、その内容とは? - GIGAZINE
第843回:Qi 1.2とは - ケータイ Watch
Xiaomi、部屋のどこにいてもスマホを充電できる無線給電技術 - PC Watch
5Gネットワークを「ワイヤレス電力網」化するためのアンテナが開発される - GIGAZINE
東北大ら、Wi-Fiの電波を使って発電できる素子を開発 - PC Watch
Wi-Fiの電波で発電する技術を東北大学などが開発 - GIGAZINE

NVIDIA

北森瓦版 - NVIDIAの12-pinコネクタは既存の8-pinコネクタと同程度の大きさとなる
北森瓦版 - NVIDIAの12-pinコネクタへの対応が準備されている
北森瓦版 - “Ampere”では12-pinの補助電源コネクタが使われるかもしれない?
PSUメーカーは、NVIDIAのGeForce RTX 30シリーズアンペアグラフィックスカード用の12ピンマイクロフィットコネクタを準備しました - 自作ユーザーが解説するゲーミングPCガイド
12ピン電源コネクタの不思議な事実:それは現実であり、NVIDIA Ampere GPUに搭載される - 自作ユーザーが解説するゲーミングPCガイド
NVIDIA、Ampereで新しい12ピンのPCIe補助電源コネクタを採用か - PC Watch
FadisさんはTwitterを使っています 「NVIDIAの新しいGPUの補助電源コネクタはGND 6ピン、12V 6ピンで、6ピンの補助電源コネクタを2つくっつけたようなピン配列、と https://t.co/ckrNFldrRR」 / Twitter
The Curious Case of the 12-pin Power Connector: It's Real and Coming with NVIDIA Ampere GPUs | TechPowerUp
FadisさんはTwitterを使っています 「GPUの補助電源コネクタ、たくさんピンがあるけど電圧全部同じ12Vで、ピンがたくさんある理由が「複数の電圧を供給するため」じゃなくて「ケーブルの断面積と端子の表面積を少しでも稼いでより大きな電流を、ATX電源が供給できる最大の直流電圧でGPUに突っ込むため」なの、いつ見てもパワみがある」 / Twitter
Nvidiaの12ピン電源プラグが今後のPCIe 5.0 GPUに採用されることを期待する|自作.com

Wikipedia

ATX電源 - Wikipedia
Power supply unit (computer) - Wikipedia
80 PLUS - Wikipedia
80 Plus - Wikipedia

玄人志向 | KRPW-L5-400W/80+:80PLUS STANDARD取得 ATX電源 400W
玄人志向 | KRPW-BR650W/85+:80PLUS BRONZE取得 ATX電源 650W
玄人志向 | KRPW-SS350W/90+:80PLUS GOLD取得 ATX電源 350W
Wi-Fi ワットチェッカー RS-WFWATTCH1[RATOC]
Wi-Fi ワットチェッカー for Windows
サージプロテクター対応の電源タップは3〜5年で買い替えが必要 | ライフハッカー[日本版]
第874回:モバイル充電安全認証 とは - ケータイ Watch
日記 (2018 年 9 月下旬)
DOS/V POWER REPORT | Impress Japan
マザーボードのフェーズの話 - PC Watch
【イベントレポート】充電事情はPDよりもワイヤレス? - PC Watch
何故プラグイン式PC電源ユニットのコネクタは規格統一されていないのか? - Togetter
次はGeForce RTX 3090! そして訪れるキロワット時代 (1/4) - ITmedia PC USER
DSAS開発者の部屋:電子工作での AC 給電制御と米国製「IoT Relay」のこと
Bluetoothワットチェッカー RS-BTWATTCH2[RATOC]
ATX規格でUSBピンから各種情報を取得できる冗長電源「FSP Twins 700W」レビュー - GIGAZINE
無限に電力を生成できる可能性がある回路が開発される - GIGAZINE
Cybeneticsが電源の電源効率及び、ノイズレベルの認証バッジを発行 - 自作ユーザーが解説するゲーミングPCガイド
Microsoftが「Windows Update」における二酸化炭素排出量を削減する新機能をWindows 11のプレビュー版で導入 - GIGAZINE
二酸化炭素を排出しにくい発電方式に取り組む国が一目でわかる「electricityMap」 - GIGAZINE
electricityMap | 電力消費による二酸化炭素排出のライブ地図
Watttime – The Power to Choose Clean Energy

RGB

FadisさんはTwitterを使っています 「OpenRGB 0.7がリリースされたらしい。OpenRGBは最近よくあるフルカラーLEDで光るPCパーツの色の調整をデバイス非依存のAPIで行うためのソフトウェア。0.7ではコントローラとドライバがサポートする場合に色の設定をデバイス側に記録するSave To Device等の新機能が追加される https://t.co/9j9gLV4VjR」 / Twitter
OpenRGB 0.7 Released With Many More Devices Supported, Improved Settings - Phoronix
第635回 Ubuntuでパソコンを光らせよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

Desktop operating system market share in Japan | StatCounter Global Stats
Desktop browser market share in Japan | StatCounter Global Stats
https://www.netmarketshare.com/welcome
日本のPCの搭載メモリは他国と比べて少ないのか? Chrome開発チームのグローバル調査で分かる、各国のパソコンやスマホ事情 - Publickey
IBM 7030 - Wikipedia
IBM 7030 Stretch - Wikipedia
Cray-2 - Wikipedia
Cray-2 - Wikipedia
リードタイム MTTR 変更失敗率 - Google 検索
【山田祥平のRe:config.sys】パソコンとオーディオ - PC Watch

Intel

その他

MP

Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems - Peter Barry, Patrick Crowley - Google ブックス
Go Parallel | Dr. Dobb's | Booting an Intel Architecture System, Part I: Early Initialization | December 26, 2011
Using SSG Templates
edk2/MpService.h at master · tianocore/edk2
Multiple ProcessorとIO APIC - mrtska's blog

日記

日記 (2012 年 12 月中旬)
日記 (2014 年 9 月下旬)
日記 (2016 年 8 月上旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2018 年 2 月上旬)
日記 (2018 年 9 月下旬)
日記 (2018 年 10 月下旬)

借り初めのひみつきち

x86の割り込みが遅いワケ - 借り初めのひみつきち
地獄のデバッグ - 借り初めのひみつきち
Nerry さんのツイート: "Surface 3でNXビットが落ちる件、これのせいだった… "
IA32_EFER ‐ 通信用語の基礎知識
NXビット ‐ 通信用語の基礎知識
ロングモードと64ビットモードの違い - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち
新しい自作 OS 始めました - 借り初めのひみつきち
誰も教えてくれない AMD64 と Intel64 の違い (ページング編) - 借り初めのひみつきち

blog

Linuxブート時のcpu数認識の処理を読む - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Intel 100/200 PCH Primary to Sideband Bridge について - DXR165の備忘録
【後藤弘茂のWeekly海外ニュース】スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略 - PC Watch
[coreboot] Disabling hyper-threading on Ivy Bridge
投機実行とOut of Orderはつよいというはなし - なるせにっき
x86のCPUIDについて - めもちょー
20190413
cpuidでAVX2に対応しているか調べる - 睡分不足
x86におけるメモリアクセス権のルール - 睡分不足
【雑記】CPUID の Family と Model、表示する一部ソフトウェアの問題点 | Coelacanth's Dream
Intel Kaby Lake 周りの CPU Stepping を整理するパッチ | Coelacanth's Dream

スライド

プログラムを高速化する話
ハイパースレッディングの並列化への影響

Qiita

[Linux] CPU Hotplug の変更 (動的にCPUの特定coreの有効化/無効化) - Qiita
8086命令セット - Qiita

技術資料 | iSUS
インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアル参考訳
x86-64 - OSDev Wiki
hikaliumさんのツイート: "はい、バグが取れたので円周率をやっていきましょう(syscall処理中に割り込みが発生するとスタックがユーザモードから切り替わらないのにCR3だけ変更されるのでにゃーん化していたのが原因だった)。… "
2.7. turbostat - Red Hat Customer Portal
Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.
msr 演算 intel - Google 検索
Intel core disable msr - Google 検索
x86 アーキテクチャの不可解な「仕様」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
POP SS デバッグ例外 - CVE-2018-8897 [中程度] & CVE-2018-1087 [重要] - Red Hat Customer Portal
A Complete Formal Semantics of x86-64 User-Level Instruction Set Architecture - FSL
kframework/X86-64-semantics: Semantics of x86-64 in K
486のセグメントデスクリプタが直感的に読めないようになっている理由 - Yabu.log
割り込み「ベクタ」と呼ぶ理由 - uchan note
Linux / x86_64の割り込み処理 第4回 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
20200620
Guidance for Enabling FSGSBASE
2020年10月26日 Linux 5.10-rc1が登場,正式リリースは2020年末の予定:Linux Daily Topics|gihyo.jp … 技術評論社

Intel

NAKAMURA Minoru's Diary (2009年10月)
The x86 NMI iret problem [LWN.net]
Non Maskable Interrupt - OSDev Wiki
Intel Cannonlake Added To LLVM's Clang - Phoronix
QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmRuntime/SmmRuntime.c - pub/scm/linux/kernel/git/jejb/Quark_EDKII - Git at Google
a4lg.com | x86 ファミリーとモデル一覧
ドライバーおよびソフトウェア
melancholic afternoon
Positive Technologies - learn and secure : Intel ME: The Way of Static Analysis
システムマネジメントモード - Wikipedia
System Management Mode - Wikipedia
Sandsifterはプロセッサーの隠れ命令を見つける、それは未来の凶悪犯かもしれない | TechCrunch Japan
Sandsifter checks your processor for secrets | TechCrunch
xoreaxeaxeax/sandsifter: The x86 processor fuzzer
x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
Floating-Point Reference Sheet for Intel® Architecture | Intel® Software
OpenVINO™ toolkit | 01.org
Flexible Return and Event Delivery (FRED) Draft Specification - 346446-flexible-return-and-event-delivery.pdf

非推奨

MPX

Intel MPX

インテル® Memory Protection Extensions (インテル® MPX) 利用ガイド | iSUS
Visual Studio 2015 Update 1: New Experimental Feature – MPX | Visual C++ Team Blog
check-pointers-mpx、Qcheck-pointers-mpx
Intel® Memory Protection Extensions Enabling Guide | Intel® Software
How to Protect Apps from Buffer Overflow Attacks | Intel® Software
Study overview
VirtualQuery function (Windows)
GetSystemInfo function (Windows)
SYSTEM_INFO structure (Windows)
Getting Hardware Information (Windows)
Intel GoldmontとMPXとゆるふわなごや
Intel MPX - Wikipedia

技術者見習いの独り言: Intel Memory Protection Extensions (MPX)
るくすさんのツイート: "Intel MPXというポインタの値をランタイムにチェックするskylake以降のセキュリティ用拡張命令があるんだけど、GCCが次のバージョンからサポートを打ち切るそうな。 https://t.co/gH1sQz0EmT"
GCC Developers Potentially Deprecating Intel MPX - Phoronix
Richard Biener - Re: [PATCH][www] Deprecate MPX for GCC 7
www.ffri.jp/assets/files/monthly_research/MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
るくすさんのツイート: "うわー ついにIntel MPX(Memory Protection Extensions)のサポートがLinuxからも消えるってよ... 結局gccもサポート切ったし、セキュリティ支援機構なんて使われなきゃ意味ないよなぁ https://t.co/Vl4ZUoxbvK"
The Linux Kernel Might Drop Memory Protection Extensions Support - Phoronix
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
suzakiさんのツイート: "3E4-1: ヒープ領域に対するソースコード不要のIntel MPX命令適用手法  ◎ 加藤 周良(名古屋工業大学) メモリの領域チェックを行うIntel Memory Protection Extensions(MPX)命令はコンパイラで適用されるのが一般的だが、PINによる動的バイナリ解析からヒープにも適用する。"
FadisさんはTwitterを使っています 「glibcからIntel MPXのサポートが削除された話。Intel MPXは2015年にSkylakeで登場した範囲外参照をの検知をハードウェアで支援する仕組みだが、gccのサポートは3年前に廃止、linuxカーネルのサポートは昨年廃止され、既にglibcがサポートしていても使える状態ではなかった https://t.co/rZYSfEdMMN」 / Twitter
Glibc 2.35 Removes The Long-Deprecated Intel MPX Support - Phoronix
FadisさんはTwitterを使っています 「Intel MPXは専用のレジスタにアドレスの上限と下限を設定することで、その外に対する読み書きで例外が飛ぶようになる。コンパイラが配列や構造体の読み書きの前にこのレジスタに値をセットする命令を挟む事で、範囲外参照を検知する。glibcとlinuxには追加されたレジスタを退避する実装が含まれていた」 / Twitter
FadisさんはTwitterを使っています 「範囲外に置いたパターンが壊れているかをチェックするAddressSanitizerと異なり読むだけの範囲外参照も検知できるが、ICC含むコンパイラの対応が腐っていて、薄いチェックだけでも1割、濃いチェックだと殆どのソフトウェアを正しくコンパイルできない事が知られていた https://t.co/827Q6ggag6」 / Twitter
Usability Evaluation
FadisさんはTwitterを使っています 「また、MPXを使った場合のパフォーマンスがAddressSanitizerと比べて良くなく( https://t.co/0rkSNZaFzn )、動かん+遅いでIntel MPXの利用はあまり進まず、Ice Lake以降のIntelプロセッサにはそもそも搭載されなくなっていた」 / Twitter
Performance Evaluation
FadisさんはTwitterを使っています 「s/をの/の/」 / Twitter
市川 真一さんはTwitterを使っています 「@fadis_ 手元の Rocket Lake の CPUID を採取してみたら、MPX があるらしい結果になりました: CPUID for Intel Core i5-11500 (by tenpoku1000) https://t.co/pu0A5Z8Wp7」 / Twitter
CPUID for Intel Core i5-11500 (by tenpoku1000)
FadisさんはTwitterを使っています 「@tenpoku1000 Rocket LakeはCove系CPU(Coffee Lake-&gt;Comet Lake-&gt;Rocket Lake)でmont系CPU(Coffee Lake-&gt;Ice Lake-&gt;Tiger Lake)の変更の影響を受けていないので、MPXが残っているのはそのためだと思います。Intelは次のAlder LakeをCove系とmont系両方の後継とするようなので、そこにMPXが残るかどうかが見所ですね」 / Twitter
市川 真一さんはTwitterを使っています 「@fadis_ 以下、私の認識です。Rocket Lake は Ice Lake がベースになってるはずです: Ice Lake:Sunny Cove Tiger Lake:Willow Cove Rocket Lake:Cypress Cove Skylake系(Coffee Lake, Comet Lake)」 / Twitter

SGX

Intel

Intel SGX - セキュリティ
Intel® Software Guard Extensions SDK | Intel® Developer Zone
WebHelp
ISCA 2015 tutorial slides for Intel® SGX
ISA Extensions Intel SGX | Intel® Developer Zone
Introducing the Intel® Software Guard Extensions Tutorial Series | Intel® Software
Intel SGX Homepage | Intel® Software

SGAxe

SGAxe.pdf
DynaomoREA - slides.pdf
s-81: Hardware - YouTube
LayerX Newsletter for Tech (2020/11/30-12/06) - LayerX Labs Newsletter

MSDN

InitializeEnclave function (Windows)
CreateEnclave function (Windows)
IsEnclaveTypeSupported function (Windows)
LoadEnclaveData function (Windows)
ENCLAVE_INIT_INFO_SGX structure (Windows)
ENCLAVE_CREATE_INFO_SGX structure (Windows)

Firmware Security

Signal use of Intel SGX | Firmware Security
Monotonic Counter in Intel SGX and ME | Firmware Security
EnclaveDB: A Secure Database using SGX | Firmware Security
Upcoming Intel SGX Features Explained: Improved Virtualization, Configuration Management, and Key Sharing | Firmware Security

FPGA開発日記

Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Application Design) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Design an Application) - FPGA開発日記
Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記

Twitter

Leon Anaviさんのツイート: "#Intel SGX can leak #crypto keys tested on #Thinkpad T460S with #Ubuntu 16.10 https://t.co/Zxl0ySkj9H"
NOKUBI Takatsugu野首貴嗣さんのツイート: "これはACCS 2.0もアカンのでは…"
Tsukasa #01 [要出典]さんのツイート: "えーっと、サイドチャネル攻撃か。Intel は元々 SGX におけるサイドチャネルは注意事項として挙げてあったような、と思って検索してみたら、もっと直接的な言及をしているページを発見。 SGX and Side-Channels https://t.co/JlBBQiJ1BZ"
NOKUBI Takatsugu野首貴嗣さんのツイート: "UHD-BD対応のソフトウェアプレイヤーがSGX必須になってるけど、結局それだけじゃ意味ないんだな"
Takekazu OmiさんはTwitterを使っています: "Haven は、Windows 版Dockerなのかと思ったら、「SGX を使うと、hypervisor ではなくてコンテナでも高いisolation を実装できるぜ」って話しらしい、面白い。intel頑張るなあ"
品川 高廣さんはTwitterを使っています: "OSDI 2014 の Best Paper 3つ目は Haven. Intel SGX を活用して既存のWindowsアプリをクラウド上で安全に実行する。クラウド業者やVMM、物理層による攻撃にも耐えられる(CPU=Intelさえ信用すれば良い)。"
DJ MISONIKOMIUDONさんはTwitterを使っています: "Intel SGX拡張を使うマルウェアの可能性について。へー / Virus Bulletin : SGX: the good, the bad and the downright ugly https://t.co/11GXY6TtQ5"
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています: "Intel SGX Enclave Page Cache Mem 暗号化されて外部からメモリ空間が見られない機構 #kernelvm"
royさんはTwitterを使っています: "ていうかその界隈の人はもう考えてるんだろうけどIntel SGXがまともに使われ始めたらメモリフォレンジック非常に困難では。プロセスごとに同じ空間で動くエージェント挿入するとかしないと解析できないのでは。"
suzakiさんのツイート: "ハードウェアⅡ三つ目。クラッシュやリブートしてもIntel SGXが提供するProtected Module Architectureを保証するために不揮発メモリを用意して状態保存するAriadneの発表。No Rollback, Continuous, Livenessを保証。"
suzakiさんのツイート: "OSDI OS-I四つ目。Forkでプロセスを作る代わりに、rollbackやreference monitorを考慮し、且つ効率的に処理を可能にする新しい抽象LwC: Light-Weight Contextsを導入する話。"
suzakiさんのツイート: "LwC論文ではIntel SGXで再設計する話が出てきている。こちらにも興味あり。"
suzakiさんのツイート: "質問にもあったけど、プロセスのisolationではキャッシュの攻撃やマルチスレッドを使った攻撃も考慮する必要がありますね。その意味でもSGXは重要か。"
suzakiさんのツイート: "明日のOSDIで発表される”SCONE: Secure Linux Containers with Intel SGX”の方がIntel Clear Container https://t.co/5OJRSIVzEi よりセキュアと思うのは気のせい?"
suzakiさんのツイート: "NDSS TEE五つ目。TEEは小さくと言われているがハイパーバイザーもカーネルも大きい。SGX にLibOSの技術を使い、Systcall,スレッド,イベントハンドラ, Forkなどのサポートしつつ小さいTEE(20K行)を保つPanopyの発表。Multi-Enclaveあり"
suzakiさんのツイート: "ハードウェアⅡ一つ目。Intel’s Software Guard Extensions (SGX)と同じ機能を提供するハードウェア拡張Sanctum (RISC-V上で実装) の発表。セキュアなサンドボックス(ここではSecure containerと呼んでいる)を提供する。"
suzakiさんのツイート: "security一つ目。ベストペーパ。Intel SGXを使ったサンドボックスのRyoan。SGXのenclave内のmoduleが用意され、秘密情報を管理。秘密情報はサンドボックス化による出ることはない。moduleは処理が終われば廃棄。"
suzakiさんのツイート: "ASPLOS メモリ2セッション3つ目。Intel SGXが使えるメモリEPC:Enclave Page Cache は128 MBに制限されているため、これ以上をつかうためにはnon-EPCにSwap-out/inする必要がある。しかし、MAC Integrityなどのオーバーヘッドのために40K サイクルかかる。(続く)"
suzakiさんのツイート: "SGXのメモリ拡張のオーバーヘッド問題を解決するためにUnified SGXで使われるデータ管理木を可変にしたVAULT: variable arity unified treeの提案。"
suzakiさんのツイート: "EuroSysストレージ2つ目。SGXにKVS: Key-Value Storageを作るとEPC (Enclave Page Cache 128MB)でSGXのPage Outが起こるので遅い。この性能低下を防ぐため、Sematic Aware Protectionを提案。独自に暗号してEnclave外のProtected Memory に保存するShieldStore。Enclave内にはKVSのSubTreeのRootのみ。"
suzakiさんのツイート: "ハードウェアセキュリティ4つ目。Intel SGXを実際に使い、その経験の発表 by 富士通。Trust領域とNonTrustの領域の通信が遅いのが問題。"
suzakiさんのツイート: "Dark ROPの肝は暗号化されているEnclave内でpop命令を見つける方法。コードのある領域はわざとPage faultを起こして見つける。次にENCLU命令(Enclaveで暗号化された命令を復号する命令)を見つけ、(EEXIT命令も使って?)popが使うレジスタを推定。"
suzakiさんのツイート: "これは知らなかった。 PC Watch 2017/03/07『Ultra HD Blu-rayの著作権保護機能である「AACS2.0」は従来のBDよりもはるかに強固なセキュリティを実現するため、PCでの再生においてはプロテクト解除のために「SGX対応」が必須とされているのだ。』 https://t.co/yWt59i8u4n… https://t.co/dK9pwD3Guy"
PCで4K&HDRなUltra HD Blu-rayを観るにはどうすればいい? 世界初の対応ドライブ パイオニア「BDR-S11J」の動作環境などをチェック!
suzakiさんのツイート: "【緩募】WindowsあるいはLinuxでAACS2.0対応のUltra HD Blu-ray再生アプリって何があるのでしょうか。"
suzakiさんのツイート: "裏が取れないのだけど、「DVDFabがAACS2.0の解除機能を実装」https://t.co/bhaHfQx8C6 ってIntel SGXを突破したってこと?"
DVDFabがAACS2.0の解除機能を実装 | E.i.Z
Intel SGXをコアとしたコンフィデンシャルコンピューティングの実現 - ITmedia エンタープライズ
Intel CPUの「Plundervolt」の欠陥が電圧操作を介して秘密を流出 - 自作ユーザーが解説するゲーミングPCガイド
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
suzakiさんはTwitterを使っています 「メモ。 ざっとしか見てないがSGXの解説が良さそう。 Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity [Master Thesis 2017] https://t.co/4hkOFnQASV」 / Twitter
Trust is in the Keys of the Beholder — Extending SGX Autonomy and Anonymity - jackson-msc-thesis.pdf
suzakiさんはTwitterを使っています 「RAID 2020の採択論文には色々興味深いものがある。 https://t.co/eUWLwO0RiK SGX関連が2件、 A Framework for Software Diversification with ISA Heterogeneity や Dark Firmware: A Systematic Approach to Exploring Application Security Risks in the Presence of Untrusted Firmware も惹かれる」 / Twitter
Accepted Papers – RAID 2020
suzakiさんはTwitterを使っています 「AnonifyのTEEが気になった調べた。 ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&amp;D部門が公開 https://t.co/A4sP3lLhg6 TEEにはIntel SGXを想定しているようだ。 ホワイトペーパもよく書けていそう。 https://t.co/QmdJmA8BCF」 / Twitter
ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 | LayerX
anonify.pdf
suzakiさんはTwitterを使っています 「メモ。 RusTEE: Developing Memory-Safe ARM TrustZone Applications[ACSAC20] メモリセーフ言語Rustを活用してARM TrustZoneのセキュリティを強化するRusTEE。アイデアは単純だが、RustはTEEシステムをサポートしていないため、Rustコンパイラを拡張した。 TEE研究にツールチェーンの重要性を示した」 / Twitter
suzakiさんはTwitterを使っています 「メモ。 Faulty Point Unit: ABI Poisoning Attacks on Intel SGX[ACSAC20] KU Leuvenの研究者が発見したx87(FPU)およびSIMD拡張命令(SSE)の制御および状態レジスタがIntel SGXで常に適切にサニタイズされるとは限らないことを活用した攻撃についての発表。TEE内のサニタイズについての示唆を与えた」 / Twitter
suzakiさんはTwitterを使っています 「メモ A Memory Encryption Engine Suitable for General Purpose Processor, 2016 https://t.co/bb1ZG25I2N Intel SGXで使われているメモリ暗号エンジン MEE: Memory Encryption Engineの論文。」 / Twitter
2016-204.pdf
suzakiさんはTwitterを使っています 「この論文は Date of Publication: 13 September 2021 です。 もうアクセスできないEarly versionはすぐ出たのですが、タイトル変更や謝辞の書き方のやり取りで少し時間が掛かりました。 最終版をアナウンスできてうれしいです。」 / Twitter
TS-Perf: General Performance Measurement of Trusted Execution Environment and Rich Execution Environment on Intel SGX, Arm TrustZone, and RISC-V Keystone | IEEE Journals & Magazine | IEEE Xplore
suzakiさんはTwitterを使っています 「IEEE Access論文が出た TS-Perf: General Performance Measurement of Trusted Execution Environment and Rich Execution Environment on Intel SGX, Arm TrustZone, and RISC-V Keystone [Impact Factor 3.745] TEE実装に依存せずTEE内の実行時間を計測する一般的手法です https://t.co/PMSbfynUtk https://t.co/zJbx3x3Kwb」 / Twitter

Software Guard Extensions - Wikipedia
インテル® SGX 命令とデータ構造の概要 | iSUS
ダウンロード Windows* 用インテル®ソフトウェア・ガード・エクステンションズ (インテル® SGX) ドライバー
Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE
sgxrop/sgxrop: The code to the SGX-ROP paper
Intel SGXからのデータ奪取手法が開発 - ごった日記
Intel SGX のアップデート、および認証キーのリカバリー
wolfSSL FIPSのIntel® SGX対応 – wolfSSL:Blog
WolfSSLとWolfCryptのベンチマーク | wolfSSL
本当の進化とはこういうこと:質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (2/2) - ITmedia PC USER
マイクロソフト、クラウド上のアプリを隔離する新技術「Haven」を開発 - CNET Japan
北森瓦版 - 【Intel】“Skylake”でSoftware Guard Extensions (SGX) を有効化へ
204.pdf
跳ね橋を叩いて渡る An introduction to DrawBridge まとめ #kernelvm - by shigemk2
www.dell.com/support/manuals/us/en/19/latitude-e5570-laptop/LatitudeE5570_OM/Intel-Software-Guard-Extensions-画面オプション?guid=GUID-5D0F897B-F35D-45E9-8B65-F4B2CF32F5E7&lang=ja-jp
インテルSkylakeプロセッサのリビジョン!I7 / I5 / E3フルリニューアル@goodchinabrand.com
2016年2月24日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
48146462.pdf
Teechanの決済プロトコル - Develop with pleasure!
マネーロンダリングなどの不正利用を防ぐインテルCPUのセキュリティ技術「SGX」 ~Intelがなぜデータセンターで強いのか? その包括的な製品群を徹底解剖- PC Watch[Sponsored]
本番稼働でわかった秘匿化技術のチャレンジングなこと - LayerX エンジニアブログ
PCではもう「Ultra HD Blu-ray」を再生できなくなる、いったいなぜ? - GIGAZINE
高梨陣平さんはTwitterを使っています 「Intel Software Guard Extensions (Intel SGX) がUltra HDのBlu-rayの動画再生には必要だが11th generation (or newer) CPUsで削除されてしまった。またドライバからも今後は削除される見込。CyberlinkのPowerDVDでは今後も再生したいユーザは古いIntelコアの使用継続を推奨。」 / Twitter
Hacker NewsさんはTwitterを使っています 「Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU platform: https://t.co/UMtEUShxlP Comments: https://t.co/24TXMnlGbv」 / Twitter
Customer Support - Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU (11th generation or above) platform that does not support Intel SGX feature? Why are Ultra HD Blu-ray discs no longer playable after related Intel drivers and the Windows OS were updated on older platforms that support the Intel SGX feature? | CyberLink
Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU platform? | Hacker News
品川@UKさんはTwitterを使っています 「Intel SGX はクライアント向けCPU では既に deprecated になったらしい。 https://t.co/jh7fXblmj5」 / Twitter
品川@UKさんはTwitterを使っています 「サーバ向け CPU ではまだサポートされるみたいだが、いつまで続くか。 https://t.co/j0GigagN0c」 / Twitter
Will SGX be deprecated? · Issue #760 · intel/linux-sgx
Frank ⚡さんはTwitterを使っています 「Intel deprecates SGX. As a result, new Intel chips won't play Blu-ray disks. https://t.co/pAEQyOkBTP」 / Twitter
New Intel chips won't play Blu-ray disks due to SGX deprecation

TSX

TSX

とよしまさんはTwitterを使っています 「CPUのほうのTMはその後どうなったんだろ。出す時はハード屋の出す数字で盛り上がってたけど、その後コア増えまくりなのにソフト屋さんから評価とか出てないような。」 / Twitter
とよしまさんはTwitterを使っています 「STMはそれなりに流行ってるのになぁ。 やっぱCPUのTMは適用しずらいからかな。プログラミングモデル変えて書き換え変えないといけない上に大きな塊で書き換えないと効果薄いし。自分なら大きなライブラリ内で対応・非対応コードをメンテとかやりたくない。しかもスレッドに関わる部分でとか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim TM のそもそものメリットの1つが雑に書いても結構性能が出る(共有変数の細かいロック制御がいらない)だと思うのですが,マルチスレッドのプログラミングをしてる人は大概玄人でそう言う意味での需要があまりないという点はあるのかなと思っています(昔はまじさんに言われたことでもあるのですが)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim あとは,「現状の」ハードウェアの TM 実装が Intel/IBM ともに結構制限がきつくて,一定以上の長さのトランザクションは扱えないとか,デバッグ機能が貧弱すぎて原因がさぐれないというのも大きい気がします.というか,共同研究先で学生さんが今デバッグ機能がまともになくて泣いています…」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim ホントに素人がコンテンション気にせず書くとロールバックしまくりで遅くなるわけですしねえ。STXは期待してたのにメルトダウン高速化のためにしか使われてないぞっていう悲しさ。。趣味とCTFで遊んだことありますけど、デバッグしんどいですね。。SDE使えばマシなんだったか」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim たしかに本当に何も知らない人が気軽に書いて使い物になるわけでもないですしね… メルトダウンとかに使われているのは,最初みたときは,ただでさえあんまり使われてないのにこれはサポート切られる流れになるんじゃと暗い気分がありました…」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim 簡単にできる系だと広義にはスクリプト言語一般なんかも入るんですかね.ただ,TX の場合はマルチスレッドのプログラミング自体がそもそも一般にはあんま行われないというのがまず課題?な気もします.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim はまじさんが書かれている glibc のって lock elision を使うやつですよね.これに関しては適切にロックで書かれているマルチスレッドのプログラムであればあんまり副作用なく機械的に置き換えられて,はまれば速くなって良いはずとは思うんですけどそんなに使われていないのですかね.」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim 正直全てを忘れたのですが、 HLE vs RTM という意味で lock elision と言われてるのであれば、 RTM の方を使ってるはず?当時流通具合を眺めてた時のスライドが出てきました https://t.co/q4dEM0myBI 最後のページに僕の記憶にあった「簡単なケースでは速くなってた」、がありますね」 / Twitter
TSX - 使いかたいろいろ - glibc の pthread_mutex_t
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim てっきり HLE の方だと思っていたのですが,RTM でソフトウェア的に実装するものだったのですね. 最後のページのものについては「クリティカルセクション内でN個のうちM個のカウンタをランダムに選んで更新…」とかだともうちょっといい感じになってたかもと言う気はするのですが,なんともですね.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim なんだかんだシングルスレッド性能がまだ上がり続けているので今のところは良いのでしょうけど,いずれそれが止まってしまった時にはみんなでマルチスレッドやってツケを払うような不幸な時代になってしまう事もあるんだろうかなと言う気もしました.」 / Twitter

Intel、TSX対応で約6倍に性能が向上した「Xeon E7 v3」 - PC Watch
北森瓦版 - “Haswell”のTSX命令にエラッタが発見され、無効化される処置がとられる
北森瓦版 - TSX命令のエラッタは“Broadwell”世代で修正される模様
20140906
20150912
20150509
20140823
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
トランザクションメモリのサポートが明らかとなったIntelのHaswell (4) トランザクションメモリをサポートするハードウェアを推測 | マイナビニュース
トランザクションメモリのサポートが明らかとなったIntelのHaswell (1) マルチプロセサにおけるロックの必要性 | マイナビニュース
Intelの次世代Core「Haswell」のトランザクションメモリを読み解く(前編) | マイナビニュース
Hiromichi Itouさんのツイート: "うーむ セキュリティ最優先な顧客にはTSXを無効化する手段を提供しないとダメかもなー あとTSX登場時には、すでに指摘があったのね https://t.co/4dpFUKjZq1"
TSX improves timing attacks against KASLR | Bromium Labs
scivey/xact: multi-way atomic compare-and-swap with x64/TSX
Restricted Transactional Memory の概要
Intel TSX について x86opti
TSX - TSX RTM
Haswell のトランザクション同期 | iSUS
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
ASCII.jp:Haswellで導入された新機能「TSX」とは? IDF 2012より (2/4)
Haswell の TSX 機能にエラッタが発見される - 教育は参考ブログ
yohさんはTwitterを使っています 「Intel TSX-NI https://t.co/SRl6EEGujc まじで死んでた SDMからも消えたのね」 / Twitter
Transactional Synchronization Extensions - Wikipedia
TSX は cmpxchg のかわりに使えるか? - Fixstars Tech Blog /proc/cpuinfo

PAIR

Hot Chips 24 - 乾いたタオルを絞るIvy Bridgeの省電力技術 | TECH+

Branch trace - Branch Monitoring Counters ?

Branch trace - Wikipedia
Perf tools support for Intel® Processor Trace - Perf Wiki
Branch Monitoring pentium 4 - Google 検索
IA32_SDM_Vol3B.book - 253669.pdf
IPSJ-JNL5702044.pdf

Deprecated Technologies - 004 - ID:655258 | Core™ Processors

MP

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@PG_MANA_ @Wagahaiha_toto マルチコア初期化は興味あります!マルチコアの起動って、やっぱり16ビットからのモード遷移コードをアセンブラで書く必要があるんですか?」 / Twitter
PG_MANAさんはTwitterを使っています 「@uchan_nos @Wagahaiha_toto そうですね、Methylenixでは16bitからのブートコードを書いてます。 自分はあまりUEFIを使ってないのでそうしましたが、UEFIにはMpService Protocolというのがあるらしいので、それを使うと書かなくてもいいのかもしれません....」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@PG_MANA_ @uchan_nos @Wagahaiha_toto MpServiceでAPを立ち上げて処理を走らせることはできますけど、制御をUEFIに返さないとアボートされます。なのでこのケースのようにAPの永続的な管理を得たい場合は使えないですね(Boot ServicesなのでOSからは使えないですし)。 しかしFull Rust素敵です。Rust勉強の参考にさせていただきます。」 / Twitter
PG_MANAさんはTwitterを使っています 「@SatoshiTanda @uchan_nos @Wagahaiha_toto 情報ありがとうございます。 なるほど、あくまでUEFIアプリケーションで並列処理をしたい時に使うような感じなのですね...参考になります。 OS&amp;Rustの勉強も兼ねて書いているOSですが、Rustでのベアメタル入門として参考にしていただけるなら大変嬉しく思います。」 / Twitter
PG_MANA@FUKさんはTwitterを使っています 「SDMに書いてある初期化手順は一斉にStartupIPI出してセマフォ取りながら初期化していく方式だけど、BSD系列見る限りではAPIC IDリストアップして個別に初期化してるのでそれに従っている」 / Twitter

ME

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「これってMEの話であってUEFIとは別だと認識してたんだがちがうのか…?」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syuu1228 いや ME の話で合ってると思います」 / Twitter
Masanori KusunokiさんはTwitterを使っています 「そういえばUEFIの奥底で動くMinix 3はその後どうなったんだろうか?Minix3のリポジトリをみるとこの数年あまり動きがなさそうだけどな / “インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている…” https://t.co/Ky8XyIS9J8」 / Twitter
インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey

microcode

Linux

Arch Linux

マイクロコード - ArchWiki
Microcode - ArchWiki
Intel Microcode Updateの設定 | 普段使いのArch Linux

Debian

Microcode - Debian Wiki
Debian -- jessie の intel-microcode パッケージに関する詳細
Debian -- wheezy の intel-microcode パッケージに関する詳細
kanamonoさんのツイート: "@itoooon 多分同じURLにたどり着かれたと思いますが、Debianでは次のURLで議論されておりました。 https://t.co/kirM719eGY"
#886367 - intel-microcode: coming updates for meltdown/spectre - Debian Bug report logs

Ubuntu

How to update Intel microcode properly? - Ask Ubuntu
Ubuntu Manpage: update-intel-microcode - download current Intel processor microcode
Ubuntu改造日記 x86高速化 Intel&AMD 最新Microcodeアップデート編 その7: Kapperのブログ 新館

https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
linux - What is Intel microcode? - Stack Overflow
Building Intel CPU Microcode Updates Directly into the Linux Kernel - DOTSLASHLINUX
Intel microcode - Gentoo Wiki
drivers - Should I enable the intel-microcode (Linux Mint 18)? - Unix & Linux Stack Exchange
LinuxでCPUのマイクロコードをアップデートする方法 | マイナビニュース
LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 | TechCrunch Japan
Linuxカーネルがx86 microcodeを扱う処理について - Qiita

Twitter

高梨陣平さんのツイート: "CPUのマイクロコードは企業の独自技術で良く知られていない。マイクロコードは更新は可能だが最新のCPUは暗号技術で防いでいる。しかし2013年レベルのCPUはカスタマイズが可能だ。マイクロコードをリバースエンジニアリングで解析し自らのプログラムを記述した詳細を公開。解析には電子顕… https://t.co/FA4AzYVxky"
Hacker News 100さんのツイート: "An introduction to reverse-engineering x86 microcode and writing it https://t.co/QmRjk0SmNj (https://t.co/mY2Hh7cEXg)"
media.ccc.de - Everything you want to know about x86 microcode, but might have been afraid to ask
An introduction to reverse-engineering x86 microcode and writing it | Hacker News
まさみさんは語りたいさんのツイート: "なんだ、マイクロコードのファイルを開いたら、releasenoteにインストールの仕方が詳しく書いていた。"
Hiromichi Itouさんのツイート: "お、4.15.2出てる https://t.co/JLkHHhwM9S 問題のあるmicrocodeを排除する仕組みがマージ x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes"
LKML: Greg KH: Linux 4.15.2
suzakiさんのツイート: "マイクロコードの更新は、 1.64bit仮想メモリの特定領域に更新フォーマットに従ったコードを置く。 2.MSRに0xc0010020をセット。 3.wrmsr 命令で更新。5,000 cyclesで終了。"
高梨陣平さんはTwitterを使っています 「研究者がIntelの秘密鍵を暴いた。 IntelによるCPUのマイクロコードの更新等が復号可能に。パッチがどのように修正しているか等が明らかに。」 / Twitter
LobstersさんはTwitterを使っています 「In a first, researchers extract secret key used to encrypt Intel CPU code https://t.co/7f81XS08m1 #crypto #hardware #security https://t.co/8qfgsmXAxw」 / Twitter
In a first, researchers extract secret key used to encrypt Intel CPU code | Lobsters
In a first, researchers extract secret key used to encrypt Intel CPU code | Ars Technica
Liran AlonさんはTwitterを使っています 「https://t.co/XqsW3wY07b Intel reveals XuCode: Code loaded as part of BIOS early microcode update, stored on DRAM (PRM protected) and implements subset of SGX instructions. CPU executes XuCode in special XuCode-mode which include macro-ops translating to uops outside of x86 ISA.」 / Twitter
XuCode: An Innovative Technology for Implementing Complex Instruction...

Download Linux* Processor Microcode Data File
2015 年 6 月付の Windows 用インテル CPU マイクロコード更新プログラム
Update Intel CPU Microcode | dereenigne.org
microcodeって、何 ? | (まだ無題 ; そのうち変更するかも)
本の虫: Intelのドキュメント化されていないマイクロコードアップデート用のバイナリの考察
第132回 CPUマイクロコードのアップデート方法(FreeBSD):BSD界隈四方山話|gihyo.jp … 技術評論社
Microcode Update Guidance
Mitigation strategies for JCC microcode
Loading Microcode from the OS
chip-red-pill/uCodeDisasm
Intel CPUのマイクロコードを変更可能な2つの未公開インストラクションが発見された

分岐予測

ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき
NAKAMURA Minoru's Diary (2010年4月)
分岐予測の簡単な歴史 – Part 1 | POSTD
分岐予測の簡単な歴史 – Part 2 | POSTD
分岐予測の簡単な歴史 – Part 3 | POSTD
ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき

BIOS

Option ROM - Wikipedia
Power-on self-test - Wikipedia
Power On Self Test - Wikipedia
Tips BIOSブート仕様その1 概要と用語
Tips BIOSブート仕様その2 IPLデバイス
Tips BIOSブート仕様その3 IPL優先度
Tips BIOSブート仕様その4 BCV優先度
Tips BIOSブート仕様その5 POSTシーケンス処理
Tips BIOSブート仕様その6 データ構造と補足説明
satさんのツイート: ""BIOS"という言葉自体の初出はCP/Mのはず。意味はIBM PCのそれとは全然違うんだけど"

vPro

【Intel vPro レビュー:第1回】リモートワークにvProを活用!個人で環境を作ってみた - INTERNET Watch[Sponsored]
【Intel vPro レビュー:第2回】PCの電源をリモートでオン!……はあっさり成功 - INTERNET Watch[Sponsored]
【Intel vPro レビュー:第3回】「PCがフリーズしてしまった!」をリモート復旧、しかもネット越しに! - INTERNET Watch[Sponsored]
【Intel vPro レビュー:第4回】ネット越しの「OS再インストール」もやっぱり簡単 - INTERNET Watch[Sponsored]
【Intel vPro レビュー:第5回】「大量のPCを一括再起動」も簡単、無償の強力管理ツール「Intel EMA」を使ってみた - INTERNET Watch[Sponsored]
【匠の部屋】「電源オフ」でも使えるリモートデスクトップはなぜ動くのか? 進化し続けるインテル vPro プラットフォームの秘密 - INTERNET Watch[Sponsored]
【匠の部屋】なぜvProはファイアウォールを簡単に突破できるのか? - INTERNET Watch[Sponsored]
「電源オフでもノートPCを遠隔制御」巨大データを扱うスタートアップ企業がvProを選んだ理由 - INTERNET Watch[Sponsored]
「在宅+オフィス勤務」に最適化した新型レッツノート。パナソニックがこだわった「多様な働き方のためのPC」とは? - INTERNET Watch[Sponsored]
社長兼レーシングドライバー、多忙極める経営者が選んだノートPCとは? - INTERNET Watch[Sponsored]
vPro搭載dynabookで「最新に更新しているつもりだった…」を無くしていく、既に800台を導入した「攻めのセキュリティ」とは? - INTERNET Watch[Sponsored]
コロナ禍のエッセンシャルワークで求められるPCの性能とは? 名古屋市療養サービス事業団がvProを選んだ理由 - INTERNET Watch[Sponsored]
モバイルノートPC、リモートデスクトップ、vProで目指す、ポルシェディーラーの新しい営業スタイルとは? - INTERNET Watch[Sponsored]

Lord of the Ring(s)

FadisさんはTwitterを使っています 「Intel CPUのプロセッサ間を結ぶリングバスをリバースエンジニアリングして、あるプロセッサで観測したバスのレイテンシの時間変化から、同じバスに繋がる他のプロセッサが何をやっているかを予想するサイドチャネル攻撃が現れたらしい https://t.co/0Uy03jAfyq」 / Twitter
Researchers Discover Intel CPU Ring Interconnects Vulnerable To Side Channel Attack - Phoronix
FPSG-UIUC/lotr: Source code of the paper "Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical"
[2103.03443] Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical

本の虫

本の虫: x86のmov命令はチューリング完全
本の虫: x86のMMUはチューリング完全である

マイナビ

IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編 (1) AVX2について | マイナビニュース
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
HPC性能が大幅に強化されたHaswell(後編) - HPCとして通用する性能を実現 | マイナビニュース
新Xeonで何が変わったか - 内部構造を解説 (2) | マイナビニュース

POSTD

モジュロ演算の替わりとなる高速処理 | コンピュータサイエンス | POSTD
CPUマスク | プログラミング | POSTD

Qiita

x86_64での再帰ページマッピング - Qiita

Twitter

その他

tanakmura🌛さんのツイート: "https://t.co/k7h93oJ0kp これの話してもいいかな。紹介と、正しい値を取るための細かいテクニックとか。知ってる人は知ってるだろうけど、一覧にしてあれば、どれか知らない人にヒットするかもしれないし、一回ぐらいちゃんと説明したい気がする。"
tanakamura/instruction-bench: instruction-bench
Kazuho Okuさんのツイート: "SkylakeでPAUSE命令が14倍遅くなってスピンロックやばいって話 / “Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing …” https://t.co/6yus862byg"
Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus
InstLatX64さんのツイート: "#Intel released the 68th edition of the Software Developer’s Manuals with V2 Extended Topology Enumeration Leaf in CPUID.1Fh for Module/Tile/Die levels https://t.co/qh7jNcQQFN… https://t.co/WthEDZNp0Y"
高梨陣平さんはTwitterを使っています 「Intel CPUの隠し命令を探すお話。Intelのドキュメントの貧弱さを嘆きつつ、過去に起こった問題をさらい、最大15byteに及ぶ命令空間を全部実行するのは無理なので戦略が必要との解説。optesterが公開されている。 https://t.co/RWH8b5nYuz」 / Twitter
Hacker News 100さんはTwitterを使っています 「Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64 https://t.co/ITvc94IBfE (https://t.co/6rglM7O3r4)」 / Twitter
undocumented-cpu-behavior.pdf
Undocumented CPU behavior: analyzing undocumented opcodes on Intel x86-64 (2018) [pdf] | Hacker News
Satoshi TandaさんはTwitterを使っています 「Intel SDM added the Ice Lake specific MSRs. Ice Lake introduced the concept of the access level to lock the configuration registers as the 2nd line of defense. Once the DONE bit is set, they are automatically RO. @CHIPSEC detects it if the bit is not set https://t.co/fFoB1y7Dnw https://t.co/vo0yBgY2mE」 / Twitter
Add ICL support · chipsec/chipsec@35a614c
(1) Satoshi TandaさんはTwitterを使っています 「Happy to see the platform-level improvement to reduce a chance of shipping devices without proper security configurations (eg, setting lock bits individually).」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled https://t.co/ggkdgU7EFH @ZDNet &amp; @sjvnから AMDとIntelが長年蓄積されたx86の例外周りのおかしな仕様を何とかしようとしてる。」 / Twitter
Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled | ZDNet
Makoto Kato ︎︎さんはTwitterを使っています 「Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system https://t.co/aPKWdCzIGf」 / Twitter
Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system – random blog
Naoya HoriguchiさんはTwitterを使っています 「multi-tiered memory 論文 https://t.co/bkd51I0FOM、最近メインラインにマージされた Intel の実装よりもうまく最適化しているようだけど、ページごとに 32byte 管理領域が必要になるからちょっと厳しそうですね。」 / Twitter
Exploring the Design Space of Page Management for Multi-Tiered Memory Systems | USENIX
Naoya HoriguchiさんはTwitterを使っています 「どっちの実装も AutoNUMA を前提にしているから、色々知ってないと手が出ないなあ...」 / Twitter

users

@hisak

Hisaki Oharaさんのツイート: "SkylakeとGoldmontがArchitectural Performance Monitoring version 4ってのをサポートしているのか。いつのまにこんなにversionが上がっていたとは。もうよく分からん。。 #IntelSDM"
Hisaki Oharaさんのツイート: "Intel SDM Vol.3 8.2節 MEMORY ORDERING をみて、何言ってんだこいつってなった人には大変お勧めだった RT Memory Reordering Caught in the Act https://t.co/Z1JZiXvcti"
Hisaki Oharaさんのツイート: "いま 48-bit長 CR3 -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "将来 57-bit長 CR3 -> PML5E (9-bit) -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "GAする前にPCOMMIT命令が消え去った経緯がまとめられてるw https://t.co/mexxGMsIDw"
Hisaki Oharaさんのツイート: "CLWB命令の記述はInstruction Set ExtensionsからSDM Vol.2に移動してた"
Hisaki Oharaさんのツイート: "Intel SDM rev.64を斜め読みしたけどVol.3はminor updateが多いかなあ。IOMCAの記述でPCIeのspecに触れているのは珍しかった。 https://t.co/WNOD1I9XRN"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Intel SDMの9.10.2にあるSTARTUP.ASMが全然本文のアップデートに追随できてなくてワロタ。"
OS作れないマン WalB担当さんのツイート: "保護モードからIA-32eモード(64ビットモード)に遷移するためにはLMA=1にする必要があるが、LMAは読み取り専用ビットだから、4レベルページングを有効化する手順を行うことで間接的に1にするしかないらしい。64ビットモードではページングが必須と言われるゆえん。"
ファッション自作OSマンさんのツイート: "カノニカルアドレスは僕もやられた https://t.co/qq4LEbmGYd"
c - Canonical address - Stack Overflow
技術書典4 け-51 x86-64-128さんのツイート: "Interrupt ID でもふつうに通じるよねっていう話。… "
uchanさんはTwitterを使っています 「これ,まさか,stiの直後にcliしているから,stiの特例によってまったく割り込み許可状態にならないまま永久ループしておるのか?」 / Twitter

@deep_tkkn

Deep(Ph.D Go player)さんのツイート: "smp_affinityもいじったし、MSIのdest_modeもlogicalになるようにしてみたけど、割り込みが1コアに集中するのなんで"
Deep(Ph.D Go player)さんのツイート: "CONFIG_HOTPLUG を無効にしろみたいな記事みたから無効にしたが効果ない"
Deep(Ph.D Go player)さんのツイート: "intremap=off しないと MSI の dst-mode が physical になるからそれもやった"

@liva_jy

Livaさんのツイート: "@utshina2 なるほど、ありがとうございます!つまり、カーネルコード側のセグメントを事前にチェックしておいて、システムコールの度に毎回チェックするのを避けるという事ですよね。確かにそれはかなり早くなりそうです。"
Livaさんのツイート: "一回くらい自分でfastcallとint $$の性能比較をした方が良さそう。 #liva_notebook"

@NerryN3

光宙🌟さんのツイート: "#DB(Debug Exception)っていつの間にReservedになってたの"
光宙🌟さんのツイート: "https://t.co/wCoBYm7kPW"
Nerry@求職中さんのツイート: "x86のpush命令のFF /6エンコーディングと一見対になりそうなFF /7はずっと未定義命令で、実際に対になってるpop命令の8F /0エンコーディングの/0以外はずっと未定義っていう謎の組み合わせ"
Nerry@求職中さんのツイート: "よく調べたら8Fの/0以外はAMDのXOPプレフィックスに使われてた"

Fadisさんのツイート: "Intel、10nm世代のプロセッサでECCエラーなどのハードウェアの異常を検知する(EDAC)ドライバ、i10nm_EDACをLinuxカーネルに追加。新しいマイクロアーキテクチャの呼び名、それで良いんだ… https://t.co/NvFJYUJ53F"
I10nm Is Intel's New EDAC Linux Driver For Icelake Server CPUs - Phoronix

RISC-V

IntelがRISC-VアーキテクチャのCPUコアを同社のプラットフォームに採用 - iPhone Mania
Miura HidekiさんはTwitterを使っています 「RISC-V、確かに興味深いが、バイブル的な本を読むとものすごく独善的で大丈夫かしらん?という気分になる。あと、アセンブラ・ディスアセンブラは作りにくそうだなという命令ビットパターンですわね」 / Twitter
Miura HidekiさんはTwitterを使っています 「経験則から、独善的な物言いをする技術は大体短命(その間に熱狂的な支持を受けるわけだが」 / Twitter
Miura HidekiさんはTwitterを使っています 「逆にものすごくたくさんの既存技術を集めて、徹底的に研究して既存技術で優れたものは評価したうえで取り込んだような技術はものすごく強い」 / Twitter
hrk先生さんはTwitterを使っています 「@miura1729 横から失礼します。RISC-Vについて一番懸念しているのは、Specificationベースでバリエーションを許している点です。なにかT〇〇〇プロセッサのことが思い起こされます。想像される将来像はRISC-Vベースシステムなのに互換性がないものが多種あるというものです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@Prof_hrk RISC-Vがある程度のシェアを取るようなことになれば、シェアの大きい実装かキラーアプリケーションに合わせて事実上必須の拡張機能が決まってくるような気がします。掛け算のないRISC-V CPUでトースターの制御をするとか本当にありえるのかな?とも思います。」 / Twitter
hrk先生さんはTwitterを使っています 「@miura1729 そこが今後の課題と思います。コンソーシアムのメンバーであっても、本質的には競合社のあつまりなので他社の仕様に従うインセンティブはないと思っています。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@Prof_hrk いまCPUメーカが独裁的に行っている仕様の決定を民主的に出来るかというはなしですね。インターネット技術関連では上手く行っていますけど、スーパーコンピュータから組み込みまで幅が広いですからね。」 / Twitter

HT

Shirouzu Hiroaki(白水啓章)さんのツイート: "HT初搭載のPentium4だと、パイプラインの深さもあって演算器がスカスカになりやすかった。 なので、手動で依存関係を減らす順序にするだけで(シングルスレッドでも)改変blowfishの速度が4倍になった記憶。 https://t.co/jmWuRKkHU7 (その時の簡易メモ)… https://t.co/ctaTpf3pLh"
私的メモ(2003年12月版)
Kazuho Okuさんのツイート: "典型例以外で重要なケースとしては、レイテンシの大きな命令の実行中に別スレッド動かせるとか。AES-NIがこのパターンなのでウェブサーバではHT有効にすべきという理解 参考: https://t.co/zYqvz1KJp5… "
Kazuho Okuさんのツイート: "あー正確に言うと、最近のAES-GCM実装は並列処理がんばってるからHTオフでもいいけど、昔ながらのAES-CBCやパケット番号暗号化が入るQUICではAESNIのレイテンシが問題になるケースがあり、従ってryというところです"
Kazuho Okuさんのツイート: "っていうかHTはメモリレイテンシの隠蔽というより、空いてる演算器を埋める仕組みとしての側面が大きかったような気もしてきた"
ts4さんのツイート: "Hyper-Threading Technology Benefits の節にそういった記述ありますし、Utilization of Processor Resources の節にも、NetBurstのころCPUのリソースぜんぜん使えてなかった的な記述がありますんで、そのへんの稼働率を上げるのが目的だったのではないかと https://t.co/MSakkBQaGk… https://t.co/LOl4zG2r3v"
Hideyuki Tanakaさんのツイート: "HTTの効果がでかいのは典型的にはメモリのランダムアクセスしまくりでストールしまくりの演算器遊びまくりみたいな時で、実際こういうケースだと倍近くまで速くなることがあったけど普通のアプリだと限定的だし、CPU側からするとOoOを頑張ってIPCを稼げば稼ぐほど効果が少なくなるというジレンマ(´・_… https://t.co/KoJ0OZUdjs"
まさきはるか(Usk)さんのツイート: "実際、HTに効果があるのかないのかが、ベンチマーク人とサーバー人の発言しかなくて全くわからない。コア数少ないときは効果ある気がしてるけど…… "
Hideyuki Tanakaさんのツイート: "2年ぐらい前の人に、インテルが8コア8スレッドのi7を出しそうとか言うと、どんな顔するかな(´・_・`)99割ぐらいの人はガセだと思うだろうけど"

TSX

FadisさんはTwitterを使っています 「IntelがTSX拡張命令を使えなくするマイクロコードの更新を用意している話。Transactional Synchronization Extensions(TSX)はトランザクションの開始から終了までの間に行われた複数のメモリ操作が他のCPUによる操作とぶつかった場合に開始前まで戻って処理をやりなおす機能 https://t.co/iE8FNFEg7s」 / Twitter
Intel To Disable TSX By Default On More CPUs With New Microcode - Phoronix
FadisさんはTwitterを使っています 「TSXはSkylakeで登場した当時、複数のCPUが同時に触ってもスケールするデータ構造を作りやすくする夢の機能と考えられていたが、同一ホストの別のCPUで実行されるプロセスがTSXの実行時間を観測する事でサイドチャネル攻撃が可能になる脆弱性(CVE-2019-11135)が報告されていた」 / Twitter

NMI

品川 高廣さんのツイート: "「BitVisor 2018年の主な変更点」では、BitVisor における NMI 処理の問題が述べられています。パススルー型 VMM でハードウェア仮想化支援機構を使ったとしても、NMI を本当に正しく処理するのはとても難しそうだと実感させられます。https://t.co/h2grTghKus"
BitVisor Summit 7「2. BitVisor 2018年の主な変更点」

SMI

まさみさんは語りたいさんのツイート: "あるある(笑)SMIの処理が強烈に遅くて、「OSに問題があるんじゃないか?」と言われたこともあった。… "
Yasunori Gotoさんのツイート: "コードギアスR2で時間を止める能力を持っていたキャラがいたけど、主人公が「心の中でカウントしていた数」と「実際の時計の時間」に差があることに気が付いて、その能力を見破るシーンがあったよね。 SMIはOSの中でリアルにそれが起きるんだよね。"
Yasunori Gotoさんのツイート: "SMIはカーネル(というか割り込まれたCPU)から見ると、時間停止の魔法みたいなものに見えるんだよね。ファームが必要だと判断したら、そこでSMIとして割り込んで、その間ファームがゴリゴリと動くという仕組み。"
Yasunori Gotoさんのツイート: "昔のカーネルは一定時間内にカウントして、あるハードの能力を図るといったコードが結構あったけど、その間にSMIが入るとOSはカウントできなくなってしまうので、本来のでるべき値に対して実際のカウントの値が異なってしまい、カーネルが異常な動作をするというトラブルが結構あった。"
Yasunori Gotoさんのツイート: "このため、SMI=トラブル=コードギアスという関係が自分の中で出来上がってしまい、SMIの文字を見るたびに主役のルルーシュ君の声が脳内を駆け巡ってしまうのである。"
まさみさんは語りたいさんのツイート: "ちなみにSMIはサーバHWのファームウェアの処理なのでOSは関与しません。濡れ衣だー"

Alder Lake

InstLatX64さんはTwitterを使っています 「How could I miss this ??? So there is a plan for #AVX512 definitely. Maybe it is restricted to ADL-S or 8 bigCore or top SKU (like per-core HyperThreading on #CometLake and Adaptive Boost Technology on #RocketLake) Thx, @PerforatedBlob!」 / Twitter
HXLさんはTwitterを使っています 「intel Alder Lake 8 big core+8 small core=disable AVX-512 8 big core=AVX-512 https://t.co/LGFkKJWuI1 https://t.co/Vku742CGsh」 / Twitter
Marco ComerciさんはTwitterを使っています 「@InstLatX64 @PerforatedBlob I thought of a solution to leave power hungry features enabled: a processor driver that migrates the threads that need that instructions on the big cores: the little cores will issue an #UD exception on unsupported features and the kernel will tag and migrate the threads...」 / Twitter

UD発生関数

tnさんはTwitterを使っています 「わたし「lock; nopでシステムコール発行してるっぽいとこがあるのですがこれなんですか……?」 hikaliumさん「これは意図的にundefined opcodeの例外起こすやつですね」 fadisさん「x86でよくみるやつ」 わたし「えぇ……?」」 / Twitter
tnさんはTwitterを使っています 「s/システムコール発行/関数呼び出し/」 / Twitter
とみながたけひろさんはTwitterを使っています 「この手のいかに高速にthunkというかゲートというかを実現するハック、最近は安全性とかに考慮しつつもハイパーバイザー呼び出しで同じように各種ハックがあると聞いて笑っている」 / Twitter

UD0の命令が更新

まさみさんは語りたいさんのツイート: "ちょうまって、これは酷い。"
まさみさんは語りたいさんのツイート: "UD0の命令が更新されて変わってしまっている@最新のSDM 0F FF /r UD0 r32, r/m32 Some older processors decode the UD0 instruction without a ModR/M byte. じゃねーよ!"
まさみさんは語りたいさんのツイート: "これIntelが互換性を捨てましたっていうことじゃないですかーやだー。"
まさみさんは語りたいさんのツイート: "なあIntel-san、どのプロセッサからこれ変わったんだ・・・?そしてobjdumpはどうバイナリをダンプすればいい・・・?"
まさみさんは語りたいさんのツイート: "いずれにしてもカーネルの中にテストコード仕込んでおいてよかった感。"
UD — Undefined Instruction

red zone

ファッション自作OSマンさんのツイート: "IA32eモード(64ビットモード)でのOSプログラミングのハマりどころ ・アセンブリで関数を書く際、スタックを16バイト整列しないといけない ・red zoneの存在"
Red zone (computing) - Wikipedia
書籍の補足情報
x64 Assembly Language
GNU CとUNIXシステムコールだけで実行時アセンブラ ( ソフトウェア ) - 一人一党党 - Yahoo!ブログ

コードレビュー

Kazuho Okuさんのツイート: "今日はコードレビューで、ファストパスはインライン展開できるようにしつつ、スローパスはコードの密度が問題にならないようextern関数に追い出して下さいという話をして、それは一般論としては正しいんだけど最近の分岐予測の発達したIntel CPUでどうなのか誰か定量的なコメントくだしあ"
Kazuho Okuさんのツイート: "マイクロベンチで関数展開しない方が速くなるケースがあるのは知ってる"

x64

るくすさんのツイート: "@liva_jy すみません。超基本的な質問なんですけど、x64のiretq命令実行時のスタックって、rip,cs,rflags,rsp,ssを全部*64bit*でスタックから降ろしてくるんでしたっけ...."
satさんのツイート: "x86_64の初見殺し仕様です Architecture defines a 64-bit virtual address. Implementations can support less. Currently supported are 48- and 57-bit vir… https://t.co/Om2VjPitlS"
まさみさんは語りたいさんのツイート: "君らが聖典としているintel SDMもバグってることが多いから注意な。"
まさみさんは語りたいさんのツイート: "SDMのopcode mapを読むと色々見えてくる。特に最初の命令セットは結構キレイに並んでる。… "
るくすさんのツイート: "x86もだ。意外と知らなかった超基礎知識。 いやバラバラに並べる意味なんてそりゃあないんだけど。 x86 architecture condition codes https://t.co/NMGe3Mv79a"
sandpile.org -- x86 architecture -- condition codes
パーフェクト・鳥頭・ジュニアさんのツイート: "@uchan_nos 確認は出来てないですが、push ax ってオペランドサイズプレフィックス付いてて、push cs には付いて無くないですか?"
ロボ太さんのツイート: "YMMのシャッフル系命令がいつもごちゃごちゃになるのでチートシート作ってみた。 https://t.co/4kv02PA6uf"
中村 実さんのツイート: "Intel先生やべえよ。アフィン変換用の命令を追加するつもりだ。その上、VMMの制御で4KBページを128バイトのサブページ単位に区切って各サブページ毎に書き込み保護を出せるようにするとな。 https://t.co/Tm0IoW8ZHV"
くまぎさんのツイート: "ハードウェアトランザクショナルメモリは人類にはまだ少し早過ぎる。トランザクション中はprintfもログもデバッガでのトラップも出来ないし、アボート要因の情報が限られるので最終的にはエスパーしかない。あと僕の使い方が悪いのか意外と速くない。"
とみながたけひろさんのツイート: "整列例外ですね。ロードストア命令でアクセスするアドレスの下位何ビットか(命令や特権レジスタの設定によって異なる)が0じゃないときにでます。x86でもがんばればだせますが普通はでないやつ… "
moraさんはTwitterを使っています 「動的にバイナリにパッチを当てようとすると、x86の場合当該箇所がpop raxみたいな1バイト命令だとjmp xxxに変えられず困るが、強引にpop raxをjmp命令(e9)にしてしまい「jmp 謎アドレス」に飛ばした上でその「謎アドレス」をmmapしてそこにパッチバイナリを置く手法があるらしい(instruction punning」 / Twitter
moraさんはTwitterを使っています 「ところで「謎アドレス」が既に使われていたり確保できない場所だったりする場合にはうまくいかないが、jmp &lt;固定アドレス&gt;とする代わりにnear jump命令に書き換えることで問題を先送りにし、near jump先で同様の手続きをするようにすると、ほとんどのバイナリでパッチができるらしい https://t.co/SfYIURRxHY」 / Twitter
moraさんはTwitterを使っています 「pwnみたいで面白い https://t.co/MF5lM9apTE」 / Twitter

Ring1, 2

品川 高廣さんのツイート: "x64 (x86_64) の long mode では ring protection は廃止されて user mode と kernel mode しか無いと思い込んでいたけど、ちゃんと segment 定義して call gate 経由で呼び出せば 64 bit の ring 1 も ring 2 も使えるのね。"
Nerry さんのツイート: "リング1やリング2が使えてもセグメントベースやセグメントリミットでアクセス制限かけれないしページ属性的にはカーネル扱いなので使い道がない気がします… "
品川 高廣さんのツイート: "遅ればせながら、ACM CCS 2018 のこの論文(の動画)を見て、使い道を知ったのですよ。https://t.co/uRVxKJDme7… "
Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86 - YouTube
Nerry さんのツイート: "あとで動画見てみます… "
Lord of the X86 Rings: A Portable User Mode Privilege Separation Arch…
品川 高廣さんのツイート: "2018年にもなって Intel x86 のリング保護を使った論文が出るとはね。SOSP '99 の Palladium とどう違うのかとも思ったけど、普段は 64bit で動いて一時的に 32 bit に戻してセグメント&リング保護を有効にしたり、Ring 1 でゲートを作ったり、結構複雑にはなっているんだな。https://t.co/dEQGO5VyI1"
[1805.11912] Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
品川 高廣さんのツイート: "ACM CCS 2018 の論文はこちら。Hojoon Lee, Chihyun Song, and Brent Byunghoon Kang. Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86. In Proc. 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). https://t.co/oxAe4bBkWz"
Lord of the x86 Rings

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のPC-AT機のパタヘネ本、欲しいところ。 (CPU接続なメモリとPCIe/DMAの関係や PCIe routing などを、もう少しクリアに理解したいというか) https://t.co/oNZURSbSnb」 / Twitter
SSD-to-GPU Peer-to-Peer DMAとバッファ管理(その1) - KaiGaiの俺メモ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(パタヘネ/ヘネパタ本は、CPUとしてx86/64は取り上げるけど、PC-AT機のような全体アーキテクチャはスルーなんだよなぁ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「例えば CPU接続メモリに、PCIeからDMA転送する場合とか、PCIeデバイスは(メモリコントローラとしての)CPUにデータを送り込んでると思うのだが、PCIeデバイスからDRAMまでの経路種類やバス調停の詳細を理解できてない、みたいなモヤモヤ感(笑)」 / Twitter
FadisさんはTwitterを使っています 「PhoronixによるIntelプロセッサなMac mini上でmacOS 12と他いろんなOSを動かした時の性能比較。タスクによって有利なOSは大きく変わるが最も多くのベンチマークでトップを取っているのがClear Linux、次点でmacOS。太古のx86_64との互換をさっさと捨てる2つが上位に来た形 https://t.co/ezbtolYLZ9」 / Twitter
macOS 12.1 vs. Ubuntu vs. Clear Linux vs. Windows Benchmarks - Phoronix
FadisさんはTwitterを使っています 「最初のx86_64プロセッサであるAthlon64が登場してから既に18年。「全てのx86_64プロセッサで使える命令しか使ってはいけない」という要件は既に多くのタスクで無視できないレベルの性能上の足枷になるようになってるんだよな」 / Twitter
カナやん@みかん本停滞中さんはTwitterを使っています 「@fadis_ Clear Linuxって、今でもx86_64向けじゃないんですか?」 / Twitter
FadisさんはTwitterを使っています 「@rkarsnk Clear Linuxはx86_64向けでこのベンチマークはx86_64で行われた物です。Clear Linuxの大きな特徴はSSE 4.2を持たない古いx86_64プロセッサのサポートを切って常にここ(Core2末期あたり)までの拡張命令が使える事を期待して良くした点です」 / Twitter
カナやん@みかん本停滞中さんはTwitterを使っています 「@fadis_ なるほど、「太古のx86_64との互換を捨てた」=「SSE 4.2を持たない古いx86_64プロセッサのサポートを切った」ということなのですね。 macOSがApple Siliconに移行しつつあることもあって勘違いしてしまいました。」 / Twitter

Microkernel・LibraryOS

副作用は定理証明的な世界に閉じ込め困難

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なるほど、興味深い。 同一コアには、OS側で安全なスレッドペアしか流さないお約束にして、対策無しが楽そうではある。 (SMTは本質的に「これで安心」みたいな対策は無理では感)」 / Twitter
R. ShioyaさんはTwitterを使っています 「質疑では「SMT はセキュリティ的な懸念とかあるけど AMD は今後どうするん?」って質問あったけど,「SMT はゲインも大きいしちゃんと諸々対策してうちらは続けるで」だそうな(聞き間違いでなければ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「副作用は正確に表現/定義できないから、定理証明的な世界に閉じ込め不能、といったイメージある。 (タイミング、電流/電磁波パターン等から、どういう情報がどれだけ漏れているかが定義できたら凄いな) https://t.co/XH44oSGZYO」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「seL4(形式的証明による実装バグ無しOS)と Meltdown/Spectre関係…副作用のため影響を受けると。 対応中だがパフォーマンスとのトレードオフになる話。 (この手の副作用は明示定義は無理=止む無し感) seL4: https://t.co/P9dqbiRoqk ---- Crisis: Security vs Performance https://t.co/h8coMlM0HC」 / Twitter
L4マイクロカーネルファミリー - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「副作用なんて、タイミングはもとより、もっと外部だと電力消費・電磁波・音波・振動なんてものまであるしなぁ…」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu OS 側でなんとかしとけば的な話はしていましたね. 実際それで良いのではと思います.」 / Twitter

L4 以降

L4 - Wikipedia
L4 microkernel family - Wikipedia
L4 ‐ 通信用語の基礎知識
マイクロカーネル - Wikipedia
Microkernel - Wikipedia
代替OS (PC用) | Netsphere Laboratories
2011年11月24日 Linux&Linusにモノ申す!? あのTanenbaum教授が久々にメディアに登場:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロカーネル - マイクロカーネルの概要 - Weblio辞書
Microsoft Word - shousai.doc
L4 · oraccha/omicron Wiki
An Introduction to Drawbridge(ja) // Speaker Deck
品川 高廣さんのツイート: "「Secure Enclave は、Apple がカスタマイズした L4 マイクロカーネルを実行します。」って知らなかった。https://t.co/NBXlx0OfKn"
iOS_Security_Guide.pdf
yuYabu☕️さんのツイート: "L4の仕様がまとまってるl4hqというサイト https://t.co/Ig7Z5bzxLn #osdev_moku2"
L4HQ - The L4 Headquarters
ぬるぽへさんのツイート: "組み込みではモノリシックなライブラリOSを提供することが多い #osdev_moku2"
ぬるぽへさんのツイート: "最近のトレンドだと「メモリ空間管理はカーネル空間に持たすことが多い」と表現するらしい、ポリシーはユーザー空間で制御するがマッピングはカーネルでやることを指して > マイクロカーネル #osdev_moku2"
L4Android
社会人でもOSを作りたいさんのツイート: "今日の自作OSもくもく会の発表はほんまに濃かった。L4マイクロカーネルって全体をアセンブリ言語で書くことにより高速化したっていう話、コンパイラの限界を感じる。"
Takeharu KATOさんのツイート: "正確にはL4の前身のL3がアセンブラでL4の世代は部分的にCで書かれて後々C++になったと思います(C++になった当たりからはちゃんと追ってないのですが)。… "
ぬるぽへさんのツイート: "唐突に気づいてしまったんですが、マイクロカーネルには厳密にはプロセスという概念はないのに、実行プリミティブ間通信をIPCと呼ぶとはこれいかに"
HermiTux | A binary-compatible unikernel
ssrg-vt/hermitux: A binary-compatible unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Shinichi MiyazawaさんはTwitterを使っています: 「形式検証済みのマイクロカーネルといえば、seL4が有名。 https://t.co/zli9rN7cXA」 / Twitter
Home | seL4
The seL4 Microkernel – An Introduction - seL4-whitepaper.pdf
mumumuさんはTwitterを使っています 「Evolution of the PikeOS Microkernel VMMもMicrokernelの一種という思想で,L4から派生した自分たちのOS(VMM)の上にRTOSとGPOS,そのた実行エンジンを載せて,組込み環境で使おうぜ,みたいな主張.jailhouseとかQuest-Vとかの源流.07年の論文だが,プロ時ジェクトは現存https://t.co/H1sQyYTBmS」 / Twitter
PikeOS Certified Hypervisor - SYSGO - Embedding Innovations
オープンソースRTOS「seL4」の紆余曲折からマイクロカーネルの進化を俯瞰する:リアルタイムOS列伝(19)(1/3 ページ) - MONOist

Unikernel

Armory Drive

Andrea BarisaniさんはTwitterを使っています 「Today we are announcing F-Secure Armory Drive. An encrypted storage solution for the USB armory with Secure Boot (our keys or yours, it's your choice), Open Source firmware + API, Firmware Transparency. https://t.co/4NezNBeTYa https://t.co/cL28Iri4AA https://t.co/IcG3NMY08Q https://t.co/7O4FY6ogwA」 / Twitter
Encrypted USB drive offers secure storage for unlimited data | F-Secure Press Room
F-Secure Armory Drive | F-Secure
Home · f-secure-foundry/armory-drive Wiki
retrageさんはTwitterを使っています 「“The USB armory firmware is a TamaGo based unikernel which allows encrypted USB Mass Storage interfacing for any plugged in microSD card.” GitHub - f-secure-foundry/armory-drive: F-Secure Armory Drive - USB encrypted drive with mobile unlock over BLE https://t.co/0dCEHtjLEP」 / Twitter
f-secure-foundry/armory-drive: F-Secure Armory Drive - USB encrypted drive with mobile unlock over BLE
retrageさんはTwitterを使っています 「何をもってunikernelと言うのかわからないが、組み込みでセキュリティ用途でGoが使われている点は面白い」 / Twitter

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unikraft: Unikernelを簡単に作成できるツール。Unikernelとはアプリ一体型のOSカーネルで、単一のアプリ用に特化されているので実行効率がよく、悪用されそうなツール類もないため、デプロイに適している。 Unikernel上のnginxはLinuxより166%速く、Dockerよりも182%速い。 https://t.co/UBXd1x4SLl」 / Twitter
Unikraft
MirageOS のインストールから Hello World までを試す - Qiita
MirageOS Unikernel の概要 - Qiita
11se252.pdf
cetic/unikernels: Unikernel and immutable infrastructures
A Binary-Compatible Unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
unikernelの最新人気記事 30件 - はてなブックマーク
Docker ContainerとUnikernelの比較 - コードログ
atc18-zhang-yiming.pdf
Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo
ガラスボーさんはTwitterを使っています 「Rust製UnikernelのRustHermitの紹介 https://t.co/WY5OnHkGEu HermitCoreについては以前自分のブログで紹介した論文があるのだけど、同じ研究グループがやっているっぽい? https://t.co/n4jRpDYlBU」 / Twitter
The RustyHermit Unikernel | Rust OSDev
ガラスボーさんはTwitterを使っています 「RustHermitを使った論文もVEE '20にあったらしい。追えていなかった https://t.co/qa6ZOCMxZF」 / Twitter
Intra-Unikernel Isolation with Intel Memory Protection Keys - vee20-mpk.pdf
FadisさんはTwitterを使っています 「Unikernel: ひとつのアプリケーションとそのアプリケーションを動かすのに必要最小限のカーネルをセットにした物。その実装の一つがMirageOS #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernel systems社: Dockerに買収されたケンブリッジ大学発のベンチャー。MirageOSは彼らによって開発されている #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernelではOSのイメージは書き換えが保存されないようにする。ユーザのコンセプトも必要ないので捨てる。このように必要ないものを削って小さなフットプリントにする。さらにシンプルなブート方法だけをサポートする事で起動を高速にする #kernelvm」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Linux をそのまま unikernel にするものとして UKL や UniLinux はちょっと古くて、最近は Lupine や LKL というかんじです #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「小さいカーネルを手に入れる方法には、スクラッチから必要最小限の機能を持った小さいカーネルを作る手法と、既存の大きいOSからいらないものを削って小さくする方法の2つがあって、ネットワークスタックみたいな再実装したくない物が絡んでくると後者が美味しく見えてきちゃうんだよな…」 / Twitter
retrageさんはTwitterを使っています 「UKLはRedHatのinternのプロジェクトでやってHotOSで出てきた話だけど,結局ちゃんとした実装になってなかったはず #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernelは必ずしもハイパーバイザの上で動かなくても良いが、ホストに抜けられると困るのハイパーバイザを通す事もある。同等の効果を期待してseccompを絞る事もある。ハイパーバイザが相対的に大きいのでunikernelに必要最小限のハイパーバイザを作る事もある、と #kernelvm」 / Twitter
2015年5月14日 フロッピーの呪いがクラウドに!? 久々の大型脆弱性「VENOM」の影響範囲:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「ハイパーバイザが使いもしないデバイスをサポートしていると、アタックサーフェスが増える。たとえばVENOM(CVE-2015-3456)ではQEMUのフロッピーディスクドライブのエミュレーションのバグを突いてハイパーバイザの外で任意のコードを実行する、と #kernelvm」 / Twitter

Solo5

retrageさんはTwitterを使っています 「今日ちょうどSolo5の話をまとめようとしてたところなのでタイムリー」 / Twitter
まちカドおるみんさんはTwitterを使っています 「process の isolation でも hardware assisted な VMM 並に強力な isolation が可能であるという主張はどちらかといえば container より(libOS とは関係ない)picoprocess そのもののアイディアに近い」 / Twitter
まちカドおるみんさんはTwitterを使っています 「picoprocess はもともと Xax というブラウザのプラグインを sandboxing するための仕組み(“ Leveraging Legacy Code to Deploy Desktop Applications on the Web”)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「container があくまで kernel shared でかつ 300 以上の syscall が許容されてるのに対して,unikernel の single address space や libOS といった性質上 hypercall がたかだか 4,5 のままで既存のアプリのコードが使えてるのは強みなので,この設計構造を潰さないまま process isolation に」 / Twitter
まちカドおるみんさんはTwitterを使っています 「持っていくと,アプリコードはそのままでも syscall は数個のより narrow な attack surface しか持たない process になるので,同じアプリを動かすにしても secure だし,性能の劣化が unikernel より少ないし,gdb 噛ましたり簡単になるし,いいことだらけだぞっていうのが彼らの主張」 / Twitter
まちカドおるみんさんはTwitterを使っています 「ほかにも ASLR やメモリの dedup が効くだとか,ブート周りや MMU 周りのアーキテクチャ依存が減ってより minimum なコードになるぞとかいろいろ恩恵があるのは 3.4 節の other benefits を参照のこと。」 / Twitter
retrageさんはTwitterを使っています 「LKL+muslなlibOSをSolo5に移植してPythonとか動くようにした retrage/frankenlibc at solo5 https://t.co/uRlNV4YizR」 / Twitter
retrage/frankenlibc at solo5
retrageさんはTwitterを使っています 「これ、実装よりの細かい話とか書こうとしてるんだけどまだ自分の中でまとまった知見とかがあるわけじゃなくてやるだけ、みたいな気持ちになっているので筆が進まず」 / Twitter
Unikernels as Processes | Proceedings of the ACM Symposium on Cloud Computing
212-Williams
retrageさんはTwitterを使っています 「そういえばシステム系の論文に出てくるコードって大抵発表されたあと放置されることが多いけど、これはちゃんとメンテされていてすごい。 Solo5/solo5: A sandboxed execution environment for unikernels https://t.co/o8rXWxLfDf」 / Twitter
Solo5/solo5: A sandboxed execution environment for unikernels
まちカドおるみんさんはTwitterを使っています 「@retrage “Unikernels as Processes” とかの研究の実装にも利用されているので、研究が一発ネタで終わらずそれを叩き台にした後続が居る、というのも強みなんだと思う。HermitCore → HermiTux、RustyHermit なんかもそうだし、OSv も Mikelangelo Project とか Iso-UniK とかあるし。」 / Twitter
retrageさんはTwitterを使っています 「@kotatsu_mi なるほど。後続が作れるほど発展性のあるテーマを後の研究のベースにできるぐらいちゃんとしたコードが書かれているということでもあるのでやっぱりすごいと思う。」 / Twitter
retrageさんはTwitterを使っています 「これとか参考にしつつSolo5のI/F拡張したら面白そう。 Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX https://t.co/n8XnZpVgAg」 / Twitter
Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX

HarmonyOS

huawei-iot/HarmonyOS: 鸿蒙系统资料。Docs about HarmonyOS.
Shinichi MiyazawaさんはTwitterを使っています: 「Harmony OSで面白い点の一つは、形式検証を使っている点。 https://t.co/xJzy2mK95d」 / Twitter
Harmony-OS-Huawei-Developer-Conference-14-1.jpg (1170×540)

Rump Kernel

Rump Kernelをつかってみる
おるみんちゃんさんのツイート: "Rump Kernel が実は論文や学術雑誌以外に本の形でドキュメント化してたのに気がついて Mendeley に放り込んだ"
おるみんちゃんさんのツイート: "のはいいんだけど,このタイトルページを Mendeley が OCR してこうなるの完全に謎。何をどうしたんだ……?(本の最初のほうに書いてある git の revision がなにかの ISBN にひっかかったとか?… "
おるみんちゃんさんのツイート: "https://t.co/siYxJuyJjn"
The Design and Implementation of the Anykernel and Rump Kernels
おるみんちゃんさんのツイート: "おそらく,Rump Kernel の作者 Antti Kantee の博士論文の改訂ですね。"
おるみんちゃんさんのツイート: "博論はこれ https://t.co/QKhIrddQ1c"
Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels

Linux kernelをUnikernelのライブラリ化する - めもちょー
まちカドおるみんさんはTwitterを使っています: 「Unikernel というか Library OS の源流には Exokernel が居るんだけど,その上流には SPIN や Chorus,V や Amoeba,Accent といった第一世代の Microkernel/Distributed OS が居るし,Exokernel と Unikernel の間にも Xen や kvm,QEMU だけじゃなくて Nemesis や Libra が居る」 / Twitter
Unikernel - Wikipedia
Unikernelな情報 (in Japanese) - Qiita
FadisさんはTwitterを使っています 「「コンテナならユーザ空間だけ立ち上げるからはやーい」から 「コンテナのセットアップするやつに脆弱性があるとやばーい」になって「やっぱりVMで隔離したーい」になって「でも起動に時間がかかるのやだー」になってUnikernelにたどり着くのか #kernelvm」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syusui_s マイクロカーネルの IPC が遅くてパフォーマンスが……は定説でしたが最近は IPC も十分速くできる,という研究がぽつぽつあります。https://t.co/fG6NokSb5J」 / Twitter
YCSB-A_Zircon.eps - skybridge-eurosys19.pdf
コンテナ目線で考えるUnikernelとmicroVM / MicroVM and Unikernel in the container world - Speaker Deck
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、昔は現代的OSというとマイクロカーネルだったけど、結局実用上はカーネル・リビルドなしにドライバ動的ロードできれば、ユーザ的にはもう十分だった感(笑)」 / Twitter
microkernel-book.pdf
CとRustで一から作るマイクロカーネルOS
mumumuさんはTwitterを使っています 「正しくはATCでした(suzaki先生ありがとうございます. この研究,色々なことをやってて研究として綺麗かと言われるとよくわからんのですが(超上から目線),できること全部突っ込んだ感があって純粋に読み物として面白いかも」 / Twitter
mumumuさんはTwitterを使っています 「Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication [OSDI '20] Microkernelのサーバ間の新しいIso.としてMPKによる手法を提案.そのためにKernelメモリをUserメモリとしてMapしていたり色々ヤバイことやってる.オタクは是非読んで」 / Twitter
FadisさんはTwitterを使っています 「RedLeaf: Rustで実装されたマイクロカーネルOS。ドメイン間通信のための共有メモリを多用する→ RRef&lt;T&gt;型で共有メモリをラップしてRustに共有メモリの抱え落ちを防がせる https://t.co/9fI2XusVxf #kernelvm」 / Twitter
mars-research/redleaf: RedLeaf Operating System
FadisさんはTwitterを使っています 「一般的なOSの機能、MS-DOSとマイクロカーネル原理主義みたいなヤツらとライブラリOS系のやつらで積集合を取ると、一般的なOSの機能とは空集合の事であるみたいな結論が得られそう」 / Twitter
FadisさんはTwitterを使っています 「MS-DOS: タスク管理やプロセスの空間の分離は別にOSに必須じゃないかもしれないよ マイクロカーネル: デバイスドライバやファイルシステムは別にOSに必須じゃないかもしれないよ ライブラリOS: ハードウェアの上でブートローダから起動される事は別にOSに必須じゃないかもしれないよ」 / Twitter
natsutanさんはTwitterを使っています 「@fadis_ 組込系のOSだと、ファイルシステムもメモリ保護も標準入出力も無く、割り込みはタイマー以外自力で処理みたいなのもあるので、一般的なOSって難しい。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Hurdはマイクロカーネルによってユーザーが管理者権限を持たずにOSのほとんどの部分を変えられる仕組みで、わざわざ物理マシンごとエミュレートする必要はなかった。」 / Twitter

仮想化

その他

vTPM

vTPM標準化でMacでWindows 11が導入しやすくなった「Parallels Desktop 17.1」 - PC Watch
仮想 Trusted Platform Module を使用する仮想マシンの保護
VM の TPM を有効にする
ESXi7 仮想Trusted Platform Module(vTPM)仮想マシンでの有効化手順 - ITよろづや
トラステッド・ブート - IBM Documentation
vTPM: Virtualizing the Trusted Platform Module | USENIX
仮想TPMを用いたBitLockerによる暗号化/復号化の手順 | Lab8010
プレビュー: トラステッド起動の VM をデプロイする - Azure Virtual Machines | Microsoft Docs
Shielded VM  |  ドキュメント  |  Google Cloud
L_040.pdf

Chapter 10. Technical Background
Windows 11の地味に便利な新機能! 「Nested Hyper-V」がAMD製CPUでもようやく可能に【イニシャルB】 - INTERNET Watch

睡分不足

APIC, MSI-X

MSI/MSI-Xとx2APIC - 睡分不足
x2APICとinterrupt remapping - 睡分不足
I/O APICについて - 睡分不足
Local APICについて - 睡分不足
MSI/MSI-Xとx2APIC - 睡分不足
X540のMSI-X設定 - 睡分不足

QEMU/KVM

KVMの準仮想化機能 - 睡分不足
KVMにおけるcpuid命令の取り扱い - 睡分不足
KVM GPUパススルー設定 - 睡分不足
QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法 - 睡分不足
QEMUコードリーディングメモ - 睡分不足

VMM

Bareflankを使ってみる - 睡分不足
クロスプラットフォームなハイパーバイザ Intel HAXM - 睡分不足
VMWare Fusionメモ - 睡分不足

virshのvcpupinとvcpuinfoで表示されるaffinityの違い - 睡分不足
Ownership is theft? TockのTakeCellについて - 睡分不足
x86におけるメモリアクセス権のルール - 睡分不足
perf, ftraceのしくみ - 睡分不足
VFIOによるデバイス操作 - 睡分不足
複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
仮想アドレスから物理アドレスを求める - 睡分不足
per cpu data シンボルのアドレス - 睡分不足

MS

MyIgnite - OS internals: Technical deep-dive into operating system innovations
ネットワーク コントローラーの高可用性 | Microsoft Docs
【笠原一輝のユビキタス情報局】Windwos 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明 - PC Watch
仮想化ベースのセキュリティ (VBS) | Microsoft Docs
Windows セキュリティでのデバイス保護
拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
「VirtualChecker」仮想化支援機能に関するCPUの対応状況を手軽にチェックできるツール - 窓の杜
AMD CPUに待望の“Nested Virtualization”対応 ~プレビュー版「Windows 10」で - 窓の杜
とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat 最近はUEFIがバグってる(悪意のあるハードウェアが繋がってると色々やられてしまう)ことがあるので、できるだけ早くhv上げてその下でUEFIというかハードウェアの初期化するなども聞きます」 / Twitter
retrageさんはTwitterを使っています 「@takehiro_t @mhiramat そうですね,話せなかったんですが,WindowsだとVirtualization Based Security (VBS)というHVベースのセキュリティ機構がOS Loader(winload.efi)の段階で立ち上がったりします.」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@retrage @takehiro_t なるほど、x86だとそういうことも可能ですね。armだと実行レベルは一方通行だから、最初にvmmを起動するとkvmが使えなくなってしまうんですが。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat win11で必須になるとゆーやつですね。どんどん生のハードに触れなくなっていく、、、😀」 / Twitter
カーネル DMA 保護 (Windows 10) - Microsoft 365 Security | Microsoft Docs
WSL2とHyper-Vの関係 - Qiita
Windows10 HomeにDocker for Windowsをインストールする (WSL2を利用) - Qiita
Hyper-V APIs | Microsoft Docs
Host Compute System Overview | Microsoft Docs
Windows Hypervisor Platform API Definitions | Microsoft Docs
Virtdisk.h header - Win32 apps | Microsoft Docs
Host Compute Network (HCN) service API for VMs and containers | Microsoft Docs
Windows Hypervisor Platform Instruction Emulator API Definitions and Support DLLs | Microsoft Docs
VM Saved State Dump Provider API | Microsoft Docs
Microsoft VPSはWindows 11のゲームパフォーマンスを低下させる - ソフトアンテナブログ
MicrosoftがAzure仮想マシンのオンデマンドキャパシティ予約のプレビュー版を発表
daem0nc0reさんはTwitterを使っています 「VMwareユーザなのでVirtualBoxはよくわかりませんが、Hyper-Vと共存できても、共存させるとVT-Xが使えなくなるので、Nested VMをよく使う自分にはどちらにせよWSLは使えないです」 / Twitter
徳丸 浩さんはTwitterを使っています 「Hyper-Vコマンド使ってなくても、WSL2がHyper-V アーキテクチャ上で動くので、共存できないのは影響大きいです」 / Twitter
徳丸 浩さんはTwitterを使っています 「VirtualBox 6.1.28(最新)にするとHyper-Vと共存できなくなるようです。自宅の環境でも再現しました。6.1.26なら共存できます。 https://t.co/kqf5eE3DLU」 / Twitter
virtualbox.org • View topic - "...Call to NEMR0InitVMPart2 failed: VERR_NEM_INIT_FAILED (VERR_NEM_VM_CREATE_FAILED)..."
【Windows 11便利テク】Windows 11のセキュリティ機能は性能を下げるのか?仮想化ベースのVBSを検証 - PC Watch
Windowsが脆弱性のあるドライバーのインストールをブロックする機能を追加 - GIGAZINE

Intel TDX

Intel® Trust Domain Extensions
tdx-module-1eas-v0.85.039.pdf
Intel® Trust Domain CPU Architectural Extensions - intel-tdx-cpu-architectural-specification.pdf
Intel® Trust Domain Extensions - SEAM Loader (SEAMLDR) Interface Specification - intel-tdx-seamldr-interface-specification.pdf
Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module V0.931 - tdx-module-1.0-public-spec-v0.931.pdf
Guest-Host-Communication Interface (GHCI) for Intel® Trust Domain Extensions (Intel® TDX) - intel-tdx-guest-hypervisor-communication-interface-1.0-344426-002.pdf

Intel VT

MSI/MSI-Xとx2APIC - 睡分不足
syuu1228/howto_implement_hypervisor: Software Design誌の連載「ハイパーバイザの作り方」の原稿公開用リポジトリ
ハイパーバイザの作り方
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第5回 I/O仮想化「割り込み編・その2」
BitVisor Updates in 2016
Intelの仮想化支援機能「Intel VT」とは? - @IT
22.9. BIOS で Intel VT-x と AMD-V の仮想化ハードウェア拡張を有効にする - Red Hat Customer Portal
Intel Virtualization Technology - 自作パソコン入門
第6期末セミナー2006-1rev1.ppt
スライド 1
KVM PCIパススルー (PCI PassThrough) | nexia inc
VT-x を有効にしたく て 3 日程できなかったのだが、Windows が余計なお世話をしてた件 | ピックワールド(PIC World)
VT-d 割り込み再マッパーが無効になっていると ESXi IO 接続の問題または PSOD が発生する (2149592)
仮想マシンのプロセッサ設定の構成
dmamapping.pdf
sec 1-48 - Willmann2008.pdf
Satoshi's note: Introductory Study of IOMMU (VT-d) and Kernel DMA Protection on Intel Processors
iommu.c - drivers/iommu/iommu.c - Linux source code (v5.12.4) - Bootlin
Hideki EIRAKUさんはTwitterを使っています 「センシティブ命令といっても VMEXIT につながらない命令もあるから厄介」 / Twitter
【仮想化道場】サーバープロセッサのターニングポイントになる? 「Xeon Scalable Processor」(前編) - クラウド Watch
コード整合性に対する仮想化ベースの保護を有効にする - Windows security | Microsoft Docs
Sapphire Rapids Update - HotChipsで公開された次世代Xeon SPの新情報 | マイナビニュース
ASCII.jp:Ice lakeとはまるで異なるSapphire Rapidsの構造 インテル CPUロードマップ (1/4)
Mark ErmolovさんはTwitterを使っています 「Here's the PoC for VT-d bypass by Intel CSME on Apollo Lake platform. Moreover, Intel CSME can grant any integrated or even external PCI-E device the ability to bypass VT-d using IMRs. UEFI/OS can't prevent and even reliably audit this as IMRs can be changed at arbitrary time☹️ https://t.co/1Wr2myPsXd」 / Twitter
仮想 CPU パフォーマンス監視カウンタの使用 (2030221)
Using Virtual CPU Performance Monitoring Counters (2030221)
Intel® Virtualization Technology for Directed I/O Architecture Specification - vt-directed-io-spec.pdf

VPID

イスラエルエリカちゃんさんのツイート: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行われてたのかな、自分でやるのかな。VPID有効時はINVVPIDで選択的にFlashで良いのかな。"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日
SMP環境下でのTLB Consistencyについて - syuu1228's blog

準仮想化

Linux KVM上でSEIL/x86を使う
3.4. 仮想化ハードウェアデバイス - Red Hat Customer Portal
第10章 KVM 準仮想化 (virtio) ドライバー - Red Hat Customer Portal
Virtioについてのまとめ - Qiita
KVMの準仮想化機能 - 睡分不足
KVM - ArchWiki
QEMU - ArchWiki
Fadisさんのツイート: "virtioを介してホストとゲストで共有されるファイルシステムvirtio-fsを作ろうとしている人の話がLWNの記事になってる。ネットワークを介さずvirtioでホストのfsを共有する事でホストとゲストでページキャッシュとロックの共有が可能になるのが利点らしい https://t.co/tEyrwt9S6x"
Subscription required [LWN.net]
virtio virtualbox - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています: 「virtio-fsか」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)&gt;&gt; Virtio without the "virt" [https://t.co/4Z5bszp3QR] https://t.co/gG1Sfcx37N」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「註・xv6 は元々 IDE driver を持つが RISC-V 版から virtio に切り替わっている」 / Twitter
virtiofsについて - Qiita
FadisさんはTwitterを使っています 「virtio-videoドライバがバニラカーネルに入りたがっているらしい。virtio-videoはホストのカメラやキャプチャデバイスからの入力をゲストが直接読む機能と、ホストの動画エンコード、デコードの為のハードウェアをゲストが利用する機能を提供する準仮想化デバイスのドライバ https://t.co/EHbOncnBy0」 / Twitter
VirtIO Video Driver Coming Together For The Mainline Linux Kernel - Phoronix
ガラスボーさんはTwitterを使っています 「準仮想化ってXenが最初だと思いこんでいたのだが、どうやらDenaliっていうプロジェクトが初出だったらしい。ずっと勘違いしていた」 / Twitter
FadisさんはTwitterを使っています 「VirtIO SoundのドライバがLinux 5.13でバニラカーネルに入りたがっているらしい。VirtIO Soundは「パススルーのようにデバイスを占有せず」「Intel HDAのエミュレーションより軽量かつホストがマルチチャネルをハードウェアで処理できる場合それに乗れる」準仮想化デバイス https://t.co/uv7avXPNZL」 / Twitter
VirtIO Sound Driver Coming For Linux 5.13 - Phoronix
FadisさんはTwitterを使っています 「linux-5.15からvDPAソフトウェアエミュレーションなデバイスをホストのユーザ空間に実装できるVDUSEが使えるようになるらしい。ユーザ空間プロセスに対してdata path用の共有メモリがマップされ、のcontrol pathからの要求が届くようになる。5.15時点ではvirtio blockのみ対応 https://t.co/xTlp5BAOF6」 / Twitter
Linux 5.15 Adds VDUSE For vDPA Devices In User-Space - Phoronix
FadisさんはTwitterを使っています 「vDPAはvirtio互換のバッファを持つハードウェアのバッファ(data path)をゲストに直接見せ、デバイスの制御(control path)をホストのカーネルがvirtioに変換してゲストに見せる事でゲストに生のハードウェアを見せないまま、高速なデータの受け渡しを実現する」 / Twitter
FadisさんはTwitterを使っています 「vDPAはSR-IOVと組み合わせて複数のゲスト環境にホストの単一のNICをできるだけワイヤーレートに近い性能で提供する為によく用いられる。このような状況ではハードウェアのバッファにゲストから直接書きたいが、1つのゲストにハードウェアの完全な制御を与えるわけにはいかない」 / Twitter
FadisさんはTwitterを使っています 「s/のcontrol/virtioのcontrol/」 / Twitter

libkrun

Red Hatのエンジニアが作り始めた新しいVMM「libkrun」 コンテナに特化したミニマリストな実装とは - ログミーTech
10分で理解したかったlibkrun / I wanted to understand libkrun but - Speaker Deck
FadisさんはTwitterを使っています 「libkrun: Red Hatが作り始めた新しいVMM。KVMの上で動く。デバイスのエミュレーションはvirtioを中心に最低限を実装 https://t.co/ULiNjSC3cD #kernelvm」 / Twitter
containers/libkrun: A dynamic library providing Virtualization-based process isolation capabilities
Yoshikazu GOTOさんはTwitterを使っています 「・最低限のデバイスエミュレーションとC APIを備えたRust性のMicroVM →virtio-console, virtio-fs, virtio-vsockなどを実装 →Firecrackerなどkらコードを拝借しているらしい #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・C APIを提供しているのでライブラリとしても使える ・ネットワークコンポーネントにvirtio-netは使わず、vsockベースのTSIという「革新的な方法」で自前実装 #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・ランタイムの分離レベルがVMなので、いわゆるサンドボックス型のランタイムに分類できる #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「inductorさん:既存のVM型ランタイムとの違い: ・既存の実装は、namespaceをPodごとに分割 ・VMがnamespaceごとなのでコンテナ感では共有のVMを使う →コンテナプロセスはKVMの子プロセスの一つに #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「inductorさん: ・これが ・VMをが分かれていても、同じコンテキストで処理が行われる #kernelvm #kernelvm_tw」 / Twitter
Hiroshi ShimamotoさんはTwitterを使っています 「PodとVMの内包関係が逆になっているのか #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUを使ったコンテナのサンドボックス化では同一のPod内の複数のコンテナは同一のQEMUの中で実行される。libkrunはPodの中でコンテナ毎に軽量なVMMを動かす事でよりよい分離を提供する #kernelvm」 / Twitter

Confidentail VM

suzakiさんはTwitterを使っています 「Googleが発表したデータを暗号化したまま処理する「Confidentail VM」はAMDのSEV: Secure Encrypted Virtualizationが使われています。 SEVではハイパーバイザー非依存でVMイメージに復号をCPUが行います。鍵はリモートアテステーションを使って渡されます。 CCS19論文が詳細 https://t.co/lG0BS0a298」 / Twitter
Insecure Until Proven Updated:Analyzing AMD SEV's Remote Attestation - 1908.11680.pdf
suzakiさんはTwitterを使っています 「「Confidentail VM」の説明で紹介したCCS19で発表された論文名は Insecure Until Proven Updated: Analyzing AMD SEV’s Remote Attestation でリモートアテステーションを行うファームウェアに脆弱性につての論文。」 / Twitter
PublickeyさんはTwitterを使っています 「Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir https://t.co/yUZ1vl0M1y」 / Twitter
Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir - Publickey
suzakiさんはTwitterを使っています 「Confidentail VMにはGoogleのAsyloがベースになっている。SGX対応は知っていたがAMD SEVも対応していた。 私の知識はOPEN-SOURCE ENCLAVES WORKSHOP (OSEW 2019)で止まっている? https://t.co/iRts3FY11y Asylo’s unified enclave identity framework (Anna Sapek) ビデオ https://t.co/rFcy1h0WAN」 / Twitter
Open Source Enclaves Workshop: July 2019
suzakiさんはTwitterを使っています 「思い出したけど、AMD Secure Encrypted Virtualization (SEV) を活用したTEEはRedhatが開発しているEnarxがある。 これはIETF106のTEEPでも紹介さ入れた。 https://t.co/AxO7d5lW7l https://t.co/Yvh5DDSSke」 / Twitter
slides-106-teep-sessa-enarx-a-teep-use-case-00.pdf

QEMU

TCG

msyksphinz_devさんはTwitterを使っています 「もちろん、QEMUのドキュメントや論文にはかなり目を通しました。しかし、やはりコードに触って、デバッグして、書き直して、車輪の再発明をしないと、理解できなかったんですよね。 例えば、「3.4 Direct block chaining」だけ読んで、Block Chainingのイメージを理解できる人が、どれだけいますか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「Direct block chainingの所、mrubyのJITでそっくりなことをやっているので理解できました。問題は、PCだけではなくCPUの状態でも次のブロックが変わりうると思うのだけど、直接チェックなしでジャンプしちゃっていいのか?と思う。まあ、大部分は問題ないと割り切っているんだろうけど。 &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「ここでいうPCはプログラムカウンタね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「qemu、mrubyのJITとよく似た構造なので技術をぱくりたいと思って調べたけど、意外と最新版の詳細が見つからない。ソースがでっかいのでソースを読むにもどこを読んだらいいものか...」 / Twitter
Miura HidekiさんはTwitterを使っています 「qemu tcgのソースコードあった https://t.co/bKskd4vGNt」 / Twitter
tcg · master · QEMU / QEMU · GitLab
Miura HidekiさんはTwitterを使っています 「qemuのTCGの最適化処理を見つけた。定数の畳み込みとかやっている https://t.co/o8Xdul48fH」 / Twitter
tcg/optimize.c · master · QEMU / QEMU · GitLab
Miura HidekiさんはTwitterを使っています 「マシンコードレベルで畳み込みとかって効果あるのかしらん?」 / Twitter
Miura HidekiさんはTwitterを使っています 「READMEに全部書いてあった https://t.co/3YrCVi1PS1」 / Twitter
tcg/README · master · QEMU / QEMU · GitLab

m68k

FadisさんはTwitterを使っています 「Linuxカーネルに謎の高性能m68kマシンで動くようにするパッチが現れた話。謎のm68kマシンはCPUこそ古のm68kだが、Android emulatorで使われるGoldfishデバイスが生えており、更にvirtio-gpuやvirtio-9pを含む豊富なvirtioデバイスが生えている https://t.co/hDBxPN953g」 / Twitter
Linux Kernel Patches Sent Out For A More Powerful Virtual M68k Machine - Phoronix
FadisさんはTwitterを使っています 「勿論このマシンは実在する訳ではなく、QEMUに実装された仮想のm68kマシン。最も高性能な物理m68kマシン(Quadra 800、1993年)でもメモリを1GBより多く積むことができず、I/Oも貧弱で、「今尚m68k向けにパッケージを作っているディストリ等が苦行を強いられる」問題を解決するために作られた物らしい」 / Twitter
henrichさんはTwitterを使っています 「ちなみにPortingしてる当のdistro開発者の一人、Amigaかなんかを山積みで貰って嬉々として車に積んでたなー」 / Twitter
https://twitter.com/toshi_kd/status/1374682701609922569

QEMU, a Fast and Portable Dynamic Translator | USENIX
x86 - Where are local APIC addresses in QEMU? - Stack Overflow
QEMU Developer’s Guide — QEMU 5.1.0 (v5.1.0-11824-g8699890d91-dirty) documentation
QEMU 5.1.0 Documentation
QEMU for Windows – Installers (32 bit)
QEMU for Windows – Installers (32 bit)
フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
Rustで作るフルスクラッチQEMU型エミュレータ - Speaker Deck
uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「QEMU(qemu-system-x86_64)でUbuntu 20.04 Desktop版のインストーラを起動しようとしたら、10分くらい待ってもCPUファンがうるさくまわりつづけ、すごいゆっくりとしか処理が進まないんだけど、これはインストーラが重い?あるいはメモリ2GB、CPUは1コアしか割り当ててないのが原因?」 / Twitter
uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「KVMを使ってないからでは?と教えてもらって、-accel kvmを付けたらCPUファンも回らなくなったし普通の速度で動くようになった。もしかしたら自作OSもKVM有効にして動かしたらもっと省エネになるかも。」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「msyksphinz さん:エミュレーションの方法: ・インタプリタ型 →ゲスト命令を1命令ずつ解釈 →実装が簡単だが遅い ・バイナリ変換型 →ゲスト命令をホスト命令に変換 →速い #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「QEMUはバイナリ変換型で、ゲストの命令セットとホストの命令セットの間に中間言語TCGを持っており、TCGで最適化も行われる、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「自作QEMUが動的に生成したコードをgdbから漁れないのでデバッグが辛い→自作QEMUを本物のQEMUの上で実行すれば全ての動きが追いかけられる! #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUは命令を「分岐にぶつかるまで」のブロック単位でTCGに変換する。→分岐にぶつかった時、分岐後のジャンプ先は大抵固定のアドレス→一度ジャンプ先に飛んでジャンプ先のTCGが出来たらジャンプ元に生成したジャンプ先のアドレスを埋め込んでジャンプ先を別ブロック扱いしなくて良くする #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUがやっているような事をそのままRustで書くとRustが知らない所で生成するコードが山ほど出てきてunsafe祭りになる、と #kernelvm」 / Twitter
無料のWindows仮想マシンをQEMUで動かす - Qiita
第592回 QEMUでGPUの3Dアクセラレーションを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第572回 GNOME Boxesを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
QEMUのトレース機能でOSのデバッグを支援する - uchan note
第679回 LXD上にWindowsをインストールする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

Disk Images

IMG (file format) - Wikipedia
Disk Images - OSDev Wiki
ISOイメージ - Wikipedia
ISO image - Wikipedia
Apple Disk Image - Wikipedia
Disk Images — QEMU 5.0.92 (v5.1.0-rc2) documentation
virtualization - RAW disk image and .Img format, Difference? - Super User
第11章 QEMU-img および QEMU ゲストエージェント Red Hat Enterprise Linux 6 | Red Hat Customer Portal
14.12. qemu-img でサポートされる形式 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
28.3. qemu-img の使用 Red Hat Enterprise Linux 5 | Red Hat Customer Portal
GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR

コンテナ

Kubernetes

スライド

チェシャ猫さんはTwitterを使っています 「本日 Infra Study Meetup の登壇資料です。#InfraStudy Kubernetes の拡張性を活かし、エッジに延伸するためのプロジェクト @KubeEdge 。単なる軽量化版かと思いきや、調べてみたら普通の Kubernetes とは一味違った仕組みが隠されていました。 猫でもわかる KubeEdge https://t.co/Ksfu0uMkrz」 / Twitter
猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th - Speaker Deck
拡張性の高い CNI プラグイン Coil v2 の紹介 - Speaker Deck
2020 年の秋、改めて学ぶ Scheduling Framework #k8sjp / Kubernetes Meetup Tokyo 35th - Speaker Deck
脅威モデリングで考える Kubernetes セキュリティ / CloudNative Days Tokyo 2021 #CNDT2021 #CNDT2021_B - Speaker Deck
container-immutable - Speaker Deck

技術評論社

第641回 LXDとmicrok8sでシングルサーバーをKubernetesクラスターにする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2020年12月4日 AWS,Kubernetesディストリビューション「Amazon EKS Distro」をオープンソースで公開:Linux Daily Topics|gihyo.jp … 技術評論社
第670回 Kubernetes IDEであるLensをMicroK8sで使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2022年に注目したいCloudNative関連技術:新春特別企画|gihyo.jp … 技術評論社

infoQ

Kubernetes Operatorの深層
マイクロサービスを正しい方法で監視する
ConfluentがConfluent for Kubernetesを一般向けに提供することを発表
SUSEがHarvester v0.2.0をリリース
Kubernetesに異を唱えるAbly
"分散システムの8つの嘘”を振り返る
NSAとCISAがKubernetes強化ガイダンスを公開
KubeCon + CloudNativeCon NA 2021: 注目の発表とQ&A - Priyanka Sharma氏に聞く
Kubernetes Cluster APIが実運用レベルのv1.0に
D2iQがDKP 2.0をリリース、Kubernetesアプリの大規模運用が可能に
Kubernetes IPv4/IPv6 デュアルスタックの Q&A、Microsoft の Khaled (Kal) Henidak 氏と Google の Tim Hockin 氏
Kubernetes 1.23が改善されたイベント、gRPCプローブ、デュアルスタックのサポートでリリース
Kubernetesは次の1.24リリースでDockershimの非推奨化を進める
Kubernetes 1.23のデバッグを支援するエフェメラルコンテナ

Publickey

軽量でインストールも簡単なシングルバイナリのKubernetesディストリビューション「k0s」、Mirantisがオープンソースでリリース。LinuxとWindowsに対応 - Publickey
Kubernetes上でVMのライブマイグレーション、バックアップ、PXEブートなど可能に。ハイパーコンバージドインフラを実現する「Harvester」、Rancher Labsがベータ公開 - Publickey
KubernetesのノードとしてWebAssemblyランタイムを用いる「Krustlet」、CNCFのサンドボックスプロジェクトに申請 - Publickey
VMware、無償のKubernetesディストリビューション「VMware Tanzu Community Edition」リリース。AWS、Azure、ローカルマシンなどに導入可能 - Publickey
Kubernetes上にサーバレス基盤を構築できる「Knative」リリース1.0に到達 - Publickey
KubernetesからDockershimが数カ月後に削除予定、準備のためのユーザーアンケートが実施中 - Publickey
Googleが「Knative」をCloud Native Computing Foundationに寄贈。Kubernetes上でサーバレス基盤を構築するソフトウェア - Publickey
Kubernetes 1.23が正式リリース。IPv4/v6デュアルスタック、水平PodオートスケーラーAPIv2が安定版、Kubelet CRI APIがベータ版になど - Publickey
Kubernetesにわざと障害を起こさせる仕組みを組み込める「LitmusChaos」がCNCFのインキュベーションプロジェクトに昇格 - Publickey
KubernetesをGoogleが開発し、オープンソース化し、成功した経緯。関係者らが肉声で語るドキュメンタリー映像「Kubernetes: The Documentary」YouTubeで公開 - Publickey

blog

Kubernetes Internal #1を開催しました - bells17 - Medium
BuildKitを使ってKubernetes上でイメージをビルドする [KubeCon EU発表レポート] | by Akihiro Suda | nttlabs | Medium
Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
Neco の宣言的なサーバー全台再起動の仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ
Flaky Testとの戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashionki38 blog
Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog
Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins
あなたの知らないKubernetesのServiceの仕組み | IIJ Engineers Blog
【動画あり】Kubernetesで利用するストレージはどんなことを考える必要がある? | IIJ Engineers Blog
電子手帳とKubernetes | IIJ Engineers Blog
Kubernetes IPv6 デュアルスタック構成の解説 - VA Linux エンジニアブログ
Kubernetes で cgroup がどう利用されているか - VA Linux エンジニアブログ
Kubernetes カスタムコントローラの開発例 - VA Linux エンジニアブログ
CRI と Cgroup Driver をダウンタイム無しでまとめて変更する - VA Linux エンジニアブログ
kubectl get all で対象となるリソースリストはどこからやってくるのか | text․superbrothers․dev
我が家のおうちKubernetesの成長記録 | IIJ Engineers Blog
Kubernetesクラスタへのアクセス権限をブートストラップする | IIJ Engineers Blog
Minikubeでk8s学習を進めるためのヒント | フューチャー技術ブログ

たった60秒でKubernetes環境を構築できる「MicroK8s」にHAクラスター機能が追加 - GIGAZINE
How to Schedule Machine Learning Workloads Nicely In Kubernetes | CloudNative Days Tokyo 2020
チェシャ猫さんはTwitterを使っています 「正直、Kubernetes で Docker が非推奨になって影響を受けるのはクラスタをセットアップする側だけで、大多数の Kubernetes を使う側の人間には大して影響ないと思うが何故こんなに盛り上がってるんだ…。」 / Twitter
qwerty2501さんはTwitterを使っています 「そういえば同僚氏がk8sやってGAEやCloud Runのほうが断然良いって言ってたの思い出した」 / Twitter
App Engine アプリケーション プラットフォーム  |  Google Cloud
Cloud Run: コンテナを秒単位で本番環境にデプロイ  |  Google Cloud
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「Kubernetes は現代の Multics だ!」 https://t.co/tT48exlsMR」 / Twitter
Summer Blog Backlog: Distributed Systems
さんぽし/sanposhihoさんはTwitterを使っています 「僕がschedulerのソースコード読み始めるときにもチェシャ猫さんの記事 + 動画にお世話になりました(Scheduling Framework導入後の実装の解説になるとこの記事以外に見つけられてない) Kubernetes: kube-scheduler をソースコードレベルで理解する - チェシャ猫の消滅定理https://t.co/67vMA84Hpt」 / Twitter
Kubernetes: kube-scheduler をソースコードレベルで理解する - チェシャ猫の消滅定理
コンテナ管理プラットフォーム「Kubernetes」について初心者にも分かりやすく解説するとこうなる - GIGAZINE
Kubernetesモニタリングが標準に、「Zabbix 6.0」公開 | OSDN Magazine

Kata Container

コンテナランタイムKata Containersの実行検証 - Qiita
Kata Containers Home | Kata Containers
コンテナの軽量さと仮想マシンの堅牢さを兼ね備えた新しいコンテナ実装「Kata Containers」、OpenStack Foundationが発表 - Publickey
コンテナを軽量VMで隔離するKata Containersがついにv1.0をリリース | TechCrunch Japan
runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較 | Think IT(シンクイット)
カタコンテナはいかにしてDockerコンテナのセキュリティを強化しているのか | S-Port|鈴与シンワート
Kata Containers
Why Kata Containers doesn’t replace Kubernetes: – Kata Containers – Medium
Kata Container – Kata Containers – Medium
OpenStack発のコンテナ実装「Kata Containers 1.0」リリース | OSDN Magazine
Firecrackerはコンテナランタイムなのかという話 - inductor's blog

システムコール

FadisさんはTwitterを使っています 「linuxによそのプロセスのアドレス空間で処理を実行するprocess_vm_execを追加する提案の話。この関数は引数で指定したpidのプロセスのアドレス空間で引数で指定したレジスタの状態から実行を開始する。シグナルやシステムコールの呼び出しが起こると呼び出し元に戻ってくる https://t.co/AXlfb1pShG」 / Twitter
FadisさんはTwitterを使っています 「コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをするユーザ空間プロセスに処理させる https://t.co/cmTRZXyMNw」 / Twitter
google/gvisor: Application Kernel for Containers
FadisさんはTwitterを使っています 「gVisorは現状「システムコールをユーザ空間プロセスで受ける」というマジックをptraceで実現している。ptraceは汎用すぎて性能が良くないので、より効率よくユーザ空間でシステムコールを受ける手段としてprocess_vm_execが役に立ちそう、と」 / Twitter
Shinji KonoさんはTwitterを使っています 「コンテナはプロセスに対するメタ操作として定義されるべき」 / Twitter

名前空間

FadisさんはTwitterを使っています 「Linuxに新しい疑似ファイルシステム namespacefs を追加しようという提案がなされている話。今日のLinuxでは様々な目的で様々なリソースに対する名前空間の分離が行われるが、namespacefsはこの分離の階層をディレクトリの階層として、その中にいるプロセスのリストを取れる https://t.co/LdJcy2oXOC」 / Twitter
FadisさんはTwitterを使っています 「一連の情報は/procなどからかき集める事もできるが、よりたどりやすい形で並べることでコンテナを管理するソフトウェア等を実装しやすくするのが狙い。現在出ている実装はアイデアに対する意見を募るためのものでPID名前空間とtime名前空間にしか対応していない」 / Twitter
FadisさんはTwitterを使っています 「分離した名前空間にはユニークな名前がないため、現在の実装はファイル名を付けるのにi-node番号を使っているが、その是非で揉めているらしい」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxにおける名前空間 (namespace) 入門。名前空間は kernel 2.6.24で導入され、現在 PID, NET, MNT, UTS, IPC, USER および CGROUP の7種類がある。unshareコマンドを使うと新しい名前空間を作成でき、これらの空間内では外側にある資源は見えないし利用もできない。 https://t.co/jdhz4I9XxG」 / Twitter
Digging into Linux namespaces - part 1

blog

dockerと称するもの | IIJ Engineers Blog
我らの時代のコンテナデプロイ – Nomad, Consul, Vault | IIJ Engineers Blog
Project Zero: Who Contains the Containers?
コンテナレジストリの可用性を高める取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ
軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor's blog
コンテナのデザインパターンを学べる論文「Design patterns for container-based distributed systems」を読んだ - kakakakakku blog
Docker rootlessで研鯖運用 - drgripa1
Java 8ランタイム・コンテナ・イメージの作成とデプロイ - 赤帽エンジニアブログ
Docker(コンテナ型仮想化)と Kubernetes についての簡単な紹介 – ゆびてく
【Podman v3】ルートレスモードでdocker-composeを実行する - 赤帽エンジニアブログ
今の私が持っていないskillを考える · drumato.com
Docker コンテナで IPv6 を利用する3つの構成パターン - VA Linux エンジニアブログ
「hadolint」にシバかれながら美しいDockerfileを書き上げる - 憂鬱な世界にネコパンチ!
RustでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
Docker完全に理解した | IIJ Engineers Blog
コンテナイメージを設計する際の推奨事項 - 電通国際情報サービス TechBlog
ブラウザだけでDockerしたい | IIJ Engineers Blog

Publickey

Docker Hub、6カ月使われていないコンテナイメージの削除計画を保留に。従量課金ベースの料金プランを検討へ - Publickey
AWSがDocker Hubの代替サービスを発表予告。パブリックにコンテナイメージを公開可能で50GBまで無料、AWSからなら何度でもプルし放題に - Publickey
Docker Hubの無料プランにおける利用制限、オープンソースのプロジェクトは適用外にするとDocker社が発表 - Publickey
コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2 - Publickey
GitHubによるDockerコンテナレジストリ「GitHub Packages Container registry」が正式サービスに - Publickey
「Docker Dev Environments」発表。Dockerコンテナを使ってコードと同様に開発環境をバージョン管理、共有、再現可能に - Publickey
Docker Desktop 3.6正式版リリース。Dockerを用いて開発環境のバージョン管理ができるDev Environments機能など搭載 - Publickey
Kubernetesは、ITを「チケットドリブン」から「インテントドリブン」へ変えていく。Cloud Operator Days Tokyo基調講演 - Publickey
Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に - Publickey
コンテナ標準のOCI対応、クラウドネイティブなWebAssemblyランタイム「WasmEdge」が、CNCFのサンドボックスプロジェクトに採用 - Publickey
Google、仮想マシンもAnthosで管理する「Anthos for VMs」プレビュー版を発表。コンテナも仮想マシンも統合管理 - Publickey
マイクロソフト、コンテナをサーバレスで実行する「Azure Container Apps」発表。KEDAとDaprを採用。Ignite 2021 - Publickey
Dockerコンテナの実行を「Pause」で一時停止、ノートPCのバッテリ消費などを抑えられるDocker Desktop 4.2リリース - Publickey
Amazon ECR PublicからDocker公式イメージが取得可能に。Docker Hubのプル制限を回避可能。AWS re:Invent 2021 - Publickey
VMware、vSphere上のアプリケーションを解析し、Dockerコンテナへ変換する「Application Transformer for VMware Tanzu」発表 - Publickey
AWS、コンテナ特化で瞬時に起動する軽量VM「Firecracker」オープンソースとしてバージョン1.0に到達。AWS LambdaやAWS Fargateで利用 - Publickey
VMware、vSphere上のJavaアプリケーションをコンテナに変換するツールを正式リリース。「Application Transformer for VMware Tanzu」 - Publickey
Oracle Cloud、開発環境やテスト環境に使いやすいシンプルなコンテナ環境「Container Instances」、Oracle Cloud自身によるCDNサービスなど発表 - Publickey

GIGAZINE

無料のLinux向けAndroidエミュレーター「Anbox」レビュー、カーネルをホストと共有するコンテナ方式 - GIGAZINE
DockerコンテナやKubernetesクラスタをGUIで管理できる「Portainer」レビュー - GIGAZINE
コンテナ・Docker・Kubernetesについて初心者にも分かりやすく解説するとこうなる - GIGAZINE
「chmod」を不用意に使うとDockerイメージの容量が肥大化してしまう - GIGAZINE

GitHub

flouthoc/vas-quod: Minimal linux container runtime.
rrreeeyyy/container-internship
うたもくさんはTwitterを使っています 「Rustの自作コンテナランタイムを公開しました!🎉🎉 コンテナ界隈に入門したかもしれない。 devcontainerで実行できるのでvscodeとかを使って簡単に開発環境を構築できるのでぜひ試してみてください。 反応が良かったらゼロから作るコンテナランタイムとか書きたい。 https://t.co/wkfeYansug https://t.co/8Lc32LKk4f」 / Twitter
utam0k/youki: Rust experimental implementation of the oci-runtime
うたもくさんはTwitterを使っています 「Dockerで動かせるのでぜひぜひ遊んでみてください。そしていっぱい壊れると思います…」 / Twitter
R. ShioyaさんはTwitterを使っています 「Docker で外部からマウントしたディレクトリへのアクセス時に root とか Docker 内のユーザー ID になってしまうので困る問題,verilator の Dockerfile に模範解答があった.単にユーザー ID 指定で起動してマウントしたディレクトリに直に行けば良いだけだった・・・ https://t.co/JhFXsbognf」 / Twitter
verilator/ci/docker/run at master · verilator/verilator
R. ShioyaさんはTwitterを使っています 「あらかじめ内部にユーザーを作っておいて後から外部のユーザーと ID を同期させるとか考えるから話がややこしいのであって,ユーザーもホームディレクトリも作らずいきなりユーザー ID 指定でマウントしたポイントから起動すればいいだけだったわ・・・」 / Twitter

技術評論社

LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
第678回 distrobuilderでLXD/LXC用のカスタムイメージを作成する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第683回 LXDコンテナ上にUbuntuのフルデスクトップ環境を構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第686回 Bubblewrap/bwrapを使って管理者権限なしで非特権コンテナーを作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2022年3月11日 "ディストロレス"なエコシステムの拡大を―apkベースの軽量OCIイメージ作成ツール「apko」:Linux Daily Topics|gihyo.jp … 技術評論社

窓の杜

「Docker Desktop 4.2」は一時停止でリソースを節約可能 ~わずらわしい更新通知は削除 - 窓の杜
「Docker Desktop」が「Log4j」問題に対応 ~脆弱性スキャンツールを更新 - 窓の杜
新メニューを搭載した「Docker Desktop 4.5」 ~OS間の差異縮小、パフォーマンスも向上 - 窓の杜

infoQ

Dockerがイメージの有効期限の適用を一時停止し、サブスクリプションプランを発表
Docker Hub公開イメージ400万の半数に重大な脆弱性が見つかる
Sysdig: コンテナセキュリティのシフトレフトとDocker利用の減少
Docker Engine 20.10リリース:cgroups v2とデュアルロギングをサポート
Docker、AWS ECSおよびMicrosoft ACI用Composeのオープンソース化を発表
悪意を持ったコンテナイメージを直接ホスト上に構築する攻撃手法が明らかに
Compose仕様コミュニティに関するQ&A
AWS App Runnerについて - AWSコンピュータサービスVPのDeepak Singh氏とのQ&A
Googleがコールドスタート低減のために最小インスタンスを導入
Microsoftが新しいクラウドネイティブ製品、Azure Container Apps Serviceを発表
Cryostat 2.0の発表: JDK Flight Recorder for Containers
コード共有のためのDocker Desktopのベストプラクティス

スライド

日本と世界のDockerコミュニティ
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition - - Speaker Deck
container-dev-security - Speaker Deck

Zenn

Docker 20.10のリリースノートを眺める

Twitter

Docker Buildx

D-Hori (Web技術アカ)さんはTwitterを使っています 「Dockerの強み、軽い &amp; CPUアーキテクチャさえ同じなら同一のコンテナイメージが開発でも本番でもどこでも動くよ!だと思うんだけど 開発がARM、本番がx86/x64だから原則別のイメージ使わないとダメって根本からなにか崩れてないかって感じ」 / Twitter
oshiroさんはTwitterを使っています 「@d_horiyama_web buildkitであればマルチアーキテクチャでイメージをビルドすることも可能ですよ CPUをエミュレートするのでとても遅いんですけど。。。」 / Twitter
D-Hori (Web技術アカ)さんはTwitterを使っています 「@oshiro_3_t 情報ありがとうございます! https://t.co/3Fy8GUyyMI こういうやつですね 今回のプチバズで教えてもらいました」 / Twitter
Docker Buildx | Docker ドキュメント

R. ShioyaさんはTwitterを使っています 「今まで Docker を使ったことなくて触ってみたのだけど,とりあえずクロスコンパイラを中にいれて外部ディレクトリをマウントしてポータブルなコンパイラを… というのが内部のユーザー ID と外部の ID を動的に一致させるきれいな方法がなくていきなりつまずいた」 / Twitter
R. ShioyaさんはTwitterを使っています 「Mac だとなんか勝手に外部のユーザー ID の権限に変換してくれるみたいだし,Windows も大丈夫くさいのだけど,Linux は内部の ID のままの権限で書き込むようで,結構大事なところだと思うんだけど挙動が揃ってなくていいんだろか」 / Twitter
Akso de la MalbonoさんはTwitterを使っています 「ホストのディレクトリを bind mount して Docker コンテナ内から書き出したファイルをローカル側から見ると owner が root になることに対する怨念が蓄積していくことで世界は急速に滅亡の道を辿っている.」 / Twitter
FadisさんはTwitterを使っています 「@Cryolite 雑要約: その問題を解決するためにいくつかの方法が提案されてきたが、バニラカーネル入りを果たした物はまだ無い https://t.co/XJSKVk0VpH」 / Twitter
mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンテナの中でさらにnamespace使ってリソース制限するのって可能なのかしら」 / Twitter
神速さんはTwitterを使っています 「フロントエンドに限らず、開発環境でDockerを使わない方が速いのは、それはそう。 Dockerを使うのは日常の開発速度じゃなくてコントリビュートの敷居を下げる(=開発環境の初期構築を早くする)必要があるかどうかの違いだと思ってる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そうなんだけど、ディスクが余った &amp; capability が制限できるようになった &amp; overlayfs が使えるようになった、の3要素が揃ったからこそ、ようやく使い物になったというのもあって」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux、一時期はサーバOSとしての「マインドシェア」あったけど、最近は「コンテナのランタイム」であってホストOSなんか気にしなくなりつつイメージ」 / Twitter
uint256_tさんはTwitterを使っています 「docker system prune したら 70GB くらい減った...」 / Twitter

OCI Distribution Specification v1.0 - Open Container Initiative
opencontainers/distribution-spec: OCI Distribution Specification
About · Container Security Book
コンテナ管理の「Podman 4.0」が公開 | OSDN Magazine
とほほのDocker入門 - とほほのWWW入門
ASCII.jp:Windows 10にはコンテナーがいっぱい (1/2)
第47回 非特権コンテナの可能性を広げるseccomp notify機能:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
podman docker 違い - Google 検索
podman - Google 検索
κeenさんはTwitterを使っています 「コンテナを起動するブートローダ(????)。内部的には一旦小さいカーネルを起動してコンテナイメージ取得してコンテナ内のカーネルにkexecしてるみたい。 wyrcan / wyrcan · GitLab https://t.co/6H0oNaivyP」 / Twitter
wyrcan / wyrcan · GitLab
Trivyを使ったコンテナイメージの脆弱性定期診断 - アルファテックブログ
KOBA789さんはTwitterを使っています 「Docker Desktop の黒魔術の解説。VM からのトラフィックを素朴にフォワードすると社内ネットワークの FW にはねられたりするのでユーザーレベルでフォワードしてホストマシンからの発信にするなどの苦労がある / “How Docker Desktop Networking Works Under the Hood - Do…” https://t.co/qi6OFaczMJ」 / Twitter
How Docker Desktop Networking Works Under the Hood - Docker Blog
Toru KomatsuさんはTwitterを使っています 「Container Security 🤝 WASM (@wasmerio) youki has succeeded in executing WASM files directly in a container instead of commands. This makes it easy for WASM to benefit from container security and resource control. Repo 👉 https://t.co/dMTFxshU97 Details 👉 https://t.co/qWsAFNQeFE https://t.co/MNBOFr6ed6」 / Twitter
containers/youki: A container runtime written in Rust
Webassembly - Youki User and Developer Documentation

メモリバルーニング

メモリバルーニング【仮想化】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
メモリ (バルーン)
ESXiでのバルーニングはいつ起こるのか - Qiita
メモリのバルニーングについて - NETWORK ENGINEER BLOG
VMware ESXにおけるメモリ管理(8) - バルーニング - Simple is Beautiful
仮想化におけるメモリー管理テクニック | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ
メモリバルーニング(メモリの動的追加) – VirtualBox Mania
VMwareの監視を始めてみませんか - SiteScope技術情報 | アシスト
Linuxエンジニア日記 VMware ESXのメモリバルーニング
ゲスト OS の物理メモリが大量に使われている
5.2. クラスターのタスク Red Hat Virtualization 4.1 | Red Hat Customer Portal
メモリ (バルーン)
Dynamic Memory使用時に仮想マシンでは何がおきているのか / 開発者向けブログ・イベント | GMO Developers
macos — バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は?
バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は? | MACOS 2021
Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter

性能低下

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば古典的なスラッシングは載っている一方で、近年多用されるVM特有の問題は、まだOSやCSの本に書かれてない気がする。 VM異常に遅い → ゲストCPUが100% → だが真因はホスト上のゲストメモリ(mmapされたファイル)の断片化、とか。 https://t.co/ELQRRbTCF9」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにゲストCPUが100%に見えるのは、超低速メモリを使ってるのと等価になるため。 (一般に、CPUアクセス時のメモリストール=CPU100%に見える罠)」 / Twitter
齊藤明紀さんはTwitterを使っています 「例えば、スラッシングを理解してるとは、「物理メモリ不足のために、ページアウト・インが頻発しするというようなことを頻繁してシステムの動作が極端に遅くなること」と解答欄に書けることじゃなくて、そこにあるhddのアクセスランプを見て「これ、スラッシングじゃね?」と気づく人なのだ。」 / Twitter
齊藤明紀さんはTwitterを使っています 「いくら正しい回答文が書けても、スラッシング起こしてるマシンを「このCPU遅い」と評してしまう人は理解してるとはいえない。  てな感じで、ペーパーテストで理解度を測るには問題をよく練らないと暗記勢に正解されてしまう」 / Twitter
you milanoさんはTwitterを使っています 「@a_saitoh こっちが本題でしたか ナルホド」 / Twitter
mmasuda #あらゆる軍事侵攻に反対しますさんはTwitterを使っています 「@a_saitoh RDB でfull scan search が起きまくっている( ≒ index を上手く使えていない) という現象なのに「CPUガー」というのはよく見ましたね。ストレージがシリコン化(SSD)してからは見えにくくなっている気はする。」 / Twitter
EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh 「最近はストレージがSSD化されて、アクセスランプもシーク音もしないですが。」 という人が出そうなので「vmstat(8) で page in/out がI/Oを圧迫している状態」のような視点も必要ですね。」 / Twitter
齊藤明紀さんはTwitterを使っています 「@eguchi3 そうですね。vmstat, iostat, top当たりですかねえ。」 / Twitter
EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh この辺の代表的な性能指標を、muninの様な監視ツール やnagiosの様な通知フレームワークを使って「何が異常で何が健全か?」を定量化する・・・あたりが定石ですが、ツールやフレームワーク自体が高負荷で本末転倒だったり。。」 / Twitter
you milanoさんはTwitterを使っています 「@a_saitoh 「考えうる不具合は何か?」 ていう設問が捗るかなぁ 選択肢を20〜100くらい用意して複数チョイス ランダムチョイス勢を弾く為に 選択肢に関連付けと重みづけをして 的外れな組み合わせをしていると減点みたいな。 ほんとは記述式がいいけどハイコストですからね」 / Twitter

software rejuvenation(ソフトウェア若化)

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「初めてdaemon作った時(1994)、サービス開始直前までセットアップしたらforkして、子供達に実サービスさせ、定期的に子供達をパージ&再生成する構造にしたっけ。 あとAndroidのVMは、ある程度VMセットアップ済みdaemon(zygote)が親となってforkすることで高速化してたような。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「software rejuvenation(ソフトウェア若化)という名前で実際に様々に研究がされている概念の一端でもあります。実は。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「別の host に process live migration してしまって、migration が終わったら元の host machine を再起動する、とかも」 / Twitter
まちカドおるみんさんはTwitterを使っています 「基本はプロセスの再起動だろうけれど、たとえば CRIU とかで正常時の process check point を逐一作っておいて、問題が起きたらマシン再起動してから問題が起きたプロセス以外は checkpoint から resume、みたいな乱暴な方法でも場合によってはうまくいくかもしれない、みたいなネタも」 / Twitter
1974年さんはTwitterを使っています 「メモリリークを解消させるには確かにコンピュータの電源を切ったほうがいいので、すべてのコンピュータの電源を切れば原理上すべてのプログラムが「正常」になる」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu Androidは https://t.co/vbnq7Hb3U8 の件ですね」 / Twitter
kobaさんはTwitterを使っています 「Zygoteは通常必要になる全てのダイナミックリンクライブラリがあらかじめロードされている。だから新しいJavaのプロセスは最初から必要なダイナミックリンクライブラリがすでにメモリ上にある状態から開始される。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu zygote についてはその通りですが、software aging/rejuvenation とはほぼ関係ないトピックのような。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu fork 元になっている zygote プロセスが aging し続けてると仮定した場合その子である Android app も aging している状態を引き継いで開始してしまうのでは?という疑問点だったのであれば、それはそうかもしれませんが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu threadベースの並列化に比べ、forkベースの並列化の場合、一つないし一定数のクライアントの処理を終えるとforkしたプロセスは終了し、メモリその他の資源のリークやメモリの断片化の問題を避けられるので、これはまさにagingの話ですね。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu はい、daemon の最初の話で処理を別プロセスに切り離してたというのが aging 防止になっていたというのはその通りだと思うんですが、zygote の話のほうは(zygote の主眼は命名通りの部分にある高速化だと思うので)aging 防止だとかそういうのに繋げようとする作りではないだろうし関係なさそうかなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu AndroidじゃないJava VMを使ったアプリとかSmalltalkシステムとかだと、VM一つ動かすってのが主流で、ZygoteはそうじゃなくVMが逐一forkして終わるって意味でaging防止寄りという見方もできると思います。 まあZygoteには権限管理のためにプロセス分けたいって意味もあるんですが…」 / Twitter

crosvm

うどんさんはTwitterを使っています 「というわけで、crosvmのレポジトリがGitHub上にできました! crosvmはChrome OSで使われている Rust製のVMMで、Linux上で他のOSをVMとして立ち上げることができます (QEMUみたいな感じ) Chrome OSを持っていなくても、お手持ちのLinux上で動くので試せるので是非! https://t.co/VEPCIeeyK3」 / Twitter
For Linux - Book of crosvm
うどんさんはTwitterを使っています 「crosvm is now mirrored at GitHub🎉 https://t.co/epVUe7x8Bf crosvm is the Chrome OS virtual machine monitor written in @rustlang🦀 It's officially used to run Linux/Android on Chrome OS. Also, we have mdBook📖 https://t.co/JJYsyWxpYQ」 / Twitter
google/crosvm: The Chrome OS Virtual Machine Monitor - Mirror of https://chromium.googlesource.com/chromiumos/platform/crosvm/
Introduction - Book of crosvm
うどんさんはTwitterを使っています 「詳しく説明すると、crosvmはLinuxのKVMを利用するType 2ハイパーバイザです。 Rust製の似たソフトウェアとして firecrackerやcloud-hypervisorがありますが、これらは初期のcrosvmからforkされたという経緯があります。 cf. https://t.co/6osbapI54A」 / Twitter
Firecracker
うどんさんはTwitterを使っています 「僕の個人的に思うcrosvmの良さは「安全性」と「多様なデバイス」かなと思ってます。 安全性: Rustで書かれているということに加え、デバイスプロセスをsandbox化するなどの仕組みが入っています (続)」 / Twitter
うどんさんはTwitterを使っています 「デバイス: crosvmはクラウドではなくラップトップ等で動くこともあり、video encoder/decoderやwaylandといったグラフィック系のvirtioデバイスを実装しているというのも個人的にアツいポイントだと思います。 これらはvirtioプロトコルの設計からやっていて、upstreamに提案中だったりします。」 / Twitter
うどんさんはTwitterを使っています 「あと、crosvmは自前でsystems programming系のライブラリを色々と持ってたりするので、低レイヤー・Rust好き的にはそれらをcode readingするのも面白いかなと思います。 syscallのラッパーとか、asyncのためのexecutorとか」 / Twitter
うどんさんはTwitterを使っています 「crosvmがChrome OSでどうやって使われてるの?といった話は @hikalium のこのスライドが詳しいです! https://t.co/qKuG2PmZ30」 / Twitter
hikaliumさんはTwitterを使っています 「今日の #osc21aizu で発表したスライドです! ChromeOSの上でAndroidが動く話について書かれたものはそんなに多くないと思うので、大雑把ではありますが、もし興味があれば発表のアーカイブと共に見てみてください! (そして東京で低レイヤなお仕事の募集もあるのでぜひ!) https://t.co/iqkVomp3Jj」 / Twitter
Running Android Apps on VM in Chrome OS - Google スライド
retrageさんはTwitterを使っています 「Rust製VMM兄弟でcrosvm、Firecrackerより影が薄いけどちゃんと開発が進められていてmshv対応もしているCloud Hypervisorのことも思い出してあげてください https://t.co/Naqo6ypH20」 / Twitter
cloud-hypervisor/cloud-hypervisor: A Virtual Machine Monitor for modern Cloud workloads. Features include CPU, memory and device hotplug, support for running Windows and Linux guests, device offload with vhost-user and a minimal compact footprint. Written in Rust with a strong focus on security.

fork

FadisさんはTwitterを使っています 「Linuxが動いているVMの状態を丸ごと複製してforkさせると複数のVMのカーネルは乱数プールに同じ値を持つため、1つのVMが生成した乱数から他のVMで次に出てくる乱数が予測可能になる問題の対策について https://t.co/H6huMs0NpE」 / Twitter
FadisさんはTwitterを使っています 「VMをforkするハイパーバイザではしばしばACPIからfork元とfork先を識別する為のIDが与えられるため、この値の変化を検知したら乱数プールを混ぜ直す機能が提案されている。これと近い機能が同様の理由でWindowsにも備わっているらしい。ただこの機能の提案者はこの機能だけでは不十分だとしている」 / Twitter
FadisさんはTwitterを使っています 「カーネルは様々な方法で乱数の素を集めてプールに追加するが、これは割と簡単に枯渇するため多くのシーンではカーネルの乱数プールの値をseedとして疑似乱数生成器で実際に使う乱数が作られる。VMのfork時にこうした乱数器が更新されなければ、プールが対応しても最終的に出てくる乱数は予測可能になる」 / Twitter
FadisさんはTwitterを使っています 「そこでLinuxでは「VMがforkしたぞ」イベントを通知するための仕組みが合わせて提案されている。疑似乱数生成器を使うデバイドライバやユーザ空間プロセスがこのイベントをトリガーとして疑似乱数生成器のseedを更新することで、forkした2つのVMの疑似乱数生成器が異なる値を返せるようになる」 / Twitter

/var/log/hdk.log

日記 (2014 年 4 月中旬)
日記 (2014 年 4 月下旬)
日記 (2014 年 4 月下旬)
日記 (2015 年 1 月下旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 10 月上旬)
日記 (2016 年 12 月下旬)
日記 (2017 年 1 月下旬)
日記 (2017 年 1 月下旬)

blog

Publickey

サーバレスの次は「ストレージレス」の実現へ。NetAppがストレージレスを実現する新サービス「Spot Storage」を発表 - Publickey
仮想マシンのメモリを、ネットワーク経由でほかのサーバから拝借して増やせる「VMware Cluster Memory」、VMwareが開発中 - Publickey
Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ - Publickey
VMware vSphere 7 Update 3発表。NVMe over TCPサポート、KubernetesによるvSANのトポロジー対応、仮想化GPU付き仮想マシンの起動など新機能 - Publickey
VMwareが「Project Capitola」発表。vSphereでDRAMや不揮発性メモリを階層化し低コスト大容量メモリ実現、メモリプールとして利用可能に。VMworld 2021 - Publickey
Google Cloud、乗っ取られて暗号資産を無断採掘されているインスタンスを検出する「VM threat detection」発表。ハイパーバイザによるメモリ分析でエージェントレス - Publickey

KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt
KVMみたいなハイパーバイザを作った
「なぜか最初のDHCP DISCOVERに返信がこない」バグ
山市良のえぬなんとかわーるど: AMD CPU で Nested Virtualization!(Windows Server 2022 と Azure Stack HCI 21H2 の Preview の話)
RFC8365 Ethernet VPN(EVPN)を使用したネットワーク仮想化オーバーレイのソリューション - show log @yuyarin
RFC7209 Ethernet VPN(EVPN)の要件 - show log @yuyarin
Satoshi's note: Para pass-through hypervisors and their common design problem
The Invisible Things Lab's blog: Thoughts on DeepSafe
20210814

スライド

Hypervisor.framework(HVF)の中身 - Speaker Deck
Xenのスケジューラがぜんぜんわからん - Speaker Deck

OSDN

英SophosがWindowsサンドボックスの「Sandboxie」を無償化、将来はオープンソースに | OSDN Magazine
セキュリティを特徴とするデスクトップOS「Qubes OS 4.1」が公開 | OSDN Magazine

Wikipedia

仮想化 - Wikipedia
仮想機械 - Wikipedia
ハイパーバイザ - Wikipedia
x86仮想化 - Wikipedia
インテル バーチャライゼーション・テクノロジー - Wikipedia
LPAR - Wikipedia
PPAR (曖昧さ回避) - Wikipedia
PowerVM - Wikipedia

GitHub

intel/haxm: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
bao-project/bao-hypervisor: Bao, a Lightweight Static Partitioning Hypervisor
jovanbulck/0xbadc0de: A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes
ARM向け自作ハイパーバイザーT-Visorを公開しました | 己の不学を恥じる

Zenn

IOMMUについての調査
EPTについて
ちょっと詳しいEPT
割り込みと仮想化について
VMMとコンテナの歴史とか

Qiita

めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
VirtualBoxの仮想マシンの時計がずれるのを防ぐ - Qiita
ハイパーバイザを作ってみた - Qiita
Windows Hypervisor Platform (WHP) の使い方 - Qiita
BitVisor の IOMMU の話 - Qiita
VT-xとHyper-VとVirtualBoxの関係についてのメモ - Qiita
30日目のはりぼてOSが動作するx86エミュレータを実装してみた。(感想) - Qiita

Twitter

@oshibori_vmm

histric

histric-1

おしぼりさんはTwitterを使っています 「CPUIDの[bit5]を調べてVMXがEnableなことは確認できた。その後cr4のvmxeビットを1にしてvmxonして例外発生してないが、これはOKなのだろうか。vmxonしてるかどうかを示すフラグとかあれば良いんだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「0x1F0番portへのioハンドリングできた。 (つまりin命令を正常にハンドリングできるようになった) xv6のkernelとxv6.img をhexdumpしてバイナリ見まくった。たのしー。」 / Twitter
おしぼりさんはTwitterを使っています 「あ、ちょっと間違い。0x1F0番目のread commandが動くようにしただけなので、ioハンドリングというか本当にin命令が動くようにしただけ。(write commadはまだなので。)」 / Twitter
おしぼりさんはTwitterを使っています 「これをやる前は.imgの構造について全然理解してなかったけど、hexdump -s 512 -n 4 -C xv6.imgしてkernelのELFファイルのマジックナンバーを見つけたのは結構感動したし理解が深まった気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「理解も何もただのバイナリだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioはバイナリをデコードしてオペコードとオペランドを取り出してエミュレートしなけゃダメっぽい。stosb命令でこれが発生している。」 / Twitter
おしぼりさんはTwitterを使っています 「mp floating pointerのlapic addresからmp configuration tableを参照してlapicのmemory mapped adressをゲットする、というのがxv6のマルチプロセッサ初期化処理で最初にやってること。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのAPIC Virtualizationではゲストのlapic 物理アドレスへのアクセスをVMCS経由で予め用意した仮想的なlapicアドレスへリダイレクトする。VMExitが発生しないためオーバーヘッドが小さくなる。」 / Twitter
おしぼりさんはTwitterを使っています 「というのは分かったが、lapic addressにはそもそも何が置かれているのか、その中身もkvmが初期化してくれるのか、書き込み、読み込みのインターフェースはあるのか、みたいな所をさらに調べないといけない。」 / Twitter
おしぼりさんはTwitterを使っています 「ちなみにこれは確保したゲスト用メモリサイズがxv6のメモリレイアウトで必要になるサイズ(4G)よりも小さかったので範囲外のメモリアクセスがMMIOとして認識されてただけというオチ」 / Twitter
おしぼりさんはTwitterを使っています 「ホスト仮想アドレス→ゲスト物理アドレス→ゲスト仮想アドレスと辿る必要がありちょっと混乱するな。ゲストはIdentity Mappingにしてくれというお気持ちになる。(そもそもゲストのメモリ仮想化手法が常に既知とは限らないので、ゲストに割り当てたメモリへの書き込み自体KVMインターフェースを介さずに」 / Twitter
おしぼりさんはTwitterを使っています 「やるべきではないんだろうな。」 / Twitter
おしぼりさんはTwitterを使っています 「とはいえSeaBIOSを動かすのちょっと面倒だしなぁ。でもframeBufferとかまでこちらで仮想化する手間を考えるとちゃんとBIOSから起動させた方が早い気もする。」 / Twitter
おしぼりさんはTwitterを使っています 「KVMのAPIドキュメントが結構overview的な範囲しか網羅してなくて、実際にコード読まないと厳しい気がしてきた。」 / Twitter
おしぼりさんはTwitterを使っています 「SeaBIOSの仕様調べるの重いなぁ LAPICのエミュレート飛ばして動かせるか考えてみるかぁ( ˙-˙ )」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを一旦後回しにしてuartを動かすようにした。 とりあえず外部ファイルに「xv6...」を出力するところまではできた。(qemuみたいに別ウィンドウを出してそこにconsole出力させたいのだけど、やり方がわからない)」 / Twitter
おしぼりさんはTwitterを使っています 「xv6(のmmioを完全に排除してシングルコア前提に書き換えたやつ)が自作VMMが動かすVM上で動いた。 まずは画面出力しないとな…。」 / Twitter
おしぼりさんはTwitterを使っています 「最終的にはちゃんとlsなどのコマンドが実行出来るようにして、かつSeaBIOSから既読させるようにしたい。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを機能させるには、EBA(一部)を正確にエミュレート or SeaBIOSを動かすのどちらかが必要なんだけど、今のところ前者の方が良さげ。(SeaBIOSの中身を知らなすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「EBDAの間違い」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずLAPICもI/O APICもBDAから取ってきてることはわかった。 1. モックで動かす 2. BDAにちゃんと置く の順番でいけるだろうか…」 / Twitter
おしぼりさんはTwitterを使っています 「KVMにLAPICの仮想化支援機能があることはわかってるのだけど、VMM側で何をすればいいのかわからん。」 / Twitter
おしぼりさんはTwitterを使っています 「@tenpoku1000 そうですね、情報量はかなり少ない気がします。 以下の記事を読むと、ring0レベル(BitVisorやKVM)ではVMCSを用いたVMExitを発生させない方法 or EPT Violationによる例外フックのどちらかでAPICを仮想化してそうです。 https://t.co/yvN2NkD792」 / Twitter
今週の進捗 - bitvisor-summit-5-3-tomita.pdf
おしぼりさんはTwitterを使っています 「基本的にはKVMは全てのMMIOをフックしてるんかな。(APIの利用者がどこまでフックしたいかを事前に知る術がないため)」 / Twitter
おしぼりさんはTwitterを使っています 「メモ: qemu-kvmのコード読めばなんかヒント得られるのでは?(kvmから見たらqemuはユーザランドのVMMなので、今僕がやっているようにAPIでやり取りしているはずなので)」 / Twitter
おしぼりさんはTwitterを使っています 「ソフトウェア割り込みはin-kernelの割り込みコントローラでハンドリングされるのでVM Exitしないっぽい。 (user-spaceで割り込みコントローラを独自エミュレートしたい場合は指定のAPIを叩いてKVMにそれを伝えればOK)」 / Twitter
おしぼりさんはTwitterを使っています 「問題はPITだ…。 デバイスをKVMに作る時に設定を渡すのだけど、どんな値を渡せばいいのかAPIドキュメントを見てもさっぱりわからん。」 / Twitter
おしぼりさんはTwitterを使っています 「タイマー割り込み動いた… 嬉しすぎる……!!」 / Twitter
おしぼりさんはTwitterを使っています 「色々と悩んで調べた結果、「LAPICとIO APICのbase addressを正しく設定すればVM Exitするまでもなくkvmがよしなにやってくれる」が答えだったのはちょっと残念だが…。」 / Twitter
おしぼりさんはTwitterを使っています 「まだ不備はあるものの、とりあえず内部割り込みと外部割り込みを動かすことは出来た。vmmからkvmに割り込みを依頼する方法があるはずなので、それを使ってデバイスアクセスの完了を通知する割り込みとかを実装できる気がする。」 / Twitter

histric-2

おしぼりさんはTwitterを使っています 「最終目標がシェルを動かすことなので、そのために必要なことを整理しよう。」 / Twitter
おしぼりさんはTwitterを使っています 「ioapicについて理解が進んだ」 / Twitter
おしぼりさんはTwitterを使っています 「タイマー割り込みが1回だけ動いているので、『LAPICは正常なのでPIC/IOAPICからの割り込みの受信は行えていて、PIT -&gt; PICへ割り込みが送られているので一度だけ割り込みを受信するけどIOAPICによるEOIの書き込みが失敗しているので2回目以降は割り込みが発生しない』なのか?」 / Twitter
おしぼりさんはTwitterを使っています 「EOIが正しく書き込まれていない事を考えると、やっぱりIOAPICへのmmio全般が失敗している気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「ちょっと勘違いしていた。xv6ではlapicwriteを使ってtrap内でEOIを書き込んでいるので、lapicへの書き込みが失敗している可能性を考えなくてはいけないのか。 (lapicへの書き込みとioapicへの書き込み, 読み込みあたりが正しく動いていない気がする)」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのmmioをハンドリングしている部分を読まないとわからないな。lapicもioapicもin-kernelでエミュレートするならこちらからすることはほとんどないと思っていたけど、何かしら設定しないといけないのかも。」 / Twitter
おしぼりさんはTwitterを使っています 「&gt;KVM emulates 82093AA datasheet (with in-kernel IOAPIC implementation) which doesn't have EOI register naruhodo」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのコード読むめっちゃ学びがある。(最初からAPI仕様書に書いて欲しいけど)」 / Twitter
おしぼりさんはTwitterを使っています 「r = kvm_pic_init(kvm); if (r) goto create_irqchip_unlock; r = kvm_ioapic_init(kvm); if (r) { kvm_pic_destroy(kvm); goto create_irqchip_unlock; } ??????」 / Twitter
おしぼりさんはTwitterを使っています 「なぜdestroyするのだ…」 / Twitter
おしぼりさんはTwitterを使っています 「しかもこの後irq_routingを設定するとioapicもdestroyしてる」 / Twitter
おしぼりさんはTwitterを使っています 「お、ioapicのredirection tableは設定出来ている。(でもベクタ番号が32~55の24個になっている) ベクタ番号は0から24じゃないのかな」 / Twitter
おしぼりさんはTwitterを使っています 「0から23、だ」 / Twitter
おしぼりさんはTwitterを使っています 「execの中ののnameiの中のnamexの中のilockの最後の方でpanicしてる。 そもそもsuper blockの情報を見るとinodeの数が0とかになってるのでそこからおかしいのか?」 / Twitter
おしぼりさんはTwitterを使っています 「どうやらディスク読み込みを通知する割り込みが機能していないみたい。」 / Twitter
おしぼりさんはTwitterを使っています 「IOAPICをuser-spaceでエミュレートしないといけない気がしてきた。 どう頑張っても今使っているAPIだとPICを一緒に作っちゃうので外部割り込み出来ない。(MSIとかは分からないけど)」 / Twitter
おしぼりさんはTwitterを使っています 「ioapicのエミュレートを自分でやる場合はPITをin-kernelで作るか検討しないといけない。」 / Twitter
おしぼりさんはTwitterを使っています 「もはやLAPICをin-kernelでやる意味を見いだせなくなりつつある…。 user-spaceに作るかぁ…。」 / Twitter
おしぼりさんはTwitterを使っています 「いい感じに割り込みをpendingしておく仕組みさえ作れば普通に動作する気はする。」 / Twitter
おしぼりさんはTwitterを使っています 「in-kernelなLAPICを引退します」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえず割り込みのエミュレートが上手くいってユーザプロセスが動くようになったらブログ書きたい。」 / Twitter
おしぼりさんはTwitterを使っています 「雑にLAPICをuser-spaceでエミュレートした。」 / Twitter
おしぼりさんはTwitterを使っています 「PITもエミュレートしないといけないやんけ(絶望)」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずuser-spaceから外部割り込みをinjectしてxv6のtrap(割り込みハンドラ)を呼ぶことに成功した。」 / Twitter
おしぼりさんはTwitterを使っています 「xv6のpanicもちゃんと消えた。」 / Twitter
おしぼりさんはTwitterを使っています 「uartのエミュレートもやる事はわかってるので後はやれば行ける気がする (今はwriteだけを前提に雑にやってるのをちゃをreadされても良いようにデータを保持すればよいはず)」 / Twitter
おしぼりさんはTwitterを使っています 「ちゃを→ちゃんと」 / Twitter
おしぼりさんはTwitterを使っています 「人に発表したりブログを書くとなると、そもそもどうやって非64bit環境向けにコンパイルされたバイナリを実行しているのかちゃんと知らないといけない。 ホストで実行は普通に無理なはずなので、qemu使ってるのかな…。」 / Twitter

histric-3

おしぼりさんはTwitterを使っています 「自分とは全く違うやり方だったのでとても参考になる。」 / Twitter
かずみんさんはTwitterを使っています 「はてなブログに投稿しました #アドベントカレンダー2020 ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine https://t.co/TnDIJAulWt」 / Twitter
ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine
エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine
kazuminn/EEMU: toy Emulator to hariboteOS and xv6 and toy hypervisor
おしぼりさんはTwitterを使っています 「年末に自作VMM(と言ってもKVMを使ったホスト型)のここまでの進捗をブログに書くぞ(多分)」 / Twitter
おしぼりさんはTwitterを使っています 「せっかくなのでuserプロセスがちゃんと起動する(シェルはまだ使えない)ところまで実装したいけど、今週そこまでいけるか微妙」 / Twitter
おしぼりさんはTwitterを使っています 「割り込みの(正確な)エミュレート、難しすぎるな…。 KVM側の仕様も理解していかないと厳しそう…。」 / Twitter
おしぼりさんはTwitterを使っています 「fs.imgを正しい場所にロードすれば今の問題は解決する気がするんだよなぁ。うーん。(ファイルシステムのメタ情報などはdisk1にあって、kvmmはまだdisk0しか仮想化できていなかった)」 / Twitter
おしぼりさんはTwitterを使っています 「こいつのコードリーディングをやりたいと思っているが、「いや、まずはKVM読めよ」というもう1人の自分がいる・・・。(読んではいるけどまだまだ理解が浅い) https://t.co/oFspcpIVkh」 / Twitter
google/novm: Experimental KVM-based VMM for containers, written in Go.
おしぼりさんはTwitterを使っています 「そもそも32bit環境向けにコンパイルしたバイナリを実行しようとした場合はqemuに投げてIntel VT-xは使ってないと思ってるんだけど合ってるのかな。」 / Twitter
おしぼりさんはTwitterを使っています 「自作VMMでxv6のコマンド待ち受けらへんまで動いた。(正確には"$"を出力する所まで。その後panicする)」 / Twitter
おしぼりさんはTwitterを使っています 「コマンドの実行までいけなくとも、コマンド待機する所まではいきたいな〜っと思ってたので目標達成できた。」 / Twitter
おしぼりさんはTwitterを使っています 「うーん、lockされてちゃいけないinodeがlockされてるっぽい?」 / Twitter
おしぼりさんはTwitterを使っています 「直ったかも…?🙄 (怪しさを感じるところを直したらpanicしなくなったものの全く自分で説明できないし納得感もない顔)」 / Twitter
おしぼりさんはTwitterを使っています 「sleep内にデバック用で挟んでたcprintfを削除したらpanicしない。 何回か試したけどちゃんと再現性はある。」 / Twitter
おしぼりさんはTwitterを使っています 「ブログはまだ書けてないけど、一足先にREADMEなどをちょっと整えました。(ちゃんとリポジトリを整えるのが初めてなので、間違いやアドバイスなどあれば指定して頂けると嬉しいです)https://t.co/nBSr658PDh」 / Twitter
tomoyasuzuki/kvmm: kvmm is a type2 hypervisor that uses the Linux Kernel Virtual Machine(KVM).
おしぼりさんはTwitterを使っています 「ライセンス等はまだ自分がちゃんと理解出来ていないので、調べてからちゃんと記載するつもりです。」 / Twitter
おしぼりさんはTwitterを使っています 「実装はカスなんだけど、コードは全部main.cに書いてあるし700行くらいしかないので、kvm使いつつハードウェアエミュレーションまでやってるリポジトリの中ではめっちゃ小さくて理解しやすいと思います(可読性がい良いとは言っていない)」 / Twitter
おしぼりさんはTwitterを使っています 「動作環境はUbuntu18.04です。 他の人の環境で動かすにはxv6のパスを書き換えなくちゃいけないのはいつか直します…。(とはいえコード見れば秒で終わる修正です)」 / Twitter
ykskb/dax86: xv6-runnable x86 Emulator
おしぼりさんはTwitterを使っています 「ホストのSerial PortをVMのSerial Portへマップするにはどうしたらいいのだろう。QEMUとかが実現しているので可能なはずなんだが…。」 / Twitter
おしぼりさんはTwitterを使っています 「僕に必要なのはキーボード割り込みではなくUART割り込み+ホストとVMのSerial Portのconnectなんだ、って事までは分かった。あとは実現方法がわからん…。」 / Twitter
おしぼりさんはTwitterを使っています 「ホストのSerial Portへの書き込みは普通に出来るはずで、問題はそれをどうやってゲストのVMに繋げるかなんだよな。」 / Twitter
おしぼりさんはTwitterを使っています 「確かこれをuchanさんがサラっと言っていた気がするんだけど、ちゃんと実現方法まで聞いとけばよかったな。」 / Twitter
おしぼりさんはTwitterを使っています 「なんとなくイメージは出来たかも(?) ホストのPortへread/writeできれば、ホストからの入力をちゃんとVMの方にセットしてuart割り込み発生させればいける、気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「/dev/ttyS0は見えてるのにInput/Output errorとやらが出るな」 / Twitter
おしぼりさんはTwitterを使っています 「見えてるけど setserial すると UART: unknownになるな。」 / Twitter
おしぼりさんはTwitterを使っています 「標準入力をUARTにマップしてxv6側で出力させるとこまで出来たのだけど、なぜかコマンドが実行できない。」 / Twitter
おしぼりさんはTwitterを使っています 「しばらく悩んで時間かかりそうだったらMP対応からやるかなぁ…。」 / Twitter

histric-4

おしぼりさんはTwitterを使っています 「BitVisorはvmxon_region用のメモリを動的確保しているけど、(後で修正するとしても)今はグローバル変数でいいかも。とにかくステップバイステップで進めたい。」 / Twitter
おしぼりさんはTwitterを使っています 「VT-xの有効化はcr0とcr4あたりのビット立てたりしてvmxonするだけなので、まずはvmxonで例外が投げられないことが目標だと思う。その次に仮想CPUのセットアップ、vmcsのセットアップと続くのかな・・。」 / Twitter
おしぼりさんはTwitterを使っています 「例外は全部シリアル通信でやる様にしてたのでやっぱ先にシリアル通信だろうか。一時的に例外ハンドラを書き換えればprintデバッグでも問題ないけど・・・。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmが提供するAPIをつかってVMMつくる方針のほうがまだ現実味ある気がしてきたな。Intel VT-xの機能はkvmから提供されるのでエミュレートの方がメインになるけど。 (Type1をいきなりつくるのが厳しすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「Type2ハイパーバイザでまともに動くのもそんなに多くないし頑張れば新規性出せるのでは (願望)」 / Twitter
おしぼりさんはTwitterを使っています 「とても参考になる。本当にminimalって感じだ。 https://t.co/JptDUJpQOF」 / Twitter
dpw/kvm-hello-world: A minimal kvm example
おしぼりさんはTwitterを使っています 「もうちょっと大きい https://t.co/Zk1o6BolrZ」 / Twitter
kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repo
おしぼりさんはTwitterを使っています 「memo https://t.co/5Wj0zkNv4i」 / Twitter
sparkler/main.c at master · shuveb/sparkler
mumumuさんはTwitterを使っています 「xMP: Selective Memory Protection for Kernel and User Space [S&amp;P '20] Data-Orientedな攻撃のMitigationというコンテキストで,VUMFUNC/EPTを活用することで細かくメモリの権限を制御(Excutable-onlyや存在するがアクセスできない)したドメインの作成・遷移プリミティブを実装」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Intel VT-x/Intel VT-d/Intel EPT に対応する AMD 用語、それぞれ AMD-V/AMD Vi/AMD RVI なんだけど、いっつも後者は AMD-V までしか覚えてない」 / Twitter
まちカドおるみんさんはTwitterを使っています 「あとこれを確認しようとして、IA-64 の Intel VT 技術が Intel VT-i、SR-IOV のようなネットワーク I/F の仮想化とかそこらへんは Intel VT-c の一部、ということをさっき把握した。」 / Twitter
てらモス♋️さんはTwitterを使っています 「&gt; NIC は SRIOV 経由で VM に渡されるため、ネットワーク トラフィックがハイパーバイザーをバイパスできます。 その結果、標準の Mellanox OFED ドライバーが、ベアメタル環境と同様に HBv3 VM にロードされます。 https://t.co/CWpyJGzi8P」 / Twitter
HBv3 シリーズ VM の概要、アーキテクチャ、トポロジ - Azure Virtual Machines - Azure Virtual Machines | Microsoft Docs
おしぼりさんはTwitterを使っています 「Intelの場合VMCSへのアクセスがvmread, vmwriteなどの特権命令でしか行えないのがNested Virtualizationにおいてはつらいっぽいな。AMD だとVMCBへのアクセスは普通のメモリアクセスなのでguest hypervisorからのexit回数が段違いっぽい。」 / Twitter
おしぼりさんはTwitterを使っています 「まあ実際hypervisorのexit handlerでほぼ確実に複数回のVMCSへのアクセスが必要になるのでこれはつらい。準仮想化する or 動的バイナリ変換で通常のメモリアクセスを行う命令に変換する研究もあるっぽい。」 / Twitter
おしぼりさんはTwitterを使っています 「Software Techniques for Avoiding Hardware Virtualization Exits [USENIX ATC'12] VMExitにおける時間的なローカリティ(あるexitの近くにexitがある)を利用して、exitを起こす連続した命令をまとめることでexitの回数を減らす。面白かった。」 / Twitter
おしぼりさんはTwitterを使っています 「仮想化とバイナリ変換は結構関連の深い分野なんだなー (QEMUとかを念頭に置くとそれはそう、という気もしなくはない)」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずx86がnested virtualizationに向いていないことはわかったよ...」 / Twitter
おしぼりさんはTwitterを使っています 「キャッシュ汚染や割り込み終了時のEOIで発生するオーバーヘッドに関しては、VPIDやAPIC virtualizationである程度解決できる部分ではあるのかな。」 / Twitter
おしぼりさんはTwitterを使っています 「SDMを読んでてVMCS shadowingとVMREAD/VMWRITE bitmapなるものを知った。ちゃんと対策してきているんだなあ...(古い論文を読んでいると古い知識を仕入れたちなので、定期的にSDM読むの大事だなと思った)」 / Twitter

おしぼりさんはTwitterを使っています 「バイナリ計装でいい感じに任意の行にデバックコードを挿入する、みたいな方法とかツールないのかな。 QEMUにgdb繋いだらゆーて似たようなもんか…?」 / Twitter
おしぼりさんはTwitterを使っています 「VMMの開発をしているとVMで動かすコードの挙動を追いたいことが結構あるのだけど、KVMとかを使うType2だとKVMの提供するタイミングでしかExitできないので柔軟性が微妙な気がする。となると動かすバイナリに自体にデバッグコードを挿入してprintデバッグしたくなるみたいな…。」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令(の、空き領域)をデバッグ用途で埋め込んでおけば、そのタイミングで vm_exit してくれるかもとか、思いました: KVMにおけるcpuid命令の取り扱い - 睡分不足 https://t.co/9BqJVvcKPp」 / Twitter
おしぼりさんはTwitterを使っています 「@tenpoku1000 似たようなやり方でio命令でexitさせことは簡単に出来るのですが、あくまでexitするだけでデータが渡しにくいのが悩みですね…。 ポインタを無理やり書き換えて未割り当て領域へのアクセスをmmioでexitさせる、とかは割とアリな気がします。(これもちょっと面倒な気もしますが)」 / Twitter
おしぼりさんはTwitterを使っています 「mmioでexitさせると最大8バイトまでデータを渡せるのが嬉しい。」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令で渡せるのは EAX, EBX, ECX, EDX の各レジスタなので、ゲストのアドレスを渡すことは可能だと思います。(ホスト側からゲストの空間が見えるなら)データを引っ張って来れるかなと」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm 訂正:EAX と ECX ですね」 / Twitter
おしぼりさんはTwitterを使っています 「標準出力がバッファリングされてしまってうのはfflushで解決できた。 あとはユーザーの入力と同じ出力が繰り返されてしまう問題。(標準入力の値を仮想UARTにバッファリングして割り込みを起こしているけど、xv6の割り込みハンドラでも出力してしまう為)」 / Twitter
おしぼりさんはTwitterを使っています 「入力を監視してコマンド実行プロセスを起こすのも割り込みハンドラがやっているので、割り込みは必須だし値を渡さないといけないのも必須なんだよなぁ。1番簡単なのは、xv6のコードを書き換えて割り込みハンドラ内で出力だけさせないようにする。」 / Twitter
おしぼりさんはTwitterを使っています 「うん、これは理想通りの挙動をするな。本来OSがやることをホスト側でやってるのだから、OSに若干手を加えないといけないのは当たり前か。」 / Twitter
おしぼりさんはTwitterを使っています 「なんかコマンド動かないなと思ったけど、単純にコマンド用のバイナリがルートに置かれているので、新しく作ったディレクトリでコマンド実行できないな。(qemuでも同じ挙動なので仕様か)」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc termiosが何かすらよく分からなかったので調べてみました。エコー関係の設定とはc_iflagフラグに設定するECHO,ECHOE 等のことで、今回の文脈では標準入力をエコーしないように設定すればよい、という話でしょうか?」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc termiosも知らなかったので勉強になりました。出来るだけOS側は書き換えたくないので、このやり方でやってみます。 ありがとうございました!!」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc c_lflagでしたね。僕の勘違いでした。」 / Twitter
おしぼりさんはTwitterを使っています 「自作VMMでコマンドによるVMの操作ができるようになった。ブレークポイント貼ったりもできます。」 / Twitter
おしぼりさんはTwitterを使っています 「今はアドレスでしかブレークポイント貼れないので、それを関数名で貼れるようにELFの解析もしていくぞ。」 / Twitter
おしぼりさんはTwitterを使っています 「VMM経由で自作OSに簡単にネットワーク機能を実装できるようにする、を次の次の目標くらいにしたい。 とりあえずはデバッグ機能やトレース機能をもう少し充実させるところから。」 / Twitter
おしぼりさんはTwitterを使っています 「プロトコルスタック自作したりvirtioに対応させたりするのは面倒すぎるので、VMMで用意した独自のレジスタへのread, writeだけでネットワーク通信できるようにする、みたいのが理想(できるかは本当にわからないので半分妄想みたいなものだけど)」 / Twitter
VMMを自作してみた - おしぼりの日常
おしぼりさんはTwitterを使っています 「VM外からゲストOSのシステムコールを呼び出してセマンティックギャップを解決するのはそれなりに一般的な手法だと思うのだけれど、lsやpsなどのコマンドの出力先を良い感じにいじらないと情報が得られない気がするな...(うまく言語化できない)」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@oshiborii アンチパターンなはずです。VMM -&gt; Non VMM call out は脆弱性になります。ゲスト内エージェントがVMMに情報を送るか、VMMがメモリを解析してゲストに戻らずゲストの状況を把握するのが一般的かと」 / Twitter
おしぼりさんはTwitterを使っています 「@SatoshiTanda アンチパターンだったんですね、割とメジャーな手法だと思ってたので意外でした(どの論文もセキュリティリスク自体には触れていたので当然といえば当然かもですが...)。VMMからメモリを解析する場合、生のメモリから意味のある情報を得るのは難しかったりするのでしょうか?」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@oshiborii 簡単ではないはずですが、メモリーフォレンジックの分野と重複しているので、そちらを利用することで実用レベルになっています。LibVMIが代表で、メモリーフォレンジックのフレームワークであるVolatilityと統合して動作しますね」 / Twitter
おしぼりさんはTwitterを使っています 「@SatoshiTanda LibVMIについてもちょっと調べてみます!ありがとうございます!」 / Twitter

@mumumu_vm

mumumuさんはTwitterを使っています 「Directvisor: Virtualization for Bare-metal Cloud [VEE '20] ベアメタルクラウド向けのVMMで,性能とManageabilityの両立をがんばる.高性能化のため,HW(既存手法IOデバイスが主だがこの研究はIPIやTimerも含む)を直接OSに見せる.MigrationはGuest Agentに手伝って貰い仮想HW経由で行う等工夫.」 / Twitter
mumumuさんはTwitterを使っています 「Reducing World Switches in Virtualized Environment with Flexible Cross-world Calls [ISCA '15] 現在のHWはApp-&gt;OS(syscall), VM -&gt; VMM(vmcall)などの遷移のみサポートしているが,アドレス空間と権限を一般化したWorldという単位を導入してVM1'App-&gt;VM2'OS等の遷移もサポートしようという提案」 / Twitter
mumumuさんはTwitterを使っています 「vSlicer: Latency-Aware Virtual Machine Scheduling via Differentiated-Frequency CPU Slicing [HPDC '12] VM環境でIO-boundなApp性能が低い原因の1つがVCPU Sched.であることを指摘し,より短いタイムスライスでより頻繁に動作させることでFairnessを保ちつつ性能向上」 / Twitter
mumumuさんはTwitterを使っています 「Gleaner: Mitigating the Blocked-Waiter Wakeup Problem for Virtualized Multicore Applications [ATC '14] VMMでマルチスレッドなAppを動かしたときに性能が劣化する問題のあまり知られていない原因(BWW, よく知られたLHPの双対問題)を紹介し,そのMitigation(トレードオフが厳しい)を提案している」 / Twitter
mumumuさんはTwitterを使っています 「vTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core [ATC '13] 各VMがある特定のvCPUにIO処理(IRQ Handling)を割り当て,VMMはそれらのvCPUをまとめてあるコア上で短時間(0.1ms~)でスケジューリングすることで,VMM上のIO性能改善.vSlicerの発展版.」 / Twitter
mumumuさんはTwitterを使っています 「Micro-Sliced Virtual Processors to Hide the Effect of Discontinuous CPU Availability for Consolidated Systems [MICRO '14] VMM上のIOやMultithreadなAppが遅いことは既知だが,その対処の一つとしてタイムスライスを短くすることがあげられる.その際の性能変化の様子がたくさん載っている」 / Twitter
mumumuさんはTwitterを使っています 「Preserving I/O Prioritization in Virtualized OSes [SoCC '17] 仮想環境下でIOが遅い理由として「既存のOSでうまくIO処理を*優先*していた手法が,仮想環境でうまく動作しない」から,という事実を実験的に示し,仮想環境でも十分優先度を高めるための手法xBalloonを提案.」 / Twitter
mumumuさんはTwitterを使っています 「Towards a lightweight embedded virtualization architecture exploiting ARM TrustZone タイトルの通り.組込み向けVMMの文脈でGPOSをNon-Secureで,RTOSをSecure Worldでそれぞれ動作させる.ここでのRTOSは周期タスクと割り込みさえ最優先で対応すればよくて,その思想はTrustZoneに合う気もする」 / Twitter
mumumuさんはTwitterを使っています 「XtratuM: a Hypervisor for Safety Critical Embedded Systems 航空機の安全の基準を満たす組み込み向けVMMの実装.いわゆるマイクロカーネルっぽいアーキテクチャで,「普通のOS + App」と「VMMコンポーネント」をスケジューリング. https://t.co/WqdXQMehaj」 / Twitter
XtratuM Hypervisor - fentISS
mumumuさんはTwitterを使っています 「Bobtail: Avoiding Long Tails in the Cloud [NSDI '13] EC2(のXen)におけるNWのTail Latencyの原因はNWそのもではなくNodeであることを突き止め,さらに実験で pCPUの数より CPU-boundなvCPUの数が多いと問題があることを結論づけた.Nodeの良しあしの判定方法も提案. https://t.co/DErHOv8kI0」 / Twitter
Bobtail: Avoiding Long Tails in the Cloud | USENIX
mumumuさんはTwitterを使っています 「GiantVM: A Type-II Hypervisor Implementing Many-to-one Virtualization [VEE '20] Scale-upからScale-outを目指す中で,分散OS的な「一つのOSが複数の物理マシンで動く」ことを仮想化技術を用いて実現する.Type-2なVMMで実現することで,HWサポートやデプロイが容易に. https://t.co/oks2mGCjdD」 / Twitter
GiantVM | Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
mumumuさんはTwitterを使っています 「そういえばInterfaceの低レイヤ号よんだんだけど,ハイパーバイザの話で「仮想化は,完全仮想化が必要とされることが多くあります」って記述としてどうなんだろう.組込みとかならそうなのかもだけど,クラウドでは基本的に程度の差あれ準仮想化じゃない?」 / Twitter
mumumuさんはTwitterを使っています 「Paravirtual Remote I/O [ASPLOS '16] VMExitを避けるために仮想環境IO時に共有メモリ経由で隣のコアに処理をオフロードする手法を発展させて,SRIOVでDirect-IOしたNICの先に繋がるデバイスまでIOをオフロードしたときの性能評価.性能は多少悪化するが,コスト面でアド. https://t.co/a0QJwRWuDC」 / Twitter
vrio-asplos-2016.pdf
mumumuさんはTwitterを使っています 「Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency [CCGrid '15] 仮想環境における性能Isolationの文脈で,NUMA,SMT環境でのCPUの配置(Pinningによる)がCPU-boundなAppの速度にどのような影響を与えるかを調査. https://t.co/wa89OkaBi8」 / Twitter
Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency - IEEE Conference Publication
mumumuさんはTwitterを使っています 「vIOMMU: Efficient IOMMU Emulation [ATC '11] タイトルどおりIOMMUをVMMがSWでエミュレーションすることで仮想化.性能を犠牲に無修正OSのDMAに関するメモリ情報等を確認することができるなどのメリット.セキュリティを差し出して性能を得るやべぇ最適化とかもやってる.https://t.co/RXO99llMZf」 / Twitter
vIOMMU: Efficient IOMMU Emulation | USENIX
mumumuさんはTwitterを使っています 「Towards Fair and Efficient SMP Virtual Machine Scheduling XenのVM間のunfairnessがper-pCPUのvCPUスケジューラによることを指摘し,モニタしたCPUの実行状況からFairnessを満たせるように各vCPUのスケジューラをフィードバックで制御.並列計算の性能劣化も防ごうとした https://t.co/njhlcHL4WA」 / Twitter
PPoPP2014.pdf

@utshina2

品川@学生/共同研究募集中さんはTwitterを使っています 「国際会議 OSDI 2020 に Rust で書いた OS の話が2つある。Theseus は全てのコンポーネント間の厳密な隔離を目指した実験的OS(単一アドレス空間、単一特権レベル、no POSIX)、RedLeaf は主にデバイスドライバ等の一部のドメインの隔離を目指した設計(POSIX subset)。https://t.co/iEzuC0zAyP」 / Twitter
OSDI '20 Technical Sessions | USENIX
品川@学生・共同研究募集中さんはTwitterを使っています 「文脈的に Bitrise → BitVisor じゃないかな。」 / Twitter
ログミーTech|エンジニア向け書き起こしメディアさんはTwitterを使っています 「[新着記事]けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 情報科学若手の会とは、情報科学に携わる学生、若手研究者、エンジニアのディスカッションと交流の会です。NTT東日本特殊局員の登氏が政府に配布停止要請さ… https://t.co/nP3vPsaMTn https://t.co/a8s19Vp5HA」 / Twitter
けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 - ログミーTech
品川@学生・共同研究募集中さんはTwitterを使っています 「もともとは TypeII 的な VMM も想定されていて FreeBSD をベースにする案もあったけど、私がこれでやりたいと言って2007年春頃に故山口英先生と交渉しに行った。最初は Single VM に難色を示されたけど、最終的には認めていただいて誕生したのが今の BitVisor の準パススルー型アーキテクチャ。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「なので登さんが VPN モジュールを作った頃は、まだ VMM のアーキテクチャは決まっていなかった。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「この間の BitVisor Summit 9 で話すネタが無くて、BitVisor の歴史をしゃべったら、研究室の学生ですら初めて知った話だったらしく、時代の流れを感じた。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「どこかに BitVisor の歴史を記録としてまとめて書いておいた方がいいのかな。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「そういえば私の博士課程の研究は「細粒度保護ドメイン」というプロセス内に保護ドメインを作る話だったんだけど、私の教え子ですら保護ドメインというOSの教科書に載ってる用語を知らなかったりするので、時代の流れと指導力不足を感じる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「BitVisor の「保護ドメイン」は、一般名詞を固有名詞的に使っている形です。」 / Twitter

histric

histric-1

ぬるぽへさんのツイート: "あとあれですね、ファイル共有とメモリの割り当てだけは鬼門なんだけどwsl2はどうするんだろ、前者は9pで普通にsharedやるってちらっと見たけど後者は?hyper-vと同じhot plugで削除はホストOS側から無理やりスワップ?"
るくすさんのツイート: "単純な興味なんですけど、メモリ割り当てが鬼門になる状況ってどういう時があるんですか? ゲストがOS程行儀よく振る舞ってくれない故ですかね… "
ぬるぽへさんのツイート: "今回はゲストが本物のlinuxカーネルなので、wsl1と違って一度linux側に割り当てたメモリを解放後にホストに返すのがゲストにだいぶ手を加えないと難しいのでは?という… "
るくすさんのツイート: "なるほど。恐らくXenのVMコントロールチャンネルみたいな機構があるのかなと思いますが、いずれにせよ多少の準仮想化は必要になるでしょうね MSがこれからオープンにすると言っているオレオレLinuxパッチはその手のドライバかと… "
ぬるぽへさんのツイート: "ですかねー、まぁやる気とリソースさえあればやればいい話っすからね… "
るくすさんのツイート: "MSのパワー半端ないすね… "
SODA Noriyukiさんのツイート: "これって、linux/drivers/hv/hv_balloon.c にある Hyper-V 用 balloon ドライバでは機能が足りないって意味なんでしょうか?もしそうだとするとどのあたりが足りないんでしょう?… "
ぬるぽへさんのツイート: "実は良いかもしれませんがあまりうまく行った思い出がなく言及し忘れてました... 4年くらい前にhyper-vを使ってた時、バルーニングは全然メモリをホストに返てくれなかった思い出があります(数百MBくらいしか返してくれなかった) 今の状況が改善していればまんま動いてくれるかもしれません… https://t.co/xedpDkniEz"
SODA Noriyukiさんのツイート: "なるほど、ありがとうございます!… "
品川 高廣さんのツイート: "Technion 相変わらず頭のおかしいことやってるなぁ(SMTを使ったNested Virtualizationの高速化: https://t.co/eg0fAMv8Ac)。低レイヤ大好き企業だな。… "
Using SMT to accelerate nested virtualization
hrk先生さんのツイート: "次はイスラエルのテクニオンから。SMTを使ってネストされた仮想マシンを高速化する。Hyperviser+VMon VM of cloud environment, etc. 下から、Host Hypervisor, Guest VM, Nested VM etc. VMどうしのスイッチが増えるOverheadを押さえるためSMTの同時実行を使う。"
hrk先生さんのツイート: "ただアプリが全コアをフルに使うならばコンテクストスイッチの機会が増え、結局オーバーヘッドの減少が限定される。それを解決するため、SVT(実行は1本だがコンテクスト多重をする)を提案。凄くあたらしくはないが、良く考えられている良い結果に見える。ただHWを改造するので現実性はない。"
Takashi KawasakiさんはTwitterを使っています: 「WindowsでほぼHyper-Vが必須コンポーネントになってしまったので、VMwareもVirtualBoxも使えなくなってしまって、実のところ従来よりも不便になっているのは事実なんだよなぁ。金で解決できない不便さ。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「@kthrtty Hyper-V、使いにくい上に機能も足りないですが、仕方がない部分もありますよね。」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@masaru0714 @n12i @BsdHacker 仮想環境はXenとかでも同様に、ユーザドメインのOSがLinuxでも*BSDでも同様に、時刻が狂いますね。倍速で遅れたりするのでntpdで同期が間に合わない。性能測定でtimeコマンドが信用できなくて困る。」 / Twitter
FadisさんはTwitterを使っています 「ハイパーバイザ型のVMでコンソールから電源を落とすだけの為にゲストのlinuxがACPIイベントを正しく処理してユーザ空間のacpidに投げて、ってやるのアホっぽいって事で、電源ボタンのイベントだけを拾ってinitに直接シグナルを投げるtiny power buttonドライバが出来たらしい https://t.co/ooGrKrrhfi」 / Twitter
Linux 5.7 Getting A "Tiny Power Button" Driver - Phoronix
[PATCH 0/2] ACPI: Tiny power button driver - Josh Triplett
retrageさんはTwitterを使っています 「Nabla Containers触ってたときに思ったけどコンテナでもプロセス生成以外にいろんなところが走るので結構遅いんだよね。runncだとコンテナイメージからISO作ったりしてるし」 / Twitter
だんぼーだよさんはTwitterを使っています 「結構誤解されているぽいですが、最近のハードで Windows 10 を動かしている場合、CPU から見た OS は Hyper-V のハイパーバイザーで、Windows 10 は Hyper-V の上にいることが多いです。意識していないと思いますがセキュリティのため仮想化されています。msinfo32 を昇格して実行すると確認できます。 https://t.co/4g1RgKDjID」 / Twitter
まちカドおるみんさんはTwitterを使っています 「1960 年代から 2020 年までの仮想化の歴史と分類と特徴をまとめた最高のサーヴェイ論文が 5 月に出たのでみんな読もう #arm_study &gt;&gt; The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1 https://t.co/2aW7emmj0i」 / Twitter
The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1
suzakiさんはTwitterを使っています 「@kotatsu_mi ACM Computing Surveysは有料ですが、同じ著書によるarXiv版があります。こちらはPDFが無料。 The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers https://t.co/raeoWNkaGK ちゃんとJournal referenceにComputing Surveysが書かれています。」 / Twitter
[1904.12226] The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers
suzakiさんはTwitterを使っています 「「めくるめくLinuxカーネルじゃないLinux実装の世界」 https://t.co/a0ZnkgGUGJ カーネル/マイクロカーネル/ライブラリOSのAPI互換、市スコールエミュレーション、アプリケーションレベル互換の話。 TEEのABIの脆弱性を解析したA tale of two worlds[CCS19]を思い出した。 https://t.co/h6IR1xjRmT」 / Twitter
Shinji KonoさんはTwitterを使っています 「VMの中でVMを上げるのは初期に研究があって、sensitive instructions をすべて実装とか言う条件があれば良い。当たり前だが、それを書くのが論文。実際にはCPUがそれようの機能を持ってるかどうかが大きかった。なくてもなんとかしてたが。」 / Twitter

histric-2

retrageさんはTwitterを使っています 「VT-xとか使ったシステムのCI、どうするのがいいんだろうか。普通のCIサービスだとNested Virtualizationに対応してなさそうだし自前でCI runnerを持っておく必要がありそう」 / Twitter
FadisさんはTwitterを使っています 「Bareflank: ハイパーバイザは仮想マシン以外にも色々な応用が可能だけど、既存の実装は仮想マシンを念頭に置いている事が多く、それ以外の応用はまず自力でハイパーバイザを実装することから始まりがちなので、部品として使えるハイパーバイザを作った、というC++ライブラリ https://t.co/PDjXx5LjeB」 / Twitter
Bareflank/hypervisor: lightweight hypervisor SDK written in C++ with support for Windows, Linux and UEFI
FadisさんはTwitterを使っています 「Linux 5.13にVirtIO Bluetoothのドライバが入りたがっているらしい。VirtIO Bluetoothを使うとホスト環境から見えるBluetoothデバイスをゲスト環境からペアリングできるようになる https://t.co/p0kggoBZz1」 / Twitter
VirtIO Bluetooth Driver On The Way To The Linux Kernel - Phoronix
Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ low latencyな実装を求めるとvirtioほしくなりそうですね。BTはリアルタイム用途も狙ってるらしいのでvirtio生やすのも納得……。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DMAとキャッシュ関連の話、IRIXでDMA転送完了しても一瞬だけ旧CPUキャッシュが見える問題を思い出したり。 (=ページ境界に揃えずDMA転送というミスが原因だった) https://t.co/cTjPt1CsNu」 / Twitter
marsee101さんはTwitterを使っています 「@ciniml 当たりです。 ありがとうございました。 ハードウェアDMAを行う前はXil_DCacheFlush();ですが、ハードウェアDMA後はXil_DCacheInvalidate();でした。 最初はキャッシュに書いた値をメモリにフラッシュで、次はメモリに書かれたので、キャッシュをインバリデートしてメモリをキャッシュに読み込むですね」 / Twitter
AMD Zenの「Secure Encrypted Virtualization」に関する別の脆弱性が研究者によって実証される|自作.com
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「信頼できない環境でVMを実行できるAMD SEVに対する攻撃。チップへの電圧を異常に変化させることでSecure Processorに任意のファームウェアを実行させることができ、さらにこの技術を使ってVM内のendorsement keyを抽出できた。つまり正当なVMとしてなりすましが可能になった。 https://t.co/HI0itiP7pf」 / Twitter
[2108.04575] One Glitch to Rule Them All: Fault Injection Attacks Against AMD's Secure Encrypted Virtualization
(๑╹◡╹๑)さんはTwitterを使っています 「で、最後なんだけど、1台に複数の区画を集約するとめちゃくちゃ早くなるという点。まぁこれは、IAやクラウドでも同じだけど、同一筐体で稼働する仮想マシン間だと、ネットワーク通信はメモリ上で完結する(IBMはHyper Socketと呼んでる)ので、集約化のメリットは絶大。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「仮想マシンにおけるNGINXの性能測定。 結論: アプリケーションがCPU-boundであれば、仮想マシンで動かしても性能低下はほとんどない。一方Network-boundな場合は、ベアメタルで動かした方が断然性能がよい。(VMのI/Oは非効率なため) https://t.co/kFV0Wyldcr」 / Twitter
Comparing NGINX Performance in Bare Metal and Virtual Environments - NGINX
まちカドおるみんさんはTwitterを使っています 「ところて、jail や Solaris zone が既にある中の dune が container 前夜かというとどうなんだろう。privilege process の sandboxing なのはそうだけど……」 / Twitter
ntddkさんはTwitterを使っています 「渡部(幾度となく映像化が試みられたスペースオペラの金字塔の話だと思っている) 児嶋(コンテナ普及前夜に考案されたVT-x non-root内でユーザーランドのプロセスを動かす手法の話だと思っている)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Yasukata さんの「ptrace より 100 倍速いシステムコールフック作った」のやつ、なんか手法にみおぼえがある気がしてたけれど、そういえば library OS や unikernel が syscall を call に置き換えたりするヤツに似てるからそう思ったのかも」 / Twitter
まちカドおるみんさんはTwitterを使っています 「たとえば Graphene は素直に ptrace と seccomp とかやってるけど、HermiTux はバイナリパッチやってた https://t.co/NzWj9k7cbf https://t.co/LwSCNYvaNZ」 / Twitter
A Binary-Compatible Unikernel - vee2019.pdf
まちカドおるみんさんはTwitterを使っています 「こいつは jmp と nop に置き換えてからトランポリンコードをワンクッション入れてそこから syscall を call してますね(call でよいのは unikernel の特性上メモリ空間が単一になるため)」 / Twitter
Hajime TazakiさんはTwitterを使っています 「@kotatsu_mi x-container もそれ風のようです」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@thehajime たしかに!すっかり忘れてました」 / Twitter
まちカドおるみんさんはTwitterを使っています 「ほかにも libOS 系ではないが SkyBridge が microkernel の IPC 向上のためにこういう置き換えみたいなのやってた記憶ある(裏取りしてないから記憶違いかも」 / Twitter

MicroVM仮想化ソリューションのFirecrackerが1.0へ

Hotpatch

YurikaさんはTwitterを使っています 「再起動を必要としないWindowsへのパッチ適用Hotpatch の仕組み解説 Hotpatchは長らくAzureのHost OSには実装されてきた。WindowsServer2019以降には実装されててWindows Server2022ではさらにARM64も対応予定 https://t.co/TIRiZsJ8p2」 / Twitter
Hotpatching on Windows - Microsoft Tech Community
Makoto Kato ︎︎さんはTwitterを使っています 「HotPatchってテクノロジー的にはWindows Server 2003くらいのHotfixで可能になってたけど、今はそんな感じなんだ。仕組み的な話はAlan BackがHotpatchチームに移籍した後、日本に来たときに教えてもらったが」 / Twitter
YurikaさんはTwitterを使っています 「参考情報  Windows Server Azure Edition virtual machines (VMs) のHotpatching (Preview) https://t.co/IrynL0nbII」 / Twitter
Hotpatch for Windows Server Azure Edition (preview) | Microsoft Docs
YurikaさんはTwitterを使っています 「📝 再起動なしでパッチ適用 の試みは結構昔からあるんですよね. 多分最初はWindows Server 2003 SP1 だったような記憶? https://t.co/vfsb4YD452」 / Twitter
A few stray notes on Windows patching and hot patching - The Old New Thing
Makoto Kato ︎︎さんはTwitterを使っています 「Windows Server 2003から仕組み自体は存在してたし、制約はあるけどHotfixは存在してたよ。 https://t.co/WvyopdxRdA https://t.co/99hix773T9」 / Twitter
Avoid Windows Server 2003 reboots with hotpatching - TechRepublic
Hajime FujitaさんはTwitterを使っています 「Linuxでもいつの間にか当たり前になってたカーネルのlive patchingだがWindowsも対応してるのね。」 / Twitter
Hajime FujitaさんはTwitterを使っています 「@makoto_kato 引用元スレッドでも言及されてましたがエンタープライズ向け利用も多いことを考えるとある意味当然ではありますね。2003頃から対応していたのは今回初めて知りました。」 / Twitter
OSを再起動せずに更新プログラムを適用する「Hotpatching」- 阿久津良和のWindows Weekly Report | マイナビニュース

ページャ/TLB/キャッシュ管理

その他

GIGAZINE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まだこの手の気休めソフトが存在するのね。 https://t.co/OU7VMY9AZN (再利用が期待されない)バックアップ的なコピー(=ファイルキャッシュ)で他の仮想ページ追い出さない、といった「事前に汚さない」機能にしないと意味がないのだけれども。」 / Twitter
放置しておくだけでメモリの使用を激減させてくれるフリーソフト「Reduce Memory」 - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「4~16KB単位で読んでの比較とか、あまり意味ない。 I/Oサイズ1MB以上で、Direct I/O + Async I/O でユーザバッファに直接DMA転送するのが一番速い。 (Async I/O で重畳できない時は 4MB以上が望ましい) https://t.co/wITXWqQPrF」 / Twitter
rryu🕳さんはTwitterを使っています 「まさかのAVX。mmapの方が速いのはバッファ等への余計なコピーが発生しないとかだと思っていたが… / “プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE” https://t.co/qnNovvTeGU」 / Twitter
プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同じPCIブリッジにぶら下がったNVMe間でダイレクト転送(PCI P2P DMA)という実験的パッチの話。 https://t.co/thzgoKJgCi https://t.co/jOdFaW1kz6」 / Twitter
Experimental Linux Patches Allow User-Space Peer-To-Peer DMA Between NVMe Drives - Phoronix
PCI Peer-to-Peer DMA Support — The Linux Kernel documentation

セキュリティ・キャンプ2016で使用した、熊猫のテキストを公開しました。: 熊猫さくらのブログ
The OOM CTF
Implementing cooperative multitasking in Rust
pmap ソースコードリーディング
pmap でプロセスのメモリマッピングについて調べる
DSAS開発者の部屋:最近のPython-dev(2017-08)
Chapter 10. Linux® Binary Compatibility
2010年10月7日 Linuxバイナリ互換機能の仕組みの紹介:FreeBSD Daily Topics|gihyo.jp … 技術評論社
2012年5月31日 Linuxバイナリ互換機能にDTrace:FreeBSD Daily Topics|gihyo.jp … 技術評論社
フルボッコのリソース制限値(limit)の修正をした話 | Developers.IO
【翻訳】goroutine の仕組み - まるまるこふこふ
FastContainerアーキテクチャ構想 - 人間とウェブの未来
実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 - 人間とウェブの未来
Rump Kernelのreadが遅くてハゲかけたので調査 - livaの雑記帳
第二回 #wsa研 でHTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法について発表しました - 人間とウェブの未来
次期Windows 10、タスクマネージャーのメモリ報告が変更 - PC Watch
プロセスイメージ (Sun Studio 12: パフォーマンスアナライザ)
セキュリティキャンプと自作Slab allocator SLOBA - 空き地の資料室
atsisy/sloba: Simple and fast slab allocator using slob interface
こんなところに増えたコアが効く ~【2018年度版】マルチコアCPUはこう使え! - PC Watch
詳解xv6 Page tables 2
x86_64での再帰ページマッピング - Qiita
自作OSのから見たメモリ管理概論 - Qiita
自作OSにDemand Pagingを実装した話 - むむむ日記
xv6-riscv のメモリ管理方法 - daikimiuraの日記

キャッシュ

false sharing

Livaさんのツイート: "anderson lockの論文実装だとx86の64Bのキャッシュラインに乗ってしまって、false sharingが起こるという話の事 だね! #liva_notebook https://t.co/FL6aqBf1Su"
slankdevさんのツイート: "True/False SharingとC++について https://t.co/JlMlZT4kqg #liva_notebook #slankdev > . @liva_jy 氏の排他制御の話が参考になった"
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
false sharingの整理 - yoskhdia’s diary
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
Ryzen1800xでfalse sharing - Qiita
とみながたけひろさんのツイート: "フォールスシェアリングですね。単純に見えるデータ構造ほど、意外なはまりがあってつらい(ポインターのサイズが変わってて違う環境で激しく遅くなった、とか)… "
マルチスレッド開発ガイド: 3.4 スレッド間のフォルス・シェアリングの回避と特定 | iSUS

フラッシュと無効化

Tips IA32(x86)命令一覧 Wから始まる命令 WBINVD命令
Tips IA32(x86)命令一覧 Iから始まる命令 INVD命令
Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味
用語の意味を教えてください。 Cache Flushといった時、それによ… - 人力検索はてな
tsujamin/comp3300-cache-disable-kmod: cpu cache disabling kmod for linux ~3.8
[SOLVED] Disabling CPU caches
Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(キャッシュのフラッシュと無効化を追加) - Qiita
先日U-Bootに投稿したARMv7MのLinux起動時にデータキャッシュを無効にするパッチについての備忘録 - /home/tnishinaga/TechMEMO
ストリーミング SIMD 拡張命令 2 のキャッシュ操作
x86 に 3 オペランド論理演算命令と新キャッシュフラッシュ命令が追加 - 教育は参考ブログ

DMA

DMAとキャッシュの関係 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
DMA対応と言われたら(2) | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
夜でもアッサム: [クイズ]DMAをする時に、いつcacheを操作するか

Ryzen

satさんのツイート: "Ryzen1800xは - 8コア16スレッド - 4コアごとにCCXという一塊になってる - L1~L2キャッシュはコアごとに持つ - L3はCCXごとに持つ と、PC用の石としては比較的複雑な構成です。そいつらの性能を事細かに測ってた途中に天使が降りてきて「それ本に要るんか、締め切りいつや」と言われたのでほぼ捨てた"
まさみさんは語りたいさんのツイート: "L3をCCXごとにまとめるところがAMDらしいなあ。IntelだとL3は全部共有が基本だし。… "
satさんのツイート: "こういう構成のおかげで初心者用の本に「CCX」という単語が載ってます。でないとL3なんでこんなところで切れてるの、という説明ができなかったから… "
まさみさんは語りたいさんのツイート: "L3の影響まで測ってるんだ・・・・… "
Fomalhaut Weisszwergさんのツイート: "同人誌として出版というのはいかがでしょうか… "
satさんのツイート: "そのうちやるかもです。一般に売れなさそうなのとか、売れるかわかんないものを、これまで同人誌に投入してます… "

ACPI

まさみさんは語りたいさんのツイート: "ACPIにはPPTTというのが入って、これでキャッシュ階層を定義できるらしいぞ。 https://t.co/NMaZUdHMnd"
[RFC,3/4] ACPI/PPTT: Add Processor Properties Topology Table parsing - Patchwork

blog

キャッシュは諸刃の剣 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
beagleboard を触ろう - CPU キャッシュ:組み込みエンジニアの週記:So-netブログ
Linuxエンジニア日記 ページキャッシュの効率化
ファイルアクセスを高速化する方法を調べてみた - a9bのブログ
CPU とキャッシュのはなし - graphics.hatenablog.com
ADCX, ADOX, PERFETCHW, RDSEED 命令が追加 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
perf statでL1,L2(,L3)キャッシュミス測定 | 俺とお前とlaysakura
2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

Qiita

Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
キャッシュメモリの恩恵をてっとりばやく体感する - Qiita

Wikipedia

キャッシュメモリ - Wikipedia
Windows SuperFetch - Wikipedia
Windows ReadyBoost - Wikipedia
FadisさんはTwitterを使っています 「耐性のあるメモリをキャッシュとして耐性のないメモリにデータを追い出す場合、頻繁にアクセスされるデータかどうかを判断する必要がある。→LRU-kアルゴリズムではキャッシュのアクセスのタイムスタンプを過去2回分持ち、2つの差をアクセス頻度としてキャッシュから落とすデータを選ぶ #kernelvm」 / Twitter
書換え耐性が低いNAND flashメモリ向けの キャッシュアルゴリズム - Google スライド
ジップの法則 - Wikipedia

Twitter

ヒット・ミス率

Naoya HoriguchiさんはTwitterを使っています 「キャッシュのヒット・ミス率って取れたとしてどう利用するのが普通なんだろうか...」 / Twitter
satさんはTwitterを使っています 「@nhoriguchi ハード増強、CPU pin、isolation、ソフト改善のなどなどの動機付けですかね。」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi キャッシュヒット率って傾向が変わってもすぐ異常と判断できるのかなというのがあり、現実的に何に使えるのかなというのがありました。たぶん、異常検出というより、他の指標と合わせて原因特定に役立てる的な使い方なのかなと思いました。CPU pin やチューニングするときの判断には使えそうですね。」 / Twitter
satさんはTwitterを使っています 「@nhoriguchi そうですね。あとこいつをもとにチューニングするのは最後の雑巾のひとしぼりのとき、という感覚はありますね。普通はこれより先に別のところがボトルネックになるので」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi 「雑巾のひとしぼり」いい表現ですね。私はシステムチューニングとかやったことないのですが、重要で技術的難度高くて面白そうですね。」 / Twitter
satさんはTwitterを使っています 「@nhoriguchi はい。こういうときOSカーネルやってた経験はかなり役立ちます。他の人が持ってない引き出しがあることが多いので」 / Twitter

電力

とみながたけひろさんはTwitterを使っています: 「最近のタブレットやノートPCは動画再生時間とかで電池の持ちが書かれてるけど、CPUはほぼ負荷なし、限界まで最適化されてしまったHW動画デコーダーの電力はどの製品もほぼ同じ、なのでCPUの最小パワー状態の電力と、画面とWiFiチップの電力ベンチ状態な気がしてならない…」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
とみながたけひろさんはTwitterを使っています: 「最近のCPUはクロック下げると勝手にL2$のwayがへる(電源オフになる)らしいが、これ、こういうベンチとか向けなんやろな。まあいつでも10並列とかでコンパイルしてるわけちゃうからやるのが当然なんやけど」 / Twitter
とみながたけひろさんはTwitterを使っています: 「なおインテルは「製造ばらつきの関係で電力を多目に使う」wayを優先的に電源オフにするとかいう仕組みをいれてるらしい。工場で電力を測る行程があるんだろうけど、よくやるなあ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「温度とか一定にしてそれなりの時間かけて測定しないといけないはずなので、理論上は動くけど実際にわかるぐらいの成果を出すのは大変そうなんだよねえ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「参考資料(これはAppleのA11,A12プロセッサの比較で出てきたもの) https://t.co/Raza8z0vSy より &gt;The conclusion is here is that Apple is employing partial cache power-down in what seems to be per-bank granularity.」 / Twitter
The Apple A12 - First Commercial 7nm Silicon - The iPhone XS & XS Max Review: Unveiling the Silicon Secrets
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t ソフト屋さんから見ると一見凄そうに見えるのですが、CPU側からするとN-way cacheってそういうハードがあるわけじゃなくて1-wayつまりdirect cacheがN枚あって、N個の結果をセレクターで選んでるだけなんですよね。2のべき乗でないwayとかも割と簡単に作れます。」 / Twitter
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t キャッシュ読み込みはN-wayの中でデータを持っている1-way分のdirect cacheがラインを返しているんじゃなくて、N個のdirect cacheが同時にラインを返してセレクターが選ぶので、N-1個のキャッシュは毎回無駄に動作しているんですな。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュラインを意識すると、処理性能が2~5倍くらい変わることがある話。 カメラ画像90度回転処理で、簡単に例示してみる…「分かり易い」と思ってもらえると嬉しいけれど、さて? https://t.co/X5UIyCl0nH… "
キャッシュラインの意識は大事という話 // Speaker Deck
INADA Naokiさんのツイート: "これで重要なのはキャッシュラインサイズではなくて、何本のキャッシュラインにメモリへのライトバックなしに同時に書き込めるかだと思います。 例えば8wayキャッシュなら下位アドレスが一致するラインを8本しか持てない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アドバイスありがとうございます。 L1についても考えると、結構この辺に肝がある可能性が高いかもしれません。 ともあれ、もう少し追試してみねば…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、キャッシュライン+AVX2版だと、8K画像(120MB)の回転 = 合計120MB read + 120MB write を 22msで完了=合計240MB/22ms = 10.65GB/s でメモリアクセスできている計算。なかなかすごいな。 https://t.co/X5UIyCl0nH"
Shirouzu Hiroaki(白水啓章)さんのツイート: "INADAさん(@methane)に n-Wayセットが原因では?という示唆を頂いた。 確かに有りそうと思って、同時アクセスするアドレスを極力被らない形にしたところ、見事に64byte~128byteが最速となった。 最後の疑問は、なぜAVX2 gatherではその影響を受けなかったか、という点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュライン版は図示した通り、srcを1ライン読み取ってscatter I/O的にdstに分散配置している。だが、AVX2にはgatherしかないため、dst 1ライン分をsrcからgather的にかき集めている点が違う。 だがentryの同一wayへの被り方という意味では、どちらも大差ない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "逆に言えば、キャッシュライン版も gather I/O的な配置に逆転させると、もっと安定して高速化する可能性がある? (entryを極力被らない形にするとAVX2版とキャッシュライン版の差は2倍→1.5倍程度に近づいた)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにエントリが被る場合も、dirtyなentryを無効化するよりも、cleanなentryの無効化するほうがずっと軽いはず。 そっか、ではキャッシュライン版はgather版にしたほうが良さそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "あとでスライドも変更しておこう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "やはり、scatter ではなく gather にすることで、エントリが被る場合のペナルティが圧倒的に減った。常にAVX2 gather に肉薄する速度に。(性能差は概ね10%以内)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、個人的には、 「(メモリアクセスで)scatterとgather、どちらでも使えるなら、gatherを使え」 という教訓を得た。(wayが重なった時のペナルティが圧倒的に軽い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験前の目論見では「64byte単位最速に見えるけど、128byteにするとお隣の先読みも発生してさらに多少高速になるよ」というおまけストーリーを付与するつもりだった。 むしろ32byte最速でおや?となったのだが、ともあれn-Way補正後判明したのは、今回は先読みによる実数値改善はほぼ無かったこと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "いずれにせよ、実験・実測は大事。 (一方で、特定環境・特定条件による一側面結果、ということも忘れずに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「キャッシュラインの意識は大事」のスライドを更新。 (32byte最速の原因は競合性ミス、その影響をscatter→gather形にすることで改善し、理論通り 64byte/line~128byte/line が最速となった例で説明) https://t.co/X5UIyCl0nH… https://t.co/IwUfDhIBIQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "githubに置いたテストコードも更新。 https://t.co/0YE3TThEO2 ともあれ、スライドのアップロード&公開は初体験だったが、レベルの高い低レベルな方々?にも見て頂けているようで良かった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「scatterによる競合性ミス」と結論したところ、ヘネパタにi7について、こんな記述があった。本当にラインサイズ未満の書き込みで競合性ミスが出るのか、単に10エントリのwriteバッファ数を超えたためなのか、再調査が必要になった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにscatter版だと、32byte/line扱いで同時8ラインへの追記、64byte/line扱いで同時16ラインへの追記、が発生していて、10エントリのwriteバッファ数の境界となるため、状況証拠としてはこちらが原因である可能性も小さくない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方、それだと素数*32などの画素数で改善する話と整合しないところはある。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ソフトでもハードでも、キャッシュ機構を要所に入れれば威力抜群。 だが同時に、複雑度増大(改変が大変に・バグも混入しやすい)、コヒーレンス解決に手を焼く、といった問題を抱えるので、バランス大事と。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(…とキャッシュ機構を入れて、少し手を焼いたので書いてみた)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のCPUも、メモリアクセスがL1並みの帯域/レイテンシが出来てキャッシュ不要の単一階層になったら、どれだけシンプルになるのかしらん?とか、ふと思ったり。」 / Twitter

@mhiramat

ひらナツさん@散文家さんのツイート: "はー、なる。MSRを使って処理しているからタスクスイッチングのところでマスクをクリアしてやれば、そのタスクが使っていたL2/L3のエントリは別に使うことができるようになるわけか。#linuxcon"
まさみさんは語りたいさんのツイート: "キャッシュラインで配列舐める話はprefetchの使い方まで考えるとバラエティが増えるし、実は2のべき乗単位でないほうがいい時もある、という話を15年ぐらい前のYLUGで聞いた。吉岡さんがPMU使って測ってた気が。"
まさみさんは語りたいさんのツイート: "あれ?だれかNかFの人が発表して、吉岡さんがPMU使うとキャッシュミス測れていいですよ、みたいなコメントしたんだっけ?"
まさみさんは語りたいさんのツイート: "あと当時のintelプロセッサはキャッシュ先読みアルゴリズムが結構複雑でコロコロ変わるので、世代によって最適なやり方が違うとか聞いた気がする。"
まさみさんは語りたいさんのツイート: "「キャッシュメモリからレジスタにアクセスする際のレイテンシ」は、「キャッシュメモリからレジスタに読み出す際のレイテンシ」でいいと思う。。前者だとキャッシュが主体的に動いてるみたい。"

@fadis_

Fadisさんのツイート: "clflushがマニュアルではフラッシュの完了を待たないことになってるけど、Intelさんがフェンス忘れても大丈夫なように実際には完了を待つようにしてたら、不揮発メモリ用に高速なフラッシュが必要になってマニュアル通りの挙動のclflushoptを追加する羽目になる話面白い"
Fadisさんのツイート: "gcc-4.9はskylakeで追加されたCLFLUSHOPT XSAVEC XSAVESが吐けないみたいだけど、ユーザ空間でこれ使って嬉しい状況そうそう無さそうだし4.9でemerge続けるか…"
Fadisさんのツイート: "イマドキのNICはL3キャッシュに直接DMAしてくるからCPUからデータが見えるようになった時点ではまだflushされていない、と #kernelvm"
Fadisさんのツイート: "clflushopt、clflushが同期的に動かないかもしれない事になってるけどみんな同期的に動くことを期待するから、同期的に動くようにしてたけど、NVMMするのにあたってそれでは困る状況になったから作った「本当に同期的に動かないclflush」だっけ #kernelvm"
Fadisさんのツイート: "@uchan_nos x86_64の多くのプロセッサはスヌープ方式でキャッシュ一貫性を保っている。ただスヌープ方式は単一のバスが混雑してスケールしないためコア数が多いプロセッサでは使いにくく、そういったプロセッサではディレクトリ方式が併用される"
Fadisさんのツイート: "キャッシュ一貫性が保たれる複数のCPUのうち1つが書き込みを行うと、一般には他のCPUが持っている同じ位置のキャッシュは破棄される。これはキャッシュラインの長さ単位で行われるため、隣接する2つの値に別々のCPUが読み書きしていると、同じ値を触らなくてもキャッシュの捨て合いが生じることがある"
Fadisさんのツイート: "これはC++ではvectorのように隙間なく並んだ値を複数のCPUで処理する場合L1 cacheの長さ単位で同一CPUに処理させないと性能が落ちる可能性があるという話なので、C++17から同じL1 cacheに乗らない為に十分な幅を表す定数 std::hardware_destructive_interference_sizeが用意されている(n4659 §21.6.5)"
Fadisさんのツイート: "正しく綴ることが難しいstd定数選手権で上位狙える"

@hisak

Hisaki OharaさんはTwitterを使っています: "Intel MPX, Cache Allocation TechnologyにCode and Data Prioritizationを追加、Intel Processor Traceに大幅な追記、あたりがrev.55での差分かな。今回は結構でかいですね。"
Hisaki Oharaさんのツイート: "IntelのCache AllocationってL2も対象になったってマジか #linuxcon"
Hisaki Oharaさんのツイート: "ちなみにcache monitoringはHaswellからで、allocationはBroadwellから。どのSKUが持っているかは知らん。 #linuxcon"
Hisaki Oharaさんのツイート: "Haswell-EPも一部のSKUはCAT持ってるらしい。ガチャだ。 https://t.co/aS0zkAL1No https://t.co/LL8Pqv0twy"
Hisaki Oharaさんのツイート: "LinuxConで聞いたIntel Cache Allocation TechnologyがL2にも適用できる件、調べてみたら今年4月に出たIntel SDMのDocumentation Changeに記載されていた。すっきり。"

@satoru_takeuchi

sat@引退さんのツイート: "端的にいうと(ID,キャッシュの範囲)の組があって、IDはどう使っても良い。タスクでもコンテナでもVMでも。IDごとに独立したキャッシュを割り当てる"
satさんのツイート: "linux豆知識: /sys/devices/system/cpu以下を見ると、各CPUがどのノードに属しているかとか、どのCPUとキャッシュを共有しているかとかがわかるよ"

@KuniSuzaki

suzakiさんのツイート: "CAT:Cache Allocation TechnologyではL3のキャッシュをアプリケーション(CPU?)毎に分け、Noisy applicationからのキャッシュアクセスを封じ込める。L3_QoS_MASKで実現。"
suzakiさんのツイート: "L2 Cache用にもL2_QoS_MASKがMSRにあって、L3と同じことができる。"

@tanakmura

tanakmuraさんはTwitterを使っています: "CLFLUSHOPT の謎がとけた。 http://t.co/xBQA5WkDmI の CLFLUSH と https://t.co/nQS8eDg7Kl の CLFLUSHOPT の挙動を比べても CLFLUSHOPT のほうが改善される理由が不明だったが、"
tanakmuraさんはTwitterを使っています: "「CLFLUSHは実はこれまでの全CPUで順序付けてたから、MFENCEはいらなかったよ。順序が必要ないときは、CLFLUSHOPTを使って、最後にSFENCEしてね。」と、いうようなことが、7.5.6 CLFLUSH Instruction に書いてある。"
tanakmuraさんはTwitterを使っています: "CLFLUSH は、3A, 2A では、「CLFLUSH命令間では順序保証しないから、順序付けるならMFENCE入れろよ」と書いてあるが、最適化マニュアルには、"

Tsukasa #01さんはTwitterを使っています: "【Intel SDM 更新】 Revision 055 での主要な変更点は、Intel MPX と PT にマトモなドキュメントがついたことと、Skylake 以降のアップデートですかね。キャッシ
なかがわがくたろうさんのツイート: "Intelのプロセッサにcache QoS機能があるの知らなかった https://t.co/6xd26SENze"
naoさんのツイート: "挙動のおかしいドライバーが最適化を外すと動く場合、ちゃんとvolatile宣言が入ってるか、キャッシュの一貫性は保たれてるか、100回チェックしてからコンパイラのバグを疑え、というのが家訓。"
Kazuho Okuさんのツイート: "特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス"
InstLatX64さんのツイート: "Useful Prefetch* chart… "
みやた二進いちろうさんのツイート: "webサーバでcpu 1次キャッシユのどのラインがホットかを計測して、Cの構造体の中の順序を変えるnetflixと比べればヌルいのでは。… "
mattnさんはTwitterを使っています 「CPU キャッシュを生かすなら配列インデックスに気を付けろという話。Go に限らないあるあるな話。 #golang https://t.co/9jIYNXkqer」 / Twitter
Go and CPU Caches - Teiva Harsanyi - Medium
satさんはTwitterを使っています 「CPUのキャッシュメモリにおける大きな問題の一つ、スラッシングについて、実際に問題を発生させて凄まじい性能劣化が起きる様を確認した記事です。高級プログラミング言語ではこういうのがいいかんじに隠蔽されてたりします キャッシュのスラッシング|sat https://t.co/J7FFZm252r #zenn」 / Twitter
キャッシュのスラッシング | Zenn
青子守歌さんはTwitterを使っています 「D$とI$って書いて「データキャッシュ」「インストラクションキャッシュ」と読ませるのはまぁ確かに界隈が狭すぎるか…。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Intel64にはキャッシュ予告コマンドがあるのだが、それは計測でちゃんと差が出た。それを出すようなコンパイラがあるのかどうかは知らないのだが。」 / Twitter
x64 - Wikipedia
Shinji KonoさんはTwitterを使っています 「一応、CPU/IO Burstとかはやるわけなんだが、それが何を意味するのかはわからないものだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「キャッシュや仮想メモリの性能の問題、つまり hit率=性能 も、問題は解けても、それが何を意味するのかを理解してるかどうかとは別。自分でも学部生の頃、おんなじようなこと言われた。 この問題はなんのために用意されてるのか ってことね。先生の顔色を読んで欲しいわけじゃない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういうイベント、スワップのないスマホとかにしかないイメージ。スワップのあるOSだと、キャッシュはファイルに書く!が正しいんだと思ってる。ファイルに書くことでOSが必要に応じてメモリにキャッシュしたり追い出したりしてくれるし再起動にも対応できるので…」 / Twitter
渋川よしきさんはTwitterを使っています 「GCというか、OSからのメモリ開放プレッシャーを受け取るイベントハンドラがあればキャッシュの実装には良いきがするのだけどねぇ。GCだとメモリあるのにタイマーで勝手にキャッシュが消えちゃうとかだとキャッシュ効率下がりそう #tng36」 / Twitter

CPUID : キャッシュメモリの大きさ - 研究日誌。
Intel SDM version 049 | Hisak's Tumblr
インテル-CMT-猫マスターで/ README・01org /インテル-CMT-猫
キャッシュ制御組み込み関数
VTune でキャッシュのヒット/ミス回数を取得するには | インテルソフト あるある情報局
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
コンピュータアーキテクチャの話 (184) キャッシュコヒーレンシ | マイナビニュース
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
Dragon protocol - Wikipedia
DMA リソースの管理 - デバイスドライバの記述
バスの仕様 - デバイスドライバの記述
プログラムの動作が異常に遅い原因は「ランダムアクセス」かもしれない - GIGAZINE
Intel 64ビットマシンでキャッシュを有効/無効にする:CDビットは常に設定されていますか?

TLB

コヒーレンシ取られない

VPID

しゅううGXさんはTwitterを使っています: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行
なかみりさんはTwitterを使っています: "“VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful” http://t.co/cAaAHyJxSx"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日

Fadisさんのツイート: "TLBはハードウェアがコア間でコヒーレンシをとらない → 1つのコアでEPTエントリを追っていた為よそのコアのTLBで立っていたdirtyページを見逃す → 一部のメモリが古い状態でマイグレーション先が動き出してしまう #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "修正 EPTEを読む前に全コアでTLB shootdownをする コードにすると数行 これで2〜3ヶ月を無駄にした #kernelvm"
蟹の赤ちゃんVS蛸の赤ちゃんさんのツイート: "別々のCR3を持っているのでTLBのキャッシュコヒーレンシが維持されない #kernelvm"
_さんのツイート: "一部のdirty bitはTLBからまだメモリに落ちてきてなくて情報が古い #kernelvm"
るくすさんのツイート: "dirty bitまでTLBキャッシュに載るのやばくない... #kernelvm"
_さんのツイート: "EPTはコア間でコヒーレンシーが取られない #kernelvm"
Deep(Ph.D Go player)さんのツイート: "@RKX1209 EPTを全てクリアすれば、次のメモリアクセス必ずViolationします。 もししないなら、TLBに乗ってるマッピングを使われてるか、別コアからアクセスされているかだと思います。"
EPT と TLB でしくじった話
とみながたけひろさんのツイート: "ページテーブル、マルチコアでコヒーレンシとられないほか、投機実行で勝手にTLB載るのも辛いんだよね。超ハマりパターン、、、 https://t.co/4n6S3WeOxZ"

DPDK

NOKUBI Takatsugu野首貴嗣さんのツイート: "DPDKのその他の高速化手段 Hugepages: TLB missを避ける CPU affinity: 特定のCPUにスレッドをはりつける SSE, AVXなど使えるものは全部使う #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "Hugepageでのメモリ割付 OSはhugepageが常に有効 #kernelvm"

PCIDs

Hisaki OharaさんはTwitterを使っています: "Haswellで入ったのはinvpcidという命令のことではなかったっけ。それまではただのpcidでTLB selective invlは出来なかったから非常にいまいちだったという。"
なまえだよさんはTwitterを使っています: "FreeBSD 10ではIntel CPUのProcess-context identifiersに対応するパッチにより、コンテキストスイッチの度にTLB全体をフラッシュする必要がなくなったのでコンテキストスイッチのレイテンシも改善されるようですね…"
Tsukasa #01さんはTwitterを使っています: "oO( ってことは、最新の Intel CPU における TLB ってエントリ当たり 24 ビットものタグがついてるのか……。いや、どれほどのオーバーヘッドなのか知らんけど。 )"
Tsukasa #01さんはTwitterを使っています: "@hisak 調べてみると PCID 自体は Westmere (Sandy Bridge の 1 個前) まで遡れました。"
Tsukasa #01さんはTwitterを使っています: "@syuu1228 だいたいそんな感じみたいですね。付け加えて言うと、タグ付き TLB に相当するような機能は Intel 製プロセッサだと VPID と PCID の 2 種類が存在
品川 高廣さんのツイート: "INVPCID命令ですね。CR4の読み書きによるflushよりINVPCID命令の方が217ns速いのでLinux起動時にINVPCID命令を呼ぶようになったけど、BitVisorはINVPCID命令に対応してなかったので落ちたという話だそうです。 https://t.co/oQmyPQXrb4"
凍ってない方のアカウントさんのツイート: "x86、何故にtagged tlb実装(= PCID)したのがめちゃくちゃ最近なんだろう、ないと普通に性能落ちない…? VPIDでどうせtaggedになるから載せるか、みたいな話なんかしら(正確な登場時期も含めよく分かってない"
Ryou Ezoeさんのツイート: "@syuu1228 Linuxカーネルが対応したのが4.14で多くのVMがゲスト側に見せてないので現状だと割と使用不可(AWSだと半々)という実情と書いてあって不思議な気持ちになっている。 https://t.co/5dPE6uZbaM"
中村 実さんのツイート: "@syuu1228 PCIDがSDMに登場したのが2011年10月の040版からですな。 https://t.co/pC1mrC8s33 もともとi386がコンシューマ向けでサーバー向けにこんなにガリガリ使われることを想定してなかったからコンテキストスイッチでTLBフラッシュでOKOKのお気楽仕様に… https://t.co/K0OfETdyvC"
Hisaki Oharaさんのツイート: "PCIDはWestmereからで、invpcid命令はHaswellからだった気がする"
Hisaki Oharaさんのツイート: "VPIDとPCIDは異なるもので、PCIDのOS enablingはめちゃ遅れていたことは知っておいて良いと思う"
Hisaki Oharaさんのツイート: "そもそもbit長が違う。VPIDは16-bitだけどPCIDは12-bitだ。たったの12-bit !?と驚くと思う。自分は驚いた。。"
suzakiさんのツイート: "@hisak 確かに。意味を考えると、VPID(Virtual-processor ID)が16-bitで、PCID(Process-Context Identifiers)が12-bitと変な気がしますが、PCIDはCR3 registerなのに対して、VPIDはメモリ上のVMCS fiel… https://t.co/13C2tsw2hF"
Gil Teneさんのツイート: "PCID is now a critical performance/security feature on x86 - Google Groups https://t.co/NuL7UXGHNG"
PCID is now a critical performance/security feature on x86 - Google グループ
Vladimir Danylevskiyさんのツイート: "lshw -C cpu | grep -oiw pcid for Linux users. If you a regular user, don't panic, the patch will be shipped with a new update for your OS/… https://t.co/PgidcInc7M"
Dan Guidoさんのツイート: "If you have an Intel CPU with the "PCID" feature, then the security fix for Spectre/Meltdown will have less performance overhead. On macOS,… https://t.co/XlAgqQne1z"
Nasir Zubairさんのツイート: "@msgeekuk @epakskape Seeing the same thing on Dell systems with microcode update as well as MSFT patches. All green except for PCID Optimization. Can someone she… https://t.co/s5BqVGSwpb"
Martijn Brantさんのツイート: "Good to hear the PCID is not related to security. Was seeing a lot of results with false. Be sure to patch microcode though! https://t.co/oyasPYiRs6"
Hisaki Oharaさんのツイート: "PCIDについてはこの記述が気になるんだよな "To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups."… https://t.co/5oavpdYYut"
Linux_4.14 - Linux Kernel Newbies
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ

INVLPG

TLB · oraccha/omicron Wiki
Tips IA32(x86)命令一覧 Iから始まる命令 INVLPG命令
悪魔のツール“ルートキット”最前線 - 第7回 メモリー上のデータを見えなくする(後編):ITpro
Linux カーネル 3.8 では i386 がサポート外に | スラド Linux

TLB shootdown

RAR

Anderson NascimentoさんはTwitterを使っています 「Experimental Features Feedback Forum Remote Action Request (RAR) based TLB Shootdowns https://t.co/NFan9uTPBX https://t.co/MmskgAwWg0」 / Twitter
Experimental Features speedup TLB shootdowns
341431-remote-action-request-white-paper.pdf

るくすさんのツイート: "linuxのTLB shootdownは割り込みベクタに専用の関数追加して中でflush_tlbしてるみたいだ"
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
/proc/interruptsに関するメモ - お菓子食べる部
SMP環境下でのTLB Consistencyについて - syuu1228's blog
BitVisorの仮想メモリーマップ - Qiita
EuroSys 2020さんはTwitterを使っています 「#EuroSys20 Best Paper Award: “Don’t shoot down TLB shootdowns!” by Nadav Amit, Amy Tai and Michael Wei (VMware Research Group) — congratulations! https://t.co/fGsBrN8cAj https://t.co/6wky5sCZ2V」 / Twitter
Don't shoot down TLB shootdowns! | Proceedings of the Fifteenth European Conference on Computer Systems
Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter

Twitter

Deep(Ph.D Go player)さんのツイート: "Ryzen 案件、BIOSの設定でコア数一つにして試してみてほしい"
Deep(Ph.D Go player)さんのツイート: "TLB周りならそれで発生しなくなるから一つの切り分けになりそう"
EPT と TLB でしくじった話
NAKAMURA Minoru's Diary (2013年2月)
x86-64-128さんのツイート: "QEMUで自作OSを動かし、そこでページングの実験をしているんだけど、ページディレクトリエントリのPresentビットを0にしてアクセスしてもPage Faultが発生しないように見える。"
x86-64-128さんのツイート: "ページディレクトリエントリを更新したら何かCPUに教える必要あるのかな。メモリを書き換えるだけで行ける?"
Fadisさんのツイート: "本題の前にまずFacebookの人が「バイナリ内の実行頻度が高い関数8MB分を1箇所に集めてHugePageに乗せる事でTLBミスを回避して5~10%の性能向上」とかやってて、Webサービスの性能向上の努力が極まりすぎている事に定評のあるFacebookが平常運転で安心した(リンク先有料記事) https://t.co/4fi5TzNv91"
ロボ太さんはTwitterを使っています: 「malloc動画といえば、「京」でハイブリッドとflat-MPIで等価な計算してるはずなのにハイブリッドの方がが有意に遅いのに悩んでて、後で直接の原因がTLBスラッシングとわかるんだけど、その理由がわかんなくて、malloc動画で勉強したら、アリーナの大きさが違うのが原因とわかってなるほどな、と。」 / Twitter
ロボ太さんはTwitterを使っています: 「これ、最初は完全にスレッドまわりが原因と思って調べてて、でもプロファイル見てもそうは見えなくて、ある日ポスターで話したら筑波大の朴先生が「TLBじゃないかな」って言って、その時は「まさか」って思ったんだけど、その数年後にTLBスラッシングが原因とわかって、プロってすごいなと。」 / Twitter

トランスレーション・ルックアサイド・バッファ - Wikipedia
HPC性能が大幅に強化されたHaswell(中編) - TLBミスによる性能低下を減少 | マイナビニュース
本の虫: Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする
0から作るOS開発 ページングその1 ページとPTEとPDE
ハードウェアキャッシュとTLBの制御 - 詳解Linuxカーネル Wiki*
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)|ロードマップでわかる!当世プロセッサー事情
仮想メモリ方式の分類
イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
スケジューラの挙動は三巨頭会談で決まるのだ?(1/2) - @IT
2章 Linuxカーネル - メモリ管理1
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第2回 Intel VT-xの概要とメモリ仮想化
[BitVisor-devel:88] Re: [PATCH] Re: Ubuntu 16.10 beta2 (linux 4.8.0-17) が BitVisor 上で動作しない
インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) プログラミングの注意事項
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)
日記 (2020 年 12 月)

メモリ保護

その他

特権分離 (Privilege Separated) OpenSSH
ラージページについての考察 | iSUS
メモリーリマッピング
「実在には存在しない情報」をメモリキャッシュに埋め込むというセキュリティ対策 | スラド セキュリティ
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響 | スラド オープンソース
glibcにStack Guard Page迂回の脆弱性(CVE-2017-1000366) — | サイオスOSS | サイオステクノロジー
linux kernelにStack Guard Page迂回の脆弱性( CVE-2017-1000364 ) — | サイオスOSS | サイオステクノロジー
続・サンドボックスの透明性 | 一生あとで読んでろ
サンドボックスの透明性 | 一生あとで読んでろ
はりぼてosにページング機能を追加する - Qiita
MIT、プロセッサ性能を犠牲にせず「Meltdown/Spectre」脆弱性を解決する新手法 - PC Watch
418.pdf
suzakiさんのツイート: "NDSSソフトウェアセキュリティ5つ目。User After Freeなど本来存在してはいけないメモリへの攻撃を検出するRedzone-based memory error detectionのMEDSの発表。MEDSではpage aliasing を使い、物理メモリを割り当てずにvirtual memory の空間を見るmemory allocation mechanism (MEDSALLOC)で管理"
デダルスユメノ 技術書典6・う38さんのツイート: "ページサイズは伝統的に4KBが使われてきたけど64ビットシステムでは2MBページでいいんじゃね?と一瞬思うけど、遅いストレージを考慮するならダーディページの書き戻しが2MBだときついかも。HDDを対象にするならページキャッシュの部分は4KBのままがいいか。"
mumumuさんはTwitterを使っています 「Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation [CCS '15] OSやAppを乗っ取られてメモリDiscloseされる脅威のMitigationとして,予めユーザが定義したメモリ領域secretと動的・静的解析で検出したそれを操作する関数をVMFUNCでIsolationするSeCageを提案.」 / Twitter
mumumuさんはTwitterを使っています 「No Need to Hide: Protecting SafeRegions on Commodity Hardware [Eurosys '17] Deterministic(=ASLR等 確率的なものでない)なIntra-ProcessのMemory Isolation手法について,既存手法の分類と性能評価.そのためにMPK,MPX(SFI), VMFUNC等を用いて評価ツールMemSentryを実装https://t.co/xD7u4nTyGV」 / Twitter
memsentry_eurosys17.pdf

Intel

EPT-Based Sub-Page Permissions

品川 高廣さんのツイート: "EPT-Based Sub-Page Permissions が消えてる… https://t.co/k9qDDRAHEb"
品川 高廣さんのツイート: "と思ったら SDM 本体の方に入ったのか。ということはもうすぐ実装が出てくる?"
VT-x に128バイトサブページ単位の書込み保護が導入される予定 - 教育は参考ブログ
東京大学 品川研究室さんはTwitterを使っています 「品川研究室を卒業した小澤洋介君の論文が国際会議 2021 IEEE 14th International Conference on Cloud Computing (IEEE CLOUD 2021) に short paper として採択されました。128バイトのサブページ単位で書き込み保護を出来る Intel SPP を用いたライブマイグレーションの話です。」 / Twitter

5-Level Paging

5-Level Paging and 5-Level EPT white paper
5-level paging [LWN.net]
Fadisさんのツイート: "5 level paging: x86_64の既存の4段のページングでは扱いきれない巨大なメモリを持つマシンの為に将来的にIntelプロセッサで採用されることになっている拡張。Linuxの場合4段ページングでは64TiBを超えるメモリを扱えないが、5段ページングでは4PiBまで対応することができる"
Fadisさんのツイート: "Linuxの5 level pagingは実装されたばかりで、ドキュメントには「将来的にはブート時に4段と5段を切り替えられるようにしたい」と書かれているが今のところそうした仕組みは無い為、5段を有効にしてビルドしたカーネルは4段しか扱えないプロセッサで実行するとコケる"
Fadisさんのツイート: "LKMLに投げられているのパッチの説明によると、既に一部のサーバが64TiBのメモリを実際に積んでおり、この問題は喫緊の課題になっているらしい… "
FadisさんはTwitterを使っています: 「@d_kami こういう巨大なメモリを持つマシンって大体小分けにしてクラウドサービスを提供するためのマシンだったりして、今日クラウドサービスが無くてはならない物になっていることを考えると、どちらが特殊なのかな感はある」 / Twitter
ちくわさんのツイート: "以前にそれについての記事を書いたのでよろしければどうぞ https://t.co/uhEkuOHv9J… "
Linux kernelの5-Level Paging有効化部分を読んでみる - めもちょー

CET(Control-flow Enforcement Technology)

インテル、ROP攻撃をチップレベルで阻止する新技術を発表 - ZDNet Japan
R.I.P ROP: CET Internals in Windows 20H1 – Winsider Seminars & Solutions Inc.
新しいオプション
qcf-protection、Qcf-protection
20160611
品川 高廣さんのツイート: "CPUレベルで shadow stack と control flow integrity を入れるのか。https://t.co/NuHzLftmFe"
Control-flow Enforcement Technology Preview
品川 高廣さんのツイート: "VMX, SMM, TXT, SGX にも影響を与える複雑な変更だな。"
品川 高廣さんのツイート: "shadow stack は call 時に shadow stack pointer (SSP) が指すところにリターンアドレスだけを積んで、ret 時にスタックの値と一致してなかったら exception が発生するという感じか。"
品川 高廣さんのツイート: "indirect branch tracking は jmp 先が ENDBRANCH 命令(未対応プロセッサではNOP相当)でなかったら exception ということでいいのかな。命令列の真ん中に jmp するような ROP chain は組み立てられなくなるわけか。"
品川 高廣さんのツイート: "AMD も EPYC でメモリ暗号化とか入れてるし、アーキテクチャの拡張競争みたいにもなってる。AMD と Intel のアーキテクチャがズレていくのはシステムソフトウェア屋的にはつらそうだけど。"
Intel Releases New Technology Specifications to Protect Against ROP attacks | Intel® Software
るくすさんのツイート: "Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc https://t.co/fjIJnqPpxt"
Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc - Phoronix
まさみさんは語りたいさんのツイート: "https://t.co/341S8w5ovM うーむ、これROPとかJOP対策だと思うけどkprobes jump optimizationの存続に関わる問題っぽいぞ・・・。"
Control-flow Enforcement Technology Preview
まさみさんは語りたいさんのツイート: "ARM pointer authentication https://t.co/lZ87vSuU9t ARMはポインタとして使われるアドレスを符号化して検証する命令を追加してROP対策しているというわけか。このあたり、明示的に機能を使わせるARMと、バックグラウンドで検証するIntelの思想の違いか・・・?"
ARM pointer authentication [LWN.net]
まさみさんは語りたいさんのツイート: "多分Intel CETは(Spectre v2の時にも言及したが)投機的実行の効率化のために用意したシャドウスタックをセキュリティに転用しました、ということなんだろうなあ。つまり投機的分岐実行の失敗=脅威発見とみなす、という。"
Fadisさんのツイート: "glibcにIntel CETのサポートが入った模様。 CET対応のプロセッサではSHSTK(一部の命令だけが書ける第二のスタックにリターンアドレスを積んでROPを検知)とIBT(着地命令以外のアドレスにジャンプ出来なくしてジャンプ先の書き換えを検知)をユーザ空間のプロセスで使えるように https://t.co/247IN0psYI"
Intel CETをサポートした「GNU C Library 2.28」公開 | OSDN Magazine
Fadisさんのツイート: "LLVM、リターンアドレスだけが積まれる第2のスタックでROPを検知するShadow Call Stackを廃止。x86_64用の実装が遅くてinsecureだったのが理由。最近のIntel CPUには同様の事をハードウェアで行うCETが備わっているが、LLVMの実装はソフトウェアでそれとは無関係 https://t.co/RnKlqj2wey"
LLVM Drops Its Shadow Call Stack Support For x86_64 - Phoronix
FadisさんはTwitterを使っています 「新しめのx86_64 CPUに備わっているshadow stackをLinuxで使えるようにする試みが難航している話。shadow stackは通常のレジスタの退避や戻りアドレスがごちゃ混ぜで積まれたスタックと別に戻りアドレスだけが積まれるスタックを作り、call/ret時に両方のスタックを操作する https://t.co/br0DjiKkYJ」 / Twitter
FadisさんはTwitterを使っています 「shadow stack側をプロセスが直接書き換えられないようにする事で、表のスタックを壊して任意のコードを実行しようとする攻撃を受けても、表のスタックの戻りアドレスとshadow stackの戻りアドレスの不一致もとに攻撃を検知してプロセスを止めることができる。要するにROPを防ぐための機能」 / Twitter
FadisさんはTwitterを使っています 「shadow stackはcall/retで動くが他の書き込みは拒否するという特別なメモリの設定を要するため、カーネルのページテーブルはページの用途がshadow stackであるとわかる必要がある。しかしページテーブルのフラグは極めて貴重な資源なので、なんとかフラグの追加を回避できないか試行錯誤がなされている」 / Twitter
FadisさんはTwitterを使っています 「またユーザ空間プロセスは時折自前で確保したメモリをスタックとして使ったりスタックに細工をしたりするが、これらのスタック操作を伴うハックでshadow stackが壊れないようにするのは極めて難しく、一部の状況ではshadow stackを有効にするとユーザ空間の互換性を壊す問題の解決の目処が立っていない」 / Twitter
FadisさんはTwitterを使っています 「「セキュリティ上良い効果があるが問題を起こすかもしれない」機能は「とりあえずOFFにしましょう」が蔓延って結果として実運用される環境を安全にすることに貢献できないから、カーネル屋さんはセキュリティ上有用な機能でもそれが互換性を壊さないことにすごく気を使う」 / Twitter
Intelがマルウェア攻撃をチップレベルで防御する新技術「CET」を次世代モバイルプロセッサ「Tiger Lake」に搭載 - GIGAZINE
実に15年ぶり、インテルがCPUへ追加するマルウエア対策機能の実力 | 日経クロステック(xTECH)
WhitepaperCSME - intel-csme-security-white-paper.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ntel TigerLake から Shadow Stack が実装(Intel CET)されていたのね。 ただC++での仮想関数TBLの書き換え系には無力だよねと思っていたら、"indirect branch tracking" も含まれていて、飛び先がENDBR命令以外は例外という、(やや弱そうな)防御が追加されていた。 https://t.co/NAIiq8S8Lc」 / Twitter
【pwn 36.0】Intel CETが、みんなの恋人ROPを殺す - newbieからバイナリアンへ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ShadowStack での exception/longjmp は return が同じ値になるまで、ShadowStack を popしつづけるのが定番らしい。 https://t.co/TfSryDB2RP」 / Twitter
Shadow stack - Wikipedia
巧妙な攻撃もシャットアウト! Windows版「Google Chrome 90」にハードウェアによるスタック保護が導入 - 窓の杜
recent_advances_vuln_mitig_jp.pdf

UMIP

Intel User-Mode Instruction Prevention Support Revised For The Linux Kernel - Phoronix
るくす(Ren Kimura)さんのツイート: "Intelの次のプロセッサからSMEPならぬUMIP(User-Mode Instruction Prevention)という、ユーザーモードで実行できる命令をさらに制限するセキュリティ機構が追加されるらしい。 これはカーネルエクスプロイトかなりしんどくなるぞ… https://t.co/aLr5CtSr3P"
ka0ruさんのツイート: "@RKX1209 これそんなに強いですかね〜"
るくす(Ren Kimura)さんのツイート: "@infvhj まあ理屈としてはそんなに強くないんですが、肌感覚でしんどくなりそうな気はします。というのも、AAWでカーネル内の関数ポインタを書き換えてユーザー空間からの操作でそいつをtriggerする流れで、このtriggerはなるべく他に副作用を与える操作であってほしくないんですよね。"
るくす(Ren Kimura)さんのツイート: "@infvhj 余計な操作が多い複雑なシステムコールとかをtriggerにすると、RIP奪う前にカーネルクラッシュしたりとか。で、このパターンが少ないのがGDT/LDTみたいなユーザー空間から参照できてかつprivmitiveな物をtriggerにした時なので結構重宝するんですよ。これができない… https://t.co/JlBLhxcqVX"
ka0ruさんのツイート: "@RKX1209 Linuxは余り詳しくないのでアレですが、カーネルのwriteプリミティブ持ってるならそのSMEPとかで使うaddr_limit的なのも同時にいじれるかなぁっていうのとret2usrは楽というのは最もですがPTE弄ってカーネルにシェルコードをいれるーとかでもありなんじゃないすかね"
るくす(Ren Kimura)さんのツイート: "@infvhj あいや、というかRIPをそもそも奪う前にクラッシュする事があって、例えばfops->iops->openを何かのコードの先に書き換えるためにfake iopsとか作ってopenシステムコール呼ぶと、関係ない別の所でiopsの他のメンバ触られてクラッシュとか"
るくす(Ren Kimura)さんのツイート: "@infvhj 要するにシステムを正常に動かしつつ、特定の関数ポインタだけexploit codeに飛ばすというが難しくて、この両立がしやすいのがGDT/LDT書き換えとかですね。メモリアクセスなんて他に邪魔されずすぐに発生してくれるのでスッとtriggerしてくれる"
るくす(Ren Kimura)さんのツイート: "@infvhj あとSMEPのONOFFはレジスタが管理してるので、OFFにするには直接writeプリミティブでは難しくて、レジスタいじるROP gadgetみたいなコード実行に一度飛ばしてやる必要がありますね"
るくす(Ren Kimura)さんのツイート: "@infvhj ring0のアドレス範囲addr_limitを書き換えるというのはGDT書き換えにあたると思います。"
イトー君さんのツイート: "@RKX1209 一般ユーザーにとってこれはgoodなの?badなの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I 一般ユーザー的にはおそらく良い方向だと思いますねー これを追加して何か不具合が起きるというのはそんなに無さそう"
イトー君さんのツイート: "@RKX1209 待つほど価値があるもの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I あー そこまでではないと思います。比較的高度な攻撃に対する対策技術なので、そもそも一般ユーザーで特にWindows環境以外をお使いならそんなに遭遇しないかなぁと"
イトー君さんのツイート: "@RKX1209 了解です、ありがとう"
2018年1月29日 Linux 4.15が正式リリース, Meltdown/Spectreにフルパッチ対応:Linux Daily Topics|gihyo.jp … 技術評論社
x86: enable User-Mode Instruction Prevention [LWN.net]
Linuxカーネル4.15リリース、Meltdown/Spectreへの対処が組み込まれる | OSDN Magazine
InstLatX64さんのツイート: "QuadCore #Intel Celeron J4105 (#GoldmontPlus) 706A1 CPUID dump added - according to this, Goldmont+ supports SGX, SGX_LC, UMIP, RDPID features, and also the 3 #Spectre/#Meltdown mitigation features (#IBPB/#IBRS, #STIBP, IA32_ARCH_CAPABILITIES) in: https://t.co/37mJQ4r9bT… https://t.co/y8zSIn9c80"
Intel 80286 - Wikipedia

Memory Protection Keys

Memory Protection Keys (MPK) Submitted For Linux 4.6 - Phoronix
Memory Protection Keys Support Finished Up In Linux 4.9 - Phoronix
LLVM Begins Looking At PKU Memory Protection Keys Support - Phoronix
[RFC] x86: Memory Protection Keys [LWN.net]
Linuxカーネル4.6が登場 | OSDN Magazine
Linuxカーネル4.9リリース、Greybusのサポートや各種ドライバの強化などが行われる | OSDN Magazine
x86 の仮想ページに Protection Key が付いた - 教育は参考ブログ
品川 高廣さんのツイート: "Intel MPK 流行ってるな。VMFUNC も良く見かける。保護ドメイン系は永遠のテーマだな。"
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
mumumuさんはTwitterを使っています 「Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries [ATC '19] Kernel BypassなIOを提供する等重要なライブラリの安全性を担保するためにPKUを用いてIsolation(Appの制御が奪われる脅威を想定).ローダがバイナリを走査しデバッグレジスタを用いて意図しないpkruの変更を検出」 / Twitter
mumumuさんはTwitterを使っています 「libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK) [ATC '19] MPKのサポートはすでにLinuxに実装されているが,それらを改良し既存のSWが使用しやすく(mprotectのプロセスレベルアクセス管理のSemanticsを再現やPkeyの仮想化),Securityの強化等を実装した研究.」 / Twitter
Intel MPKについて - Google スライド
FadisさんはTwitterを使っています 「ライブラリOSはOSとアプリケーションが単一のメモリ空間で動くのが性能を稼ぐ上で強みだが、それはセキュリティとのトレードオフになっているためMPKを使ってライブラリOSをより堅くしたい、と #kernelvm」 / Twitter
プロセス内のメモリアクセス権限を効率的に制御 「Intel MPK」はコンテキストスイッチがいらなくて高速 - ログミーTech

SMEP

【仮想化道場】IDF北京から、2013年のIntelサーバープロセッサのロードマップを見る - クラウド Watch
Tsukasa #01さんはTwitterを使っています: "@yuzuhara x86 の PAE にあるような NX ビット (ARM での XN ビット) に加えて、ページ毎に Ivy Bridge の SMEP ができる PXN ビットというのがページテーブルに存在
本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題
Windows カーネルモードの脆弱性「CVE-2014-4113」を検証 | トレンドマイクロ セキュリティブログ

SMAP

x86 の新しいメモリ保護機能 Supervisor Mode Access Prevention(SMAP) - 教育は参考ブログ

TME

Shirouzu Hiroaki(白水啓章)さんのツイート: "ディスクやメモリの暗号化では、XTSというブロック暗号モードが最近の定番、という点を初めて知った。 https://t.co/AlgOrzHujH… "
Disk encryption theory - Wikipedia
Fomalhaut Weisszwergさんのツイート: "Intel 製 CPU にもメモリ暗号化機能。Intel TME (Total Memory Encryption) なる機能が追加されました https://t.co/Z5orBwxmY2"
Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linu… · torvalds/linux@9e1909b
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔、サーバで暗号化してのファイル保存が必要になった際、CBCだとランダム書込みができず、CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性発生で、解決に頭を悩ませた記憶。 XTSという手を知らなかったので、別途NONCE配列(1ブロック=1NONCE)を設ける手しか浮かばなかった。… https://t.co/x76fuJuhga"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性というのは、「ある時点でのスナップショットを取り、変更後にもう一度スナップショットを取る」という操作で、スナップショット差分=元内容と上書き内容のビットパターン差分が見えてしまう、という意味。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、XEX/XTSの後段のXORは、どういう効果があるのか良く判らない…気休め程度にも見えるのだけど。"

TDX

Intel® Trust Domain Extensions - tdx-whitepaper-v4.pdf
InstLatX64さんはTwitterを使っています 「This #Intel #TDX pdf has a comprehensive list of CPUID bits on p.116-123. It mentions a few new one (at least for me): FZM, MPRR, SGX_TEM, SGX_KEYS, ULI, DEDUP, HRESET, Fast REP*s, and - according to the XFAM bits - #AVX512-related #FP16 and #ADL_VNNI https://t.co/cRvQtcgU2A https://t.co/WeXCJgWl5m」 / Twitter
Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module - intel-tdx-module-1eas.pdf
https://twitter.com/InstLatX64/status/1306525230379290627
https://twitter.com/InstLatX64/status/1306530044584644609

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
Hisaki Oharaさんのツイート: "よくまとまってる。最後のCETっての知らなかった。。Intel CPU security features https://t.co/zKazJKnSY5"
Intel CPU security features · huku-/research Wiki
x86におけるメモリアクセス権のルール - 睡分不足
社会人でもOSを作りたいさんはTwitterを使っています: 「きっとx86-64のOSを自作してる人なら誰もが持ってる思うけど,4階層ページングの仮想アドレスを各部分(PML4,PDP,PD,PT)に分割する,または逆に各部分の値から仮想アドレスを作るツールを作ってみた。 https://t.co/aaAXYAS1lz」 / Twitter
x86-64 Virtual Address Composer
NT カーネルのページング基礎 - Qiita

ページキャッシュ

Linuxのメモリキャッシュを削除する | 俺的備忘録 〜なんかいろいろ〜
OSキャッシュの便利な利用方法|サイバーエージェント 公式エンジニアブログ
Linuxでページキャッシュを確認・解放してみた - Qiita
Windowsカスタマイズ - キャッシュを極める

メモリ管理

Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)(Kodama's tips page)
6. システムがパフォーマンスを維持するためのメモリ管理について
4.メモリ使用率(第5章 パフォーマンス管理~上級:基本管理コースII)
Windows OS入門:第4回 メモリ管理 - @IT
freeコマンドで確認するOSのメモリ情報 - SHOYAN BLOG
【RHEL】linuxのメモリ使用率(利用率)の計算方法 - のぴぴのメモ
linuxにおけるメモリと関連コマンド(free, vmstat, top, sar) - 銀色うつ時間
Linuxにおけるメモリ管理 - MogLog
どうしてメモリはスワップするのか!? - インフラエンジニアway - Powered by HEARTBEATS
Rui Ueyamaさんのツイート: "このミニOSにページングを実装する課題かなり目処がついて来た。最初は若干途方に暮れていたけど少しずつ作れば難しくはなかった。まずmmap()をやっつけで実装、そのあとスタック拡張も実装、そのあとページアウトも実装、みたいな。"

Meltdown:Variant 3: rogue data cache load (CVE-2017-5754)対策:Kernel page-table isolation

meltdown.pdf
kaiser.pdf
Kernel page-table isolation - Wikipedia
python sweetness — The mysterious case of the Linux Page Table...
The mysterious case of the Linux Page Table Isolation patches : linux
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Linux page table isolation is not needed on AMD processors | Hacker News
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Kernel page-table isolation merged [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
「Intelの脆弱性情報の開示が遅すぎた」ことでLinux開発者が大変な目に遭っていたことが発覚 - GIGAZINE
CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した - Qiita
Meltdown cpu脆弱性カーネルアップデートでほんとに性能ダウンした - Qiita
Meltdown - Wikipedia
Meltdown (security vulnerability) - Wikipedia
satさんのツイート: "Meltdownを使った攻撃のいろんな派生 https://t.co/7eZjlerhKN"
meltdown/libkdump.c at master · IAIK/meltdown
Microsoft Windows: Kernel Virtual Address (KVA) Shadow: mitigating Meltdown | Firmware Security
Windows 7のMeltdown対策パッチに脆弱性 ~セキュリティパッチがより深刻な問題を生む結果に、3月で修正済み - PC Watch
Hideyuki Tanakaさんのツイート: "インテル去年だけで16ビットレジスタを分割して使うときの不具合とか、中で変なOSが動いてる問題が発覚するとかいろいろあったのに、これはそれとは比べ問にならないぐらいまずそうだけど(´・_・`)"
KVA Shadow: Mitigating Meltdown on Windows - Microsoft Security Response Center
Rogue System Register Read
Instructions Affected by Rogue System Register Read

Foreshadow(L1 Terminal Fault(L1TF)) - CVE-2018-3615, CVE-2018-3620, CVE-2018-3624

その他

Intel CPUの投機実行にサイドチャネル攻撃による新たな脆弱性が発見 - PC Watch
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - CNET Japan
Intel製CPUのセキュリティ機能“SGX”に情報漏洩の脆弱性 ~“Foreshadow”が発表 - 窓の杜
Intelが発表、キャッシュタイミングを利用したサイドチャネル攻撃の脆弱性「L1TF」:仮想化利用時に課題あり - @IT
Microsoft、2018年8月のセキュリティ更新プログラムを公開 ~OSの最大深刻度は“緊急” - 窓の杜
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - ZDNet Japan
HW由来の脆弱性 (L1 Terminal Fault (L1TF) / Foreshadow: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) – 脆弱性情報ブログ(仮)
L1 端末の障害から保護するための Windows Server ガイダンス
インテルCPU脆弱性「Foreshadow」の影響をまとめる - orangeitems’s diary
“L1TF”脆弱性への対策を盛り込んだ「VMware Workstation」「VMware Fusion」最新版 - 窓の杜
IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中 - GIGAZINE
【CPU】 Intel CPUに新たな脆弱性『L1 Terminal Fault(L1TF)』。2018年8月度のWUで緩和策を実装 : ニッチなPCゲーマーの環境構築
herumiさんのツイート: "社内勉強会用のメモ Foreshadow L1FT https://t.co/43HbIRyzv3 TLBleed https://t.co/RZ8wHm7IDl LazyFP https://t.co/er6rVg2V7F"
misc/security/L1FT at master · herumi/misc
Microsoft、Spectre V3a/4とL1TF脆弱性対策のIntel CPU向けマイクロコード更新を公開 - 窓の杜
2018年8月24日号 LXDの.deb→snapパッケージ移行,続Spectre・“L1TF”(Foreshadow/Foreshadow-NG)への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2018年8月27日 Linux 4.19-rc1が登場,「L1TF」脆弱性にも対応:Linux Daily Topics|gihyo.jp … 技術評論社
MS、インテルのマイクロコード更新プログラム公開--「Spectre」「Foreshadow」対策 - CNET Japan
【セキュリティ ニュース】MS、「Foreshadow」対策でアドバイザリ - アップデートや追加対応策の実施を(1ページ目 / 全3ページ):Security NEXT
Intelが新たな投機的実行脆弱性"L1 Terminal Fault"を公表

@mhiramat

まさみさんは語りたいさんのツイート: "L1Dから読めちゃう問題というか仕様、昔からlock prefix付けないとL2が変わってもL1から読めるだけ読んじゃうって動作だったように思うんだけども。"
まさみさんは語りたいさんのツイート: "なんかbusy waitのバグを再現しようとして、フラグをatomicにするのを忘れてループ回したら、片方のCPUの演算結果が受け取れなくてL1Dは更新されないんだー、へーっていくのを実際にやった覚えがある。"
まさみさんは語りたいさんのツイート: "L1TF問題、armではどうなるんだっけか。"
まさみさんは語りたいさんのツイート: "L1TFって実際に書き込み出来るバグなの?"
Tsukasa #01 [要出典]さんのツイート: "No. Spectre 類似攻撃で、投機実行パスでメモリ保護機能の一部が無効になっていることを悪用して情報を "読む" ことがメイン。概要だけ抜き出したら Spectre や Meltdown と違う部分がなくなってしまいましたが、変種ということで……。… "
まさみさんは語りたいさんのツイート: "やはり読むだけですよね。いくら投機実行できるとは言え、投機的に書き込む場合コミットできるかどうか確認してからでないとメモリに書き込みは出来ないですよね。… "
Tsukasa #01 [要出典]さんのツイート: "はい。逆説的に言えば、その点さえ守ってれば投機的実行パスで何してもいいだろ的に色々やり過ぎたのが最悪の形で暴かれてしまってるのではないかと。… "
まさみさんは語りたいさんのツイート: "なんかこう、投機的実行とか先読みとかのせいで、Intel CPUを使うメリットだった強い一貫性のあるメモリモデルが一転して信じられなくなってる上、ISA上確認できないしコントロールも出来ないので最悪だなーっていう話になってきているな。"
まさみさんは語りたいさんのツイート: "そもそもメモリモデルがある程度弱い一貫性とかキャッシュを自前である程度制御しないといけない、という話だと、それに対応する命令ややり方があるんだけど、ソフトウェアの外側にある投機的実行や先読みが勝手にキャッシュしたりすると、制御する術がないか、あるけど牛刀になるという・・・。"
まさみさんは語りたいさんのツイート: "うーん、非常に嫌な話が出ていて、ページテーブルを共有する複数のコアで、1つのコアが一部のPTEを変えた場合、他のコアで勝手にそれがTLBにロードされているかもしれないっていう話。そしてそれを明示的にshootdownできない(他のコアなので)ので危険かもと。"
まさみさんは語りたいさんのツイート: "もはやTLB shootdownとは()という話だな。これどうしようもないなら、全部のコアでページテーブルを共有してはいけないっていう話にならないか?"
beepcap@HTTPSの強制には反対さんのツイート: "最近「まさかそんな実装になってるんけないやろwwww」みたいなのが、サイドチャネル攻撃のお陰で次々あらわになって笑えるし、MIPSの正しさが示される"
まさみさんは語りたいさんのツイート: "現状の予想 ・とりあえずカーネルのページテーブルは共有 ・微妙な操作をする場合に専用スレッドを立て、専用ページテーブルを利用する(カーネルスレッドだけど少し違うメモリ空間になる)"
まさみさんは語りたいさんのツイート: "これが他のspectreと違って厄介なのは、TLBエントリが勝手に追加されてしまった場合、その後のメモリアクセスは投機実行だけでなく、実際にコミットされうるところだな。つまりRWマップしていたら、書き込みも可能になると。"
まさみさんは語りたいさんのツイート: "このTLBのspeculative read-ahead(というのが適切に思う)の問題は、本質的には他のプロセッサでも起きる可能性がありそうなんだけど、どうなんだろう?"
まさみさんは語りたいさんのツイート: "処理の途中でswitch_mmしちゃう(専用スレッドは作らない)方向になった。まあ、その方が簡単だけども。"

@utshina2

品川 高廣さんのツイート: "10秒で分かるForeshadow: まずenclave内の秘密のデータをL1に乗せさせてアクセスするコードのout-of-order実行を可能にしつつ、pageを読み書き禁止にしてpage faultを発生させてダミー値への置き換えを防ぎ、page walk中にMeltdown的なside-channel攻撃でL1上の秘密のデータを読み出すって感じかな。"
品川 高廣さんのツイート: "page walk には時間がかかるのだけど、その間に同じページのデータが既にL1キャッシュに乗っていたら、次の命令が out-of-order で投機的に読めてしまうのが問題らしい。インテルが L1 Terminal Fault と呼ぶのはそういうことかな。"
品川 高廣さんのツイート: "page table entry の present bit が 0 (存在しない)の場合、本来残りのビットはOSが自由に使っていい領域なのだけれど、物理アドレス部分が(たまたま)キャッシュされている内容と一致していれば、次の命令で投機的に読めてしまうらしい。えーっ"
品川 高廣さんのツイート: "page table entry の物理アドレス部分がたまたま有効な値であれば、ユーザ空間から本来アクセス権がないOSや他プロセスのデータを読めてしまう可能性がある。キャッシュを共有しているVM間であれば、ゲストOSで適当に page table entry を設定すれば他VMのデータを読めてしまう可能性がある。"

@kazuho

Kazuho Okuさんのツイート: "PTEのPresentビットが立ってなくても、格納されている物理アドレスをspeculativeに利用しちゃうから副作用があるのかー / “deep-dive-intel-analysis-l1-terminal-fault” https://t.co/qKY8UK7vcv"
Kazuho Okuさんのツイート: "L1TF はゲストOSが信頼できないとなると hyper-threading をオフにする必要があって、それってつまり vps とかそういう系にはとても大きなパフォーマンスインパクトがあるってことになるからなぁ https://t.co/sgvOGMIqnv"
Intel Side Channel Vulnerability L1TF
https://software.intel.com/security-software-guidance/insights/deep-dive-intel-analysis-l1-terminal-fault

@jovi0608

Shigeki Ohtsuさんのツイート: "今度は Intel SGX を狙った L1 Terminal Fault か。 / “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-…” https://t.co/aPzuaSE1j1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution

@KuniSuzaki

suzakiさんのツイート: "新たな投機的実行の脆弱性 "Foreshadow"(Intelでの命名はL1TF: L1 Terminal Fault)はIntel SGX、SMM、VMMまで影響を及ぼす。これはUSENIX Sec18で発表される。 https://t.co/2isrd8lko8 USENIX SecのHP https://t.co/uylwnCo89D"
Intel CPUの「SGX」機能に新たな脆弱性、仮想マシンなどにも影響 - ITmedia エンタープライズ
suzakiさんのツイート: ""Foreshadow"論文はまだUSENIX Sec18のHPからは公開されていないが、著者らのHPからダインロードできる。 https://t.co/0wpfRoXaXx"
foreshadow.pdf
suzakiさんのツイート: "投機的実行の脆弱性 "Foreshadow"脆弱性は、 SGX関連 CVE-2018-3615(CVSS 10.0) OS/SMM関連 CVE-2018-3620(CVSS 7.1) VMM関連 CVE-2018-3646(CVSS 7.1) だそうだ。 共通脆弱性評価システム(CVSS)最高値は10.0なので影響が心配。 https://t.co/2isrd8lko8"

@masami256

このコード、オシャカルトっ!さんのツイート: "PTEからPFNを調べるところでprotnone_mask()って関数が追加されてPビットのチェックが入ったり。https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "記事にも書いてあるけど、実際のpatchを見るとkvmの方が対応がめんどくさいな"
このコード、オシャカルトっ!さんのツイート: "https://t.co/6MfwZRO9gaのMeltdown strikes back: the L1 terminal fault vulnerabilityってまた新しい手法か?まだ読んでない。"
このコード、オシャカルトっ!さんのツイート: "Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution https://t.co/qBXFHNqfL1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
このコード、オシャカルトっ!さんのツイート: "PTEのPビットが0ならページが存在しないんだから、ページフォルトが起きた時にPTEのPFNは読む必要ないんだけど、Intel CPUは先読みしちゃうのでL1キャッシュにデータがあると読み出せてしまうって感じかな。"
このコード、オシャカルトっ!さんのツイート: "データがL1に存在する必要があるとか条件は面倒そうだ。"
このコード、オシャカルトっ!さんのツイート: "コメントが細く書かれてるな https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "(´-`).oO(カーネルも脆弱性対応で変数にアクセスするにもちょっとひと手間加える必要があったりするし、セキュリティはそこまで気にしないシンプルな実装の学習用のカーネルというものの需要はあるだろうな。"
satさんのツイート: "これよいですよ https://t.co/yd2t2H5LpE… "
このコード、オシャカルトっ!さんのツイート: "Meltdown strikes back: the L1 terminal fault vulnerability のpteの説明でpfnに46bit使ってるところはSDM Vol3のTable 4-19. Format of a 4-Level Page-Table Entry that Maps a 4-KByte Pageだと物理アドレスとなってるので違いがあるのか。 https://t.co/qO6Fm4kZpy"
Meltdown strikes back: the L1 terminal fault vulnerability [LWN.net]

Foreshadow (security vulnerability) - Wikipedia
Analysis and mitigation of L1 Terminal Fault (L1TF) - Microsoft Security Response Center
L1 Terminal Fault
INTEL-SA-00161
Processors Affected: L1 Terminal Fault
Deep Dive: Intel Analysis of L1 Terminal Fault | 01.org API

MDS

Microarchitectural Data Sampling - Wikipedia
Fadisさんのツイート: "MDS: 一部のIntelプロセッサ内のStore Buffer(メモリ書き込み予定表)、Fill Buffer(L1 cacheへのロード待ち表)、Load Port(メモリからの読み出し待ち表)が完了後にクリアされておらず、これらを踏む命令で見えない位置にあるはずの値の存在を確認できるサイドチャネル脆弱性 https://t.co/10QjZh7YJC"
【CPU】 Intel CPUに新たな脆弱性『Microarchitectural Data Sampling (MDS)』。AMD CPUは影響なし : ニッチなPCゲーマーの環境構築
Intel CPUの投機実行機能に新たな脆弱性「MDS」 ~サーバーは緩和策によるストレージ性能への影響あり - PC Watch
2011年以降のほぼすべてのIntel製プロセッサに影響する脆弱性「MDS」の存在が明らかに - GIGAZINE
Intel製CPUに新たな脆弱性「ZombieLoad v2」が発見される、Cascade Lakeにも影響あり - GIGAZINE
2019年5月17日号 Meltdown/Spectre/Foreshadowの後の世界:“MDS”攻撃への対応,WSL2のFAQ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
ZombieLoad: Cross-Privilege-Boundary Data Sampling
New ZombieLoad v2 Attack Affects Intel's Latest Cascade Lake CPUs
Microarchitectural Data Sampling
Processors Affected: Microarchitectural Data Sampling
Intel Side Channel Vulnerabilities: MDS and TAA
Deep Dive: Intel Analysis of Microarchitectural Data Sampling
Deep Dive: Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort

Rowhammer

shinichiro hamajiさんのツイート: "#misreading https://t.co/m82S1poS4x Rowhammerは仕事のタイミング的にすごく困った。clflush禁止→無くても、ARMとかでもできた→JSからでもできた(https://t.co/nuwXNhlHqZ)と案の定悪化していった。基本ハードウェア上の処置(頻繁にリフレッシュとか)しかないという理解で、そのへんは面白みが無い"
Episode 18 – Exploiting the DRAM Rowhammer Bug to Gain Kernel Privileges – Misreading Chat
1507.06955.pdf
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
kim-isca14.pdf

Page Cache Attacks

ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表 - 窓の杜
[1901.01161] Page Cache Attacks

Google

米Google、WebKitベースの新レンダリングエンジン「Blink」を発表、Chromeでの導入を視野に | OSDN Magazine
Google Developers Japan: プロセス外 iframe で Chrome 拡張機能のセキュリティを向上
Rockridgeさんのツイート: "Chrome 56以降、エクスプロイト攻撃への対策として、拡張機能の設定ページなどで用いられるiframeを拡張機能のプロセスから分離し、セキュリティを強化した。 / “Chromium Blog: Improving exte…” https://t.co/45P64PWoZj"
Chromium Sandbox を用いた保護モード - NyaRuRuが地球にいたころ

Mozilla

WebExtensions

Rockridgeさんのツイート: "WebExtensions拡張機能の別プロセス化は、contentプロセスの複数化とは別の話である。contentプロセスが4つ埋まっていても、拡張機能向けのプロセスは別途設けられる。 / “Out-of-process Web…” https://t.co/q6gGS6PDPX"
Rockridgeさんのツイート: "WebExtensionsの別プロセス化とサンドボックス化について、実装時期は未定だが開発は進行しているとのこと。参照:https://t.co/8DrgHzDhHy / “WebExtensions in Firefox 51…” https://t.co/uJICsXuEIU"
Rockridgeさんのツイート: "WebExtensionsからSpiderNodeを別プロセスで起動させる実験が行われている。このプロセスはサンドボックス化されることが想定されている。参照:https://t.co/u7RAcFgA7Z / “Node and…” https://t.co/5MhRCjTwro"
Rockridgeさんのツイート: "ローカルファイルを読み書きするシステムをWebExtensions向けにどのように実装するか検討中。サンドボックス化されたプロセスと整合性のある実装が求められる。参照:https://t.co/yYPsAl35af / “Web…” https://t.co/t0U4WcPAI4"

5x

52

Rockridgeさんのツイート: "Fx52:Linux版におけるプロセスのサンドボックス化が強化され、原則としてcontentプロセスにおいてファイルシステムへの書き込みは禁止されるようになった。参照:https://t.co/lkLuRqHfsI / “Gar…” https://t.co/fqlvHTovZc"

55

Rockridgeさんのツイート: "Fx55:Windows/macOS版でcontentプロセスのサンドボックス化が常時有効化。最低限のサンドボックスが偶然に無効化されることを防ぐ。 / “1358223 - Hard code the lowest allow…” https://t.co/AGCUlQaEJA"
Rockridgeさんのツイート: "Fx55:GPUプロセスにも最低限のサンドボックスが適用されるようになった。 / “1347710 - Enable sandbox protections for the Windows GPU process” https://t.co/JP5oODpbBj"
Rockridgeさんのツイート: "Fx55:サンドボックス機能を実装するために使うChromiumのコードが、Chromium 56ベースのものにアップデートされた。前回はFx51でChromium 49ベースのコードが導入されていた。 / “1337331 -…” https://t.co/nzmPvITBKo"

56

Rockridgeさんのツイート: "Fx56:Windows版Nightlyで、contentプロセスのサンドボックス化が従来よりも強化された。 / “1366694 - Enable Windows level 3 content process sandbox…” https://t.co/lU3hKqxwNh"
Rockridgeさんのツイート: "Fx56:Mac版でcontentプロセスのサンドボックス化が強化され、そのままデフォルト有効で投入される。参照:https://t.co/OKJU6oOYr9 / “1377522 - Let the Level 3 cont…” https://t.co/WJQReMCVn2"

57

Rockridgeさんのツイート: "デスクトップ版Firefox 57はプラットフォームを問わずファイルシステムのアクセスがプロセスサンドボックス内に限定されるようになった。Windows向けFx58ではサンドボックスがさらに強化されるという。 / “Firefo…” https://t.co/kUV49pletZ"

59

Rockridgeさんのツイート: "Fx59:Chromiumから取り込んでいる、プロセスのサンドボックス化に関するコードがアップデートされた。Chrome 62と同等か。参照:https://t.co/kz6ENgKo7p / “1366701 - Update…” https://t.co/FjTyMfiFby"
Rockridgeさんのツイート: "Firefoxはプロセスのサンドボックス機能を実装するにあたりChromiumのコードを利用している。ところがChromiumがWindows XP/Vistaのサポートを打ち切ったため、Chromium 50以降の新しいものを使… https://t.co/a1lsFDKzck"
Rockridgeさんのツイート: "Windows版Firefoxのビルドにおいて、Windows 10 SDKのバージョン10.0.10586以降が必須となる。プロセスのサンドボックス化に関するChromiumのコードを取り込むのに必要な措置だという。 / “P…” https://t.co/Zq1gPwfZrW"
PSA: Making Windows 10 SDK version 10.0.10586 the minimum for building Firefox - Google グループ

Rockridgeさんのツイート: "Fx58:contentプロセスにおけるサンドボックスのセキュリティ水準を強化した。 / “1415250 - Let level 4 for the Windows content sandbox ride again.” https://t.co/PUIKKXCNJr"

6x

60

Rockridgeさんのツイート: "Fx60:macOS版で、contentプロセスのサンドボックスが強化され、ディスクの書き込みに例外なく制約がかかるようになった。今後はWindows版やLinuxにもこの措置を適用していく。参照:… https://t.co/mwZ8F8D5Kr"

Rockridgeさんのツイート: "サンドボックス化の対象となるFirefoxの各種プロセスについて。 / “Security/Sandbox/Process model - MozillaWiki” https://t.co/QxYBng4ADa"
Rockridgeさんのツイート: "近日中にWindows/macOS版Nightlyでcontentプロセスのサンドボックスが強化される予定。 / “Enabling filesystem read-restrictions for content proces…” https://t.co/hTx048KnbY"
Rockridgeさんのツイート: "Firefoxに実装され、あるいは将来実装予定のサンドボックス機能について、概要を説明した文書。Compositorプロセスの導入がFirefox 53になりそうだという話も。 / “Security/Sandbox/Archi…” https://t.co/GGOo0nXJhE"
Rockridgeさんのツイート: "MozillaはFirefoxのサンドボックス化されたプロセスが破られた場合に、被害を最小化する仕組みについても検討している。参照:https://t.co/nKOqk4k2rm / “Hardening the Firefox…” https://t.co/oQAY9QD8x4"
Rockridgeさんのツイート: "MozillaはWindows版Firefoxのサンドボックスを強化する"win32k lockdown"について検討中だが、2019年3月以降の導入になりそうだ。Chromeは導入済み。参照:… https://t.co/otgOjeezZK"
Security/Sandbox/2018-04-12 - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、将来的にサイト単位のプロセス分離を導入するため、1つのプロセスが消費するメモリを減らす取り組みを続けている。2018年11月現在、7~8か月前と比べて3分の2以下になっている模様。 / “Project Fis…” https://t.co/3mHR3xsA81"

Linux

eBPF

睡分不足

SpectreとeBPF - 睡分不足
LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足

blog

ブログ: Linux Enhanced BPF (eBPF)トレース・ツール
Berkeley Packet Filterの基礎と応用 - Part 1
LinuxのBPFとbccでデバッグする - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
eBPF命令セット - Packets are too Fast
ubpfで遊んでみる - livaの雑記帳
Linux eBPF Tracing Tools
eBPF: One Small Step
How to send/receive raw packets on Linux
Persistent eBPF map object with bcc - yunazuno.log
eBPF tail call 使い方メモ - yunazuno.log
gRPCが遅すぎる?eBPFでカーネル内で動かす!. gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、ま… | by FUJITA Tomonori | nttlabs | Medium

スライド

BPFの現在 - SSSSLIDE
eBPF関連用語メモ - Speaker Deck
eBPFをFreeBSDにポーティングしようとしている話 - Speaker Deck
eBPF verifier - Speaker Deck

GitHub

susanow/bpf: BPF Implementation using Xbyak JIT Assembler in Userland
bpf-docs/eBPF.md at master · iovisor/bpf-docs
IO Visor Project
eBPF – IO Visor Project

Twitter

Kentaro Ebisawaさんのツイート: "Linux 4.10 に IPv6 Segment Routing 入ったんだ。VRFもいろいろ拡張されてる。あとは BPF for lightweight tunnel encap か。 https://t.co/N4EmE5IcmI"
Yojiro UOさんのツイート: "「イマドキのBPF復習しとかなきゃ」っていろいろみてたら、見つけた。更新されてるし網羅性も高い? Dive into BPF: a list of reading material https://t.co/C0PDApgWGZ"
Dive into BPF: a list of reading material
るくすさんのツイート: "まあ普通の使い方じゃなくて、各ソケット一つに付随してるBPF JITコードを延々と増やしてJIT sprayするためという、明らかに攻撃者始点の使い方。"
まさみさんは語りたいさんのツイート: "あー、これはBPFとフレームワークを共有しているからか。"
まさみさんは語りたいさんのツイート: "netmapはNICのパケットバッファをユーザ空間にmmapする。VALEはカーネル空間にmmapして、スイッチングロジックをカーネルモジュールで書ける。ただしこのモジュールを書くのは非常に難しい。"
まさみさんは語りたいさんのツイート: "VALE-BPFということでBPFでVALEモジュールを書けるとのこと。"
まさみさんは語りたいさんのツイート: "VALE-BPFはXDPよりも2%ほどパフォーマンスが良くなる"
まさみさんは語りたいさんのツイート: "個人的にはeBPFを勘違いしていて、バイトコードをある程度自由にカーネル内から構成できると思っていたんだけど、実際にはユーザ空間から渡されたコードをVerifyしたりする結構面倒な手続きを飛ばせないと言われたのが最近のeBPFの記憶のハイライト。"
品川 高廣さんのツイート: "Spectre は Intel だけでなく AMD や ARM の CPU でも実行できるけど、読み取りたいメモリへのアクセス権限をもったある種のコードが必要。Google は eBPF を使ってるし、この論文では ROP 的な手法を使っている。攻撃は簡単じゃないけど防御も一筋縄… https://t.co/nwCuRhOvnr"
品川 高廣さんのツイート: "とりあえず、eBPF は無効にした方がいいんじゃないか。"
るくすさんのツイート: "bpf JITと言うと、grsecurityが昔bpf JITでJIT sprayして権限昇格やるkernel exploitやってた気がする(SMEP bypass可"
shinichiro hamajiさんのツイート: "#misreading ep.6 は完全に俺得回でした。依存関係解析はAndroidでやったことがあって、straceをseccomp-bpf使って改造高速化して入出力全部調べるという一般的な手法だった https://t.co/Kkg9qXGo5R 実際これでかなりたくさんのぶっこわれてる依存見つけて、修正の例としては https://t.co/rFVCOdqVFZ"

https://www.kernel.org/doc/Documentation/networking/filter.txt
Berkeley Packet Filter - Wikipedia
BPF for lightweight tunnel infrastructureについて調べてみた - Qiita
2018年8月14日 Linux 4.18がリリース ―AMDGPUサポートの拡充,BPFILERフレームワークなど:Linux Daily Topics|gihyo.jp … 技術評論社
「LLVM 3.7」リリース、eBPFサポートがマージされターゲットとして選択可能に | OSDN Magazine

seccomp

mode 2 seccompの話 - yuzuharaの日記
Linuxカーネル3.5リリース、ファイルシステムやネットワーク、ドライバ関連で多くの強化が行われる | OSDN Magazine
Berkeley Packet Filterの基礎と応用 - Part 3
seccompめも( ..)φカキカキ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux 3.19はkernelからX.509証明書をロード(IMA)するらしい - つれづれ日記2015年05月
本の虫: ChromiumがLinuxカーネル3.17より前のサポートを打ち切り
Rockridgeさんのツイート: "Linux版Firefoxにおけるプロセスのサンドボックス化にはSeccomp-bpfを利用しており、Linux 3.5(2012年7月21日リリース)以降がその動作環境となる。 / “Security/Sandbox - Mo…” https://t.co/NJBc9k8kRI"
OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

SELinux

SELinuxの現在の動向 — | サイオスOSS | サイオステクノロジー
SELinuxのCIL (Part1) — | サイオスOSS | サイオステクノロジー

Firejail

Firejail - ArchWiki

Linuxカーネルモジュールでret2usrによる権限昇格をやってみる - ももいろテクノロジー
LinuxカーネルモジュールでStackjackingによるSMEP+SMAP+KADR回避をやってみる - ももいろテクノロジー
wiki/linux-boot-process.md at master · hfm/wiki
Linuxカーネルの基本機能 - 第5回 カーネル・メモリー管理:ITpro
kmem_cacheさんはTwitterを使っています: "linuxのpage allocatorでcompactinoの実行を管理するのはcompact_zone()か。実際にpageを移動させたりはmigrate_pages()とかになる。 http://t.co/ilEruADd0M"
平田豊ひらたゆたか🐬さんのツイート: "Linuxのカーネル空間では、ヌルポアクセスすると、ページフォルト処理の延長でOopsに遷移します。下記メッセージ(ARMの場合)が表示されます。 "Unable to handle kernel %s at virtual address %08lx\n" https://t.co/Qxae8BVGut"
るくすさんのツイート: "SMAF(Secure Memory Allocation Framework)がLinux4.10から入りそう。 Webカメラって案外IOMMUがないらしく外部のIPからDMA attackができるらしいがそれの防止もできるとか https://t.co/moS8t8y7Fy"
NsJail
google/nsjail: A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters (with help of the kafel bpf language)
革命の日々! transparent hugepage considered harmful
www.ffri.jp/assets/files/monthly_research/MR201404_Building secure Linux application with privilege separation_JPN.pdf
2016年5月13日 ヤバめのアプリはまず"火の檻"で ―サンドボックス「Firejail」がX11に対応へ:Linux Daily Topics|gihyo.jp … 技術評論社
2017年9月25日 AppArmorをDebianでもデフォルトに!? ―Tails開発者が提言:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxカーネル4.16リリース | OSDN Magazine
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
第40回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[4]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
KOSAKI Motohiroさんのツイート: "Turing Complete FM #31 聞いてる。Linuxだとsuper pageからnormal pageからのdemoteは行っていない。なぜならfreebsdに入れたときよりだいぶあとに入ったので、デスクトップPCの平均メモリ量がかわってしまい、ふつう全部2Mページでも困らないぐらいだし、いらない、という意思決定をした"
KOSAKI Motohiroさんのツイート: "transparent hugepageで面白かったのは、いらなくなったときに2M単位でスワップアウトするか、その時点で4kに分解して、ちょびちょびスワップアウトするかで議論して、平均性能よりも性能劣化を最小化するほうがリアルワールドで受け入れてもらうために重要だろうという話をして、4kに分解することに"
suzakiさんのツイート: "1998年か。「スタックを非実行領域にするLinux向けのパッチ(修正差分)は,1998年には既にOpenwallプロジェクトなどが提供していた。しかし,Torvalds氏はこれを無意味だとしてパッチの取り込みを拒否している」https://t.co/1GyILfaHq8"
Windows XP SP2の新セキュリティ機能,Linuxでも標準装備を(2ページ目) | 日経 xTECH(クロステック)
Fadisさんのツイート: "Linux 5.0までのページ管理はページの参照数を32bit符号付整数のatomic値で保持していて0になるとページを捨てるようになっており、多くのコンパイラは符号付整数が最大値を超えた時最小値からカウントするコードを吐く為、約42億箇所から参照されるページの参照が減るとページが消えてしまうらしい"
Fadisさんのツイート: "ただし、リソースを大食いせずに、ulimitの制限も回避しながらユーザ空間で1つのページに対して42億もの参照を作るのは容易ではなく、この不具合が悪用される可能性は極めて低いとされている"
Fadisさんのツイート: "32bit整数が一周するほど参照する方法とか、Linux 5.1でどうしたのかとかの詳細はLWN(リンク先有料記事) https://t.co/q6MImoJmMs"
Subscription required [LWN.net]
suzakiさんのツイート: "セキュアメモリ二つ目。同じアドレスを複数回t叩くRowHammerをPTE に適用し、権限昇格を行う攻撃がある。 これに対して現在のDRAMでは01のロジックが逆のCell (True-Cells, Anti-Cells)を組み合わせいる。 True-Cellのみが使われるようにするCell Type Aware (CTA) memory Allocationの提案。"
suzakiさんのツイート: "LinuxではPage Tableの割り当てにZONE_PTPを使つっているので、これを活用。"
suzakiさんのツイート: "Security I 二つ目。 すべてのメモリアクセスにCapabilityが付く命令セットCHERI: Capability Hardware Enhanced RISC InstructionsでPointer Provenanceを保証する仕組みを導入した話(Best paper, SRI)。 (論文ではProvenanceの意味をcorrect operationと定義している)"
suzakiさんのツイート: "ライブラリはソースコード(sbrk, mmap, and shmat? )の変更が必要だが、通常のアプリは大抵不要。 元々入っていたFAT PointerをProvenance更に付加した?"
複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足

FreeBSD

はっきり見えてきたFreeBSD 10の行方(2/3) - @IT
CAPSICUM(4) - 特殊ファイル - YOS OPENSONAR
【レビュー】新しいセキュリティモデル「Capsicum (キャプシカム)」を知る | マイナビニュース
FreeBSDのCapsicumとは(その1) - Qiita
2011年11月8日 新セキュリティ「Capsicum」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
第9回 カーネル内部のセキュリティを強化,ネストカーネルでメモリ区画化:BSD界隈四方山話|gihyo.jp … 技術評論社
第10回 セキュリティを大幅に強化するCheriBSD:BSD界隈四方山話|gihyo.jp … 技術評論社

OpenBSD

OpenSSLのフォーク「LibreSSL」を含んだ「OpenBSD 5.6」がリリース | OSDN Magazine
20周年を迎えたOpenBSD、「OpenBSD 5.8」を公開 | OSDN Magazine
「OpenBSD 6.0」が公開 | OSDN Magazine
「OpenBSD 6.2」リリース、カーネル保護機構などを強化 | OSDN Magazine
第25回 OpenBSD 5.8登場 - sudo(8)を廃止してdoas(1)を導入:BSD界隈四方山話|gihyo.jp … 技術評論社
第29回 OpenBSD 5.9の新しいセキュリティ機能pledge(2):BSD界隈四方山話|gihyo.jp … 技術評論社
第35回 OpenBSD pledge(2)システムコール,5.9で正式登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第108回 OpenBSD,KARLセキュリティ機能を開発:BSD界隈四方山話|gihyo.jp … 技術評論社
第111回 BSDカーネル脆弱性調査:BSD界隈四方山話|gihyo.jp … 技術評論社
第112回 OpenBSDに新しいセキュリティ機能「RETGUARD」:BSD界隈四方山話|gihyo.jp … 技術評論社
第120回 OpenBSD 6.2登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第122回 OpenBSD新セキュリティ機能KARL:BSD界隈四方山話|gihyo.jp … 技術評論社
第128回 OpenBSD pledge(2)システムコール進捗報告:BSD界隈四方山話|gihyo.jp … 技術評論社

NetBSD

このコード、オシャカルトっ!さんのツイート: "設計の内容が説明されてるので良い感じ( ̄ー ̄)bグッ! GSoC 2018 Reports: Kernel Address Sanitizer, Part 3 NetBSD Blog https://t.co/cRb87HEGnx"
NetBSD Blog
このコード、オシャカルトっ!さんのツイート: "NetBSDのKASANの説明記事はLinuxはこんな感じでNetBSDではこうしたよって形の説明の仕方なのでちょっとお得 😊"

ASLR

FGKASLR

FadisさんはTwitterを使っています 「FGKASLRがバニラカーネル入りに向けた準備を進めている話。FGKASLRはFiner Grained Kernel Address Space Layout Randomizationの略で、カーネルの関数が置かれるアドレスを「関数単位で」ランダムにする。従来からLinuxにあるKASLRはセクション単位でランダムな配置をする https://t.co/bqMUGCSznX」 / Twitter
Linux 5.16 Has Early Preparations For Supporting FGKASLR - Phoronix
FadisさんはTwitterを使っています 「Linuxは.textの配置をランダムにする事で特定のアドレスに関数がある事を期待する攻撃に対する耐性を得るASLRを使えるが、ライブラリを使うユーザ空間プロセスと異なりカーネルの殆どの関数は1つの.textセクションに収まっている為、一度オフセットがバレると色んな関数の位置がバレる問題があった」 / Twitter
FadisさんはTwitterを使っています 「Finer Grained Kernel Address Space Layout Randomizationでは全ての関数を個別のセクションに分けたelfを作ってロード時にcall先のアドレスを決定することで1つの関数のオフセットがバレても他の関数のアドレスがわからないようにしよう、という物」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白い。 同じモジュール内の関数並べ替えって -fpic でも無理では?と思ったけど、 gcc の -ffunction-sections 必須にして関数毎に .text section を生成するらしい。 https://t.co/WHNARMY7k9」 / Twitter
LKML: Kristen Carlson Accardi: [PATCH v4 00/10] Function Granular KASLR

Yamamoto, Hirotakaさんのツイート: "ASLR が性能にこんなにインパクト与えることあるのか。 https://t.co/qpep0x0CaX"
Øystein on MySQL Optimizer: Improving the Stability of MySQL Single-Threaded Benchmarks
ASLR回避技術とChromeのsandboxの突破exploit | Scene Research Station
Address Space Layout Randomization in Windows Vista – Michael Howard's Web Log
Address Space Layout Randomization - NyaRuRuが地球にいたころ
Tsukasa #01 [要出典]さんのツイート: "ところで、セキュリティキャンプ 2018 の本番中に (参加者のフィードバックに応じて) ファイルやデータのエントロピー計算をやるのを (講師として) 突貫で勉強して突貫で実装したわけですが、あれって凄くシンプル (かつ条件によっては騙しやすい) ものだったんですね。"
Tsukasa #01 [要出典]さんのツイート: "早い話が 0x00 - 0xff の頻度表を作ってそこからエントロピーを計算するもの (実装の違いとしては "どこから" データを取るか、くらいか) で、00 01 02 03 .. FE FF な超規則的なバイナリデータでもエントロピー 8 (最大) になるよね、という話をしていました。"
OSセキュリティチュートリアル
ASLR – 研究室の裏庭 – Medium
Windows 10: 強化された脆弱性緩和技術で攻撃のコストを上げる – 日本のセキュリティチーム
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
「Windows 8」以降のセキュリティ機能に脆弱性 - CNET Japan

ページング方式 - Wikipedia
メモリ保護 - Wikipedia
chroot - Wikipedia

ページテーブルのランダム化

suzakiさんのツイート: "システムセキュリティ1。4つ目。Page Tableはpermissionもあり、変更されるとデータがコードになる。これを防ぐためにPage TableをランダムにするPT-Randの提案。ランダマイゼーション情報はLeakage resilientなDebugレジスタに隠す。"
まさみさんは語りたいさんのツイート: "Page Tableをランダムにするにはハードウェアの補助が必要な気がしますが、ソフトウェアだけで処理ですか?(Page tableに割り付けるページをランダムに選ぶ?)… "
suzakiさんのツイート: "発表を聞いていた範囲ではpage walk中にはソフト割り込みを禁止するなど説明しており、特別なハードウェア機能を使わないようでした。… "

マルチユーザ談義

Dan KogaiさんはTwitterを使っています 「jailの場合JIDがUIDになるだけでは?カプセル化するということはカプセルの識別子が必要で、「ユーザー」と根は同じ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「割と反対の意見かなぁ。マルチユーザーは、現代の、コンピュータを共有しない環境では必須じゃない。 スマホは個人所有が前提だし、PCもディスク暗号化とか個人所有前提の機能設計がされてる。 スマホ的なshare-noneが前提でアクセス権限追加する仕組みはjailで実現できる」 / Twitter
Dan KogaiさんはTwitterを使っています 「ニコ生でも話したけど Apple が NeXT ではなく Be を選んでいたら詰んだ理由。BeOSにはプリエンプティブマルチタスキングはあってもマルチユーザーがなかった。マルチユーザーなしに現代に必要なセキュリティを確保するのは困難すぎる」 / Twitter
岡田哲哉さんはTwitterを使っています 「結局「マルチユーザ」も「マルチタスク」も「大規模なコンピュータに必要な機能」ではなく「どんな小さなデバイスにも必須な機能」だったってことだよね。>RT」 / Twitter
Kazuho OkuさんはTwitterを使っています 「僕の記憶が確かなら、スマホの場合、アプリ間の権限分離は現在UIDを利用して実装されています。ただ、UIDほど複雑な、PID単位とは異なる権限管理の仕組みが必要なのかと言うと、実はもっと簡単にできるんじゃないか。プロセスごとにコンテナ作る方が楽でしょ。という話です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういえば、Chromeってスマホでも権限分離のためにマルチプロセスなんだろうか...」 / Twitter
Kinuko Yasuda / 安田絹子さんはTwitterを使っています 「@kazuho はい。Android では少なくともマルチプロセスですよー(WebViewはちがうけど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@kinu ありがとうございます!」 / Twitter

サンドボックス

サンドボックスとは?標的型攻撃への定番対策の仕組みと課題
巧妙なマルウェアに対抗する最先端のサンドボックス技術 | トレンドマイクロ セキュリティブログ
合法マルウェアで実感「リアルとサンドボックスの違い」 (1/3):マルウェアの視点で見るサンドボックス - @IT
ASCII.jp:検知を回避するマルウェアが使用するメカニズムを徹底解説
今更聞けない!サンドボックスの基本を徹底解説! | CodeCampus
ASCII.jp:サンドボックス型製品すらも回避、最新の標的型攻撃事情
ウォッチガード、次世代サンドボックスによるマルウェア検知・自動レスポンスを機能拡張 – UTM/NGFWでマルウェア・標的型攻撃対策|ウォッチガード・テクノロジー
サンドボックス機能|機能紹介(FortiSandbox)|日立ソリューションズがお届けするFortinet Products
「サンドボックスだけでは標的型攻撃を防げない」――フォーティネットが提唱する3つのステップとは? | ビジネスネットワーク.jp
Project Zero: You Won't Believe what this One Line Change Did to the Chrome Sandbox
Project Zero: FF Sandbox Escape (CVE-2020-12388)
Site Isolation 及び Web のセキュリティモデルの更新 | blog.jxck.io
オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す - ASnoKaze blog
品川 高廣さんはTwitterを使っています 「iOS の sandbox はパス名ベース。TOCTTOU 攻撃には弱そうだな。#arm_study」 / Twitter
iOSとmacOSでiMessageを強固にするためのサンドボックスとその他の手法

セキュリティ

Intel

サービス拒否攻撃

ページサイズ変更によるマシンチェックエラー: CVE-2018-12207 - Red Hat Customer Portal
Deep Dive: Machine Check Error Avoidance on Page Size Change
Processors Affected: Machine Check Error Avoidance on Page Size Change

SPOILER

Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要 - GIGAZINE
まさみさんは語りたいさんのツイート: "CPUのOut of Order実行をしている時にストア命令とロード命令の実行順序が投機的に入れ替わるのを利用。ロードはストアを追い越すが、実行後に直前のストアが終わっていないことが分かったらやり直す。これを利用するとロードにかかる時間が変わることを利用してどこをアクセスしてるか推測できる。"
まさみさんは語りたいさんのツイート: "問題はこのロードとストアの衝突の検知のため物理アドレスを比較するときに、アドレスのごく一部のビットだけ利用しているということ(またリソースケチったのかよ・・)。このため、全く違うアドレスをストアでスキャンするとロード命令に影響が出るらしい。"
まさみさんは語りたいさんのツイート: "これだけだとASLR破りに使えそうだなという印象。ロード命令はどこにでもあるから・・・。"
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler

L1D Eviction Sampling

Intel製CPUの新たな脆弱性「L1Dエビクションサンプリング」を利用してデータを引き出す攻撃「CacheOut」が報告される - GIGAZINE
L1D Eviction Sampling
Processors Affected: L1D Eviction Sampling

Vector Register Sampling

Vector Register Sampling
Processors Affected: Vector Register Sampling

HT

TLBleed

Intel CPUの脆弱性「TLBleed」は修正困難 - OpenBSD開発者 | マイナビニュース
TLBleed - Wikipedia
iTWire - OpenBSD chief de Raadt says no easy fix for new Intel CPU bug
suzakiさんのツイート: "マイナビ『SperctreやMeltdownを根本から防ぐSafeSpec』https://t.co/MFqNVS83Tw 投機実行で見えてしまう情報をシャドウキャッシュやシャドウTLBで隠す提案。 オリジナル論文はhttps://t.co/Pq7yQ1jjc8 ツイートしたTLBleedにも関連しそうだが、BlackHat、USENIX Secで発表なので待たないといけない。"
SperctreやMeltdownを根本から防ぐSafeSpec(2) Spectre/Meltdownを防ぎ、安全な投機実行を可能にするSafeSpecの考え方 | マイナビニュース
[1806.05179] SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
suzakiさんのツイート: "ちなみにオリジナルのarXiv論文のタイトルは SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation https://t.co/Pq7yQ1jjc8 PDFを確認したところ、さすがにTLBleedは論文で言及されていない。"
まさみさんは語りたいさんのツイート: "インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 https://t.co/2xZrIOECow @zdnet_japanから crypto処理をhugepage上で実行するだけで防げたりして…。"
インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 - ZDNet Japan
Shigeki Ohtsuさんのツイート: "さんざん噂になってた TLBleed ですが、ようやく発表者からのアブストとpaperが出てきましたね。17秒で256bit EdDSAを98%の確率で秘密鍵を取得できるのか。こりゃすごい。 HTをdisableするしか対策がない… https://t.co/KgtRGrODUQ"
TLBleed - VUSec
Fadisさんのツイート: "EdDSAの特定の実装に対するローカルからのサイドチャネル攻撃で鍵を特定できました、と。よかった、Curve25519も信用ならねぇとかぞういう話ではなかった"
Fadisさんのツイート: "Intel CPUのHyperthreadで1つのプロセッサを共有する複数のスレッドが同じTLBキャッシュを見ているのを利用して、同じプロセッサ上で動く別のスレッドの動きを覗く話っぽい。EdDSAの署名をするサーバで隣でそれを覗くプロセスを動かすことで、EdDSAの秘密鍵を短時間で特定できる程度まで絞り込めた、と"
まさみさんは語りたいさんのツイート: "TLBleed、intelのSMT実装ミスみたいなものなんじゃなかろうか。リソースはたしかに減らせるんだけども。他のSMTプロセッサではどうなってるのか気になる。"
Kazuho Okuさんのツイート: "TLBleed が定数時間アルゴリズムのバグの指摘でないという論拠がわからんというか、秘密鍵の値によって TLB の触り方が変わるプログラムは定数時間アルゴリズムとは呼べないよね?"
Shigeki Ohtsuさんのツイート: "Intelはこれを脆弱性と認めてないんだよね。Intel IPPライブラリはconstant timeだからそれを使えと。 / “TLBleed : Trasnlation Leak-aside Buffer の論文を読む - …” https://t.co/LclZUq4PNA"
TLBleed : Trasnlation Leak-aside Buffer の論文を読む - FPGA開発日記
TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる
misc/tlbleed.md at master · herumi/misc

PortSmash

20181103
PortSmash attack punches hole in Intel's Hyper-Thread CPUs, leaves with crypto keys • The Register
IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
Hyper-Threading搭載のIntel CPUに新たな脆弱性 ~“PortSmash”が明らかに - 窓の杜
Hyper-Threading有効時にスレッド上の情報が盗まれる「PortSmash」 ~Intel製品のほかRyzenにも影響か - PC Watch
Hiromichi Itouさんのツイート: "締切に追われているけど、気分転換で、PortSmashのPoCコードを動かしてみた。ちゃんと動いてタイミンググラフも取得できた。タイミング情報から秘密鍵を探すのは、過去の手法と同じなのかなー https://t.co/K8Kj96Nqe4"
bbbrumley/portsmash
まさみさんは語りたいさんのツイート: "Portsmash、解決する方法としてはsensitive sectionを開始したらsiblingの他のスレッドの動作を一定時間停止するシステムコールかなにかを使うしか無いのでは(SMT_lockみたいな)。それか運用で逃げる。"
CVE-2018-5407 - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "今年はIntelにとっては厄年だなあ。PortsmashのコードがWebブラウザから実行できたら、影響は個人レベルに及ぶので、もうHTは完全に廃れていくのではないか。"
PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
「Linux 4.20」性能問題、原因はSpectre v2対策STIBPの有効化--トーバルズ氏が変更を要求 - ZDNet Japan
More Information on PortSmash

IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs - ExtremeTech
ハイパースレッディングに深刻な脆弱性が報告される | スラド
OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化 | マイナビニュース
Hiromichi Itouさんのツイート: "OpenBSDがIntel Hyper-threadingをデフォルトで無効にするそうだ。脆弱性が見つかった訳ではなく予防的に行う措置の模様 https://t.co/qXlwlB0lXg"
CVS: cvs.openbsd.org: src
Makoto Kato ︎︎さんのツイート: "HyperThreadの実行効率の向上って、初期実装時(Pentium 4)は10%から20%くらいなので、今のCPUでHyperThreadが無効になっても、クロックを10%上げられれば、まぁ実行時間は変わらなくなるのではとは思うだけど"
一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘 - GIGAZINE
More information on SMoTherSpectre

デバッグ

本の虫: Intelの古いマニュアルを誤読したために生じた脆弱性
WindowsやmacOSなど主要OSに共通する深刻な脆弱性が発覚、原因はOSベンダーによるCPUアーキテクチャの仕様解釈ミスか - GIGAZINE
Ryou Ezoeさんのツイート: "信じられん。OpenBSDではユーザースペースにハードウェアブレイクポイントの利用を許可していないため今回のIntelのスタックレジスタ書き換え時の割り込み遅延の脆弱性の影響は受けない。 https://t.co/edGk31XuQg"
'Re: CVE-2018-8897' - MARC
本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避
日記 (2018 年 5 月下旬)
Shiro Kawaiさんのツイート: "#tcfm 第20回。ハードウェアブレークポイントって、メモリアクセスを捕まえたい時は有用と思うけど、実行を捕まえるのにソフトウェアより有利な点て何があるんだろう?(デバッグレジスタ直接使ったこと無い人。) 既にROMに焼かれてるプログラムを調べなきゃならない時とか? https://t.co/Oc3IpHPSCE"
Miura Hidekiさんのツイート: "H/W開発とか初期のファームウエアを開発するときはデバッガの実装が簡単になるので嬉しそうです… "
Shiro Kawaiさんのツイート: "textエリアの書き換えが面倒な実機上では確かに便利だと思います。普通の汎用マシンのデバッガでもそれ使ってたのはなんでかなあと。最近はOSも共通だし区別しない方が普通なんでしょうか。… "
Miura Hidekiさんのツイート: "すみません、頓珍漢なリプライをしてしまったようです。gdbにあるH/WブレークポイントはやはりROMのデバッグ用って書いてあります https://t.co/VdTNhIBGrw… "
Debugging with GDB: 5.1.1 ブレイクポイントの設定
Shiro Kawaiさんのツイート: "pop ssの脆弱性の話は、別に普通にデバッガが利用するからじゃなくて、アーキテクチャによって有用だからと用意されたシステムコールが予想外に利用されたと理解すればいいんでしょうかね。… "
Shiro Kawaiさんのツイート: "アーキテクチャによって、というより、使われるシステムによって、ですね。… "
Miura Hidekiさんのツイート: "ちょっと調べてみましたらMSでdllのデバッグに便利という記述がありました。確かにこれはH/Wじゃないと無理だと思います https://t.co/13x27QnxzO… "
ブレークポイント
Shiro Kawaiさんのツイート: "「読み込み時に通知を送る~」のくだりがわからないんですが、dllを実際にマップする以前に(アドレスが判明した時点で)BPを仕掛けたいというシナリオがあるんでしょうか。… "
Miura Hidekiさんのツイート: "dll中で落ちるソフトウエアのデバッグで、ソフトウエアの実行前にブレークポイントを仕掛けておけるのではないかと思います。ソフトウエアブレークポイントでは命令列を書き変えてもdllロードで無効になってしまいます。… "
Miura Hidekiさんのツイート: "dll中のどこかにブレークポイントを仕掛けたいシナリオです… "
Shiro Kawaiさんのツイート: "あ、なるほど。gdbだとmain実行前にdso内の関数にBPしかけようとするとpending on future shared library loadになりますね。… "
Miura Hidekiさんのツイート: "確かにgdbだとそんなメッセージが出ますね。Cygwinだと確かうまく動かないので無視していましたけど…… "

I/O bitmap

高梨陣平さんのツイート: "これはカーネルハッカーで386以来のx86の機構に詳しい方なら爆笑できそう。30年物のセキュリティホールがOpenBSDに発見された。切っ掛けは32bit版のOSのみがクラッシュする問題。調べる内に一般ユーザがI/Oポートを読み書き可能なセキュリティホールが発見された。ここから怒涛の懇切丁寧な説明が続く… https://t.co/KhB6rWVVwH"
Hacker Newsさんのツイート: "The History of a Security Hole: https://t.co/EDUYnJ7sW3 Comments: https://t.co/3djgXHwKPD"
The History of a Security Hole | OS/2 Museum
The History of a Security Hole | Hacker News
Hideki EIRAKUさんのツイート: "I/O bitmap はそもそもアクセスサイズ分取らなきゃいけない仕様が変だよね。CF8h の 32bit アクセス (PCI configuration) を許したかったら CF9h のバイトアクセス (システムリセットなど) も許さないといけないなんて。"

未定義命令

x86 アーキテクチャに潜む脆弱性、未定義命令実行後の挙動 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
Black Hat USA 2017 | Briefings
まさみさんは語りたいさんのツイート: "x86の未定義命令(UD以外の定義されていない命令)がたくさんあるのは、opcode mapを書いたことがある人なら誰でも知ってる公然の秘密(笑)。 arch/x86/lib/x86-opcode-map.txt に詳しい。(そして最近でも新しいのが見つかる)"

TXT

インテルTXTによるトラステッド・コンピューティング:第1回 インテルTXTが実現する真のセキュアなプラットフォーム - ITmedia エンタープライズ
仮想化の技術&製品トレンド - 仮想環境のセキュリティを高めるインテルTXT:ITpro
invisiblethingslab.com/resources/2011/Attacking_Intel_TXT_via_SINIT_hijacking.pdf
Intel TXT and vSphere
Intel、vProをアップデート | スラド
Windows adds TXT-supported MLE to boot security | Firmware Security

ME

Firmware Security

Finnbarr on state of Intel ME hacking tools | Firmware Security
PTSecurity on Intel ME | Firmware Security
coreboot and Intel ME | Firmware Security
More on INTEL_SA-00086 (Intel ME update) | Firmware Security
a bit more on INTEL-SA-00068 (Intel ME) | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
System76 to disable Intel ME (Dell as well) | Firmware Security
Intel ME coverage from BHEU | Firmware Security
BHEU slides on Intel ME vuln uploaded | Firmware Security
Tanenbaum: more comments regarding Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) vuln | Firmware Security
AMI response to Intel-SA-0068 (Intel ME vuln) | Firmware Security
Matthew’s 2nd blog on Intel ME vuln | Firmware Security
Pepijn on Apple use of Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
Intel ME research paper | Firmware Security
Intel ME at CCC | Firmware Security
ME Analyzer 1.42.0 released | Firmware Security
PTSecurity: how to run code in Intel ME | Firmware Security
Intel-SA-00068 updated (Intel ME) | Firmware Security

mjg59

mjg59 | The Intel ME vulnerabilities are a big deal for some people, harmless for most
mjg59 | Potential impact of the Intel ME vulnerability

Skylake・Kaby Lake・Coffee Lake

Download Intel-SA-00086 Detection Tool
Intel製CPUに特権の昇格の脆弱性、公式チェックツールがWindows/Linux向けに公開 - 窓の杜
Intelプロセッサの重大な脆弱性(SA-00086)に対処してみた話 – 内向型人間の知恵ブログ
インテル®マネジメント・エンジンの重要なファームウェア・アップデート (intel-sa-00086)
第6〜8世代Coreプロセッサなどに脆弱性、Intelがチェックツールを公開 | スラド セキュリティ
Intel,第6~第8世代Coreプロセッサ搭載システムに関する重要な脆弱性情報を公開。脆弱性の有無を調べる検出ツールもリリース - 4Gamer.net
Intel Management Engineなどに8個の脆弱性が発見 ~第6世代Core以降が影響、ThinkPadなどがすでに対策開始 - PC Watch
Intel、第6~第8世代Coreなどの脆弱性情報公開、対策はファームウエア更新 | マイナビニュース
OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ
インテルの「Management Engine」などに複数の脆弱性--ファームウェアを修正 - CNET Japan

MINIX

インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
Google、ユーザーの知らないところで動くUEFIの脆弱性に警鐘 ~オープンソース化で回避を提唱 - PC Watch
Hiromichi Itouさんのツイート: "Intel Management EngineでMINIXが動くようになったのは、Intel ME 11を搭載しているIntel 100 Series Chipsets(2015年)以降なので、世界で一番の稼動OSではないと思われる。(とマジレス)"
Minixを使用していると言われているIntel ME、BSDライセンス違反の疑い | スラド

企業向けのみに存在する脆弱性

Download INTEL-SA-00075 Detection and Mitigation Tool
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
IntelのCPUのセキュリティ問題について電子フロンティア財団が指摘 - GIGAZINE

回避困難な脆弱性?

Intel x86プロセッサに含まれている遠隔管理システムに危険性? | スラド セキュリティ
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
Intel製CPUの「修正済み」脆弱性が実は修正不可能であったことが判明、特権によるコード実行やDRMの回避などが可能 - GIGAZINE
インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan
INTEL-SA-00213

無効化

Intel ME 11を無効化する方法が公開される - GIGAZINE
Intel MEの脆弱性を発見し保護システムを無効化した方法をセキュリティ研究者がBlack Hat Europe 2017で発表すると告知 - GIGAZINE
NSAが開発した隠し機能でIntel MEを無効化する動きがPCメーカーに広がる - PC Watch

platomav/MEAnalyzer: Intel Engine Firmware Analysis Tool
【やじうまPC Watch】米国ではじめてATM遠隔攻撃が確認 ~Intel MEの脆弱性が利用される可能性も - PC Watch
Intel® Product Security Center
デュアルソケット・ザ・ワールド ME-HECI ME Subsystem とは何か?
Introduction to the Intel Management Engine OS (Part 1) | Peter Bosch’s website
Introduction to the Intel Management Engine OS (Part 2) | Peter Bosch’s website
高梨陣平さんはTwitterを使っています 「Google Working To Remove MINIX-Based ME From Intel Platforms https://t.co/lajfCP20m6 Intelがほぼ全てのCPUの中でMinixを動かしているのは有名になったがGoogleがそれを削除させる方向で動いているとの記事。IntelのMEはclosedなMinixだがHWに完全なアクセスが可能で攻撃の入口として最適との話」 / Twitter
Google Working To Remove MINIX-Based ME From Intel Platforms | Tom's Hardware

AMT

mjg59/mei-amt-check: Check whether AMT is enabled and provisioned under Linux
Intel AMT Checker for Linux | Hacker News
インテルが開発したリモートコントロール技術 - 第三の謎 インテル® アクティブ・マネジメント・テクノロジーとは?のレビュー | レビューメディア「ジグソー」
mjg59 | Intel AMT on wireless networks
mjg59 | Intel's remote AMT vulnerablity
Embedi on Intel AMT vulnerability | Firmware Security
Intel AMT Upgradable to Vulnerable Firmware | Firmware Security
new Windows UEFI security protections deciphered | Firmware Security
Intel AMT developer documentation updated | Firmware Security
NVD - CVE-2017-5698
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
インテルの「AMT」や「ISM」に脆弱性--緩和策など公開 - ZDNet Japan
リモート管理機能「Intel AMT」、リモートから任意のコードが実行可能な権限昇格の脆弱性 -INTERNET Watch
笠原一輝のユビキタス情報局
シリアルオーバー LAN(SOL) ホワイトペーパーインテル®サーバーボードシステム
Intel vPro テクノロジを使用するコンピューターには、Windows 7 のデバイス マネージャーで認識されないデバイスが搭載されていることがある
AMTを利用した全盲ユーザのBIOS操作について(DQ45CB編)
Intel AMT (5)PC: リモートから情報取得、遠隔操作する方法(Intel AMT 10編)
Intel MeshCommander (AMT tool): now available for Mac and Linux (not just Windows) | Firmware Security
F-Secure: new Intel AMT security issue | Firmware Security
パスワード「admin」で簡単にIntel AMTに入れ、リモートアクセスできる問題が発覚 - PC Watch
Lenovo: Intel AMT MEBx Access Control Bypass | Firmware Security
Intel製品に複数の脆弱性、修正版が一斉公開 ~最大深刻度は“CRITICAL” - 窓の杜
20180721

DCI

Intelの新型CPUにUSBポート経由でシステムのフルコントロールが奪われるデバッグの仕組みがあることが判明 - GIGAZINE
そうだ、Intel DCIをしよう! | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab
Intel® System Studio | Intel® Software
RU.EXE + RU.EFI
Enable DCI debugging on Gigabyte-BKi5HA-7200
blog/section.txt at master · JP3BGY/blog
USB View - Google 検索
Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually - Windows drivers | Microsoft Docs
Publications/2018/DEFCON26 at master · eclypsium/Publications

SMM

1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
1997年から2010年までのインテル製CPUに脆弱性、ルートキット埋め込み可能で対策はほとんどなし - Engadget Japanese
https://www.blackhat.com/docs/us-15/materials/us-15-Domas-The-Memory-Sinkhole-Unleashing-An-x86-Design-Flaw-Allowing-Universal-Privilege-Escalation-wp.pdf
My aimful life: Building reliable SMM backdoor for UEFI based platforms
Cr4sh/SmmBackdoor: System Management Mode backdoor for UEFI
My aimful life: February 2016
1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
Embedi SMM_USBRT_POC: CVE-2017-5721 UsbRt SMM EoP | Firmware Security
Intel Sytem Debugger on debugging UEFI and SMM | Firmware Security
SMM rootkits: a new breed of malware | Firmware Security
mjg59 | Creating hardware where no hardware exists

Intelのプロセッサの脆弱性を利用したNetCAT攻撃はSSHセッションの入力内容や通信内容の窃取が可能 - GIGAZINE
Intelのプロセッサ内蔵GPUに脆弱性、ドライバ/カーネル更新を推奨 - PC Watch
INTEL-SA-00314
Side Channel Methods – Analysis, News, and Updates
Software Guidance for Security Advisories
Host Firmware Speculative Execution Side Channel Mitigation
Refined Speculative Execution Terminology

MS

その他

Windows 10のシステム呼び出しとカーネル内部セキュリティー対策
Windows 10 1703/1709、セキュリティー、CPU問題
Windows 8 Enterprise Flexible Workstyle Full Deck RP (To Customer)
Windows10とコルタナのデフォルト設定の脆弱性を報告
ランサムウェア対策が「Windows 10 Fall Creators Update」に追加! さっそくトライ - やじうまの杜 - 窓の杜
なかのん DAYS''さんのツイート: "Windowsはいい加減、管理者権限が必要なexe以外を、管理者以外が書き込めるフォルダからは実行できないようにするオプションを提供して欲しい。"
「C:\Temp」「C:\Intel」フォルダーは不正ツールが設置されやすい? 標的型攻撃に類似点~J-CRAT報告 - INTERNET Watch
「Windows 10」に新たなセキュリティ機能「InPrivate Desktop」が追加か - CNET Japan
Microsoft、「Windows Defender」をサンドボックスで実行する機能を追加 - 窓の杜
未認証のワクチンですけど試してみませんか?――Windows Defenderのサンドボックス化の話 (1/2):山市良のうぃんどうず日記(140) - @IT
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~Arbitrary Code Guard~ « 他人の空似
Heap spraying攻撃の手順と原理解説 – 他人の空似
YurikaさんはTwitterを使っています: 「数々のMS製品の0Dayを発表しまくってましたSandbox Escaperさんが、MSに入る前に(NDAにサインする前に)その手法を世に公開しまくるということでブログが公開されてますよ。https://t.co/ZFeRteMcHp」 / Twitter
Place where polar bears dwell: Chasing polar bears: part one
Windows 10の脆弱性を諜報機関の「NSA」が報告したことを専門家が重視する理由とは? - GIGAZINE
楠 正憲さんはTwitterを使っています: 「だいぶヤバい脆弱性では?→ ECDSA署名と曲線領域パラメーターの制御を考えると、元の署名秘密鍵を知らなくても、元の公開鍵と一致する2番目の秘密鍵を作成するのは簡単 / “From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker…” https://t.co/huOVOpL8ww」 / Twitter
From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker News
Shigeki OhtsuさんはTwitterを使っています: 「WindowsのECDSAの脆弱性 CVE-2020-0601 の証明ってこんな感じでいいんですかね? 間違いあればどなたかご指摘ください。 https://t.co/hNkOqt7lyw」 / Twitter
Windows 8やWindows 10でウェブサイトのライブタイル提供に使われていたサブドメインが放棄された状態に - ZDNet Japan
ファイルレス攻撃を阻止するエクスプロイト防止機能の概要
the-backdoor-factory – シェルコード付きPE、ELF、Mach-Oバイナリパッチ(未サポート) – GitHubじゃ!Pythonじゃ!

Vulnerability & Exploit Database

Vulnerability & Exploit Database | Rapid7
Microsoft Windows - Assembly Execution (MS12-005)
Exploiting a 64-bit buffer overflow – bytes > bombs
Windows x64 Shellcode | McDermott Cybersecurity
TeamViewer 11 < 13 (Windows 10 x86) - Inline Hooking / Direct Memory Modification Permission Change
Exploit Development-Everything You Need to Know « Null Byte :: WonderHowTo
Pentest Tips and Tricks – EK
gynvael/asmloader: Simplified Assembly Loader - a small tool to run (headerless) machine code.
Windows x64 and x86 kernel shellcode for eternalblue exploit
m4ll0k/Awesome-Hacking-Tools: Awesome Hacking Tools
0xAX/asm: Learning assembly for linux-x64
GDSSecurity/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins.
Infosec_Reference/Exploit Development.md at master · rmusser01/Infosec_Reference

TechNet

「Emotet」の大規模感染を阻止した人工知能のしくみ – 日本のセキュリティチーム
挙動監視と機械学習で大規模な「Dofoil」によるコイン マイニング攻撃を阻止 – 日本のセキュリティチーム
Windows Administration: Inside the Windows Vista Kernel: Part 3

Windows Blog

Windows 10 のエンドツーエンドのセキュリティ機能を紹介 - Windows Blog for JapanWindows Blog for Japan
次世代型のマルウェア対策機能を提供する Windows Defender ウイルス対策の本当の実力とは? - Windows Blog for JapanWindows Blog for Japan
Windows Defender ウイルス対策が企業で最も採用されている理由 - Windows Blog for JapanWindows Blog for Japan
マイクロソフトのセキュリティ エクスペリエンスを共有 - Windows Blog for JapanWindows Blog for Japan

@IT

Windows 10はEMETに頼らずとも安全?:山市良のうぃんどうず日記(58) - @IT
Windows 10に組み込まれた多層かつ高度なマルウェア対策機能:企業ユーザーに贈るWindows 10への乗り換え案内(10) - @IT
ユーザーアカウント制御(UAC)の奇妙な体験――デスクトップは暗転しない?:その知識、ホントに正しい? Windowsにまつわる都市伝説(101) - @IT
Windows 10の新しい「電卓」と「ビルトインAdministrator」に見る“セキュリティの落とし穴”:山市良のうぃんどうず日記(72) - @IT
本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(99) - @IT
システム監査対決! Windowsコマンドライン監査 vs. Sysmon:山市良のうぃんどうず日記(27) - @IT
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能 (2/3):企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
パスワード時代の終わりはくるのか? Microsoftが新しいセキュリティやAIのサービスを発表:「Microsoft Ignite 2018」で発表された新サービスとは - @IT

サンドボックス

Windows XP/7/8/10のプロセス間親子関係とサンドボックス
AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ
整合性レベルに基づく保護モード - NyaRuRuが地球にいたころ
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeはプロセスのサンドボックス機能も強化されている。なお、拡張機能やFlashはそれぞれ独立したプロセスを割り当てられてサンドボックス化されている。 / “Stre…” https://t.co/KGw32AYYMd"
Windows 10 Creators Updateで強化されるEdgeのサンドボックス機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
Strengthening the Microsoft Edge Sandbox - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
次期Windows 10ではアンチウイルスソフトは保護されたプロセスでの実行が必須に - PC Watch
山市良のえぬなんとかわーるど: 保護されたプロセス(Protected Process)か否かの確認方法
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Windows 10プレビューに“サンドボックス”機能。隔離環境でEXEファイルを実行可能に - PC Watch
AppContainerでデスクトップアプリを起動してみた « 他人の空似
AppContainer関連API情報まとめ « 他人の空似
AppContainer関連サンプル紹介 « 他人の空似
PrivateNamespaceを使ったAppContainerとのプロセス間通信 « 他人の空似

権限

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのsymlinkは、パス読み取りに特権が必要だったり、symlink自体のアクセス権も必要、という謎仕様。 前者は開発者モードで解除できるようになったものの、何を懸念してその仕様にしたのか理解不能…junctionと違い、symlinkはユーザの手打ちと等価(=クライアント側再解釈)のはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Edgeでリンク実行を選ぶと AppData\Local\Packages\Microsoft.MicrosoftEdge_xxx¥TempState\Downloads で実行されるが、このフォルダは、管理者昇格のためのShellExecute(verb=runas)がコケる縛りがある様子。 (ファイル移動すればコケないので、副次Streamによる信頼リージョンの話ではなさそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コケるフォルダは、Edge配下のTempState, LocalCache, LocalState の3つ。 このフォルダに置くと(Edge非経由)一般権限でもコケるので、VirtualStoreのような何らかの特殊フォルダ登録でもあるのかしらん? ただ、右クリックで初手からの管理権限起動は可能という謎。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これらのフォルダには Low Mandatory Level という整合性レベルがSASLに設定されていた。この場合、ShellExecute(verb=runas) がコケる動作をする様子。 (低整合性レベル=IE等のsandbox動作でアクセス可能なので、この挙動自体は理解できる。一般権限実行でも拒否は厳しめだけど)… https://t.co/LW0BSRLz4u"
Shirouzu Hiroaki(白水啓章)さんのツイート: "低整合性レベルなディレクトリ(EdgeのDownloadフォルダ等)から起動したプロセスは、一般フォルダへの書き込み権限がなくなる+昇格リクエスト(verb=runas)もリジェクトされる。 低整合性レベルから起動された場合、「別フォルダに移動して起動する」ようにユーザに促すしか手がない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「Integrity Level」の訳が「整合性レベル」。 低整合性=矛盾がある、みたいな語感があると思うのだが。 なお、integrity の一般的な訳は「高潔、誠実、清廉、完全な状態、無傷」らしい。"

マルウェア対策ソフトウェア

Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスソフトのヒューリスティックでの誤検出されやすさ経験。 シマンテック >> カスペルスキー > ESET > Windows Defender (シマンテックは何度ホワイトリスト登録しても、次のバージョンで誤検出されるという…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "その後、シマンテックはホワイトリスト申請制度自体を止めてしまったが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーとESETさんは、ホワイトリスト申請用FTPサイトがあって、そこに載せれば自動的に検査される仕組み。 (前者の場合、最初に物理的な契約書を取り交わした後、FTPサイトのアカウントが通知される流れ) ちなみにどちらのFTP転送も、モデム接続なみに遅い(笑)"

MIC

必須整合性コントロール - Wikipedia
Mandatory Integrity Control - Wikipedia
Mandatory Integrity Control (Windows)
What is the Windows Integrity Mechanism?
MIC
Mandatory Integrity Control in Windows 10/8/7
Windows Server:システム管理者の視点 - 正式に認められた「Whoami」コマンド:ITpro
Windowsコラム - 【TechEd】悪意のある攻撃に強くなるWindows Vista:ITpro
【レビュー】ファイルやフォルダーの“整合性レベル”をチェックできるGUIツール「MicEnum」 - 窓の杜
管理者でも削除できないフォルダ・ファイルを作る - イグトランスの頭の中
Windows版FireFox、MICを利用したセキュリティ対策 - Qiita
Windows用インストーラのセキュリティ問題 - Qiita
情報セキュリティ技術動向調査(2009 年下期):IPA 独立行政法人 情報処理推進機構
アプリケーションを管理者に昇格させながらのAllowDrop: DOBON.NETプログラミング掲示板過去ログ
Vistaのセキュリティ対策が抜け穴に――Symantec、2つ目の報告書 - ITmedia NEWS
管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)(3/3) - @IT
漢(オトコ)のコンピュータ道: 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?

Arbitrary Code Guard

Microsoft Edge での任意のネイティブコード実行の影響の緩和 | Microsoft Edge Japan
Microsoft Edge概要 物江氏
変わるWindows、変わる情シス:第4回 「Windows 10」は情報漏えいをどう防ぐ? (2/2) - ITmedia エンタープライズ
Microsoft Edgeのセキュリティ機能「ACG」の未修正脆弱性、Googleが公表、 - INTERNET Watch
高梨陣平さんのツイート: "GoogleのProject Zeroが再びMicrosoftのEdgeブラウザの脆弱性を修正前に公開。JITの使用するメモリ空間の位置が事前に予測可能なためリモートからの任意コード実行が可能に。GoogleはIntelのSpectreとMeltdownに関しては90日ルールを自ら破っている。… https://t.co/ZGAyZswisg"
1435 - Microsoft Edge: ACG bypass using UnmapViewOfFile - project-zero - Monorail
2018-02-18 セキュリティニュースまとめ: Microsoft Edge にメモリ保護機能 ACG (Arbitrary Code Guard) をバイパス可能な脆弱性 - 拡張頭蓋 | Extended Cranium

HeapEnableTerminationOnCorruption

Rockridgeさんのツイート: "Fx55:Windows版で、chromeプロセスにおいてHeapEnableTerminationOnCorruptionを有効化し、エクスプロイト攻撃に対するセキュリティを強化した。 / “805173 - Consider…” https://t.co/5EIJuBWrzl"
805173 - Consider enabling Windows' HeapEnableTerminationOnCorruption for browser and plugin-container
HeapSetInformation function (Windows)
Direct2D SDK コーディング規則 (Windows)
HeapSetInformation function (Windows)
HEAP_INFORMATION_CLASS enumeration (Windows)
Brief Q&A on the HeapEnableTerminationOnCorruption heap information flag – The Old New Thing
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
Windows-classic-samples/CustomLayout.cpp at master · Microsoft/Windows-classic-samples
Windows-classic-samples/UiaCleanShutdownHost.cpp at master · Microsoft/Windows-classic-samples

Windows Sandbox

品川 高廣さんのツイート: "こういうのずっと欲しかった。Windows 全体を fork して sandbox しているようなイメージかな。https://t.co/881nADf623"
Windows Sandbox - Microsoft Tech Community - 301849
マイクロソフト、Windows Sandbox発表。デスクトップアプリを分離した環境で安全に実行可能に - Publickey
“使い捨て”のアプリ実験環境「Windows Sandbox」を追加 ~「Windows 10 19H1」Build 18305 - 窓の杜

Windows Information Protection

Microsoft Intune での Windows Information Protection 設定 - | Microsoft Docs
Windows Information Protectionを簡単に使い始める方法 | Always on the clock
2つの情報保護技術、クラウドのAIPとWindows 10のWIP(その3):企業ユーザーに贈るWindows 10への乗り換え案内(13) - @IT
情報を保護するWindows 10の「BitLocker」と「WIP」 (1/2):Windows 10が備えるセキュリティ機能(4) - @IT
第11回 新機能「Windows Information Protection」の登場で、BYODを安心して活用できるように - 中堅・中小企業のためのWindows 10講座:日経 xTECH Active
Dropbox Business と Windows Information Protection – Dropbox
Windows Information Protection - YouTube
Windows Information Protectionのデバイスポリシー
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [6] OSレベルで個人/企業データを切り分け「Windows Information Protection」|セキュリティ|IT製品の事例・解説記事
Windows Information Protection(WIP) | MobiConnect(モビコネクト)

Windows Defender Advanced Threat Protection

Windows Defender Advanced Threat Protection の機械学習: 未知の侵入アクティビティの検出 – 日本のセキュリティチーム
Creators Updateを控え、大幅強化されるWindows Defender ATP - PC Watch
Windows Defender ATP の新機能でエンドポイントのセキュリティの有効性と堅牢性をさらに強化 - Windows Blog for JapanWindows Blog for Japan
Windows Defender ATP Advanced Hunting の概要 - Windows Blog for JapanWindows Blog for Japan

Windows Defender Application Guard

Windows Defender Application Guard で Microsoft Edge を最もセキュアなブラウザーに – 日本のセキュリティチーム
Microsoft Edge のための Windows Defender Application Guard の紹介 | Microsoft Edge Japan
Microsoft Edge向けのセキュリティ保護機能「Windows Defender Application Guard」 -INTERNET Watch
【マイクロソフト研究所】Windows 10 Creators Updateの企業向け機能 - クラウド Watch
Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2):企業ユーザーに贈るWindows 10への乗り換え案内(15) - @IT
山市良のえぬなんとかわーるど: Windows Defender Application Guard を VM と日本語環境で使う
次期Windows 10“RS4”が更新、“Windows Defender Application Guard”を強化 - 窓の杜
Windows 10のキオスクモードとWDAGの導入がより簡単に、より柔軟に:企業ユーザーに贈るWindows 10への乗り換え案内(39) - @IT

Windows Defender Exploit Guard

Windows Defender Exploit Guard: 攻撃表面を縮小して次世代型マルウェアに対抗する – 日本のセキュリティチーム
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能:企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT

Windows Defender Application Control

Windows Defender Application Control の紹介 – 日本のセキュリティチーム
山市良のえぬなんとかわーるど: Device Guard = Windows Defender アプリケーション制御?
脅威からPCを守るWindows 10の「Device Guard」と「Edge」:Windows 10が備えるセキュリティ機能(2) - @IT
「Device Guard」はWindows 10 Enterpriseの“限定”機能か、否か?:その知識、ホントに正しい? Windowsにまつわる都市伝説(91) - @IT
【特別企画】Windows 10 November Update 2015のエンタープライズ向け機能 - クラウド Watch
デバイス ガードの概要 (Windows)
デバイス ガード: 進化してきた脅威に対抗、Windows 10 のセキュリティ機能 – 日本のセキュリティチーム
Device Guardで保護されているデバイスでのアプリの実行 (Windows)
Device Guard の署名を使ったコード整合性ポリシーへの署名 (Windows 10) | Microsoft Docs
Windows Defender Application Control (WDAC) (Windows 10) | Microsoft Docs

EMET

エメット(EMET)、していますか?:山市良のうぃんどうず日記(3) - @IT
お手柄、エメット(EMET)さん!:山市良のうぃんどうず日記(5) - @IT
新しいエメット(EMET)さんにご用心!:山市良のうぃんどうず日記(14) - @IT
エメット(EMET)さん、破れたり:山市良のうぃんどうず日記(17) - @IT
さらに新しいエメット(EMET)さんにもご用心!:山市良のうぃんどうず日記(20) - @IT
もっと新しいエメット(EMET 5.2)さん、リ・リリース:山市良のうぃんどうず日記(29) - @IT
現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第:山市良のうぃんどうず日記(50) - @IT
EMET サポート終了 – Windows Defender Exploitation Guard へ移行を – 日本のセキュリティチーム
お疲れさま、そしてサヨウナラ、エメット(EMET)さん:山市良のうぃんどうず日記(133) - @IT
山市良のえぬなんとかわーるど: あすたらびすたエメットさん

FFRI

www.ffri.jp/assets/files/monthly_research/MR201207_browser_treat.pdf
www.ffri.jp/assets/files/monthly_research/MR201208_Windows8Security_Overview.pdf
Black Hat 技術報告 前編│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/monthly_research/MR201209_Windows8_Exploit_Mitigation.pdf
www.ffri.jp/assets/files/monthly_research/MR201210_Window 8_AppContainer_Sandbox.pdf
www.ffri.jp/assets/files/monthly_research/MR201308_Understanding bypassing ASLR by a pointer at a fixed address_JPN.pdf
www.ffri.jp/assets/files/monthly_research/MR201312_History and Current State of Heap Exploit_JPN.pdf
http://www.ffri.jp/assets/files/monthly_research/MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
スライド 1
Monthly Research 「Microsoft Threat Modeling Toolの利用例」│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/research/research_papers/SystemCall.pdf
windows10_security_ja.pdf
windows10_セキュリティ評価支援報告Phase2

Log.i53

デバッガ検出技術:Debugger Process - Log.i53
Anti-Debug カテゴリーの記事一覧 - Log.i53
Unpack カテゴリーの記事一覧 - Log.i53
Art-of-Unpacking カテゴリーの記事一覧 - Log.i53

Project Zero

Project Zero: Dude, where’s my heap?
Project Zero: Internet Explorer EPM Sandbox Escape CVE-2014-6350
Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
Project Zero: Escaping the Chrome Sandbox with RIDL
Project Zero: Windows Sandbox Attack Surface Analysis
Project Zero: A Shadow of our Former Self
Project Zero: Did the “Man With No Name” Feel Insecure?
Project Zero: In-Console-Able
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 1
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 2
Project Zero: Windows‌ ‌Exploitation‌ ‌Tricks:‌ ‌Spoofing‌ ‌Named‌ ‌Pipe‌ ‌Client‌ ‌PID‌
Project Zero: Down the Rabbit-Hole...
Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager

DKOM

Direct kernel object manipulation - Wikipedia
tfairane/DKOM: Direct Kernel Object Manipulation _EPROCESS
DKOM - おなかすいたWiki!
bh-us-04-butler-jamie 1.ppt
Final_WP_BalanceRiskManagement.pdf
悪魔のツール“ルートキット”最前線 - 第5回 ルートキット実装の2大手口(その2):ITpro

Wikipedia

ユーザーインターフェイス特権の分離 - Wikipedia
ユーザーアカウント制御 - Wikipedia
データ実行防止 - Wikipedia
Kernel Patch Protection - Wikipedia

@shirouzu

偽装

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsだと偽装(impersonate)APIがあり、特権プロセスは(例えばnamed pipe経由で)一般プロセスと通信で、その接続元(権限)に成りすます仕組みがあって、 (例えばユーザモード・プリンタサービス(特権)がPDF生成の際、ユーザ側権限の範囲でファイル作成など) https://t.co/lrlbxFpmB9 https://t.co/UEuGMJTkN2」 / Twitter
Impersonating a Named Pipe Client - Win32 apps | Microsoft Docs
Ryosuke Matsumoto / まつもとりーさんはTwitterを使っています 「新しい研究ネタについて書いた / クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来 https://t.co/sragt1m9vZ」 / Twitter
クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(続)偽装の分散システム版イメージっぽい印象。ただ偽装はNT3.1時代からあるが、サービス系の一部で使われているだけの地味な存在…TCP/IP&amp;分散システム拡張だと違ってくるのかよくわからない。 (コンテナ云々はまあそうなんだろうけど、プロセスから見たシームレス度みたいな部分も大事そう)」 / Twitter
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu webサーバーでも管理プロセスだけ特権ポート開いて起動したら、権限降格して稼働するみたいなの有りましたね… suexecでしたか。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのグローバルフック、64bit環境+64bitDLLで実行すると、32bitプロセスでは、SetWindowsHookExを発行したプロセス内のコールバックで実行される。 なので、32bitプロセス内へのDLL注入を前提にしたコードの場合は、別途、32bit版DLL+32bitフック実行が必要となる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、SetWindowsHookExとかCreateRemoteThread等、能動的な他プロセス侵入の枠組みを公式に用意とは豪快だなぁ、といつも思う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、署名を入れてもProgram Files下に入れても、EdgeにSetWindowsHookExが効かないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Injection自体は出来るようになっていた。(要署名、manifest、ProgramFiles) UWPとWin32Appとの通信をどうするかという話に。 https://t.co/prPu53VXxK"
App-to-app communication - Windows UWP applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "整合性レベルは6種類。 (なお、AppContainerは独立した整合性レベルではなく、Lowに含まれる、という話) Windows Internals 7th から。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そもそも、AppContainerの開発コード名は「LowBox」だったという話。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "PSECURITY_DESCRIPTORは、SECURITY_DESCRIPTOR * と思いきや void * なので、それをメンバに持つ SECURITY_ATTRIBUTES.lpSecurityDescriptor への代入には型チェックが働かない。(そのため1時間無駄にしてしまった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPとデスクトッププロセス間でmutexやmmapを共有できることを確認できた。 ただしかなり面倒。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPはアプリ毎にSIDを持つが、それはUWPパッケージ名をSHA-2ハッシュにしたものがベースらしい。へぇ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPをWin32でフックして確認。 ・カーネルオブジェクト(mutex等)の名前空間は、UWPアプリ毎のサブ名前空間に変換。 (chroot的イメージ) ・Win32からはUWP名前空間はサブ空間に過ぎないが、普通アクセス権が無い。  しかし、プライベート名前空間を作ると(+要権限設定)、両者から参照できる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) ・UWPはIE保護モードと同じ低整合性で動作。  (多くのアクセス権限が無い) ・UWPマニフェストに応じて、一部API/アクセス権の有効/無効を切り替え。  (当然だが、フック側から生API発行しても無効) まさに AppContainer で動作、という印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) Windows Internals 7版での、UWP と Win32アプリの比較表はこんな感じ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWP、たしかに(基本的にはライトなコンテナで)安全度が高いのはわかった。 マニフェストで許可された範囲以外では抜け穴は少なそう。 (ただ、例えばエディタだとマニフェストでの許可範囲自体が広い類は大丈夫かな。あとアプリ間は(名前分離はあるが)若干壁が弱い感じも)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用に、IME ON状態をカーソルの緑色の丸で表示する「IME Cursor」という Win10用ソフトを作ったので、ご興味のある方はどうぞ。 (Program Files配下に置けば、アプリや管理者動作のソフトでも動きます) https://t.co/pHtbIkeDZ1"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、Program Files に置いた署名付きソフトは、UAC下で起動しても(昇格不要で)特権プロセスにフック可能、というのは中々豪快な仕様。 (同様に、UWPアプリにもフック可能になるが、こちらはまだわかる)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用ソフトながら、「もし使いたい人が居ればどうぞ」という位置づけです。 (今のところ、これ以上、大きな改良はしないと思います)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記の2つを満たせば、ストアアプリにもhookできます。 ・マニフェストで uiAccess=true ・Program Files配下にコード署名付きのバイナリを置く ただ、ストアアプリはsandbox動作なので、アプリ外にデータを吐き出す方が苦労します(笑)… https://t.co/xxZNrCGopA"
uNagiさんのツイート: "そういえば、キーリマッパーの「のどか」が、ストアアプリの IME 状態が取れずに難儀していて、今もできなかったと思うんだけど、解決方法はあるんだなあ。… "
窓の杜さんのツイート: "IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開/「FastCopy」「IP Messenger」の作者が開発 https://t.co/d2L6tMazcc… "
IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開 - 窓の杜

@t_toyota

Takashi ToyotaさんはTwitterを使っています 「米Microsoft社はAI(とアルゴリズム)を前面に出している。アプリの「振る舞い」をモニターするにはデータが必要だ。どのデータだ?あるカーネル内部のデータを利用すると、「異様な動き」を効率良く検出できる。これは事実だ。驚いた! https://t.co/7JtMmmc5Ck」 / Twitter
Windowsセキュリティーメカニズム
Windows XP/7/8/10のセッションとプロセス
Windowsシステム分析(3/4)
Takashi ToyotaさんはTwitterを使っています 「何をどのようにモニターしているのか?モニター済みデータにはある固定値が加算されることがある。その固定値を減算すれば、元のデータに辿り着ける。」 / Twitter

Windows 10 のセキュリティ機能を使用して脅威を軽減する (Windows 10) | Microsoft Docs
SetProcessMitigationPolicy function (Windows)
AppLocker (Windows 10) | Microsoft Docs
セキュリティエンジニア向けツール(Windows編) - Qiita

カーネル

カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
カーネル空間からのセキュリティ - SSSSLIDE
カーネルエクスプロイトによるシステム権限奪取 // Speaker Deck
カーネル空間からのセキュリティ - Speaker Deck
品川 高廣さんはTwitterを使っています: 「Linux カーネルは過去7年で基本性能がどんどん遅くなっているらしい。select() は2年前と比べて最大100%の性能低下。要因はセキュリティ強化、新機能、設定ミス。今年の SOSP で一番 OS っぽい話。https://t.co/zZjuALAkS6」 / Twitter
An analysis of performance evolution of Linux's core operations
品川 高廣さんはTwitterを使っています: 「セキュリティ対策による性能低下は、Meltdown 対策の KPTI で recv() が最大63%、Spectre v2 対策の Retpoline でpoll() が最大89%、SLAB freelist dandomization で epoll() が最大41%、usercopy の強化で select() が最大18%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「新機能による性能低下は、fault around(page fault 発生時に周辺ページもついでにマップする)で page fault が最大54%、cgroup で munmap が最大81%、transparent huge table デフォルト無効化で read() が最大83%、userspace page fault handling でfork()が4%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「設定ミスによる性能低下は、forced context tracking(reduced scheduling-clock ticks 開発のためのデバック機能)無効化し忘れで最大100%、TLB layout change で munmap() が最大50%。CPU idle power-state support はHaswell上の select() で31%の性能向上があるが、LTS に backport されていない。」 / Twitter
品川 高廣さんはTwitterを使っています: 「上記の11個の要因中8つはカーネルの reconfiguration で、残り3つは簡単なパッチで回避可能。その結果、Redis, Apache, Nginx benchmark の性能がそれぞれ 56%, 33%, 34% まで改善した。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ1: Spectre 対策の retpoline は indirect jump を予測不能にするので、indirect jump をよく使う select や poll が著しく性能低下する。対策は、セキュリティに問題のない if文+ direct jump への置き換え。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ2: KPTI は TLB flush のコストが重い。PCID を使って最適化可能だが、それでも切り替えに 400-500 サイクルはかかる。PCID は CR3 に格納されており、CR3 の書き込み自体 200 サイクルかかる。」 / Twitter
Linux Kernel CVE-2019-9857 の PoC を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-5390 SegmentSmack の PoC を書いて分析・検証した - hibomaの日記
Linux Kernel CVE-2017-18017 の Poc を書いて検証した - hibomaの日記
Linux Kernel CVE-2018-12232 の Poc を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-6554 の PoC を書いて検証・観察した - hibomaの日記
Linux Rootkit Internalsという題でLTをしてきた - 脱力系日記
2019年11月26日 Linux 5.4がリリース,カーネルロックダウン,exFATサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.4」公開、exFATサポートやハードウェアサポートの改善などが特徴 | OSDN Magazine
Linuxカーネルのロックダウン機構を試してみる - Qiita
DECAF meets The Sleuth Kit(TSK) - Speaker Deck

サイドチャネル攻撃

サイドチャネル攻撃 - Wikipedia
サイドチャネル攻撃(side-channel attack) | IoT
1011…L†[…‘†[…h
サイドチャネル攻撃に対する安全性評価の研究動向とEMVカード固有の留意点
サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ - 日本シノプシスホームページ - Synopsys
科学10月独立論文_崎山ほか.indd
dwm009901050.pdf
サイドチャネル攻撃とは - Weblio辞書
PCの電位変化から暗号化データを復号する新手のハッキング手法が登場 - GIGAZINE
サイドチャネル攻撃とは - IT用語辞典
平成28年秋期問10 タイミング攻撃の対策|情報処理安全確保支援士.com
SCIS2013_1E2-5.pdf
Work_5.pdf
Microsoft Word - iokibe_ict-innovation-forum_2014.doc
ir.c.chuo-u.ac.jp/repository/search/binary/p/5121/s/2510/
スライド 1
timing attack (タイミング攻撃、タイミングアタック) とは - 木木木
icchyさんはTwitterを使っています: 「今日の #BitVisorSummit8 のスライドです 1: https://t.co/BIMzw9cMsc 2: https://t.co/El2O2qRqVQ」 / Twitter
how to port * to BitVisor (2)
icchyさんはTwitterを使っています: 「今回のポスター(?)です VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策 https://t.co/1GwSOI4lIv @SlideShareさんから」 / Twitter
VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策
icchy/tscjammer
サイドチャネル攻撃に対して脆弱なGPU

脆弱性情報

CVE

CVE - Common Vulnerabilities and Exposures (CVE)
ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?
CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch
2017年のサイバー攻撃に悪用された脆弱性トップ10/中CNNVDが脆弱性情報の公開日を改ざん?【海外セキュリティ】 - INTERNET Watch
KasperskyがCVE採番機関として認定 ~脆弱性にIDを付与 - 窓の杜
【セキュリティ ニュース】「Bluetooth」に暗号化強度下げる「KNOB攻撃」が判明(1ページ目 / 全2ページ):Security NEXT
Linuxの「sudo」コマンドに脆弱性 - PC Watch
Big Sky :: sudo の特権昇格バグはなぜ起こったのか
GitHubが脆弱性ワークフローを改善してCVE採番機関に

JVN

Japan Vulnerability Notes
JVN iPedia - 脆弱性対策情報データベース
MyJVN API
MyJVN APIを利用した脆弱性情報収集 | Developers.IO
10個のツールで学ぶ、備える!情報セキュリティの脅威と対策:「JVN iPedia」で公開の脆弱性対策情報を取得するWeb APIを活用せよ - ITmedia エンタープライズ
連絡不能開発者一覧

IPA

NOKUBI Takatsugu野首貴嗣さんのツイート: "IPAの脆弱性ハンドリング、始まった初期は割と普通に2週間程度で自分は処理されていたので、だんだんおかしくなっていったんだと思う。まあ日本ではよく見る光景"
ストラトさんのツイート: "「脆弱性を見つけたらまずIPAに通報すべき」とかいう脳内お花畑が一定数いる。彼らはIPAの通報手順がひどく煩雑で時代遅れで役人根性丸出しなクソっぷりであることを知っているのだろうか? もう通報前にグッタリするよこれ。 https://t.co/sXtzDH4tFp https://t.co/mOW0NHyD5K"
AoiMoeさんのツイート: "そういえば、大昔IPAからお金もらってCodeBlogってのをやってて、そこでXサーバのコードを読んでたのだが、脆弱性見つけたのでIPAに報告したら、それがacceptされたの1年後でしたね"

Qiita

セキュリティ脆弱性情報を最速でチーム共有する方法 - Qiita
脆弱性情報の収集→slack通知→backlog登録を自動化してみた - Qiita
あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita

Twitter

なかのん&マジックさんのツイート: "Mozillaでは、悪用が容易かもしれない場合はQAとかに必要な期間を考慮して(多分)、ギリギリまでツリーへの投入を待たされる。 / Microsoft、Google Chromeのパッチ提供方針を批判 | スラド セキュリティ https://t.co/qPvvKCevbu"
なかのん&マジックさんのツイート: "前提条件が複雑な場合(特定の事をやってるアドオンがインストールされてるとか)や、ユーザに特定の操作を強いる場合は即時投入されるけど。"
ひらナツさん@散文家さんのツイート: "Reactive とProactiveがある。CVEとかを調べたり、ログをとったりAuditしたりするのがReactive。Proactiveな方は強制アクセス制御などをつかって閉じ込める。SELinuxを使うのがいい(Montavista方式か?)#linuxcon"
Fadisさんのツイート: "CVSS v3からAttack Vectorに「攻撃者が物理的にアクセスできる必要がある」タイプの脆弱性が表現できるようになってる。これで「攻撃者が物理的にシステムにアクセスできる場合にハンマーで可用性を損ねる事ができる脆弱性」とかも正しく分類する事ができるな"
suzakiさんのツイート: "この一覧は有用!脆弱性が発見された順に並び、それらが実際に使われたか分かって有益な情報になっています。 Vulnerabilities and Attacks https://t.co/6Anrbzkitc Heartbleed、Shellshockが実際に使われていて、Rowhammer、VENOM、Meltdown、Spectre、Bleichenbacher's CATは使われていない。… https://t.co/HW4D6WtpVn"
hannob/vulns: Named vulnerabilities and their practical impact

オープンソースコンポーネントの積極的管理による大幅な改善の実現をSonatypeが報告
第44回 2018年3月~修正できない脆弱性対応,繰り返される歴史,そして「あたりまえ」を実践すること:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
ほぼ全ての最新ノートPCに脆弱性、コールドブート攻撃で情報盗まれるおそれ - CNET Japan
エフセキュア、スリープ状態のPCの脆弱性に警鐘。盗まれたノートから情報を抜き出される可能性 - PC Watch
Broadcom Wi-Fiの脆弱性「Broadpwn」詳細。ワームの悪夢再び ~Wi-Fiをオンにしているだけで突かれる可能性、Galaxy/Nexus/iPhoneなどが標的に - PC Watch
今度はMarvellのWi-Fiに脆弱性、オンにしているだけで攻撃可能 - PC Watch

ディレクトリトラバーサル - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「セキュリティ目的のchrootは意味がない」 古い記事だけど知らなかった。 chrootした後、namei が mount point 跨りの ".." を特別扱いするのに似た処理はしてくれないね。 https://t.co/KXuoq7WImB"
仙石浩明の日記: chroot されたディレクトリから脱出してみる
Trusted Execution Environmentの実装とそれを支える技術

オーバーコミット

プラットフォーム特有の覚書
Redisで発生したメモリ不足エラーの調査メモ | ソシャゲの作り方
Linux プログラムのメモリ消費量を測る - Qiita
Memory Overcommit | Siguniang's Blog
IBM Knowledge Center - Solaris でのプロセス・フォークの失敗のために DataStage パラレル・ジョブを開始できない
E.2.7 オーバーコミット
mallocの落とし穴 - 組み込みLinuxでのmemory overcommit - 職業としてのプログラミング
Linuxにおけるメモリ管理機構の利用に関する覚え書き · うさぎ小屋
Bug #8711: 最近NoMemoryErrorが多い - Ruby trunk - Ruby Issue Tracking System

実行ファイル先頭で自分自身をスワップ禁止

とみながたけひろさんはTwitterを使っています 「そういえば少し前にハマった案件 ホストでmakeしてターゲットで起動 ターゲットで自動テストを実行 テスト中にmake cleanして再度make するとテスト終了せずセグフォするっていう(最後のステップがなければ問題は起きない)」 / Twitter
とみながたけひろさんはTwitterを使っています 「ホストとターゲットはNFSでファイル共有してて、ビルド・実行するのはそのNFS上のバイナリ デバッガで追っても特に普段から通るパスだし命令とレジスタ値とかからも正常に動きそうで、なんでセグフォするのかわからない」 / Twitter
とみながたけひろさんはTwitterを使っています 「あとテストケースではない普通の動作させてるときでも、該当部分は同じように通ってて、同じ命令を同じレジスタ値で実行してる。そして全く問題無い」 / Twitter
とみながたけひろさんはTwitterを使っています 「わからん…となりながらデバッグコード足したりしながらデバッガ上でうごかしてると、なんとロードストア命令とかでなくてもセグフォするってのにきづいた」 / Twitter
とみながたけひろさんはTwitterを使っています 「で、結論。テストケース動かすと限界までメモリ使うので実行ファイルの一部がスワップアウトされ、OSは該当部分を実行されたときにスワップインしようとする しかしホストでリビルドしてるため該当ファイルは消えておりスワップインは失敗 命令をアクセスできなくてセグフォ てことだった」 / Twitter
とみながたけひろさんはTwitterを使っています 「まあある意味実行ファイルを動いてる間に書き換えたらあかん、というオチでした NFSのロックとかってどうなってたっけとか調べようと思ったけど、そうしたところで実行中にリビルドできんとかになるとダルいしな、となり、手抜きして実行ファイル先頭で自分自身をスワップ禁止にするので対処した」 / Twitter
とみながたけひろさんはTwitterを使っています 「ところでARM linux上のgdb他で、デバッグ対象が起こしたセグフォがprefetch faultなのがdata abortなのか、みたいな詳細を取得するにはどうしたらいいのかわからんかった。ょゎぃ…だれかおしえて…」 / Twitter

Linux

その他

Linuxカーネル4.14リリース、x86_64環境でのメモリ上限が拡大される | OSDN Magazine
【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
kslr linux - Google 検索
A fork() in the road
A fork() in the road を読んで.md

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

memory cgroupとpageのLRUめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux4.14.12(x86_64)のPage Global Directoryの設定を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
ページングでメモリを割り当てる処理の動きを確認できるものを作ってみた - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
EPTの設定をbhyveで調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

Generalized address-space isolation

FadisさんはTwitterを使っています 「Linuxカーネルに提案されているGeneralized address-space isolationについて。LinuxはMeltdown対策でユーザ空間プロセスの実行中にカーネルメモリをマップしないKPTIを備えるが、これはカーネル空間で投機的実行で読めないメモリを読む他のSpectre variantには効果がない https://t.co/K5CmqIwIP5」 / Twitter
FadisさんはTwitterを使っています 「他のSpectre variantに対しては性能と守備範囲が異なる幾つかの緩和策が提案、実装されているが、Generalized address-space isolationはそうした緩和策のニューフェイス。KPTIのようなアドレス空間の分離をカーネルの中でも行う事で投機的実行がカーネルの外に漏れてはいけない情報に触れるのを防ぐ」 / Twitter
FadisさんはTwitterを使っています 「この手法ではカーネルメモリのデータをsensitive, locally non-sensitive, globally non-sensitiveに分類し、sensitiveや他所のプロセスのlocally non-sensitiveをマップしない状態でカーネルプロセスを実行する。マップされていないメモリを触ってCPU例外が飛んだらそのプロセスに全領域を公開する」 / Twitter
FadisさんはTwitterを使っています 「投機的実行はCPU例外のハンドリングを超えて実行されない為、例外をトリガーにメモリを公開する事でSpectre攻撃によるアクセスは防ぎながら、本来の用途でアクセスしなければならないデータには「分類がなされていない(=sensitive)」状態でも問題なくアクセスできる。適切な分類は性能改善につながる」 / Twitter

cgroup

Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する - hibomaの日記
第41回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[5]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第42回 Linuxカーネルのケーパビリティ[1]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第43回 Linuxカーネルのケーパビリティ[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第44回 Linuxカーネルのケーパビリティ[3]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
2020年4月7日 Linux 5.7の新機能 ―親プロセスとは異なるcgroupへのプロセス生成が可能に:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Systemd 247からsystemd-oomdが追加されるらしい。systemd-oomdは指定されたcgroups内のプロセスのメモリの使用状況を監視し、システムのメモリが逼迫したらカーネルより先にcgroups内のプロセスを潰す。カーネルのoomkillerがあまりにも公平に何でも潰す問題を解決する https://t.co/OHH5VJmTl7」 / Twitter
systemd-oomd Looks Like It Will Come Together For systemd 247 - Phoronix
第45回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[6]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第48回 cgroup v2から使うコントローラとmiscコントローラ:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
Rustでもunshare(というか、Linux Namespaceの分離)したい! - ローファイ日記
eBPF的な意味で使えるcgroup idを取る方法 - ローファイ日記
cgroup v2の、BPFによるデバイスアクセス制御を試す - ローファイ日記
第49回 cgroup v2のリソース分配の方法とインターフェースファイルの操作:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社

DAMON

FadisさんはTwitterを使っています 「AmazonがLinuxカーネルにDAMONを利用した積極的なページアウトを実装している話。DAMONはLinuxカーネル内でページの利用状況をモニタリングする物で、新しいパッチはDAMONが集めた情報に基づいて長期間触られていないページを、メモリが足りていてもページアウトさせる https://t.co/Yddgzb6eCb」 / Twitter
Amazon Working On New Proactive Memory Reclamation For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「Linuxの標準的なメモリ管理はページに割り当てられるメモリがなくなった時点でページアウトさせるページを選び始めるが、これは大きなレイテンシのスパイクを生むため、詰まると更に惨事になるようなサーバではしばしば「暇なときに先読みでページアウト」させたい、という需要がある」 / Twitter
FadisさんはTwitterを使っています 「DAMONは今回の変更と同じくAmazonがLinuxカーネルに入れたがっている物で、メモリが割り当てられたページを稀にページフォルトさせる事でページの大雑把な利用状況を計測する。DAMONを使うことでプロセスのメモリのうちアクセスが多い部分とそうでない部分を見つける事ができる」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「カーネル 5.15 でマージされた DAMON だけど、単にメモリアクセス情報を取得してあとはアプリに丸投げするのではなく、直近のアクセス局所性に基づいてカーネル内で自動的に madvise 打ち込むこともできるので、一歩踏み込んだ感じがする。thp の利便性が上がるが嬉しい。 https://t.co/HjjLpl4t8l」 / Twitter
damo/USAGE.md at next · awslabs/damo

SysRq

汎用kumAGIさんのツイート: "windowsが辛い理由、自分がそもそもLinuxの上で走る物を最小の労力で作りたかったからLinuxに引っ越したわけだから、逆の立場ならWindowsに引っ越したと思う。でも何かプロセスを強制終了したくなった時にAlt+Ctrl+Delですら不可能な事がザラにある一方Linuxはkill -9がまず効くのがいい。"
リベラル.3goさんのツイート: "LinuxでもSysRqが効かないことなんてしょっちゅうでしょ"
実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
システムリクエスト - Wikipedia
マジックSysRqキー - Wikipedia
SysRqキー ‐ 通信用語の基礎知識
第5回「 SysRq ノススメ」 | NTTデータ先端技術株式会社
magic SysRq keyについて | Miracle Linux Support
SysRqキー(System Request key)とは - IT用語辞典
マジック SysRq キー
一体何に使うのかわからないキーボードのキートップ10 - GIGAZINE
sysrqキーでlinuxを再起動させたりcrashさせたり - うまいぼうぶろぐ

Stack Guard Page迂回

[重要] Linux kernel、glibc および Apache httpd サーバーの脆弱性対応について | Movable Type ニュース
Stack Guard Page迂回の脆弱性 : アジャイル株式会社
【注意喚起】glibcにStack Guard Page迂回の脆弱性について
【セキュリティ ニュース】Linuxにroot権限を取得される脆弱性「Stack Clash」(1ページ目 / 全1ページ):Security NEXT
複数のパッケージに影響するスタックガードページの回避 - Red Hat Customer Portal

memfd_secret

FadisさんはTwitterを使っています 「Linuxでmemfd_createを使って他から見えないメモリを作る機能がバニラカーネルに入りたがっている話。この機能を使ってプロセスに割り当てられたメモリは他のプロセスからも、カーネルからも読み書きできなくなる。OpenSSLのsecure heapをよりsecureにするような用途で用いる https://t.co/kJuWlQDnmX」 / Twitter
Secret Memory Areas For Linux Might Finally Be Ready With memfd_secret - Phoronix
FadisさんはTwitterを使っています 「Linuxのプロセスのアドレス空間はプロセス毎に分離されているが、適切な権限を持ったプロセスが別のプロセスを覗き見する方法が複数存在する。故に攻撃者が強い権限を持っていたりカーネル空間で暴れている場合簡単に他所のプロセスが抱える鍵等を覗けてしまう。新機能はこうした状況への耐性を高める」 / Twitter
FadisさんはTwitterを使っています 「よく読んだら、memfd_createにフラグつける方式じゃなくて、memfd_secretなる新しいシステムコールが生える方式になってる…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い…ただコードを読んでも、何故これでカーネルを覗ける強いプロセスからも守られるのか謎。 (仮想ページ範囲外となっている direct map が肝と…ただ root権限でioremapするデバドラ入れて全物理メモリ読むとかも防止できるのかな?) https://t.co/5iI1x52o8R https://t.co/o6W7w2lyUJ」 / Twitter
tools/testing/selftests/vm/memfd_secret.c - pub/scm/linux/kernel/git/next/linux-next - Git at Google

KSM

第8章 KSM
7.3. KSM (Kernel Same-page Merging)
IBM Knowledge Center - Kernel Same-page Merge (KSM) を有効にする
mrwk update: KVMで複数VMを起動してVM間の相互作用を減らしたいときに考えること

Zswap

Zswap - ArchWiki
【Linux】zswap は本当に速いのか - 解き放たれしソフトウェア
本の虫: Zswap: Linuxカーネルに圧縮付き仮想swap機能のパッチが提出される
Linux カーネル 3.11 で性能と効率を強化

hugepage

Linux の hugepage の開発動向
FadisさんはTwitterを使っています 「hugepage: メモリは大容量になったのに仮想アドレスの変換単位であるページが小さすぎてページの情報が巨大になるし特定のアドレスに対応するページの情報を探すのに時間がかかりすぎる→ページをでっかくしようぜ! #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「hugetlb: 古くからLinuxにあるhugepageの対応。専用のメモリプールを使う(=アプリケーションが明示的に使う必要がある) thp: 普通のメモリ確保の裏で透過的にhugepageが使われる。アプリケーションが明示的に対応する必要は無いが動きが読みづらい為DB屋からの評判は良くない #kernelvm」 / Twitter
suzakiさんはTwitterを使っています 「#kernelvm 昔、THP:Transparent Huge Pagesの性能問題を再現できるDockerを作りました。 最近のカーネルには試していないけど、動くのかな。」 / Twitter
suzakiさんはTwitterを使っています 「@satoru_takeuchi @charsiuCat @rioriost メモがあった。 Dockerを使ったHP:Transparent Huge Pagesの問題の再現法。 $ docker run -it suzaki/rust-parallel bash # export PATH=$PATH:/root/.cargo/bin # time seq 1 10000 | parallel echo &gt; /dev/null 昔のログではTHPがneverの場合は3秒程度、alwaysは9秒程度とあります。」 / Twitter
FadisさんはTwitterを使っています 「Hugepage、swapが古典的なページサイズ単位で書き込むからswapに書く瞬間にエクストリームページ分割作業が発生する話があったなぁ #kernelvm」 / Twitter
suzakiさんはTwitterを使っています 「@nhoriguchi ご指摘ありがとうございます 正しくは echo "always" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled 結果は alwaysの場合 time seq 1 10000 | parallel echo &gt; /dev/null real 0m31.957s neverの場合 real 0m1.687s kernel 5.6でTHP:Transparent Huge Pagesが30倍影響しました」 / Twitter

collapse

FadisさんはTwitterを使っています 「Linuxでユーザ空間プロセスがページのcollapseをカーネルに要求できるようにする改良の話。これによって透過的huge pageの使いやすさを保ったまま、ユーザ空間プロセスがhuge pageを使うべき適切なメモリの範囲を指定してhuge pageの恩恵をより効果的に受けられるようになる https://t.co/BrQcgfwxMk」 / Twitter
FadisさんはTwitterを使っています 「x86やarm等では伝統的に4KiBのメモリを1ページとして物理アドレスと仮想アドレスの変換をページ単位で行うが、4KiBはイマドキのホストのメモリのサイズに対してあまりにも小さく、アドレスの変換表のエントリが増えすぎることによる(主にキャッシュミスの増加による)性能低下が問題になっていた」 / Twitter
FadisさんはTwitterを使っています 「そこで新しめのCPUではしばしば4KiBより大きなメモリを1ページとするhuge pageが用意されている。Linuxカーネルはhuge pageをサポートしているが、ユーザ空間プロセスがhuge pageのメモリを使うには専用の手順でメモリを確保する必要があり、既存のソフトウェアが簡単に恩恵を受けられる物ではなかった」 / Twitter
FadisさんはTwitterを使っています 「この状態ではhuge pageの利用が進まないのでLinuxカーネルには透過的huge pageという機能がある。これが有効になっている場合カーネルはプロセスのメモリの利用状況を見てhuge pageを使うと性能向上に寄与しそうな部分を探し、複数の4KiBページをhuge pageに統合する。この操作はcollapseと呼ばれる」 / Twitter
FadisさんはTwitterを使っています 「huge pageが性能向上に寄与するかはそのページの使い方に依存する。しかしカーネルはページの用途の詳細を知らないので、透過的huge pageはしばしばアプリケーションの開発者が期待するのと違うページをcollapseする。またhuge pageに適したメモリを探す処理自体のオーバーヘッドも無視できない」 / Twitter
FadisさんはTwitterを使っています 「一方ユーザ空間側ではどの部分がhuge pageで性能が出るアクセスパターンになるか適切に予想がつく場合が多い。そこでmadvise(2)を使ってユーザ空間プロセスからカーネルに「ここをcollapseするのめっちゃオススメ」を通知できるようにして、透過的huge pageの効きを良くしよう、という案が出てきた」 / Twitter

MGLRU

FadisさんはTwitterを使っています 「MGLRUをLinuxに入れる為の努力が続いている話。LRUは「使われていないページはどれか」を判断する物で、メモリが足りない時にどこからメモリを取り上げるか決めるのに使われる。MGLRUは既存のLRUより高速かつ適切なページの選択をする為にGoogleが提案している新しい実装 https://t.co/3VEO7x8o5e」 / Twitter
MGLRU Continues To Look Very Promising For Linux Kernel Performance - Phoronix
FadisさんはTwitterを使っています 「従来のLRUはページを最近アクセスがあったactiveなページと、アクセスがなかったinactiveなページに分類し、メモリが足りない時はinactiveを優先的に調べることでメモリを剥がしても影響が小さそうなページを見つける」 / Twitter
FadisさんはTwitterを使っています 「ホストに積まれるメモリが増えて富豪的にメモリが使われるようになるとinactiveなページは膨大になり、inactiveの中から特に影響が小さそうなページを線形に舐めて探す処理が許容できないくらい遅い処理になり始めた」 / Twitter
FadisさんはTwitterを使っています 「MGLRUは世代番号が振られた複数のコンテナにページを分類する。アクセスが確認されたページは「現在の世代」のコンテナに移動され、「現在の世代」は時々インクリメントする。これによってページはどのくらいの期間アクセスされていないかで多段階で分類される」 / Twitter
FadisさんはTwitterを使っています 「現存する最も世代番号の小さいコンテナからページを探せば、従来のLRUより少ない要素の線形探索で、メモリを剥がした場合の影響が小さそうなメモリを選べる。最も世代番号の小さいコンテナのページだけでは足りない場合は、次に世代番号が小さいコンテナを順に漁っていく」 / Twitter
FadisさんはTwitterを使っています 「この手法は提案しているGoogleからメモリの回収が必要になるような状況で顕著な性能向上が見られるというベンチマーク結果が出ている。Linus氏は手法自体に異論はないとしているが、同時にKconfigのオプションなどの付随する変更の作法に問題があり、これが修正されないと取り込めないとしている」 / Twitter

Wikipedia

Security-Enhanced Linux - Wikipedia
TOMOYO Linux - Wikipedia
AppArmor - Wikipedia
Linux Security Modules - Wikipedia
grsecurity - Wikipedia
PaX - Wikipedia
Exec Shield - Wikipedia

posix_spawn

Kazuho Okuさんのツイート: "posix_spawn、linuxだとエラー処理がまともにできなくて自分で再実装するハメになるからオススメできない https://t.co/H4uiG1BIXH"
ケケモコソカメニハさんのツイート: "Linuxですとposix_spawnが失敗したかどうかはwaitpidしてみるまでわからないのに対し、BSDが即座にerrnoを返してくれるのはなぜでしょうどちらもvfork/execのはず、と思ったら、volatile変数経由してました https://t.co/shzoLYQ4Ek"
ケケモコソカメニハさんのツイート: "https://t.co/piAAKLKVv1 いやしかしglibcでもパイプを使ってエラーコードを返してますね?手元ですとwaitpidするまでわからないんですが…… https://t.co/FMbT52rAo5 どうやら2017年06月に改善されたらしい"
ケケモコソカメニハさんのツイート: "手元のUbuntuはglibcがまだ2.23ですのでこの変更が取り込まれていないようです"
ケケモコソカメニハさんのツイート: "というわけでglibc2.26以降ですとちゃんとerrno返してくれるようですので、それまでどうするか……"
ケケモコソカメニハさんのツイート: "https://t.co/pEWCQ6Nqb4 これがglibc 2.26から不要になるようです"

fork

mumumuさんはTwitterを使っています 「A fork() in the road [HotOS '19] fork()が現代のOSにとっていかに有害か(代わりのものを使おうね,そう単純な話ではないけど)をこれでもかと論じている.著者らはfork()に親を殺されたのか?めっちゃ面白い. 日本語での解説をみつけた:https://t.co/0LG1GMPo0o https://t.co/0yplLA93f0」 / Twitter
A fork() in the road を読んで.md
A fork() in the road - fork-hotos19.pdf
UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この fork disは、概ね正しく MSR所属は関係無さそう。 (30年近く前でも、自プロセス肥大後のsystem(3)はforkがメモリ不足でコケる可能性あるため、起動直後にsystem(3)依頼用子プロセス作る予防線張ったっけ。今どきはover commitあるとはいえ)」 / Twitter

バッファキャッシュ

Kazuho OkuさんはTwitterを使っています 「えっ違うんだ見ないと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当初のUNIX「バッファキャッシュのみ」→SVR4で「mmap/ページキャッシュ導入だが、メタデータのみ旧式バッファキャッシュのまま」みたいな、歴史的経緯の話かと思ったら、ちょっと違っていた。 https://t.co/8lNIxa9UQt」 / Twitter
私的メモ(2004年02月版)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味ある方は「UNIXカーネルの魔法」の下記が参考になります。また「最前線UNIXのカーネル」にも記述あり。 ただ、どちらも古い本なので絶版かも…? (画像の歪みが大きかったので、gimpで補正して再ポスト) https://t.co/kDdn5ltKsa」 / Twitter

blog

あなたの知らない time(1) の世界 - kuenishi's blog
Kernel memory randomization and trampoline page tables – Medium
Kazuho's Weblog: mmapを使ってファイルベースの巨大なバッファを確保する話
ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
実行中プログラムのイメージを得る - @tmtms のメモ
The mysterious case of the Linux Page Table Isolation patches | Firmware Security
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する - hibomaの日記
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2) - hibomaの日記
per cpu data シンボルのアドレス - 睡分不足
/proc/pid/pagemapの話 - 睡分不足
仮想アドレスから物理アドレスを求める - 睡分不足
x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
Life with open mind: x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法
CoWはコウ可視化するんやで (aka. Rubyなどがforkした後のCoWを可視化してみる) - ローファイ日記

スライド

FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
cgroup v2とgVisor - Speaker Deck

技術評論社

2016年12月21日 スワップパーティションはもういらない ―Ubuntu,Zapusでは"Swapfiles"に:Linux Daily Topics|gihyo.jp … 技術評論社
2017年11月14日 Linux 4.14がリリース,仮想メモリの上限が128PiBに:Linux Daily Topics|gihyo.jp … 技術評論社
2019年10月2日 Linux 5.4-rc1がリリース,議論となった「ロックダウン」機能も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2020年1月8日 Fedora 32がEarlyOOMをデフォルト実装へ,メモリ不足によるフリーズを回避:Linux Daily Topics|gihyo.jp … 技術評論社
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
2020年5月1日 NVIDIA Jetson,GNOME 3.36,EarlyOOM ―Fedora 32が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社
2021年11月15日 Linux 5.16 rc-1がリリース,メモリ管理の新機構「folio」も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2022年1月6日 メモリ管理機能の「CleanCache」,Linuxメインラインから削除へ:Linux Daily Topics|gihyo.jp … 技術評論社

Qiita

ASLRとKASLRの概要 - Qiita
open+fork+exitで無限ループすることがあるという話 - Qiita
いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

Twitter

histric-1

yoh2さんのツイート: "直接のメモリ確保じゃないけど、メモリ不足により fork() 失敗という現象を踏んだことがある。あれは悩んだけど面白かった。 環境内の半分以上のメモリを確保済のプロセスをfork()しようとするとたとえCoWが有効でもダメ出しくらうという。 https://t.co/Wga3xBQ9Qm"
linux - 大量のメモリを使用するプログラムからコマンドを実行する方法 - スタック・オーバーフロー
Fadisさんのツイート: "x86_64のLinuxのユーザ空間、実行したバイナリは先頭の方に置かれていて、ヒープを猛烈に使わない限りそれ以外の多くの物はユーザ空間のアドレスの後ろの方に連なってるから、ライブラリではなく実行可能バイナリ本体を実行している時、そのスタックの境界はeasy 目grepableであるという知見を得た"
Fadisさんのツイート: "試しにDirty COW(CVE-2016-5195)の対策が入る前のカーネル引っ張ってきてexploit動かしてみたら本当に一般ユーザでrootのファイルの書き換えが出来てウヒョーってなってる… "
Fadisさんのツイート: "書き込み権限の無いファイルをMAP_PRIVATEでmmapして、MADV_DONTNEEDで「しばらく触らないから実メモリから剥がして良い」しながらこの領域に書き込みを行うと、本来変更内容はCoWでメモリに置かれてオリジナルを書き換えないはずが、オリジナルの方に書きにいってしまう不具合らしい"
Fadisさんのツイート: "あ、これずっと昔に修正がカーネルに入っている不具合なんできちんとアップデートしてる各位は何も恐る必要は無いやつでござい。(アップデートしないで放置しているとどういう状態になるか、という話をする資料作るのに引っ張ってきた)"
LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
shinichiro hamajiさんのツイート: "#tcfm linux kernelがenvpより深いスタックにauxvというkey/valueを送ってくれてて、その中のAT_RANDOMの2つ目が任意アドレス書き換えが即IP奪取にならないmitigationとして使われてるというトリビア https://t.co/1DcRYpG7p0 ちなみに1つ目はstack protector https://t.co/Ingenm5bbw"
test/mangled_syms.c at master · shinh/test
Fadisさんのツイート: "CONFIG_MULTIUSER: Linuxカーネルでマルチユーザをサポートするコンフィグ。普通は有効になっていて、切るとあらゆるプロセスはuid0(root)で実行されるようになり、UIDとGIDに関する全てのシステムコールはカーネルから削除されて使用できなくなる… https://t.co/PCcQdwSdcb"
まさみさんは語りたいさんのツイート: "そもそもLinuxでも高性能出すならできるだけアプリには仮想ではないナマのメモリを与えるのが良さげだけど。"
まさみさんは語りたいさんのツイート: "自動検出してくれないかなーという気にもなってる。… "
Kazuo Moriwakaさんのツイート: "systemdは競合するサービスをConflict=で明示的に定義できるからntpd動いてるのにchrony動かそうとすると実際に競合する前に検出して失敗してくれるよ"
まさみさんは語りたいさんのツイート: "それMINCSでもできるよ(ステマ… "
Kazuo Moriwakaさんのツイート: "「linuxはcgroupでリソース制限かけてメモリ+swapの上限とか設定できる」それどうやって使うんだろうと思った人、systemdならサービス毎にcgroup作ってるから設定1行書くだけでできるよ"
Fadisさんのツイート: "主記憶に対してハードディスクが遅くなりすぎて乗ったら負けみたいになってたlinuxのswapが、フラッシュメモリなストレージの目覚ましい性能向上によって実用的になってきて再び改良の対象になっているっぽい"
Fadisさんのツイート: "fork bomb、Linuxならあるプロセスの下に作れる子プロセスの数をcgroupsで絞れるから、そういうものが投げつけられるコーディングのsandboxは絞っておくのがオススメ"
suzakiさんのツイート: "NDSS攻撃2つ目。Linuxカーネル内で初期化せずに使われる変数への攻撃。Syscallを使い、スタックの固定領域にスプレー攻撃を行うDeterministic Stack Sprayingの発表。"
suzakiさんのツイート: "NDSS攻撃3つ目。コード再利用攻撃。Code Pointerを直接ではなく、トランポリンを使うことでコード領域に直接ジャンプしないAddress-Oblivious Code Reuse (AOCR)攻撃。"
Fadisさんのツイート: "Linuxに他所のプロセスのページテーブルの一部をコピーして、任意のアドレスの範囲をゼロコピーで共有できるようにするシステムコール process_vm_mmap を追加しようという提案がなされているが、ワイルド過ぎる機能にいろんな問題が出てきて揉めてる話(リンク先有料記事) https://t.co/ePSbzGAlc2"
DrumatoさんはTwitterを使っています: 「insmodのリンク対象はディスクイメージではなくメモリイメージ,なるほどな. ディスクイメージに対して使用中カーネルのシンボルをリンクしてしまったら, それ以降再配置可能なオブジェクトファイルでなくなってしまう(厳密にはそうでもないんだけど)から, 常に使用中カーネルに追従するようにするのか.」 / Twitter
FadisさんはTwitterを使っています 「systemdに新しいデーモンsystemd-oomdが提案されている。systemd-oomdはFacebookのoomdをsystemdに統合したようなもので、ホストのメモリが不足しているときにカーネルのOOM Killerがプロセスを止める前によりconfigurableな方法でプロセスを止める役割を果たす https://t.co/h5kYgkCd02」 / Twitter
Systemd-OOMD Continues Coming Together For Better Linux Out-Of-Memory Handling - Phoronix
FadisさんはTwitterを使っています 「Linuxのページ割り当てを速くするPG_zeroが提案されている。PG_zeroはページテーブルのフラグで、ページが既に0クリアされている事を表す。Linuxはページ割り当て時にページを0クリアするが、これを暇な時に行っておきPG_zeroを立てる事でページ割り当て時の0クリアを省略する https://t.co/bZSGQGqOcY」 / Twitter
PG_Zero: Faster Page Allocation Proposed For Linux By Zeroing Out Pages Ahead Of Time - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linux 5.8にコンテキストスイッチのたびにL1をフラッシュするオプショナルなセキュリティ機能が入った。将来のためという文言から陰謀論者はすでに脆弱性が存在しているのではないかと噂している。 https://t.co/Fgo7L9zk6H」 / Twitter
Linux Hardware Reviews, Open-Source Benchmarks & Linux Performance - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linuxで小さなファイルを読むのに最適化したreadfile syscallが提案されている。中身はファイルをオープンしてバッファに読んでクローズするだけ。一度にカーネルスペースで行うので効率的だそうだ。いまさら? https://t.co/fwWTPFliKx」 / Twitter
Linux Work Culminating On A "READFILE" Syscall For Reading Small Files Efficiently - Phoronix

FadisさんはTwitterを使っています 「L1 cacheヒットを検知するサイドチャネル攻撃に備えてLinuxにコンテキストスイッチ毎にL1 cacheを消す機能(任意)を実装しようという提案にLinus氏が怒り爆発している。これが有効かは状況に依るが性能に影響を与えるのは明らかで、そんな判断をユーザに委ねるなという事らしい https://t.co/l1AZKG7zR4」 / Twitter
Torvalds Blasts "Beyond Stupid" Flushing L1d On Context Switches - Reverts Code For Now - Phoronix
suzakiさんはTwitterを使っています 「カーネルからプロセスのメモリを覗き見させないsecretmemfdシステムコールの提案は面白いが、暗号化はしないようで仮想化によるMemory Deduplication覗き見などは防げないように読める。 Linux Secret Memory "secretmemfd" System Call Remains Under Review https://t.co/gsW7llFUbk」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールsecretmemfdが生えるらしい。secretmemfdで作ったfdでmmapするとその領域はsecretになる。secretなメモリはカーネルのdirect mappingから見えなくなり、カーネルを介して他所のプロセスのメモリを覗き見しようとする攻撃が難しくなる。 https://t.co/PyMjQknf2L」 / Twitter
Linux Secret Memory "secretmemfd" System Call Remains Under Review - Phoronix
Shinji KonoさんはTwitterを使っています 「Mojave で12GB配列をPerlで確保すると、11GBは圧縮仮想記憶に入れられてしまう。これを調べる課題にすると良いな。Linux は最近は圧縮仮想記憶持ってるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zswap っていうのか。 https://t.co/EetCWPHkHa」 / Twitter
Zswap - Wikipedia
FadisさんはTwitterを使っています 「Linuxに新しいsyscall trusted_forを追加する提案。実行可能バイナリを置かない場所に実行権限付きの物を置けなくする事は攻撃者の選択肢を狭めるが、スクリプト言語の場合読めれば実行できる。これを防ぐためにインタプリタが「実行する為に読むが良いか」を確認する為の物 https://t.co/XaCLGcjgFU」 / Twitter
FadisさんはTwitterを使っています 「Linuxではメモリ4KiBのページ毎にそのページの情報を持つ64バイトのpage構造体が作られる。この構造体はアドレスから高速に引けるように配列になっている為、HugePageを使う場合であっても4KiBページ換算での個数分のpage構造体が作られる。先頭のもの以外は先頭の位置が書かれたものが並ぶ」 / Twitter
FadisさんはTwitterを使っています 「この配列は疎なメモリに効率よく対応する為にそれ自体がページングで必要な部分だけに物理メモリを割り当てている。そこで、HugePageで生じる先頭の位置が64個並んでいるだけのページが同じ物理アドレスを指すようにする事で必要なメモリを抑えよう、という提案がなされている https://t.co/kfmOBR2ouJ」 / Twitter
FadisさんはTwitterを使っています 「Linuxの仮想メモリは赤黒木で管理されているが、赤黒木のバランスは複数の要素を一度に操作する為ロックが必須でカーネルのスケーラビリティを阻害する要因になっていた。そこでRCUで更新できるB-treeベースの新しい木構造MapleTreeで管理しよう、という提案がなされている https://t.co/wJzzTCNBud」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「page folio で pgbench が 80% 改善とか言っているけど、仕組みが知りたいな。これだけ差が出るならなんか明確な説明がつけられるはずなんだけどな。」 / Twitter
PhoronixさんはTwitterを使っています 「Been running benchmarks of the Linux "folios" patches and will have out some interesting data tomorrow... #WeWantFolios」 / Twitter
PhoronixさんはTwitterを使っています 「Memory #Folios Updated A 14th Time For Improving #Linux Memory Management https://t.co/nOgwCVOMWS」 / Twitter
Memory Folios Updated A 14th Time For Improving Linux Memory Management - Phoronix
FadisさんはTwitterを使っています 「IBMがLinuxの新しい名前空間「CPU名前空間」を提案している話。親プロセスからCPU名前空間を分離した子プロセスからは/procや/sys以下のCPUの情報を漁った時に、その名前空間の中で見えて良いCPUだけが見えるようになる。CPUのidは見えるCPUで連続になるように振り直される https://t.co/a3CACtn8mN」 / Twitter
IBM Proposing A CPU Namespace For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「Linuxではcpuset cgroupsを使ってあるグループのプロセスが使って良いCPUを制限できる。しかしこれに対応する名前空間が無い為、制限されていても/procや/sysには全てのCPUが見えており、この情報を元にスレッドプールのスレッド数を決定するようなソフトウェアがリソースを確保し過ぎる問題があった」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「mempolicy 関連のシステムコールがまた増える (home node を指定するやつ) そうだが、ゆくゆくは BPF で制御するようになっていくのではとあって、夢が広がる。」 / Twitter
LWN.netさんはTwitterを使っています 「[$] Some upcoming memory-management patches https://t.co/DiTcjXLUzJ」 / Twitter
Subscription required [LWN.net]

ytakanoさんはTwitterを使っています 「Slab Allocatorは、ページのアドレスからSlabへの写像を別に持っておけば、Slabの中にデータを埋め込まなくてもいいな。前に実装したときは、データを埋め込んでいたわ。」 / Twitter
Linuxが新しい多世代LRUページ再利用ポリシーを採用
FadisさんはTwitterを使っています 「記事ではTHREAD_INFO_IN_TASK(従来スタックの末尾に置かれていたスレッドの情報をより壊しにくい場所に移動)やVMAP_STACK(スタックの端に溢れを検知するガードページを追加)を32bit ARMでも使えるようにした事が述べられている」 / Twitter

MS

IT談話館

Windows 8/10とJobオブジェクト(基礎)
Job Objects - Windows applications | Microsoft Docs
Sandbox
Windows 8/10のJobオブジェクト
Windows 7/8/10、セキュリティー、Token、SD
WinDbgとCPU
WinDbgとWindowsセキュリティー(旧)
WinDbgとWindowsセキュリティー
SetProcessMitigationPolicy function (processthreadsapi.h) | Microsoft Docs
UpdateProcThreadAttribute function (processthreadsapi.h) | Microsoft Docs
WinDbgとWindowsカーネルアーキテクチャー
WinDbg、WMI、システムロガー

NyaRuRuが地球にいたころ

必要最小ワーキングセット - NyaRuRuが地球にいたころ
ウィンドウ最小化時のワーキングセット縮小 : Vista 編 - NyaRuRuが地球にいたころ
Windows のヒープ管理 - Firefox3 のメモリ使用量 (2) - NyaRuRuが地球にいたころ
デマンドページング - NyaRuRuが地球にいたころ
プロセス終了時のページイン: 実験 - NyaRuRuが地球にいたころ
アプリケーション終了時の大量のページイン - NyaRuRuが地球にいたころ
ハードページフォールト - NyaRuRuが地球にいたころ
ソフトページフォールト - NyaRuRuが地球にいたころ
FILE_FLAG_SEQUENTIAL_SCAN フラグを使用しなかったため,意図せず「メモリの掃除」をしてしまった事例集 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - 動画版 - NyaRuRuが地球にいたころ
メモリ搭載量とパフォーマンス - NyaRuRuが地球にいたころ
資料紹介: オペレーティング システムおよび PAE のサポート - NyaRuRuが地球にいたころ
Windows で Large Page は「使える」か? - NyaRuRuが地球にいたころ
ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ
仮想メモリ戦略に関する大きな誤解 - NyaRuRuが地球にいたころ
CLR Hosting : 仮想メモリ編 (1) - NyaRuRuが地球にいたころ
UPX 圧縮するとメモリ使用量が増える事例 - NyaRuRuが地球にいたころ
メモリ管理コスト - NyaRuRuが地球にいたころ
Memory Performance Information - MSDN Library - NyaRuRuが地球にいたころ
Swapfile.sys,スケーラビリティ,「多くの場合,最適化は直感に反する」の例 - NyaRuRuが地球にいたころ

Windows OS入門:第3回 プロセスとスレッド (1/2) - @IT
Win32API-プロセスとスレッドの概要
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97) - @IT
メモリを使用する、とは – kekyoの丼
Project Zero: Windows Exploitation Tricks: Trapping Virtual Memory Access
Project Zero: Understanding Network Access in Windows AppContainers

Apple

mach_kernel はドライバ隔離用プロセス? - NyaRuRuが地球にいたころ
なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - NyaRuRuが地球にいたころ

本の虫

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
本の虫: fork()は失敗するんだぜ、覚えときな
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
本の虫: GNU/Linuxにおけるプロセス
本の虫: Shebangという謎な事実上業界標準について
本の虫: DOOM 3 BFGの技術ノート

スライド

第6回 自作OSもくもく会 - Google スライド
第7回 自作OSもくもく会 - Google スライド
7/2 LT - Google スライド
cpu_info // Speaker Deck
TEEとIntel SGX入門 - Speaker Deck
RustはOS界の 銀の弾丸になりうるか - Google スライド
Wayback Machine

ASCII.jp

ASCII.jp:Go言語で知るプロセス(1)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(2)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(3)|Goならわかるシステムプログラミング

Wikipedia

バックグラウンドプロセス - Wikipedia
プロセス制御ブロック - Wikipedia
LFUとは 「LFU方式」 (Least Frequently Used): - IT用語辞典バイナリ
Least frequently used - Wikipedia
ページ置換アルゴリズム - Wikipedia
Page replacement algorithm - Wikipedia
キャッシュアルゴリズム - Wikipedia
Cache replacement policies - Wikipedia
侵入検知システム - Wikipedia
侵入防止システム - Wikipedia
強制アクセス制御 - Wikipedia
任意アクセス制御 - Wikipedia
アクセス制御 - Wikipedia
必須整合性コントロール - Wikipedia
セキュアOS - Wikipedia
アドレス空間配置のランダム化 - Wikipedia
Address space layout randomization - Wikipedia
Return-to-libc攻撃 - Wikipedia
Return-to-libc attack - Wikipedia
オーバーレイ (コンピュータ用語) - Wikipedia

Twitter

その他

Rockridgeさんのツイート: "Quantum DOMのコンセプトなどを説明した文書。関連するタブをグループ化(TabGroup)するとともにグループ内の同一オリジンのドキュメントもグループ化(DocGroup)し、スレッドを割り振る基準にするようだ。 https://t.co/itCiGJaysq"
Quantum/DOM - MozillaWiki
七誌さんのツイート: "またBSoDの調査を依頼された。ページファイルに不良セクタがあって、ページアウトできずに落ちていたようだ。原因が分かって良かった。"
渋川よしきさんのツイート: "macOSみたいなプロセスのメモリの圧縮ってLinuxにはないのかな?"
るくすさんのツイート: "Linuxカーネルのヒープを初期化後にRead-onlyにするpmalloc関数をHuaweiの技術者が作ったらしい https://t.co/JXzU6pAi3R"
Huawei Continues Working On Protectable Memory Support For The Linux Kernel - Phoronix
infvhjさんのツイート: "stackjackingってマイナーな手法じゃない?iOSで聞いたことない"
Hideki EIRAKUさんのツイート: "fork(2) の性能差比較用 sh スクリプト: m=..;while n=0;do a="$b";while test "$a" = "$b";do b="`date`";n=`expr $n + 1`;done;test $m&&m=${m%.}||echo $n;done"
AoiMoeさんのツイート: "伝統的にforkは遅いのだ。2BSDはvforkなるad hocなsyscallを作った。forkがそんなに遅くなくなったのはデマンドページングとCoWを組み合わせた4BSDからだが、現代では「ページテーブルのコピーが遅せえよ」という話になり、やっぱり遅い"
СЮУ1228🏓さんのツイート: "4K pageで256TB - 128PBとかもうページサイズ増やしたほうがよくない…? TLB的にも"
Fadisさんのツイート: "メモリをたくさん積みたい人に朗報なんだけど、最近Linuxカーネルにサポートが入ったIntelの5レベルページテーブルを使えば物理アドレス空間が64TiB分しかなくてそれ以上メモリを積めない問題が解消されるよ"
ゆたかさん🐶さんのツイート: "Windows ServerのEnterprise版は割り込みベクタが255までしか取れないため、多数のデバイスが搭載できないけど、Datacenter版なら制限解除されている、というのがあります。 https://t.co/1ZfIGEVSgH"
なかのん&マジックさんのツイート: "ふと疑問なんだけど、new/deleteの不一致でのメモリリークを起こすような現場、循環参照地獄とか無縁なんだろうか。それと、細かくプロセスを分離というか再起動というか、そういうOS頼みなメモリ周りのクリーンナップには頼らないんだろうか。"
hikaliumさんのツイート: "特権ユーザー -> 非特権ユーザ -> capability(やれることを制限) -> cgroups(使えるリソースを制限)-> namespace(見えるリソースを制限・仮想化)-> でもまだAttack surfaceがでかい(権限昇格・ネットワークスタック)->というわけでgVisor #gcpug"
2018年もアロハシャツエンジニアさんのツイート: "kernelによるOOMキラーが発動する前に様々な条件でプロセスを殺すuserspace動作のoom killer daemon。プラグインによる拡張も可能。良さそう。facebookから。 / “Open sourcing o…” https://t.co/F2ypXue7MI"
ロボ太さんのツイート: "あるテストのため、メモリを際限なく食いつぶすプログラムをMacで走らせていたのだが、top -o memで監視してるとあるところで使用メモリの増加が止まる。調べたら、MacはMavericksから圧縮メモリという機能がついており、それが働いていた模様。知らんかった・・・ https://t.co/7yiFxy8HL6"
ロボ太さんのツイート: "Macで開発したコードが「メモリを際限なく食いつぶすコード」になっていることに気づかず、そのままスパコンに投げて速攻でメモリ枯渇起こして死んだんだけど、「あれ?この実行時間で死ぬなら、Macでテストしたときに気がつくはず」と思って調べてみたら、Macにはメモリ圧縮機能があったという……"
Takashi Kawasakiさんのツイート: "スレッドの使い方って、典型的には投げっぱなしで結果だけもらう的な粒度の低い奴 or 粒度の高い奴超並列的な二択で世界の9割ぐらいの作業はこなせる感じだし、それ以外のパターンを闇に葬る or unsafe コンテキストでしか使わせないというのは一定の意味はあると思う。"
品川 高廣さんのツイート: "macOS は syscall() 関数を deprecated にしたけど、将来的に Windows みたいにシステムコール番号をカーネルのバージョンごとに変えたりするんだろうか。"
Nerry さんのツイート: "非常に稀なケースだとは思うけど、ページフォルトが発生してCR2の値を読み取る前に別のページフォルトが発生したら、後の例外から回復したあと先の例外がうまく処理できなくて破綻するよね:;(∩´﹏`∩);:"
Nerry さんのツイート: "意図的にこの状況を再現する事は可能だと思うけど、1回目のページフォルトと2回目のページフォルトが初期の段階で分岐して別々のページでCR2を読み取る必要がある 普通に設計したらページフォルトの処理中にページフォルトは発生しないし、そこで万が一例外が発生したら2回目の例外は回復できない"
Nerry さんのツイート: "他にあり得るとしたらページフォルトが発生して例外ハンドラでCR2を読み取る直前にタイマー割り込みでコンテキストスイッチされて別のスレッド実行中にページフォルトで上書きされた時。これは割り込みゲート使えば起こり得ない。"
ryoさんはTwitterを使っています 「しばらくx86のpmap見てなかったけどpmap_pageにmutexが足されてた。やっぱりpmap_page枚にmutex要るよね。間違ってなかった!」 / Twitter
ryoさんはTwitterを使っています 「となるとやっぱりPMAP_PAGE_FINI()的なマクロが必要と思うんだけどもしかしてx86でもdrmkmsなドライバをdetach/unloadしたらmutex残ったまま?」 / Twitter
ryoさんはTwitterを使っています 「adの人に聞いてみたら、LOCKDEBUGするにはページが多すぎるのでx86ではpmap_pageのmutexにはMUTEX_NODEBUGを付けてて、だからmutex_destroyも要らないんだ、と教えてくれた。なるほど納得。」 / Twitter
mumumuさんはTwitterを使っています 「SpaceJMP: Programming with Multiple Virtual Address Spaces [ASPLOS '16] NVMの台頭などに備えて,従来プロセスと仮想メモリの関係を見なおし,OSが仮想メモリも第一級オブジェクトとして扱うことで,より柔軟なメモリ管理を実現する手法を提案してBarrelfishやDragon-Fly BSDに実装」 / Twitter
mumumuさんはTwitterを使っています 「Direct Inter-Process Communication(dIPC): Repurposing the CODOMs Architecture to Accelerate IPC [EuroSys '17] CODOMというアクセス権限がページテーブルベースではなく命令ポインタの位置により決定される拡張アーキテクチャ上で,異なるプロセスの関数を同期的に呼び出す(IPC)手法を提案」 / Twitter
とみながたけひろさんはTwitterを使っています 「まあそのときは意図的にディスクを遅くしてごまかしたのだが、最近、NVMeな環境で細かくメモリ使ってると、hugepageの分割とかでpagetableが増えるほかでswapoutが追いつかず、pagedaemonが回収するペースが追いつかなくてPANICするみたいなのを見て、歴史は繰り返すんだなーって思ったりした」 / Twitter

mmap

SODA Noriyukiさんのツイート: "free()してもカーネルにメモリは返らないんぢゃよみたいな話も昔は確かにあったけど、それはmalloc()が内部的にmmap()を使ってなかった頃の話で、たぶん30年くらい前だと思う。"
SODA Noriyukiさんのツイート: "昔のUNIXにはそもそもmmap()がなかったんぢゃよ...←老害"
MAEKAWA Masahideさんのツイート: "「次は free() をすべきかどうかで争いがあった、とか言うんでしょ? そんなのはプログラム次第ですよ。」… "
OGAWA, Tadashiさんのツイート: "mmap () はシングルストレージ OSである Apollo Aegis (Domain/OS) の優位点 (例えば某地図系ホニャララでの大規模画像データへの対応とか) だったとワカモノは伺っております… https://t.co/cWwJTO07e5"
SODA Noriyukiさんのツイート: "ワカモノ..."
AoiMoe a.k.a. しお兄Pさんのツイート: "あんまり関係ないが、UNIXのmmapは複数のmmapで連続したメモリをマップした後で、一度のunmapで全部ご破算にできるのだが、Win32のVirtualAlloc系では同じことができなくてな"
Shiro Kawaiさんのツイート: "何だかTLにmmapのまめちしきが色々流れてきてためになる。自分あんまり深く使ったことないからネタがないけどそういえばmmapは高速なんだがmunmapが意外に重いというのに引っかかったことがあった気がする。"
Shiro Kawaiさんのツイート: "もう詳細を忘れちゃったけど、数10GBという単位の追記オンリーのデータを複数CPUでread-onlyでmmapするんだけど、データに追加があったら一旦munmapして再map、ってやってた。チューニング時にボトルネックを調べてたらmunmapでべらぼうに時間食ってた(1sのオーダーじゃなかったかな)"
Shiro Kawaiさんのツイート: "Linux限定だったのでmremapにして回避したんじゃなかったかなあ。いつも時間食うんじゃなくて特定の条件の時だったかもしれない。ただマルチCPUでワーカーが動いてるんだけどさすがに一個のワーカーがそんなにブロックするとあちこちつっかえて外から見て妙な動作になっていたんだった。"

ページサイズ

鯉江さんのツイート: "そういえば、なんでページサイズは4KiBなんだっけ?"
SODA Noriyukiさんのツイート: "80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。… "
鯉江さんのツイート: "64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?… "
SODA Noriyukiさんのツイート: "よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?… "
とみながたけひろさんのツイート: "昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします… "
SODA Noriyukiさんのツイート: "なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。… "
KOSAKI Motohiroさんのツイート: "Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので… "
SODA Noriyukiさんのツイート: "基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…… "

@kazuho

Kazuho Okuさんのツイート: "read中に、その引数であるメモリ空間をmunmapすると何が起きるか? RT @unak: accept(2)の最中に、その引数であるfdを別スレッドでcloseすると何が起きるか?"
Kazuho Okuさんのツイート: "direct i/oでdmaしてる場合とか何かおもしろいこと起きないのかなぁ"
Kazuho Okuさんのツイート: ".@matsumotory プロセス内ならseteuidやsetrlimit等で十分だし、プロセス分離して「信頼できないコードを実行する」場合に現実的になる要件では、と思っています。インタプリタにsafeモードをつけるという観点だと違うかも"
Kazuho Okuさんのツイート: "h2o の cgi 対応は、CGI の最大同時実行数分だけあらかじめマネジャーを fork しておくというモデルなので、CGI プロセス多すぎになる問題や fork の負荷問題は発生しないのでみんな h2o 使うといいと思う"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Linuxのバディシステムは物理メモリ管理、スラブアロケータは仮想メモリ管理みたいな考え中でいいの?"
OS作れないマン WalB担当さんのツイート: "vmallocはバディシステムで空いてしまった穴をつなぎ合わせて仮想メモリ空間で連続な領域を作る感じなのかな。ちょっとコード読んでみたいかも。"
OS作れないマンさんのツイート: "やっぱりリクエストごとのforkはよろしくないしfcgiとかを使うのが正解じゃね >RT"
CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
デダルス・ユメノさんのツイート: "32ビットページングだと,ページサイズは4KiBまたは4MiB。ちょうど2^10倍。4レベルページングだと,ページサイズは4KiB,2MiB,1GiB。2^9倍ですね。なぜこの違いが出るか分かりますか?"
デダルス・ユメノさんのツイート: "これは4KiBで表現できるページの数が,32ビットページングでは2^10個,4レベルページングでは2^9個だからなんですね。4レベルページングではリニアアドレスが64ビット=8バイトに拡張されたので,4KiBの中に2^9個しかエントリを入れられなくなってしまったのです。"

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "ここ20数年、HDD速度の10~20倍の伸び(10MB/s→150MB/s等)&シーク速度向上(数倍?)に比べ、搭載DRAM量は100倍以上(16MB→4GB等)になったため、瞬間的なスパイク発生時の保険以外でのスワップ多用は(昔より必要時間が増え過ぎて)現実的でなくなった、という印象がありますね。… https://t.co/VXvx03aFxL"
SHIROUZU(白水啓章)さんのツイート: "スワップを設定しなくてもいいというより、設定しても実用性の無い速度に落ち込んでしまう、という感じ。"
SHIROUZU(白水啓章)さんのツイート: "SSDだと(寿命問題以外は)スワップを定義する価値がありそうで、その遠い延長に NVDIMM-P とかかな。 そういえば、NVMDIMM-PはOS/CPUに透過なメモリとして見せると、CPUストール多発しかねないから、DRAMヒットミス時に別スレッドに切り替え可能な仕組みを入れるのかな。後で調べておこう。"
SHIROUZU(白水啓章)さんのツイート: "ただSSDにスワップを確保したとしても、(一般ユーザプロセスでも)搭載メモリサイズを少し超えるメモリを確保して、memsetをループさせるプログラムを動かすと、ほぼカーネルフリーズと言っていい状態に陥る。 (コンソールシェルはエコー反応のみ、sshは切断される状態。kernel3.4時代の実験)"
SODA Noriyukiさんのツイート: "原理的には clean な file cache の物理ページはいつでも解放することができるはずで、回避策はあるような気がしてるんですが、そうなってないんですよね。FreeBSD/DragonflyBSD と Solaris は clean な file cache 専用の page queue があるので実は問題を解決してるかもしれません(←よく知りません… https://t.co/nOlgw8Lmzp"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、NTの開発初期に、カーネルデータは全て物理メモリに置く方針だったのに、ラシッド教授がページアウト可能な方法を示したところ、カトラーはマネをするのも癪だから別の方法でページアウト可能にした、みたいな逸話もあった気も。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用に ps コマンドに PSS/USS を追加表示するコマンドを go で書いたので、公開しておきました。 (VSZ と RSS表示の2つだけだと、実効的なメモリ使用量が調査しづらいため) https://t.co/yE6J4ZiTgm https://t.co/QRQmANANsl」 / Twitter
shirouzu/pss: pss: ps command with PSS/USS information
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「簡単に言うと、smapsのPss/SwapPss と Private_Clean/PrivateDirtyを集計しています。 (PSS/USS以外も集計すると役立つ項目があったりするかしらん?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「LinuxもNTのように、アドレス空間の予約領域とコミット領域を分離できると良いなぁ。 前者は仮想メモリ確保なし、VSSにも表れない。ページテーブルも使わずAS管理のみ行う(NTと同様)。 使う時は(brk(2)のように)予約領域(の一部)をコミット領域に変更する形。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、mmap(MAP_NORESERVE)はあった。 (ただ昔実験した時にNTと同様の利用は出来なかった記憶が…) ともあれ、malloc標準だと1スレッド作る毎に128MBもVSZが増えて、必要メモリ予測がしづらいので、最初は空間予約のみにして欲しいところ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「pss(https://t.co/yE6J4ZiTgm)を作っても不十分な点は、直接mallocした領域(≒使う気満々)と、将来に備えた空間確保したいだけの領域を別表示できないことだよなぁ(≠実際に物理メモリが割り付けられた領域)。 これはライブラリ&プログラムがNONRESEVEを積極利用しない限り解決しない。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Netflixがmincore(2)をヘビー利用していた話が興味深い。 リブート前に、DBの実メモリ部分をダンプし、再起動後にそれをロードして、再起動後の性能低下を低減していると。 https://t.co/VfNZtKpdUJ」 / Twitter
Linuxのページキャッシュ攻撃対策の影響は大きく、長期化する見通し【翻訳】 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FirefoxでYoutube Musicで動画付き再生したら、Firefoxがやたら重くなったので調べてみたら、Firefoxが14GBもコミット済メモリを確保していた。 https://t.co/KE8rPEvrFG」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリのメモリ消費が気になるときは、コミット済みメモリ量を見るのが大事。 (ワーキングメモリ量は騙されやすい)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からタスクマネージャは、デフォルトではコミット済みメモリを表示しない謎。 (それが「メモリ・クリーナー」的な、まじないソフトが出現した一因とも思うのだが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにこの時、Youtube music のタブを閉じても変化無く、Firefox自体を落とす以外ではメモリ解放は出来なかった。 (Firefoxって、タブ:プロセスの関係は m:nなのだっけ…?)」 / Twitter

@EzoeRyou

Ryou EzoeさんはTwitterを使っています: "@shinh なるほど、ulimit -nがMacだと256、Ubuntuのデフォルトでも1024とfork bombを早期に避けるために極めて厳しいデフォルト設定になっているのですね。"
Ryou EzoeさんはTwitterを使っています: "システムコールのコストを下げる方法。1コアをシステムコール専用にする。キャッシュ汚染はそのコアのみにとどまる。 https://t.co/WSROiUv0y0"

@nminoru_jp

中村 実さんのツイート: "Intel64は4-level pagingでも仕様上4PiB(52ビット)の物理メモリ空間を保証しているんだよな。ページテーブルの予約ビットを使えばマックスの16EiBも行ける。物理メモリ制限はチップセット側の仕様だよな。"
中村 実さんのツイート: "ただx86-64/Linuxは256TiBの仮想アドレス空間の半分をカーネルに割り当てて、カーネルの半分を物理メモリとのマッピングを使うので、そのまま64TiBを越える物理メモリを載せてしまうとx86/Linuxみたいな物理メモリを触る時にページ単位に仮想メモリにマッピングする方… https://t.co/joXxY6bXul"

@tociyuki

MIZUTANI Tociyukiさんのツイート: "linux カーネルには、 まだ fs-uid が残っている。 デフォルトで無効にして、カーネル・コンフィグで有効にできないこともないけど利用非推奨で良いのではないかな。 setresuid (2) システムコールが使えるのだし。"
MIZUTANI Tociyukiさんのツイート: "ざっと google で検索した印象では、 POSIX の実uid、実効uid、退避uidの3組でデーモンの実効uidを特権と非特権で交互に行き来するやりかたを日本語で解説しているページはないようだ。それ以前に退避uidの解説ページがないようだ。"

@satoru_takeuchi

satさんのツイート: "とくにHDDだと、ちょっと負荷がかかると要求仕様を満たさない性能に落ちるレベルを突き抜けて、二度と応答がなくなるところまで一瞬で到達しますからね… "
satさんのツイート: "ページテーブルがメモリを食うというのと、それがforkの計算量に効いてくる、という話は頻出だけどあまり知られてない"

@KuniSuzaki

suzakiさんのツイート: "The history of documented Unix facilities でコマンドやシステムコールが導入された初期バージョンが示されて面白い。 https://t.co/rDDtchiU4M これを見てWindowsのシステムコールが有効なバージョンリストを思い出した。こちらも面白い。 https://t.co/FgsUg23Z3Y"
The history of documented Unix facilities
Microsoft Windows System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)

ロボ太さんはTwitterを使っています 「CPUって、命令セットとか演算性能が注目されがちだけど、実際はキャッシュやメモリとの接続といった「足まわり」がアプリケーション性能に強く影響を与えてて、そこを解決してから演算まわりを考える感じなんだよね……」 / Twitter

OSのデバッグ:メモリアロケーション講座 | POSTD
メモリアロケーションを削減: T.Ishiiのソフト開発記
省メモリーに関するデザインパターン 2011.04.18
スラブアロケータのfree list randomizationの実装について - Qiita
c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
Kazuo MoriwakaさんはTwitterを使っています 「きっとこうなる人がいるけどrpmは大丈夫だから安心してアップデートしてね。 シェルスクリプトを(方法はしらないけど)置き換えて事故ったー → よくわからんけど動かしてるシェルスクリプト書き換えるのまずい → シェルスクリプトを含むrpmパッケージ更新したくない ↑↑rpmは大丈夫↑↑」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「スクリプトだろうとバイナリだろうとファイルを上書きする方法でプログラムを更新するのがダメなのであって、インストールコマンドの類はその辺をケアしてる(mvで更新してるか、あるいはrm&&cpで更新してる)から大丈夫だし、シェルスクリプトかどうかは関係ないっス。」 / Twitter
市川 真一さんはTwitterを使っています 「@n_soda Windows だと実行中の exe ファイルを上書きできない仕様で救われてる案件もあるのかもと思いました。あれって面倒でもあるのですが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tenpoku1000 あるでしょうね。UNIXでも実行ファイル自身でありかつlocal filesystemなら Text busy エラーが出て上書き不能ですがLinuxだとこのチェックは廃止方向だとか: https://t.co/ykPatqFt7q」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter

システムコール

SODA Noriyukiさんのツイート: "CじゃなくてPythonで十分デスヨみたいな意味でCPUが速くなれば手を抜いても許されるようになるけど、コンテキストスイッチのオーバーヘッド自体はなくならないので、結局ユーザランドとカーネル境界を意識したプログラミングスタイルも残りますよ。… https://t.co/Ab3604T2Mq"
眼力 玉壱號さんのツイート: "返すのに syscall 呼んじゃうと呼んだ方が block する…のを嫌って bmalloc(Safari が内部的に使ってる allocator)は別の thread 起こしてそいつに返させていた…… "
Shinji Konoさんのツイート: "なんか、今の時代になっても、system callのオーバヘッドとか言ってる不思議。CPU速くなったんじゃなかったのかよ…"
SODA Noriyukiさんのツイート: "バンド幅は急速に向上しますがレイテンシの改善はゆっくりですし、アドレス幅が広がればドライブ能力が必要となりレイテンシが悪化するのでメモリ階層を増やして対応します。結果L1キャッシュの容量は30年経っても同レベルです。キャッシュ外せば途端に遅くなるのでコンテキストスイッチは遅いままです… https://t.co/aCHBrZRlwV"
まさみさんは語りたいさんのツイート: "function failure injectionが拡張されてsyscallが片っ端からinjectableになっていた。"
虚無さんはTwitterを使っています 「Intel: 32ビットモードでsyscall/sysretをデコードせずsysenter/sysexitは32ビット/64ビットどちらでも使える AMD: 64ビットモードでsysenter/sysexitをデコードせずsyscall/sysretは32ビット/64ビットどちらでも使えるみたいな面白いやつも まあカーネル空間の話だからあまりユーザー影響ないですが」 / Twitter
FadisさんはTwitterを使っています 「新しいシステムコールreadfileがLinux 5.13でのバニラカーネル入りを目指してrebaseされた話。readfileはファイルを開いく、指定されたバッファにバッファのサイズ分だけ読んむ、閉じるを1回の呼び出しでまとめて行う https://t.co/XyzGqiEQNv」 / Twitter
READFILE System Call Rebased For More Efficient Reading Of Small Files - Phoronix
FadisさんはTwitterを使っています 「システムコールの発行回数を減らせる(これは特に対策する必要があるCPU脆弱性の多いマシンで重要)為、このシステムコールは小さいファイルをたくさん読むシーン(例えばsysfsの中身を漁っている時とか)において性能向上に寄与するとされている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sendfile等と同様、uOP fusion ならぬ、syscall fusion という感じ。 将来、syscallを配列にして呼び出すメタsyscallができてctx sw削減とかあるのかな?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu システムコールで作ったキューペアにユーザ空間からI/Oリクエストを書くとカーネル空間からそれを拾って行ってくれる「io_uring」がメタsyscall的なものと言えるかもしれません」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.13からカーネルスタックオフセットのランダム化が可能になるらしい。この機能はブートパラメータで有効/無効にする事ができ、有効な場合システムコール毎にカーネルスタックのベースアドレスが変化するようになる。 https://t.co/lahS5hv9TE」 / Twitter
Linux 5.13 Poised To Allow Randomizing Kernel Stack Offset At Each System Call - Phoronix
FadisさんはTwitterを使っています 「Linuxではシステムコールを起点としてカーネルのコードを実行する際にユーザ空間のスタックとは独立したカーネルスタックを使用する。カーネルスタックを壊せる脆弱性があるとカーネル空間で任意のコードを実行される恐れがあるが、開始アドレスが予測できなくなる事で、そうした攻撃が難しくなる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux の syscall(2) 使う時の定数、 SYS_xxx 使ってるコードと __NR_xxx 使ってるコードがあるけど、どっちが、より適切なんだろう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アプリからは SYS_ 使えってことっぽいな https://t.co/o5gAKmkeeW」 / Twitter
c - What are the __NR_-prefixed symbols in glibc? - Stack Overflow
漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「これdockerみたいにsyscallのたびにfilter走るやつがはやくなってべんり。自力で全部closeするやつがおるから。 &gt; On Linux, the close_range function has been added. It allows efficiently closing a range of file descriptors on recent kernels (version 5.9).」 / Twitter
ファイル数が多すぎるフォルダで「ls」コマンドが遅くなってしまう問題の解決方法 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxカーネルにシステムコールを追加する手順。ドライバを書くよりはお手軽なので、カーネルに手を入れる演習としてはいいかも。 https://t.co/wcGNObC1cU」 / Twitter
Tutorial - Write a System Call • Stephen Brennan
FadisさんはTwitterを使っています 「IntelがLinuxカーネルにユーザ割込みをサポートする為の新しいシステムコール案を投げている話。ユーザ割込みはIntel CPUの新命令で、ring3で動いているCPUがring3で動いている別のCPUに割込みをかける仕組みで、カーネル空間を経由しない高速なプロセス間の通知に応用できる https://t.co/Ev3NoCpY6K」 / Twitter
Intel Posts Initial Code For x86 User Interrupts On Linux - Shows Great Performance Potential - Phoronix
ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか
Kazuho OkuさんはTwitterを使っています 「普通の linux 環境は、一般ユーザー権限でログインする際に同時オープン数が1024とかになってて、そこからrootで必要に応じて値を大きくして使うけど、dockerだとkernelレベルの制限の1048576のままになってて。 結果、closefromのユーザランド実装がdockerだと1000倍遅かった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux 5.8 あたりで close_range(2) が追加されたのか。BSD にある closefrom(2) 的な動きをするやつ」 / Twitter
システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
12年間使われているLinuxディストリビューションの脆弱性PwnKitによりローカルの権限昇格が可能に
FadisさんはTwitterを使っています 「先日のPolkitのローカル権限昇格脆弱性(CVE-2021-4034)(これ自体はPolkit側で塞がれる)を受けてLinuxカーネルで「引数なしでexecveのシステムコールが飛んできたらそもそも蹴るべきでは」という議論が起きている話 https://t.co/CMJcyBCMJ7」 / Twitter
FadisさんはTwitterを使っています 「Linuxが引数なしのexecveを認めなければPolkitのようなミスをするソフトウェアが居ても直ちに環境変数の実行に繋がらない。argv[0]にプログラム名が入っていることを期待するプログラマは多いためPolkitだけの修正で済ますより包括的な再発防止策をとる事は有益ではある。」 / Twitter
FadisさんはTwitterを使っています 「ただ、argv[0]にプログラム名が入っているというのは多くのソフトウェアで行われている慣習でしかなくPOSIX含む諸々の標準規格はargv[0]にプログラム名を入れることを要求していない。この変更は実際に雑に書かれたソフトウェアの互換性を壊す事が分かっていて、入れて良いものかどうかで揉めている」 / Twitter
2022年2月1日 Qualys,主要Linuxディストリビューションに「Polkit」の脆弱性を警告:Linux Daily Topics|gihyo.jp … 技術評論社

プロセス間通信

signal

その他

だいありー
LinuxC | シグナルの操作(2)
スタックオーバーフローのハンドリング (Stack Overflow Handling)
SIGSEGVとSIGILLのあいだ - Qiita
SIG30-C. シグナルハンドラ内では非同期安全な関数のみを呼び出す
Man page of EXIT
c++ - What's the difference between _Exit() and _exit()? - Stack Overflow
2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」:Linux Daily Topics|gihyo.jp … 技術評論社
情報学広場:情報処理学会電子図書館
terminate - cpprefjp C++日本語リファレンス
_Exit - cpprefjp C++日本語リファレンス
quick_exit - cpprefjp C++日本語リファレンス
Shiro KawaiさんはTwitterを使っています 「プロセス「内」通信なんだけど、Boehm GCはOSによってはGCスレッドの同期にSIGUSR1/2を使ってる。」 / Twitter
satさんはTwitterを使っています 「よく使われているプログラムでSIGUSR1とSIGUSR2を使い倒してプロセス間通信しているものってあるんかな」 / Twitter

snprintf_ss(3) :NetBSD

椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「そういうような環境だと printf のフットプリントの大きさよりも,再入可能ではない実装だったり,内部で malloc() することがあるといったことが問題になったり」 / Twitter
岡田哲哉さんはTwitterを使っています 「いわゆる組み込みの分野だとprintfってフルセット全部持つとちょっと大きい気もするので、コンパイル時にフォーマット文字列を解釈(コンパイル)しておけばいいのにって思うことはある。簡単に出来そうなので実装例もあるかもしれない。」 / Twitter
岡田哲哉さんはTwitterを使っています 「まあでも今どき「printfが大きい」って言うことも少ないかな。Cortex-M0+ですら浮動小数点までフルセットで持ってたりするよね。(当然ながらsoftware floatのランタイムも付いてくる)」 / Twitter
椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「ぼくたちが欲しかったのは,小さくした printf ではなく,再入可能で複数のタスクから呼んでもおかしなことにならず,予期しない malloc() が sbrk() してヒープをぶっ壊したりしないことが保証されている printf なんですよ……」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kunukunu NetBSDだとsnprintf_ss(3)っていうのがあったりします: https://t.co/yw83JLuviG snprintf_ss() and vsnprintf_ss() are signal-safe standalone versions that do not handle floating point formats, positional arguments, and wide characters.」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「最初 async-signal-safe だってんで snprintf_ass() になりかけたんだけど、ass はまずいってんで _ss になったという経緯があったりw (chatででた冗談まじりの雑談が発端なのでメールには残ってないと思う)」 / Twitter
椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「@n_soda おお~,signal handlerから呼んでも大丈夫なのがあるんですね!」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kunukunu はい。これ欲しいですよね。」 / Twitter

ジョブ制御

SODA NoriyukiさんはTwitterを使っています 「大学の計算機センターに富士通製のΣワークステーション(mc68k系だったような? ヒト桁MIPS)があって、それは端末がわりにちょっと触ったことがあったような気がする。 1989年の話」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「あと富士通製のUNIXミニコン(?)があって、これはワークステーションよりかなり速かった。30 Dhrystone MIPSくらいはあったような。CPUは何だったんだろう。 学内のNetNewsグループとかはこのマシンがサービスしてて、みんなログインして使ってた。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「このマシン向けにbashを野良ビルドしたんだけど、当時のbashはシグナル処理がジョブコントロールのないSystem-V系UNIXに対応してなくて、子プロセスをContorl-Cで止めたらbashまで死んでしまって腹を立てて直したことを思い出した。おかげでbashの第一印象は微妙だったなあ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「ジョブコントールがあるUNIXだと対話的シェルの子プロセスはそれぞれ別のプロセスグループに属すため、フォアグランドプロセスグループに属する子プロセスにControl-Cを送っても親であるbashには届かないのに対し、ジョブコントロールがないと届いて死亡する…みたいな話だったような(うろ覚え」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「ジョブコントロールって若者は使ってるんだろうか。 タブつきターミナルとかtmuxとか使ってると、ほとんど使わないような気がしてる。 僕は老害なのでめっちゃ使ってるし、おかげでsshのControlMaster機能は僕には役に立たない…(ControlMaster使うとsshクライアントをsuspendできなくなるため」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「System-V R3 くらいには*BSD由来のジョブコントロールとは別の方式のジョブコントロール機能があって、こいつは*BSD式の端末プロセスグループ切り替え方式じゃなくて、仮想端末をジョブごとにそれぞれ割り当てる方式だった。仕組みとしては今のtmuxから画面出力制御やキーの横取りを取り除いた感じ」 / Twitter

ASAN

Kazuho OkuさんはTwitterを使っています 「「main から抜ける時にリソース解放してない、みたいなこと言われないように _exit 呼んでる」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ひょっとして「asanでリーク発見しました」みたいなことを言う人たち、_exit呼べば黙るのでは(asanがリーク報告するのはおそらく_finiの中だから)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シグナルとmainの話なんだけど、たとえばmain抜けた後で_fini動いてる途中とか、その後でシグナル来ることってありますやん。そういう時にシグナルハンドラでできることってなんなんやろ。どうやって皆、動作保証してるんやろ。_exit呼んでる? シグナルハンドラをunregisterしてる?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「普通はこんなタイミング問題どうでもいいんだと思うけど、asanが_finiの中で、グローバル変数の監視解除するのに時間かかってて発覚した」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho _exit は副作用強すぎるので、その症状だけならunregisterかblockが無難ですよねえ…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho もっとも、本当に _exit で良いと分ってるならそれが一番高速ですけど…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。一般論として、_fini中にシグナルハンドラが動く場合は、共有ライブラリの関数も呼べない可能性がある、とかそういう制限はあるんでしょうか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda LeakSanitizerが動かない!ってissueたてられそうなので、それはやめとこうかなと思ってます」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho たとえばシグナルハンドラでは async-signal-safe として規定されている関数を呼んでるのみであれば問題ないような… 今回は自前の実装と相互作用のある処理をたぶん呼んでいるんですよね…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda あいや、今回は main のローカル変数のアドレスが、グローバル変数のポインタに登録されていました。そして、_fini -> __asan_unregister_globals呼び出し中に、シグナルが配送された結果、ASANがstack underflowを深刻しabortしていました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda うーん、ASANと組み合わせて動くようにしておきたいという前提があるなら、_fini呼び出し前にシグナルハンドラをblock/ignにしておくべきな気がしてきた。ASANが自身を登録解除中に正しく動作する保証あるのかって話になるし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho なるほど、そういうケースならmain()の最後で #if 1 /* not strictly necessary, but make ASAN happy */ global_var = NULL; /* unref local_var for ASAN */ #endif としとくのが将来もその処理の理由を忘れなくていいような気がします。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda んー、シグナルハンドラが正しく実装されていれば、それで良いですが、ASANはバグを検出するためのツールじゃないですか。で、ASANは__asan_unregister_globalsが呼ばれている間も正しく動作する保証があるのか。保証ないのであれば、mainを抜ける前にシグナルハンドラを登録解除するほうがいいかなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕が誤解しているかもしれないんですが、シグナルハンドラでは、mainのローカル変数をグローバル変数経由で参照しているんですよね? だとするとこのケースに限定すれば問題が実際に存在しASANは正しくそれを報告しているので、粛々と問題に対応するのがいいような気がしてます。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。正しいコードとしてはそれでもよいのですが、今回みたいなバグがあった場合に、ASANが発狂しないか、ということを気にしています。ASANが発狂して悩むくらいなら、シグナルハンドラをunregisterしちゃっていいんじゃないかと。ちなみに https://t.co/QEzTjeNf78 これです」 / Twitter
[server] [bug-fix] Crash in h2o_multithread_send_message() when on_sigterm() is called twice by nalramli · Pull Request #2913 · h2o/h2o
SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕もASANの仕様は分からないです。 あとmain()の最後でunref する処理がけっこう面倒なら、unregisterを不正な参照対策として行うってのも(ASANの仕様に関わらず)アリですね。」 / Twitter

Kazuho OkuさんはTwitterを使っています 「実行ファイルの書き換えに限らず、unixってTOCTOUまわりが適当なんだよね。TERM送ってグレースフルシャットダウンします、って、シグナルハンドラ登録前やったらどうなるねんみたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シグナルハンドラ、マルチスレッドと違って、ハンドラ側の操作は他の部分からはアトミックに見えるのが、ややこしい」 / Twitter
ゆたかさん🐬さんのツイート: "シグナルハンドラで使用可能な関数は、下記サイトに記載されていますが、非常に少ないです。printf()やfopen()などがまず使えません。実際に誤って使用しても、それなりに動いてしまうので問題に気付きにくいです。 https://t.co/cvbnhTp8NZ"
signal-safety(7) - Linux manual page
ゆたかさん🐬さんのツイート: "シグナルハンドラで使える関数は決まっていて、思いのほか少ないのですが、その制約を守れていない実装が存外多く蔓延っています。BusyBoxのsyslogdの-mで使われているシグナルハンドラはシグナルセーフではないため、まれにデーモンが暴走することがあります。 https://t.co/mJ6z8u7b2g"
Linux シグナルの基礎 - harasou.jp
ぬるぽへさんのツイート: "マルチスレッドなら同じシグナルハンドラが普通に並行に走るな・・・(この動作ってPOSIX的にオッケーなんだっけ"
ゆたかさん🐬さんのツイート: "killコマンドはプロセスに終了してね❤と通知するだけなので、実際にプロセスが死んだか別途確認する必要があります。 PIDは再利用されると、別プロセスが同じ番号を使うので存外難しい。 1.kill PID 2./proc/PID がない 3./proc/PID/exe を確認"
Takanori Watanabeさんのツイート: "とりあえず、SEGVを割り込んで途中で止められるようにして欲しい。 (デバッグ中の数ギガクラスの巨大なイメージのプログラムのコアダンプを20分ほど待ちながら)"
mattnさんのツイート: "SEGV は Segmentation Falut の略だよって人、なぜ Violation まで付けて説明しないのか。"
Fadisさんのツイート: "/proc/<PID>/以下ににシグナルを送る為のファイルを作る提案がなされている。既存のシステムコールを使った方法ではPIDが再利用された場合間違ったプロセスにシグナルを送る恐れがあるが、作り直されたディレクトリは以前の物と区別される事を利用してこの問題を回避できる https://t.co/JiKCIwMyVq"
New /proc/pid/kill Interface Proposed For Killing Linux Processes - Phoronix
まさみさんは語りたいさんのツイート: "signalで実装するとsignalハンドラでキャッチした後スリープしてる本体のスレッドを叩き起こし、戻る必要があるが、signalfdで待っておけばepollですぐに本体で対応できる。"
Fadisさんのツイート: "Linuxが新規プロセスに付ける番号(PID)は1から32767までの狭い空間の使用中でない値なので、短時間で終了するプロセスが大量に動くシステムで、PIDを指定してシグナルを送ると、それが既に終了していた場合、シグナルが意図したプロセスとは別のプロセスに届いてしまう事がある。"
Fadisさんのツイート: "この問題を解決する為に、現在Linuxカーネルで対応が進められているのがpidfd。これは/proc/<PID>ディレクトリに対するfile descriptorで、/proc/<PID>が別のプロセスになっても、fd指定でシグナルを投げる事で古い方のプロセスに向かってシグナルを投げている事をカーネルに明示する事が出来る"
ITが分からないbeepcap@HTTPSの強制には反対さんのツイート: "64bit環境では22bitほど割り当てられるので、比較的問題は小さくなる。… "
Fadisさんのツイート: "ちなみにLinuxはnamespaceでPIDの空間を分ける事ができる(よその名前空間のプロセスは見えなくなり、よそではすでに使われているPIDが未使用になる)為、ものすごい勢いでプロセスを作って終了させるヤツを他のプロセスが属すPIDの空間から隔離する事は、古めのカーネルでもできる"
FadisさんはTwitterを使っています 「errnoは誰もがerrnoの扱いに関するルールを守る限りにおいて正しく機能するが、君はerrnoを書き換えるかもしれない処理をするシグナルハンドラの最後でerrnoを以前の値に戻すのを忘れたことが無いのか?!」 / Twitter
FadisさんはTwitterを使っています 「strace: ユーザ空間のプロセスが実行中に呼び出したシステムコールと、受け取ったシグナルを横から眺めるための仕組み。この関数は最終的にカーネルに要求を投げてる筈だけどどんなシステムコールを使ってるの?なんて時に調査が捗る #nekoi7yu_tech」 / Twitter
Keigo ImaiさんはTwitterを使っています 「UNIXプロセス周りのバグの何がやりづらいって並行性由来の非決定的動作がグローバルに連動して発生する点で、今回はvscodeでの編集中に型エラーが出たり消えたりする原因がツールチップのプリティプリンタ(ocamlformat)を呼ぶスケジューラのwait()とプリプロセッサ(PPX)を呼び出すsystem()の干渉だった」 / Twitter
Keigo ImaiさんはTwitterを使っています 「こういうの、わかる人にはわりと早い段階でピンとくるのかもしれないですが。前回 https://t.co/NkZNs4Cufk」 / Twitter
Keigo ImaiさんはTwitterを使っています 「かなり昔、TCP使ったミドルウェアで切断時の再接続が偶に発生しない障害に悩まされた。詳しく調べるとリモートに送っているはずのデータ列が突如/var/log/syslogにリダイレクトされていく怪現象。どうもsyslogのライブラリがSIGPIPEハンドラをセットしており、そこで同じ番号のfdが再確保されていた…」 / Twitter
Keigo ImaiさんはTwitterを使っています 「SIGPIPEハンドラから戻ってくると元のFDが生きてるように見えるのでその後のwriteでは例外が起こらずに再接続も発生しない。本来どうするのがベストプラクティスなのか忘れてしまったけど、当時すこし気が動転してランタイムのバグを疑ったりgdbでトレースしたりと人生ワースト5に入るバグだった」 / Twitter
Keigo ImaiさんはTwitterを使っています 「当時のコード(多分)を見つけた。ピアとの接続が切れた時のSIGPIPEが、syslogdとの接続が切れたのと誤認される→ピアとの古いFDが次のsyslogdとの接続に再利用され→ハンドラ終了後ピア向けの書き込みがsyslogdに流れる…のか?お作法がまずいのだろうか、プルリクを出そうね… https://t.co/YbZNXdbt4r」 / Twitter
ocaml-syslog/syslog.ml at v2.0.2 · geneanet/ocaml-syslog
Yasuhiro HayaseさんはTwitterを使っています 「@keigoi エラーが起きたfdを区別する仕組みがないのですよね.非同期実行のため,外部変数の読み書きや関数呼出しも制限されるため,速やかにexitする目的以外でSIGPIPEハンドラを使うと問題を起こしそうです.(リカバリしたい場合はwriteのEPIPEに対処せよとの記事を見付けました https://t.co/nGNzttgNJs )」 / Twitter
c - Using signals and sigpipe - Stack Overflow
Keigo ImaiさんはTwitterを使っています 「こんなの大昔からシステムプログラミングの定石がありそうだなと思うんだけど、何なんだろう…。単にSIGPIPEを無視してwriteの戻り値をチェックするように変えるのが良いのかな。 いずれにせよ、ライブラリ側で暗黙にシグナル操作をやられるとハマりそうではあります。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「やはり単にサーバープロセスはSIGPIPEを無視するのが定石のようで。元の文脈でいえば、その辺のライブラリを拾って適当に使う前に事前によく検討しよう、という結論のような気がする(当時もそう思った気がするが選定したのは私ではなくてあまり自信もなく、開発元にcontributeしないのもよくなかった」 / Twitter
ytakanoさんはTwitterを使っています 「プロセス管理のコード書いてみたけれど、本質的にシステムコールが不完全な気がしてきた。」 / Twitter
ytakanoさんはTwitterを使っています 「SUGCHLD、プロセスグループに変更があったときにも通知されるべきでは。」 / Twitter

Twitter

CAP定理

TAKI, Yasushi (瀧 康史)さんはTwitterを使っています 「とりあえず、「分散すれば良い」と簡単に思ってる人は、拡張CAP定理について書いたので、読んでほしいな。 https://t.co/M9sXkaJ2m9」 / Twitter
Shinji KonoさんはTwitterを使っています 「本質的にスケールするためにはCAP定理のどこかを諦める必要がある。どれかは明解。そうすれば自明にスケールして、ネット上の情報交換はほぼ無料になる。そして、インターネットは再び儲からないものになる。トランザクションを要求するものは別。」 / Twitter
時空に拡張されるCAP定理:落ちず、速く、確実なサーバをどう作るのか? - JUSTPLAYER インターネットサービス

UNIXドメインソケット

Fadisさんのツイート: "mysqlはlocalhostに接続する時にmysqldが作ったUNIXドメインソケットを使おうとするが、この時mysqldのプロセスがあるかとかは見ていなくて、別のコンテナのmysqldが作ったソケットをbindマウントで持ってきて見える状態にすると、localhostにないmysqldにlocalhostで繋がる、という知見が得られた"
syuu1228さんのツイート: "一般的にこういうアプリでUNIXドメインソケットでつなぐ前にプロセスの生存確認ってわざわざしない気がする(繋がらなければ生存してないとわかるし…"

@kazuho

Kazuho OkuさんはTwitterを使っています: 「可用性が高く、メッセージへの参照を持つことができる、セキュアなメッセージキューがあります。各アプリケーションはメッセージキューの読み書きをすればよろしい、ってのはエンタープライズアーキテクチャには便利だわなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「スケーラビリティのためにはイベントドリブンプログラミングが必要だけど、単にイベントドリブンするとワークセットがでかくなってパフォーマンスが出なくなる問題」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「ちょっと具体的に言うと、ワークセットを小さくするにはイベントループに戻るケースを最小化すべき → 非同期になった場合と同期的に処理できた場合の両方を統一的にコーディングできるよう設計すべき → tail callが便利 → 返り値を返す関数とcbを引数にとる関数の峻別が必要」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「リソースロケータと読み書き手順の標準化による効率化、ってことなのかな。なるほどねぇ / https://t.co/AOSpdixnST」 / Twitter
中国で公共サービスのブロックチェーン導入進む。十数日かかる企業登記が3日に短縮 ~知的財産権訴訟の和解処理も大幅効率化 - 仮想通貨 Watch
Kazuho OkuさんはTwitterを使っています 「一般論として、大量のパケロスが発生するような状況はキューの積み上がりと再送による遅延が激しくなるので、そこまでアグレッシブに送るメリットがないと理解しています。輻輳ギリギリを狙うのが吉」 / Twitter
ReiOdairaさんはTwitterを使っています 「UDPの性能評価がよくわからん。UDPを生で(?)使ってる人にとってはレイテンシとパケット落ちない最大スループットが重要?パケット30%落ちるけどn Gbps出ます、みたいな領域でUDP使ってる人いるのか?でも最近はUDPの上に到達保障性のあるレイヤー重ねることも多いだろうからまた評価基準が変わるか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「他のフローを追い出すとか邪悪なことをやりたいならともかく」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「規格統一の話とは少し違うけれど、A.タネンバウム先生の「分散システム」としてのMS DCOM評を思い出した。 「DCOMを批判することは難しくない。しかし何千万人が毎日使っているという意味で、CORBAや他のいかなる分散システムも遠く及ばない」 https://t.co/JJcrU5Ooub」 / Twitter
深津 貴之 / THE GUILDさんのツイート: "「エンジニアが1ピクセルの精度を軽んじる」っていうけど… デザイナも「エンジニアがミリ秒単位でチューニングしたレスポンスを、デカイjpeg貼って台無しに」とかするので、やっぱ相互理解が大事だよなぁと思いました"
ねこさんはTwitterを使っています 「“システムの作り直しは失敗しやすく困難なので、しばしば悪い方針だと言われます。” そうなのかー…弊社内だとすごくよく見る https://t.co/KisyvzS6gG」 / Twitter
人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
ねこさんはTwitterを使っています 「これ,たぶんRPC protocolが統一されてて,micro service architectureと下層の状態が高度に隠蔽されているからな気がする(あと依存系の更新が頻繁に起こってdefacto standardがちょこちょこ変わるのもある」 / Twitter
検索インフラを安全に切り替えた話 - クックパッド開発者ブログ
SODA NoriyukiさんはTwitterを使っています 「お、NetBSDに関する特記がある珍しい...とよく見たら jschauma @ NetBSD . org (2016年に developer としては引退したけどメールアドレスはまだ有効) のサイトだった」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unixのプロセス間通信(IPC)は通常バッファを使って行われるが、そのバッファサイズはカーネル+通信の種類 (pipe, mkfifo, UnixドメインソケットのDGRAM/STREAM) によってかなり異なる。しかもバッファの挙動は書き込みパターンによっても違っており、非常に複雑。 https://t.co/wyj9qZqQOw」 / Twitter
IPC Buffer Sizes

ToolTalk - Wikipedia
Common Desktop Environment - Wikipedia
Common Desktop Environment - Wikipedia
D-Bus - Wikipedia
D-Bus - Wikipedia
AppleScript - Wikipedia
AppleScript - Wikipedia
スクリプトエディタ - Wikipedia
PC内のプロセス間通信に対する中間者攻撃--パスワードマネージャから情報流出も - CNET Japan
In-Process コンポーネント技術の限界 - NyaRuRuが地球にいたころ
情報学広場:情報処理学会電子図書館
Security Tips for IPC - The Chromium Projects
編集長の眼 - 若手が知らない昔の技術MQ、クラウドではホットだ:ITpro
MSMQと.NET Core
ウェブシステム内の待ち行列をMackerelで可視化してみる - ゆううきメモ
分散キューという名の苦しみ - Software Transactional Memo
分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
プロセス間通信 - Qiita
本当は恐ろしい分散システムの話
Oracle Cloud、マルチプラットフォーム対応の運用監視ツール「Oracle Cloud observability and management platform」発表。ログの一元管理から分析、分散トレーシングなど - Publickey
gRPC、Ballerina、Go言語を使用したマイクロサービス開発の実例
Microsoftの「マイクロサービス開発」を支援する分散アプリケーションランタイム「Dapr」がバージョン1.0に到達 - GIGAZINE
KOBA789さんはTwitterを使っています 「分散システムの議論って必ず「まずは分散させるな」「それでも分散させなきゃならない理由は何だ」という話から始まるべきと思ってて、全然キラキラしてないけど一番大事なのはそこだよなっていう」 / Twitter
ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開 - Publickey

同期 API

その他

そろそろvolatileについて一言いっておくか
ホイール欲しい ハンドル欲しい » Archive
5章 カーネルの同期処理 - iplab 2011
DSAS開発者の部屋:並列プログラミング(その3)
emcjp/ at master · herumi/emcjp · GitHub
Thread/Synchronization 補足資料
TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
スリープループによる消費電力とパフォーマンスの改善 | iSUS
RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT
QCon New York 2017: システム内のイベントの順序付け
x86 に Persistent Memory 用の命令が追加予定 - 教育は参考ブログ
PCOMMIT 命令は廃止に - 教育は参考ブログ
状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
CPUスケジューリング - 13DeadLock.pdf
SPIN モデル検査: 検証モデリング技法 - 中島 震 - Google ブックス
世界で闘うプログラミング力を鍛える150問: トップIT企業のプログラマになるための本 - Gayle Laakmann McDowell - Google ブックス
Rustの `Arc` を読む(4): アトミック変数とメモリ順序 - Qiita
x86 lock 特権 - Google 検索
okamo(aged 5 yrs.)さんはTwitterを使っています 「なんか忘れてしまったけどcoherentかconsistentかみたいな話について似たような議論を繰り広げた記憶がある」 / Twitter
アトミックな加減算命令 x86 - Google 検索

C

条件変数 Step-by-Step入門 - yohhoyの日記
条件変数とデッドロック・パズル(出題編) - yohhoyの日記
条件変数とデッドロック・パズル(解答編) - yohhoyの日記
atomic型と整数型のサイズ - yohhoyの日記
atomic変数間のatomicなコピー - yohhoyの日記
restrictキーワードへの対応状況 - yohhoyの日記
restrictキーワード - yohhoyの日記
続 restrictキーワード - yohhoyの日記
volatile教、あるいはvolatile狂 - yohhoyの日記
(抄訳)N4215 memory_order_consumeの利用と実装に向けて[§5-6のみ] - yohhoyの日記
(翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記

メモリモデル

x86

yohさんはTwitterを使っています: 「x86でもStoreLoadバリアが必要なケースあると思われ https://t.co/5a6rNpk6GX https://t.co/FtleEav5eP」 / Twitter
Memory Reordering Caught in the Act
キノコになりたい🍄さんはTwitterを使っています: 「x86-64のCPUはつよいメモリモデルを持つのでOoOでも結局volatileアクセス順序は保たれそう? シングルスレッドだけを見るならvolatileアクセスの逐次一貫性を保証するのに追加のバリアは要らないよねきっと・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@yohhoy @onihusube9 あれ?この引用されている記事は異なるメモリに対するお話ではないんですか?」 / Twitter
キノコになりたい🍄さんはTwitterを使っています: 「@kariya_mitsuru @yohhoy 私としては、異なるvolatileオブジェクトのアクセス間でも結局x86ならmovで十分なのでは??? と考えていたので、この記事で見事に間違っていることが分かりました・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@onihusube9 @yohhoy あ~、それはダメですね…」 / Twitter
yohさんはTwitterを使っています: 「@kariya_mitsuru @onihusube9 通常は異なるアドレス(変数)アクセス間のConsistencyが議論の対象ですね。ただ一部の超よわよわメモリモデルプロセッサだと、同一アドレスアクセスの順序すら入れ替わることがありえたり(Intel Itaniumのld命令とか)」 / Twitter
yohさんはTwitterを使っています 「x86メモリモデルのままmany core化とか無理やったんや」 / Twitter

blog

メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
メモリモデル (プログラミング) - Wikipedia
マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
言語仕様とメモリモデル:柴田 芳樹 (Yoshiki Shibata):SSブログ
C#のメモリモデル、スレッド処理 - tixture55’s diary
プロセッサのメモリコンシステンシモデルについて - FPGA開発日記
メモリコンシステンシについて
std::atomic の挙動がメモリオーダーによりどう異なるか - uchan note
データ競合と happens-before 関係 - uchan note
C++ の release sequence の意味と役割 - uchan note
メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて) - FPGA開発日記
メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて) - FPGA開発日記

Javaの並行処理を理解する(入門編) - Qiita
C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
第 1 章 マルチスレッドの基礎 (マルチスレッドのプログラミング)
C++ マルチスレッド 入門
C# - マルチスレッド化でのC#メモリモデルの挙動|teratail
atomic::compare_exchange_weak - cpprefjp C++日本語リファレンス
yohさんはTwitterを使っています 「@uchan_nos https://t.co/pImzOF89xO TSOより強いsequential consistencyを実現するためにXCHG命令が使えますね。」 / Twitter
c++ - Why does a std::atomic store with sequential consistency use XCHG? - Stack Overflow
逐次一貫性 - Wikipedia
メモリコンシステンシモデル memory consistency model - ppt download
yohさんはTwitterを使っています 「C/C++メモリモデル上はbit-fieldの扱い超ややこしくて、隣接するbit-field間は並行アクセスすると全部ぶっ壊れる可能性があった気がする(やや過激な表現)」 / Twitter
yohさんはTwitterを使っています 「“Strong” and “weak” hardware memory models | Sutter’s Mill http://t.co/1HdfybmFRG SeqCstなメモリモデルでARMの新しいinstructionがいけてる(ようになる)みたいな記事があったな と」 / Twitter
“Strong” and “weak” hardware memory models – Sutter’s Mill
yohさんはTwitterを使っています 「AppleM1登場で ARM/x86 memory consistency modelのような超マイナー領域話題に日が当たってるのウケル」 / Twitter
yohさんはTwitterを使っています 「今はなきItanium(IA-64)のよわよわメモリモデル https://t.co/GPalabvCVD 同一スレッドから同一メモリ位置を2回loadする順序ですらひっくり返る(ことがある)位だったらしいので凄い」 / Twitter
[cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model
SPARCのメモリオーダリング: 竹下世界塔の計算機よもやま話
yohさんはTwitterを使っています 「メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳 https://t.co/77SfsgR0Wi 続編!!」 / Twitter
メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
yohさんはTwitterを使っています 「個人的にも "裏技" という印象が強いかなぁ... memory coherence制御ってマルチコアプロセッサの基礎的なレイヤのイメージがあるから そこをOS thread単位で変えられるとか聞くとびっくり(ハード寄り知識不足に起因した印象なのかもしれず)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「良い解説記事。他のメモリモデルをサポートすることは特に禁じられてないだろうし、裏技かどうかはともかく / https://t.co/b2PB8GfcRK」 / Twitter
Kazuho OkuさんはTwitterを使っています 「裏技かどうかは感覚の話であって記事の技術的正確性には関係ない話だけども。個人的には、より制限のきついtsoモードで動くのは仕様準拠である以上、フラグで制御できる省電力モード足すのと変わらん程度では感」 / Twitter
やまささんはTwitterを使っています 「うーん、TSOをいまだに積極的に採用してるのってx86以外だともうSPARCくらいしか残ってないのでは……」 / Twitter
中村 実さんはTwitterを使っています 「(´-`).oO(世の中のプロセッサが概ねTotal Store Orderingに収束しているのは、マルチプロセッサの祖であるIBM System/370がTSOを採用したからだよな。S/370がもっと弱いオーダーリングを採用したら今頃のトレンドもそうなっていたと思うよ)」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「4つのメモリ(順序)モデル。DEC Alphaは歴史上もっとも弱いメモリモデルを持っており、異なるスレッドでの書き込み順序はまったく保証されていなかった。メモリモデルは Alpha < ARM/PPC < x86/x64/SPARC < i386 の順で強くなっており、Javaのvolatileはi386を基にしている。 https://t.co/8y1GZLWEKu」 / Twitter
Weak vs. Strong Memory Models

メモリバリア

メモリバリア

C++ Developer Guidance for Speculative Execution Side Channels | Microsoft Docs
/Qspectre | Microsoft Docs
NVD - CVE-2017-5753
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Security Research & Defense
Mitigating speculative execution side channel hardware vulnerabilities – Security Research & Defense
SpectreBustersあるいはLinuxにおけるSpectre対策
本当にわかる Spectre と Meltdown
【図解】CPUの脆弱性[Spectre/Meltdown]と投機的実行の仕組み〜分岐予測とアウトオブオーダー実行〜 | SEの道標
[SpectrePrime] [MeltdownPrime] とCPUのサイドチャネル攻撃 〜Evict-Time/Prime-Probe/Flush-Reload〜 | SEの道標

Twitter

histric-1

Fadisさんのツイート: "小学生「おじいちゃん、今はCPUは書いた順に命令を実行なんてしないし、バリアも置かずにデータを覗き見したら何が読み出されるかわからないし、システムコールはint 0x80じゃないんだよ」 (つまりこういう事か"
СЮУ1228さんのツイート: "おじいちゃんが、というか、初学者が読んだ参考資料が古すぎるために知識がこういう風にずれるのありそうだなぁと思った"
Cocoaにおける同期 – ゴミ箱
ゆたかさん🐬さんのツイート: "最近のプロセッサはOut of orderな動きもするので、volatileだけでは不十分で、メモリバリアも必要なケースもあります。特に、DMA転送する時とか。 https://t.co/QfytuYEgKg"
各種プロセッサのメモリオーダリングについて 竹下世界塔の計算機よもやま話/ウェブリブログ
中村 実さんのツイート: "ストア命令の順序はほとんどCPUで保証しますよ。x86でもSPARCでも。保証しないのはAlphaとIA-64ぐらいです。問題になるのはロード命令とストア命令の順序、ロード命令同士の順序ですな。… "
whymb.dvi
c - gcc memory barrier __sync_synchronize vs asm volatile("": : :"memory") - Stack Overflow
まさみさんは語りたいさんのツイート: "PaulといえばメモリバリアとRCUというイメージがある。RCUの実装にはメモリバリアが避けられないから。"
日記 (2015 年 8 月下旬)
松本 亮介 / まつもとりーさんのツイート: "マルチスレッドなコード、コンパイラレベルでメモリバリアしてもCPUレベルでストアとロードの並べ替えがそれなりにおきて、それに起因して全体としての問題がたまに起きるし、それに気づくのに時間使いすぎるし人類には早過ぎるのだが僕は負けない。つまりmfenceしてやれば良いのだけど大変である。"
社会人でもOSを作りたいさんはTwitterを使っています: 「movとxchgの間のリオーダってどんな感じかな。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos メモリオーダリングの話でしょうか?もしそうなら、SDMのxchg命令とVol. 3Aの「8.2 MEMORY ORDERING」見る限りは、xchgの前のmovとxchgのオーダが入れ替わる可能性もあるので、順序保証のためにmfenceは必要かな。xchgだから特別というわけでもなさそうです。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin ありがとうございます。「8.2.3.1 Assumptions, Terminology, and Notation」に登場する「write」と「store」って何が違うんでしょう。もし同じ用語だとすれば,xchgは暗黙的にlockが付与されたread-modify-writeとして実装されているので,他のread/writeと入れ替わることはないような。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 8.2.2にあるように,read同士,write同士はリオーダされないはずなので,read-modify-writeとして実装されているxchgは他のread/write命令とリオーダされないはず,という推論です。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos スピンロックで使うメモリをA、レジスタをB、Aの初期値を0として... 1. 1をBに書く 2. BをAと交換 3. Bが0でなければ2に戻る(x86ならwaitしておくとベター) ...ロック内の処理... 4, ロックを抜けるときには0をAに書く ...だったかな?x86では交換がアトミックなのがミソ。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos waitでなくてpauseだったか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@tarosukenet めっちゃ参考になります。pause以外はおっしゃる通りの実装をしていました。pauseしてみたらパフォーマンスが上がりました。とあるベンチマークが1.7秒→0.8秒くらいに。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レス遅くなりました。writeとstoreは変わらないと思います。理由は、SDM 3A. の8.2 では「processor issues reads (loads) and writes (stores)」と書かれているため、同じ意味とみなしても良いと思います。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レスありがとう!リオーダされないのは「個々の」プロセッサでのRead、Writeが範疇だと解釈しております。8.2.2のFigure 8.1に関する説明では・・・「but because of bus arbitration and other memory access mechanisms」により、複数プロセッサによるWrite順は毎回同じにならないかな、と思います。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 別々のプロセッサのwriteが同じ順にならないのは全然驚かないですね。それはリオーダとは呼ばないですよね。」 / Twitter
yoh2さんはTwitterを使っています 「「このマルチスレッドプログラム、シングルコアCPUでないと動かないんだ」の経験があります。 複数スレッドから参照される変数には volatile 付けてるし、読み書きがアトミックに済むことも確認済なのに何故……と。コンパイラが順序を入れ替えなくてもCPUが入れ替えることを知らなかったあの頃……」 / Twitter
yoh2さんはTwitterを使っています 「@yuki_shemale あるコアで行われたメモリ読み書きの順序が別のコアからは違った順序で行われたように見えるというものです。 例えば初期値0でx=1とy=1をこの順に行うとx=0かつy=1になる瞬間はないはずですが、他コアからはそう見えることもあるという。 ↓古いですが実験用プログラムです。 https://t.co/BWujQwqMit」 / Twitter
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラド

Makoto Kato ︎︎さんはTwitterを使っています 「memory orderingをエンディアンと勘違いする人いるんだ。out-of-orderとかmuti-threadとかをまず理解すべきだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C/C++のコードはコンパイラとかCPUが実行順序を入れ替えるなんて想像してないんだろうな、そういう人」 / Twitter
とみながたけひろさんはTwitterを使っています 「@kazuho (私はまだ使ったことがないんですが)LDAR/STAR命令などを使うとバリア命令が内包されるため、ほぼx86的なメモリオーダリングになるように見えるんですよね https://t.co/JFFvEvHc0S」 / Twitter
yohさんはTwitterを使っています 「ARMのLDAR/STLRって 最近のseq_cst memory orderingをそのままHW実装(保証)した感じで x86のTSOよりも"便利"になってたきがしないでもない」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk アセンブリ言語で特殊なヒントを与えます。素直に命令をA,B,Cと並べるだけでは実行順序がハードによって入れ替えられたりするので。「やっぱりアセンブリ言語使ってるじゃん!」と言われたらそうなんですが、素直に書いたとおりには動かないということで」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk それがどこから来ているかというとCPUが実際に実行しているuopという命令の粒度がユーザに見えるアセンブリ言語レベルの命令より小さいから、だったりします。我々はuopの挙動に対するヒントは与えられますが、直接実行はさせられません」 / Twitter
ytakanoさんはTwitterを使っています 「メモリバリアのrelaxed、acquire、releaseなどで、どういうアセンブリが生成されるかは、このページをみるとおおまかに把握出来る。 https://t.co/ZdGaITyGXd」 / Twitter
C/C++11 mappings to processors

メモリバリアを理解するために必要な3つのこと - yamasaのネタ帳
yamasaのネタ帳
Multithreading - x86 LFENCE、SFENCE、MFENCEの指示はいつ必要ですか? Assembly | サンプルコード [日本語]
Assembly - x86 / x86_64プロセッサでLFENCE命令を使用するのは意味がありますか? X86-64 | サンプルコード [日本語]
全 x86 プロセッサにあるわけではない命令 (July 23, 2006)
メモリオーダリング - Wikipedia
アウト・オブ・オーダー実行 - Wikipedia
メモリバリア - Wikipedia
メモリーバリア ‐ 通信用語の基礎知識
メモリバリア - C言語入門
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラッシュドット・ジャパン
DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
スレッド同期についてのエトセトラ
スレッド同期のエトセトラ 第2回
スレッド同期のエトセトラ 第3回
Load-Link/Store-Conditionalを見直した
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
マルチスレッドとメモリ同期 - primitive: blog
次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
x86よくできてる点 - w_o’s diary
linux/memory-barriers.txt at master · torvalds/linux

排他制御

データの同時更新を防ぐための排他制御 (1/3):CodeZine(コードジン)
排他制御
排他制御のあれこれ - Qiita
排他制御(楽観ロック・悲観ロック)の基礎  - Qiita
データベース利用時に自前で排他制御が必要か - プログラミングメモ
排他制御とは パソコン初心者講座
排他制御
ユーザの設定による排他制御の変更
[SQL] 11. トランザクション 2 | TECHSCORE(テックスコア)
一貫性/独立性を確保する「排他制御」を理解する (1/2):「データベーススペシャリスト試験」戦略的学習のススメ(23) - @IT
何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか - FPGA開発日記
何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか (2. LR/SCの条件) - FPGA開発日記
🎸 ライブロック 🎸について - ねぇうしくんうしくん
PFLab | Graduate School of Information Science and Technology, The University of Tokyo
講義 | PFLab
オペレーティングシステム - OS_04.pdf
オペレーティングシステム - OS_05.pdf

Latch

Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note
FutureとPromise | Scala研修テキスト
CountDownLatchを使って、複数スレッド間の同期を取る - Qiita
[Android] 何人かの非同期処理を待ち合わせる | アドカレ2013 : SP #23 | DevelopersIO
Java CountDownLatchは、ラッチをカウントダウンするthread.run()が例外を受け取ると、タイムアウト値を待ちます。 - コードログ
CountDownLatch (Java Platform SE 8 )
7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログ
CountDownLatchを改造して、別スレッドの複数並列処理の結果に応じて処理する - 気まぐれな備忘録(仮)
latch, barrier同期プリミティブ - yohhoyの日記
タイムアウト Javaマルチスレッドでカウントダウンラッチはどのように使用されますか? - 初心者入門サンプル

ロック

spinlock

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば「UNIXカーネルの設計」だと(PDP11かな?)、カーネル内のロックはいつも、SPL命令(Set Priority Level=割り込み禁止)で記述されていた記憶。」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@shirouzu マルチプロセッサが想定されていない場合はそうなりそうですね。Linux が 2.2.x の頃、SMP オフでビルドすると spinlock がマクロで割り込み禁止・許可の命令になるよと聞いて、賢い最適化だなぁと思ったんですが、その後 Xen/paravirt 対応、さらに動的に置き換える機能に進化していました。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@hdk_2 なるほど。面白いですね。 あとPDP11時代とか、ユーザモードではpreemptするものの、カーネル内では I/O待ち or syscallから抜けるタイミングでしかpreemptしなかったでしたっけ…とすると当時は spinlockをHW割込待ち以外で使うと、永久の眠りになったのですかね。」 / Twitter
suzakiさんはTwitterを使っています 「@hdk_2 えっ、何のことでしょう? 気になります。」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@KuniSuzaki CPU が 1 スレッドだけだと spinlock が割り込み禁止・割り込み許可で実現できるようになるので、それも動的書き換えで適用されていたと思いますが、最近のカーネルでもその動きが残っているのかはわかりません。以前は suspend-to-RAM と復帰のたびに動的書き換えがされるログが残っていました。」 / Twitter
suzakiさんはTwitterを使っています 「@hdk_2 ありがとうございます。 Linux kernelが1 core/1 thread で動作する場合のspinlock の割込み禁止・許可対応ですか。 suspend-to-RAMからのレジュームで書き換えられるはちょっと気持ちが悪い。脆弱性があるかな。」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@KuniSuzaki spinlock なんて大量に使われているはずですから、むしろ、何度も切り替えてもトラブルにならないぐらいしっかりと実装されているんだなぁと思っていました」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「そういえば起動時だけじゃなかったはず... CPU をオフラインにしていくと最後の 1 つだけになる時にまた書き換えが走るはず」 / Twitter
enospcさんはTwitterを使っています 「@hdk_2 はい、記事では端折ったalternatives_smp_module_add()の延長に痕跡だけ残っています。今回調べた4.18 (RHEL8) では、起動時にUPだとlock: prefixを外し、ホットアッドされると戻す、という処理だけ残っているようです。」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@enospc ありがとうございます。何度も変更するのは無駄だということになったんでしょうね。」 / Twitter
enospcさんはTwitterを使っています 「またしても長くなりすぎた。」 / Twitter
VA Linux Systems Japan株式会社さんはTwitterを使っています 「「vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ」を公開しました! 今回は、そのinitセグメントに含まれている`.parainstructions`、`.altinstructions`、`.altinstr_replacement`の各セクションを取り上げます。 https://t.co/pgeNBv940J #VALinux #技術ブログ」 / Twitter
vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ - VA Linux エンジニアブログ

pthread_rwlock_wrlock

Makoto Kato ︎︎さんはTwitterを使っています 「こういうの見ると、なんでRust側のIssueの言及がないのかわからんし、こういうためにhttps://t.co/z3wsMjCcq6で今後についていろいろ考えてるのを触れない理由が特にわからない https://t.co/PlQfd3sByV」 / Twitter
Rustの std::sync::RwLock はLinuxでwriter starvation問題を起こす (macOSなら平気) | 俺とお前とlaysakura
Tracking issue for improving std::sync::{Mutex, RwLock, Condvar} · Issue #93740 · rust-lang/rust
Makoto Kato ︎︎さんはTwitterを使っています 「でparking_lotもこれはWebKit由来のコードから来てて、、、って話で、そもそもそのWebKitのコードは予想通りFilip Pizlo作というのは流石ですよねー https://t.co/7Y0CeqpOHr」 / Twitter
Locking in WebKit | WebKit
小崎 資広さんはTwitterを使っています 「これかなりの回数突っ込まれて某glibcメンテナがお前らは互換性というものをなんにもわかってないとキレ散らかしてた記憶がある。つまり誰かがやった遥か大昔のチョンボを引きずったというのが私の理解」 / Twitter
Kazuho OkuさんはTwitterを使っています 「一番きらいなPOSIX関数はpthread_rwlock_wrlockです。rwlock、確かlinuxで(だけ)デフォルトreader優先なので、wrlock取ろうとして詰まりがち。そもそもreaderが大量にいるからrwlock使うのに、なんでデフォルトreader優先なんだろ...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そしてreader優先かwriter優先かを指示するAPIはPOSIXにないので、linuxだけワークアラウンド入れることになる。ダックタイプ最高! https://t.co/LCFPSczeqH」 / Twitter
Kazuho OkuさんはTwitterを使っています 「macOSは、なんでそんなバグがあるねんみたいな感じだけど、linuxは、なんでそんな変なAPIやねんみたいなのが時々ある」 / Twitter
yohさんはTwitterを使っています 「https://t.co/Xtx0f5CV67 一方C++標準ではRW-lock優先順位は規定なしとしたのであった」 / Twitter
nakameguro_feature.cpp vol.8
まさみさん⋈語りたいさんはTwitterを使っています 「確かにrwlockの実装としてreader優先はおかしくなりやすい。ソースは大学生の頃のワイ(一回実装した)。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「確か2つロック(mutexとセマフォ)使って、1つ目のロックが取れないと2つ目のセマフォを取れないような作りだったと思う。性能は悪い。」 / Twitter

Twitter

その他

ロック

がくぞさんはTwitterを使っています 「ロック関連ぱっと見で不要そうに感じても、それが本当に不要で安心して消して良いって確信を得るのには凄いコストかかるからこういうのデッドコードになりがちなんですよね…… 単体テストでロック無くても良い若しくはロックが必要であることを示すのもエグい難いですし……」 / Twitter
かとじゅんさんはTwitterを使っています 「なるほど。再入できないロックだとデッドロックで気づける?かもだけど、再入可能なロックを使ってるとやってしまいがちかもなぁ…。」 / Twitter
nico_shindannin(診断人)さんはTwitterを使っています 「不要なロックを書いてしまう →そのコードを知らない人が「あそこもロックなら、念のためここもロックだな」と増やしてしまう →どんどん伝播していく やつですね。分かるのじゃ。」 / Twitter
nico_shindannin(診断人)さんはTwitterを使っています 「以前言ったのじゃが、対策の1つは、複数のスレッドから呼んではいけない部分に「複数スレッドから呼んだら死ぬAssert」をどんどん追加していくことじゃ。コードの意図が分かり無駄ロックを足す人はなくなるし、実行タイミングによって発生するマルチスレッドの問題の発見率も高まるのじゃ。」 / Twitter
nico_shindannin(診断人)さんはTwitterを使っています 「ということを仕事でいおうと思っていたのじゃが、言ってなかった…」 / Twitter
nico_shindannin(診断人)さんはTwitterを使っています 「とツイートしまったことで、今日言ってしまったら、特定されそうじゃ…」 / Twitter
がくぞさんはTwitterを使っています 「同様に🍥Transactionalとかもそれが間違ってつけられてた時に検出しにくいのがアレアレ」 / Twitter
がくぞさんはTwitterを使っています 「なので🍥TransactionalよりTransactionモナドとかDBIOとかあーいう機構の方が間違えにくくて好き」 / Twitter
がくぞさんはTwitterを使っています 「いうて僕もここうん年はロックフリーな実装しか書いてないなー。actorに任せるなり、副作用が局所化できてるなら最後の副作用部分でCAS命令にするだけで十分だったり」 / Twitter
がくぞさんはTwitterを使っています 「いうて僕もここうん年はロックフリーな実装しか書いてないなー。actorに任せるなり、副作用が局所化できてるなら最後の副作用部分でCAS命令にするだけで十分だったり」 / Twitter
がくぞさんはTwitterを使っています 「なので🍥TransactionalよりTransactionモナドとかDBIOとかあーいう機構の方が間違えにくくて好き」 / Twitter
がくぞさんはTwitterを使っています 「@megascus アレアレすぎてアレ」 / Twitter
入門ゆとり💉💉さんはTwitterを使っています 「@gakuzzzz 付けたけどつける場所間違えてたから動いてなかったとかもあったりしてアレ。」 / Twitter
がくぞさんはTwitterを使っています 「そういう意味ではImmutable中心にして副作用を局所化するのはロックフリーを促進させる側面もあるんだなー」 / Twitter

Intel_AMD

まさみさん⋈語りたいさんはTwitterを使っています 「Intel SDMとAMD APMで超基本的な内容が矛盾してることが分かった。Intel SDMではLOCK-REPプレフィックスの組み合わせは許されていないのに、AMD APMでは許されている。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxで使っているinstruction decoderはIntel SDMに基づいて作っていたので、Legacy prefixは4バイト(4種類)まで、という理解で作っていたんだよね。ところがAMD APMは5バイト(5種類)までOKとか書いていて草」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「最大4バイトまでなんやな、ということでinsn_value_tをu32で定義しちゃってるんだよ。どうしようかこれ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「違うわ。これはAMD APMの記述ミスや。REPとLOCKは使える命令が限られていて、お互いに違う命令をサポートしているから、どうやってもこの2つが同じ命令に対してかけられることがない。後半の説明にそう書いている。デコーダの説明がおかしい。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka 詳しくは下記メールを参照のこと・・・。 https://t.co/j5Nw5VcHbH LOCK-REPプレフィックス付けるとintelでは何が起きるのだろうか?(普通に動きそうだけど)」 / Twitter
Re: [PATCH v2 1/3] x86/uprobes: Fix not using prefixes.nbytes for loop over prefixes.bytes - Masami Hiramatsu
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka あっ、わかったこれはひどい」 / Twitter

lock poisoning

ドッグさんはTwitterを使っています 「Rust の標準ライブラリ(Mutex や RwLock)は lock poisoning の仕組みを持ってるけど,panic の伝搬にはコストがかかるので,それを切り離して必要なときだけ使うようにしたいのか.そもそも lock poisoning とは?という解説もある | 'Launching the Lock Poisoning Survey' https://t.co/FAZHa0Acvc」 / Twitter
Launching the Lock Poisoning Survey | Rust Blog
monochromeさんはTwitterを使っています 「Rust、子スレッドのpanicを親スレッドに伝播させる方法はあるのだろうか」 / Twitter
monochromeさんはTwitterを使っています 「子スレッドがバグると帰ってこなくなってしまうのが辛い」 / Twitter

Distributed RW lock

ytakanoさんはTwitterを使っています 「Distributed RW lock。こんな単純な方法でスケールするの? https://t.co/crubUwVxmR」 / Twitter
1024cores - Distributed Reader-Writer Mutex
ytakanoさんはTwitterを使っています 「これなら自分でも実装は出来そう」 / Twitter

histric-1

OS作れないマン WalB担当さんのツイート: "タスクの概念がないしカーネル空間でのロックなのでスピンロックで実装していたんが、そういえばハンドラの中からLock呼び出すとデッドロックするよなあ…というかデッドロックが発生したので、TryLockを実装した。"
Community Blog - ファイルロックと新OFDロック
Kazuho Okuさんのツイート: "RDBにおいてはデッドロックはリトライで解決するものという前提が抜けてる? / デッドロックを減らすパフォーマンスチューニング論としては面白い / “デッドロックおじさん戦記 - Mercari Engineering Blog” https://t.co/Aqdjx85hdA"
デッドロックおじさん戦記 - Mercari Engineering Blog
Kazuho Okuさんのツイート: "実際問題としてデッドロックの発生率があがると過負荷になってユーザにエラー返すことになるのはそのとおりだろうけど、その説明がないと、リトライしてないの???ってなる"
ファッション自作OSマンさんのツイート: "割り込みハンドラから書き込んで,メインループで読みだすようなキューを競合から保護するには何使えばいいんだ?割り込みを禁止するのは簡単だけどマルチコア環境だと意味ないしな."
ファッション自作OSマンさんのツイート: "ローカルCPUについてはcliで割り込み禁止しつつ,スピンロックで保護するのがお手軽な感じかな."
satさんのツイート: "正解。linuxでいうところのspinlock_irq{,save}ですね… "
ファッション自作OSマンさんのツイート: "LinuxはそういうAPIがあるんですね.saveって何をsaveする意味なんですか?… "
PEN🍄海猫さんのツイート: "lock cmpxchg でぐるぐる?… "
ファッション自作OSマンさんのツイート: "しかし、flagsを保存する関数のサフィックスがirqsaveなのはちょっと違う気がする。歴史的な命名だとは思うけど。masksaveとか。"
Man page of SEM_OVERVIEW
SODA Noriyukiさんのツイート: "先月、自前のロック作ったばかりなんだよなあ(といってもmutexと条件変数で作った)。 なんかLinuxのmutex/rwlock/POSIX semaphoreを生で使うと、公平性に難が出る(数~数十秒、特定のスレッドがロックを独占する)例に遭遇したんだよねえ。SolarisやNetBSDだとそこまで不公平にはならないんだけど。"
SODA Noriyukiさんのツイート: "もちろん、元々の主旨(ふつうはシステムの提供するロックを使え)には全く同感。 最適化についても、速度に問題が出て、プロファイルでボトルネックを特定してからでいいよね。とはいえ、O(N^2)以上のコストがかかるアルゴリズムとかは使わないように最初から気をつけて書いたほうがいいけど。"
まさみさんは語りたいさんのツイート: "libc由来のゆらぎなのかなあ?それともスケジューラがおかしいか。いずれにしてもmutex使ってるなら問題ないのでは。自前のspinlock(lock xchg)でなければ・・・・。… "
SODA Noriyukiさんのツイート: "自前実装カーネルとかならともかく、いつCPUを失うか分からないuserlandで自前spinlockとかダメダメですよねえ。 原因がどこか全然調べてないです。1000行くらいの再現プログラム(もっと削れるけど、対処を優先してたので削ってない)はあるから、どこかに晒したほうがいいのかしら。… https://t.co/ydUpxMjhaJ"
中村 実さんのツイート: "POSIX mutexはもともとfairnessを無視する機構ですが、POSIX semaphoreにはfairnessに関する仕様上の規定があるような。 https://t.co/7MPUSV90Tu 私が昔調べた範囲ではLinuxのPOSIX semaphoreも守っていたはずです。… https://t.co/yhbdmI3Oom"
NAKAMURA Minoru's Diary (2013年8月)
中村 実さんのツイート: "と思ったら、さらに昔の日記ではLinux上のPOSIX semaphoreがunfairな挙動をしていると自分でも書いていた。 https://t.co/RXeSd64RFm… "
NAKAMURA Minoru's Diary (2007年9月)
NAKAMURA Minoru's Diary (2004年4月)
まさみさんは語りたいさんのツイート: "Linuxカーネル内のロックの選び方はかなり簡単で、割り込み延長の場合はspinlock、それ以外はmutexが基本。"
まさみさんは語りたいさんのツイート: "基本以外のロックについては、それぞれの動作が理解できていないなら使わないで! seq_lock/rcu/rwlockとかね。"
まさみさんは語りたいさんのツイート: "ロックより寧ろメモリバリアをどの場面でどう使うかとかの方が難しい。まあ、基本的には並列性が気になったらatomicを使うこと。"
FreeBSDのread-mostlyロックのソースコードを読んでみた - Qiita
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ ロックの初期化時にsleep可能か設定して、設定に応じて内部でのロックの取り方が変わる仕組みなんだ。 FreeBSDのread-mostlyロックのソースコードを読んでみた on @Qiita https://t.co/25iu1dOkqS"
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「公平なロックわかった。賢いな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「あとで実装してみよ。実用的にはticket lockingで良い気もするが。」 / Twitter

mumumuさんはTwitterを使っています 「The lock holder and the lock waiter pre-emption problems:nip them in the bud using informed spinlocks (I-Spinlock) [EuroSys '17] VMM環境でLockホルダーが動くvCPUのプリエンプトによるマルチスレッドAppの性能悪化を防ぐため,逆に残りのTime sliceが不十分なvCPUにLockをとらせない.」 / Twitter
mumumuさんはTwitterを使っています 「Preemptable ticket spinlocks: improving consolidated performance in the cloud [VEE '13] Ticket LockがVMM上で致命的に相性が悪い(Lock Waiter Preemptionが発生)ことを指摘し,対策としてTicket Lockに(Fairnesssを考慮して)Ticket値に応じたTimeoutをもたせた. https://t.co/uxiEm5M5Dj」 / Twitter
vee13-pmtlock-paper.pdf

スピンロック ‐ 通信用語の基礎知識
ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
_InterlockedCompareExchange Intrinsic Functions
minix smpのロック実装 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Community Blog - ファイルロックと新OFDロック
失敗ロック例いくつか - 兼雑記
並列プログラミングにおけるロックの効率的な使用 | iSUS
www.nminoru.jp/~nminoru/data/b2con2006_nminoru.pdf
NAKAMURA Minoru's Diary (2009年7月)
Linuxカーネル4.2リリース | OSDN Magazine
分散ロックという名の過ち - Software Transactional Memo
JavaScriptでデッドロックを作ってみた - Qiita
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace - hibomaの日記
Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい - hibomaの日記
Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳
いもすさんはTwitterを使っています 「Rust言語のMutexにpoisonedという状態があるのに最近気づき、今まで他の言語でmutexを安全には使えていなかった可能性に気づき猛省した。ロック中に例外やエラーが起きたら、守っていたデータは安全ではない可能性があるので、意識せずロックが取れてもデッドロックになっても確かに困るよね……。」 / Twitter
いもすさんはTwitterを使っています 「具体的には例えば「mutexでロックして構造体を半分書き換えたときに0割エラーなど想定していない場所でエラーが発生し巻き戻ってしまった状態」に対し、どこまで書き換えたかわからないので別のスレッドが「ロックを取って中途半端な状態から再開」しても困るし「永遠にロックが取れない」状態も困る。」 / Twitter

ロックフリー

C言語で苦しむロックフリー入門(仮
Lock-freeとWait-freeアルゴリズム - Wikipedia
64-bit Lock-free queue implementation | Syoyo Fujita's Blog
Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項
Fadisさんのツイート: "メニーコアを活かせるプログラミング、極めて有用なロックフリーデータ構造やそれに用いられる手法が特許おさえられてる事が多くて、分かってても残念な実装にする羽目になる事が稀によくある"
冬のLock free祭り safe
Compare-and-swap - Wikipedia
Lock-Free Algorithm, CriticalSection, IHostCrst - NyaRuRuが地球にいたころ
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ロックフリーアルゴリズムで使う不可分操作 Compare-And-Swap (CAS) をデッドロック発見器でモデル化してミューテックスを作ってみた.2つのスレッドが同時にクリティカルセクションに入らないことが(よく見ると)わかる.右の方を見ると,スレッド Q が果敢に挑戦している.涙ぐましい…(T_T) https://t.co/gpIe6kCe5M」 / Twitter
FadisさんはTwitterを使っています 「ロックフリーなデータ構造を実装する上で難しいのは実装すること自体じゃなくて、特許を回避する事だと思う」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Iock freeやobstruction freeは用語の付け方が変な気がするな。系全体のライブロックフリーとデッドロックフリーならわかる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「wait freeも、プロセスがライブロックしないか、あるいは弱い公平性が担保されたlock freeアルゴリズムだけど、waitが全く無いわけじゃない。名付け方が謎すぎる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「ロックフリーはハザードポインタが必要な時点で負けてる感があるな」 / Twitter
mumumuさんはTwitterを使っています 「SPECK: a Kernel for Scalable Predictability [RTAS '15] マルチコア環境でのOSのPredictabilityを向上させるために,Kernel ObjectをLock-lessなデータ構造に置き換えた話.Radix Trieとか本で見たデータ構造がでてきて感動したが,完全に理解できたかというと微妙.自前のComposite OSで実装してる」 / Twitter
An introduction to lockless algorithms [LWN.net]

楽観的並行制御

ogiwaraさんはTwitterを使っています 「ここ10年間でトランザクションのスループットが100倍になってるんですね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf 何が効いているんですか?」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 元々、ロックを一元管理するデータ構造(Hash tableなど)が当たり前のように使われててかなりキャッシュのパフォーマンスが良くなかったんですよね 今はそういったデータ構造を使う事はタブーとなっています」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 楽観的並行制御、という方法によってreadする時にはlockを取らないようにする、というのが主流になったのも一因ですね」 / Twitter

ベクタークロック

ベクタークロック - Google 検索
ベクトルタイムスタンプ - Google 検索
ベクタークロックと競合検査 - uchan note
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
Efficient on-the-fly data race detection in multithreaded C++ programs - IEEE Conference Publication
FastTrack: efficient and precise dynamic race detection: Communications of the ACM: Vol 53, No 11

futex

Man page of FUTEX
Man page of FUTEX
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「Linux では条件変数は futex で実現されている.面白いことに cond_wait は mutex_unlock; futex_wait; mutex_lock と実装されており unlock と wait は不可分ではないのにデッドロックしない.共有変数版デッドロック発見器による futex および条件変数のモデル化と分析例. https://t.co/Mz7DN4NzOf」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「デッドロックしない秘密(?)は futex が参照する共有変数にある.モデルはここに置いた. https://t.co/ytoAPMjbtJ」 / Twitter
m_prod_cons_futex.ml
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「不可分じゃないとなぜいけないのかという例はこっち. https://t.co/UIpAxNVXWz」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「生産者・消費者問題.セミナーで作るデッドロック発見器を使った例.条件変数の wait はミューテックスのアンロックと待ちに入る動作が不可分とされているけど,試みにこれを分離した条件変数を作って入れ替えてみるとデッドロックする.分離した2つの操作の間でもう1つのスレッドが動けるため. https://t.co/rMd1D3YPuC」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「送受信するデータ量がバランスしていなくて,最終的にデッドロックする例. https://t.co/GSeTKQagV7」 / Twitter

Ticket lock

Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Ticket lock - Wikipedia
Microsoft PowerPoint - 3Sync [äº™æ‘łã…¢ã…¼ã…›]

Wikipedia

モニタ (同期) - Wikipedia
ミューテックス - Wikipedia
クリティカルセクション - Wikipedia
排他制御 - Wikipedia
同期 (計算機科学) - Wikipedia
競合状態 - Wikipedia
ビジーウェイト - Wikipedia
テスト・アンド・セット - Wikipedia
スピンロック - Wikipedia
イベント (プログラミング) - Wikipedia
不可分操作 - Wikipedia
セマフォ - Wikipedia

Twitter

@uchan_nos

OS作れないマンさんのツイート: "Linux Weekly News の "What is RCU, Fundamentally?" で勉強しよう https://t.co/Ern7KS6QJd"
OS作れないマンさんのツイート: "Sleepable RCUとかあるのか。奥が深い。"
OS作れないマンさんのツイート: "CONFIG_PREEMPTが定義されていない場合、カーネルコード実行中は明示的にSleepしない限りタスクスイッチが起こらないからsynchronize_rcuがうまく動くのか。"
OS自作したい。技術書典6・う38さんのツイート: "Goならわかるシステムプログラミングの話。同期と非同期、blockingとnonblockingは直行する概念?selectは確かに通知が来ない間はブロックするからブロッキングなのは納得するとして、非同期なのか?本文での「非同期」の説明「入出力準備ができたら通知をもらう」に従うと、まあそうなのかな…… https://t.co/oK4WnKSdXK"
OS自作したい。技術書典6・う38さんのツイート: "多分この違和感は「非同期」の認識の違いに起因するんだな。非同期って言うと、ある処理をOSに依頼しつつ、自分は別の処理をする、という感じがする。selectは、OSに頼んだ複数の仕事の完了を待つ感じなので、仕事が複数になっただけで、あくまで同期処理な気がするんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uchan_nos 前提としては,そのatomic変数を共有メモリ上で共有していて,かつatomic性が保証されている必要があります。なのでたとえば,共有メモリでのatomic性を一般には保証しない分散処理をしていると前提が容易に崩れます。」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: https://t.co/ocoKLlkO3f "The execution of a program contains a _data race_ if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, [...]" でした」 / Twitter
[basic]

スピンロック

Livaさんのツイート: "アトミック命令のコストによって、スピンロックの性能は変わるなぁ。もうちょっとちゃんと検証しないと #liva_notebook"
Livaさんのツイート: "gcc builtinで書けば、__sync_fetch_and_addが使えるならそれを使うのが一番はやくて、__sync_lock_test_and_setがそこそで、__sync_bool_compare_and_swapはとても遅い #liva_notebook"
Livaさんのツイート: "たぶんアーキテクチャ依存だから、silvermontがそう、というだけの話なのだけども #liva_notebook"
Livaさんのツイート: "silvermont(但し1チップの中に64コア詰まってる)"
Livaさんのツイート: "O2つけただけでがクラッシュする問題、結局アラインメントと適切なvolatileが不足してたオチっぽい #liva_notebook"
Livaさんのツイート: "スピンロックを実装する時は、いろんなループにasm volatile("":::"memory");を挟んで最適化を抑制しないといけない。何時も忘れる。 #liva_notebook"
Livaさんのツイート: "ほんの些細な排他制御のミスがあるお陰で、12コアでは動いても256コアでは動かない問題アゲイン"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一昔前に、Linuxカーネル開発者「スピンロック使うな」、DB屋「性能に必要」という論争があった記憶…スケジューラ周りの合理的な挙動変更なのにDB側スピンロックだけ性能低下、みたいなコンテキストだったかな。 https://t.co/PGVny5T4Ia」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「スピンロックしてる間にスケジューラによってプリエンプションされるケースというのは普通に起こるのでそういう場合にMCSキュー内での追い越しを許容してスループットを高めるスケーラブルなスピンロックCST-Lockというものがあってですねっていう話を期待されている?」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 普通のスピンロックだとNUMAのとき不平等になりそうとか、最悪時間が予測できんとかデメリットもありそう。割り込みとポーリングとかだと違う話になるかもしれんけど。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian NUMA向けに改良されたスピンロックも結構研究されてます。Lock Cohortingあたりでググると良い入り口になるかと。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 同一NUMAノード内で待ち行列を作って、待ち行列先頭がグローバルロックを取る。待ち行列が尽きるまでグローバルロックを離さないことで、NUMAノード間での頻繁なロック切り替えを抑制して整流するみたいな感じかな?」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian そんな感じです。MCSでRW-Lockとか亜種がたくさんあります。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi NUMAノードが3個以上の場合はグローバルロックでも待ち行列を作るのかな?って書いてて思ったけど、これトークンリングっぽいので障害とかに弱そう。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian 一般にNUMAでもマルチコアでもどれかのコアやソケットが壊れる系の障害は潔く諦めています。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi なるほど、そうなのか…」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi スケジュールされるんだったらspinlockじゃないような気がする(実装をミスっている?)んですが、ユーザ空間で実装する人はそういうのも含めてspinlockって呼んじゃうんでしょうか?個人的にはSCHED_FIFOみたいな完全オレオレ制御RTタスクだけが使うものかと思っていましたが・・・。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 何をスピンロックと呼ぶかに流派があるっていう話ですかね。インメモリDBの文脈でユーザ空間でスピンロックする人などは割と普通にそういう実装使いますよ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi おお、そうなんですね!ユーザ空間でspinlockは実装できるけど、個人的には普通のアプリでは全く無意味だと思っていました。(意味があればlibcなどで定義してそうとか)」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 大学の授業でpthread_mutexと自作スピンロックで簡単なベンチマークをやったような覚えがあります。速度のためならスピンロックという選択肢は割とよく有ります、1桁ぐらいは性能が違ったはず。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi クリティカルセクションのサイズの問題はありますが、システムコールするとしないとでは大違いですからね。ただ、不平等性などが発生する可能性はユーザが受け入れるか対策すべきという話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@mhiramat 探してみると、この辺の話ですね。 https://t.co/4i4ZQ7Ivgq」 / Twitter
怒りのLinus――メンテナにかんしゃく玉爆発(1/2) - @IT

排他制御

ロックフリーのkumagiさんのツイート: "そうなんです、排他処理の話をするときにすぐに「ロックの実装にはTestAndSetやCompareAndSwapみたいなread-modify-write命令が絶対必要」って誤った知識をばらまく不勉強な人が大学教授にも散見されるのでこの季節は警戒が必要です。"
ロックフリーのkumagiさんのツイート: "もちろんxchg命令を使えっていう意味でもないですよ。当然ですよ。"
satさんのツイート: "排他制御 == ロック と思ってる人は感覚的にかなり多いですね… "
ロックフリーのkumagiさんのツイート: "セマフォさんが悲しそうにこちらを見ている…… "
Kazuho Okuさんのツイート: "ケースバイケースなんじゃないかな。例えば消費期限が短い場合に家で消費し切れないようなケースなら、奥のやつを取る方が資源の有効活用になるはず… "
まさみさんは語りたいさんのツイート: "これ、あまり良い習慣とは言えないよね。… "
satさんのツイート: "compare and swap: スーパーで自分の手に取った牛乳を陳列棚の奥のほうにある賞味期限が長いものと交換してカゴに入れること"
まさみさんは語りたいさんのツイート: "極端に消費期限が短い場合はそうですね。牛乳とかは微妙かな。うちでは消費速度が一定していない気がする。… "

モデル検査

histric

Kazunori Iriya さんはTwitterを使っています: 「でけた。セミナーで学んだイベント同期による相互作用のモデルの説明に出てきた並行合成の例を自分のコードでも再構成できた! 左がお手本、右が自分のコード。イベント同期まだ一部しか実装できていない。ぼちぼち実装していこう。これまでのソースはこちら。https://t.co/0MBgOGLKUT https://t.co/FdP7l8QZUk」 / Twitter
composition_prep.js
いけべさんはTwitterを使っています: 「Mutex をプロセスで表現する。 Free 状態では lock イベントに応答して Locked に遷移し、逆に Locked 状態では free イベントに応答して Free 状態に戻る。 https://t.co/wLqMiqQF8a」 / Twitter
いけべさんはTwitterを使っています: 「この Mutex と協調して共有メモリープロセスを触る Muter プロセスを定義する。 lock を提示してから共有メモリーに read を投げ、得られた値に 1 を加えて書き戻す。そして free を提示する。 https://t.co/RPiHoV3WlS」 / Twitter
いけべさんはTwitterを使っています: 「ここで二つの Muter プロセスを(同期イベントなしで)並行合成する。すると非常に大きな遷移を持つプロセスになる。(一方のプロセスから他方のプロセスの全状態に遷移しうるので、組み合わせで巨大になる) https://t.co/UJNcwkOgDk」 / Twitter
いけべさんはTwitterを使っています: 「お互いの提示するイベントに関心のない Mutex プロセスと共有メモリープロセスも並行合成する。 ロックされていない状態でも書き換えを受け付ける(!) https://t.co/ua562xSLFL」 / Twitter
いけべさんはTwitterを使っています: 「ここで並行合成した二つのプロセスを、 lock, free, read, write を同期イベントに指定して並行合成する。 すると、結果はご覧のとおり。 ふたつの Muter は他方が lock を取って読み書きする間お行儀よく待つようになる。遷移の可能性は極端に少なくなり共有メモリーには無事 2 が書き残される。 https://t.co/NSbA3bgdlY」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有変数(共有メモリ)とロック・同期機構を組み合わせて作るマルチスレッドプログラミングは難しいけど,メモリを共有しない非同期メッセージングを主体としたプログラミングもまた難しい.つまり難しい…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「いずれにせよ,詳細化検証を体験すると大きく認識が変わると思うのだけど,ギャップがあるので,まずは振る舞い全体の可視化からはじめて,ゆっくり段階的に進めるという感じです…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「非同期メッセージングをプロセス・スレッド間相互作用とするシステムの検証は、仕掛り的な中間状態が多くて比較的難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有メモリと同期機構を組み合わせたマルチスレッドプログラミングでは、デッドロックや安全性、ピンポイントのライブネスのようなものは検証しやすいけど、観測対象をうまく選べなくてなんというかある範囲の振る舞いを網羅するような正当性検証が難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「状態空間を状態変数で規定する状態ベース仕様のための Alloy が欲しい。てか、状態状態うるさい。Z3 でつくるか…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチスレッドプログラミングにコードレビューとテストだけで臨むのは厳しい.(広義の)モデル検査はテストでは見つけることが難しい問題を発見できるので設計を支援する強力な武器になる.道具として役に立つだけでなく,使い方を学ぶこと自体が設計力をつける訓練になる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「モデル検査で使われる表現形式はプログラミング言語よりも抽象的なレベルで動作や性質を記述できる.単なるお絵描きとは異なり「動く」ので強くフィードバックがかかる.システムを抽象的に表現し理解を確認・共有できる.これにより品質保証だけでなく設計の選択を広く素早く検討することにも役立つ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドのコードを書いてる(レビューも)ときは全体のことを想定しているつもりでも,実際には想定しきれないほど組み合わせ状態がある.視覚的に見ればわかる.200行程度のコードでそれが確認できる.するとその上でどう検証すればいいかという可能性が見えてくる.そしてステップアップできる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセス代数 CSP (Communicating Sequential Processes) の表示的意味論と操作的意味論のトレースモデル上での等価性証明を公開した.Isabelle/HOL 2014 による.構文は CSP-Prover に合わせてある.領域は Isabelle のライブラリにある完備束を使用. https://t.co/sppc98Cz82」 / Twitter
hatsugai/CSP-semantics
hatsugai@PRINCIPIAさんはTwitterを使っています 「CSP の詳細化検査ツール SyncStitch で使っている主要なアルゴリズムはほぼすべて Isabelle で証明した. - 表示的意味論と操作的意味論の等価性 - 操作的意味論上で定義した表示での詳細化関係と弱模倣存在の等価性 - 発散検出アルゴリズムの正当性 証明していないのは安定失敗のとこ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「通信するシステムの仕様を表現し検証するためには、視点をシステム内部の状態から外部との相互作用に移す必要があります。新しい視点と表現形式の獲得、これがポイントです。「並行システム?関係ない」と思うかもしれませんが、いまや通信しないシステムはほとんどありません。おすすめの技術です。」 / Twitter

hatsugai@PRINCIPIAさんはTwitterを使っています: 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「表現形式というのはそれだけで力を持っている。表現が手に入るとさらにその上での操作という武器が手に入る。さらにさらに問題の傾向と対策がレシピあるいはヒューリスティクスとして整理できる。つよい。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器で使うアルゴリズムの基礎になる定理を Isabelle で証明した.非決定的な遷移系 P と決定的な遷移系 Q の間に非対称な弱模倣が存在すれば P のトレース集合は Q のトレース集合に含まれる.単に非決定的であるだけでなく内部遷移がある. https://t.co/aslrTzxJ4y」 / Twitter
hatsugai/simulation_traces: Formal proof by Isabelle/HOL: Existence of asymmetric weak simulation between a deterministic transition system and a nondeterministic transition system implies the inclusion of traces.

histric-1

中村 実さんはTwitterを使っています: "POSIXのread-writer lockがwriterがブロックされた後に、後参のreaderがロックを獲りにいった場合にロックを獲れるかブロックされるかは実装依存なのね。 https://t.co/o7mtqLE4K0"
Urabe, Shyouheiさんのツイート: "@yukihiro_matz 結局イベントループで使おうかと思うとブロックする箇所はepollなりkqueueなりの一箇所に集中してくれないと困るわけで、そうなってくるとkqueueのように「なんでも待つ」というAPIにしてくれたほうが使う側は便利です。というかepoll不便。"
shinichiro hamajiさんのツイート: "こさきさんの言う通りlinuxはなんでもfdて思想なんだろうしepoll不便はイチャモンすぎない…というのはともかく、linuxの方向性としてはuserlandで新fd種を定義できると良かったりするのかなぁとかそういう https://t.co/2Ucw8Venq3"
Rui Ueyamaさんのツイート: "@kumagi さすがズバリ。"
The Art of Multiprocessor Programming - 第七章前半
第6章 カーネル
Rui Ueyamaさんのツイート: "前回はカーネルスレッドのレースコンディションで猛烈に大変なデバッグをするはめになったから今回はロックじゃなくてチャネルと通信を使って同期するようにしよ。もうあれはこりごり。"
satさんのツイート: "@yutakakn Cというかlinuxカーネルにはseqlockという楽観的排他の実装があります。read側はとりあえずロックかけずにデータを参照して、データが更新されていることを事後に確認したらやり直し"
Fadisさんのツイート: "ハザードポインタ、少なくともx86においてはポインタ長の倍の長さのCASの登場によってどうしても欲しい代物ではなくなったんだよな"
ABA問題 - Wikipedia
Kazuho Okuさんのツイート: "auto fiberより、基本関数呼び出しは同期オブジェクトを返して、そいつをjoinすると結果が返るみたいなのが好き。そうすればselectみたいにreadとwriteとか文脈ごとに待ち受けコンテクストを用意する必要なくなるし"
SODA Noriyukiさんのツイート: "実は最近公平性で問題が出てticket lockで一旦は解決したんですが https://t.co/Qf0VqKKRAC ticket lockの場合、負荷をかけるとこの条件変数待ちでグルグルCPUを消費するという問題がでて、結局 @yamasa さん式の奴 https://t.co/1HqQbQOQ1O で解決しました。… https://t.co/Hq1Ulxdqzn"
Fadisさんのツイート: "ロックフリーとか頑張っても性能が出るかはアクセスパターン次第だからな。たくさんのスレッドがつつくリソースを高速に捌くためにまず検討すべき事は「それって本当に共有する必要があるの」だよ"
汎用kumAGIさんのツイート: "「STMの設計と進化」も同様にslideboomにしか置いてなかったっぽいのでdropboxに上げ直し。内容は古いけどSTMの研究するならスターターセットとしてオススメしたい資料。 https://t.co/8CpBiHBBY4"
STMの設計と進化_.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy/IPMsgの自作condは、broadcast相当しか用意してないなぁ。 (一つのcondで待つスレッド数は最大2~10程度) そろそろ、XPは完全切り捨てして Win32 CONDITION_VARIABLE(長い!)を使った方が良いかな。… https://t.co/B56vN00rwY"
SODA Noriyukiさんのツイート: "多コアで broadcast はアカンので signal 推奨じゃないかと思います、たぶん。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "よく考えたら、VS2017なら(C++11以降で導入された)std::condition_variable が使える?(XPでも)"
FadisさんはTwitterを使っています: 「Vulkan 1.2の規格がリリースされた。Vulkan 1.2では「Aが済んだらn増える」「mに達したらBを開始する」ができる新しいセマフォ timeline semaphoresが標準の機能に入る他、シェーダの言語にHLSLを使いやすくする複数の拡張が取り込まれる https://t.co/eRTOlp4OON」 / Twitter
Khronos Group Releases Vulkan 1.2 - The Khronos Group Inc

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「条件変数のコーナーケースの話。 そういえば、'96年頃のUNIX系のネイティブスレッド環境利用が難しかった時代、プロセス間条件変数を自作したが、いろいろと苦労した記憶。 特にwait()=ロックを外す&眠る2操作のギャップに、notify()が実行されると永遠にwakeupせずと。 https://t.co/Ka3XdhyrGj」 / Twitter
条件変数とダンス(Two-Step Dance)を - yohhoyの日記
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「notifyを取り零すことなく眠る」を実現するため、sigmask交換とsleepをatomicに行えるsigsuspend(2)というsyscallを使ってようやく解決。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu pipeのwriter側への1バイト書き込みを semaphore への post reader 側からの1バイト読み込みを semaphore の wait の代わりに使うって手も… これならベル研時代のUNIX でも使えるし(ぉ post が PIPE_BUF を越えて溜まる可能性があるような応用だとまずいですが…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、普通の用途なら使えそうですね。 なお上記のinterproc-cvには、大量のメモリinodeの利用権確保用でした。=wakeup通知はそのinode開放を待つプロセス群のみwakupしたいと。 (実際の実装だと、開放側は眠りprocリストを走査&開放予定inode番号待ちのprocのみにsig送信してました)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu なるほど。ディスクリプタですから、あまり沢山作るのは避けた方が良くて、その用途だと使えそうにないですね…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「マルチスレッドプログラミングは同期や排他制御が難しいけど、実は起動と終了も難しい。例えば準備ができる前に走り始めちゃうスレッドがいたり、誰かがゴールを見つけたのでそのことを他のスレッドに通知して終了してもらったり。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「async/awaitによる非同期が特段に難しいだけで、スレッドモデルで考えれば並列処理そのものはそれほど難しくない。」 / Twitter
まっちゃらさんはTwitterを使っています 「wait-free/lock-free/obstruction-freeの定義について https://t.co/TQSWWDKRt2 定義だけじゃなくて直感的理解とかリアルワールドのことも書いてあって最高に勉強になった」 / Twitter
obstruction-free
mumumuさんはTwitterを使っています 「Ad Hoc Synchronization Considered Harmful [OSDI '10] システムの同期プリミティブを使わないで独自に同期機構を実装することをAd Hoc Sync.と名付け,いくつかの並列プログラムに含まれるAd Hoc Sync.とそのバグ数など定量的な調査を行い,ソースコードから自動でそれらを検出するSyncFinderも実装」 / Twitter

Linux Kernel lockdep機構解説 - VA Linux エンジニアブログ
ytakanoさんはTwitterを使っています 「これ面白い。spin lockの利用とスレッド数、スケジューラの関係は自分の経験とも合致する。」 / Twitter
kumagiさんはTwitterを使っています 「実ミドルウェア群に対しいろんなロック実装で差し替えてパフォーマンス比較して得られた知見から作られた、使うべきロック判定用フローチャート、これはいいな。 https://t.co/Y7HC9KzOh1」 / Twitter
CPUのメモリアクセス命令投機実行の資料を読む - FPGA開発日記
Kouji MatsuiさんはTwitterを使っています 「多分、ここからCPUの実行コンテキストをspin waitで待機してはいけない、と言う理解までにかなり高い壁がある感じ」 / Twitter
t157さんはTwitterを使っています 「一般的なプログラムを書く人たちには理解できないと思うんだけど、処理と処理の間にdelayとかsleepとか短い待機時間を挟むなんて考えられないって思うでしょ? でも機械とか装置制御の場合、機械の動作時間が必要で待機する時間がmustで必要なのね。これを理解してもらえないのよね。w」 / Twitter
雁人さんはTwitterを使っています 「裏技というと大げさですが、、通信ドライバの中の謎のスリープとか、、なぜかfor分空で1万回回したりとか、ハード絡みのときや、Linuxカーネル部分の書き方見てたら、理解できない書き方になってたとかね。。後々理解したり、、色々失敗して覚えたり。。言語使うときの諸注意ですね、、」 / Twitter

スケジューラ

その他

今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
マイクロサービスアーキテクチャにおける分散スケジューラ
Goのワークスティーリング型スケジューラ | プログラミング | POSTD
はじめてのにき(2017-11-03)
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
マルチプロセッサのタスクスケジューリングに基づいたWebシステムにおけるコンテナのハードウェアスケジューリングのシミュレーション構想 - 人間とウェブの未来
Google、マネージドCronサービスCloud Schedulerを発表
GameTechDev/GTS-GamesTaskScheduler: A task scheduling framework designed for the needs of game developers.
3-CNF SATからpolygraphのacyclicity判定問題への帰着 - すぴすらのろぐ
List of order theory topics - Wikipedia
CiNii 論文 -  単一仮想記憶型OSにおける外部スケジューラの実装
Rustのasync/awaitとスケジューラの話 / rust-async-await - Speaker Deck
000055579.pdf
uchanさんはTwitterを使っています 「リアルタイムOSについて素人でよく分からないんだけど,例えばプロセスのリストをforで処理したりすると,もうそこで処理時間が読めなくて詰む,みたいなことは無いの?」 / Twitter
KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
詳解xv6 Scheduling 1 - うたもく
コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘 - GIGAZINE
スケジューラーと優先順位の逆転 - 借り初めのひみつきち

big.LITTLE

macOS

高梨陣平さんはTwitterを使っています 「素晴しい記事。M1 Macが実際よりも速く感じるのはmacOSの優れたスケジューラのため。人は複数のタスク全体のスループットよりも個々のタスクのレイテンシにより敏感。かつてLinuxのCompletely Fair Queue (cfq) I/O schedulerは全体のスループット最適化をデフォルトで優先したため却って嫌われて消え」 / Twitter
Ars TechnicaさんはTwitterを使っています 「Apple’s M1 is a fast CPU—but M1 Macs “feel” even faster due to QoS https://t.co/DeFFXURRTF by @jrssnet」 / Twitter
Apple’s M1 is a fast CPU—but M1 Macs feel even faster due to QoS | Ars Technica
高梨陣平さんはTwitterを使っています 「てしまった。m1 Macではスケジューラのpriorityが5段階、background, utility, userInitiated, and userInteractive、default存在。defaultはOSがpriorityを決定する。この時、Intel MacでもM1 Macでもこの5段階は変わらない。しかしM1ではOSはできるだけ優先度の低いタスクを遅い Icestormコアで実行」 / Twitter
高梨陣平さんはTwitterを使っています 「し、速いFirestorm コアをpriorityがuserInitiated and userInteractiveのタスクのために空けておく。例えば10GBの。ファイルの圧縮は実際にはM1よりもintelのほうが速い。しかしM1ではシステムがidleでもbusyでも速度がより一定になる。優先度が高いタスクでもM1 Macのほうがパフォーマンスは一定だ。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「.@jingbay OS QoSに関係するかもですが、Appleキャッシュ系特許に QoS management in L2 (申請: 11/12)、認定 (14/04) https://t.co/flnVulXoeS Application aware SoC memory cache partitioning (19/08)、公開 (21/02) https://t.co/NzNXMBt6u0 ※SoC Fabric概要有 気になるのがいくつもあります。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; Patent "QoS management in the L2 cache", Granted: Apr 10, 2014 (Dec 2011) https://t.co/HvwvITMWmN "Parallel coherence and memory cache processing pipelines", Appl, Mar 12, 2020 (Sep 2018) https://t.co/fjiDxjWY5i Memory Latency https://t.co/xKEm3pFC8u https://t.co/BhO1fyfXJU https://t.co/2WahZO7SVd」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "Application aware SoC memory cache partitioning", Apple, Patent Application, Feb 4, 2021 (Filed: Aug 2, 2019) https://t.co/LWzSZFZoiI Fabric Coherence Controller SoC Switch bar I/O Switch bar Apple Patent https://t.co/pW4vSGBMGg QoS in Memory, Scalable NN engine, etc. https://t.co/aFxMVcdR5p」 / Twitter
AppleのM1チップはタスクの処理方法を工夫することでユーザーに「処理が速い」と思わせている - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「あのm1のスケジューリングの説明、イマイチ納得いかないっていうか、フォアグランドプロセスがブロック解除したら、いきなり高性能コアで動かしてるってこと? それってバッテリ食わない? みたいな気持ち。クロックの上げ下げとかコア間のミグレーションとかそのへんの仮説棄却もされてないし」 / Twitter

Izumi TsutsuiさんはTwitterを使っています 「bit.LITTLE みたいな symmetrical でない MP を OSはどう処理しているのか、みたいな解説ないんかな(これを低レイヤ質問室に投げればよかったのか)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tsutsuii ググったところARM的な公式ページは Energy Aware Scheduling (EAS) https://t.co/we4UELISJa っぽい。 ここから辿れるOSPM summit https://t.co/wrBaR20QJ0 にスライドがあった。 ちゃんと見てないけど OSPM II 2018/04/18 の https://t.co/dnadJUfCTh とか詳しそう」 / Twitter
Home of the OSPM Summit 2020
Energy-Aware real-time task partitioning - Parallel or Sequential? - EATaskPartitioning.pdf
suzakiさんはTwitterを使っています 「@n_soda @tsutsuii bit.LITTLE(ヘテロコア)におけるスケジューリングは興味があったので調べてみました。 2013にSamsungがDVFSを使った論文を出しています。 Power-aware task scheduling for big.LITTLE mobile processor https://t.co/l7wVWFDj25 これも決定打ではないですが。」 / Twitter
Power-aware task scheduling for big.LITTLE mobile processor - IEEE Conference Publication
Makoto Kato ︎︎さんはTwitterを使っています 「big.LITTLEはコヒーレンシが面倒だし、littleで動かしてたタスクをbigに持って行く時のマイグレーションは非常にコストが高いので、Intelのは都合のよいベンチはいいデータを出すけど、自分の用途で必要なビルド環境的なのは、Intelおいしくないと思うんだよね」 / Twitter
AlderLakeのパフォーマンスの問題を修正するためにLinux5.18に登場するIntelのスレッドディレクター|自作.com

NUMA

Raphine Project

256コアマシン向けのOSを作る – Raphine Project<サイト製作中>
livaの雑記帳(2016/10) – Raphine Project

デュアルソケット・ザ・ワールド

デュアルソケット・ザ・ワールド Windows 7 で NUMA が認識されない件に付いてMicrosoftのサポートに問い合わせてみる
デュアルソケット・ザ・ワールド NUMA (Non-Uniform Memory Access)

AMD

EPYC

海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「cat /sys/bus/pci/*/numa_node してみると、EPYC2のサーバでは(ほぼ)全てのデバイスが -1 となっているのにはどういう理由があるんじゃろ。 Skylake-Spでは繋がっているCPUに応じたnuma_nodeが設定されていて、デバイス間の距離導出に使えたのだが…。」 / Twitter
Hiromichi ItouさんはTwitterを使っています 「@kkaigai EPYC 7002シリーズ以降は、メモリコントローラもPCIeコントローラもServer I/O Die(sIOD)に集約されているので1ソケットだと等距離だからかな?」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@itoooon @kkaigai Gabriel Lohさん (Senior Fellow, AMD) の Chipletについてのスライドが解りやすいと思います "An Overview of Chiplet Technology for the AMD EPYC and Ryzen Processor Families", Aug 24, 2021 https://t.co/A5lOId595H 詳細は ISCA 2021のペーパーに。 https://t.co/0qjDs0jUG8」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "An Overview of Chiplet Technology for the AMD EPYC and Ryzen Processor Families", Gabriel Loh, Senior Fellow, AMD, IEEE SCV - Industry Spotlight, Aug 24, 2021, (4.6 MB / 36 pp) https://t.co/SwRDdjnaun https://t.co/t0V7tfi2Dc Industry Track, ISCA 2021 https://t.co/lh6slPsRMP https://t.co/FNwfaxfQer」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@ogawa_tter @itoooon 1-socketのマシンなのですが、PCIのroot-complexが4つ見えているのはこの図の通りのようですね。情報ありがとうございます。」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon それだと numa_node_id=0 でまとめてくれれば良いのですが、-1 になっちゃうのが謎です…。」 / Twitter
Hiromichi ItouさんはTwitterを使っています 「@kkaigai 確かに-1になるのは謎なので、ソースコードを斜め読み中。」 / Twitter
Hiromichi ItouさんはTwitterを使っています 「@kkaigai おお、いろんな理由で、numa_nodeの値が正しく設定できない時があるので、書き込み可能にしたのね・・・ https://t.co/vpewbMQGY7」 / Twitter
pci, add sysfs numa_node write function - Patchwork
Hiromichi ItouさんはTwitterを使っています 「@kkaigai と言うことで、ACPI等から正しい値が取得できていないのが、-1になる原因の模様です。該当のチップセット用のドライバを作って取得するワークアラウンドもある模様ですが、上記の書き込み可能パッチに関するのやり取りの中でも、推奨されてませんね。」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon おわ!わざわざ調べて頂いてありがとうございます。 一つのワークアラウンドとしてはアリですね。 あとコレは、GPU&lt;-&gt;SSD間の距離の自動認識に使っている情報なので、別の何かで「距離」を表現すればnuma_node_idを意識せずに済むかもしれません。」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon 一枚目が既存のSkylake-Spの2-socket機、二枚目がEPYC2の1-socket機なのですが、別にnuma_node_idに拘らなくても、各々のPCIe root complexを持っているCPUが同じ/違うという事が判れば十分なので、距離導出のロジックを変えて対応しようかなと思いました。 https://t.co/BuoHUbJYNj」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon あ、EPYC2機、Hyper-Threading切ってない。」 / Twitter

Kazuho Okuさんのツイート: "コアの半分以下しか使いきれないソフトウェアだと、このほうがパフォーマンス上がるし、ゲームとかベンチ対策考えると妥当な設計な気がする / “【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのア…” https://t.co/hxMq34LTSe"
【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのアーキテクチャ - PC Watch
品川 高廣さんのツイート: "Linux カーネルの automatic NUMA balancing は Ryzen Threadripper 2990WX とはあまり相性が良くないんだろうか。オンにするとかえって遅くなるらしいんだが。"

RHEL

23.31. NUMA ノードの管理
第4章 CPU
8.2. NUMA の自動負荷分散
8.4. NUMA 対応 KSM (Kernel SamePage Merging)

MS

Hyper-V 仮想 NUMA の概要
VMM での仮想 NUMA の展開

blog

NUMAとメモリとゲームとサーバ | ツチノコブログ
NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
SQL Server と NUMA at SE の雑記
[パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
VMworld 2014速報: Breakout Session 【vSphere / vCenter Operations Manager】編!! - Japan Cloud Infrastructure Blog - VMware Blogs
NAKAMURA Minoru's Diary (2013年2月)
NAKAMURA Minoru's Diary (2013年6月)

Wikipedia

NUMA - Wikipedia
Non-uniform memory access - Wikipedia

NUMA 向けのアプリケーションの最適化 | iSUS
MCAPI事例: マルチコア設計におけるCPU間通信 - Mentor Graphics
Microsoft PowerPoint - Arakawa-20110715.ppt
matsutani_kyushu2008.pdf
KeyStone マルチコア DSP トレーニング | デジタル・シグナル・プロセッサ | TI
Topic cloud/ja - NAIST Ito-Lab - ITS, Mobile and Cloud Computing
Microsoft PowerPoint - shohei-g.poster.pptx
マルチコア組み込みシステムの挙動、
タダ飯を食わせろ
C02.pdf
Slide 1
qemu/KVM を実行してて、Auto NUMA Balancing と ksm の食合せが悪い場合のワークアラウンド “ echo 0 > /proc/sys/kernel/numa_balancing” もしくは ksm を停止 - hiboma のコメント / はてなブックマーク
HPCシステムズ HPC Do It Yourself Clubへ
FadisさんはTwitterを使っています: 「NetflixがFreeBSDのカーネルのネットワークスタックを改良したらEPYCでの帯域が3倍になった話。200Gbpsでデータを吐き続けるサーバにとってNUMAノード間をデータが往復するのは許容できないオーバーヘッドらしい https://t.co/U049CYwMeo」 / Twitter
Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance - Phoronix
FadisさんはTwitterを使っています: 「ネットワークガチ勢は皆カーネルを迂回すると思っていたけど、カーネルを魔改造する一派も居るんだな」 / Twitter
FadisさんはTwitterを使っています 「NUMAなマシンでは、プロセスが使用するメモリとプロセスを実行するプロセッサを同じノードにしておかないと性能ガタ落ちだから、Linuxカーネルは新しいスレッド(=現在のノードのメモリを共有する)を可能な限り同じノード内のプロセッサで動かすような割り当てを行う筈」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs cgroupsのcpusetを使うと、特定のグループのプロセスが使って良いプロセッサを制限できます。確かnumactlに--physcpubindをつけた場合裏でこれを設定していた筈。」 / Twitter

Processor affinity

プロセッサ親和性 - Wikipedia
Processor affinity - Wikipedia
Tech TIPS:Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する) - @IT
Linux - CPU プロセッサアフィニティ(親和性)の設定! - mk-mode BLOG
プロセスへのCPU割り当てについて
DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする – Microsoft SQL Server Japan Support Team Blog
25.6. KVM プロセッサーアフィニティの設定
CPU/Processor Affinity - SyncHack
北森四葉さんはTwitterを使っています 「Ryzen Threadripper 3990X、Processor Groupの問題が取り上げられてるな https://t.co/yksMCIxRB4」 / Twitter
The Windows and Multithreading Problem (A Must Read) - The 64 Core Threadripper 3990X CPU Review: In The Midst Of Chaos, AMD Seeks Opportunity
Usagi Ito 👩‍💻 High-tech Hermit 🧙‍♀️さんはTwitterを使っています 「なるほどWindowsだと見えるコアが64を超えるとアプリ側で特別変態的にアフィニティー制御を入れて作ってない限り悲しい事になるのね。」 / Twitter
北森瓦版 - Ryzen Threadripper 3990Xが解禁される
Windows 10 Proは128スレッドのAMD Ryzen Threadripper 3990Xを処理できない - 自作ユーザーが解説するゲーミングPCガイド
Windows10+Ryzen Threadripper 3990X問題について整理してみる - 自作ユーザーが解説するゲーミングPCガイド

Tickless カーネル

Twitter

ゆたかさん🐬さんのツイート: "ticklessカーネルだと、1ミリ秒ごとにタイマ割り込みが動かないので、CPUがアイドル状態でCPUの負荷を抑えられるのです。 https://t.co/qBxrbmMvnt"
ゆたかさん🐬さんのツイート: "RHEL6やWindows8などの比較的新しいOSでは、ticklessカーネルなのでタイマ割り込み自体で時刻管理するのではなく、クロックソースを使います。 OSに負荷がかかると時刻が遅れるということはないですが、クロックソースのチップで時刻精度が変わってきます。 https://t.co/brG73hwD46"
Fadisさんのツイート: "紛らわしいからソフトリアルタイムを指すリアルタイムはインタラクティブって呼ぶようにしてる"
Fadisさんのツイート: "ハードリアルタイムで大事なのは、処理が早いかじゃなくて、ある決まった時間内に処理を完了させる事をシステムは保証できるか、だよ。プロセッサがその処理を片付けるのにかかる最長の時間は明確か、とかOSはその処理が完了する前にその処理を中断させる事が無いかとかそういうところが問題になる"
とみながたけひろさんのツイート: "仮想メモリやキャッシュが存在しない環境がなくなりつつある今、私の期待するリアルタイム性はもはや「一番優先度が高いスレッドがCPU時間を全部とれる」ぐらいになりつつある"
とみながたけひろさんのツイート: "最近はLinuxでさえticklessになったし、OSのリアルタイム性よりもUSBのパケットが1msecに一度しか送れないとかそっちのほうが辛くなりつつある"
とみながたけひろさんのツイート: "「無限のCPUパワーでビジーループしててもスレッドが勝手に切り替わったり、スレッド切替粒度が1秒に100回しかなかったりだとつらいだろ?」というの、後者はticklessで解決したし、もう前者があればなんとかなるじゃん、CPUパワーはなくともコア余ってるし、みたいな(電池環境だとそうもいかないけど)"
とみながたけひろさんのツイート: "なおLinuxはデフォルトだとリアルタイムスレッドにはCPU時間の95%ぐらいまでしか使えないので完全なビジーループはできない(5%ぐらいはフツーのスレッドに時間が強制的に割り当てられてしまう)。一応0にできるが大抵の場合は設計ミスだと思うし、そこまでギリギリだと多分0にしても問題は解決しない…"
とみながたけひろさんのツイート: "20年ぐらい前に、Linuxでsnes9xを書いてた頃は「くそーVBlank周期の59.83fps=16.72msec待ちたいのに無駄にたくさん待ってしまう。なんだこのOSはー」とか言ってたわけだが、今や普通に100nsecぐらいの精度でスレッド切替できるのだった。そう、時代は流れたのだ…(当たり前"
とみながたけひろさんのツイート: "まあ裏では多分「ハードリアルタイム」なOS他が動いているマイコンが内蔵された、細かい仕様は教えて貰えないIPやチップがあるからこういう楽ができるんだろうけど、まあ、いい時代になったということで…(本当か?)"
とみながたけひろさんのツイート: "多分このツイートをしている環境だけでも、無線LANやBTのチップ、HDDやSSDのコントローラー、各種PMIC、USBコントローラー、LCDのパネル制御、…とかで、私のような軟弱プログラマが書いたのではない「プログラム」が動いているんだろうなあ"
とみながたけひろさんのツイート: "「インターフェース」とかに、昔はRTOSにおける待ち行列モデルとか色々細かく解説記事が出てたけど、もうそういう時代じゃないんだよな…(こんなこと書いてる自分もほとんど忘れている)"
とみながたけひろさんのツイート: "ガチのOS研究している人に怒られそうなのでこのへんで止めとこ…(すでに無知をさらしている感じのところがいくつかあるが実際そうだしまあいいや…"
mumumuさんはTwitterを使っています 「System Noise, OS Clock Ticks,and Fine-Grained Parallel Applications CPU-boundな大規模並列処理を考えると,OSのノイズによる1コアの少しの遅延が全コアに伝播してしまう可能性がある.ここでは,その原因のノイズとしてとくにTickの影響が大きいことを指摘.https://t.co/2a8Wd97au7」 / Twitter
noise3.dvi - Noise05ICS.pdf

jiffies ‐ 通信用語の基礎知識
Ticklessカーネルとクロックソースに関するお話 - めもめも
2.4. Tickless カーネル
3.6. Tickless Kernel
LinuxのFull ticklessを試してみた
Timekeeping in VMware Virtual Machines
LinuxKernel - ソフトウェアエンジニアリング - Torutk
各々の生き方: Chromeの不具合?とWindowsの仕組み
jiffies更新を追いかける - Linux関係メモ@宇治屋電子
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
「Haswell」って何だ? 第4世代Coreプロセッサが採用するアーキテクチャのポイントを一気に押さえよう - 4Gamer.net
[まとめ]Linuxシステム時刻について - Akira's Tech Notes
Clock / Timer
9月版 タイマにまつわるエトセトラ(1/2) - @IT
時刻と時間の管理、プロセスのスケジューリング
今更Sleepの解説するなんて、と思うのです。
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ | VA Linux Systems Japan株式会社

TSC

MSR_or_ハードコーディング

Time Stamp Counter - Wikipedia
x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs [Linux 4.10] - Linux Kernels
Getting TSC rate in x86 kernel - Stack Overflow
[tip:x86/timers] x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[4/4] x86/tsc: set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[v3] x86/tsc: add X86_FEATURE_TSC_KNOWN_FREQ flag - Patchwork
[U-Boot] [PATCH 6/6] x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()
[PATCH 0/9] x86: TSC calibration update - Google グループ
mOS/tsc_msr.c at master · intel/mOS
社会人でもOSを作りたいさんのツイート: "PCのタイマーぜんぜん分からん… 正確に時間を測るの不可能では?"
社会人でもOSを作りたいさんのツイート: "まず、驚くことにHPETがレガシーデバイスとして分類されてるIntel製のチップセットがあるので、レガシーフリーを目指す身としてはHPETは避けたい。すると、周波数既知のタイマーとしてはACPI PM TimerかInvariant TSCということになる。(続く)"
社会人でもOSを作りたいさんのツイート: "Invariant TSCの周波数はMSRから取得できるのだが、BIOSの設定でバスクロックが変更されているとタイマーにズレが出る。ACPI PM Timer は、最近流行りのHardware-reduced ACPIでは搭載されてない可能性がある。"
beepcap@HTTPSの強制には反対さんのツイート: "不可能だよ?… "
社会人でもOSを作りたいさんのツイート: "不可能だってことなので、まあ適当にしとくか、という気持ちになった"

CPUクロックに基づく相対時刻の計測
本の虫: 100ナノ秒ぐらいの分解能をもつクロック実装
Livaさんのツイート: "雑魚すぎてTSCの情報を取ろうとして嵌った。ずっとこのページとにらめっこしてて、答えがちゃんと書いてあるのに、華麗にスルーしてた。 https://t.co/GVudVa6n4O"
arch/x86/kernel/tsc.c : set X86_FEATURE_ART for TSC on CPUs like i7-4910MQ : bug #194609 - Patchwork
Livaさんのツイート: "CPUID 15hでTSCの詳細な値取れるじゃーん、あれでも取ってきた値おかしくね?ってずっと悩んでたのだけど、boot_cpu_data.cpuid_level == 13、つまりCPUID 0Dhまでしか取れないから、15hで取った数値になんの意味もない"
AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
Converting Sandy Bridge TSC to wall clock time
Time Stamp Counters - atp
andyphillips/time_stamp_counters
LKML: Thomas Gleixner: Re: [PATCH] x86/tsc: Always Running Timer (ART) nanoseconds clocksource
時間を計測する
dterei/tsc: Quick and dirty TSC access for benchmarking
TSC frequency variations with temperature
Pitfalls of TSC usage | Oliver Yang
Invariant TSC を 使う - Qiita
Page 1424
bits-2003

Local APIC timer

yuYabu☕️さんのツイート: "今から自作OS作るならPIT,RTC,HPETは使わない方がいいらしい。 #osdev_moku2"
yuYabu☕️さんのツイート: "HPET重要な特性:HPETはmemory maped deviceなのでosを介さずに直接アクセスできる。 RT mark.ユーザー空間にキャッシュできる。レジスタをOS経由で触るよりメモリを参照する方が早い。まだまだ使える(レガシーではない)"
錆ありはぐれベアメタルさんのツイート: "お客様の中にintelの中の人は居ませんか? #osdev_moku2"
yuYabu☕️さんのツイート: "これからの自作OSで利用するタイマー構成は  ACPI PM Timer(初期時計)+Loal APIC Timer(普段使い)がおすすめらしい #osdev_moku2"
社会人でもOSを作りたいさんのツイート: "タイマーイベントの管理は,最小・最大ノードをO(1)で見つけられるヒープツリーが用いられることが多い. #osdev_moku2"
Timers
Nerry さんのツイート: "lapic timerそもそも計測しないと周波数わからない時点で正確なクロックソースとして信用できないことに気付いた。"

アイドル状態

【やじうまPC Watch】ノートPCのバッテリを過剰消費しているChrome長年のバグが解決へ? - PC Watch
本の虫: Google Chromeを使うとファンの回転数が上がる理由
Shinji KonoさんはTwitterを使っています 「マウスの位置をリアルタイムで取得して記録するアプリで「CPU100%」になるのを防げという課題を出したことがあるのだが、誰も解けなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「sleep入れるだけなんだが、言われないとわからないもの。その辺りがOS/マルチタスクを理解してるかどうかってことなんだが…」 / Twitter

バックグラウンド処理

「Google Chrome 57」にはバックグラウンドタブの電力消費を抑える仕組みが導入 - 窓の杜
Google Developers Japan: バックグラウンド タブによる電源消費量の削減について

スタッター

【CPU】 超多コアCPUでゲームをするときの注意点 : ニッチなPCゲーマーの環境構築
スタッターの英語・英訳 - 英和辞典・和英辞典 Weblio辞書

コンテキストスイッチ

FPU

日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
拡張プロセッサー・ステートを保存/復元する組み込み関数
7月版 ファームウェアの置き場所を巡ってフレームウォー(2/2) - @IT
XSAVE — Save Processor Extended States
XRSTOR — Restore Processor Extended States
x86 and amd64 instruction reference

lazy FPU context switch

nakamori akiraさんのツイート: "Intel CoreおよびXeonプロセッサ内のセキュリティー欠陥は、チップの演算処理装置から機密データを盗み見される可能性がある。AESの鍵はFPUレジスタに保存されるが、そのレジスタを盗み見される可能性がある。… "
The Registerさんのツイート: "Overnight: Intel Core and Xeon processors have a security flaw that lets the math unit leak parts of its registers from one app to another - registers used for AES encryption. It's possible for malware to snoop on crypto keys in other programs https://t.co/b9q051uXc5"
Intel chip flaw: Math unit may spill crypto secrets to apps – modern Linux, Windows, BSDs immune • The Register
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665)
このコード、オシャカルトっ!さんのツイート: "CVE-2018-3665の話しで出てきてたeagerfpuって今のコードになくない?と思ったら、もうこの機能は常にonになったからon/off 切り替えというのはなくなっていた。 https://t.co/XxV9BMPPyx"
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
Kimihiro Nonakaさんのツイート: "つーか、今のx86だともうlazy FPU context switchって意味無いからなぁ"
Coreプロセッサに新たなサイドチャネル攻撃の脆弱性。深刻度は中 - PC Watch
まさみさんは語りたいさんのツイート: "タスク切替時にFPレジスタの復元を遅らせることで、切り替えたタスクが実際にFPを使うまでレジスタ復元にかかるオーバヘッドを回避するっていうあれか。"
まさみさんは語りたいさんのツイート: "Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d"
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
とみながたけひろさんのツイート: "今時のコンパイラって何でもかんでも(特にメモリコピーとか)SIMDレジスタ使ってくるんで、コンテキストスイッチ直後にSIMDレジスタ使うとかで、、、FPUレイジーコンテキストスイッチってほとんど意味なくなりつつあるんだよね… "
syuu1228さんのツイート: "でも特にAVX以上になるとFPUレジスタのサイズがでっかくなりすぎてくるから全退避・全リストアじゃなくてCPU命令で差分退避・差分リストア出来るようにしようとなった、という経緯だったような"
Lazy FP State Restoreの脆弱性が、ほとんどのIntel Core CPUに影響を与える
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
社会人でもOSを作りたいさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
LazyFP vulnerabilityの紹介

The Old New Thing

FadisさんはTwitterを使っています 「x86にはUD2っていう呼ぶとinvalid opcode例外が飛ぶ事が保証されている命令があるんだけど、これを使うと遅いx86のINTを避けてring 0に移れる事に気づいたマイクロソフトがUD2でコンテキストスイッチし始めて、Intelに「UD2もっと速くならない?」って言い出してIntelが「ふぁっ?!」ってなる話好き」 / Twitter
FadisさんはTwitterを使っています 「で、その後INTじゃなくてシステムコール専用に高速にring 0に移れる専用の命令があった方が良いよねとなって、SYSENTERや今日x86_64で使われているSYSCALLが登場する、と」 / Twitter
本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
FadisさんはTwitterを使っています 「UD2の件のソースはこれ( https://t.co/1lV3gwp5Uu )なんだけど、江添さんの紹介してるやつの話が1989年だとすると、時系列的にはこの話はUD2が追加される以前の話になるから、実際にはUD2じゃなくて本当にinvalidなopcodeでも使ってたのかな」 / Twitter
User-level threads....... with threads. - Paul Turner - Google - YouTube
suzakiさんはTwitterを使っています 「@darklie @fadis_ 日本語ブログではリンクが切れていますが、同じタイトルのHPがありました。 The hunt for a faster syscall trap https://t.co/EDqnpwuhvC IntelとMicrosoftと打合せでMicrosoftが無効命令の高速化を要求したストリーは聞いた覚えがあります。」 / Twitter
The hunt for a faster syscall trap | The Old New Thing
FadisさんはTwitterを使っています 「コンテキストスイッチが高コストというのは、かつてはx86のソフトウェア割り込みが超遅いという話だったけど、現代においてはカーネルのスケジューラが複雑なのがコストの主な原因で、syscall命令自体の実行時間はそれと比べると誤差みたいになってるのか…」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ ring0遷移の所要時間 50nsecは結構遅いと思うのですが、そんなの目じゃないほどスケジューラーが遅いってことなのかなあ。複数コアの情報取得・連係制御のコストが高い??」 / Twitter
FadisさんはTwitterを使っています 「@dekaino syscallが50nsec程度なのに対して、コンテキストスイッチ全体に要する時間が1usオーダーのようで」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ spinlockがいくつかあれば1usecくらいすぐいきそう。複数コアで排他なしのスケジューリングは困難で、原理的に排他コストがかかるのは不可避でしょう。 スケジューラーが複雑なことが主なコスト要因って表現だと、何かを犠牲にして単純化すれば所要時間短縮できそうに思えますが、ちと無理そうです。」 / Twitter

あるコンテキストスイッチの話
ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る - HPC/並列プログラミングポータル - OSDN
Project Zero: Racing against the clock -- hitting a tiny kernel race window
Concurrent と Parallel - NyaRuRuが地球にいたころ
parallel と concurrent、並列と並行の違い - 本当は怖い情報科学
Linux カーネルと FreeBSD カーネルの割り込み処理
I-26-1. コンテキストスイッチの仕組み | 日本OSS推進フォーラム
社会人でもOSを作りたいさんはTwitterを使っています: 「コンパイラが用意してくれるmemcpyの速さに感動するんだけど、これって低レイヤあるある?」 / Twitter
Toshitaka MiuraさんはTwitterを使っています: 「@uchan_nos コンパイラそのものよりは、チューンされたイントリンシック関数ですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux で、カーネル内を走行中に割り込みが走る場合と、ユーザプロセス内を走行中に割り込みが走る場合って、なんて呼び分けるんでしょう? どちらも preemption ではあると思うんだけど。 なぜこんなことを気にしてるかというと、両者のオーバーヘッドの違いを説明する文章を書いてるからです。」 / Twitter
猫ぱんちさんはTwitterを使っています 「@kazuho 前者をとくにカーネルプリエンプションと呼んで区別するくらいではないでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@nekopunch_pk ありがとうございます。kernel preemption, user preemption のような用語を定義をつけて説明することにしたいと思います cc @syohex」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱuser preeemptionのほうがkernel preemptionよりだいぶ重たいんですね。。。」 / Twitter
カーネルプリエンプション - Linuxの備忘録とか・・・(目次へ)
今月の myos - 借り初めのひみつきち
Measuring context switching and memory overheads for Linux threads - Eli Bendersky's website
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「タイマー割り込みがコンテキストスイッチが必要と判断したら、実行中のスレッドにTIF_NEED_RESCHEDをセット。スレッドはこのフラグが立っていたら、システムコールか割り込みハンドラのリターン時にコンテキストスイッチ。という感じか。」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「コンテキストスイッチの起動はここか。5.4以降のどこかはコードがかわってるっぽいが。 https://t.co/jehCXguNNL」 / Twitter
common.c - arch/x86/entry/common.c - Linux source code (v5.4.168) - Bootlin
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「ここに移動している。 https://t.co/W5kLEC3AKK」 / Twitter
common.c - kernel/entry/common.c - Linux source code (v5.15.11) - Bootlin

M:Nスレッド

UMCG

FadisさんはTwitterを使っています 「GoogleがLinuxカーネルにUser Managed Concurrency Groups(UMCG)を入れるための開発を続けている話。この機能はGoogleがLinuxでFibers(軽量スレッド)を作る為に実装し、同社のサービスで利用している物をオープンソース化したものらしい https://t.co/ZFer2JhfAy」 / Twitter
Google Continues Work On User-Managed Concurrency Groups For Linux - Phoronix
FadisさんはTwitterを使っています 「大量のリクエストを受けるサーバでリクエストに対する処理がIOでブロックした場合、CPUを別のリクエストの処理に渡す必要がある。これを実現する簡単な方法はリクエスト数分のスレッドを作る事だが、CPUの数を遥かに超えるスレッドは生成もコンテキストスイッチも時間がかかり思うように性能が出ない」 / Twitter
FadisさんはTwitterを使っています 「そのためこの手の開発では非同期IO等が使われるが、非同期IOは同期IOと比較してコードが顕著に読み辛くなる為、もっと軽量なスレッドがあったらなぁ、というのはこの手のソフトウェアが常に夢見るところだった。こうしたスレッドより軽いスレッドはFiberと呼ばれ、いろいろな実現方法が模索されてきた」 / Twitter
FadisさんはTwitterを使っています 「UMCGは1つのプロセスの中にコンテキストのグループを作り、システムコールによって現在のスレッドが実行するコンテキストを指定した物に切り替える手段を提供する。ポイントは切り替え先を明示するという部分で、切り替えを行ってもカーネルのスケジューラの処理は走らない」 / Twitter
FadisさんはTwitterを使っています 「Googleによるとコンテキストスイッチのコストのうち大部分に当たる1usオーダーの時間をカーネルのスケジューラが使っており、カーネル空間に行って戻る事自体は50ns程度の時間しかかからないらしい。従ってUMCGによるコンテキストの切り替えは通常のコンテキストスイッチより遥かに高速になる」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「M:N thread の夢再びかあ…」 / Twitter

FlexSC-Threads

ぬるぽへさんはTwitterを使っています 「osレベルでコルーチン実装するの実は面白そうだし研究もありそう」 / Twitter
ぬるぽへさんはTwitterを使っています 「僕がここでOSと呼んでるやつはglibcとlinuxカーネルのペアのことでfutexのノリです 強みはOSレベル実装だから、ブロッキングシステムコールが呼ばれたら全部ユーザー空間のメモリから読めるコルーチンにyieldするかユーザー空間のスケジューラにyieldできること だからCで自然にgoroutineができる」 / Twitter
ぬるぽへさんはTwitterを使っています 「万が一ほぼ同じ先行研究がないなら、多分Linuxカーネルとglibcに実装してちゃんと計測すれば修論になる それで性能もよければそれなりにいいとこの会議通ると思う」 / Twitter
ぬるぽへさんはTwitterを使っています 「注意としてこういうときは90%の確率でほぼ同じ先行研究があります」 / Twitter
ぬるぽへさんはTwitterを使っています 「kernel assisted co(go)routineの方の話、コルーチンの開始アドレスのキューをカーネル空間からも触れるようユーザー空間にio_uringのノリで実装することになるから実装面白そうーとか思ってたんですけど、なんかもうひとひねりするとこれio_uringそのものになりそうだな」 / Twitter
ぬるぽへさんはTwitterを使っています 「いやまぁていうかコルーチンスケジューラーが介入できるような嬉しいライブラリを作ってそのライブラリを使えばM:Nコルーチンが作れるのは当たり前なんだから、昔スレッドの実装をユーザー空間からカーネル空間に移したとき並みのうれしさがカーネルとユーザーの両者にあるかどうかですねー」 / Twitter
ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi なんかこれあった気がする…」 / Twitter
漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi FlexSCかなあ…」 / Twitter
漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi カーネルというよりユーザランドでやっちゃう感じだけどflexscがそうかも、と。ちょうど誰かが解説しているスライドがありましたよ!! https://t.co/SyMEPGDZdI」 / Twitter
FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi flexscは軽量スレッドの存在がユーザーに露出しないというのと、普通のシステムコールすらバッチ化して高速化し、なんならそれがモチベーションという点ではモチベーションの違いがありますが、本質的な実装の着想部分がかなり同じですね!何ならユーザーにgoroutine制御してもらうより速いかもしれん」 / Twitter
ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi あ、ちなみにFlexSCはユーザーランドだけなわけじゃないようです syscall pagesという、いわばsyscall_uringみたいな仕組み(ringじゃないけど)がカーネル空間に実装されてます 自分の話だと、ブロッキングシステムコールだけをいじるつもりでしたがsyscall pagesの方がシンプル」 / Twitter
ぬるぽへさんはTwitterを使っています 「ていうかFlexSC( https://t.co/kNJsD67sDY )のexception less system callのsyscall pages、普通にほしくない?実質syscall_uringじゃん」 / Twitter
FlexSC: Flexible System Call Scheduling with Exception-Less System Calls - Soares.pdf
ぬるぽへさんはTwitterを使っています 「syscall_uringさえあれば大抵の問題は解決する(適当」 / Twitter
ぬるぽへさんはTwitterを使っています 「FlexSCの実装を少し拝借して、C言語でgoroutine実現するの面白いと思うから卒論/修論でやってみてほしい」 / Twitter
ぬるぽへさんはTwitterを使っています 「GoのスケジューラもブロッキングIOだけじゃなくて、ただのすぐ帰ってくるシステムコール呼び出しとかもgoroutine切り替えの契機になったりするんだろうか、コルーチン(?)スケジューラなんも分からん」 / Twitter

軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる - 金利0無利息キャッシング – キャッシングできます - subtech
スレッド (コンピュータ) - Wikipedia
goroutineはなぜ軽量なのか - Carpe Diem
Linuxにおけるプロセス/スレッドの調査とか学習とか - Flicker's Style++
multithreading - M:Nスレッドモデル(goroutinesなど)の短所は何ですか?
Rustのスレッドで並列処理を行う - Qiita
NetBSDにおけるthread機構の方向転換か? | スラド デベロッパー
Solarisスレッドモデルとスタックスレッド - 銀の鍵 (The Silver Key)
ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング
スレッド - The Rust Programming Language
井山梃子歴史館さんはTwitterを使っています 「Google曰くオーバーヘッドはカーネルスケジューラにあるのでユーザーモードスケジューリングで解決するらしい」 / Twitter
legokichiさんはTwitterを使っています 「M:Nモデル使わなくてもlinuxのスレッドは軽くて早いよという説はどこへ行ったのか」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「実際のところ M:N モデルでも pthread だと百万個単位のスレッドが動くかどうかは怪しい気がしますね。Erlang のメッセージや go のチャンネルによるアクターモデルを酷使するには、上限を気にせず使える軽量なスレッドとユーザランドスケジューラは必須で、これは C とかでは難しいかもしれない。」 / Twitter
なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?
とみながたけひろさんはTwitterを使っています 「ファイバーをOS(Kernel)でサポートというの、いくつかやったことがある。例えば今時のアプリ実行環境ではStackClashを防ぐためにOSでSPの範囲を制限するとかしますが、ファイバーは勝手にSPを変化させるので、そのあたりの整合性を取る仕組みをKernel側に入れるとか。あとはまあdebug機構まわりかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「macOSのドライバって、もともとコルーチン的な感じで書きませんでしたっけ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なんか i/o 完了がコールバックじゃなくて、うへぇと思った覚えがある」 / Twitter
ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
ぬるぽへさんはTwitterを使っています 「@kotatsu_mi ブロッキングIO syscallを呼び出した、とか、カーネル空間でブロッキング/スケジューラーが走ってしまうタイミングで、カーネルが別プロセスに切り替えるんじゃなくて登録されたユーザー空間のコルーチンのキューや、コルーチンのスケジューラに制御を即座に戻すようにしたら面白いんじゃない?という」 / Twitter
ぬるぽへさんはTwitterを使っています 「@kotatsu_mi まぁそれで何が嬉しいかというと、io_uringをラップしたライブラリのapi縛りじゃなく、普通のlibc APIのIO(fread、socketとか)を使ってプログラミングしてもgoroutineみたいなやつが実現できそうってところではあるんですが、それって嬉しいのか?みたいな話はもちろんある https://t.co/GUrlZijErF」 / Twitter
ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
The Go netpoller - Morsing's blog
The Go scheduler - Morsing's blog

Hyper-Threading Technology

ハードウェアスレッド

とみながたけひろさんはTwitterを使っています 「ハードウェアスレッドってハイパースレッディングみたいな複数スレッドのどれが強くなるか実行パイプの空きの運次第みたいなやつとか、スパークにあった複数スレッドがほぼ同じ強さになるやつとか、スカウトスレッドみたいなソフトから見えないやつとか、色々全部〜指していたような、、、」 / Twitter
とみながたけひろさんはTwitterを使っています 「CPU世界ではまだ用語が統一気味だけど、GPUとか特定アクセラレータではみんな似た概念に違う名前つけててわけわからんくなる。まあ特許避けとか色々あるんやろけど、、、」 / Twitter
とみながたけひろさんはTwitterを使っています 「よくあるマルチコアの罠 ほぼ同じ2つの処理があるのでこれを半分のクロックにしたコア2つに分割、ってやると、両方が終わるまでの時間は同じぐらいのまま、電圧下げて電力削減!ってできる が、その結果をネットワークに流すとかやる場合、通信量がバースト的になってしまい通信完了までの遅延は増える」 / Twitter
とみながたけひろさんはTwitterを使っています 「というのに先日またもハマってしまいうーんってなってる」 / Twitter
_ko1さんはTwitterを使っています 「@takehiro_t SMT はパイプラインというよりはOoO のためのALU とかで言われることが多かったかと思います。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@_ko1 わたしもそういう認識なんですが、SPARCのナイアガラ(ハイパースレッディングできるpen4と同時期に発表)とかintelのボンネルとかはインオーダーなので、ようわからんわー、ってなってます」 / Twitter
とみながたけひろさんはTwitterを使っています 「@_ko1 特に後者はSMTのひとつであるハイパースレッディングを実装、とかintelが言ってるので、お、おう?みたくなります」 / Twitter
_ko1さんはTwitterを使っています 「@takehiro_t ナイアガラってSMTでしたっけか(もう記憶が..」 / Twitter
_ko1さんはTwitterを使っています 「@takehiro_t パイプライン共有は水平スレッディング(キャッシュミスで切り替えるやつ)じゃないかな」 / Twitter
_ko1さんはTwitterを使っています 「@takehiro_t 垂直じゃん(virtical」 / Twitter

Hyper-threading - Wikipedia
ハイパースレッディング・テクノロジー - Wikipedia
HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
続・HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
インテル® ハイパースレッディング・テクノロジーのパフォーマンスに関する考察 | iSUS
ハイパースレッディング調査 - ソフトウェアエンジニアリング - Torutk
仮想化基盤におけるCPUリソースに関する簡易整理 | Check!Site
VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~ - Japan Cloud Infrastructure Blog - VMware Blogs
ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (2/3)|基礎から覚える 最新OSのアーキテクチャー
マルチプロセッサとスケジューラ(その1) | OSDN Magazine
マルチプロセッサとスケジューラ(その2) | OSDN Magazine
1.5 プロセススケジューラ - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
FadisさんはTwitterを使っています 「GoogleがLinuxカーネルに「信頼できるプロセス」だけがCPUを共有する複数のハードウェアスレッド(Hyper Threadingとか)で隣り合わせになれるようにするスケジューラのパッチを投げている。信頼できるかどうかはcgroupsで同じタグが割り当てられているかどうかで判断する https://t.co/H8XHZ13Xmh」 / Twitter
Google Publishes Latest Linux Core Scheduling Patches So Only Trusted Tasks Share A Core - Phoronix
FadisさんはTwitterを使っています 「Hyper Threadingやそれに類する技術はCPUのアイドルを減らす効果が期待できるものの、キャッシュ等の状態を2つのスレッドが共有するため、サイドチャネル攻撃に利用できることが指摘されていた。このためOpenBSDではデフォルトでHyper Threadingを「あっても使わない」ようにする対応がなされていた」 / Twitter
FadisさんはTwitterを使っています 「linux-5.14でCore Schedulingが入りそうだという話。これは「信頼できるプロセス」だけがSMTで隣り合うようにする物。SMT(Intel用語でHyper Threading)は今日ではサイドチャネル攻撃の温床で、隣のプロセスが信頼できない場合切るしかなかったが、これで安心して有効にできる https://t.co/TRhsZQ9do4」 / Twitter
Core Scheduling Looks Like It Will Be Ready For Linux 5.14 To Avoid Disabling SMT/HT - Phoronix
FadisさんはTwitterを使っています 「信頼できるプロセスとは具体的には同一プロセス内の別のスレッドまたはcgroupsで同じタグが割り当てれられた(明示的に信頼できるグループとされた)プロセス」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ いいね。 しかもHT内の同一プロセスならキャッシュヒット率も高そう。」 / Twitter
2021年8月31日 お祭り騒ぎはもうおしまい ―Linux 5.14リリース,コアスケジューリングが統合:Linux Daily Topics|gihyo.jp … 技術評論社
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux Kernel 5.14 では、信頼できるプロセス同士のみを同一コアHT/SMTに流す「コアスケジューリング」が搭載されたが、デフォルトでは無効という話。 (VPS/クラウドベンダーから強い要求で、この機能が追加されたと) https://t.co/F6uyjV4fLD」 / Twitter
Linux Will Keep Core Scheduling Disabled By Default - Phoronix
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「信頼するプロセス同士」の定義は?と思ったら、prctl(PR_SCHED_CORE,...) でpid指定して定義する感じと。 あと信頼プロセス片方が kernel mode時のお漏らしは防げないと。(そりゃそうだ) https://t.co/EzphUhBbMZ」 / Twitter
Core Scheduling — The Linux Kernel documentation

CFS

Completely Fair Scheduler - Wikipedia
Completely Fair Scheduler - Wikipedia
Linux カーネル 2.6 Completely Fair Scheduler の内側
Completely Fair Scheduler によるマルチプロセッシング
Completely Fair Scheduler について - カメのたわごと
Completely Fair Scheduler (CFS)
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
Kazuho Oku(@kazuho)/2015年02月10日 - Twilog
Fadisさんのツイート: "Linuxのしくみ( https://t.co/HBQWDZahl6 )、スケジューラの働きを実験で見るあたりで「スケジューラが顕著に不平等になるケースを観測して、そこからCFSの実装の話になるんでしょ、わかるわかる」って思って読み進めたけど、実際はもっと平和な本だった"
Early Patches Bring BPF To The Linux Scheduler - Phoronix

BFS

Brain Fuck Scheduler - Wikipedia
Brain Fuck Scheduler - Wikipedia
帰ってきたCon Kolivas、大論争を呼ぶの巻(1/3) - @IT
Linux-ck - ArchWiki
フリーダウンロード BFS Scheduler のために Linux ::: システムユーティリティ
スケジューラについての調査 - オペレーティングシステム授業発表
Con Kolivas氏、新たなスケジューラと共にLinux開発にカムバック | スラド アップル Submission

BMQ

Fadisさんのツイート: "Linuxに新しいプロセススケジューラBMQが提案されている。これはGoogle Zirconのスケジューラを元にした物で、優先度別キューのうち空でない最も優先度の高いキューからタスクを取り出す。実行時間を残したタスクは元居たキューの先頭に、使い切ったタスクは末尾に戻される https://t.co/bgj4vYr0Us"
BMQ "BitMap Queue" Is The Newest Linux CPU Scheduler, Inspired By Google's Zircon - Phoronix
Fadisさんのツイート: "これ、説明読んだだけだと優先度の低いタスクが飢えそうなんだけど、どうなんだろ"
Fadisさんのツイート: "既にCFSがあるLinuxにおけるBMQの利点は実装が極めて小さい(パッチサイズにして20kB以下、圧縮されたカーネルバイナリのサイズで4kB以下)事らしい。性能が良いかどうかとかいいからこのフラッシュメモリに収まるカーネルをくれ、みたいなペンギンのダイエットが死活問題な方面で有用なのかもしれない"

キュー

キュー | アルゴリズムとデータ構造 | Aizu Online Judge
優先度付き待ち行列 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C
8.4. heapq — ヒープキューアルゴリズム — Python 2.7ja1 documentation
プログラミングⅡ
Skew Heap - Lilliput Steps
今週の MYOS - 借り初めのひみつきち

Digdag

Digdag | Open Source Workflow Manager for the Multi-Cloud Era
treasure-data/digdag: Workload Automation System
ワークフローエンジンDigdagのまとめ - Qiita
Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO
Digdagを使ってワークフロー管理を行う — | サイオスOSS | サイオステクノロジー
EmbulkとDigdagとデータ分析基盤と
Digdag + embulk + BigQuery + Re:dash でデータ分析基盤構築の夢を見る - 雑なメモ
Jenkinsの無秩序なジョブをDigdagで再定義する - log.fstn
ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる - techium

Linux

SchedViz

Google Opens Up "SchedViz" To Visualize Linux Kernel Scheduling Behavior - Phoronix
Understanding Scheduling Behavior with SchedViz | Google Open Source Blog
google/schedviz: A tool for gathering and visualizing kernel scheduling traces on Linux machines

stalld

FadisさんはTwitterを使っています 「Red Hatの人が新しいデーモンstalldを作っているらしい。stalldは全プロセスのスレッドの実行状況を監視し、一定期間実行されていないスレッドを見つけるとそのスレッドのスケジューリングポリシーを一時的にSCHED_DEADLINEにすることで飢餓状態を回避する https://t.co/1MVG4peof6」 / Twitter
Red Hat Has Been Working On "stalld" As A Thread Stall Detector + Booster - Phoronix
FadisさんはTwitterを使っています 「それはユーザ空間デーモンでやることなのか、という気がせんでもない」 / Twitter
住民さんはTwitterを使っています 「@fadis_ コメントに中の人?が降臨してますが、FIFO/RRのリアルタイムスケジューリングでstarveするのを防止のようで適用範囲は比較的狭そうですね。 あとカーネルでやろうとしてたけど、ほかのスケジューリングポリシーなど壊さずにやるの大変辛かったと書いてますね(わかりすぎる」 / Twitter

Restartable Sequence

FadisさんはTwitterを使っています 「Restartable Sequence: Linuxカーネルに2015年頃から備わっている機能で、ユーザ空間プロセスがシステムコールで指定した範囲内の命令を実行中にプリエンプションによってその実行が中断されると、再開は指定された範囲の先頭から行われるようになる機能 https://t.co/PdYkip6in0」 / Twitter
[RFC PATCH 1/3] restartable sequences: user-space per-cpu critical sections - Dave Watson
FadisさんはTwitterを使っています 「単方向リストへの要素の追加のような複数の操作を不可分に行う必要があり、かつ最後の操作以外は対象の状態に影響を与えないような手順の間でプリエンプションが発生した場合に、操作を最初からやり直すように設定しておくことで、ロックを用いなくてもデータ構造を壊さない更新が実現できる」 / Twitter
FadisさんはTwitterを使っています 「この手法は単一CPU上で実行される複数のスレッドが同じデータを触る場合についてのみ有効なので、複数のCPUからアクセスされるデータの保護には使えないが、CPU毎に用意されているリソースを安全に操作するためにロックを用いなくて良くなる」 / Twitter

latency-nice値

FadisさんはTwitterを使っています 「Linuxに提案されているlatency-nice値について。latency-nice値を従来のnice値から分離することでプロセスが必要としているのはより多くのCPU時間なのか、より小さいレイテンシなのかが明確にスケジューラに伝わり、いくつかの状況でより合理的なスケジューリングが可能になる https://t.co/6yHG53GTWT」 / Twitter
FadisさんはTwitterを使っています 「Linuxには従来からプロセスの優先度を指定するnice値が備わっていて、スケジューラはnice値がより小さいプロセスにより多くのCPU時間を割り当てようとする。ユーザの入力に応答するプロセスはしばしば素早くCPUを得たいが、その為にはCPU時間の多さが重要でなくても高いnice値を指定するしかなかった」 / Twitter
FadisさんはTwitterを使っています 「latency-nice値を追加することで、CPU時間は短くても良い(nice値が高い)が割り当ては低レイテンシであってほしい(latency-nice値が低い)という要求をできるようになる。latency-niceが低いプロセスはlatency-niceがより高いプロセスを止めてCPUを奪い取れるが、割り当てられるCPU時間の割合は増えない」 / Twitter
にゃははー仙人さんはTwitterを使っています 「@fadis_ 高くしたらだめでしょう」 / Twitter
FadisさんはTwitterを使っています 「@Flast_RO ほんとだ、ここ逆になっとるorz」 / Twitter
FadisさんはTwitterを使っています 「s/重要でなくても高いnice値を指定/重要でなくても低いnice値を指定/」 / Twitter

Twitter

linux-sched-history.pdf - Speaker Deck
Fadisさんのツイート: "タスク: カーネルのスケジューリング単位。昔のカーネルではプロセスと同義だったが、現在(2.6系以降)はプロセスまたはその中のスレッド1つを指す #kernelvm"
Fadisさんのツイート: "linux-0.01ではNice値を変更するとタイムスライスが増減する。驚くべきことにrootでなくても負数が指定でき、しかも果てしなく大きな値を設定できる為、一般ユーザが巨大なタイムスライスを手に入れられる #kernelvm"
Fadisさんのツイート: "linux-0.01は全タスクを舐めてタイムスライスが最大のタスクを実行する。タイムスライスがどれも残っていなかったら全てのタスクに150ミリ秒のタイムスライスを与える。sleepしたタスクにはちょっとボーナスを与える #kernelvm"
Fadisさんのツイート: "linux-0.01のスケジューラは20行程度のラウンドロビンスケジューラ。64要素の配列でそれ以上タスクは作れない #kernelvm"
Fadisさんのツイート: "このスケジューラでは必要な処理がタスクの数に比例する為、最大64ならなんとかなるけどたくさんのタスクを抱えられるようにしようとすると使い物にならない #kernelvm"
Fadisさんのツイート: "linux-1.0でプリエンプションが登場、root以外の負のniceも禁止に #kernelvm"
Fadisさんのツイート: "linux-2.0ではランキューがリストになったが、スケジューリングに全てのタスクを舐める必要がある点は変わらないままだった。またlinux-2.0からSMPのサポートが追加された。 #kernelvm"
Fadisさんのツイート: "linux-2.0のランキューはSMPであっても1本で、1本のキューから全てのCPUがタスクを拾っていた #kernelvm"
Fadisさんのツイート: "linux-2.2 linux-2.4ではlinux-2.0からスケジューラの変化はあまりなかった #kernelvm"
Fadisさんのツイート: "linux-2.6でO(1)スケジューラが登場。キューをactiveとinactiveに分けることで、activeの先頭には常に実行すべきタスクが来ている状態にする事で、キュー全体を舐めなくても実行すべきタスクを決定できるようにした #kernelvm"
Fadisさんのツイート: "人間が直接やりとりするタスクが後回しになるともっさりして見える → linux-2.6では短時間のうちにsleepする事が多いタスクを対話型タスクとみなして、起きて来たときに優先的に実行するようにした #kernelvm"
Fadisさんのツイート: "linux-2.6ではタスクの操作時のロックで全CPUが詰まるのを回避するために、LCPU毎にランキューを持つようになった。この結果、ランキューがたまっているLCPUからランキューが空いているLCPUにタスクを移動させるロードバランサが必要になった #kernelvm"
Fadisさんのツイート: "NUMAが現れたため、ロードバランサが2段階になった。まずNUMAノード間でのバランシングを行い、次にLCPU間でのバランシングを行う #kernelvm"
Fadisさんのツイート: "linux-2.6では複数のタスクがメモリ空間を共有できるようになった。これを使ってユーザ空間でのエミュレーションではないスレッドが作れるようになった #kernelvm"
Fadisさんのツイート: "CentOS3のカーネルはLinux 2.4だが中身が総とっかえレベルで魔改造されていて何故かO(1)スケジューラが使える。このカーネルの保守が辛すぎたため、最近はどこディストリもこういうことをしていない #kernelvm"
Fadisさんのツイート: "O(1)スケジューラは場当たり的な改良が多すぎて、意図しない動きをする → linux-2.6.23でCFS登場。ランキューは赤黒木になって計算量はO(log(n))に。全てのタスクはレイテンシターゲット期間中に1度はCPUを得られる(飢餓状態の回避)"
Fadisさんのツイート: "O(1)スケジューラではインターバルタイマーを使っていたが、この方法で制度を上げると割り込みのオーバーヘッドにCPUを持っていかれる → CFSではタスクを切り替えるべき時刻にタイマーをセットする為、不必要に割り込みが増えず、ナノ秒精度での制御が可能に #kernelvm"
Fadisさんのツイート: "cgroupが登場、全てのタスクで時間を割る前に、特定のグループの中でタスクの中で時間を均等に割る事ができるようになった #kernelvm"
Fadisさんのツイート: "linux-2.6.25でcgroupを応用してリアルタイムタスクが暴走して帰ってこなくなった場合にリアルタイムタスクでないタスクが全く動かなくなる問題を回避できるようになった #kernelvm"
Fadisさんのツイート: "カーネルの重要な処理が優先度最大のユーザタスクと同じ優先度になっていた為重要なカーネルタスクが押しのけられる事があった → linux-2.6.37でstop scheduling classが追加された。カーネルのみがあらゆるユーザプロセスより優先されるタスクを作れるようになった #kernelvm"
Fadisさんのツイート: "linux-3.2 CFS bandwidth controllerが登場、CPU cgroupがある期間中に動ける最大の時間を制限できるようになった。たとえ、他のタスクがなくてCPUが暇していたとしても、実行中のタスクがCPUを使う時間を制限できる #kernelvm"
Fadisさんのツイート: "linux-3.14で deadlineスケジューラが登場、指定した時間のCPUの割り当てが指定した時刻までに行われることを保証するタスクをrootのみが作れるようになった #kernelvm"
鹿さんのツイート: "cpu migration でずっと気になっていた「すぐ死ぬタスクをバランスしても無駄じゃない?」を専門家に聞けてとても良かった。 研究はあるけど、ヒューリスティックになるので、コーナーケースが出てくる。裏をかく人もでてくる。なので、今の Linux には入っていない。なるほど。 #kernelvm"
Fadisさんのツイート: "詳解Linuxカーネル第3版には100msごとにタスクを切り替えるとかactive/inactiveとか書いてあるけど、この10年でカーネルのスケジューラはごっそり書き換わった為ほとんど間違っている、と #kernelvm"
Fadisさんのツイート: "CFSは一定期間をタスクの数で割ってプロセスに時間を与えていくが、あまりにもタスクが多い場合コンテキストスイッチのオーバーヘッドだけで時間を使い切ってしまう事になる為、一度タスクの実行が始まったらコンテキストスイッチせずに使えるCPU時間の最低値が設けられている #kernelvm"
Fadisさんのツイート: "ロードバランサ: ランキューがプロセッサごとに用意されている為、ランキューが伸びているプロセッサと空いているプロセッサが生じる → プロセスが増えたり減ったり、プロセッサがやる事がなくなってしまった時にロードバランサが忙しいプロセッサのタスクを暇なプロセッサに移動させる #kernelvm"
Fadisさんのツイート: "レイテンシターゲットを短くすると応答性が良くなるがコンテキストスイッチの頻度が上がってスループットが下がる。LCPUの数が多い場合暇なLCPUがある確率が高くなる為、レイテンシターゲットを伸ばしても応答性が損なわれにくくなる。→LCPU数に比例してレイテンシターゲットを伸ばそう #kernelvm"
Fadisさんのツイート: "CPU affinityとcpuset cgroup: コンテナが使用して良いプロセッサを制限したり、特定のCPU上で動かす事に意味がある処理を確実にそのプロセッサ上で動かすために、タスクを動かして良いプロセッサを制限する #kernelvm"
Fadisさんのツイート: "同一コア内のスレッド(HT)間、同一NUMAノード内のコア間、同一ソケット無いのNUMAノード間、同一ホスト内のソケット間、でのタスクの移動はコストが違う為等価に扱う事ができない→ ロードバランサは階層化されている #kernelvm"
Fadisさんのツイート: "変態アーキテクチャAMD EPYC7601の場合、2物理 * 4ダイ * 2CCX * 4コア * 2スレッド (1ソケットに複数のダイが載っている) #kernelvm"
[試して理解] Linuxのプロセススケジューラのしくみ - Speaker Deck
まさみさんは語りたいさんのツイート: "マルチテナントRDBをコンテナで動かすとき、unprivilegedなコンテナを使うと、一部のプロセスをRTタスクに出来なくて困るっていう話をオラクルがしてる。面白い。"
まさみさんは語りたいさんのツイート: "cgroupsで予め制限してる場合は許可する、というアイデアが出ていて、これは良さそうに見える。シンプルだし一貫性がある。"
まさみさんは語りたいさんのツイート: "RTプロセスがコンテナ内で動かせないのはちょっと制御向けにも困るかも。"
satさんのツイート: "linux 2.6.23以前は特定の挙動(無限ループよりもうちょっと凝ったやつ)をするプロセスを20-30個ほど立ち上げればシステムを事実上ハング状態にできたのじゃよ"
Fadisさんのツイート: "一部のCPUの排熱が追いつかなくて最大動作周波数を下げても、その事を知らないLinuxのスケジューラが容赦なくタスクを投げてきて結果としてタスクの完了が遅れるのイケてないから、温度をスケジューラの判断材料にしようという試みがなされているらしい (リンク先有料記事) https://t.co/7vKxG5oVi8"
Fadisさんのツイート: "Linuxカーネルは起動時にチップセットのタイマーが動く事を確認するけど、ナウいIntel CPUとナウいチップセットではタイマーが消費電力を抑える為に使う事を明示しないと動かないようになっていて、割り込み返ってこなくてカーネルがpanicする問題が解消された話 https://t.co/qjnpC8nN1x"
The Linux Kernel Getting Fixed Up For Booting On Some Intel Systems - No "8254" - Phoronix
FadisさんはTwitterを使っています: 「Stadiaでゲームを作っている人が「Linuxのスケジューラの性能が悪いせいでStadiaのゲーム作るのが辛い」というベンチマークを出していたの対してLinus Torvalds氏が「指摘は間違っている。計測方法に問題があり無関係な物を測っている。純粋なるゴミ」という解説をしている話 https://t.co/yIXR6bNIMp」 / Twitter
Torvalds' Comments On Linux Scheduler Woes: "Pure Garbage" - Phoronix
FadisさんはTwitterを使っています: 「ゲーム屋さん、いつでも処理が16ミリ秒以内に完了しないと死んでしまう呪いがかかってるから、ミリ秒オーダーで遅れる事があるほげふがを回避する為に変な事しだすのは、実際よくあるんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「クラウドサーバ提供ベンダー(DigitalOcean)が、Linuxのスケジューラを弄って、安全なスレッドペアのみ同一コアSMTで実行、という改変をした話、、、ただ劇的な改善ではなさそう。 (あと個人的にはここのクラウド、spam業者御用達なイメージある) https://t.co/x92Azmlhei」 / Twitter
DigitalOcean & Others Still Working On Core Scheduling To Make Hyper Threading Safer - Phoronix
井山梃子歴史館さんはTwitterを使っています 「LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core) Gのユーザレベルスケジューラ、switchtoと呼ぶらしい https://t.co/kXZSPOkMa2」 / Twitter
LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core)
FadisさんはTwitterを使っています 「IntelがLinuxのプロセスのnice値がCPUのスケジューリングだけでなく、GPUのスケジューリングにも影響を与えるようにする変更を提案している。これを実現するにはGPUのドライバに手を入れる必要がある為、Intelが提案する変更ではi915ドライバで動くIntel GPUのみが対象になる https://t.co/7CIiG0mUZU」 / Twitter
Intel Exploring CPU+GPU Synchronized Priority Scheduling For Linux - Phoronix
FadisさんはTwitterを使っています 「GPUはCPU同様複数のタスクをスケジューリングして実行しているがこのスケジューラには現状プロセスのnice値が反映されていない。この結果、プロセスがGPUを使えば使うほどnice値の効果が無くなる。GPUのスケジューラはハードウェアの機能になっている事もある為、どんなGPUでもこれができるかは怪しい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GPUが(I/Oスケジューラのように)CPUと別スケジューラなら、ionice のように独立した優先度指定が素直な気も。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu ioniceも通常使うbest effortはnice値みてます?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho それは知りませんでした。情報ありがとうございます。 https://t.co/uSFBnt82DS」 / Twitter
ionice(1) - Linux manual page

2013年7月4日 Linux 3.10登場 ─SSDキャッシング,マルチタスキング,Btrfsなど注目機能搭載:Linux Daily Topics|gihyo.jp … 技術評論社
2017年5月1日 Linux 4.11が正式リリース,プラガブルI/Oスケジューラ,Gemini Lakeのサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
Linux スケジューラーのコア実装とシステムコール
【論文紹介】The Linux Scheduler: A Decade of Wasted Cores (2016)
[2017.03.21] システム系輪講会 (nhiroki) - Google スライド
Linux スケジューラーのコア実装とシステムコール - Qiita
stolk/ThreadTracer: Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
Linux のハードウェアタイマーの話 - NyaRuRuが地球にいたころ
産総研:高精度な実時間OS「ART-Linux」を公開
【Linux】Load Averageに関するいろは - Qiita
Fadisさんのツイート: "これな、待ちプロセスが多いとロードアベレージは上がっていくから、経験則で「ロードアベレージいくつ以上はヤバい、アラートだ」みたいなイカれた監視がなされたサーバで、監視に検知されないギリギリのプロセス数で制限するコードを書く羽目になったりな…"
タスクスケジューラ用のsysctlパラメタ - Qiita
【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
2020年6月2日 Linux 5.7がリリース ―サーマルプレッシャー,exFAT,iOS用USBドライバなど:Linux Daily Topics|gihyo.jp … 技術評論社
satさんはTwitterを使っています 「linuxではかなり前から固定タイムスライスではなくなってるというのはまだ(カーネルに詳しくない人は)それほど知られていないけど、タイムスライス管理でインターバルタイマーが主役じゃなくなってるというのはもっと知られてなさそうだな」 / Twitter
masa murayama@社畜ハッカーとしてのクズな人生を全うしたいさんはTwitterを使っています 「@satoru_takeuchi あの仕掛けが今一つわからないのですが、ざっとソースを眺めた時には、周期的にインターバルタイマーの割り込みをかけるのではなく、次のスケジューリングポイントで割り込みを書けるように、インターバルを動的に変化させているようにも見えました。」 / Twitter
satさんはTwitterを使っています 「カーネルの動くタイミングを図示しようとしてるけど、これむずいな。ハードの概要を先に説明しないとそもそも理解できない」 / Twitter
satさんはTwitterを使っています 「割り込み、例外を説明したあとにプロセス/割り込みコンテキストについて話して、最後にtopで出てくるcpu使用率のうちわけを説明、とかにすればいいのかな?」 / Twitter
satさんはTwitterを使っています 「- 割り込み/例外が発生したとき割り込みコンテキストで動く - 割り込みコンテキストでの動作が終わったらカーネルスレッドのどれかを動かす - 候補がいなければアイドルプロセスを動かす くらいいえばいいのかな?」 / Twitter

Windows

Windows XP/Vista のスレッドスケジューラと Hyper-Threading - NyaRuRuが地球にいたころ
Windows Vista: Multimedia Class Scheduler Service - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (1) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (2) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (3) - NyaRuRuが地球にいたころ
MMCSS とネットワークパケット受け取りの抑制 - NyaRuRuが地球にいたころ
GiB Age - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (1) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (2) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (3) - NyaRuRuが地球にいたころ
プリエンプティブなスレッド切り替えの時間共鳴 - NyaRuRuが地球にいたころ
Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する - NyaRuRuが地球にいたころ
佐祐理ブログ: Windowsの各種Timerの精度について
処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | POSTD
Masaru Iritaniさんのツイート: "英語の記事ですが、Windows カーネルのスケジューラーがどう進化してきたか詳細に説明されています。1792 論理コアを表示するタスク マネージャーは圧巻です。 https://t.co/e44pBEol77"
One Windows Kernel - Microsoft Tech Community - 267142
Windows 95ではマウスカーソルをぐるぐると動かすと処理速度が早くなることがあった - GIGAZINE
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
Soft Real-Time | Microsoft Docs

OSDN

「Linuxカーネル3.12」リリース | OSDN Magazine
Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良などが特徴 | OSDN Magazine
新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場 | OSDN Magazine
Linuxカーネル4.11リリース、プラガブルなI/OスケジューラやSSD向けスワップ機能などを実装 | OSDN Magazine

Wikipedia

コンテキストスイッチ - Wikipedia
スケジューリング - Wikipedia
Scheduling (computing) - Wikipedia
FIFO - Wikipedia
ラウンドロビン・スケジューリング - Wikipedia
多段フィードバックキュー - Wikipedia
Earliest Deadline First - Wikipedia
Least Slack Time - Wikipedia
レートモノトニックスケジューリング - Wikipedia
優先度つきキュー - Wikipedia
リングバッファ - Wikipedia
優先順位の逆転 - Wikipedia
Bulldozer (マイクロアーキテクチャ) - Wikipedia

Qiita

Linuxの各タスクにおけるスケジューリング統計情報 (procfs) - Qiita
科学実験のようにスケジューラの挙動を確認する - Qiita
Linuxのschedのpriorityとリアルタイムシステムについて - Qiita
科学実験のようにスケジューラの挙動を観測する - Qiita
linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
Linux スケジューラーのコア実装とシステムコール - Qiita

Twitter

その他

なかのん DAYS''さんはTwitterを使っています: "OS X、久々に触ると、やっぱ、アクティブなウインドウのプロセスの優先度が高くならないのがWindowsユーザからすると不便というか違和感というか。"
とみながたけひろさんのツイート: "15年前に作ったカーネルはカーネル・割り込みハンドラ内でもFPU使えるしFPUレイジーコンテキストスイッチもやってたけど、5年前の奴は「もうSIMD使うのが前提でコンパイラが最適化してくるから」ってのでレイジーはやめたな(もちろんカーネル内でSIMD使えるようにしてた)"
NetBSD ドキュメンテーション: どのように lazy FPU コンテキストスイッチは動作するのか
酔漢@ニャー将棋さんのツイート: "コンテキストスイッチ、割り込み出入り口は可変長例外フレーム対応、レイジースタッキング対応になった。例外は可能なかぎりレイジースタッキングを壊さないので、割り込みハンドラ内部で浮動小数点演算をしなければ、オーバーヘッドは小さいまま。"
K.Namba/ご注文は910ですか?さんのツイート: "Windows の Kernel でストレージを動かそうというのは、やはり無駄が多すぎるのではないか・・・ 限界まで専用化された NAS OS には敵わないよなー。 ストレージ向けのスケジューリング/コア割り当てなんかが出来るようになるともう少しよくなるかもしれない。"
Nerry@さんのツイート: "HIDがビジーループに入るとメインスレッドがなぜか死ぬと思ったらHIDスレッドがyieldしないでpreemptionされるまで動くことによってメインスレッドが期待するtickの値がスキップされていた"
ysksさんのツイート: "なぜ macOS/iOS の CPU は 100% にならないのか。その謎を解明するため取材班は XNU アマゾンの奥地、MULTIQ スケジューラ遺跡に向かった。 https://t.co/zC6r6WoFHX"
sched_multiq.c
SODA Noriyukiさんのツイート: "どこかで同期とるような並列プログラムだと、一番遅いプロセスに足を引っ張られるので、同じ処理やってて実行時間がバラつくのは大問題なのよね。McKernel が解決しようとしてるのもそこ。"
まさみさんは語りたいさんのツイート: "SMTをOSレベルでずっとHALT状態にしておいて、カーネル内の小さい並列化できるタスク動かすのだけに使えないかな。メモリコピーとか。(つまりソフトウェアDMAエンジン)"
まさみさんは語りたいさんのツイート: "一部のセキュリティ問題でHTとかSMTが阻害されるのはもったいない。ユーザ空間のスレッドに関しては同一コア上のHT/SMTを利用できる(ただしどちらかがシステムコールに入るともう一方は抑制されるか別コアに送られる)とか。"
Nerry@さんのツイート: "プリンプションのペナルティ実装したらウィンドウマネージャーがウィンドウの再描画移譲受けてる関係でちょっと重いウィンドウあると常にペナルティ受けててうーん"
Susumu Yamazakiさんのツイート: "私たちがした実験でも,1コアを絞り出さなくても並列にすることで劇的に性能は上がります。一見意外なことに,そもそも並列にするとどうしても1コアあたりのパフォーマンスは落ちます。実はこらはアムダールの法則で説明できます。… "
鹿さんのツイート: "> 1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 全然そんなことないから、これだけ読んで勘違いしないで欲しい。 1コアの50%しか使ってなくても、shared nothingな構成で8コア並べたら、1コアを使い切った場合に比べて性能4倍。 CPUを使いこなすより並べる方が安い時代。… https://t.co/omYxaz0X4z"
Igaguriさんのツイート: "多分この人が思っているのは並行処理であって並列処理ではない。 並列処理は計算がボトルネックになっている処理を高速化するためにコアを複数使うことで、そもそも1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 関数型や論理型で実際のCPUやGPUの能力を絞り尽くすのは困難。… https://t.co/Z9FuFt4jmQ"
LAL(Light AI Lab)さんのツイート: "Elixirで並行処理、並列処理を書いてみて、並列の時代の到来を実感しました。並列を活かすためには関数型プログラミング、論理型プログラミングへジワジワとパラダイムシフトしていくだろうと私は予想しています。若いエンジニアの方々はElixirの並行処理を学んでおけば、職場で重んじられるのでは?"
社会人でもOSを作りたいさんのツイート: "OSに求められる役割の一つであるリソース分配は,上に乗るアプリによって方針が変わる.ユーザ単位でフェアに分配するのか,プロセス単位でフェアに分配するのか,システムプロセスの優先度を上げるかどうか,とかも. #osdev_moku2"
デダルス・ユメノさんのツイート: "メモ:work-conserving schedulerとは,実行可能ジョブがある限り,制御対象のリソースを常に稼働させるように制御するようなスケジューラのこと。うまくジョブの順序とかを入れ替えたりしてリソースがフル稼働するように制御する。"
Hideyuki TanakaさんはTwitterを使っています: 「&gt;The runtime measures the time it takes to perform the blocking operation and if it takes a while, a new thread is automatically spawned and replaces the old executor thread. はぇぇ(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「てかこれ別にブロックしてなくてもasyncって書いてある関数が実行に時間かかってるなーって感じだったら勝手にスレッド作って元の関数の続きを実行し始めるんすか?」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「いい加減なタスク並列をいい感じのスレッドプールでほとんど何も書かなくても並列化してくれたりするん?(´・_・`)」 / Twitter
Miura HidekiさんはTwitterを使っています: 「これ見て驚いた。そういやjemallocでもロックの競合状況みて競合しているようならarena増やすみたいなことをやっていたな。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「まぁそうでなくてもOSのスケジューラがゲームみたいなイベント駆動型のソフトウェアに強く影響を与えるなんてのはほとんどありえないよ。 だからずーっとOSレスな業界だったでしょ? https://t.co/d2M9Sr81OM」 / Twitter
【イベントレポート】【速報】Intel、第10世代Core後継「Tiger Lake」の実機を初公開 ~10nm+プロセス/Thunderbolt 4/Xe GPU内蔵で2桁%性能向上 - PC Watch
Miura HidekiさんはTwitterを使っています 「これを見て、マルチスレッドの自動分散を連想した。自動分散をおこなうにはスレッドの負荷状況を調査する必要があるけど、そればっかりやっていると遅くなる。jemallocのロックの競合割合から推定するとか賢い方法があるといいのだが。」 / Twitter
mattnさんはTwitterを使っています 「@miura1729 今はコンテキストスイッチ重そうですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mattn_jp 確かに」 / Twitter
mumumuさんはTwitterを使っています 「Slite: OS Support for Near Zero-Cost, Configurable Scheduling [RTAS '20] システムのスケジューラがユーザランドにいて(Kernel Bypass),各スレッドはKernelがActivateされた時に(Lazyに)帳尻合わせをすることで,高速かつ柔軟(ユーザランドでAppに合わせTune可能)なRTOS向けスケジューラを実現」 / Twitter
mumumuさんはTwitterを使っています 「Arachne: Core-Aware Thread Management [OSDI '18] 短時間・大量に実行されるスレッドで動作するタイプのAppが,自身の変化(ワークロード変化に追従するためコアを欲しがる等)や周囲の変化(他のシステムの処理増加によるコアの取り上げ等)に柔軟に対応するための調停プログラム/runimeを実装」 / Twitter
mumumuさんはTwitterを使っています 「Demand-based coordinated scheduling for SMP VMs [ASPLOS '13] 前半でIPIがマルチスレッドAppの同期/通信の調停に使われていることを定量的に示し,後半でFairnessを損なわないようにIPIをvCPUのスケジューリングに組込む方法を述べてた気がする.前半はThe サイエンスという感じで結構面白かった.」 / Twitter
mumumuさんはTwitterを使っています 「Reconciling High Server Utilization and Sub-millisecond Quality-of-Service [EuroSys '14] 複数のLatency-Sensitiveなタスクを一つのサーバでホストするときに問題となる原因(Interference, スケジューラの問題,load imbalance など)を検証し,その対策を検討した.*サイエンス*を感じる論文」 / Twitter
mumumuさんはTwitterを使っています 「ROSCH:Real-Time Scheduling Framework for ROS ROSのノードをリアルタイム動作させるために,DAGスケジューリングや同期機構などを実装した話.RTOSでROSを動作させる等いろいろ方法はあると思うけど,Linux上で実装しているのは面白い.あと評価で某自動運転ソフト使っていたので良さがある.」 / Twitter
mumumuさんはTwitterを使っています 「Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines [CloudCom '10] VM上のOSがAffinityに基づくスケジューリングができるように(というかAffinityの意味があるように),pCPU Run Queue対して動的に選択したvCPUをPin. https://t.co/jKUQFGBHXb」 / Twitter
Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines - IEEE Conference Publication
mumumuさんはTwitterを使っています 「Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance [ATC '20] 最近はコアごとに動的に周波数が変わるが,しばしば周波数が低いコアにタスクがあり,周波数が高いコアがアイドルしてしまうことがある. https://t.co/2TraqYUbSo」 / Twitter
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance | USENIX
mumumuさんはTwitterを使っています 「@shirouzu いえ,自分の理解では 1. よく動いているコアでfork 2. となりの遅いコアで子プロセスが動き始める(遅い 3.よく動いているコアはwait()して,結局そのコアはidle 4.スケジューラはそれに気が付かずRESCHEDしないから,遅いコアで子プロセスが動き続ける みたいな感じです.」 / Twitter
mumumuさんはTwitterを使っています 「Corey: An Operating System for Many Cores [OSDI '08] 古典だが実は読んだことなかった.Multicore上でのスケーラビリティのために,Appが他コアとシェアするオブジェクトを選択できるIFを提供するOSを開発.Fig.1(Linuxがスケールしない図)は非直感的で面白い.https://t.co/eFHuUklDFW」 / Twitter
Corey: An Operating System for Many Cores | USENIX
mumumuさんはTwitterを使っています 「SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel [ATC '21] FreeBSDのKqueue(Linuxでいうepoll)でより高度なスケジューリングをして,マルチコアでスケールするよう改良.既存のOS上でTail Latencyを大きく改善 https://t.co/I8YMwgFhTh」 / Twitter
SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel | USENIX

コンテナ

🚀GRIMM・ZOU🐘さんのツイート: "ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius https://t.co/tfnvd3HCVg dockerが本当にボトルネックなのかという質問(?)があったので検証してみました。結果としてはdockerから剥がすだけで100万点から144万点に上がりました。"
はてなブックマーク - ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius
satさんのツイート: "コンテナだと仮想化よりもカーネルのスケーラビリティの問題を引きやすいってところか"
Guutara (⁰⊖⁰)さんのツイート: "それは、コンテナだからってことなんすか? プロセスのスケーラビリティの問題点だけど、コンテナの方がそれを引き起こしやすい、あるいは、引き起こしたときに、わかりにくいって話? VM との対比は、たぶん、理解できたと思うのだけど...… "
satさんのツイート: "コンテナのほうが起きやすい、起きてもわかりにくいって話ですね。 例えば10000プロセス同時進行で問題の出る処理があったとしてコンテナなしで10000プロセス同時進行になるより100コンテナで100プロセスが同時進行のほうが起こりやすい、かつ後者はコンテナのしくみがわかってないと理解できないので… https://t.co/0pwFzhq76i"
まさみさんは語りたいさんのツイート: "Dockerコンテナ、ネットワークについては名前空間が分かれているのでスケーラビリティ問題は解決するものの、分かれていない所は無理だもんなあ。"
まさみさんは語りたいさんのツイート: "OSを名前空間っていう取ってつけた仕組みで共有するので、リソースの競合が発生するところは発生する。競合によって性能が劣化する場合もあるし、複数のコンテナを動かすというところで発生しやすくなると思うが、この辺りってコンテナホスティングしていた運用会社にはノウハウ溜まってるんじゃない?"
まさみさんは語りたいさんのツイート: "コア数の多さでスピンロックなどの競合が起きやすくなるんだけど、例えば仮想サーバを使ってOSをコアごとにある程度分離すると、実質的にロック競合の発生しやすさは下がる。逆にコンテナを使ってOSを共通で使うと、共通リソースに対するロック競合の発生しやすさは変わらないだろう。"
まさみさんは語りたいさんのツイート: "実際にはリソースの使い方が変わるから、例えばプロセス数が単純に増えるから、一部リソースに対するロック競合は却って増えると想定できる。"
まさみさんは語りたいさんのツイート: "コンテナ毎のプロセスのスケジューリングを階層化すればあるいは・・・。"

リアルタイム性

satさんのツイート: "linuxのスケジューラの古いやつ(2.6.23以前)と今のやつの違い - 動的優先度は無い - activeキューとinactiveキューなんて区別は無い - nice値ごとの固定タイムスライスではない - sched_yield()は自分自身を再度スケジュールすることが多い"
satさんのツイート: "あと若干話しがずれるけど、いまのlinuxのスケジューラだとsched_yieldでコンテキストスイッチ狙う手はほぼ通用しないっすよ。ほぼnop"
まさみさんは語りたいさんのツイート: "リアルタイムプロセスでもそうだっけ?… "
satさんのツイート: "リアルタイムは別ですね。O(1)時代のままで、複数RT taskがいればyieldで次のタスクに制御が移ります。… "
まさみさんは語りたいさんのツイート: "ですよねー。結局ノーマルアプリはスケジュールとか考えるなと。… "
satさんのツイート: "SCHED_OTHER: リアルタイムではない SCHED_{FIFO,RR}: リアルタイムのふりをしている何か SCHED_{DEADLINE}: リアルタイムに似た何か"
satさんのツイート: "リアルタイム性ってスケジューラだけでどうにかなるもんではなくて割り込み使ったら負けとかいろいろありますからねー"
まさみさんは語りたいさんのツイート: "何を以てリアルタイムというかは、人によって違うというか、誤解してる人が多数いますからね。特にRTOS村の住人…… "
Satoru Uedaさんのツイート: "https://t.co/9y3FbRKczl とりあえず、こんなのを・・・。 #celfjp… "
Frequently Asked Questions - RTwiki

@rockridge07

Rockridgeさんのツイート: "記事の後半にQuantum DOMの解説がある。Firefoxのプチフリ発生を抑えるため、DOM処理をスケジューリングしてマルチスレッドで行う仕組みを、OSに頼らず自前で用意するらしい。 / “Mozilla’s Quantum…” https://t.co/gbCBfFhOH4"
Rockridgeさんのツイート: "Chrome 57ではバックグラウンドのタブのCPU利用率を制限する措置が導入され、これにより消費電力が減った。ただし、音声の再生やWebRTCのコネクションは従来通りだという。 / “Chromium Blog: Reduci…” https://t.co/24L1khCCtd"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Windows 10の最新カーネルだとHeterogeneous Schedulingサポートしてるのか (要はbig.LITTLEみたいな構成)"
Makoto Kato ︎︎さんのツイート: "https://t.co/1VPmrML5HO Windows internalの最新版にbig.LITTLE用の機能について記述されてんのに何言ってんだろうか。こういうライターって勉強足りないよね"

@kazuho

Kazuho OkuさんはTwitterを使っています: "H2O の http2 スケジューラを改善して分かったんだけど、128段までの priority queue だったら、今時ヒープ使わないほうが良さそう"
Kazuho OkuさんはTwitterを使っています: "linux の CFQ も、なんで red-black tree なんだろという疑問。リングバッファにできないほど優先度の幅が広いのかしら"
Kazuho OkuさんはTwitterを使っています: "@kazuho あー s/CFQ/CFS/"
Kazuho OkuさんはTwitterを使っています: "http://t.co/UTau7Sn2p5 を見ると linux の O(1) スケジューラは weighted fair queuing じゃなかったぽいな。それなら CFS のが公平性でのメリットがありそう"
Kazuho Okuさんのツイート: "HyperThreadingの影響を考慮したベンチマーク(つまり、1つの物理コアに2つのスレッドを固定した状態のベンチマーク)をとりたいんだけど、macOSだと無理なのかな..."
Kazuho Okuさんのツイート: "https://t.co/Bje8kGJnZj 確認しましたが hinting API ですね… "
Affinity API Release Notes for OS X v10.5

The Search for Planet Nine: The orbit of Planet Nine
Xenのスケジューラがぜんぜんわからん - Speaker Deck
tanakmura🎯さんはTwitterを使っています 「ACPIは、コアごとの性能を示すテーブルを持ってるが、マザーボードによっては、オーバークロックするとこれが全てMAXになって、P coreもE coreも公平にスケジュールされてしまうらしい。 手元のマシンは…オーバークロックしてないのに全部MAXになってますね…おいGIGABYTEどうなってんのや?」 / Twitter
2021年12月1日 Linux 5.16-rc3がリリース,Intel Alder Lakeで発生していたバグを修正:Linux Daily Topics|gihyo.jp … 技術評論社
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「モデル検査絡めて、リアルタイムなスケジューラを書きたいな」 / Twitter
${jndi:ldap://ytakano.com}さんはTwitterを使っています 「いけそうな気がするが」 / Twitter

CPU・GPU 使用率の計測

CPU 使用率に応じて CPU 周波数を動的に設定

Homepage Johannes Hofmann - estd
ryo/estd: estd with temperature limit feature. (forked from http://flpsed.org/estd.html)

PC Watch

プレビュー版Windows 10のタスクマネージャーに“GPU”が追加 ~プロセスごとのGPU使用率などを確認可能に - PC Watch
タスクマネージャーに新設されたGPUのパフォーマンストラッカーを改良 ~プレビュー版Windows 10「Build 16237」 - PC Watch
Windows 10プレビュー版タスクマネージャーのGPU表示が“マルチエンジンビュー”に変更 - PC Watch
Windows 10 RS5のタスクマネージャーでアプリの電力使用量が確認可能に - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
【福田昭のセミコン業界最前線】不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 - PC Watch

窓の杜

「Windows 10 RS5」の「タスク マネージャー」は電力を浪費するプロセスの特定も可能 - 窓の杜
タスク マネージャーがさらに強化された「Windows 10 Insider Preview」Build 16241 - 窓の杜
「タスク マネージャー」に新機能“エコモード”、Edgeのプロセス分類も ~プレビュー版Windows 10でテスト開始 - 窓の杜

blog

LinuxでCPU利用率を取得する
CPU使用率は間違っている | Yakst
タスクマネージャに表示されるメモリ使用量 - NyaRuRuが地球にいたころ
htopコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
topコマンドで覚えておきたい使い方14個 | 俺的備忘録 〜なんかいろいろ〜
インフラのボトルネックについて知る - ぺい
アクティビティモニターの作り方 - 借り初めのひみつきち
delay accounting を使ってみる - SIerだけど技術やりたいブログ

Twitter

satさんのツイート: "CPU統計情報の%stealってよく考えたらひどい単語チョイスだな。むしろお前がhostからCPU取ってるんだろうがという"
SODA Noriyukiさんのツイート: "@ksmakoto load average は、(実行中or実行待ちのプロセス数)+(disk I/O中 or disk I/O待ちのプロセス数) の移動平均ですから、4core CPUのうちの2core が CPU使用率 100% で回ってる状態(すなわち CPU能力の半分が遊んでいて暇な状態)… https://t.co/l37EDW4Qpg"
Shiro Kawaiさんのツイート: "すっごく面白い。色んなものをサンプリングで監視してるとグラフが振動しておおビート出てるなあと思うことはよくあるけどこんなに綺麗に説明がつけられると気持ちがいい。https://t.co/COfCSGkcYr"
Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel ブログ #mackerelio
Shiro Kawaiさんのツイート: "エイリアシングを防ぐためにランダムにずらすって手法もあるけどこういう統計情報取る時はあんまりやらない方がいいのかな?"
モッチー@少年クリプト編集長さんのツイート: "Coinhive(コインハイブ)裁判の第二回公判 高木浩光氏の証人尋問も傍聴してきました。 今回も『弁護士ドットコムNEWS』さんがわかりやすくまとめてくれていますが、書かれていないことをスレにまとめていこうと思います。 https://t.co/wm2wVErPob"
コインハイブ事件 高木浩光氏が公判で証言「刑法犯で処罰されるものではない」 - 弁護士ドットコム
モッチー@少年クリプト編集長さんのツイート: "弁護側の証人喚問の内容はおおむね記事の通り。 しいて言えば高木氏いわく検察が言う『負荷』と『CPU使用率』は別物とのこと。 負荷とはスレッドの数であって、CPU使用率が高いからといって負荷ではないそうです。"
なかのん&マジックさんのツイート: "WindowsのタスクマネージャーのGPU使用率が10%いっていなくてもWMPで動画を再生してたらFirefoxの動作速度落ちたり、マウスカーソルの追随が怪しくなったりするけど、どういう理屈なんだろう。GPU周りまったく分かってない。"
Kazuho OkuさんはTwitterを使っています: 「使用率n%のキューにおいて、キューへの追加がランダムな間隔で発生する場合の平均待ち時間はいくら、っての定式化できそうっーか誰かやってそう」 / Twitter
みょうがさんはTwitterを使っています: 「@kazuho M/M/n 待ち行列っぽい」 / Twitter
dancerj 🗾さんはTwitterを使っています: 「@kazuho M/M/1待ち行列とかですか。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「各所からツッコミが入ってるように(RT参照、ありがとうございます)待ち行列の平均待ち時間なので、例えば使用率80%なら、応答時間の期待値は使用率0%の場合の5倍である、ということになるのかしら。あってる?」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「CPU使用率80%がいかにヤバいか始めて身にしみた頭でっかちさんがこちらになります。経験はいっぱいあるのにね」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「あーだからcpuを複数にしたり、キューを処理するスレッドを複数にしたりすると使用率が高い場合でも改善が見られるのかな」 / Twitter
TamrinさんはTwitterを使っています: 「誰か世の中に蔓延る CPU 使用率に関する誤解を解いてくれと思ってたら、@pei0804 がそれらしき記事を書いてくれてた もっと書いてくれ https://t.co/7Rxk2pcJZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、昔から思ってるなぁ…SMTが一つの解だろうけど、さほど上手くいっているようにも見えず。 https://t.co/ZWkiMasyN3 NVDIMM-P でも、そのあたりの解決をどうするのだろう?と思いつつ…NANDストールの粒度だとOSスケジューラと連携すべきだろうなぁ。 https://t.co/a5gOuUovTH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM-Pはメモリ操作にアウトオブオーダーや非同期的な動作をサポートする様子。 やはりOS側のページ操作でも、データがSSDにのみでDIMMにない場合は、ページフォルト的な仕組みを入れねば厳しそう。 「不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来」 https://t.co/lrZfYQrDif https://t.co/5HIhuEIwzA」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@shirouzu それに比べNVDIMM-Pは、局所性が落ちるとDIMMより桁外れCPUストールが発生しそうな印象。 (仮想記憶と違い、アンヒット時(flash参照時)にCPUは身動き取れないとするとHW/OS共々専用対応必須?) https://t.co/DCGq74hDuC」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「SMTが一つの解」は、メモリストールで動かない時間を減らす、という意味。」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しい擬似FS statfsが提案されている。statfsはカーネルが収集した統計情報を読めるFS。現在そういう物はdebugfs等から生えているが、debugfsはrootしか気軽に読めない事、権限の変更を都度挟むのがミスの元な事、そもそもそれはdebugではない事から分離したいらしい https://t.co/FHABYjq6A3」 / Twitter
Statsfs: A Proposed Linux File-System For Kernel Statistics - Phoronix
Kazuho Okuさんのツイート: "tiptopコマンド知らなかった / “CPU Utilization is Wrong” https://t.co/rThFdwM531"
CPU Utilization is Wrong
κeenさんはTwitterを使っています 「これは本当に分かる。CPU使用率が100%のときに「で、これは本当に計算に時間かかってるの?」ってなって面倒くさいよね。 CPU Utilization is Wrong https://t.co/ed5Qi4HzP8」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリの純粋な計算負荷のCPU100%が一番穏健で、割り込み多発が一番厳しいかな? (メモリ不足=スラッシングだとCPU100%にならないはず)」 / Twitter
🦈sat🐢さんはTwitterを使っています 「性能測定の肝は「何をしたいのか明らかにする」ですね。それがないと迷走するだけだから 別に性能測定だけに限らんけどこいつはとくに「なんやしらんがとりあえず測る」がとても多い」 / Twitter
uint256_tさんはTwitterを使っています 「GPU-Utilの意味がよくわかっていない(どうやって計算しているの)」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@uint256_t 単にカーネル起動してる時間で、 top で見る CPU 利用率と同じ感覚で良いと思っています。100%だからといって、効率の良い計算をしているかとかはわからない感じといいますか」 / Twitter
uint256_tさんはTwitterを使っています 「@shinh なるほど。(そもそも100%にすら届いてくれないので困っていました)」 / Twitter
this is matsuu speakingさんはTwitterを使っています 「コンテナの中での実行を想定したtopコマンド。通常のtopコマンドをコンテナ内で実行するとホストのCPU/メモリ/uptimeなどが見えてしまうが、このtopicであればcontainer内に閉じたtop結果を確認できる。わいわい。golang実装 / “GitHub - silenceshell/topic: top in conta…” https://t.co/fhP9cRWfIC」 / Twitter
silenceshell/topic: top in container.

インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
CodeZine(コードジン)
CPU使用率とは|CPU利用率|CPU負荷率|CPU utilization - 意味/定義/解説/説明 : IT用語辞典
Windows 10のタスクマネージャーの新機能「GPUグラフ」が見当たらない理由とは:その知識、ホントに正しい? Windowsにまつわる都市伝説(107) - @IT
CPU Steal Time 入門 - Qiita
ASCII.jp:Windowsの歴史を通じて地道に改良を続けてきたタスクマネージャー 11ではEdgeのプロセス表示に対応
Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE
ソフトウェアとクラウドサービスによる環境への影響の測定
エヌユルさんはTwitterを使っています 「Windows, 未だにタスクバーにCPU使用率とか表示する標準的方法無いんだな Linuxデスクトップだと標準でそれが有効になってることが多いぐらいなのに」 / Twitter
エヌユルさんはTwitterを使っています 「CPU使用率などが表示されないと本当に処理始めてるのか不安に思うんだよな 特にWSLだとなんかプログレスバー出ないこともあるし wingetかchocoあたりでマネージドインストール出来る良い感じのソフトは無いかな」 / Twitter
.さんはTwitterを使っています 「マジメに返すと、リソースモニターの「CPU」のタブにある「関連付けられたハンドル」の検索欄にファイル名を入れると、何が掴んでいるかが出てくるのです……」 / Twitter
【公式】加賀瀬 葵さんはTwitterを使っています 「Windows君さぁ、フォルダ削除とか名前変更しようとしたときに別プログラムが掴んでるって警告出すのはありがたいんだけど、 なんのプログラムが掴んでるのか教えてくれよ」 / Twitter
.さんはTwitterを使っています 「ただまぁ……「判ってるならメッセージに書けや!」ですねw」 / Twitter
.さんはTwitterを使っています 「軽い気持ちで書いたらえらく注目されてるので補足。プログラムとファイルの種類によってはファイルがあるフォルダー名じゃないと出てこないことがあります(サクラエディタやメモ帳など)。ファイルで出なければフォルダーで調べてみてください。」 / Twitter
.さんはTwitterを使っています 「一応、きちんと書いておきましたのでよかったらどうぞ(きちんと、っても内容はざっくりですが)。 https://t.co/Dt0CexjxCH」 / Twitter
ファイルを掴んでいるプログラムを特定する方法 - misc.log
SODA NoriyukiさんはTwitterを使っています 「Windows素人なので、今までこのへん知らなかった… 「逆に、特定のプロセスが掴んだり参照しているファイルやフォルダーを調べる場合ですが、検索条件を入れずに、CPUタブの上部にあるプロセス一覧の左にあるチェックをONにしてください。そうすると、下部の関連付けられたハンドル欄に…」」 / Twitter
たけくんさんはTwitterを使っています 「これWindows11で解決した上に、メモ帳は開いたまま名前を変えてもファイルを掴まずに上書きしようとした時点で元の名前のファイルを作るVScodeっぽい挙動になってストレスがなくなったの神。 https://t.co/alI3URqBD5」 / Twitter
かりやみつらないさんはTwitterを使っています 「procfs とか sysfs とか便利っちゃあ便利なんだけど、プログラムから読む時にわざわざフォーマット解析してやんなきゃなんないのがそうはならんやろ感がある…」 / Twitter
ゴリラ@最近🍌食べてないさんはTwitterを使っています 「これ、リプレイ出来るのか 便利そう https://t.co/9tI7Ttl8mZ」 / Twitter
evilsocket/uroboros: A GNU/Linux monitoring and profiling tool focused on single processes.
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ITシステムの性能を測るうえで重要なのは平均ではなく分散である。分散が大きなシステムはピーク時の性能低下も大きい。ユーザは通常よりちょっと遅い程度では気にしないが、大幅に遅かった経験はよく覚えている。災害はつねに「分布の中央ではなく終端で起こる」のだ。 https://t.co/wsPu7zW8lx」 / Twitter
Why Disaster Happens at the Edges: An Introduction to Queue Theory – The New Stack
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「待ち行列理論はおもに上のような問題を扱っている。使用率 (utilization) が高い状態ではわずかな変動が致命的な遅延にエスカレートすることがわかっている。一般的にシステムの使用率は75%以下をキープし、使用率が高い時は可能な限り分散を抑え、中間層で調整弁的な機能を実装することが重要である。」 / Twitter

I/O スケジューラ

単位

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度表示、MB/sとなっているのだが、実際は2^20なMiB/sでの値を表示している。 MiB/s に直すか、10^6な MB/s に変更するか、ちょいと迷い中。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前に FastCopyでのサイズ表記をMB→MiBに変更したのだが、やはり気になる人は居る様子。 でも、MBをサポートするなら10^6計算にしないとなぁ。 https://t.co/AylO3FFOxk"
Shirouzu Hiroaki(白水啓章)さんのツイート: "『MBをMiBと正確に表記することは、「一杯の紅茶を飲んだ」ではなく「236.588mlの紅茶を飲んだ」と表記するようなもの』 なるほど、面白い(笑) https://t.co/hz0xSDno2A"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「どのストレージデバイスも、MB表記ばかりでMiB表記は見たことが無い」 うーん、それはベンダが大きな数で表記したいだけの話でして。 以前のFastColyはMiBで計算してMB表記するという、MS Windows方式なのでちょっと違うんですが、、、"
Shirouzu Hiroaki(白水啓章)さんのツイート: "配慮する場合、10^6でMB表記オプションを追加、ですね。 ちなみに、CrystalDiskMarkがその表記なので、以前のFastCopyだと、同じ実効速度でも低い値に表示されてしまうという、、、… "
Kengo Sawatsuさんのツイート: "これ、WindowsのエクスプローラがMBって書いてるのに実際はMiBなのもあって悲惨な状況ですよねぇ。 個人的には軽やかに意見をスルーして貰って、FastCopyがMiBを正しく布教してくれる先頭に立ってくれる事を願いますが。。… "
Kengo Sawatsuさんのツイート: "興味深い?ことなんだけど、Windowsでは1MB*8とか1MB*16とかがよいらしいけれど、Macでは逆で16MB*2とかで一つあたりのI/Oサイズを大きくして重畳数は2とかの方が性能が伸びるように見える"

I/O 優先度

Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降、I/O優先度が設定できるのだが、Win10で優先度低にすると極端に転送レートが落ちる…あくまで他のプロセスI/Oを優先、として欲しいだけなのだが、デバイスのidle時間がやたらと増えるのは頂けない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、SetPriorityClass(PROCESS_MODE_BACKGROUND_BEGIN) を発行するとデバイスidle時間が30%~50%くらいに増える。(発行しなければ100%)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "idleの話なので「発行しなければ0%」だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、SetThreadPriority(THREAD_MODE_BACKGROUND_BEGIN) だとこんな挙動はしない様子。 MSDNにそんな記述は無いのだが(前述のプロセス版と同じ説明)。 まあ Win32 APIにありがちな話…そして次の将来版で挙動が変わるのもありがち(笑) https://t.co/43KMqs1CXb https://t.co/bi76H7ZOKC"
SetPriorityClass function | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "そして複数のプロセスで競合させ、I/O優先度がきちんと効いていることが確認できた。 (ただ、リソースモニターでは I/O優先度=標準と表示されてしまうのが困りもの)"

I/O・非同期・ノンブロッキング

blog

非同期・ノンブロッキング・CPS

非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
update a content · KeenS/KeenS.github.io@d46dad5
How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
channel - go routine blocking the others one - Stack Overflow
「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
Future パターン - Wikipedia
Futures and promises - Wikipedia
Overview of Blocking vs Non-Blocking | Node.js

非同期処理を理解する - Sansan Builders Blog
【Nginx】非同期IOとノンブロッキングIO - 地方エンジニアの学習日記
【Linux】非同期IOブロッキングとかノンブロッキングの話 - 地方エンジニアの学習日記
ファイル I/O でブロックされているスレッドを殺したくなったらどうするか? - NyaRuRuが地球にいたころ
Win32 I/O キャンセル API と"ゾンビ" プロセス - NyaRuRuが地球にいたころ
非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
Go pprof 応用編 (CPU 以外のプロファイル) : KLabGames Tech Blog
.NET非同期処理(async-await)を制御する、様々な方法 – kekyoの丼
.NET非同期処理(async-await)と例外の制御 – kekyoの丼
Big Sky :: Golang の channel の使い所
ノンブロッキングI/Oと非同期I/Oの違いを理解する
Goへの誤解について - GolangRdyJp
コールバック地獄から async/await に至るまでと, 非同期処理以外への応用 - Object.create(null)
JavaScriptの非同期処理Promise・async awaitを学んでみた | Wedding Park CREATORS Blog

Qiita

意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita
Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
contextの使い方 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
非同期 IO について - Qiita
Linuxにおける非同期IOの実装について - Qiita
ブロッキングとノンブロッキングの概要 | Node.js
非同期I/OとノンブロッキングI/O - Qiita

Twitter

io_uring・AIO

タイムアウト・キャンセル

Kazuho OkuさんはTwitterを使っています 「epoll から io_uring に簡単に移行できるかというと、実際は難しいのである(エラーの際にI/O中断してソケットを閉じ、バッファを開放するということが、後者だと同期的に実行不可能なため)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というか、io_uringにはキャンセルという概念がないけど、TCPソケットの読み書き中にタイムアウトで切断とか、みんなどうしてるのかな。shutdown(RDWR)して実行中の非同期命令が全てi/o errorで終了返すの待つの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「とりあえずepoll fdにio_uringのfdぶらさげるか」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています 「@kazuho 予めタイムアウト時間を指定する場合は io_uring_prep_link_timeout というのがあって https://t.co/m5wVcFM9FP あとからキャンセルする場合は io_uring_prep_cancel https://t.co/QJObSgyeDU というのがありますね。 なお私はサンプル試した程度なので詳しい方のコメントを期待してます。」 / Twitter
liburing/link-timeout.c at master · axboe/liburing
liburing/io-cancel.c at master · axboe/liburing
liburing/io-cancel.c at master · axboe/liburing
Kazuho OkuさんはTwitterを使っています 「@hnakamur2 ありがとうございます!」 / Twitter

Fadisさんのツイート: "Linuxカーネルにカーネル空間とユーザ空間で共有されるキューペアio_uringが追加されるらしい。これを利用するとI/Oの結果を受け取るのにシステムコールが不要になる為、Linux AIOより効率の良い非同期I/Oが可能になるらしい。将来的にはPoll Mode Driverも可能にしたいとの事 https://t.co/7yCllXCxSo"
Linux Kernel Getting io_uring To Deliver Fast & Efficient I/O - Phoronix
Fadisさんのツイート: "使われないことに定評のあるLinux AIOが使われないままオワコンになろうとしている…"
Fadisさんのツイート: "扱いが難しくてあまり使われないLinuxのAIOを拡張して、epollよりコンテキストスイッチを抑えられる新しいイベント待ちAPIを作ろう、という提案がなされている。提案しているのはScylladbの人で、これを使う事でSeaster I/Oフレームワークの性能が10%程向上する、としている https://t.co/l6JJovXcs5"
A new kernel polling interface [LWN.net]
suzakiさんのツイート: "io_uring https://t.co/g7OwEl0CRS システムコールを発行せずにI/O処理する、つまり、kernel Bypassならカーネルにマージされるコードはないと思ったのですが、(ほぼ)がポイントなのですね。… "
io_uring IO interface [LWN.net]
satさんのツイート: "めっちゃ雑に書くと 0. カーネル送信/受信キューの初期化。ユーザ空間にmmap 1. ユーザが送信キューのエントリにI/O要求を書く 2. ユーザがsyscall発行でI/Oをキック 3. カーネルがI/O処理 4. ユーザがI/O完了を確認 1,3,4は非同期なのでI/Oが出続けている限り2は省略できる というかんじです… https://t.co/02q3Y1iLRi"
Fadisさんのツイート: "io_uring、カーネルがキューをポーリングするようにしてシステムコールを完全に排除するモードの追加は今後の目標とかそんな感じだった筈"
Kazuho Okuさんのツイート: "io_uring、いつudpまわりも使えるようになりますか"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで非同期I/Oを改良したio_uring、まだ試してないなぁ。 debian unstable を入れて試してみるかな。"
satさんのツイート: "すくなくとも5.1では使い物にならなかったです。それ(のうちのすくなくとも一部)をなおすdirty hackパッチを持ってますがまだ投稿に耐えるほど整形してません… "
satさんのツイート: "より正確に言うと機能にはいくつかモードがあって、一番高速なやつの挙動が怪しいです… "
FadisさんはTwitterを使っています: 「Linuxのio_uringででかいバッファの後ろの方に対してI/O要求を投げるとI/Oの完了がものすごく遅くなる問題の原因が特定、修正されたらしい。バッファの先頭に対する操作で10%程、末尾に対する操作で755倍程の性能の向上が見られた、とのこと https://t.co/KKiFtVdTDf」 / Twitter
IO_uring Gets A Huge Performance Fix - Up To 755x Improvement - Phoronix
FadisさんはTwitterを使っています 「samba-4.12がリリースされたらしい。このバージョンの目玉はio_uringに対応した事。io_uringはlinuxの今熱いシステムコールで、カーネルとユーザ空間の間にIO要求と応答の為の2本のキューを作り、IO要求毎にカーネル空間に移る必要を無くすことで大量の非同期IOを効率よく捌く https://t.co/UA085Q0ep7」 / Twitter
Samba 4.12 Released With Performance Improvements, IO_uring Support - Phoronix
ドッグさんはTwitterを使っています 「io_uring のキューをホストとゲストで共有することで仮想マシンでもベアメタルと同等の速度が出せるのか.すごい | 'IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results' https://t.co/384FLF5yb6」 / Twitter
IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results - Phoronix
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「Linuxのsmbdに向かって非同期i/oで重畳を重ねるとかえって遅くなったりするなあ、最新のwin10クライアントとかでも微妙にある感じがしてたけど、これどっかでちゃんとまとめてレポート書かないといけないよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 そんなことあるんですねぇ… Linuxの非同期I/Oは(最近のio-uringは別として)、あまり使われないので枯れない、といった声は聞いたことありますね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring、マルチスレッド+epollで書かれたサーバプロセスで1スレッド1Gbpsとか余裕で出てNICがボトルネックになるので、全てのユースケースで意味のある技術ではないと思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「極端なケース、たとえば、超遅い接続が大量にあって、受信するデータパケットが小さくて、1バイト読むのにsyscall 1個発行するみたいなケースだともちろん意味があるので、ワークロード次第」 / Twitter
Kazuho OkuさんはTwitterを使っています 「手元の QUIC の場合だと、10パケット毎GSOの条件で 5Gbps / 0.35 CPU thread とかだから、一般的なコンシューマ回線相手のHTTPだと、オーダは 1Gbps よりも 10Gbps / CPU thread に近いはず。こういうケースで io_uring に意味があるとは考えにくい(なので優先度下げてます) https://t.co/T2r1iQtfc0」 / Twitter
Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「io_uring なんでもありだな。」 / Twitter
Jens AxboeさんはTwitterを使っています 「Huge page support for io_uring ring/submit entries: https://t.co/F5wVHG2ux7 This will nicely reduce the TLB misses particularly for workloads that use larger rings.」 / Twitter
linux-block - Linux 5.x block layer tree(s)
Jens AxboeさんはTwitterを使っています 「Even for smaller rings, it can reduce the TLBs needed from 2 to 1. For larger rings, bigger reduction obviously.」 / Twitter
Jens AxboeさんはTwitterを使っています 「And yes, this could've been done without needing to pass in pre-allocated memory, but Linux mmap(2) doesn't support huge pages for anything that isn't hugetlbfs/shmfs. Drivers/others are SOL.」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring の sqe と cqe ってどう発音するの? エスクとシーク?」 / Twitter

ゆるsyuu1228△さんのツイート: "AviにCCされてるしSeastarでベンチされてるけど提案者は社外の人ではないか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、I/Oスレッドをもっと増やした方が速い、と再度コメントしてきた人がいたので、なんだかな…と思いながら長めの返信を書いた。 ただ、ネイティブに「カタコト感満載」「丁寧な返事」「けんか腰」のいずれかに見えるのか、よくわからない(笑) https://t.co/3UUZI0Humc"
Shirouzu Hiroaki(白水啓章)さんのツイート: "マルチスレッドとオーバーラップI/O の区別が付いていないというオチかな。 それにしても、オーバーラップI/Oがqueue-depthという表現の方がメジャーになったのはなぜかな。 条件が揃えばデバイス側のコマンドキューイングが利用されるとはいえ、元来それと1vs1対応した機能ではないはずなのだが。"
SODA Noriyukiさんのツイート: "これは知らなかった。*BSD含む伝統的UNIXだとI/O完了を待たないので挙動が違うのね(FreeBSDの場合は、ユーザーランドに見えるブロックデバイスは廃止されてrawデバイスのみになってるけど) RT: Linuxではブロックデバイスに対する非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ… https://t.co/nTcjnftT9c"
satさんのツイート: "さっきした会話で思い出した豆知識。linuxのブロックデバイスファイルに対する書き込みの特徴 - 非同期書き込み、非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ - このデバイスファイルにページキャッシュは無い。write時はbuffer cacheを使う(I/Oが終わったら捨てる)"
satさんのツイート: "これらについてはsar -rとsar -d -pを使って監視しながらddを使って通常のファイルとデバイスファイルに書きこむと手に取るようにわかります。"
satさんのツイート: "あの本ではまったく同じではないけど、こういう話をしています。とにかくOSの挙動を実測 唐突な宣伝すいませんでした"
Yosuke FURUKAWAさんのツイート: "Node.js の deep な所まで突っ込んで非同期処理の成り立ちを解説した論文、まさかNode.jsの論文があるとは。 / “Semantics of Asynchronous JavaScript” https://t.co/1oCRNOtO82"
Semantics of Asynchronous JavaScript
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxの場合、(posix aio ではなく)libaioでないと、syscallな非同期I/Oにならない?posix aioだとライブラリ内部でスレッドを使うユーザランドな非同期I/Oになるのかしらん? https://t.co/um1OdyTGsd https://t.co/gyUYGxLgiL"
バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog
Kengo Sawatsuさんのツイート: "メモ:macOSにおけるaioのリミット値のデフォルト sysctl -a | grep aio kern.aiomax: 90 kern.aioprocmax: 16 kern.aiothreads: 4 実際16以上同時にぶちこむとエラー帰ってくるよ。"
Kengo Sawatsuさんのツイート: "Oh,god..... MacでフォーマットしたExFATディスクにaio_writeでパラでデータ書き込むと100%データ壊れるんだけど、これヤバすぎでしょ。。 8MiB*2だろうが16*4のふた通りで試して試行回数3で100%破壊、しかも破壊箇所に再現性なし。。。"
INADA Naokiさんのツイート: "I/O多重化のメリットを享受しつつ、一般的な(コールバックやasync/awaitを使った)非同期プログラミングのスタイルのデメリットがないという意味です。 Javaとかの普通にスレッド使うよりは軽量になります。 Erlang や Haskell とは同じです。… https://t.co/gLELlykAWx"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsにしてもUNIXにしても、read/writeの非同期I/Oはあるが、create(open) / remove(unlink) の非同期命令が無い。 ネットワークファイルを大量作成or削除する場合は、自前でマルチスレッド化するしかないのが現状。"
鯉江さんのツイート: "メタデータいじる系のやつに非同期IOがないのはローカルファイルシステムだと平行性があまりないから用意されてないだけなんだろうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごもっとも。 ちなみに個人的には、ダイレクトI/O + 非同期I/O(ただしネイティブな実装に限る)がベストかと。(高速&ファイルキャッシュで仮想記憶を汚さない。1MB以上のファイルの場合ね) ---- read(2) vs mmap(2) の迷信 https://t.co/bhlQb88gcm"
read(2) vs mmap(2) の迷信
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、ダイレクトI/Oはセクタ単位縛りが面倒なのは確か。 特に書き込み側。非ダイレクトI/Oで開き直して、末尾を調整する手間が必須に。"
Makoto Kato ︎︎さんのツイート: "WebKit、https://t.co/8KLoTJ6o8L で隠しAPI使ってるんだよな。。。たぶんこれ使えばTwitterの件はどうにかなるんだろうけど、さて。。。"
130479 – [Mac] Support asynchronous NSTextInputClient
Makoto Kato ︎︎さんのツイート: "自分たちが欲しかった非同期APIだよ"
Makoto Kato ︎︎さんのツイート: "マルチプロセス化するのにOSのAPI変えられる会社はズルい。無理矢理実装したのに。。。"
Takashi KawasakiさんはTwitterを使っています 「非同期のコードを疑似コードでいいのでフロー教えてほしいといわれると結構面倒・・・。というかコーナーケースの表現ができない。」 / Twitter

非同期IO - Wikipedia
現代の非同期処理
GOMAXPROCSについてのメモ
マルチスレッド · Build web application with Golang
AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
ノンブロッキングとは?ブロッキングや非同期との違いは?|ITトレンド
特性を理解する!ノンブロッキングとは【初心者向け】 | TechAcademyマガジン

Direct I/O

パフォーマンス

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy ではむしろ、OSキャッシュに載せないよう Direct I/OとAsync I/Oで頑張っている…」 / Twitter
FadisさんはTwitterを使っています 「@nikq Linuxはじめとするmmapを素直に実装するOSではreadは「ページキャッシュに乗せてバッファにコピー」なのでmmapして全領域を(posix_)?fallocateする事で「ページキャッシュに乗せてそのアドレスをよこせ」した方が性能が出る事があります。単純にファイル全体を読みたい場合試してみる価値があるかと」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@fadis_ @nikq わたし10年ぐらい前にLinuxのVM書き換えたことがあるんですけど、そのときいろいろ調べて、mmapでコピーするのはほぼ常に遅いという結論になりましたね。 OSの教科書が想定しているハードウェアが古すぎるんだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「Direct I/O には Async I/O がよく似合う」は本当です。 (2MBくらい以下のI/Oサイズの場合は特に)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (横からすみません)むしろ、OSキャッシュに載っていない状態からの計測を繰り返さないと意味無くないですか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq キャッシュに乗るまでの時間がreadとmmapで変わるのであればそうですが、そうなんですか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq そう言う話があった気がします。 (mmapの場合、ページアクセスで例外発生からI/O発生の繰り返しになるのが呪いになるなどあった気が…最初のアクセス以降は先読みが効いてとかあっても良さそうですが、実測ではペナルティが大きかった記録を読んだ気がします…小崎先生の方が詳しいとは思いますが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (もしくはOS先読みだと、大きなI/O指定にならないのが問題だったり…?ちょっと覚えていませんが)」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq なるほど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、Direct I/O は(非セクタ倍数サイズなファイルだと)Win/Linux共に、 ・Readでは末尾は1回のreadで読み取れる (要求はセクタ倍数だが、答えは非セクタ倍数) のに対し、 ・Writeはセクタ倍数Writeした後にtruncateか、末尾writeだけ非Direct I/O を使う という非対称性があってモニョる」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LinuxはOSSなんだから、実装案を作って提案したほうがいいのかしらん…とはいえ、私くらいしか気づいていない非対称性かもしれず、誰得?とか言われそうな(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、いろいろ性能計測の結果、Windowsだとtruncateに軍配という結果だった。 (最近わざわざ非truncate実装を加えた末に、意味ないと判りがっくり…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうそう、これ私も以前から実験してみたかった話(笑) (ところで、HugePageだと先読みもHugePage単位でやってくれるのかしらん?重そうだけど…)」 / Twitter
FadisさんはTwitterを使っています 「@angel_p_57 @shirouzu @kosaki55tea @nikq 頻繁なpage faultが性能低下の原因なら、Transparent Huge Pageで問題のいくらかを回避できる気がする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq メモリ上でのコピーではなくディスクアクセスがボトルネックになるベンチマークである、という前提において言うと、readaheadに与えられる情報が多いreadを使う方が、mmapよりも速くなる可能性があっても逆はない、と言えるのだと思います(そしてしばしば実際にそのような結果が観測される)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ファイルコピーベンチマークをみて、あーBDPの推定問題だなって思ってしまうのはネットワークに毒されてる証拠」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@kazuho @fadis_ @angel_p_57 @shirouzu @nikq 情報量もありますし、ヒューリスティックに推測するにしてもmmapはランダムアクセスのパターンで使われることのほうが圧倒的に多いので、readaheadの推測値がどうしても小さくなってしまうんですよね。IOの効率に比べたら、メモリ操作の効率はあんまり重要じゃない」 / Twitter
FadisさんはTwitterを使っています 「@kazuho @angel_p_57 @shirouzu @kosaki55tea @nikq この問題についてはPOSIXな環境で幅広く動くコードについてはその通りだと思います。一方でLinuxでMAP_POPULATEを指定している場合mmap時に指定したサイズが一度に読み出される為、readに対して不利な要素は何もないように思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq はい。アプリケーションが適切に先読み量を設定できればdisk i/oの利用効率が最大化できるであろう、という意味で、おっしゃるとおりだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2MBの先読みだと、readにもう一息追いつかないかな… (Direct I/O = 先読みが効かない状況でも、4MBくらいから(Async I/Oなしでも)ほぼペナルティは隠蔽されはじめる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このMAP_POPULATE興味深いなぁ。mmapコピー実験は(キャッシュ無効からの)MAP_POPULATE版での計測をやってみたいところ。 (Windows版にもこのフラグ欲しい…ただ大量コピーの場合、ファイルが使う物理メモリ量は制限したいので、やはりDirect I/O + 自前メモリがよいかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には大量コピーには、Direct I/O + Async I/O が最強だと思っているので、いずれ Linuxでもこの形の FastCopy を作ってみたいと思いつつ。」 / Twitter

2020-12-24

SODA NoriyukiさんはTwitterを使っています 「メタデータが更新されてる保証がないって話かなあ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda データもです。direct I/OってI/Oリクエストを投げたら完了を待たずに復帰するんですよ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda ネタバレですが &gt; To guarantee synchronous I/O, O_SYNC must be used in addition to O_DIRECT. https://t.co/itt6Pu4wCC」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda 実装依存ですね。あんまり知られてないです。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「open(O_DIRECT) + write(2) 終了時にデバイス転送が終わっていないと? だとwriteに指定していたページをwrite直後に書き換えるとどうなるのかしらん?(COW?本当?) あと手元(5.9.0)だと open(O_DIRECT) + read(2)では、キャッシュ有無に関わらず常にデバイスから読んでるのだが…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおWin32のFILEFLAG_NO_BUFFERINGだと、常にデバイス直接書き込み&読み取りを保証。 (ただし、デバイス側のキャッシュに溜まるだけというのはあり得る) https://t.co/G1zVZVlD1F」 / Twitter
File Buffering - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(writeはデバイスキャッシュの話を意識してるのかな?)」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu それはデバイスファイルですか?それとも普通のファイルですか?」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu いやデバイスファイルだとページキャッシュが無いから普通のファイルか」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi 普通のファイルですね。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu デバイスから読んでいるというのはどうやって確認しましたか。sarのようなメトリクス、あるいは速度、などなど。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi dstat ですね。direct指定のありなしで、dstatのI/O数の変化を見てます。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu ふーむなるほど?ちょっとページキャッシュありなしの速度からページキャッシュを使っているかどうか見てもらえませんか。ひょっとするとページキャッシュ使うけどディスクからも読むといった挙動なのかも」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/jS4OWpTyQA https://t.co/V6cdPH2gAw を見るとLinuxではそもそもI/O完了を待ってないようですね(待ちたいならO_SYNCが必要)。 知りませんでした。これは(manのこの記載事項も含め)OS依存だと思います。 readは(mmapされてない限り?)常にディスクから読むのでは?」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda @shirouzu 少なくとも私の検証結果だと「ページキャッシュを使う」のは確認しました。ただそこでディスクからも読み出すといったことをしてるかもしれないですし、実はファイルシステム依存の何かがあるのかもしれません」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔O_DIRECTで実験した時、十分に遅くて、非同期I/Oとセットにしないと使い物にならんと思った覚えがある。 実は仕様で「保証しない」だけで、現状の実装はO_SYNC相当の実装なのかな…?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにNetBSDの場合は(僕が読み間違えてなければ) ・mmapされてたりalignment条件を満たしてなかったら directio 自体を諦めて buffered i/o に fallback ・directio できる場合は、常に page cache を捨てて IO する (page cache は消えたままになる) だと思います https://t.co/MbRvtuN6Pt」 / Twitter
src/genfs_io.c at 6e6585deb129aaf617d854789663569f25298ba0 · NetBSD/src
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi Windowsだと条件満たしてないとエラーになるのですよね。 (そちらの方が個人的には好ましいかなぁ)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu Linuxでも(少なくとも数年前のCentOSだと)遅かったと思います。buffered I/O と異なり、OS が readahead や write behind してくれないのは今でも一緒じゃないかって気が」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi わかります>エラーになる方がいい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なんで同期保証しないんですかねぇ…write後もバッファが自由になるタイミングが分からないとすると使い物にならないというか、O_DSYNCと一緒に使えがお作法になりそうというか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda バッファは自由になるんじゃないでしょうか?単にコマンドの完了を待たないだけで #知らんけど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda writeから戻って(まだDMA実行中)渡したページ書き換えたら、データ壊れません?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そして、キューがあってコマンド複数発行できるからO_DIRECTだけ指定した方がシングルスレッドでの書き込み速度は大幅に高いとかありそう」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/R1iw9cpeMD にも関連するんですが、こっちのスレッドにぶら下げます。 書き忘れましたがNetBSDのO_DIRECTの場合はIO完了を待ちます。これはraw disk I/Oの高級版という意味上の要求のほかに、wire downしたユーザーメモリを同一システムコール内でpaging可に戻したいという実装上の理由も」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda いや、カーネルがコマンド発行してDMAが終わった時点でプロセスに制御が戻るのか、コマンドの完了応答がHDDから戻ってくるのを待つのかの差じゃないんですかと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho データ壊れるというか、ディスクにどういう内容を書いたかの保証がないので非常に困りますね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda それが非同期I/Oの狙いの一つですよね…ただLinux O_DIRECTがそれをやっているようには見えないのですよね。 (実際は転送終了まで待っているように見えます)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なデバイスドライバとカーネル上位層の間の構造だと、その2つの待つタイミングを使い分ける方法はなく、待てるのはコマンド完了応答があったタイミングだけですね。 現代のLinuxのカーネルの構造は知りませんが…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu いや、複数のブロックを複数のライトコマンドを発行したあとで、FLUSH CACHEするというのが伝統的なやり方だし、O_DIRECTはライトコマンドを発行する一手法にすぎないから別に困らないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なUNIXカーネルで biodone を待つタイミングの話をしてます。DMA完了だけ待つ方法はないのでは?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu なるほどありがとうございます。あるいは差としてはforce unit accessフラグを立てるかどうか、なんでしょうか」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにO_DIRECTが単なるヒントに過ぎず無視されることあるというこの挙動ですが、Solaris の directio に倣ったんじゃないかと思います(でも不便): https://t.co/5QLAdaOePK」 / Twitter
directio - man pages section 3: Basic Library Functions
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu と redhat の人は言ってるっぽい? https://t.co/byRpdCg4eU」 / Twitter
io - How are the O_SYNC and O_DIRECT flags in open(2) different/alike? - Stack Overflow
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu デバイス側のキャッシュをどう扱うかについては、さらに千差万別なんじゃないかという気がしてます。(同一OSでもfsごとに違うかも?) 実運用的にはドライブのキャッシュはオフにして battery バックアップつきの RAID cache に頼るというのが Linux を含め多いような(僕は老人なので現代だと違うかも?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 性能要件からしてそうなるのは良くある話だと思います」 / Twitter
arhさんはTwitterを使っています 「@n_soda @kazuho @shirouzu ドライバ書いてたのは大昔で、最近の事情は把握していないのですが、当時はデバイス側にもキャッシュを持つようになったため(しかも透過的な)、どの時点で完了になるかが不明確になって、結局実装依存、になっていっていました。最近のデバイス側キャッシュってどうなっているんでしょう。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu LinuxだとO_SYNCが必要なのは https://t.co/jS4OWpTyQA の通り事実なんだと思います。 ただユーザーメモリの wire down を解除するのがシステムコール完了よりも後になるかどうかは、やや疑問かなあ。まあ最近のLinuxの性能追及改善はとてもすごいので、やっているのかも...(←驚いてます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 同意です。その上で、O_SYNCとO_DIRECTを別個に持つ理由として、合理的な説明はありうるよなーと思いまして」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu はい。 実は Linux の O_DIRECT もデバイスドライバ層のIO完了自体は待つ実装になっていて O_SYNCの要求は force unit access から来てるってのはありそうな話ですよね。(今はともかく、少なくとも当初は)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda これって、NCQの想定が「コマンド転送+データ転送」の繰り返しのキューイング、みたいなイメージになってますかね? 実際は、ホストがコマンド群だけ転送して、デバイス側が都合よいコマンド選んではDMA要求発行、だと思うのですが…(つまり最後のDMA転送終了=コマンド群が完了)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そうなんですか。全然詳しくないのですが、最後にステータスが任意の順番で流れると思ってました https://t.co/TrwrHXd103 https://t.co/DWnZ2rfK6R」 / Twitter
SATA Introduction
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda 上記でいうと、NCQ説明はこちらの図ですかね。 NCQはまずコマンドを溜め込んだ後に、デバイス側は、その中で最初に書きたいwriteコマンド(or 完了したreadコマンド)を選んでは DMA転送していく感じかと。 https://t.co/XXjj1x7A73」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい。その図で言うSet Device Bits FISはタグを含んでいて、queue depthのゆるす範囲で任意の順番で発行されるのではないかと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda で、Writeでは(FUAとかでないかぎり)DMA転送終了≒writeコマンド終了通知(=OSから見ると同期write終了)だと思っているのですけど、違うのですかね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい、O_DIRECTがDMA転送終了でwrite完了、O_SYNCがstatus受信でwrite完了だというのが、合理的にありうる可能性だと思います。sodaさんが懐疑的でいらっしゃいましたが(https://t.co/E10bdGoWiE からの議論)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda NCQ云々を書いたのは(sodaさんの考えと似てて)、DMA完了≒コマンド完了なのだから、(コマンド完了ではなく)DMA完了などというトリッキーなタイミングは使ってないのでは?という意図です。 (つまり、DMA前に制御戻っていてデータが壊れる危険 or CMD完了後に制御戻ってるので大丈夫かの2択)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda 少なくともforce unit accessフラグを立てているケースにおいては、タイミングがDMA後なのかstatus受信後かで意味は変わると思います。O_SYNCでタイミングも変えているのか、単にフラグを立てているだけなのかは、どちらも実装としてアリなんじゃないかと思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda もちろん少し前にこう書いた通り、FUA除外の前提です。 「で、Writeでは(FUAとかでないかぎり)…」 そもそもアプリ側でFUA指定ってできるのだっけ…あれはジャーナル等のチェックポイント書くといった特殊用イメージある。(ハードウェア的なO_DIRECTという感じ)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda https://t.co/GIN3U2Ogb6 (O_DYSINCですけど)このへんでしょうか(まーじされたかは見てない)」 / Twitter
[RFC] iomap: Use FUA for pure data O_DSYNC DIO writes - Patchwork

2020-12-26

🐢sat🦥さんはTwitterを使っています 「@shirouzu @n_soda ページキャッシュが存在する状態でdirect readするとI/Oを発行する件、正しくは↓でした - ページキャッシュを迂回してディスクからユーザページに直接データ転送 - 既存ページキャッシュをわざわざ捨てはしない - 既存ページキャッシュがdirtyな場合はdirect read前にwriteする」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi (確認せずに言ってますが)それはそうだと思いますね。 メモリ内容を比較するのは結構なコストなので、もしこれをやるとダイレクトI/Oの低コストが台無しになるので。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi NetBSDは direct I/O の前に単にpage cacheの中身を(dirty な場合は書き出した後) 捨ててるんですよねえ。ある意味一貫性はとれるけど、もったいないという。」 / Twitter

2020-12-27

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「きちんと再検証&訂正するスタンス、さすが。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「動画内の説明に誤りがあったこと、および正しい内容を動画のコメント欄に追記しました。 &gt; 注意: 動画の途中で「ページキャッシュがある状態でdirecr readしたらページキャッシュを使う」と述べていましたが、これは誤りでした。ごめんなさい。 #satlinuxtube https://t.co/xhaHojsMNU」 / Twitter
その23 同期I/Oとdirect I/O - YouTube
同期I/Oとdirect I/O - Speaker Deck
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年10ヵ月前のツイートを見つけてしまった。 こんなやりとりしてたのに、先日の類似ツイート見た時に、ピクリとも思い当たらなかった…ホント50歳になると「うーん、(何かあったけど)思い出せない」ではなくて、記憶の白紙地帯みたいになる…ヤバなぁ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi O_DIRECT + write(2)からreturnした後でも、writeで使ったユーザバッファを変更するとまずい、という挙動が(将来)ありえる、ということでしょうか?(それはちょっと厳しいのではと…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2004年に vmstat の buff と cache の違いについて書いたのを思い出した。 (SVR4という言葉も今は昔…という感じになってしまったな) https://t.co/8lNIxa9UQt」 / Twitter
私的メモ(2004年02月版)

Linuxキーワード - ダイレクトI/O:ITpro
LinuxでDirect I/O | わーどぷれす
ダイレクトIOの実装 - のぴぴのメモ
Linuxキーワード - ダイレクトI/O とは:ITpro : WEBディレクターが最低限知っておくべきI/Oの基本事項 - NAVER まとめ
IBM Knowledge Center - NFS のダイレクト I/O
LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
Direct I/O のパフォーマンス測定 (write)
Shirouzu Hiroaki(白水啓章)さんのツイート: "Direct I/O には Async I/O が良く似合う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyは、ネーミングのせいか「高速」「マルチスレッドI/O」という点に注目が集まりがちだけど、ダイレクトI/O(と非同期I/O)により、仮想記憶をキャッシュで汚さない(=他のプロセスが重くなりづらい)、という点が一番の特徴。 UNIX系でも、これを実現すれば嬉しい人は多いのではと思いつつ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで巨大なメインバッファを設定しても、意味がないということを何処かに書いた方が良いのかしらん? (概ね、512MBを超えると殆ど意味は無くなるはず。むしろDirectI/Oでdirtyページを閉じ込める意味が薄れるのでOS全体からは逆効果) https://t.co/6iuoDf2Jg9"
Shirouzu Hiroaki(白水啓章)さんのツイート: "相手がCIFS/SMBだと、LinuxではO_DIRECTは使うな、という感じに見えますね。… "
Kengo Sawatsuさんのツイート: "mount.cifsでマウントした先のfdに向かってO_DIRECT指定でopenすると死亡フラグについて、各OSごとに挙動違いすぎて方針決められないので、挙動をまとめてみました。。疲れたのでもう帰りたいorz https://t.co/k0l7lqJC4q #Linux #O_DIRECT #smb #mount.cifs"
Linux O_DIRECT with smb cache effects summary - Google スプレッドシート
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DirectIO にはメモリアドレスが「セクタサイズの倍数」という縛りがある(I/O時のデバイス転送絡みのはず)。 512eセクタ(内部4096)な場合、512バイト仮定で大丈夫だが、何らかの速度ペナルティが無いのか気になるところ。 (たぶん大丈夫かな…なお4096倍数の転送でないと速度低下するのは確認)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおメモリ・アラインを無視したデバイス転送を行うと、ドライバがエラーを吐かずとも、キャッシュ・コヒーレンスが壊れた経験あり。 https://t.co/yrE8N0T4MT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そうですね。さらに脱線すると、IRIX(ELAN4000) で発生した話で、SCSIデバイスからメモリにデータ転送が完了しても、転送前のメモリが一瞬見えてしまうという現象で苦労した覚えが…異常値検出しても次行のsprintfダンプでは既に正しくて(笑)」 / Twitter
Alireza FarshinさんはTwitterを使っています 「If you want to learn more about Direct Cache Access (DCA) or Intel Data Direct I/O (DDIO) technology when shifting toward multi-hundred-gigabit networks, check out our @usenix ATC'20 paper. #ATC20 #USENIX https://t.co/5vaSZYUdyM」 / Twitter
Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks | USENIX

I/Oスケジューラ

CFQ

CFQ - Wikipedia
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
6.4. 設定
I/OスケジューラのCFQとクラスを理解する - Qiita

BFQ

技術者見習いの独り言: BFQスケジューラ
Xperia X10推奨のIOスケジューラ|老兵のあがき
I/O スケジューラについて 前編 - 所感 ~android~
I/Oスケジューラーについての考察 - droidroid
CPUスケジューラとI/Oスケジューラの組み合せを探って性能アップを目指す: Project Valkyrie
linux-ck とGrub2 のアップデート: くしゃみ日記
I/OスケジューラCFQの置き換えを画策するBFQスケジューラ。ほう。Budget Fair Queueing - tmatsuu のコメント / はてなブックマーク
I/O Scheduler - sc-02croot @ ウィキ - アットウィキ

Kyler

2017年7月3日 Linunx 4.12が正式リリース,AMD VegaやNVIDIA Pascalのサポートなどが追加:Linux Daily Topics|gihyo.jp … 技術評論社
過去最大規模のリリースという「Linuxカーネル4.12」リリース | OSDN Magazine

Noop

Noop scheduler - Wikipedia
LinuxのSSD設定 - Qiita
6.4.3. Noop
Fadisさんのツイート: "LinuxのI/Oスケジューラ、noopスケジューラとnoneスケジューラが全く別物なのネーミングにアレさがある"

Anticipatory scheduling - Wikipedia
Deadline scheduler - Wikipedia
I/Oスケジューラを使う。
ディスクI/Oスケジューラの設定 - 人生は、お天気いろいろ
OSSはアルミニウムの翼で飛ぶ: RHEL I/Oスケジューラの変更
I/O Schedulerをわかりやすくまとめる – Simple IT Life
Deadline IO スケジューラーを使用する - Red Hat Customer Portal
SSDの並列性を引き出すI/Oスケジューラに関する研究
【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた - Qiita
Linux 2.6 カーネル ベースの仮想マシンでディスク I/O パフォーマンスが遅い (2094615) | VMware KB
openSUSE 13.1: 第13章 I/O 性能のチューニング
Fadisさんのツイート: "linuxのscsi-mqをデフォルトで有効にしようという提案がなされている。 scsi-mqが有効な場合SCSIデバイスに対するリクエストは従来のI/Oスケジューラではなく、フラッシュメモリが物凄く速い時代に合わせて新しく作られたblk-mqを通してデバイスに送られるようになる https://t.co/fGya5h7WOY"
The Linux Kernel May Soon Default To SCSI MQ Mode - Phoronix
Fadisさんのツイート: "ストレージがマルチキューかつ凄く速くなって、I/Oスケジューラをプロセッサごとに持ってロックしないようにしないと、カーネルで詰まってストレージの性能が引き出せないの、ハードディスクの時代に作られたスケジューラにとっては想定外もいいところな状況だ"
Reading article about io.waight

エレベーターシーキング・コマンドキューイング

遅延書き込み - Wikipedia
NetWare --- LAN普及の足掛かりとなった高速なネットワークOS | 日経 xTECH(クロステック)
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (1/3)|基礎から覚える 最新OSのアーキテクチャー
SUSE+XEN で作るプライベートクラウドのハードウェア選びのポイント : isLandcenter 非番中
CPUスケジューリング

システムコール

io_uring

Twitter

2021-02-24

001

_ko1さんはTwitterを使っています 「@blackenedgold 前回の記事、へのリンクが 404 のようです。 それはともかく、とても興味深く拝見しております。 Rustよめないんですが、io_uring だとデバイスへの書き込み(時間かかる)への複数のリクエストをまとめるから速い、って結論なんですかね。というか、std毎回同期しないとこんなに早いってすごいですね」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 ありがとうございます、404修正します。多分5GBはOSのページキャッシュに載ってしまうのであとはメモリに書き出す速度の勝負で、仕組みが単純な分普通のwriteの方が速いのかなって思ってます。Linux 5.12でio_uringが速くなるらしいのでそこも期待ですね。」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold 確かに、ある程度ページキャッシュに載ってしまえば、io_uring とやること変わんないすね。C10Kだと、例えば socket read が multiplexing されるので変わるんですかねぇ。でも、スレッド 10K 個作ってもあまり変わらない気も(100K だと作れないで変わる)。」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 そうですね、本来io_uringは非同期化のためのAPIなので多重化で効いてくると思います。スレッドを使った実装との差分はパフォーマンス上かなり違うらしいです。 https://t.co/NH7piwnZpUの問題点」 / Twitter
Linuxにおける非同期IOの実装について - Qiita
_ko1さんはTwitterを使っています 「@blackenedgold あ、Posix AIO じゃなくて、コネクションごとにスレッド作るようなサーバ実装を考えていました。コネクションごとにオーバヘッドがかかりますが、中での IO はどうなんかなと」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 コネクションごとにスレッドを作るとコンテキストスイッチが重くてクライアント数が10Kくらいが限界になるから1スレッドで複数のコネクションを捌きたいというのがC10K問題じゃありませんでしたっけ。コンテキストスイッチの部分を抜いてIOだけに着目したら何が違うんだろうという疑問ですか?」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold コンテキストスイッチは重くないと思いますよ... と思うんだけど、どうなんだろ自信がなくなってきました。主に、生成・終了のコストが問題だと思っていました。プロセスコンテキストスイッチのオーバヘッドが、OSレベルでやるかユーザレベルでやるか。タイムスライスが邪魔といえば邪魔かな...」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 私もちゃんと測ったことないんですがスレッドの切り替えでレジスタやら何やらをsave/restoreしないといけないのでユーザランドでできるに越したことはないって聞きました。スレッドの生成と終了が遅そうなのはそうだと思いますが、それだけだったらスレッドプールで解決するはず…。」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold スレッドプールだと1万個のio read かけないんですよ」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold あ、固定長プールじゃなくて1万個プールできるってやつならいいのか。だいたい1mbメモリ食うので1万個で10gb、昔c10kが騒がれた当時だと、この辺もネックかもしれませんね(ページテーブル管理も」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 はい、現実的には1万個のスレッドを作るのは難しいと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「スタックポインタ書き換えるとリターンアドレス予測がリターンする回数分だけ失敗する結果、遅くなるイメージだったけど、最近のIntelだと、そのあたり補う仕組みがあるんだろうか。たとえばsp変えたら普通の分岐予測使うとか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 c10k屋さんです。スレッドのコンテクストスイッチ遅くはないですが、スタック使用量と、スタック切替でreturn address予測が外れるのはちょっと痛いのかなと思ってます。c10k用途だと、リクエストあたりのバイト数がよほど小さくない限りはsyscallのオーバーヘッドは問題にならない印象なので...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 io_uringを使うメリットが一番あるであろうところは、メモリに載っていないかもしれないfile readが発生する場合だと思います」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold 独立した複数のって感じすかね Netflix?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 複数の何かがよくわかりませんが、cpuコアごとにスレッドたてて、スレッドごとにイベントループのかわりにio_uringまわす感じになると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold netflixさんはレスポンスサイズ大きいし、レイテンシの問題ないし、io_uringの必要性薄いユースケースだと思います。というか、公開情報が正しければfreebsdでtcpのsendfileでカーネル内tlsしてるはず」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold ですよね(出先だったんですが、さっき自転車乗りながら違うなあと思ってた)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uringのインパクト、僕の理解が正しければ、第一に、従来のfile i/oは高速な非同期実装が難しかったのを、メモリにすでに載ってる場合も含めて高速に動くような解になってるところ。第二は、従来方式でsyscallのオーバーヘッドが相対的に大きくなる小サイズのi/oが頻発する場合に、それを隠蔽...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「できるところだけど、それが問題になるほど最近のcpuはネットワークと比べて遅くない(ことが多い)し、file i/oでディスクでブロックされるのはパフォーマンスガタ落ちになるので第一の点が大きいでしょうなぁみたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「h2oはファイルからコンテンツサーブする仕組みあるし、小サイズのi/oやらないこともないからio_uring対応してみたらいいんだろうなと思ってるけど、キャッシュに載っていないかもしれないファイルからコンテンツサーブするみたいな運用してる利用者がいるか問題ですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「dpdkやらないの?→やりません(メリットが薄そうだしユースケースが限られるから) netmapやらないの?→やりません(dpdkより良いけど以下同文) って感じできたけど、io_uringは、やってもいい気がするのよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「面白い。disk i/oで引っかかるケースでio_uringならレイテンシ隠蔽ができることと、引っかからないケースで通常のfile i/o並に速いことが読み取れるので、io_uring実用的という結論になると思う / https://t.co/sJT5k7PinK」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold 話があっちゃこっちゃいきますが、つまり C10K が最初問題視していた1万コネクションさばきたいって奴は、read 待ちの epoll で起きたときには、多分データ届いた後だから、io_uring でも大して違わんって感じですかね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold サーバ屋さんとしては、ネットワークをサチることができればそれでいいのですが、フルサイズパケット(あるいはTCPだと複数パケット分)ごとにi/oするようなケースだとepollベースでサチれるのでio_uringに移行するメリットがない。ただ、file readでディスク待ちが発生してると別、という感じです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold dnsとか、cpuをケチりたいルータとかだと話が変わるかもです」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold cpu usage って減りそうですか。仕様・実装知らないんですが、io_uring に登録した userland のバッファに直接 kernel が書き込めて、kernel -&gt; user copy が減るとか?」 / Twitter

002

Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold スレッドみたらC10Kがガイシュツだった...」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold system call が単純に read 分 1 個減るか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 減るんじゃないかなーと予想しています。コピーは早いし、特に小サイズのi/oにおいては差がでない気がするので、syscall自体のオーバーヘッドのほうじゃないでしょうか」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold I/O 回数が多いときにメリットありそうですね。 Meltdown &amp; Spectre などで syscall が高価になったりもしてますし。個人的には C10K なネットワークサーバなどでの効果がより大きくなるんだろうなと想像しています。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold そうですね、僕は、syscallのオーバーヘッド削減については、上に書いたように、c10kなサーバでも、i/oサイズがMTUあるいはそれ以上のケースなら実用上のメリットは薄いと思っています。disk i/oを隠蔽できるメリットはc10kに限らず有用」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold ありがとうございます。ファイルI/Oで有用というのは aio に対して何か優位性見えますか? たんに非同期でよければ aio でもいい気がしますし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold aioはdirect i/oだから、キャッシュされていないデータ専用コードになりませんか(別の言い方をすると、独自にファイルキャッシュ実装する必要がある)。io_uring使うとbuffered i/oの良さとnon-blockingの良さの両方を手に入れられるんじゃないかと」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold あーナルホド」 / Twitter
Kazuho OkuさんはTwitterを使っています 「VMのdisk i/oは非同期だし、qemu側ではbuffered i/oにしたいこともあればdirect i/oにしたいこともあるだろうし、みたいに考えるとio_uring使うのは納得感強い」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold さいきんqemuのソース見たらio_uring+coroutineでシングルスレッド並列IOするような構造になってましたけど、大量のファイルをページキャッシュ経由で読んで配信する用途でもおなじようなアプローチをとったりすると確かにおいしそうですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold あーなるほどqemuのその使い方は面白い&amp;納得感ありますね」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold qemu のどの辺で使ってるんです?」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold https://t.co/zgsnezYbtR」 / Twitter
qemu/io_uring.c at master · qemu/qemu
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold インターンで実装したexperimentalなもので、広く使われてはいないと思います。」 / Twitter
Stefan Hajnoczi: Coroutines in QEMU: The basics
Kazuho OkuさんはTwitterを使っています 「今から素人みたいな質問します。select(2)ってfile i/oも非同期化できるの? できるような気がしてきた」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho QEMUで direct i/o にすることあるんかなと思ってたんですが、あるんですねぇ https://t.co/HBwpaosfq1 direct=on」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 いやむしろ、ハイパーバイザはdirect i/oするのが普通じゃないでしょうか? キャッシュはゲストOSの仕事なので...」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho 私の QEMU 感は guest os 用なので...(10年くらい認識が古そう)」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho 日本語が変だった。host os 上で実行する guest os のための virtual machine 基盤だったので...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 あーごめんなさい。使い方の差でなくて、ゲストのキャッシュから溢れたものをホストでキャッシュするのは効率が悪いので、qemuではdirect i/oしつつ(ホスト、ゲスト関係なく)OS毎のキャッシュ量の調整はbalooningで行うのが正攻法だと思ってますという」 / Twitter
バルーンニング (ballooning)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
_ko1さんはTwitterを使っています 「@kazuho なるほどです。10年前は研究会でその辺どこでやるか色々議論されてた印象がありますが、あまり聞かないので、もう決定版があるんすかねー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーなんか二つの出来事を混同して覚えてたかも。Armのreturn address stackが有効に機能するようにしてv8高速化したっていうのは https://t.co/GiUjiNISrw で、一桁Cortexのあたりでreturn address stack深くしたのは別の話かな」 / Twitter
Google's V8 on ARM: Five Times Better - Processors blog - Processors - Arm Community

003

_ko1さんはTwitterを使っています 「@hasegaw @kazuho @blackenedgold なるほど https://t.co/MalfBOoFuf 元々 aio IO があって、そのバックエンドにするんですね(元々はそういう hardware emulation とかで使うのかな)」 / Twitter
qemu/file-posix.c at 1ed9228f63ea4bcc0ae240365305ee264e9189ce · qemu/qemu
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold やってることは、ゲストOSに見せたSCSI/IDE/virtioデバイスからのIO要求がpwritev/preadvみたいなもので、同時に複数の要求がきたりするので、それをIOスレッドが実際にさばいて制御を戻す(完了通知を返す)感じです。」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold coroutineで実装されてるのをみてうまいなあと思いました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 僕的はqemuがコルーチン使ってるの知らなかったので面白かったです(使うと楽になるタイプのソフトウェアだし、そこまでパフォーマンスにシビアなソフトでもないので使うのは妥当だと思う)」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold 複数のIO要求が同時にきたときに、並列にバックエンドに要求をなげつつ、はやくおわったものから順に返事を返すってワークロードには向いてるんですよね。kazuhoさん的にはコルーチンだとオーバーヘッド気になるという感じですか?スレッドよりはいいのかなというぐらいに思ってました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 分岐予測がらみのオーバーヘッドがあるという認識ですが(cf. https://t.co/WqYccnpLfu)、それほど問題になるものではないとも思います。実際のところ、特定のコルーチン実装に縛られて良いなら、いろんなものをコルーチンで書くことで工数削減できそうな気もしています」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold 比較対象ってイベントループですかね?(スレッドじゃなくて / スレッドだと同じ問題ありそう) 考えたことなかったけど、どれくらい効くのかなhttps://t.co/meyIVHI0SS」 / Twitter
assembly - how to clear return stack buffer in x86 or x64 - Stack Overflow
Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold はい。比較対象はイベントループですね。スタック差し替えるとreturn address predictionが全滅するでしょうから、切り替え直後にreturnを連発するようなケースだと悲しいことになりそうな気がします(まあ言っても分岐予測外れるだけですが)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold 関連する文脈で言うと昔のarmはreturn address stackが3スロットくらいで、それがJavaScript VMの速度低下の要因になってたみたいな話があったと思います」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold みんな main に書いてたんですね!!1」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold いまはsubroutineの話はしてないですしね?」 / Twitter

Kazuho OkuさんはTwitterを使っています 「文脈としては、大抵のファイルはページキャッシュに載ってて、そいつらを読む場合 io_uring_submit 呼んだ瞬間に読み込みが終わる。CPUのキャッシュの局所性の観点から言うと、この特性つかって一度に走る読み込みの数を減らすのが重要。だからコードのパスが分かれる。で、スローパスのテストをしたい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring でファイル読み込みが同期的に終わらない場合のテストって、どう書けばいいんだろ。ローカルマシンなら drop_caches すればいいけど、CI だと無理だし、キャッシュ溢れるほど書きたくはないし。 O_DIRECT でテストファイル作ったらうまく行くかな?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring、ファイルI/Oを軽量なノンブロックにできるのは明確なメリットだけど、システムコールの数が減るという点については並走するread/writeが増える結果メモリアクセスの局所性が下がるというトレードオフの関係があるので、一概に速くなるとは言い難いという理解」 / Twitter

io_uringを使ってみた
2020年12月15日 2020年最後のリリース「Linux 5.10 LTS」が登場:Linux Daily Topics|gihyo.jp … 技術評論社
2019年5月7日 Linux 5.1がリリース,新しい非同期I/Oインタフェース,2038年問題対策など:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.1」リリース、非同期I/Oインターフェイスなどが導入される | OSDN Magazine
io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog
io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
mumumuさんはTwitterを使っています 「Improving Network Connection Locality on Multicore Systems [EuroSys '12] 局所性向上のため,各コネクションが特定のコアにのみ紐づくようにLinuxのaccept()などの実装を変更.Kernelに一つだったデータ構造をPer-coreにでき,ロックの面でスケーラビリティも向上. https://t.co/Yb9zUrVsof」 / Twitter
pesterev-multiaccept.pdf
fork, select, poll, epoll, io_uringのecho server - suzuzusu日記

Linuxシステムコール徹底ガイド | プログラミング | POSTD
チュートリアル – システムコールの書き方 | プログラミング | POSTD
int 2E/sysenter/syscall考察 | 毛流麦花
Livaさんのツイート: "int命令のoperationと比較すると一目瞭然だった。(長すぎるので画像略) https://t.co/Jq2CehnsvG"
СЮУ1228さんのツイート: "フラットメモリモデルしか考慮に入れないとか、割込デスクリプタ参照したくないとか、スタックに積まないで退避用MSR増やしちゃえとか、いかにも最近の考え方でそもそもx86はそういう前提ではないと思うし設計時期が違うからということなのでわ https://t.co/uBJtlPhmX8"
Anatomy of a system call, part 2 [LWN.net]
品川 高廣さんのツイート: "SYSENTER は Intel の命令で SYSCALL は AMD の命令。IA-32 は Intel が決めたから、Intel は SYSENTER しかサポートしない。AMD は SYSENTER と SYSCALL を両方サポートする。反対に x64 は AMD が決めたから、AMD は SYSCALL しかサポートしない。Intel は SYSENTER と SYSCALL の両方サポートする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じLinuxのシステムコール呼び出しでも、sysenterはint80に比べて圧倒的に速い原理は、後者は全レジスタ退避&復帰が必須だから、みたいな話でいいのかしらん?"
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールreadfileが入りたがっているらしい。readfileはファイルをopen、バッファ分だけread、closeを1回のシステムコールで行う。小さいファイルを大量に読む状況でシステムコールの回数が減るため、システムコールが安くない場合性能の向上が期待できる https://t.co/eSNFaUyZhV」 / Twitter
New readfile() System Call Under Review For Reading Small~Medium Files Faster - Phoronix
epollで作るチャットサーバ | κeenのHappy Hacκing Blog

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "NTカーネルには、バッファI/O、ダイレクトI/O以外に、ニーザーI/Oというものを知った。 もう少しネーミングに工夫が出来なかったものか(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験の結果、デバイスの占有率と速度変化、SSDだと比例するのだが、HDDだと書き込み速度の下がり方は占有率数分の1だった。 ダイレクトI/Oとはいえ、HDD内のwriteキャッシュが有効なので、さもありなんという結果ではあるが、どうするかな。… https://t.co/H4OvSkJWT8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSD/HDD識別に https://t.co/kt1N4L0Tce にある、IOCTL_ATA_PASS_THROUGHが紹介されていてadmin不要と書いてあるが、PhysicalDriveをGENERIC_WRITEで開く必要があり、事実上、admin必須なので候補から除外。"
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのスピードスライダ改良(使っている人、どれだけいるのだろう?)、完璧とは言えないが、まあこんなものかな?というレベルにはなった。 転送時間とsleep時間の比率をベースに、SSD/HDD/ネットワークを識別して、パラメータ調整するイメージ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RAIDになると、バックエンドの物理HDDが複数となる場合があり、同一判定でも常にシーケンシャルアクセスが良いかというと、そうでもない場合もありそうで、そのためにデバイス毎の上限アクセス数設定(デフォルト:1)があった方が良い?と思うことも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)がマウント時に、自分自身の暗号ボリュームファイルに対して、 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS を発行して覚えておけば良いだけなのだが…あまりニーズが無いということかしらん。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)で、FastCopyが同一HDD判定を間違う、という報告が来るが、 VeraCryptが IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS ioctl に常に0を返す挙動のため。 https://t.co/kdemtBfCkR"
FadisさんはTwitterを使っています: 「昔: 皆がストレージにバラバラ書くと性能が出ないから読み書きはカーネルに投げろ、カーネルがスケジューリングする 今: カーネルがスケジューリングすると貴重なCPUを浪費するからストレージにそのまま投げろ、スケジューリングはストレージのコントローラがする」 / Twitter
mumumuさんはTwitterを使っています 「Small is Better: Avoiding Latency Traps in Virtualized Data Centers [SoCC '13] vCPUやパケットキューにおいてShortest Remain Time Firstなスケジューリング(処理時間が短いパケットを優先する等)により,ホスト側だけの工夫でDCにおけるNWレイテンシを削減する研究 https://t.co/7YQCVjfpnh」 / Twitter
socc13_final.pdf
mumumuさんはTwitterを使っています 「I/O Scheduling Model of Virtual Machine Based on Multi-core Dynamic Partitioning [HPDC '10] DomのIOを監視してIO-boundな場合高頻度にコンテキストスイッチするFast-tick,ドライバDomはDriver,その他はGeneralという3種類に分類.それぞれに専用の物理コアを割り当て.https://t.co/MefZs06FEY」 / Twitter
I/O scheduling model of virtual machine based on multi-core dynamic partitioning | Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing
FadisさんはTwitterを使っています 「Linuxは2次記憶を操作する際にその内容を表すbio構造体を作ってブロック層に要求を投げるが、2次記憶が文字通り桁違いに速くなった結果、bioをslabから確保、破棄するオーバーヘッドがI/Oの性能を落とす原因になり始めた。そこでCPU毎にbioのpoolを作るようにした、という話 https://t.co/ZhAupnyue9」 / Twitter

Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する - hibomaの日記
「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録 - GIGAZINE
Linux:昨今のI/Oスケジューラ事情 2020 | SlackNote

デバイスドライバ

その他

UIO

組み込みの人。さんのツイート: "LinuxのUIO (Userspace I/O)を試しているのだが、カーネル内のドキュメントが2006年から更新されてなくて、現状と食い違っててつらい。"
まさみさんは語りたいさんのツイート: "他のドライバのフレームワークと比べてUIOの場合厄介なのは、それを使うサンプルコードとなるドライバが、カーネルに含まれていないってことなんだよな。"
UIO(User space IO)の割り込みの使い方の例 - Qiita
[Linux] User I/O | archmemo
LinuxのUIO(User space I/O) その1 - Qiita
LinuxのUIO(User space I/O) その2 - Qiita

printk

まさみさんは語りたいさんのツイート: "Linux kernelのprintkで出力されるアドレス、%pを使うと暗号化されて出てくるようになってるけど、これを一元的に止める方法ってあるんだっけ?"
このコード、オシャカルトっ!さんのツイート: "@mhiramat /proc/sys/kernel/kptr_restrict を0にするっぽいです。"
まさみさんは語りたいさんのツイート: "謎だな、%pxにするとリークしちゃうというのは分かるから、%pKにするのが正解なのか。"
まさみさんは語りたいさんのツイート: "んー?kptr_restrictが0でも、%pKを使うとハッシュ値しか表示されないんですがこれは。"
まさみさんは語りたいさんのツイート: "わかったこと ・printkで%pだけを使うと常にハッシュ値が表示される。 ・%pKを使うとkptr_restrict=1の時だけsysadminには表示され、0のときはハッシュ値になる。 ・vsprintf.cのプログラムはこの辺りの処理が適当に書かれている。"
まさみさんは語りたいさんのツイート: "何が適当かって言うと、%pKの処理でkptr_restrict=1の時の処理が2重に書かれていて、通らない方の処理が残ってしまってるんじゃー!そしてそっちの方ではkptr_restrict=0の時には常に表示される、って設定になってる。 惑わされたわ。"
まさみさんは語りたいさんのツイート: "ああ、今最悪のblame結果を得た。通らない方の処理の方が先に書かれていて、その6日後のコミットで通る方が追加されているけど、追加したのはLinusだ。"
まさみさんは語りたいさんのツイート: "あー、理解した。%pKやめようぜっていう話なのか。基本的にkptr_restrictedは削除する方向になっているらしい。"
まさみさんは語りたいさんのツイート: "多分KASLRがあるためなんだけど、絶対アドレスでカーネルの内部を表示することは基本的にありえないっていうことになるようだ。"
まさみさんは語りたいさんのツイート: "デバッグ用途では未だ必要な気がするんですがそれは・・・。"
まさみさんは語りたいさんのツイート: "printkの%pKの処理を修正しようと思ったけど、Linusのパッチコメントでkptr_restrictが否定されていたので投げる気にならない。 というか、どうすればいいんだ?? https://t.co/Rsj5wJ95MP"
まさみさんは語りたいさんのツイート: "%px使えってことなんかな?"
まさみさんは語りたいさんのツイート: "printkの端的な理解を得た。 https://t.co/g6qGem5U1M ・%pxどころか%pもホンマはあかん。意味ない。使えんインタフェースをわざと残すことで、再考して欲しいんや。 ・そもそもホンマにカーネルのアドレスを教える必要なんてあるんか?よう考えてコーディングせい"
まさみさんは語りたいさんのツイート: "あとはkallsymsは何故特例として残されたか、が気になる。kprobesで比較するのはkallsymsだから、これと同じように扱われて欲しい。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_strictよりも少しきついだけの仕組みなんだけど、これを参考にしたほうがいいのか、%pKを使うべきなのか?"
まさみさんは語りたいさんのツイート: "ごめん、これは間違い。%pKも推奨されない。どうしても必要なら良いけど、基本的にはアドレスをポンポン表示しないこと、らしい。"
まさみさんは語りたいさんのツイート: "一応 %pの修正シリーズ出しておいたけど、4.14でどうなってたっけな?おかしかったらバックポートしないと・・・。"
まさみさんは語りたいさんのツイート: "しかし未だにprintkの%pをどうするべきかが良く分かっていない。今のままだとインタフェースとして意味がないから、なんとかしないといけないんだけど、うーん・・・。"
まさみさんは語りたいさんのツイート: "ふむむ、kptr_restrictはkallsymsがアドレスを隠す仕組みとは全く関係ないっぽいな。これはややこしい。"
まさみさんは語りたいさんのツイート: "LKMLを追いかけて理解した。 - %pは既にアドレスを表示しないようになっている(ハッシュ値) - %pxを明示的に使うことが必要だが、これ以上は必要でなければ使ったら警告される - %pKにすること。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_restrictが有効でなくても%pKと同じ動作をするようになってる。"
まさみさんは語りたいさんのツイート: "むしろkallsymsの方にスタンダードを併せて欲しい(笑)"
まさみさんは語りたいさんのツイート: "結局kallsymsと同じように振る舞うコードを書いて投げてみた。そのまま通ればそれでいいし、議論になったらなったで今後どうするつもりなのかを確かめてから修正する。"
まさみさんは語りたいさんのツイート: "それ既にLinuxでは削除しようかみたいな流れになってる。代わりに%pはハッシュ値になる。オプションではなく強制。アドレスをどうしても出す場合、%pxを使うことになるが、ダメコードとしてマークされる可能性が。… "

LinuxBoot

Fadisさんのツイート: "LinuxBoot: 「どうしてOSにドライバがあるのにUEFIの為にまたドライバを書かないといけないの?」に対するパンチの効いてソリューション。UEFI PEIの上でLinuxカーネルというファームウェアを動かしてLinuxのカーネルドライバを使ってOSを起動できるようにしよう、というもの https://t.co/e6XcY1J1qS"
LinuxBoot
Ryou Ezoeさんのツイート: "ちなみに推進しているのがGoogleという時点でお察し。… "
Ryou Ezoeさんのツイート: "すでに、デバイス上に転送して使うファームウェアブロブ以外すべてLinuxカーネルにしようというCoreboot、あらゆるブロブを廃止しようというLibreboot/Librecoreがあってですね。今回のはブロブを許容した上でLinuxカーネルを動かそうという試みで自由から一歩遠ざかっている。… https://t.co/6uVPlBJ1ZJ"
suzakiさんのツイート: "私は全てのNICにiPXEをインストールしてほしい。https://t.co/pqlREbcUn2 これがあれば、HTTPSでLinuxが起動でき、危険なTFTPブートを使わなくて済む。【宣伝】私が作っているBare-Metal ContainerではiPXEを使って任意のDockerイメージにLinuxカーネルをつけて、起動できますhttps://t.co/8udmvyyAu2… https://t.co/5EnFZdRJya"
iPXE - open source boot firmware [start]
baremetalcontainer/bmc: BareMetalContainer

NERF

Google Even Fear Intel ME, Reduce Their Attack Vector With NERF - Phoronix
more on Google NERF | Firmware Security
NERF - Trammell Hudson's Projects

blog

DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
linuxでRyzenの温度センサーを動くようにする - 覚書
Ryzenを積んだマシンで発生した新たな問題とその解決 - 覚書
x86-64 モードのプログラミングではスタックのアライメントに気を付けよう - uchan note
ファッション自作OSマンさんのツイート: "分かった.CPUが割り込み発生時に自動でスタックを整列してくれるんだ.Intel SDM Vol.3 6.14.2 "In IA-32e mode, the RSP is aligned to a 16-byte boundary before pushing the stack frame.""
IBM PC のタイマー事情 - 借り初めのひみつきち
Intel HD Audioで音を奏でよう
Intel HD Audioで音を奏でよう
はりぼてOSにIntel HD Audioを実装してみる[随時追加] - matsumoto-lab’s diary
2014-12-13
今月の myos - 借り初めのひみつきち

Qiita

仮想シリアル(COM) ポートドライバ「com0com」によるシリアル通信 - Qiita
Null-modem emulator (com0com) 日本語情報トップページ - OSDN
Linuxの不揮発メモリ対応について - Qiita

Twitter

Fadisさんのツイート: "linux-4.16から/dev/memがデフォルトでペリフェラルにしか読み書きできなくなる。この制限は2.6時代に実装されたが長らくデフォルトでオフだった。オフの場合rootはカーネルメモリを含むあらゆる場所を読み書きできる為、不必要に開けておくべきではないとされている https://t.co/2Z7Q0klUV8"
Linux 4.16 Is Tightening Up Access To /dev/mem By Default - Phoronix
まさみさんは語りたいさんのツイート: "Linux kernelのモジュールも、ファイル名にはハイフンが使えるけど、実際にロードしたあとはアンスコに変換される。ちょっと面倒。"
Fadisさんのツイート: "I3Cってなんぞって思って調べたら、I2Cが遅すぎるけどSPIだとデバイス数に比例して配線増えて辛いからI2Cのようにデータ線とクロック線の2本で沢山のデバイスをぶら下げられて、最大半二重33Mbpsで通信できる次世代I2Cとして作られたバス規格、と…"
Makoto Kato ︎︎さんのツイート: "98NX、登場が2年早すぎて、OSR2.1/2.5のバグに引っかかりまくった記憶しかない。大概ISA PnPのIRQ rebalanceでいろんなものが動かなくなってくパターンだったけど。rtermが安定しないからすぐデバッガがハングアップしちゃってデバッグつらいだけだった"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応ドライバやカーネルコード知らない人向けに補足すると、カーネル側はユーザ側がポインタ指定したデータを取り出すのに copy_from_user/copyin等を介して取り出す必要ありと。 (アドレス空間が違うので直接触ると落ちたり…ただし昔のUNIXは(トップハーフ側なら)直接触れるものが多かった印象)」 / Twitter
FadisさんはTwitterを使っています 「OpenRGB-0.3がリリースされたらしい。OpenRGBは近年よくあるRGB LEDで光るPCパーツのベンダー毎の実装の違いを吸収し、統一された方法でネットワーク越しに色を変えられるようにするデーモン https://t.co/OhwZ8217N8」 / Twitter
OpenRGB 0.3 Released For Open-Source RGB Lighting Control - Phoronix

なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE
第559回 デバイスの認識をモニタリング・コントロールできる「udevadm」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
スフォルツァートのネットワークプレーヤーがLAN DAC機能に対応 - PHILE WEB
DeviceTree: The Devicetree Specification
devicetree-org/devicetree-specification-released: Released versions of the Devicetree Specification
Virtual I/O Device (VIRTIO) Version 1.0
io386: tool wrapping around ioperm(2), iopl(2), outb(b), etc. | Firmware Security
groeck/lm-sensors: lm-sensors repository
start [HWMon Wiki]
HID over I2C | Microsoft Docs
ConexantのドライバをアンインストールしてPCのイヤホン出力を改善
XMODEM Protocol Overview
レガシーフリーOSに必要な要素技術 legacy free os
FreeBSD Press No.12 NetBSD column デバイスドライバにありがちなi386依存の罠
Kazuho OkuさんはTwitterを使っています 「わかる。上のレイヤで冪等性担保する仕組みがあると、下はすごい楽になる。レイテンシの低い冪等性(再送)アルゴリズムの設計と実装、すごく難しい(楽しい)んですけどね」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「virtio ドライバを実装していたときに思ったけどネットワークとストレージだったら後者のほうが難易度高い。TCP/IPネットワークはパケロス前提でOSが再送するけどもストレージは要求に対して応答が返ってくることが前提だからな。冗長化していても発生する問題を回避できる技術があったらきっと稼げる」 / Twitter
Rustを使用して安全で正しいLinuxカーネルドライバーを作成

ストレージ

SATA

AHCI

Advanced Host Controller Interface Specification
AHCI - OSDev Wiki
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
5/1 自作OSもくもく会さんのツイート: "ICH8/9のSATAコントローラは、クラスコードは01h固定だが、サブクラスコードはIDEモード(01h)とAHCIモード(06h)で値が変わるようだ。"
AHCI capability - 総本部日誌
Microsoft Word - dg_sataahciip_refdesign_jp.doc
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc
Reconf 201506
AHCI奮闘記 - 初期化編 - 無限遠まで突撃中
AHCI奮闘記 - Read/Write編 - 無限遠まで突撃中

ATA-ACS

AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
ATA Command Set - 4 (ACS-4)
ISO/IEC 17760-102:2016(en), Information technology — AT Attachment — Part 102: ATA/ATAPI Command set - 2 (ACS-2)
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)|あなたの知らないWindows
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その1 - PC Watch
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その2 - PC Watch
T13
Home - INCITS
Untitled Page
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)|次世代Windowsの姿が見えた!
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch

忘却の彼方

忘却の彼方: DEVSLP(Device Sleep)機能とは
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: SATA LPMの設定方法
忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SSD/HDD用ベンチマークソフト「TxBench」
実績:ベンチマークソフトウェア TxBENCH|株式会社テクシム ソフトウェア開発・販売

S.M.A.R.T

S.M.A.R.T 情報
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
Seagate SMART Attribute Specification
S.M.A.R.T. is SMART! 各社対応編
HDDのS.M.A.R.T情報を取得する(UsefullCode.net)
世界基準を作った男。「CrystalDisk」シリーズの生みの親“ひよひよ氏”直撃インタビュー - エルミタージュ秋葉原

SecureErase

忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase

Wikipedia

Self-Monitoring, Analysis and Reporting Technology - Wikipedia
S.M.A.R.T. - Wikipedia
Aggressive Link Power Management - Wikipedia, the free encyclopedia
シリアルATA - Wikipedia
Serial ATA - Wikipedia, the free encyclopedia
Serial ATA International Organization - Wikipedia
情報技術規格国際委員会 - Wikipedia
International Committee for Information Technology Standards - Wikipedia
ハイブリッドHDD - Wikipedia
Hybrid drive - Wikipedia
ソリッドステートドライブ - Wikipedia
Solid-state drive - Wikipedia
シングル磁気記録方式 - Wikipedia
Shingled magnetic recording - Wikipedia
DevSlp - Wikipedia
Trim (computing) - Wikipedia
Native Command Queuing - Wikipedia

Twitter

✿せかいの底のゆるふぁ✿さんのツイート: "双子のVirtualBoxとVMWareのお話🐤"
✿せかいの底のゆるふぁ✿さんのツイート: "ideのディスク0にハードディスクを構成、ディスク1はデバイスなし🐤 https://t.co/gZtnRd4pNU"
✿せかいの底のゆるふぁ✿さんのツイート: "一方で、VMwareのEXECUTE DEVICE DIAGNOSTICの結果🐣 https://t.co/QhFQuxSl0f"
✿せかいの底のゆるふぁ✿さんのツイート: "両方ともデバイス1がありませんが、各レジスタ-の戻り値が違いますね🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "つまり決定性がないように見えます🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "これをどうやってデバイス1がないことをdetectするのかが問題です🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "答えはATAの仕様に記述されています🐣"

Purchase SATA Specification | SATA-IO
20100521170123066.pdf
dwm013300770.pdf
SATA hardware features - ata Wiki
HDD が AV コマンド対応か調べたい: ひでのブログ

NVMe

Twitter

mariadb

Takeshi HASEGAWAさんはTwitterを使っています 「MariaDB 10.5 の性能は不正? - DB改造屋雑記 https://t.co/PMjdfnxU67」 / Twitter
DB改造屋雑記: MariaDB 10.5 の性能は不正?
FadisさんはTwitterを使っています 「mariadbの話みてふとSPDKのNVMeドライバのflushの実装が「デバイスに何もしないで成功を返す」っていう最高にロックな実装だったのを思い出して、今は直ったのかなと思ってみたら相変わらずロックで安心した https://t.co/0Hz3CbBqm4」 / Twitter
spdk/bdev_nvme.c at 90db6167ce6331bcb9c93abd05c0999d3d834726 · spdk/spdk
FadisさんはTwitterを使っています 「NVMeのWRITEはデバイスによってはコントローラが要求が受け付けた時点で成功が返るので、FLUSHを呼ばないとWRITEした内容が永続化されている事が保証されない。Linuxカーネルのドライバはflush時にきちんとFLUSHしてて、SPDKのドライバのflushは虚無だったから、SPDKが圧倒的速く見えるという…」 / Twitter

histric-1

Fadisさんのツイート: "SATAのHDDは最大32個のコマンドを積めるキューをデバイス側に持っている。複数のコマンドを予約しておく事で、デバイスはより効率よくディスクを読み書きできる順にコマンドを並び替えて実行することができる。32個という上限は効率良くヘッドを動かす目的では十分な効果を発揮する長さだった"
Fadisさんのツイート: "しかし大量の不揮発メモリに一斉にアクセスできる時代にこのキューは短すぎる。そこでNVMeでは65536個のコマンドを積めるキューを最大65536個デバイス側に持てるようになっている。キューが複数になったことで個々のプロセッサは他のプロセッサがキューを操作する可能性を考慮する必要がなくなる"
Fadisさんのツイート: "ストレージが極めて高速な時代にその性能を生かすにはできるだけドライバに仕事をさせないことが重要とされている。NVMeではハイパーバイザがゲストにNVMeストレージの一部を見せる際にソフトウェアによる変換を行わなくて良いように、ハードウェアによる仮想化支援が規格化されている"
Fadisさんのツイート: "NVMeの仕様凄すぎて「SATAがおもちゃのようだ…」っていう感想が無限に出てくる"
satさんのツイート: "SSDならI/Oスケジューラが邪魔って話は結構有名でnoopにしようって書いてあることもある。ただしそうすると高I/O負荷状態で特定I/Oリクエストが永久に発行されない問題があるので結局SSDはdeadlineがデフォ。最近はBFSが出てきたが、評価してない。あとこれNVMe SSDだとBFSはどうなるんだろ"
ゆるsyuu1228△さんのツイート: "そういえばNVMeってMQ NICみたいに仕様上はマルチキュー対応してMSI-Xでキュー毎にIRQ持てたはずだけど現物はそうなってるかなぁ、と思って/proc/interruptsみたら確かに割り込みが複数見えるし割り込み先は各CPUに分散されてる https://t.co/ECuH6VTbJN"
nvme-interrupts.txt
中村 実さんのツイート: "NVMeの仕様はInfiniBand & OpenFabricsの仕様を大いに参考にしていると思われます。… "
<4D6963726F736F667420576F7264202D2081A18E9197BF34322D312D32814088CF88F589EF95F18D902E646F63>
satさんのツイート: "(そこでSPDKですよ)"
中村 実さんのツイート: "似ているというか、最初のNVMe仕様書を読んだ時は、用語の選び方や説明の仕方がInfiniBand仕様書にそっくりだと思ったものです。… "
satさんのツイート: "SSD、とくにNVMe SSDくらいだとソフト(カーネル)でI/O発行前に一旦溜めてゴニョゴニョしてる間にI/O発行して制御返ってきますので"
satさんのツイート: "具体的にどんな問題かというと例えばデバイスの尻の方にI/O一発出してからデバイスの頭の方に無限にI/O出すと 1. 前半のI/Oがブロック層でマージ/ソートされる 2. 一定数溜まるとドライバに渡される が延々と繰り返され、最初のはずっと残る。細かい条件は覚えてないけど、だいたいこんなん"
Takeshi HASEGAWAさんのツイート: "NVMはインターフェイス決めたものなのでそれをどう捌けるかはコントローラの問題なんだよな。はやくioDriveにあらゆる視点で勝てるデバイスでてほしい。"
Takeshi HASEGAWAさんのツイート: "Fusion-ioはCPU側でFTLまで実装してしまって、FPGAにあるのはフラッシュメモリへの転送を行うDMAコントローラやECC機能とかだった。OSのブロックレイヤを迂回するために各種小技を使っていた(場合によってはiostatが正しい報告をしなくなり、カーネルによってはunplug bug発生させたりもした)"
Takeshi HASEGAWAさんのツイート: "DDR2やDDR3のメモリ、2GHzのマルチスレッドプロセッサがホストにあるのなら下手に組み込みプロセッサでFTLするより早いだろ?という発想の作りだった。バス幅もクロックも高いし組み込みプロセッサの放熱なども考えなくていい。いま思い出してもいかにシンプルか‥知識が増えた今の方がやばく感じるな"
Takeshi HASEGAWAさんのツイート: "ここ一年でioMemoryの代わりに最新のNVMe評価したエンジニアが「ioMemoryのほうが速かったですね」とコメントしたという件を聞いて頭を抱えた。なんで2013年に設計されたioMemoryが実アプリでの性能評価で最新NVMeに勝ってしまったのか。がEOLになったいま、マジでioDrive麻薬が切れようとしている。"
Takeshi HASEGAWAさんのツイート: "75W消費し、カタログスペックの帯域幅倍近く差をつけられたHuaweiのカードに対して21W設計のioMemory SXが勝っちゃってお客さんに採用されたときも驚いたけどな。「もうさすがにFusion-ioの時代終わっただろ」と思ってパフォーマンスデータみるとケースによっては、かなり健闘していて、正直、びびる。"
satさんのツイート: "noopはたしか - 基本的にはFIFO - ソートはしない - キューの先頭に対してだけはマージしうる なので、似たような場所にI/O出しまくってると永久にマージされ続ける(ある程度溜まったらドライバに渡される)、という話だったと思います。たぶん。 大昔のlinus elevatorはソートもするのでもっと悲惨… https://t.co/WZeoK8XzAR"
Takeshi HASEGAWAさんのツイート: "私自身もioDrive2と某ストレージの比較したら、ioDrive2のほうが速くなっちゃって、あわててベンチマークのメトリック変えたりしたけどね。そのままじゃシナリオ通りにならなかったのでホスト側のバッファ絞って、リード帯域幅がより出せる最近のストレージにあわせてioDrive2より速くなるようにした"
satさんのツイート: "これちょっと訂正。マージはするけどソートは無し。いにしえのI/Oスケジューラと混じってた"
Fadisさんのツイート: "NVMe「プロセッサごとに割り込みを用意して効率よくコマンドの完了を通知… SPDK「割り込みなんて時間かかる処理いらねぇ! 俺はCPUをビジーループさせてデバイスをポーリングするぞ!」"
Fadisさんのツイート: "DPDKもSPDKも他のプロセスにCPUを譲る気ゼロでお前らなんでOSの上で動いてんの感満点である"
Fadisさんのツイート: "NVMeの仕様見てたら、デバイス側のメモリをホストのメモリ空間にマップして読み書きするデータを直接そこに書き込む拡張、とかあって「アッこれGPUでやったやつだ」ってなった。イマドキのストレージはそこまでするのか…"
まさみさんは語りたいさんのツイート: "GPUから直にNVMe読み書きすることもできると聞いた。… "

histric-2

Fadisさんのツイート: "NVMeのストレージ、取り付けたPCが起動していた時間と、正しい手順を踏まずに電源を落とした回数がデバイスに記録されてるwww"
Fadisさんのツイート: "従来のストレージだとSMARTとかでやってたのがNVMe自体の規格に取り込まれてる感じなのかな"
Takeshi HASEGAWAさんのツイート: "レジスタがあるはず。… "
Fadisさんのツイート: "ありますねー https://t.co/Bx6AUA0gzf… "
SPDK: spdk_nvme_health_information_page Struct Reference
Fadisさんのツイート: "NVMeのCMBを使うと、あるLBAにあるデータをCPU側のメモリに持って来る事なく別のLBAにコピーすることが出来るわけで、ファイルシステムは連続した領域を確保するために積極的に保存されているデータを移動させる事も選択肢に入れるべき状況になってきてる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "半導体メモリ系で、連続領域確保の必要性が良く判らない…ブロック(or ページ)未満のフラグメントの話なのかな? 話は飛んで NVDIMM-P。内部のDRAM - 不揮発メモリ間の転送=ページアウト・イン的な動作時に、CPU側のメモリバス帯域を汚さないだろう点に興味があったり。… https://t.co/kLlmmOokle"
Fadisさんのツイート: "昔流行ったioDriveと比較して最近のSandiskのNVMeは秒間にさばけるコマンド数では勝るけど1コマンドあたりのレイテンシでは負けてて、NVMeは性能を活かすにはFSやアプリケーションのレイヤーで「IOの完了を待つな」「できるだけ沢山のリクエストを受け付けてキューに積め」を徹底する必要があるげ"
Takeshi HASEGAWAさんのツイート: "ただ実際のところアプリケーションの動作としてキューに詰めて仕掛り状態で並列に実行できるものなら、という条件がつくんだよね。マイクロ秒の持ち時間で複数スレッドの行更新を調停し、真面目に見たら並列実行できないクエリをグループコミットするアルゴリズムなどで賢くしていくしかないのでは?"
Takeshi HASEGAWAさんのツイート: "なんでNVMe SSDがそんな方向に進化しているかって、そりゃみんな GB/s とか MB/s とか IOPS とかって所に書かれてる大きな数字が好きだろ?"
Fadisさんのツイート: "古典的なゲーム屋さんが燃えるタイプのマゾデバイスだこれ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの非同期I/Oを多用した仕組みに時代が追い付いてきた?… "
syuu1228さんのツイート: "Scylla、まずSSDベンチマーク走らせてIO並列度いくつまで上げていいか計らないとDBの起動が許可されないようになっておる https://t.co/6UBEIFH1D8"
syuu1228さんのツイート: "ほぼ初期からこうなので何の疑問も抱いてなかったけど冷静に考え直すと鬼畜仕様っぽいな https://t.co/qK2c9czbi6"
Takeshi HASEGAWAさんのツイート: "NVMe SSDとioDriveの比較DBベンチマークの取り方の一例。NVMeを強く見せたいなら、システムメモリに収まりきらないDBサイズでOLTP負荷をかければ、読み込み帯域の差で、新しい世代のNANDが載ったNVMeが勝つ。ioDriveを勝たせたければ、メモリに収まるDBサイズでロギング性能勝負にするとioDriveが勝つ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVMe(EVO960 1TB)内でファイルコピーする際、readとwriteを並列発行するのと、交互発行(read完了してからwrite発行)するのでは、2倍近く後者が速い不思議。 (DirectI/O + 1MB非同期I/Oを20個キューイング、Win10) HDDみたいな結果に。 (2.5インチSSDドライブではほぼ速度差なしだった記憶)"

histric-3

Fadisさんのツイート: "SPDKでSandiskの速いNVMeに直接writeを投げてみたら、1ページの書き込みでおよそ10μ秒とかいう計測ミスってんじゃないかって思うような時間で応答が返ってくる ._."
Fadisさんのツイート: "あっ、このデバイスVolatile Write Cacheがついてる。だから書き込みが読み込みより早く返ってくるのか"
Fadisさんのツイート: "spdkのblobstoreさん、デバイスのvolatile write cacheに載ってるデータのflushを行う手段が無いの渋い"
Fadisさんのツイート: "/dev/zeroのスループットが何故か1GB/sくらいで頭打ちになってnvmeから0をreadしたほうが性能が出るの、どうしてそうなった…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "bs=1M とかにしてみては?… "
Fadisさんのツイート: "bsをいろいろ変えて試してるんですが、1GB/sくらいで頭打ちになってるようなんですよ(if=/dev/zero of=/dev/nvme0n1でifをキャッシュに乗っているファイルにした場合もっと出る)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 if=/dev/zero of=/dev/zero bs=1M だと1コアをsys側で使い切った上で、1GB/sとかですか?… "
Fadisさんのツイート: "ほとんどsysですね… "
Fadisさんのツイート: "ただ コアを使い切って はいないようです。sysが60%くらいuserはほぼ無しで安定してます… "
Fadisさんのツイート: "あ、読み間違えてました、両側zeroはまだやってないです… "
Fadisさんのツイート: "両側/dev/zeroだと22.5GB/s出ました。ということはzeroが遅いわけではないって事になりますね… "
Fadisさんのツイート: "どうも/dev/zeroが遅いわけではないことがわかった、何でzeroとnvmeの場合だけ遅くなるんだろ"
Fadisさんのツイート: "NVMeでは複数のキューから命令を受け付ける為、ストレージ内で競合状態を起こす可能性がある。同じデータを触る2つの命令の間に、同じデータを触る別のキューの命令が割り込んで意図しない結果になるのを回避するために、キューに積まれた2つの命令をatomicに処理する為のフラグが用意されている"
Fadisさんのツイート: "SSDさんベンチマークとってると、同じベンチマークを繰り返してるのに突然お腹をこわしてスループットが1/3くらいに落ちたりして、SSDの気持ちを理解するのは難しい"
Fadisさんのツイート: "SSDさんは無口でコントローラが何をしているのか教えてくれないので、対話は困難を極める ._.… "
Fadisさんのツイート: "昨晩の睡眠を犠牲にする事によって「SSDのスループットはカーネルが何もしなくても時間と共に変化する為、2つの条件でとったベンチマークを比較する場合そのベンチマークは可能な限り近い時刻で取らなければならない」という悟りを開いた"
Takeshi HASEGAWAさんのツイート: "前のワークロードの影響を受けるからね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSDを2つ並べて、同じタイミングでベンチ開始、という意味ですか? それとも、同じSSDを立て続けにベンチ?… "
Fadisさんのツイート: "立て続けです。2つの条件のベンチマークをそれぞれ10回づつ繰り返して平均をとっていたんですが、SSDが突然速くなったり遅くなったりするので、2種類のベンチマークを交互に行って比をとるようにしたら分散が小さくなりました、という話です… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど! 双方を連続してベンチするだけでなく、何度も(間断なく)繰り返すのがポイントという感じですか。 (単発テストだと、双方を連続してベンチをとっても、最初に試行する側が好成績になりがちな印象があったので…)… "

Fadisさんのツイート: "Fadisさん「NVMe SSDどんなに激しく扱ってもコンテキストスイッチのオーバーヘッドとか誤差なんだけど、Intelはどんな環境でSPDKやってるんだろう」 Intelのドキュメント「Xeonサーバに、NVMe SSDを16本さして、100GbE 2枚にデータを流しても、SPDKならスケール!!!」 Fadisさん「ア、ハイ」"
Fadisさんのツイート: "公式のパフォーマンス報告に書いてある環境が凄すぎて用意できない問題"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 以前、Win10 + Direct I/O + Async I/O + EVO960実験中に気付いた話。 ReadキューとWriteキューを同時に溜めると大幅に速度低下する。 速度向上に Asyncで並列度を上げるのは大事だが Readキューを連続蓄積&処理した後に、Write I/Oキューを連続蓄積&処理した方が、1.5~2倍速くなる。… https://t.co/wXChry7hxh"
Shirouzu Hiroaki(白水啓章)さんのツイート: "EVO960でRAIDを組むと、SPDK等無しでも 6.5GB/s に。 (M.2-PCIe変換ボード2枚刺し環境) https://t.co/AsDBqJkngG"
Fadisさんのツイート: "NVMeのSSDは、きちんと性能が出るように使うには工夫がいる扱いの難しい子だけど、うまく使うと3万円のNVMeで150万円のioDriveを圧倒するスループットが出る、弄りがいのある子だよ"
hitoさんのツイート: "「まさかの(実用上)Windows専用のNVMe」なんていう概念が誕生していてquirkを強いられるLinux https://t.co/P1X96Gi3hY"
Fadisさんのツイート: "NVMeをソフトウェアのRAID0でより高速にしようというアイデアはやめておいた方が良い。PCI-Expressの帯域不足が問題になる程の勢いでデータを流してくるデバイスに「データを加工して読み書き」なんて工程を追加したら簡単にCPUがボトルネックになる。どうしてもそこを攻めたい時はSPDKを使うと良い"
KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
鯉江さんのツイート: "NVMe->GPUとかFPGAに直接流し込めないものだろうか...… "
Fadisさんのツイート: "その為にNVMeにはController Memory Bufferという拡張があります。対応したデバイスの場合、ホストのアドレス空間にマップされたデバイスのバッファに置かれたデータを対象にread/writeが可能なので、PCI-Expressのデバイス間でデータをDMAして、read/writeコマンドだけCPUから投げる事ができます… https://t.co/v0jTUkofDp"
KaiGai Koheiさんのツイート: "そうするとGTXでP2P DMAができてしまう的な。"
KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
KaiGai Koheiさんのツイート: "そうですね。元Twは昨晩見ましたが、SPDKがそういった10GB/sとかで押し寄せるデータの処理・加工に有効に作用するようには思えませんので、(?_?)という感じでした。… "
Takeshi HASEGAWAさんのツイート: "なるほど… "
Takeshi HASEGAWAさんのツイート: "ただ条件句うんぬんの処理がさばききれなくなるのが、mdraidじゃなくSPDKでさばけるようになるという話しだとすると、直感的によくわかりません。うーん、RTしたツイートだけで考えるのはよくないですね。あとで流れを読み直してみるか。… "
Takeshi HASEGAWAさんのツイート: "んーしかし元ツイートの趣旨がよくわからんな。 帯域幅当たるほどのスループット出そうとするとブロックサイズ大きくなってきてCPUサチらないんじゃ。というかそもそもNVMeインターフェイスとブラックレイヤーとmdraid介してI/Oして、どんながCPUサチるどんなワークロードだろ。"
KaiGai Koheiさんのツイート: "たぶん、NVME-SSDから読み出したデータを何がしかCPUで処理しようとする(例えばレコード毎に条件句の判定する)と簡単にサチるのという主旨ではないかと理解しました。右から左へ流すだけなら、まぁ、変な作りしてなければ。… "
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "CrystalDiskInfo 8.1.0 Beta2 - Intel RST NVMe サポート - ついにDELL製NVMeモデルに対応しました! ダウンロード: https://t.co/Zf6OWgakVP ソースコード: https://t.co/pSOA7DRXhT… https://t.co/BDttKZG7wD"
CrystalDiskInfo 8.1.0 Beta2 · hiyohiyo/CrystalDiskInfo@902b408
Kazuho Okuさんのツイート: "erase block単位で書込してればtrim不要だしスループットもよくなると思うんだけど、汎用fs+クラウドだと難しいのかなぁ / https://t.co/H7CFUW1zee"
高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
Takeshi HASEGAWAさんのツイート: "Fusion-ioはTRIM相当操作がめっちゃ速いようにカーネルに反応してて、それを前提で全力でTRIMしまくるコードをSATAかなんかのSSDで使ったらほぼ息しなくなって、カーネルのバグじゃないかとLKMLで疑い始めたが、結果として「SSDがマジでTRIMで固まってるね」でスレ終了したの思い出す… https://t.co/i6IjtpSLZ4"
Nobutoshi Ogataさんのツイート: "“高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ” https://t.co/PKMUway6w3"
品川 高廣さんのツイート: "そういえば Apple の NVMe コントローラおかしい問題は BitVisor でも苦労してたな。https://t.co/T926JEyT59… "
Fadisさんのツイート: "AppleのNVMeストレージを使うためのパッチがLinux 5.4でのバニラカーネル入りを目指している。2018年以降のMacに載っているApple製のNVMeがNVMeの規格に沿っておらずLinuxのNVMeドライバで使えなかった問題を解消するらしい https://t.co/Hd1ZC8QkK7"
The NVMe Patches To Support Linux On Newer Apple Macs Are Under Review - Phoronix
Takanari HayamaさんはTwitterを使っています: 「@utshina2 はい。BitVisor ベースの vThrii では対応済みです。なので、vThrii を入れると Linux も T2 が載った Mac で動いたりします。」 / Twitter
品川 高廣さんはTwitterを使っています: 「@taki_igel なるほど、vThrii を入れると Apple NVMe が標準的な NVMe に化けるわけですね。これは面白いですね。」 / Twitter
FadisさんはTwitterを使っています 「先日LinuxのENAの初期化を速くしていたlitelが今度はNVNeの初期化を速くしたらしい。方法はENAの時と同じでデバイスが利用可能になったかを100ms間隔でチェックしていたのを1ms間隔に変更するというもの。NVMeの初期化は通常100msもかからないため起動時間の短縮が見込める https://t.co/WgQbiHnMt8」 / Twitter
NVMe SSD Systems May Boot Slightly Quicker With Linux 5.7 - Phoronix
FadisさんはTwitterを使っています 「NANDフラッシュは5GB/sを1ブロックづつ処理して達成できる程高速ではない。それでもNVMeが高いスループットを達成出来るのは重複しないブロックに対する操作を同時に行う事で単位時間あたりの性能を稼いでいるから。言い換えるとNVMeは高スループットの割に高レイテンシという特徴を持つデバイスなんだ」 / Twitter
NV(*´ω`*)さんはTwitterを使っています 「@fadis_ 利用者からは高速に見えるけど、実態はNANDの積層とキャッシュでごまかしているというやつですな」 / Twitter
FadisさんはTwitterを使っています 「@nvsofts キャッシュが詰まると突然性能が落ちるし、flushをきちんと待つと小さいI/Oの性能が全然出ないたのしい」 / Twitter
FadisさんはTwitterを使っています 「PS5が採用するかは知らないけど、NVMeはコントローラのバッファをホストのアドレス空間にマップする拡張(CMB)があって、これが使える場合CPUはread要求だけ投げて、バッファに上げたデータはCPUにまわさず直接GPUが持っていくみたいな事ができる。対応してたら絶対楽しい」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.9からNVMeのZoned Namespaceがサポートされるらしい。Zoned Namespaceではストレージは256MBくらいのZoneに分割され、各Zoneは追記または丸ごと消去しかできない。この制約によりFTLの仕事が大幅に減り、不便だが性能の良いストレージが実現する https://t.co/fIyJD0eGg1」 / Twitter
NVMe ZNS Makes It Into Linux 5.9 Along With MD RAID Fixes - Phoronix
FadisさんはTwitterを使っています 「NVMeのZNSやSMRを直接公開するハードディスクはZonedStorageと呼ばれ、Linuxではブロックサイズが異常に大きく特殊なコマンドを受け付けるブロックデバイスという扱いを受ける。こうしたブロックデバイス上で動くファイルシステムには専用の対応が必要で、現状F2FSとBtrFSが対応している」 / Twitter
FadisさんはTwitterを使っています 「NVMeに今年追加されたsimple copyをLinuxが使えるようにするパッチが出ている。simple copyは「デバイス内の複数箇所から読んで一箇所に書く」をデバイス側で完結させるコマンドで、F2FSのログやZNS上に作ったログの整理、CoWなFSで頻発するコピーの性能向上が期待できる https://t.co/7ytVV5pwYg」 / Twitter
NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「このNVMeのsimple copyの狙いって表向きは処理のオフロードだけど、多分デバイス屋は書き込みの目的がコピーであることをデバイスに明示することで、FTLが複数の論理アドレスに1つの物理アドレスを割り当てる(=コピーしたことにする)を可能にするとこまで考えてるよな」 / Twitter

NVMe準拠のPCIe 3.0接続となるIntel製SSD「SSD 750」レビュー。SATA 6Gbps比で2倍以上という圧倒的な速度性能を確認する - 4Gamer.net
SATA AHCI SSD から、NVMe SSD へ|株式会社アークブレイン
NVM Express | 低いレイヤの話
NVM Express » Specifications
koie blog : いってきた: MemoryPlus Workshop
www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.pdf
CrystalDiskInfo 6.7.0-3 | Crystal Dew Blog
NVM Express | tous les jours
NVMe: Controller Initialization and Shutdown Processing | tous les jours
福田昭のストレージ通信 SSDインタフェースの現在(3):PCIe SSDの性能を引き出す「NVMe」 (1/2) - EE Times Japan
NVM Express - Wikipedia
NVM Express - Wikipedia
Non-Volatile Memory Express
Hisaki Oharaさんのツイート: "NVMeFを使っても割込みがなくなるわけでないからSPDK使おうぜ、とかそういう話になるんだろうか"
spdk/lib/nvmf at master · spdk/spdk
「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説 (1/2) - TechTargetジャパン サーバ&ストレージ
NVM Express1.3 - 約2年半振りのNVMe規格アップデート | PC Core
qemuのNVMeが微妙なlegacy割り込みをする話 - livaの雑記帳
NVMe ストレージの揮発性内部キャッシュ - 誰かの役に立てばいいブログ
徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌 (1/2) - TechTargetジャパン サーバ&ストレージ
極めて速いストレージとの付き合い方 - Speaker Deck
BitVisor Summit 7「3. Interesting Issues During NVMe Driver Developmen…
2019年1月18日号 discoの開発,各種ハードウェアサポートの拡充とカーネルパッチ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず - 教育は参考ブログ
NVMeドライバをLinux上でuioを用いて開発してみたが間に合わなかった - /var/log/hikalium
NVMe HMB機能を使ってみた - Fixstars Tech Blog /proc/cpuinfo
NVMe ドライバの HMB (Host memory buffer) 初期化処理のバグフィックス - Fixstars Tech Blog /proc/cpuinfo

SD

Simplified Specifications - SD Association
新規格「ビデオスピードクラス」に対応したSDカードが登場、SanDisk製 - AKIBA PC Hotline!
cat pics RT bot(代理)さんはTwitterを使っています: 「SDHC 4.xだと64bit addressingは96/128bit descriptorなのかー。ADMA3かー」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「Apollo LakeだとAPL18 erratumのせいで96bit descriptorでDMAしないと駄目なのかー、なるほどね」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「ADMA2でも96/128bit descriptorが使えるのか。建て増し増しで訳が分からなくなってきた(最初から分かっていないという説有り」 / Twitter
FadisさんはTwitterを使っています 「2行の変更でRasPi4のSDカードのデータ転送を倍速にするパッチが現れたらしい。SDカードにはクロックの上げ下げ両方でデータを送るDDRモードがあり、RasPi4のハードウェアはこのモードをサポートしているが、誰も有効にしていなかった、という物 https://t.co/ZRS4ooPLGW」 / Twitter
Linux Patch Proposed To Double Raspberry Pi 4 Transfer Speed To eMMC/SD Storage - Phoronix
FadisさんはTwitterを使っています 「Linux 5.11からSD Expressがサポートされるらしい。初のSD Express対応コントローラRTS5261のドライバも同梱。SD ExpressはSD7.0で追加された次世代高速SDカード規格。コントローラとメディアがネゴシエーションの結果SD Express対応とわかるとPCI-ExpressでNVMeを喋り始める https://t.co/CiU0HhZqY0」 / Twitter
SD Express Support Coming With The Linux 5.11 Kernel - Phoronix
FadisさんはTwitterを使っています 「SD7.0のSD ExpressはUHS-IIで使われていたのと物理的には同じ並びの2列目のピンからPCI-Express x1を吐く事になっている。ホストがPCIe 3.0なら1GB/s、PCIe 4.0なら2GB/sで通信を行う。SD8.0では更に3列目のピンが追加され、PCI-Express x2に対応する事でPCIe 4.0なら4GB/sでの通信が可能になる」 / Twitter
FadisさんはTwitterを使っています 「なんか裏面の半分くらい端子になってるし、SDカードの終着点はLGAなのでは感がある https://t.co/jBet1aBPdy」 / Twitter

virtio-blk

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第20回 bhyveにおける仮想ディスクの実装

バックアップ

一ノ瀬 いろはさんはTwitterを使っています: 「バックアップからの復元を行わなければならない時は、大体焦って普段やらないミスをしてしまうので手順はなるべくシンプルな方が良いと言う主張をして行きたい。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップは本当に札束で殴るしかない印象ある。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップの怖いところは、リストアしてみるまで思い通りにバックアップできてるかどうか、個人だと特にテストのしようがないのがつらい。」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています: 「@d_toybox 同型の予備機とか現実的では無いですからねぇ。」 / Twitter

暗号化

Shinji KonoさんはTwitterを使っています 「fs全体を暗号化はアホ過ぎる。しかし、HDD全体を暗号化すれば消す時にはキーを捨てるだけで良いってのはある。しかし、ちゃんとキーを消せるのかってことになる。キーの市場みたいなのができて、そこに売れるとか…」 / Twitter
https://twitter.com/wakatono/status/1308455622317203461
https://twitter.com/shinji_kono/status/1308457516703989762
https://twitter.com/wakatono/status/1308455207903272961
Shinji KonoさんはTwitterを使っています 「必要な部分だけ暗号化すれば良いが、そこから取り出した平文なコピーはどうする。メモリ上にはそういうものがたくさん。メモリも暗号化するのか? 何が目的かによるね。漏洩と暗号化は直交したもの。暗号化したから良いってものではない。」 / Twitter

Twitter

マルチスレッド

κeenさんはTwitterを使っています 「これ面白い。それなりのサイズのファイルに大量にアクセスするとき、SSDだとマルチスレッドで性能が上がるけどHDDだとマルチスレッドで性能が下がる。 Performance Impact of Parallel Disk Access | Piotr Kołaczkowski https://t.co/kj6UYmToWh」 / Twitter
Performance Impact of Parallel Disk Access | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「そこでハードウェアごとにスレッドプールを使いわけて、HDDにはシングルスレッド、SSDにはマルチスレッドでアクセスする話。Rustだと所有権絡みでスレッドプールが複数あると扱いにテクニックが必要になる。 Multiple Thread Pools in Rust | Piotr Kołaczkowski https://t.co/M5yHbnSsDH」 / Twitter
Multiple Thread Pools in Rust | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「HDD x マルチスレッドで性能でないのはそれぞれのリクエストが入り乱れてランダムアクセスになるから。小さいサイズのアクセスならOSがリクエストをソートしてくれるからむしろ速くなる。SSD x マルチスレッドで性能が出るのはリクエストキューを埋められるから。」 / Twitter

histric-1

matsuu@ババウさんのツイート: "ほう。ioping知らなかった。各種パッケージシステムにすでにあるらしい / “linux-freebsd-openbsd-macosx-find-disk-io-latency-with-ioping” https://t.co/iD1Ah5iFTL"
How to find disk I/O latency with ioping monitoring tool on Linux - nixCraft
Yoshihiro OKAMOTOさんのツイート: "SeagateはコンシューマPC向けHDDでSMR採用になったみたいだけど、酷かったArchiveの頃とは違い、故意にSMRの苦手なワークロード走らせたりしなければ普通に使えるようになってるみたいね"
まさみさんは語りたいさんのツイート: "SMRはSMR対応のログファイルシステムがきちんとOSネイティブで実装されていないと使いたくないなあ・・・。どうなったんだっけか。"
Fadisさんのツイート: "DPDKでreadするとプリアンブルを除いたイーサネットフレームが返ってくる。SPDKでreadすると指定したLBAから始まる領域の値が返ってくる。レイヤーとしては大して変わらないのにSPDKの方はなんとかなりそうな気がしてDPDKは険しい道に感じるの、どう考えてもTCPを実装するのが人類には難しすぎるからだ"
Fadisさんのツイート: "SPDKのblobfs、ファイル操作のAPIは根本的に形を変えないと近代的なストレージの性能を活かせないという低レイヤーからの要求と、従来のAPIから使い方を大きく変えると既存のアプリケーションが移行できないという高レイヤーからの要求がぶつかり合って出来た残念のカタマリって感じがする"
Fadisさんのツイート: "blobfsの下まで完全に非同期のストレージデバイスの操作を引っ張ってきたのに、ここでブロッキングI/Oになるのか…"
Fadisさんのツイート: "ぁーそんな気はしてたけど、SPDKのblobstore、複数のスレッドから別々のチャネルを使って書き込むと壊れるか…"
Fadisさんのツイート: "いや、じゃなくてこれ、メタデータを触る操作を複数スレッドから行うと壊れるだけで、個々のスレッドが別々のblobのデータを触っている限りは壊れないとかそういうアレかな"
ウェアレベリング - Wikipedia
hiyohiyo@個人開発21年目さんのツイート: "こういう結果を見るとブロックサイズが128KiBよりも大きなシーケンシャルリード/ライトテストは必須なんだなぁ・・・。- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch https://t.co/jT657G1d14"
まさみさん⋈語りたいさんはTwitterを使っています: 「この手の話、もう組み込みlinuxでは十年以上前から当たり前で、mount時にnoatimeつけるとか、rootfsをinitramfsにするとか、フラッシュにはログだけ書く、ログはファイルシステムを使わない(寿命をある程度見定めるため)、まである。 https://t.co/XcBHA6WOKV」 / Twitter
とみながたけひろさんはTwitterを使っています: 「フラッシュメモリ書き込みすぎて車全体が文鎮にってすごいな。組み込みだったらライフで書き込む量とか結構まじめに計算して安全係数もそれなりにかけるし、エンターテイメントシステムとかは他と分けたりすると思うんだが、、、https://t.co/9w6OOhIAtl」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@mhiramat あと今時のemmcなら書き換えの多いパーティションは(疑似)SLC領域にして書き換え可能回数増やすとか、普通のベンダーに相談したら色々と教えてくれますよねえ」 / Twitter
FadisさんはTwitterを使っています: 「@ponkotuy LBAが利用できるようになる前にハードディスク上の位置を表すのに使われていたのがシリンダ、セクタ、ヘッド。かつてはそれぞれ半径方向、円周方向、何枚目のプラッタかを表す値だった。今のハードディスクはより複雑な形で記録しているため、これらの値から1つのLBAが求まるだけの値になっている」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています: 「SSDの方が消去されたディスクからデータを復元するみたいのはるかに難しいというかほとんど無理だろうに何でHDDよりSSDにデータ消去に課題があるみたいな論調なの…???:HDDからSSDへ いいことずくめ?データ消去に課題:朝日新聞デジタル https://t.co/4aQNOtOBEM」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@syuu1228 確かにTrimで消えるので楽に思えるんだけどそのタイミングで不良セクタ化しちゃうと中途半端な状態でデータがチップ内に残っちゃったりするし、そもそもTrimがいつ効いたかって外形的にはわからないので、1bitも残すなと言われると、残ってる可能性を突き詰めていくと途方に暮れるんですよこれが…」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「SSDの完全消去は「無理」というのは言い過ぎですが、ちゃんと消えるかわからないとされる根拠は2011年USENIX FAST11で発表されたこの論文です。 https://t.co/grCIYTIA9L Secure Eraseに対応しているにも関わらず、コマンド発行してもデータが消えないSSDが当時見つかってます。今はどうでしょうね… https://t.co/LzOwI6vpWJ」 / Twitter
Wei.pdf
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@goodmoon @syuu1228 他にも物理的破壊に関するいくつかの研究があります。有名なのはこれ。 https://t.co/ZOjttFXoaj 2008年当時の話ですが、NANDフラッシュメモリが熱や電気や…に対していかに堅牢かが分かります。簡単には消えないのです。ただ当時と比べてだいぶチップの構造が変わったので、追試の必要はありますが。」 / Twitter
Recovering data from USB flash memory sticks that have been damaged or electronically erased | Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop

FadisさんはTwitterを使っています 「SSD、out-of-placeで書く事で消去の遅さを隠蔽するから書き込みの度にゴミが出て、それをガベコレが後で回収するんだけど、SSDのコントローラの性能は有限だからSSDでより高いスループットを得る為の近年の工夫が「ガベコレが回収しやすいようにゴミを出せ」になってて、なんて難しいデバイスなんだ…」 / Twitter
FadisさんはTwitterを使っています 「NANDの制約を隠蔽するSSDのコントローラが複雑になって性能を出すのが難しいから、「アプリケーションがNANDの制約を受け入れる」から「コントローラで複雑な処理をせずにデバイスを直接見せろ」というZoned Storageが台頭するの、かつてのGPUの流れに似ていて面白い」 / Twitter
FadisさんはTwitterを使っています 「Intelが Optane DC Persistent Memory(DCPMM)のファームウェアをLinuxからシステム全体を再起動せずに更新できるようにするパッチを投げている。DCPMMはDIMMスロットにさして使う不揮発メモリデバイスだが、どうもデバイス側にファームウェアを持っているらしい… https://t.co/JKojaTBOY5」 / Twitter
Intel Adds Capability To Linux 5.9 For NVDIMM Firmware Updates Without Reboots - Phoronix
FadisさんはTwitterを使っています 「FTLがブロックの割り当てを変更するSSDにおいて「ファイルを削除する前にゼロクリアしたからディスクを漁ってもファイルの内容は取り出せない」というHDD時代の作法は意味を持つだろうか。SSDにおいてはSecure Eraseが実際にSecureにEraseしない場合確実にデータを消す方法は無いのではなかろうか」 / Twitter
FadisさんはTwitterを使っています 「そもそもHDDの時代においても、CoWなファイルシステムの場合ファイルをゼロクリアしてファイルの内容がディスク上から消えたつもりになるのは誤りなわけだが」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ログ構造化だけでなく、NTFSの圧縮ファイルでも同様の指摘があった記憶。 たぶんファイルシステム層orデバイス層で「本当のデータ消去」APIを用意してもらうしか、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号ファイルシステム(or 暗号対応HDD)を使って、rawデータを読み取っても無効というのがまあ無難な対処かな? (その状態なら、NTFSでのLBAを信用した0上書きでも undelete系の無効化に十分意味あるだろうな)」 / Twitter
suzakiさんはTwitterを使っています 「思い出してメモ OS内に残るデータのライフタイムについて。 古いけどこの論文は面白い。 Understanding data lifetime via whole system simulation 13th USENIX Security Symposium (2004) Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M. 共著はVMwareを創業したRosenblum先生」 / Twitter
suzakiさんはTwitterを使っています 「@fadis_ ちょっと古いですが、SSDで完全に消去するのは難しいことを述べた論文。Secure Eraseについても言及しています。 USENIX FAST’2011 Reliably Erasing Data From Flash-Based Solid State Drives https://t.co/ymWRsLBrVB」 / Twitter
Wei.pdf
suzakiさんはTwitterを使っています 「@fadis_ メモ追記。 IEEE S&amp;P 2013でのデータ消去に関するSoK論文。 SoK: Secure Data Deletion https://t.co/tgBWUloTnV」 / Twitter
SoK: Secure Data Deletion - IEEE Conference Publication
FadisさんはTwitterを使っています 「コントローラが1ブロックのatomicな書き込みを保証してくれるNVMeと違い、NVDIMMでは一度にバスに流れる64bitがatomicに書ける単位になる。もっと大きな物を電源が落ちても途中で途切れないように書くには、ソフトウェアでトランザクションをやらなければならない。PMDKのlibpmemobjがまさにそれ」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りはもう常識。つまり、RAID5は死んだ。明示的なコピーの方がマシ。 https://t.co/X2DXcBljvf」 / Twitter
RAIDを導入する前に考えること - Qiita
Shinji KonoさんはTwitterを使っています 「Cephは1 OSDあたり4GBメモリを要求するのでお大尽。でもまあ、そういうの専用のDisk Serverが欲しい感じ。」 / Twitter

日本初となる内蔵SSDデータ消去ソフトの評価制度が開始 - PC Watch
ハードディスクの正しい消去
Category:ATA - OSDev Wiki
ATA PIO Mode - OSDev Wiki
Disc rot - Wikipedia
otakuto/CrazyDiskInfo: CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
マイクロソフトが、データセンター ハードウェアのストレージとセキュリティの業界標準を築く – Cloud and Server Product Japan Blog
Thanos - 無制限ストレージを備えたスケーラブルなPrometheus
【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch
トーバルズ氏:Linuxでフロッピーディスクドライバーは「面倒を見る人がいなくなった」 - ZDNet Japan
Linuxでのフロッピーディスクのサポート打ち切りをリーナス・トーバルズが発表 - GIGAZINE
SCSI Block Commands - 3 (SBC-3)
PC Insider 解説目次 - @IT
2021年7月7日 Linux 5.14でレガシーIDEのサポート終了へ ―カーネルソースツリーから「/dev/ide」を全削除:Linux Daily Topics|gihyo.jp … 技術評論社

Net

その他

自然言語処理でトラフィック変化検知 | IIJ Engineers Blog
手を動かして学ぶネットワーク実験環境入門 - mh_mobileのブログ
ネットワークバイトオーダーの公式な参照先はエイプリルフール:Geekなぺーじ
第661回:レイテンシー とは - ケータイ Watch Watch
第627回:トラフィック とは - ケータイ Watch Watch
「NetworkManager 1.6」リリース、MACsecに対応 | OSDN Magazine
MACアドレスランダム化が加わった「NetworkManager 1.2」 | OSDN Magazine
RFC標準を調べるための知識やツール - Qiita
抽象ソケットアドレス abstract socket address - hibomaの日記
[linux] abstract socket address - hibomaのはてなダイアリー
Pure Python Tracepath | IIJ Engineers Blog
インターネットの心臓部を支える「BGP」をより柔軟に使うにはどうすればいいか? - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「kernel bypassなー、HPCなら意味あると思うけどインターネットだとsegmentation offloadで十分な感じがすごいするんだよなー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「受信側だと割込コストでかいから、そこをなんとかしたいというのは分かるけど、まあ、、、」 / Twitter
Prometheusが利用するOpenMetricsの仕様がIETFに提出された - ASnoKaze blog
突然の大トラフィック……昔はOSだったが、今はゲームのアップデートに……IIJが語る「インターネットのバックボーン」【IIJ Technical WEEK 2020】 - INTERNET Watch
RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
RustのSTM32向けイーサネットドライバを解説する(送信編) | 己の不学を恥じる
中央主権的なHTTPから脱却し新しいインターネットの世界を生み出す壮大な分散型システム「IPFS」とは? - GIGAZINE
TURN サーバでよくある間違い
パケットジェネレータのつくり方 | NETWIZ.JP
なりすましメールからユーザーを守る「SPFレコード」の基礎知識 - GIGAZINE
自作プロトコルスタック(全体像の理解〜ARPリプライ) - おしぼりの日常
はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck
OVS-DPDKとOpenStackで作るおうちNFV環境の構築 - Speaker Deck
Kazuho OkuさんはTwitterを使っています 「Cに近いレベルで効率の良い実装ができるプログラミング言語使っているという前提において言うと、network i/oが最初のボトルネックになる(ことが多い)イメージ。アクセラレータとかdpdkとかが主流になっていないってのが傍証かなぁ」 / Twitter
因果的あずにゃんさんはTwitterを使っています 「たくさんのI/Oを捌くアプリケーションで、多重並列でI/Oチャネルを走らせといてselect(2)で待つとかスレッドで待つとかはよくあるパターンだけど、これの並列数を上げていくときに現代的な環境で真っ先にボトルネックになるのってどこなんだろう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「主流のアプリケーションでバランスが良いようにサブシステムの性能が決定されている、という話なので、DNSみたく小さなUDPパケット交換やるとか、一般的なワークロードから離れると議論は変わります」 / Twitter
Kazuho OkuさんはTwitterを使っています 「どんなプロトコルでもハーフクローズ難しいよなー。TCPでもなんでも、切断処理は接続処理のだいたい100倍くらい難しい」 / Twitter
VさんはTwitterを使っています 「@kazuho 1000000000 倍くらい難しいです!!! というか kazuho さんでもやっぱりそうなんですねぇ ... 。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@voluntas 皆そうだと思います。仕様策定にあたっても問題が残るのは、ステートを確立するところよりも捨てるところですし、実装的にも(バグがあっても問題ないケースがあるために)品質がわるくなりがちというか」 / Twitter
ファイルをTCPの30倍で転送――独自プロトコルによる高速通信「クラウド コネクト」 - ITmedia エンタープライズ
SkeedSilverBullet 大容量/多数ファイルをTCPの最大70倍以上で高速転送するソフトウェア製品 FTP代替から拠点間のグローバル連携まで導入実績も豊富 | 大容量ファイル・データの高速転送ならSkeed 大容量ファイル・データの高速転送ならSkeed
BGP over QUICの提案仕様 - ASnoKaze blog
Webでのマルチキャストの利用検討 (Multicast Community Group) - ASnoKaze blog
RFC9136 IP Prefix Advertisement in Ethernet VPN (EVPN) - show log @yuyarin
詳解 Linux ネットワーク - NAPI 編 (前編) - VA Linux エンジニアブログ
詳解 Linux ネットワーク - NAPI 編 (後編) - VA Linux エンジニアブログ

HTTP

その他

本の虫: Chromeが起動時に三つのランダムなドメインに接続しようとする理由
ブラウザの更新 スーパーリロード
Chromium の HttpStreamParser によるヘッダ処理
100GbE+ラージMTU環境でのQUICのパフォーマンス改善. HTTP/3とトランスポートプロトコルQUICの仕様を定めた6つのRFCが発行さ… | by Jun-ya Kato | nttlabs | May, 2021 | Medium
QUIC is now RFC 9000 | Fastly
QUIC Interop Runner
Web Application開発に10080番ポートは使ってはいけない
進化する通信プロトコル - QUICとHTTP/3で何が変わるのか -日本語版- - YouTube
【特集】ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた - PC Watch
NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理 | by Jun-ya Kato | nttlabs | Jul, 2021 | Medium
What's QUIC? - Microsoft Tech Community
microsoft/msquic: Cross-platform, C implementation of the IETF QUIC protocol.
2021年に登場したウェブハッキングテクニックトップ10 - GIGAZINE
HTTP/2: The Sequel is Always Worse | PortSwigger Research
Practical HTTP Header Smuggling: Sneaking Past Reverse Proxies to Attack AWS and Beyond
HTTP Request Smuggling を理解する - Qiita
Hidden OAuth attack vectors | PortSwigger Research

Building Protocols with HTTP

Kazuho OkuさんはTwitterを使っています 「HTTP を使うサーバクライアントアプリ作ってる人が、HTTP 的にどうするのが正しいのかな、と迷った時、見るべきドキュメントは BCP56bis かな、という話をした。HTTP の仕様ではなく、どのように使うべきかを説明した文書 (BCP56) の第2版草稿です https://t.co/InBEresgsD」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「「GET にリクエストボディって付けられるの?」 「答えは BCP56bis の section 4.5.1 に書いてあるよ」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RFC 7231 とかプロトコル仕様は、HTTP を実装する技術者向けの情報が多いので、HTTP を利用する技術者にとってはノイズが多いのです」 / Twitter

Status

Twitter

Masanori OginoさんはTwitterを使っています: "HTTP status code 451、江添さんが「政治的に」と訳したので政治(プログラミング)方面でネタになってるけれど、本来はfor legal reasonsなので法的な要求
Kazuho Okuさんのツイート: "ついに単著のI-Dを出してしまった / “draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints” https://t.co/rbnpHGcVkf"
draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints
Kazuho Okuさんのツイート: "HTTPステータスコード103のドラフトがラストコールにかかりましたなう / “Working Group Last Call: draft-ietf-httpbis-early-hints-02 from Mark Notti…” https://t.co/6lEa62hMDs"
https://tools.ietf.org/id/draft-ietf-httpbis-early-hints-02.txt
Fadisさんのツイート: "これ、HTCPCPがBREWするときに指定するプロトコルバージョンについて何も規定しなかった(従って元となる規格のHTTP/1.1のままになった)ことによる規格レベルの不具合だ…"
Hypertext Transfer Protocol (HTTP) Status Code Registry
https://www.rfc-editor.org/rfc/rfc8297.txt
渋川よしきさんのツイート: "HTTPステータスコード。POSTに対しては201 Createdでいいとして、PUTで更新するときに20X Updatedみたいなのがあったら対称的で良いのだけど、ないのだよね。200 OKか。"
Yosuke FURUKAWAさんのツイート: "むしろ PUT が 201 の事を書いてるドキュメントもあるので一概にどっちが正しいか微妙ですね。 https://t.co/6bFPSQdcPD… "
201 Created - HTTP | MDN
渋川よしきさんのツイート: "mjk… "
Kazuho Okuさんのツイート: "POSTは既存のリソースに対する操作だから201になることは基本ないのでは?… "
渋川よしきさんのツイート: "新しいリソース作成で、新しいURLが予想できる場合はPUT、そうじゃない場合はPOSTで作成・・・・みたいな説明をよく見かける気がします。オライリーのRESTful本とかも。… "
Kazuho Okuさんのツイート: "ああごめんなさい location で生成されたリソースの uri を返しつつ 201 というのは基本のパターンですね… "
Yuki Yugui Sonodaさんのツイート: "HTTP statusのreason phraseはサーバーが好きに書いて良いので、細かい情報を載せたいなら変なstatus codeを勝手に作るんじゃなくてそっちを使え、と言い続けてきたけど、割といろんなサーバーが勝手拡張コードを使ってるのね。Teapot以外は認めたくない。"
渋川よしきさんのツイート: "「存在している」という「情報」をログインしていないユーザーに見せない、という意味では404が正しいこともありえますね。… "
渋川よしきさんのツイート: "Real World HTTPでは403の代わりに404を返す可能性については一言だけ触れていたけど、あんまりきちんと説明してなかったので、今度改定のチャンスがあったとき用のネタ帳に追記しておこう。… "
$κ@夏休み/人畜無害🍼さんのツイート: "githubのプライベートリポにログインしてない状態で行くと、404っていうけど、この場合403では?って思った。… "
ĉ̨̨̝͉̝̭̩̣͍͈̗͂ͨ̊̎͋͗̅ͯ̒͑̎̑ͧ́̎̃ͬ̅̀̕r̶̸̴̢̬ͪ̆̾͊ͩͦͩ̈́ͧͨͭさんのツイート: "Quick guide to HTTP Status codes: 1XX: Wait a sec 2XX: There ya go 3XX: Fuck off 4XX: Fuck you 5XX: Fuck"
ゆきさんのツイート: "Reporting Progress of Long-Running Operations in HTTP https://t.co/9zu13MU3VE 重たいHTTPリクエストの処理経過を知らせる「102 Processing」ステータスコードの提案 #yuki_id"
draft-wright-http-progress-01 - Reporting Progress of Long-Running Operations in HTTP
Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter

ASCII.jp:HTTPステータスコードに追加された「308」とは?
本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される
本の虫: 検閲のためのHTTPステータスコードの必要性
Apache mod_http2 で 103 EarlyHints (RFC 8297) を試す - ASnoKaze blog
103 EarlyHints (RFC 8297) を送信するNginxモジュール書いた - ASnoKaze blog
Kazuho's Weblog: 103 Early Hints に対応した Starlet 0.31 をリリースしました
HTTP の新しいステータスコード 103 Early Hints | blog.jxck.io
mnot’s blog: How to Think About HTTP Status Codes
HTTPで「418 I’m a tea pot」を実装してはいけない - Qiita
HTTP 418ステータスコードが予約される - ASnoKaze blog
Retry-Afterのスコープを指定するRetry-Scopeヘッダ - ASnoKaze blog
サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様 - ASnoKaze blog
HTTPS state の仕様を追う
Resource Timing と HTTP ステータスコード 1xx

Cookie

GIGAZINE

Google Chrome 69ではCookieを「すべて削除」してもGoogleのCookieが残ってしまうことが判明 - GIGAZINE
ChromeがCookieの透明性や安全性を向上させる方針を発表、ブラウザ・フィンガープリントの対策も - GIGAZINE
AppleのSafariがサードパーティーCookieを完全にブロック、一般的なブラウザでは初 - GIGAZINE
GoogleがサードパーティーCookie廃止に向けて開発者向けツールのテストを開始 - GIGAZINE
Chromeは「Cookieとサイトデータを削除」を有効にしてもGoogle系のサイトのデータは消さない - GIGAZINE
Safari 14では裏技を使って規制をくぐり抜けていたサードパーティーCookieが対策される - GIGAZINE
Googleが提案するサードパーティーCookieなしの新しい広告の仕組み「FLoC」とは? - GIGAZINE
Google Chrome 89のベータ版で「プライバシー・サンドボックス」の項目が追加へ - GIGAZINE
Googleの考案する新たな「Cookieレスの仕組み」に独占禁止法違反の目が向けられている - GIGAZINE
ブラウザのFavicon(ファビコン)でユーザーを追跡する「スーパークッキー」とは? - GIGAZINE
Firefoxのトラッキング防止策「State Partitioning」の仕組みを分かりやすく説明するとこうなる - GIGAZINE
Googleが導入予定の「FLoC」は最悪なものだと電子フロンティア財団が指摘 - GIGAZINE
GoogleによるCookieレスの仕組み「プライバシーサンドボックス」が独占禁止法に違反すると司法長官が指摘 - GIGAZINE
Googleが「ユーザー情報を保護しつつ広告の関連性も損なわない」仕組みの開発を行うと宣言 - GIGAZINE
Googleがさらなる独占禁止法違反の訴訟に直面、今度はFacebookとの共謀の疑いも - GIGAZINE
AppleがiOS 14.5で実施予定のプライバシー強化「Application Tracking Transparency」の詳細を明らかに - GIGAZINE
Googleが開発中の「FLoC」はなぜ「有害」なのか、ユーザーとウェブサイトに発生する損害とは? - GIGAZINE
Googleが「プライバシー第一」とする新技術「FLoC」の本質はプライバシーを侵害する追跡技術だという主張 - GIGAZINE
「最悪」と酷評されるGoogleの新システム「FLoC」をWordPressが「自動的に無効化する」と発表 - GIGAZINE
Appleが広告業界を激変させる新ルール「App Tracking Transparency」適用の締め切り日をアプリ開発側に示す - GIGAZINE
WWWの技術標準化団体「W3C」がプライバシー保護を巡る争いの場になっている - GIGAZINE
「Firefox 91」正式版リリース、Cookie削除の仕組みがアップデートされてトラッキングをより厳密に拒否できるように - GIGAZINE
Google Chromeが「すべてのCookieとサイトデータ」の管理ページを廃止しようとしているという報告 - GIGAZINE
Googleが提案する「プライバシーバジェット」が抱える大問題とは? - GIGAZINE
Firefoxのプライベートブラウジングは一体どのような仕組みになっているのか? - GIGAZINE
Appleがプライバシー強化機能を導入してAndroidが恩恵を受ける - GIGAZINE
GoogleやFacebookなどのトラッカーをブロックするプライバシー保護機能をDuckDuckGoのAndroid版アプリが導入 - GIGAZINE
ブラウザのプライバシー機能を逆手にとってユーザーを追跡する「プールパーティー攻撃」とは? - GIGAZINE
ウェブサイトがJavaScriptとCookieなしで個人を追跡する方法が一発で理解できる「No-JavaScript fingerprinting」 - GIGAZINE

ASnoKaze blog

非セキュアなオリジンから'secure'クッキーの変更を廃止する提案 - ASnoKaze blog
Cookieの属性を制限する Cookie Prefixesという仕様 - ASnoKaze blog
安全でない通信路でセットされたCookieの有効期限を短くする仕様 - ASnoKaze blog
Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze’s diary
CookieのNoHttp属性の提案仕様 - ASnoKaze blog
Chromeにおいて非セキュアなHTTPで送信されたCookieの有効期限を短くする議論 - ASnoKaze blog
Cookieに変わる Sec-HTTP-State ヘッダの提案 - ASnoKaze blog
Cookie関連の最新動向 (2016年) - Qiita
Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog
CookieのPriority属性の仕様 - ASnoKaze blog
Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
CookieのSameSite属性にFirstPartyLaxを追加する提案仕様 - ASnoKaze blog
Cookieの新しい属性、SameParty属性について - ASnoKaze blog
トラッキングに利用できない3rdパーティクッキー「CHIPS」の仕組み - ASnoKaze blog

Qiita

Cookie関連の最新動向 - Qiita
PHPでSame-site cookie - Qiita
Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita

Twitter

samesite属性

vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll 理由はいろいろあります。 1. Firefoxの実装のバグ 2. Chromeの実装のバグにサイトが依存している 3. そもそもSameSiteの仕様が互換性問題を誘発するように改定された」 / Twitter
vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll 3.についてさらに説明します。当初の仕様では、SameSiteの有効な値はLaxかStrictのみであり、それ以外の値が指定されたらstrictとみなすというものでした。」 / Twitter
vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll ここにSameSite=Noneがあとから追加されましたが、旧仕様に忠実な実装ではStrictとみなすため、Cookieが送られないという問題が発生しました。たとえばSafariがそのように実装していました。」 / Twitter
vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll サイト側では対策のため、対応ブラウザーにのみSameSite=Noneを送るようUAなどで判定することを余儀なくされました。」 / Twitter
vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll この結果、Chromium以外のブラウザーがデフォルトSameSite=Laxに対応しようとしても、サイト側に対応ブラウザーと認識してもらわないとCookieが送られないという問題が発生しました。 正直言って仕様の改定の仕方として最悪だと思っています。」 / Twitter

@rockridge07

Rockridgeさんのツイート: "Fx50:Cookieのプレフィックスとして"__Secure-"と"__Host-"をサポート。Chrome 49/Opera 36でサポート済み。参照:https://t.co/1Ke9Jg0Qj3 / “Intent to…” https://t.co/ksuziLZote"
Rockridgeさんのツイート: "Fx61:CookieのSameSite属性をサポート予定。参照:https://t.co/7sekICHKR5 / “Intent to implement and ship: same-site cookies” https://t.co/VgsPyEj46i"
Rockridgeさんのツイート: "Fx60:CookieのSameSite属性がサポートされたことを受けて、network.cookie.same-site.enabledをfalseにすれば無効化できるようにした。 / “1452699 - Add pref …” https://t.co/CvQ96F7Dnb"
Rockridgeさんのツイート: "Firefox 60でサポートされるSame-Site Cookiesについて説明した記事。 / “Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Bl…” https://t.co/OQjtQRVKPD"
Rockridgeさんのツイート: "FirefoxではサードパーティCookieはユーザーが明示的に許可しない限り動作しないようにしていく方針だが、具体的にはSafariが先行するStorage Access APIを実装する形をとる。ただし、実装内容は若干異なる模… https://t.co/UlcX3NGRYM"
Rockridgeさんのツイート: "Fx65:Cookieを保存する期間の設定がチェックボックス形式になった。 / “1501989 - Turn the "Keep Until" cookies menulist into a checkbox” https://t.co/XIxVzZ3Rpl"
Rockridgeさんのツイート: "Fx65:未訪問のWebサイトのCookieをブロックする設定にしているとき、例外サイトを追加しても当該サイトのブロックが解除されない問題を修正。 / “1502045 - We fail to honour cookie pe…” https://t.co/meWqSxiDa9"
Rockridgeさんのツイート: "Fx65:urlclassifier.trackingAnnotationSkipURLsに設定されたドメインおよびURLは、トラッカーのサードパーティCookieのブロックを免除される。 / “1506947 - Add a …” https://t.co/d1Wt5cCJpB"

@shibu_jp

渋川よしきさんのツイート: "HTTPのクッキーの日付のパース、いろいろ悲しみが溢れている感。 https://t.co/AMCxUI5Qeh"
RFC 6265 - HTTP State Management Mechanism
渋川よしきさんのツイート: "クッキーの日付はGMT!って書いてあるサイトが多いのだけど、RFC見ると別にGMTとは指定されてなくて、in UTCって書かれている。GMTの部分は無視されてUTCとして解釈されている?"
渋川よしきさんのツイート: "サードパーティクッキー、いまいちわからんケースがいくつかある。AというサイトとBというサイトがあって、AにアクセスしたときにBのドメインが設定されたクッキーが書き込まれて、Bにアクセスしたときに、Aにいたことが分かる。これは分かる。"
渋川よしきさんのツイート: "こっちの代表的な例という絵のメカニズムがわからん。 https://t.co/5JcZfcxnnw"
渋川よしきさんのツイート: "リンク先サーバのクッキーが最初のサイトで書き込まれたとして、次のサイトにアクセスしたときは、リンク先のドメインじゃないからクッキーは送信されないよね?"
渋川よしきさんのツイート: "セッションストレージ、クッキーを使う方法が増えつつあるよ、という話はReal World HTTPに書いたけど、ブラウザでユーザー認証することによってクッキー同期を取るという仕組みが一般的になってきたのと関連はあるのかな?複数のPCとスマホ間で連携できる現代だと、かつてのクッキーの欠点はない。"
渋川よしきさんのツイート: "cookie storageを使って、クッキーにセッション情報を入れる方法。署名で改変は検知できるとして、5-tupleだか、http/3のConnection IDだかも入れると、セッション偽装対策になるのではないか?"

@jovi0608

Shigeki Ohtsuさんのツイート: "BlackHatUSAで発表されたHEIST攻撃の記事。TCP Windowからレスポンスサイズを特定してる。論文やスライドはまだかな。 / “New attack steals SSNs, e-mail addresses, …” https://t.co/KhhAlPmZCx"
Shigeki Ohtsuさんのツイート: "Third-pary Cookieを禁止してればHEIST対策になるのか。"
Shigeki Ohtsuさんのツイート: "HEIST攻撃をまとめると。BREACHと合わせ技でThird-party cookieでinitcwdぎりまでパディングして、残り1バイト分をOracleで特定する。ということで合ってるのかな。もうdeflate的な圧縮はボディ部でもあかんわな。"
Shigeki OhtsuさんはTwitterを使っています: 「Chromeが2年かけて3rd partyクッキーを廃止しGが提唱するPrivacy Sandboxという技術セットを進めていくと宣言。今年末までに新しいコンバージョン測定のトライアルと反フィンガープリント対策を開始すると。 / “Chromium Blog: Building a more private web: A path towar…” https://t.co/5KUNRSZbIZ」 / Twitter
Chromium Blog: Building a more private web: A path towards making third party cookies obsolete
Chromeは2年以内にサードパーティーCookieのサポートを廃止する方針 - GIGAZINE

Yosuke FURUKAWAさんのツイート: "Chromeでは今後、CookieでSameSiteがついていないものは、SmaeSite=Laxとして運用する、つまりCross siteではtop level navigationの時のみcookieがつき、mug, ajax通信ではcookieがつかない、これはまた広告、解析系のアプリ大変だな、、、 / “SameSite cookies explained…” https://t.co/kxFxPWHksk"
SameSite cookies explained  |  web.dev
Yosuke FURUKAWAさんのツイート: "s/mug/img"
ゆきさんのツイート: "chrome://flagsから「Cookie deprecation messages」を有効にすると、CookieのSameSite attributeのデフォルト変更によって影響を受ける場合に警告でる… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/6ShlLPJbrb や https://t.co/MnXqfFzePf を同一URLでの日/英対応に。(従来は後者は /en/ 付与) 要点は、apacheで cookie の lang指定あれば、prefer-language に設定。 (SetEnvIf Cookie "lang=([a-zA-Z]+)" prefer-language=$1) あとはjs側の言語切り替えでcookieにlang=en等の設定」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「カード認証の3Dセキュア、3rd party cookieに依存してたりするから、FirefoxのTracking Protectionと相性悪いことあるし、Chrome 80以降で起きるという話であれば、SameSite: Secureつけてないんだろうなとしか」 / Twitter

Google が使用している Cookie の種類 – ポリシーと規約 – Google
HTTP cookie - Wikipedia
HTTP cookie - Wikipedia
2種類のcookie~サードパーティとファーストパーティの違い | マーケティングを支援するDigital Cloud Platform
Session Cookie(セッションCookie)の使われ方とは? – IMnews
アクセス解析におけるクッキー(Cookie)の仕組みを解説【ちゃんと理解できてる?】|アクセス解析ツール「人工知能AIアナリスト」ブログ
【GA_utmクッキー完全把握】cookieの種類と仕組み | やる夫で学ぶGoogleAnalytics
» 反則スレスレ !? Super Cookie とは TECHSCORE BLOG
クッキー(Cookie)について
HTTPクッキーのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Facebook の「いいね」ボタンがあるサイトに行くと、トラッキングされているかに見える件 | @_Nat Zone
Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Blog
SameSite - OWASP
super cookie - Google 検索
Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
Cookie規制でプライバシーの問題はどうなる? - IIJが個人情報保護法改正大綱を解説 (1) Cookieってなんだっけ? | マイナビニュース
牧歌的 Cookie の終焉 | blog.jxck.io
Cookieレシピ - SameSiteとそれを超えて - Rowan Merewood氏がweb.dev Liveにて
Google Developers Japan: Chrome におけるスキームフル Same-Site の適用について
GitHub、サービス提供に不必要なCookieとCookieバナーを排除 - PC Watch
マイクロソフトの「Edge」ブラウザーがGoogleの広告技術「FloC」を無効化、事実上の「NO」か | TechCrunch Japan
FLoCとはなにか - ぼちぼち日記
Google Chrome、Web広告などに使われるCookieを2023年に廃止 - PC Watch
「Firefox 96」がリリース ~「Cookie Policy: Same-Site=lax」をデフォルト有効化 - 窓の杜

Header

Structured Field Values による Header Field の構造化 | blog.jxck.io
Cache-Control: must-understand ディレクティブとは何か | blog.jxck.io
HTTPレスポンスボディを送ってから、Cache-Controlを変更可能にする仕様 - ASnoKaze blog
"HTTPヘッダ"が指すものとは - Qiita
「Firefox 87」からはプライバシー保護のために新たなリファラポリシーが採用される - GIGAZINE
クライアント証明書を中継するClient-Certヘッダの提案仕様 - ASnoKaze blog
大体の位置情報を示すSec-CH-Geohashヘッダ - ASnoKaze blog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JavaScriptを使わないブラウザ特定 (fingerprinting)。HTTPのAccept-*ヘッダや、CSSの@ mediaセレクタを使うことで画面サイズ、インストールされているフォント等を使っている。あとはブラウザごとのCSSパーザのクセも利用できる。 https://t.co/UrUoQM7ppn」 / Twitter
No-JavaScript fingerprinting
HTTPヘッダーのX-は非推奨と言うけれど・・・

URL

uriparser

uriparser - RFC 3986 URI parsing library
uriparser 日本語情報トップページ - OSDN

国際化ドメイン

Mozilla

Network.IDN.whitelist.* - MozillaZine Knowledge Base
IDN (International Domain Name) を使用した偽装サイトへの対策 Firefox編 - seclan のほえほえルーム
Firefox で日本語ドメインの .com / .net が punycode で表示される理由
国際化ドメイン名の表示が有効なトップレベルドメイン
IDN-enabled TLDs — Mozilla
network.IDN.whitelist.
人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE
なかのんクエストさんのツイート: "これ、実装当時から分かってたけどどうしようもない話だなって関係者言ってたのに、なんで今頃話題に? / ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT https://t.co/Jc1kEqaOb1"
ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT
なかのんクエストさんのツイート: "そもそも、аррӏе.com みたいなのを通しちゃうようなTLDは常にPunycode表示にしようってことで話が決着してて、.comに関しては当初はホワイトリストに入ってなかったけど、登録のルールが改善したとかでホワイトリスト入りしたんじゃなかったっけか?"
なかのんクエストさんのツイート: "で、TLDレベルでは安全でも、スラッシュっぽい文字とサブドメインを利用するとドメイン偽装が簡単だってことで、スラッシュに見えかねない文字は全てブラックリストに入れておいて、それにひっかかったら強制的にPunycode表示にするってのは私が実装した。"
なかのんクエストさんのツイート: "ちなみに、私がMozillaで国際化ドメイン名周りのバグ修正やってた当時のNetworkモジュールのオーナーでレビューしてくれてたのが、初期から現在に至るまでGoogle Chromeの責任者やってるあの人だったりする。"
なかのんクエストさんのツイート: "とりあえず変なアイデア出てたんで、日本語だと無意味だし、ハイフンに似た文字だとどうしようもないとだけ書いておいた。 / https://t.co/PkF5AsjROC - IDN Phishing using whole-script confusables on… #もずでぶ"
Rockridgeさんのツイート: "Firefoxの国際ドメインネーム(IDN)表示アルゴリズムについてFAQ形式で解説したもの。 / “Gerv's IDN Display Algorithm FAQ - MozillaWiki” https://t.co/WNBO8LRsAP"
Gerv's IDN Display Algorithm FAQ - MozillaWiki
なかのんクエストさんのツイート: "Firefoxの場合、今では信頼出来ない所も混じってるかも知れないけど、network.IDN.use_whitelistをtrueにして、IDNサポート当初のポリシーを復活させる方が安全かなと思ったけど、このpref、もう効かないっぽいな……"
Gecko1.8相当製品において修正したバグ - WebStudio

Google

IDN in Google Chrome - The Chromium Projects
なかのんクエストさんのツイート: "Chromeのホモグラフ攻撃対策へのパッチ、頭痛い。指摘されたケースに対して限定的に対応しただけで、日本語の似た文字や記号の似た文字は無視、キリル文字でASCIIの小文字に似てる文字だけ対応。こういういい加減なの、嫌なんだよな…… https://t.co/jjXIIMf66I"

GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE
国際化ドメイン名(IDN)に関する資料 - JPNIC
IDN関連RFC翻訳
新宿.com
www.jdna.jp/survey/rfc/rfc3491j.html
StringPrep - ICU User Guide
JPRS DNS 関連技術情報
IDN Info by JPRS / 標準化状況
FAQ - International Domain Names (IDN)
https://tools.ietf.org/rfc/rfc5895.txt
国際化ドメイン名のプロトコル改定に関する技術動向 ~第74回IETF Meetingにおける話題から~ | 2009年 | ドメイン名関連会議報告 | ドメイン名関連情報 | JPRS
IDNA2008
大石哲之(Bitcoin,Blockchain)さんのツイート: "これはやばい。 binance偽サイト。 見分けがつかないです… "
楠 正憲さんのツイート: "あーあURLにASCII以外のUnicodeを認めたせいでこんなことに。当時からこうなると分かってたのに。しかもTLS証明書どこが発行したのか… "
soushi (・゚∠)ばななさんのツイート: "ありがとうございます。試すとpunycodeが表示されました。 尚、Vivaldiは無条件でpunycodeで表示でした(設定はなさそう?)。あとChromeは調べると独自に定義したPolicyを通ればunicode表示にするんですね…。… "
soushi (・゚∠)ばななさんのツイート: "ちなみにこちらのページに色々書いていました。 https://t.co/GVB16d7WQh… "
NOTWORK.JP-SA:050401-00 JPRSのIDN実装上の日本語文字集合類似字形の問題
Old Blog
libidn2-2.0.4
libunistring-0.9.9

BASE32

三十二進法 - Wikipedia
base32 ‐ 通信用語の基礎知識
18.12. base64 — RFC 3548: Base16, Base32, Base64 データの符号化 — Python 2.7.x ドキュメント
Man page of BASE32

protocol-relative URL

HTMLやCSSでのプロトコル表記(http:、https:)の省略について: 小粋空間
いい加減、&lt;script src=&quot;http://.. と書くのはやめましょう · DQNEO起業日記
protocol-relative URL

News

Googleはウェブを安全にするために「URLをなくすべき」と考えている - GIGAZINE
URLがなにかおかしい……「Google Chrome 69」に加えられたある小さな変更が話題に - やじうまの杜 - 窓の杜
Chrome 90ではアドレスバーからウェブサイトへ接続する際にデフォルトで「https://」を使用する - GIGAZINE
GoogleがChromeに導入予定の「URLを非表示にする機能」を断念する可能性 - GIGAZINE
過去のリンクが危険なサイトに乗っ取られているのを検知するシステムの作成方法 - GIGAZINE
なぜハイパーリンクは青色で表示されるのか? - GIGAZINE

blog

URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖い情報科学
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
WHATWG URLの実装がNodeに来たと聞いたのでURLについてメモしておく - 水底の血
hxxp URIスキームの仕様化 - ASnoKaze’s diary
https://tools.ietf.org/id/draft-salgado-hxxp-00.txt
URIに含まれるIPv6ゾーンID - RFC 6874:Geekなぺーじ
なぜChromeはURLを殺そうとするのか? (Chrome Dev Summit 2019) - ぼちぼち日記
URLリソースの非推奨を示すDeprecationヘッダ - ASnoKaze blog
ホスト名の最後が数字なURLの扱いについて - ASnoKaze blog

blog.jxck.io

Node v7 で入った WHATWG URL 実装について | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Scroll to Text Fragment を用いたサイト内検索の実装 | blog.jxck.io

Qiita

リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる - Qiita
mod_auth_openidc の脆弱性(CVE-2019-14857)について - Qiita

POSTD

私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | コンピュータサイエンス | POSTD

Wikipedia

Uniform Resource Identifier - Wikipedia
Uniform Resource Identifier - Wikipedia
Punycode - Wikipedia
Punycode - Wikipedia, the free encyclopedia
Internationalized Resource Identifier - Wikipedia
Internationalized resource identifier - Wikipedia, the free encyclopedia
国際化ドメイン名 - Wikipedia
Internationalized domain name - Wikipedia, the free encyclopedia
Uniform Resource Locator - Wikipedia
URL - Wikipedia

Twitter

Mozilla

Rockridgeさんのツイート: "Fx47:URLのバックスラッシュはスラッシュとして扱われる。 / “652186 – Implement URL Standard's backslash replacement ("\" is treated as "/" …” https://t.co/2LvuyK7pdk"
Rockridgeさんのツイート: "WebKit trunkに実装された新URLパーザが、仕様適合性に優れているという話。セキュリティやパフォーマンスにも配慮しているという。 / “URL Parsing in WebKit | WebKit” https://t.co/jiTlG4TTLU"
Rockridgeさんのツイート: "Fx53:新ロゴのとおり"moz://a"と入力すると、特定のWebページにリダイレクトされる仕組みが実装された。なお、"moz://"のURIスキームもIANAに暫定登録済み。参照:https://t.co/047yEEXTh7 https://t.co/abV54zdcfA"
Mozilla Firefox、moz:プロトコルをサポート | スラド idle
Rockridgeさんのツイート: "Fx55:複数のa要素がフラグメント識別子の異なる同一ページを指定し、かつ、target属性の値も同一である場合、リンクをクリックしてもタブが切り替わらない場合がある問題を修正。 / “1303838 - Not switch …” https://t.co/IKBc84zEiO"
PC Watch若杉(4K修行僧)さんのツイート: "Amazon.co.jpでのお買い物に「ドコモ ケータイ払い」が対応、という件名のリリースが来て、全角URLじゃサイトの表示すらできないだろ! って突っ込もうと思いつつも、一応試しにChromeに全角URLをコピペしたら、自動的に半角に変換して表示された。Chromeやるな……"
Rockridgeさんのツイート: "Fx56:URLのエンコードを内部的にPunycodeで行うようにした。 / “945240 - Change nsStandardURL's internal hostname representation to punyco…” https://t.co/UOakWoFgQ3"
Rockridgeさんのツイート: "Fx58:PlacesデータベースがURIのマッチングに用いるハッシュの計算が高速化されたが、データベースの互換性が部分的に失われているという。参照:https://t.co/8DsWeEWlO8 / “Firefox/Meet…” https://t.co/WBJYjqDEy1"
Makoto Kato ︎︎さんのツイート: "いろんな理由があって、location.hashのsetterのコードを見てるんだけど、extensionとかOSに対してURI変更に対してのinterceptを許可するとただ遅くなるだけなんだけど、他のブラウザどうしてんだろ"

histric-1

Ryou Ezoeさんのツイート: "Chromium、バカが開発しているのか? https://t.co/l1jXQLorUX"
881410 - Incorrect transforms when stripping subdomains - chromium - Monorail
Ryou Ezoeさんのツイート: "www.はドメイン名の一部であって省略できるものではないだろ。"
Ryou Ezoeさんのツイート: "Chromium、https://t.co/nUchwbgK6Sのwww.を二重に除去してexamplecomにするらしい。完全にバカしかいないのでは。 https://t.co/l1jXQLorUX"
Ryou Ezoeさんのツイート: "Chromiumはfield trialsが常に1コア分のCPU時間を食うようになった頃から使ってないが、完全にIEと同じ立ち位置に堕ちたな。"
Ryou Ezoeさんのツイート: "Twitterもバカが開発しているらしくwww. www. https://t.co/rY28fpJshPの最初のwww.を除去する。"
Ryou Ezoeさんのツイート: "まあ、そもそもサブドメインなんてものがあるのが根本的にダメなんだがな。世の中にはhttps://t.co/UNnazKKeONとかに騙される人間が多すぎる。"
Ryou Ezoeさんのツイート: "あー、なるほど。これGoogleの戦略的なものかもしれないぞ。GoogleはURLを廃止したがっている。Googleがすべてのインターネットのトップページとして機能することを目論んでいるのか。"
Ryou Ezoeさんのツイート: "GoogleがURLを廃止したがっているという推測、あながちバカにできないぞ。https://t.co/6hq8jsQhFO"
Google wants to get rid of URLs but doesn’t know what to use instead | Ars Technica
Kazuho Okuさんのツイート: "URLのドメイン名省略の話、セキュリティの観点からいうと、伝統的に https://t.co/YQt384onj7 のメアドを利用して www .example.com のDV証明書を取得することが認められてきた以上、www を表示で省略しても良さそう(OV,EVも認証単位より細かいホスト名表示は不要)"
相沢陽菜さんのツイート: "Chrome のサブドメイン省略表示(www や m が消える)って、頭から消していって消せなくなったら終わるんじゃなくて、サブドメイン/ホスト名部分を . で分割して、www や m を filter して . でくっつけるのか…(どこに現れても消える)"
Kazuho Okuさんのツイート: "「企業が開発しているソフトウェアは信頼性が高い」と言われた場合にも「OSSは多くの目があるから信頼性が高い」と言われた場合にも便利に使える反例ですね。まあ仕様はあれでいいと思うけど… "
SKSの申し子さんのツイート: "Chromeのサブドメイン省略,勝手にアレな挙動をデフォルトにしたのも酷いけど,途中にあるのも省略しちゃったりするの,本当に雑に実装したんだな,という所が酷い"
Kazuho Okuさんのツイート: "Chromeのサブドメイン省略は修正が間に合わなくていったん無効化されたというのが正確。他のブラウザも(より限定的な形で)やってる。中間にラベルの省略は wikipedia のモバイルサイトを念頭に意図的に導入されたということは https://t.co/sOBRVz2E29 あたりみるとわかりますね"
881694 - www subdomain is removed even when it isn't the leftmost subdomain - chromium - Monorail
Kazuho Okuさんのツイート: "URLの一部を表示するのはセキュリティ上の要請だし、従ってホスト名を全部表示する必要はないし、複数の管理者が同居するようなドメインならpublic suffix listに登録されてるはずで、その場合、他のウェブブラウザはサブドメインを省略しないしChromeもそうなる方向なんですよ"
Makoto Kato ︎︎さんのツイート: "Chrome 69でのwwwとかmのサブドメイン省略の話、70でreshipするみたいだけど、細かい話はまだ決まってないみたい。さて。。。 https://t.co/f1IDsRz0Sd"
883038 - Feedback: Eliding www/m subdomains - chromium - Monorail
Kazuho Okuさんのツイート: "セキュリティに関するUIは、1) 簡潔で 2) ブラウザ間で統一されているほうが望ましいと考えます… "
mattnさんのツイート: "サブドメインが付いてない無いサイトはオフィシャルサイトだと認識する人が一定数いると思っていて、一括してセカンドレベルまでしか表示しないという事ならば(まだ)納得しますが、固定なのであればユーザが混乱するだけな気がしています。… "
Kazuho Okuさんのツイート: "一般ユーザは www の有無でサイトの区別をしない、という前提なんでしょうね。www の有無を無視するというのは、DV証明書発行の伝統的なプロセスでもそのとおりです… "
Rockridgeさんのツイート: "GoogleがChrome 69においてアドレスバーから"www"と"m"のサブドメイン表示を消したのは、URLをわかりやすいものにして、ユーザーに注意を向けてもらおうという考えが背景にあったらしい。 / “Chrome tea…” https://t.co/WspDOha7GI"
Rockridgeさんのツイート: "Chrome 70では"m"のサブドメイン表示を復活させる一方、"www"は隠したままにする模様。 / “883038 - Feedback: Eliding www/m subdomains - chromium - Mono…” https://t.co/6OBz4qUxYH"
ゆきさんはTwitterを使っています: 「ドメイン名にラテン文字など紛らわしい文字を使う、IDNホモグラフ攻撃については、W3Cで対策の議論があったり https://t.co/gL9HLKBsDP」 / Twitter
Anti-Homograph-Attacks -- 18 Sep 2019
Kazuho OkuさんはTwitterを使っています 「(9年前の記事だけど)引用英文のとおりSHOULD encodeなので、エンコードしない場合は運用上問題が生じる可能性があることに留意しろという話で、相対URLでschemeの区切りと区別がつかない問題もまさに留意点のひとつなのかな / https://t.co/VKuQRxisSt」 / Twitter
HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。 - こせきの技術日記

Kazuho OkuさんはTwitterを使っています 「Unixのファイルパスにおいて、  /foo/bar/baz  /foo/bar/../bar/baz の両者が違うファイルを指すようなケースはあるか? あるならば実際にそういうディレクトリ構成を作ってみよ っていうのは、理解度を試すいい問題だと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これ、URIのパスレゾリューションでは、必ず同じになるのよね」 / Twitter
ymmtさんはTwitterを使っています 「@kazuho symlink ありですか?(ほぼ答えかも)」 / Twitter
齊藤明紀さんはTwitterを使っています 「cd fooでシンボリックをたどったあとに cd .. が上のディレクトリじゃ無くてシンボリックリンクを巻き戻る動作をするbashは非常に嫌。 pwd しても本当の絶対パスは表示されないし。」 / Twitter
Kaz Nishimura, C++Unit​X (cppunitx) 作者さんはTwitterを使っています 「@a_saitoh もしかして set -P」 / Twitter
Hiroyasu KamoさんはTwitterを使っています 「@a_saitoh わざわざ cd `pwd -P` するのが面倒です。」 / Twitter

Delegated Strings | ICANN New gTLDs
data URIs | MDN
ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
URL Standard (日本語訳)
draft-ruby-url-problem-01 - URLの問題提起と動向
jacketizer/libyuarel: Simple C library for parsing URLs with zero-copy and no mallocs.
認証しないWeb認証 限定公開URLのセキュリティについて考える - Google スライド

PSL

Libpsl Reference Manual: Libpsl Reference Manual
rockdaboot/libpsl: C library for the Publix Suffix List
「地域型JPドメイン名」新規登録終了、11月から「都道府県型JPドメイン名」 -INTERNET Watch
「都道府県型JPドメイン名」新設へ、2012年後半から登録受け付け開始 -INTERNET Watch Watch
【やじうまWatch】東京都の税金のページと思いきや……個人の善意で悪用が防がれている公式サイト風ドメインが話題 - INTERNET Watch
PSLってどうよ?
Public Suffix List
PSLってどうよ?
PSL
DailyJS | PublicSuffixList – PSLに基づいてドメイン名を検証 | JSお散歩
cmtt/publicsuffixlist: A validator for domain names and top level domains, driven by publicsuffixlist.org and ICANN's generic TLDs.
dnsops-jp-20080709.pdf
Geekなぺーじ:「欠陥ドメイン名」が世界的に増えそうな件について
vyv03354さんのツイート: "JPRSが都道府県型JPドメイン対応のためにPSLの更新を依頼してた。 https://t.co/eqdnpJfV どうやら本当に地域型ドメインで使われている市区町村名を全部登録するつもりらしい"
763208 - Update .jp entry in PSL
本の虫: クッキーモンスター
Rockridgeさんのツイート: "Public Suffix Listはeffective top-level domain(eTLD)とも呼ばれるドメイン名のリストである。Mozillaの発案だが、現在はコミュニティによって維持されている。 / “Public…” https://t.co/1TIyHoJTRd"
本当は難しいPSL - Speaker Deck
Public Suffix List の用途と今起こっている問題について | blog.jxck.io

TLS

Compact TLS 1.3の提案仕様 - ASnoKaze blog
data loss due to RST when using HTTP/1 & TLS 0-RTT · Issue #2534 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「はー lingering close とか気にしないで生きていけるつもりだったんだよ。この部分実装した時点では、それで問題なかったんだよ。。。 https://t.co/qy2ivYAxJ3」 / Twitter
RFC 8996でTLS1.0とTLS1.1が廃止に - ASnoKaze blog
FadisさんはTwitterを使っています 「3月にTLS 1.0とTLS 1.1をTLSの仕様から落とすRFCが出てるんだけど、TLSは新しいアルゴリズムの追加、利用方法の追加、安全でなくなったアルゴリズムの禁止を何度も行なってきたからこのRFCによって影響を受ける既存のRFC(Updates)が84個も列挙されてる https://t.co/Q33QG8CCTP」 / Twitter
RFC 8996: Deprecating TLS 1.0 and TLS 1.1
Chromeが全てのウェブページをHTTPS優先で読み込む「HTTPSファーストモード」を導入予定 - GIGAZINE
TLS Encrypted ClientHello(ECH) を BoringSSLで試してみる - ASnoKaze blog
Google Chromeが「アクセスしているサイトが安全である」と表示しないように仕様の変更をテスト中 - GIGAZINE
レガシーとなった TLS 1.0/1.1 廃止までの道のり - クックパッド開発者ブログ
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「STARTTLSは使うべからず。STARTTLSの実装は非常にバグが多い。2011年にPostfixで発見されたSTARTLS脆弱性はいまだに全サーバの2%で発見されている。LDAPなど途中から暗号を有効化できるプロトコルはどれも同様の危険がある。クライアント・サーバともに暗黙のTLSを使うべき。 https://t.co/yhzWLYPP9f」 / Twitter
NO STARTTLS
「HTTPSはどのようにして人々を守るのか?HTTPSさえあればウェブは安全なのか?」についてMozillaが解説 - GIGAZINE
DNS HTTPSレコードを使用したWebSocketサポートの通知 - ASnoKaze blog

Resource bundles

amp-script の実用性について考える - mizchi's blog
WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
WebPackaging の Signed HTTP Exchanges | blog.jxck.io
Webbundle によるサブリソース取得の最適化 | blog.jxck.io
Webページのサブリソースを一つにまとめる Resource bundles とは - ASnoKaze blog
Kazuho OkuさんはTwitterを使っています 「「AMP対応のWebページ」ではなく、「速いWebページ」を検索結果上位に表示するようになるという話。 / https://t.co/FWqQyTM4ZJ」 / Twitter
The End of AMP – lafoo – ramblings about the online world

Better Ads Standards

The Initial Better Ads Standards - Coalition for Better Ads
Chromeブラウザの広告ブロック機能、7月9日に世界で有効に - ITmedia NEWS
Google、Chromeブラウザに劣悪広告ブロック機能を追加へ - ITmedia NEWS
GoogleやFacebook、IABなど16組織がオンライン広告改善団体を設立 - ITmedia NEWS
Web広告の仕組みとは? 種類別の表示方法・効果も解説 | TECH+
Google、Chromeブラウザでの劣悪広告ブロック開始、仕組みを説明 - ITmedia NEWS
なぜMozillaはFacebookの「研究目的のデータ収集がユーザーのプライバシーを危険にさらしている」という主張に反論しているのか? - GIGAZINE
CIAやNSAなどの情報機関は「危険な広告」による被害を避けるために広告ブロッカーを使っている - GIGAZINE
Facebookのリンクは「クリックする瞬間」だけ別のリンクにすり替えられる - GIGAZINE
広告ブロックは著作権侵害ではないという判決が下る - GIGAZINE
GoogleとMicrosoftが大量のスパム広告をDuckDuckGoなどの小規模検索エンジンに表示させていることが判明 - GIGAZINE
Googleタグマネージャーの機能で広告ブロッカー&ブラウザのプライバシー保護の仕組みが回避されている - GIGAZINE
7594591200220899443さんはTwitterを使っています 「Facebookが邪悪もさることながら基本的にChromeは広告屋が作ってるのでこういう挙動を改善する動機に乏しいというブラウザ側の座組みの問題が大きいという印象です。」 / Twitter
7594591200220899443さんはTwitterを使っています 「これだと「怪しげなURLを踏まないようにしましょうね」が効かない。怪しいかどうか押すまでわからんからだ。これは極めて悪質である」 / Twitter
Michal ŠpačekさんはTwitterを使っています 「When you click the FB link, but before the browser loads the page, they change the HREF to l.​facebook.​com so for the browser, it seems like you clicked the l.​fb link. Works with right-click as well, maybe because "copy link". And when you move the mouse back again… Sneaky. https://t.co/6Yfl3de1V8」 / Twitter
7594591200220899443さんはTwitterを使っています 「ひえーFacebook、Aタグの上でマウス押下した瞬間にhref書き換えてんのか!で次の瞬間マウスクリックするとその書き変わったURLを踏む」 / Twitter
Firefoxの検索バーに広告表示機能が実装されたとして話題に - GIGAZINE
「広告ブロック」をうたうブラウザ拡張機能が実際はページに広告を挿入していたことが判明 - GIGAZINE
広告ブロッカーが勝手にアフィリエイトを挿入。悪意あるブラウザの拡張機能に要注意 - PC Watch
Makoto Kato ︎︎さんはTwitterを使っています 「AMP、トラッキングスクリプト含んでるし、なんでああなった感強い (Adブロッカー使うと動かないケース見ながら)」 / Twitter
Google、FLoCに代わる"脱サードパーティCookie"技術「Topics」公開 | TECH+
Topics API: Relevant Ads without Cookies - The Privacy Sandbox
jkarlin/topics: The Topics API
使用中のGPUから個人を識別できる技術が登場、同じ型番のGPUでも正確に見分けられる - GIGAZINE

セーフブラウジング

実はセーフでも何でもないという「セーフブラウジング機能」について専門家が解説 - GIGAZINE
iOS 14.5の「セーフブラウジング」はGoogleではなくAppleの自社サーバー経由で行われるようになる - GIGAZINE
Chrome、フィッシング検知を50倍高速化したバージョン92 - PC Watch
セーフブラウジングに致命的な脆弱性 ~「Google Chrome」v97.0.4692.99で対処 - 窓の杜

ASnoKaze blog

送信元ポート

QUICやHTTP/3で利用を避けるべき送信元ポートの議論 - ASnoKaze blog
QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | エンジニアブログ | GREE Engineering
slides-111-quic-ops-drafts-00.pdf
draft-ietf-quic-applicability-13
QUICやHTTP/3で利用を避けるべき送信元ポートの議論についての考察 - show log @yuyarin

histric-1

HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
HTTPと硬直化(ossification)の問題 - ASnoKaze blog
「Advisory Content-Length for HTTP」と自転車置場の話し - ASnoKaze blog
ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ - ASnoKaze blog
HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14) - ASnoKaze blog
HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様 - ASnoKaze blog
HTTP/2の仕様、改定作業が始まる - ASnoKaze blog
WiresharkがHTTP/3に対応した - ASnoKaze blog
ChromeのSecure context restriction for external requests - ASnoKaze blog
Permissions PolicyとDocument Policyについて - ASnoKaze blog
ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
CDNのキャッシュを制御する CDN-Cache-Control ヘッダ - ASnoKaze blog
GoogleのPrivate prefetch proxyに関するメモ - ASnoKaze blog
HTTP PUTリクエストにContent-Rangeヘッダを付けられるか? - ASnoKaze blog
WebTransportの方向性 (2021年1月の中間会議をうけて) - ASnoKaze blog
プライバシーを保護する Oblivious HTTP の仕様 - ASnoKaze blog
NAT Slipstreaming v2 攻撃とブラウザ側の対策 - ASnoKaze blog
NAT Slipstreaming攻撃とブラウザ側の対策 - ASnoKaze blog
ダウンロードもMixed Contentsの対象となる話し - ASnoKaze blog
QUICの仕様におけるアンプ攻撃対策 - Qiita
WebTransport over HTTP/3のプロトコル仕様 - ASnoKaze blog
HTTPコネクションでIPパケットをProxyさせる、新しいCONNECT-IPメソッドの仕様 - ASnoKaze blog
QUIC Version 2 という個人ドラフト(draft-duke-quic-v2❩ - ASnoKaze blog
HTTP/3におけるCAPSULEフレームとDATAGRAMの利用方法 - ASnoKaze blog
WebTransport over HTTP/2 の方向性 (2021年5月の中間会議をうけて) - ASnoKaze blog
HTTPセマンティクス仕様の改訂版 まとめ - ASnoKaze blog
HTTP/3からのダウングレード攻撃を防ぐIncompatibleProtocol拡張の仕様 - ASnoKaze blog

HTTP/3 DATAGRAMの優先度制御の提案仕様 - ASnoKaze blog
Bootstrapping WebSockets with HTTP/3 の仕様 - ASnoKaze blog
QUICのバージョンネゴシエーションとダウングレード攻撃対策 - ASnoKaze blog
RSAブラインド署名を用いたHTTP認証の提案仕様 - ASnoKaze blog
QUIC用APIを実装したOpenSSL forkの登場 - ASnoKaze blog
HTTP Datagram PING の拡張仕様についてのメモ - ASnoKaze blog
HTTP/2の改定版仕様の変更点について - ASnoKaze blog
クレデンシャルを安全に転送する「Secure Credential Transfer」の仕様 - ASnoKaze blog
匿名かつ検証可能なPrivate Access Tokensの提案仕様 - ASnoKaze blog
新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「SQLがどうとかじゃなくて「リクエストボディに内容を突っ込めて、かつ冪等セマンティクスをもつHTTPメソッドができるかも」くらいの話だと思っているだけれども。」 / Twitter
がくぞさんはTwitterを使っています 「まー大多数の利用ケースでbodyにはjsonが入るだけになりそうな気がしますね」 / Twitter
新しいQUICのマルチパス拡張の仕様 - ASnoKaze blog
QUIC Version 2 の仕様 - ASnoKaze blog
HTTP/3とQUICはなぜ必要になり、どのように標準化されてきたのか? 現代のプロトコル設計とインターネットの課題 - エンジニアHub|Webエンジニアのキャリアを考える!
メディアタイプで複数サフィックスを許可する提案仕様 - ASnoKaze blog
QUICのPath MTU Discovery手法の論文を読んで - ASnoKaze blog
gRPC over HTTP/3のプロトコルと実装を眺める - ASnoKaze blog
2021年 HTTPやQUICの最新動向振り返り - ASnoKaze blog
Greasing the QUIC Bit の仕様について - ASnoKaze blog
HTTPの拡張CONNECTメソッド について復習する - ASnoKaze blog
ChromeがQUICのInitialパケットに施すChaos Protection - ASnoKaze blog
Twitchの QUICを用いたライブストリーミングプロトコル Warp - ASnoKaze blog
Double-keyed HTTP cache に関するメモ - ASnoKaze blog
HTTPで再開可能なアップロードを可能にする提案仕様 - ASnoKaze blog
HTTP/3でQUICv2を使うためのalt-svc拡張 - ASnoKaze blog

Publickey

HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(前編) - Publickey
HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(後編) - Publickey
HTTP/3の基盤となる「QUICプロトコル」の標準化プロセスが完了、IETFの「RFC 9000」として - Publickey

blog.jxck.io

Cross Origin iframe からの alert/confirm/prompt 呼び出しの無効化 | blog.jxck.io
Private Relay と IP Blindness による Fingerprint 対策 | blog.jxck.io
ABNF Parser の実装 | blog.jxck.io
Web のセマンティクスにおける Push と Pull | blog.jxck.io

IIJ Engineers Blog

IIJ Engineers Blog
QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog
QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog
QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog
QUICをゆっくり解説(5):2回目以降のハンドシェイクと0-RTT | IIJ Engineers Blog
QUICをゆっくり解説(6):増幅攻撃との戦い | IIJ Engineers Blog
QUICをゆっくり解説(7):アプリケーションデータとストリーム | IIJ Engineers Blog
QUICをゆっくり解説(8):フロー制御 | IIJ Engineers Blog
QUICをゆっくり解説(9):コネクションの終了 | IIJ Engineers Blog
QUICをゆっくり解説(10):コネクションのマイグレーション | IIJ Engineers Blog
Vol.52 | Internet Infrastructure Review(IIR) | IIJの技術 | インターネットイニシアティブ(IIJ)
HaskellによるQUICの実装(IIR vol.52 3章) | IIJ Engineers Blog
QUICをゆっくり解説(11):ヘッダの保護 | IIJ Engineers Blog
QUICをゆっくり解説(12):確認応答(ACK) | IIJ Engineers Blog
QUICをゆっくり解説(13):ロス検知 | IIJ Engineers Blog
QUICをゆっくり解説(14):輻輳制御 | IIJ Engineers Blog
QUICをゆっくり解説(15):HTTP/3 | IIJ Engineers Blog
QUICをゆっくり解説(16):ヘッダ圧縮 | IIJ Engineers Blog
HTTP/2を利用する際はCipher Suiteを正しく設定しよう | IIJ Engineers Blog

GIGAZINE

ウェブアプリに対する典型的な攻撃手法とその対策まとめ - GIGAZINE
ウェブサイトのさまざまな「認証方式」をまとめて比較した結果がコレ - GIGAZINE
Chrome・Firefox・Edgeなどブラウザは初回起動時にどのような通信を行っているのか - GIGAZINE
Chromeで「情報削減されたユーザーエージェント文字列」のテストが開始 - GIGAZINE
Google Chrome 95安定版リリース、ユーザーの特定を避けるためのUser-Agent削減のテストが開始される - GIGAZINE
AmazonやPayPalの「2段階認証」を突破するための音声ボットがハッカーに販売されている - GIGAZINE
「Googleでログイン」「Facebookでログイン」などのOAuth認証を模倣してパスワードを盗み出す手口が考案される - GIGAZINE

infoQ

Chrome User Agentのサポートを段階的廃止
UXパターン: Stale-While-Revalidate

Twitter

QUIC

NAT

ゆやりんさんはTwitterを使っています 「資料掲載してます。どう見ても5分でしゃべれないので評判良ければJANOG49で時間とって議論したいですね。 https://t.co/4lYpkF3RDX」 / Twitter
QUICとNATと – JANOG48 Meeting
Kazuho OkuさんはTwitterを使っています 「よいまとめ。ありがたい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「感想がてらのメモとしていくつか: * UDP無通信タイムアウト30秒にできるなら、TCPのCLOSE_WAITの120秒よりも短くなるので、プレッシャーは減りそう(TCPのFIN交換後のタイムアウトって実際のNAT運用どうなってるんだろう)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* 実際のところ、ポート枯渇に一番つながるのは、いまだにドメインシャーディングしてるHTTPサイトとかHTTP/1で持続的接続を使わないクローラとかなので、そういうTCPアプリがなくなるとNATでのポート枯渇可能性が減ってうれしいよなと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* IPv6でポート枯渇はなくなるはずなのにSPIのエントリ足りないとかは、設定でギリギリ攻める以上、アプリケーションの変化の度に再チューニングするリスクと隣り合わせであることを理解してほしいと思う」 / Twitter
tenpoku1000に関するツイートアクティビティアナリティクス
Kazuho OkuさんはTwitterを使っています 「実際、NATまわりで「TCP切断後、何秒間4-tuple再利用できないの? 120秒? マジ? 長すぎない?」みたいなことは思うんだけど、120秒以下で再利用するのは、やっぱ危ないんですよね?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーまああれか。「ポート番号まじ足りないって」っていうキャリアグレードNATの話と、ポートは余ってるけど「エントリ数足りないって」っていうホームルータやファイアウォールの話を混ぜるな危険ってのはあるのか」 / Twitter

嶋田大貴さんはTwitterを使っています 「TCPだとセッションの終わりをルーターが検出してテーブルから削除出来るけど、QUICの場合はQUICを知らないルーターから見たらただのUDPだからタイムアウトでしか片付けられないってことか…これは厳しいですね。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「うええ、ルーターのNATテーブルを圧迫してるの、LAN内部に設置したDNSサーバーだけかと思ったら、QUICか!どうりで、googleとかQUICに対応してるサイト使うとトラブル起きる訳だ。。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「現状、UDPで動いてるQUICのセッションの継続期間を、ルーター側で明示的に判断できないから、NATのタイムアウトを短くするとか、Atermみたいヘボルーターを使わない、しか対策ないっぽい。。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「LAN内QUIC使用禁止ってのもアレなんで、とりあえず、NATのUDPセッションタイムアウトを最小値30秒にしてみた。元々、SIPみたい一部のUDP使ってるレガシーなプロトコルが、無通信時間が長いので、タイムアウトの初期値が長めになってたりするらしい。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin トランスポート屋さんとしてはQUIC対応ルータみたいな発想こそがプロトコルの発展を阻害する(ossifyする)ので防ぎたいものなので、NATに期待するのは使われないマッピングは順次消していってくれ、以外ないです。消えてたら別ポート割り振られて、そこでconnection migrationが走るので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「現実にはNATのUDPエントリは無通信30秒程度くらいから消え始めるので、QUICのサーバが接続維持したい場合は(HTTP/3のlong polling等)、定期的にPINGを送るべきとされています。滞留中のHTTPリクエストがなければ、無通信のままエンドポイントのステートもNATのステートもタイムアウトで破棄される」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 「使われないマッピングは順次消していってくれ」ってのがインフラ側から見るとしんどい(けど「QUIC対応ルータがあれば解消できる」という意見があって「本当か?」と懐疑した結果違うと分かった)のでQUIC使うならIPv6だなと思い至りました。この辺の話はJANOGのLTで話してみようかな。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin なぜLRUでしんどいのでしょう。TCPの場合、NATテーブルが溢れるギリギリまでテーブルエントリを維持したい(そうしないと接続が切れる)という動機があるのは分かりますが、QUICの場合はmigrationがあるので不要です。また、傍論ですが、そもそも切断時にCONNECTION_CLOSEを投げるわけですらありません」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin アプリケーションプロトコルによりますが、HTTP/3のような場合は、タイムアウトによる切断が通常動作です。切断処理のために無線回路起こすのは無駄なので」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho NATのエントリークリアのトリガーがタイムアウトしかないので、タイムアウトが長いとNATテーブルが埋まる問題があります。この時に他の接続もできなくなるのが問題です。TCPの場合はFINをトリガーにタイムアウトを待たずにエントリーを消せます。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin LRUではなく固定秒数のタイムアウトを指定するようなNATの話でしょうか。だとすると、そのような設計はQUICに限らずUDP全般で問題になるので、LRUに移行してくれ、以外にないと思います。FINをトリガーに消せる(からエントリを節約できる)というのは、LRUよりも長い寿命が必要であるという...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin 前提に基づく主張だと思いますが、QUICの場合、LRUで困らないので、その主張はあたりません。」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho ですです。ご家庭やSOHO、小規模オフィスのブロードバンドルータとかです。LRUしてくれってのもその通りです。DNS以外のUDP全般で起こる問題ですがこれまでそんなに通信がなかったので顕在化しなかった問題です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin なるほどありがとうございます。アプリ屋さんの発想としては、UDPが100%通るわけではない以上、TCPフォールバックを前提にものを作る(ことが多い)ので)、そういうルータのテーブルが溢れてUDP止まるならしょうがないよね、LRUする機器に更新されるといいね、みたいな感想になりそうです」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 多くの場合TCPとUDPでNATテーブルが共有されているので、この場合TCPも含めて新規コネクションが死んでしまいますよね。QUICで多重化されてUDPレベルのでコネクション数が減ったことと、タイムアウト待ちによるNATエントリーの増大のバランスがどうなるのかが(サイトの作りにもよりますが)気になります」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 文脈変わりますが、CGNレベルのNATでLRUできるかですが、RFC6888にはREQ-8として「FINが来てないTCPポートは120s経過するまで再利用するな」って書いてあったりして悩ましいです(書いた人が身近すぎますが) https://t.co/97KhQ2tJW0」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin TCPとUDPでタイムアウトが共通かつTCPの場合FINでエントリ落とすみたいな設計だと、UDP側からのプレッシャー増大に対応するのは大変かもですね。元の文脈にだと、UDPの場合は終端を見てエントリを落とすなんてことはどのみちできない(し、やるべきではない)んだから、タイムアウトをTCPより短く...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin すればいいという話になり、実際、TCPよりもUDPのほうがタイムアウト短いネットワークが多いんだと理解しています(この「多い」がネットワークの数なのかトラフィック比例なのかは把握してないです)」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho そうですね。設計としてはTCPのタイムアウトのほうが長いことが事例として多いです。TCPはFINで消えるのでタイムアウト値の設計時にNATエントリのことを考慮することは少なくて、実際の数秒〜十数秒の通信断があったときにTCPコネクションが切れてほしくないみたいな動機で設定することが多いです。」 / Twitter
こーのいけさんはTwitterを使っています 「@yuyarin @kazuho YAMAHAのマニュアル見てるとDNSの場合を特別扱いしてますね。https://t.co/srVLidQBeL - DNS以外に多くのサーバと頻繁に通信するUDPプロトコルがこれまでなかった - DNS(53/udp)は特別扱いされている場合があった - そこにQUICが出てきて、さあどうしよう? という感じでしょうか」 / Twitter
26.9 NAT の IP アドレスマップの消去タイマの設定
ゆやりんさんはTwitterを使っています 「@ko_noike @kazuho おっしゃるとおり、これができる機器を使う場合はDNSのNATのタイムアウトはかなり短く設定します。というかこれができないとURL一文字打つたびに名前解決しに行くブラウザとかがあると死ぬので。。。」 / Twitter
VさんはTwitterを使っています 「QUIC 対応ルーターとかは必要なくて普通に NAT テーブルの UDP セッションタイムアウトが 30 秒とかになってればあとはテーブルサイズの問題くらいの認識。テーブルサイズが小さい弱いルーターはしんどいかもしれない、くらいか。」 / Twitter
VさんはTwitterを使っています 「むしろ特定プロトコル向けルーターとか出すとそのプロトコルが改善できなくなるのでやめるべきだと思うなぁ。」 / Twitter

CRLF

Masaki HaraさんはTwitterを使っています 「Unix系の世界はLFなのにHTTPがCRLFなのが不思議だなと思ってる」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@qnighy @miura1729 HTTPがCRLFなのはRFC822がCRLFだからですが、さらに遡ると多分RFC137(1971)で行終端をCRLFに統一したようです。それ以前(RFC97, RFC110等)では行終端に色々あるとなっています。 この頃だとUnixはそれほど支配的じゃないですよね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「本来のLFはカーソルを先頭に戻す機能は無いから本来ならCRLFが正しい気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 プリンタの制御コードの役割の方が先でしょうから、カーソルというか印字位置というか。 インターネットでのテキストベースのプロトコルはだいたい RFC854 の TELNET PROTOCOL SPECIFICATION あたりを参考に作られているんじゃないかなぁ、と推測してます。」 / Twitter
EGUCHI OsamuさんはTwitterを使っています 「@miura1729 EBCDICにはCR=Carriage Return、NL=New Line、LF=Line Feed、FF=Form Feedとよりどりみどりなんですけどね。」 / Twitter

FadisさんはTwitterを使っています 「HTTPでブラウザがWebサーバに対してユーザトラッキングを望まないという意思表示をするDo Not Track(DNT)ヘッダをSafariが廃止した理由が「DNTはあまり使われず、使うユーザは継続的にDNTを付けたリクエストをする為、トラッキングの為のヒントとして使われる」なの、Webのダメな所が凝縮されてて凄い」 / Twitter
Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「HTTPやSSL/TLSに関わるソフトウェアエンジニアは知っておくといい情報なんですけど、 https://t.co/ZcO29mS1P8 というサイトを使うと、期限切れの証明書でのTLSの検証とかが簡単にできていいです。」 / Twitter
badssl.com
Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「似た例として、Google Safe Browsingとかでマルウェア判定の検証に使える https://t.co/x9biz3P59l というデモサイトも便利です。」 / Twitter
testsafebrowsing.appspot.com
Kazuho OkuさんはTwitterを使っています 「HTTPでAPI設計する際のstatus codeの返し方は https://t.co/QnjU6BStK2 にまとまってるけど、一言で言うと HTTP status code を本来の意味で使いつつ、詳細な情報はレスポンスボディやヘッダで送れ、です」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「というわけで、HTTP ステータスコードの使い方も含め、HTTP を使って API やらアプリやら設計する際の指針はだいたい BCP56bis なのです」 / Twitter
Hajime FujitaさんはTwitterを使っています 「5時間でCDNを作るぞ!という記事。CDNの基本的な概念がよくまとまっている。 https://t.co/IYrKfOJKWx」 / Twitter
The 5-hour CDN · Fly
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「HTTP/2はその複雑さのために多くの攻撃が可能になっている。ヘッダはバイナリ化されているが、frontend-backend間は HTTP/1で通信されることが多いので、ダウングレードによって Content-Length/Transfer-Encoding を混ぜた desync攻撃が可能になる。 https://t.co/Sg6KLlm2v5」 / Twitter
HTTP/2: The Sequel is Always Worse | PortSwigger Research
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Cloudflareが新しく導入した browser isolation機能は、視覚障害者にとってのWebアクセスを完全に遮断してしまう。これに対する代替策はまだ存在しない。 https://t.co/NG7I20UnJz」 / Twitter
Cloudflare's inaccessible browser contradicts the company's mission
Sen UENOさんはTwitterを使っています 「UDPベースの増幅攻撃の増幅係数がまとまっている。 UDP-Based Amplification Attacks | CISA https://t.co/K4QDcxgpG2」 / Twitter
UDP-Based Amplification Attacks | CISA
なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「UA文字列のバージョンが100になると、いっぱい壊れるサイトが出そうだから、Firefox Nightlyユーザの50%のUA文字列を変更してテストするらしい。 / Heads up: "Firefox 100" webcompat experiment https://t.co/POiNcsFPFN」 / Twitter
Heads up: "Firefox 100" webcompat experiment
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「FedoraがNISのサポートを打ち切るらしい。 新山はむかし大学のマシンを管理していたころにNISをよく使ったが (その頃はまだYPと呼ばれていた)、いまの代替品は LDAP/Kerberosなのか? 面倒くさそう。 https://t.co/Gq6sesRnCr」 / Twitter
Fedora considers removing NIS support [LWN.net]
The Pharo ProjectさんはTwitterを使っています 「Superluminal: Building blocks for creating HTTP requests and API clients https://t.co/3tNvaxMBqf」 / Twitter
ba-st/Superluminal: Building blocks for creating HTTP requests and API clients

curl

curl

curl
curl - License Mixing
curl - SSL libraries compared
curl - SSL CA Certificates
curl - Extract CA Certs from Mozilla
curl - HTTP Cookies
HTTP/2 with curl
curl/curl: A command line tool and library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features
curl/packages/Win32 at master · curl/curl

libuv

libuv|Cross-platform asynchronous I/O
libuv/libuv: Cross-platform asynchronous I/O
libuv - Wikipedia
libuv-1.19.1
Kazuho's Weblog: The reasons I stopped using libuv for H2O
Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
Reactor pattern - Wikipedia
Proactor pattern - Wikipedia
C10k problem - Wikipedia
libcurl example - multi-uv.c
Curl: libuv example
node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ - 自由課題
Utilities — An Introduction to libuv
curl/multi-uv.c at master · curl/curl
An example on how to use libuv with libcurl's multi interface Should be equally fast on Unixes (uses epoll/kqueue/etc like libev/libevent) but MUCH faster on Windows due to libuv's usage of IO completion ports. Could come in handy if you have to manage several hundreds or thousands of connections!
moteus/lua-lluv-curl: Make asyncronus requests using libuv and libcurl
c - libuv event loop and libcurl - Stack Overflow
libuv/libcurl downloading example with threaded adding new download requests - Google グループ

本の虫: C++をプログラミング入門に使うならHTTPSぐらい喋れないと話にならんと言われたのでそういうライブラリを作った
cURL - Wikipedia
cURL - Wikipedia, the free encyclopedia
cURL-7.57.0
nghttp2-1.29.0
libmetalink in Launchpad
超古いサーバーからhttpsにcurlする時 - yamaguchi.txt
ブラウザではアクセスできるのにcurlでhtmlが取ってこれない時 - yamaguchi.txt
curl で Cookie 認証突破
cURL as DSL — cURL as DSL 1.0 documentation
rsync, wget, curl, scp に速度制限をかける方法まとめ - Qiita
cURL:インストール時にlibSSH2でエラーになる場合の解決策 | Step On Board
cURL - curlでルート証明書の適用がうまくできない。(74022)|teratail
cURL - How To Use (マニュアルページ日本語訳)
Windows®環境にcURLコマンドを実行できるようにインストールする手順 | ええかげんブログ(本店)
libcurlをVisual Studio 2012を使って、Windows10(64bit)上でビルドした手順。~必要な資源のダウンロードからビルドまで~ - IT系フリーランスの技術備忘録
HTTP(S)通信のできるcurlと無駄に新しいgawkをインストールしてくれます
WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
matsuuを止めるな!さんのツイート: "curl単体とcurl | bashでchunkedの違いを元に異なる内容を流し込むPoC。わはは。 / “Detecting the use of "curl | bash" server side | Application…” https://t.co/0rrnblHZ1k"
Detecting the use of "curl | bash" server side | Application Security
渋川よしきさんのツイート: "コマンドが分かれば、libcurlオプション付けると、ソースコードが生成されたはずです。… "
本の虫: Cisco、ルーターの脆弱性を修正するためにユーザーエージェントcurlを弾く変更を加える
Rust Hyper HTTPライブラリはCurlをより安全にすることに貢献

libssh2

blog

Ubuntu忘備録: libssh2をコンパイルしてみた
qemu(not kvm)上のゲストOSへのsshが遅くてハゲるので何とかした備忘録 - livaの雑記帳
ubuntuのssh serverに公開鍵認証でログインする - Yabu.log
SSHの踏み台有り・無しを,ネットワーク的居場所に応じて自動で切り替える - yunazuno.log
OpenSSHのAuthenticationMethodsを使って鍵認証+ユーザパスワード認証による二要素認証の設定をする | 俺的備忘録 〜なんかいろいろ〜
QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
ssh-agent のしくみ - eagletmt's blog
フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題 - tsutsuiの作業記録置き場

OSDN

「OpenBSD 5.4」リリース、OpenSSHやOpenSMTPDがアップデートされる | OSDN Magazine
「OpenSSH 6.8」がリリース | OSDN Magazine
「OpenSSH 7.0」がリリース、PermitRootLogin設定の変更などセキュリティ強化が行われる | OSDN Magazine
「OpenSSH 7.2/7.2p」がリリース | OSDN Magazine
「OpenSSH 7.4/7.4p」を公開、バグ修正が中心のリリース | OSDN Magazine
「OpenSSH 7.8」リリース | OSDN Magazine
1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
AES-GCM暗号が関連した脆弱性を修正した「OpenSSH 6.4/6.4p」がリリース | OSDN Magazine
Windows環境でのSSHの利用とSSH鍵の作成 | OSDN Magazine
セキュリティを改善する変更が加えられたOpenSSH 5.6/5.6p1リリース | OSDN Magazine
フリーのSSH実装「OpenSSH 6.7」がリリース | OSDN Magazine
レガシーな証明書署名の脆弱性を修正したOpenSSH 5.8/5.8p1リリース | OSDN Magazine
機能にフォーカスした「OpenSSH 6.5/6.5p1」がリリース | OSDN Magazine
子プロセスでのサンドボックスを実験的に実装したOpenSSH 5.9/5.9p1リリース | OSDN Magazine
米Microsoft、PowerShellでOpenSSHをサポートへ | OSDN Magazine
「OpenSSH 7.8」リリース、バグ修正が中心 | OSDN Magazine
「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正 | OSDN Magazine
「OpenSSH 8.1」リリース、バグ修正が中心 | OSDN Magazine

GIGAZINE

SSHの認証に物理セキュリティキー&認証局を用いて一時的な鍵を生成する方法とは? - GIGAZINE
開発者たちが慣れ親しんだ「scp」コマンドはなぜ「時代遅れで柔軟性がなくすぐに修正できない」のか? - GIGAZINE

Zenn

各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ
WSL2のUbuntuでkeychain経由でssh-agentを使う

Qiita

libssh2をインストールする(ソースからコンパイル) for CentOS7.2 - Qiita
libssh2,openssl,c-ares,zlib,ipv6を有効にした状態でcurlをwindows上で64bitビルドする - Qiita

Twitter

いわもと こういちさんのツイート: "以前日記 https://t.co/81s1kPT1y4 で書いたけれど、OpenSSHの秘密鍵の形式には欠点が有るから。そもそも秘密鍵は利用するソフトで生成して使うべきだと思うんだよね。それならば形式の問題は無い。よそで作って(時にはネットワークを介して転送して)利用するなんてやりたくない。… https://t.co/8boH6v9rQp"
PuTTYの秘密鍵が独自形式な理由 | dodaの日記 | スラド
Fadisさんのツイート: "OpenSSH 8.0がリリースされた。scpでファイルをコピーする際に「リモートから送られてきたファイル名をクライアントが無条件に信用する」為に制御文字でいたずらができる脆弱性(CVE-2019-6110)が修正される他、量子計算機耐性を持つ鍵交換の実験的なサポートが含まれる https://t.co/ffcIOWKCNU"
OpenSSH 8.0 Released - Addresses SCP Vulnerability, New SSH Additions - Phoronix
YASUOKA MasahikoさんはTwitterを使っています 「IPoE だと ssh で外出れず、びっくり。https://t.co/cmwRgkmC9b 有名な問題っぽい。pf で "set tos 0x0" して潰すことにした。」 / Twitter
フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題:tsutsuiの作業記録置き場 - ブロマガ
ドッグさんはTwitterを使っています 「プロトコルの脆弱さから見て scp はもう時代遅れになってきている.代替は sftp か rsync だけど,前者はインターフェースが微妙で後者は使える環境がやや限られる | 'Deprecating scp [https://t.co/WPGe19HJgf]' https://t.co/aDWoZVRZe5」 / Twitter
ドッグさんはTwitterを使っています 「scp コマンドが使うプロトコルを sftp に置き換える実装を試してる人もいる https://t.co/K7hNcfNZSA」 / Twitter
Use SFTP internally for SCP command by Jakuje · Pull Request #194 · openssh/openssh-portable
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「OpenSSHで公開鍵ハッシュを視覚化するのに使われている「酔っぱらいビショップ (The Drunken Bishop)」アルゴリズム。入力を2ビットずつスキャンして斜め4方向に移動し、その軌跡を格子上にプロットする。訪れた回数によって記号を変えればできあがり。 https://t.co/TlUb2HyqwX」 / Twitter
The Drunken Bishop Algorithm – Barely Functional Theories
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日知った用語: Trust on first use (TOFU) 初回で相手を (よく調べたうえ) 信用し、2回目以降は以前と同じ相手かどうかだけをチェックする原則。SSHの初回接続や HTTP Public Key Pinningがこれに相当する。 https://t.co/UYHH5kH0aO」 / Twitter
Trust on first use - Wikipedia
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SSHの公開鍵は、任意のデータを署名するのに使える。これは2019年リリースの OpenSSH 8.0から追加された機能で、ssh-keygenを使って署名・検証ができる。SSHはPGPよりもずっと普及しているし、Git 2.34からcommitをSSHで署名できるようになる。またGitHubは事実上の鍵配送だ。 https://t.co/5WFdAc74j3」 / Twitter
It's Now Possible To Sign Arbitrary Data With Your SSH Keys
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、GitHubで各ユーザのSSH公開鍵が閲覧可能なのは意外と知られていない。 たとえば Linus Torvaldsの公開鍵は: https://t.co/WZIRwMJJz6」 / Twitter
https://github.com/torvalds.keys
ぬるぽへさんはTwitterを使っています 「いやこれconfigにport forwardingの設定を書くっていうセットアップを前提にするとめっちゃ簡単だ」 / Twitter
ぬるぽへさんはTwitterを使っています 「1.sshのconfigでport forwardingしとくようにしとく 2. そのポートでクライアント <-> サーバー間でなんかシンプルなコマンドを双方向で実行できるバスを作る 3. そのバスの上で動くvscodeを相手のほうで立ち上げるアプリを書く 探せばありそう」 / Twitter
ぬるぽへさんはTwitterを使っています 「すでにそういうツールがあるなら、たぶんそのバスの上で リモート <-> ローカルでファイルをコピーする機能もありそう」 / Twitter
ぬるぽへさんはTwitterを使っています 「まぁなんかdbusの再発明っぽいけどdbusをリモートローカルで共有するって話もあんまりなさそうなんですよね」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「VSCode上で各種ツールが動くとうれしい理由の一つは、Remote SSHで、XとかVNCとかそういうリモートデスクトップツールなしでsshだけで何も設定せずに動いちゃうのが便利すぎる。だからこそ、Electronベースで動いてるようなツールは、この際、VSCodeに拡張として移植してくれないかなぁと思うんだよ。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ssh-agentは秘密鍵をforwardできるため攻撃の対象になりやすい。OpenSSH 8.9 で導入された新機能を使うと、秘密鍵を特定のホストにしかforwardできないように設定できる。これはssh-agentが悪意あるsshd経由でforwardされているときに、中間ホストが勝手に鍵を盗めなくする。 https://t.co/fvVChEkDeb」 / Twitter
Restricting SSH agent keys [LWN.net]

libssh2 | daniel.haxx.se
Curl: How to configure curl with libssh2
libssh2
libssh2 vs libssh
libssh2/libssh2: the SSH library
PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
haruyama/ssh_rfc_ja: Japanese translations of SSH RFCs and Internet Drafts

SMB

脆弱性

WindowsおよびSambaの重大なバグ「Badlock」、4月12日のパッチリリースが告知される | スラド セキュリティ
WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT
JVNVU#92232364: Microsoft Windows および Samba の認証機能に脆弱性 ("Badlock")
ASCII.jp:95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か|Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート
Windowsの通信プロトコルに脆弱性報告、SMB v1は無効化を - ITmedia ニュース
ニュース - WindowsのSMBに新たな脆弱性見つかる、企業担当者はファイアウオールの再確認を:ITpro
WannaCryの危機再び。新たな拡大感染型ランサムウェアGoldenEye/Petyaが全世界で拡散中。 | LAC WATCH | 株式会社ラック
Windows SMBの脆弱性「SMBLoris」の再現を確認しました | LAC WATCH | 株式会社ラック
Windows 10/8.1の「SMB v3」に未解決の脆弱性、Windowsをクラッシュさせてブルースクリーンに -INTERNET Watch
WindowsのSMB v3脆弱性を悪用し、ウェブサイトのリンククリックでシステムをクラッシュさせる手法、SecureWorksが公表して注意喚起 -INTERNET Watch
被害拡大のランサムウェア「WannaCryptor」は「SMB v1」の脆弱性を悪用、サポート終了のWindows XP向けにも緊急パッチ提供 -INTERNET Watch
新種ランサムウェア「GoldenEye」が世界各地に感染拡大、SMB v1の脆弱性「MS17-010」を突いて感染 -INTERNET Watch
猛威を振るったランサムウェア「WannaCry」を振り返る - INTERNET Watch
Google、SMBv1にのみ対応するAndroid用Sambaクライアントを公開 | スラド セキュリティ
google/samba-documents-provider: Access network file shares directly from the Android Downloads/Files app
Petya ランサムウェア攻撃に対する Windows 10 プラットフォームのレジリエンス – 日本のセキュリティチーム
アップグレードの重要性: 2017 年のランサムウェア拡散時に高い効果を証明した Windows 10 の次世代型セキュリティ – 日本のセキュリティチーム

MS

[MS-SMB]: Server Message Block (SMB) Protocol
SMB 3.1.1 Pre-authentication integrity in Windows 10 – Microsoft Open Specifications Support Team Blog
SMB 3.1.1 Encryption in Windows 10 – Microsoft Open Specifications Support Team Blog
Encryption in SMB3 – Microsoft Open Specifications Support Team Blog
SMB 2 and SMB 3 security in Windows 10: the anatomy of signing and cryptographic keys – Microsoft Open Specifications Support Team Blog
Extended DFS referral for SMB 3 – Microsoft Open Specifications Support Team Blog
SMB3 Secure Dialect Negotiation – Microsoft Open Specifications Support Team Blog
SMB 2.x and SMB 3.0 Timeouts in Windows – Microsoft Open Specifications Support Team Blog
CIFS and SMB Timeouts in Windows – Microsoft Open Specifications Support Team Blog
Encryption in SMB 3.0: A protocol perspective – Microsoft Open Specifications Support Team Blog

SMB Direct

Remote Direct Memory Access

Remote Direct Memory Access - Wikipedia
Remote direct memory access - Wikipedia
リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
SMB Direct - Windows Server 2012 / R2 - SSD情報
SANsymphonyパススルーとRDMAの組み合わせ - Qiita
FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
「RoCE」をめぐる、あれこれ。 | サーヴァンツインターナショナル株式会社
13.2. RoCE を使用したデータ転送 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

Improve Performance of a File Server with SMB Direct
Windowsファイルストレージ(SMB) - メラノックス テクノロジー
SMB Direct - Windows Server 2012 / R2 - SSD情報
SB_Accelerating_Remote_Storage_Mar_2014.pdf
SANsymphonyパススルーとRDMAの組み合わせ - Qiita
SMB direct の性能 : kommy の備忘録

@IT

Windowsネットワークの基礎:第7回 ファイル共有プロトコルSMBの概要 - @IT
その知識、ホントに正しい? Windowsにまつわる都市伝説(23):ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編) - @IT
Tech TIPS:SMBのマルチチャネル転送機能でファイルサーバーへのアクセス速度を向上させる - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(23) - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(24) - @IT
Linuxはサンバ(Samba)で踊る――WindowsとLinuxのファイル共有のいま:その知識、ホントに正しい? Windowsにまつわる都市伝説(25) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(26) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(27) - @IT
再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策:山市良のうぃんどうず日記(83) - @IT
ランサムウェア「Wanna Cryptor」に対し、異例のセキュリティパッチをWindows XPに提供する意味:山市良のうぃんどうず日記(94:緊急特別編) - @IT
ランサムウェア「WannaCry」対策で安心してはいけない――いま一度、見直すべきWindowsの脆弱性対策:山市良のうぃんどうず日記(95:特別編) - @IT
Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ:企業ユーザーに贈るWindows 10への乗り換え案内(93) - @IT

Twitter

Kengo Sawatsuさんのツイート: "朗報(悲報):3年間ずっと間違って評価してたaio_readを正しく実装してみたら、SMB越しのreadの性能が適当な環境ですら20%以上伸びる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルサーバ(種別不明)にコピーしたら、途中でエラー123(ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません)が出たという話。 ファイルサーバがUNIX系でも / 以外は禁止文字が無いはずで、コピーの途中で出るパターンって、何かあったかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元で試すと、sambaでファイル名長(パス要素長)がファイルシステム上限を超える時にエラー123となるようだ。 (UNIX系は255バイト上限が多いため。NTFSはUNICODEで255文字まで作れる)"
uchanさんはTwitterを使っています 「ls -lで表示される末尾の+は拡張属性というもので,getfacl &lt;file&gt;コマンドでチェックできるようだ。」 / Twitter
uchanさんはTwitterを使っています 「smb.confの[global]セクションに nt acl support = no を加えたら解決した。 どうやら,Windows側でファイルを保存するとACLが付与されて,それがLinux側では拡張ACLという形でファイルに付与され,グループの実行権として見えてたみたい。」 / Twitter
uchanさんはTwitterを使っています 「さらに検証したら nt acl support = no だけだと不十分で, map archive = no をさらに付ける必要がありそう。」 / Twitter
FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
CIFSD In-Kernel SMB3 File-Sharing Server Lands In Linux-Next - Phoronix
FadisさんはTwitterを使っています 「ネットワーク越しのファイルシステムが難しいやつ、「大抵のソフトウェアはストレージまでの回線が簡単に切れることなんて想定していない」のが原因の7割くらいで、「大抵のソフトウェアはファイルシステムの実装が多様な事なんて想定していない」のが原因の3割くらい、という印象がある」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ 「大抵のソフトウェアはインターネットまでの回線が簡単に切れることなんて想定していない」 近年はこれ…」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs インターネット接続を失うと何も表示出来なくなるありがちなApp…」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ ローカルキャッシュという概念すらない。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sambaは副次ストリーム使えるのだけど微妙にNTFSと互換性なくて(実体を別ファイルに保存)、ストリーム用ハンドルでタイムスタンプ設定しても、元ファイルのそれが変わらない罠。」 / Twitter
FadisさんはTwitterを使っています 「KSMBDがバニラカーネルにマージされたらしい。linux-5.15から使えるようになる。KSMBDはWindowsのファイル共有プロトコルSMB3のサーバ側をLinuxカーネル内に実装したもので、ユーザ空間のSambaを使う方法より性能面で有利とされている https://t.co/0GQG5MA4DS」 / Twitter
KSMBD As An In-Kernel SMB3 File Server Merged For Linux 5.15 - Phoronix
FadisさんはTwitterを使っています 「linux-5.15からバニラカーネル入りしたカーネル空間SMBサーバKSMBDに驚きの速さで深刻な脆弱性が報告された話。パスに含まれる..が受け付けられていてSMBで共有されているディレクトリの外のファイルまで全て公開してしまう。修正ではパスに含まれる..が潰されるようになる https://t.co/nayQkHVAGN」 / Twitter
That Didn't Take Long: KSMBD In-Kernel File Server Already Needs Important Security Fix - Phoronix
FadisさんはTwitterを使っています 「この修正、パスの要素に..が入っていたら問答無用でEINVALするようになってるけど、MS-SMBとMS-CIFSとMS-FSCCを見る限りSMBのパスで..を使う事それ自体は禁止されていないから、\hoge\..\fugaは\fugaと解釈されなければならないんじゃなかろうか…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windows Server IISで、(不正UTF-8エンコードされた)../ を混ぜるパストラバーサル脆弱性は2001年の話だった。 https://t.co/PeuUTvQkSV (この頃から Win32 MultiByteToWideChar API も不正UTF-8エンコードをキチンと弾くように改善された)」 / Twitter
CWE-22
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「爆速?と思ったら、脆弱性報告が速い話だった。 それにしても、パス・トラバーサル脆弱性は何十年も前からの定番ではある。 (昔、UTF-8が厳格でなかった頃、2byte以上で . や / をエンコードして突破、というのもあった。IIS だったかな) https://t.co/HI4wU3CnHh」 / Twitter
IISのフォルダ侵入およびファイル要求解析の脆弱性
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「samba 4.13.5-Debian でストリーム保存path指定すると、ストリーム付きファイルを作成できても、削除できなくなる罠。 (wide links 等を指定しても、"check_reduced_name: Bad access attempt: . is a symlink outside the share path" というエラーログが出る)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Windows側からは「アクセス権限が無い」というエラーなので分かり辛い…最初、意図しないACL設定?とか思ってしまった)」 / Twitter
FadisさんはTwitterを使っています 「Sambaがディレクトリ操作の権限をチェックした後実際にディレクトリを作る前にシンボリックリンクを張り替えると、チェックしたのと違う場所のディレクトリを操作できてしまう脆弱性(CVE-2021-20316)の修正を巡る話 https://t.co/cyZs7ze3OO」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「TOCTOU攻撃」という言い方、初めて知ったり。 (チェックと実行の間隙を突かれる問題) https://t.co/zLkZxP4wUT ファイルシステム系の昔話だと、mkdirがmknodとlinkで実装されてた頃にその間隙を突く話は聞いたことある。」 / Twitter
Time of check to time of use - Wikipedia
FadisさんはTwitterを使っています 「この脆弱性は典型的なTOCTOU攻撃なので、openat2でディレクトリのfdを作り、一連の操作を全てfdを引数に取るシステムコールで行うことで防ぐことができるが、類似の攻撃を全て防ぐにはSambaのファイルシステム抽象化部分(VFS)を全てこの方式に置き換える必要があったらしい」 / Twitter
FadisさんはTwitterを使っています 「通常脆弱性の報告を受けたOSSは修正前に悪用が広がらないように非公開で修正を準備して修正の提供時に公表するが、Sambaのこの脆弱性は必要な変更が多すぎて短期間の非公開ブランチで片付けられそうになかったらしい。公開リポジトリには変更がどんどん入るため、非公開が長引くと辛いことになる」 / Twitter
FadisさんはTwitterを使っています 「そこでSambaでは本当の目的は述べずに「VFSを近代化させようぜ」というパッチを公開で投げて、本当の目的は述べずにもりもり取り込んでいく、という方法で2年がかりで脆弱性を塞いだらしい」 / Twitter

MIT Kerberos V5-1.16
日本Sambaユーザ会 - Microsoft の CIFS 仕様ライセンスで、Samba Team が声明
SMBとは|Server Message Block - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Server Message Block - Wikipedia
Mac のファイル共有で接続する方法 - Apple サポート
クラスター共有ボリューム (CSV) を利用する環境での SMB Multichannel 設定の考慮事項 | Ask CORE
「Samba 4.6」リリース | OSDN Magazine
「Samba 4.10」リリース、PythonバインディングでPython 3をフルサポート | OSDN Magazine
VFSインターフェイスを一新した「Samba 4.15」が公開 | OSDN Magazine
2017年9月4日 Linux 4.13がリリース,SMB 3.0がデフォルトCIFSに:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロソフトが「SMB over QUIC」ファイル共有プロトコル実装中。VPNなしでもインターネット上で安全にファイルサーバへのアクセスを実現へ - Publickey
Windows Server 2022正式版がひっそりとリリース。セキュアコアサーバ搭載、SMB over QUICでVPN不要のファイルアクセスなど - Publickey
山市良のえぬなんとかわーるど: SMB over QUIC

NFS

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NFSv3(v4は良く知らん)では writeは概ね 32KB以下の pwrite(2) 的な操作にバラされるとかは、もっと知られていいかも。 (write が atomic にならない、O_APPENDが上書きになる場合も)」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「NFS怪談はだいたい普通に保証されていない話ばっかりで「ユーザーがlocal fsと同じだと思っていたのである」オチが多すぎてアレ……」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「O_APPEND について言うと、NFSv3だと、そもそも openという操作が無い。 (lookup操作でI/O対象のinode番号をfile-handleとして教えてもらうイメージ。file-handleにはopenのようなモードとかステートとかない。サーバ再起動しても使えるし、別ホストからでも使える(特殊な事してなければ))」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「これがNFSの欠陥に見える人もいるだろうけど、 これはサーバー側をstatelessにすることによって可用性を向上させるための意図的な設計なんだよね(サーバーがリブートしても、クライアントがリトライするだけで動作は正常に継続する)。 「それは仕様です」の一種で、ポジティブな側面もあるっていう。」 / Twitter
fjのYog教祖様さんはTwitterを使っています 「@n_soda NFSv4ではopen/closeを導入したので、statefulでアクセスしたい人はとっととNFSv2/v3を使うの止めてください、と言う… (何故か「NFSv3で…」が止まらないの、どうして??)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama NetBSD的な答は、NFSv4が未実装だから…だったり…>「NFSv3で…」 ^^;」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、商用NFSv3サーバをほぼ一人で作った経験から言えば、NFSv3がステートレスなのにプロトコル以上にUNIXセマンティクスに近い振る舞いをする部分があるのは、実装側で近づける配慮してるからだったりする。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際、nfs.x は普通に公開されていて、linux 0.N時代は nfs.x を rpcgen に食わせたコードをベースに nfsd(unfsd) を作っていた記憶ある。」 / Twitter
齊藤明紀さんはTwitterを使っています 「@n_soda sunのライセンスするnfsのソースコードは4bsdのコードベースなので,SysVベースの会社は苦労したでしょうね。ただ、プロトコルは無償だったような。規格書を見てNFSクローンをつくるのは契約いらない?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(正確には nfs_proto.x だったかな… Sun RPC を普及させるためか、nfsに限らず、各種の.x(rpcgenに食わせてC言語のRPC/XDRスタブを吐くIDL)が公開されてた記憶ある)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「appleのサイトにも nfs_prot.x が公開されていた。 https://t.co/ZgGtM1TFnP」 / Twitter
nfs_prot.x

IP

IPv10

draft-omar-ipv10-06 - Internet Protocol version 10 (IPv10) Specification

IPv6

NAT66

TECHNICAL MANUAL - NAT66/NAT6
情報セキュリティ技術動向調査(2010 年上期):IPA 独立行政法人 情報処理推進機構
NGNを介したIPv6インターネット接続 - トンネル方式入門(後編):ITpro
www.geekpage.jp/blog/data/2009/ipv6ops0904/2.txt
SEIL でNGN IPv6 ネイティブ(IPoE) ひかり電話なし接続をするには : やすひでぶろぐ

Geekなぺーじ

RFC系統図で見るIPv6の変化:Geekなぺーじ
ややこしいIPv6アドレス自動設定の話:Geekなぺーじ
IPv4アドレスを含むIPv6アドレス表記:Geekなぺーじ
日本国内携帯3社、2017年度中にIPv6導入:Geekなぺーじ
RFC 8106によってRFC 6106が廃止に:Geekなぺーじ
IPv6でセキュリティがスカスカになってませんか?:Geekなぺーじ
IPv6基本仕様のRFC 2460が廃止:Geekなぺーじ
IPv6関連RFCの上書き(廃止)まとめ:Geekなぺーじ
IPv6アドレスのテキスト表記 - RFC 4291とRFC 5952:Geekなぺーじ
ネットワークエンジニアではない方々向けIPv6勉強会を開催しました:Geekなぺーじ
ネットワークエンジニアではない方々向けのIPv6入門 // Speaker Deck
ネットワーク技術者ではない方々向けIPv6セミナー2の発表資料:Geekなぺーじ
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
IPv6本を書きながらネットワークエンジニアではない方々向けのIPv6勉強会をやって思った、IPv4とIPv6の大きな違い:Geekなぺーじ
DHCPv6の基本仕様が改定 - RFC 8415:Geekなぺーじ
IPv6アドレスのテキスト表記に名前がついてない:Geekなぺーじ
IPv6アドレスのテキスト表記の解説動画を作りました:Geekなぺーじ
NAT64とDNS64の解説動画を作りました:Geekなぺーじ
動画「IPv6の勘所」を作りました:Geekなぺーじ
IPv6基本仕様概要の解説動画を作りました:Geekなぺーじ
「IPv6はIPsecで暗号化されるので安全」という誤解:Geekなぺーじ
リンクローカルユニキャストIPv6アドレス:Geekなぺーじ
IPv6マルチキャストのスコープとゾーン:Geekなぺーじ
ULA(Unique Local IPv6 Unicast Address):Geekなぺーじ
IPv6とIPv4の違い:Geekなぺーじ
インターネットプロトコルにおけるパケットサイズに関して:Geekなぺーじ
IPv6 IPoEとIPv6 PPPoEの解説動画を作りました:Geekなぺーじ
DS-Liteの仕組み:Geekなぺーじ
IPv6がIPv4よりも速い理由:Geekなぺーじ
IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成:Geekなぺーじ
小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「NTTフレッツでのIPv6 IPoEに関して「IPoE方式」と記述されることがあるけど、「方式」の2文字が非常に大事。NTT NGNでのIPv6 IPoEに関して単に「IPoE」と表現すると徐々に話がおかしくなる。」 / Twitter

@fadis_

Fadisさんのツイート: "RFC8135 浮動小数点数および複素数を含むIPv6アドレス https://t.co/mhbr8EKKwW"
Fadisさんのツイート: "Complex Addressing in IPv6、ネットワークの文脈でComplex Addressingといった場合普通はルータが頭を抱える「複雑なアドレス」の事なわけだけど、Complexには複素数って意味もあるから「複素数なアドレス」について考えてみた、と"
https://tools.ietf.org/rfc/rfc8135.txt
Fadisさんのツイート: "浮動小数点数アドレス、「従来のIPアドレスは整数で表現されていたが移動体通信が増えている中小数点の位置が固定のままで良いのかは議論の余地がある」とか「rootアドレスはクライアントの浮動小数点数演算器で計算することができる」とか言ってて腹筋の危機"
Fadisさんのツイート: "RFC8136 IPv4からIPv6への移行を促すために、IPv4で「悪意ある通信が自分に悪意がある事を通信相手に明示して適切に蹴ってもらう」為のフラグevil bitをIPv6でも使えるようにする話 https://t.co/UTlNhsxSws"
https://tools.ietf.org/rfc/rfc8136.txt
Fadisさんのツイート: "ジャンボグラム: IPv6の拡張ヘッダでIPv6のヘッダに元々含まれている16bitのデータ長で表現できない巨大なパケットを表現する為に用いられる。この拡張によってIPv6は最大4GiBのUDPデータグラムを投げつける事ができる https://t.co/ujb5sGy0c8"
https://tools.ietf.org/rfc/rfc2675.txt
FadisさんはTwitterを使っています 「IPv4のヘッダにあったチェックサムはIPv6では廃止されている。ヘッダにはパケットを中継する機器で書き変わるTTLのカウンタが含まれているため、IPv4チェックサムは中継する機器全てで計算し直す必要があり、そのコストが深刻な問題になっていた為だった」 / Twitter
FadisさんはTwitterを使っています 「そうはいってもヘッダが化けた状態でパケットがネットワークを徘徊すると困るので、IPヘッダチェックサムに相当する機能をTCPやUDPの疑似ヘッダを含むチェックサムに求めることになった。結果、IPv4では任意だったUDPのチェックサムは、初期のIPv6では必須になった」 / Twitter
FadisさんはTwitterを使っています 「この結果「データが化けていても届いたほうが良い」用途でUDPを使っている場合IPv6に載せられないという困った問題が生じた。このためIPv6上のUDPはチェックサムの無効にしても良いと言う変更が後から加えられた」 / Twitter
FadisさんはTwitterを使っています 「後から仕様を変えられてもインターネット上のあらゆる機器が即座に追従できるわけが無いので、IPv6かつチェックサムなしUDPは「運が良ければ届く。試しに飛ばしてみて届いたら使え。」という微妙な位置づけになってしまった」 / Twitter
FadisさんはTwitterを使っています 「IPv6ではRAでPrefixをホストに伝える事が出来る。RAを受け取ったホストは通常インターフェイスにアドレスを設定しrouteを追加する。L2VPNを張っているとRAは遠隔地まですっ飛んでいくため、フィルタを忘れると遠隔地から手元のネットワークに向かうIPv6の通信が突然VPNを通ろうとするようになる」 / Twitter
FadisさんはTwitterを使っています 「この時L2VPNがIPv6で相手を指していると、遠隔地のホストはVPNのパケットをVPNに流そうとして詰む。手元からは突然遠隔地のホストが沈黙したように見える。この場合手元から遠隔地への通信はレスポンスが全て消えるのでできない。他のネットワークを経由してsshし、RAを切ってrouteを直す」 / Twitter
FadisさんはTwitterを使っています 「このトラブルを未然に防ぐにはL2VPNを上げるのと一緒にip6tablesでtapからのRAを蹴っておくのが良い。そもそも手元からRAをtapに向かって投げないルールも足しておいたほうが良いかもしれない」 / Twitter
FadisさんはTwitterを使っています 「IPv6、気を抜くと設定間違えた瞬間にRouter AdvertisementがL2 VPNに乗ってとんでもない場所にグローバルアドレスが生えがち」 / Twitter

@uchujin17

ウチューじん・ささきさんのツイート: "IPv6の拡張ヘッダは固定長フィールドではなく可変長TLVパケットの数珠つなぎになっていて柔軟性が誇られていたけど、RFCが出るたびにその並び順についての文言がどんどん追加され、「MUST rejectのオプションを受け付けた」という理由でFailが出て、そのためだけのチェックを追加して…"
ウチューじん・ささきさんのツイート: "IPv6近隣探索(MACアドレス解決、IPv4で言うとこのARP)も「ARPみたいな継ぎ足しじゃなくIP仕様内に取り込んだ」「ブロードキャストではなくマルチキャストにして効率化した」「タイミングやステート状態が明文化された」ことが誇られていたけれど…"
ウチューじん・ささきさんのツイート: "これまたRFCが改訂されるたび「Queryを発信する前にSolicited Advertiseを受信したらUnsolicitedで発信してはならない」みたいなクソくだらない文言が追加されて、数分に1度発信される(かもしれない)冗長なマルチキャストを1つ減らすためだけのフラグやifが増えて。"
ウチューじん・ささきさんのツイート: "究極はRFC3484「Default Address Selection」、インターフェースに複数のアドレスを付けられるIPv6において発信先・発信元のアドレスを選択するための条件を定義した仕様書だけど、これが「アホかー!アホかアホかアホかアホかアホかーっ!」という考えすぎの産物。"
ウチューじん・ささきさんのツイート: "RFC3484をくっそまじめに実装したらループが3つとifが15個くらい並んだんだっけ。アドレスを選ぶため「だけ」に。IPv6ならアドレス1つで世界中と通信できます、って言ったのはどこのどいつだ?"
ウチューじん・ささきさんのツイート: "RFC3484はRFC6724にアップデートしているらしいけど、もうRFCなんて読む義務もないし読みたくもねぇ。"

Finite-tweet machineさんのツイート: "ルータがRDNSS(RAでのDNSサーバ情報配布)に対応していない中、AndroidはDHCPv6に対応してないので困ったねという話など。へー / IPv6-only at Microsoft | APNIC Blog https://t.co/9fJbzfVtaD"
IPv6-only at Microsoft | APNIC Blog
IPv6 RFC 改版の提案はなぜ議論紛糾したのか? // Speaker Deck
IPv6 の arp -a
今そこにあるIPv6 ─ もう1つのインターネットが普通に使われていることに普通のITエンジニアはどう対応するべきか? - エンジニアHub|Webエンジニアのキャリアを考える!
Windows管理者のためのIPv6入門:第3回 L2アドレスを解決する近隣探索プロトコル (2/2) - @IT
第2の個体識別番号にならないか心配 (#3123556) | スマートフォンのインターネット接続、来年夏ごろにIPv6がデフォルトに? | スラド
近隣探索プロトコル - Wikipedia
Neighbor Discovery Protocol - Wikipedia
T28-1.pdf
IPv6のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 only ネットワーク を作ってみる
Yoshinobu Matsuzakiさんのツイート: "IPv6アドレスの傾向を調べる調査。使われたIPv6アドレスを35億ぐらい集めてエントロピーを調査。サーバは手動設定、ルータはEUI-64、クライアントは匿名アドレスの利用が多そうと。特定スマートフォンで変な実装がありそうとか面白い https://t.co/JW8XbsFYFI"
57-RIPE74-Foremski-EntropyIP.pdf
Kentaro Ebisawaさんのツイート: "SRv6実装、Ciscoが(1部)スポンサーしてるのね。流石。 SOSR2017: IPv6 Segment Routing to the End Host: A Linux Kernel Implementation PDF: https://t.co/AgQVq6lUFQ"
Kentaro Ebisawaさんのツイート: "IETF I-D “SRv6 Network Programming” 実装。Vargant/VirtualBoxで試せるらしい。 https://t.co/9L32qVfWJa"
Kentaro Ebisawaさんのツイート: "SRv6 Linux 実装、Kernel 4.10 に入った "IP Networking Lab (Belgium)" と Kernel Module の "Networking Group (Rome)" の機能比較表を発見。 https://t.co/MaJgelavJ5"
【IETFトピックス2016-17】 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も - INTERNET Watch
IPv6への移行完了は2067年4月か、月0.15%の割合で増加 | マイナビニュース
AndroidのDHCPv6実装の議論状況とRFC7934 (Host Address Availability Recommendations) - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議ASPやってた頃、映像/音声udpパケットが通らないトラブルの度にサイズを小さくして、10数年で概ねどんなトンネルでも大丈夫となったのが1300バイト前後だった記憶。 なので、1280は経験値としても絶妙な値だった気がする。」 / Twitter
Yasuhiro MorishitaさんはTwitterを使っています 「つまり、 ・IPv6の1280は、IPv4の576 = 512 + 64を見て、1024 + 256として提案された。 ・1280にすることで、1500のEthernet MTUの中に、カプセル化やトンネルヘッダー用の十分なスペースを確保できる。 ということですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「インターネットのMTUについてはGoogleがQUIC開発時に調べた値が公開されてますね。1350未満に絞る必要ないという感じ source: https://t.co/WYjvxSOzll https://t.co/OHEjF50U2f」 / Twitter
(PDF) The QUIC Transport Protocol: Design and Internet-Scale Deployment
Kazuho OkuさんはTwitterを使っています 「面白い。ただ僕の理解が正しければipv6はルータでのフラグメンテーションしないので、DNSみたいなパケット境界=メッセージ境界なプロトコルじゃない限り困らないけど(そして困る人がいないから直らないんだと思う)」 / Twitter
古い記事を読んでいるmatsuuさんはTwitterを使っています 「IPv6フラグメンテーションによるパケットドロップについて。日本は赤い=10%以上のドロップ率。まじか。 / “ISP Column - April 2021” https://t.co/kWa54PHRMb」 / Twitter
ISP Column - April 2021
Kazuho OkuさんはTwitterを使っています 「フラグメンテーションが必要になるなら送信者がパケット分割して欠落部を再送するようなプロトコルを使え、というのがipv6の思想だけど、udp over ipv4で巨大データグラムをフラグメント化して投げてたユースケースの互換性確保のため(だけ)にある仕組みなんじゃないのかな知らないけど」 / Twitter

IPv4

IAB、IPv4を前提とした標準化を行わないことを求める声明を発表:Geekなぺーじ
LACNIC、IPv4枯渇の最終フェーズと発表 | マイナビニュース
GOROman@謙虚さんのツイート: "IPアドレス は0は省略できる 127.0.0.1は 127.1 192.168.0.1 は 192.168.1 https://t.co/jSdjF02boo"
ゆたかさん🐱さんのツイート: "# arping -c 1 -D IPアドレス でIPv4アドレスのコンフリクトチェックができます。 競合するアドレスが存在しない場合は、$?がゼロになります。 BusyBoxにも入っているので、組み込みLinuxでも利用できるのでおすすめです。 https://t.co/sR92x6H6pL"
https://tools.ietf.org/rfc/rfc6864.txt
【IETFトピックス2016-17】 IPv4をどのように終わらせるか――IPv6普及拡大の前に片づけなければならない課題 - INTERNET Watch
奇妙なIPv4アドレス表記:Geekなぺーじ
0.0.0.0にはアクセスしないこと - Qiita
127.0.0.1とlocalhostと0.0.0.0の違い - Qiita
IPv4アドレス「0.0.0.0」の意味は? | マイナビニュース
ASCII.jp:「特別なIPアドレス」を正しくわかっているのは誰?
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「inet_aton(3) の謎仕様。実はこの関数はIPv4アドレスをさまざまな形式で受け付けることができ、8進数表記や16進数表記も可能。たとえば (1&lt;&lt;24)+(1&lt;&lt;16)+(1&lt;&lt;8)+1 = 16843009 なので、 $ ping 16843009 とやると 1.1.1.1 にpingされる。 $ ping 0x01010101 も同様。 https://t.co/pulVHb7gSe」 / Twitter
IPv4 addresses are silly, inet_aton(3) doubly so.
0.0.0.0/8のIPアドレスなどを利用可能にする提案仕様 - ASnoKaze blog
IPアドレスの例示で xxx.xxx.xxx.xxx を使うな - Qiita
Takashi KawasakiさんはTwitterを使っています 「言ってることはわかるんだが、読み手にとって必ずしも自明とも言えないところが難しい。」 / Twitter
えるとさんはTwitterを使っています 「@espresso3389 非自明だと感じるのは、みんながそのサブネットを例示用のレンジだと分からないという点ですかね?(その点に関していえば、文章の先頭で「ここでは192.0.2.0/24を例として使用します。」と断りを入れればいい話なのかなと)」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@proelbtn おっしゃる通りなのですが、おっしゃる通りで、おっしゃる通りのお気持ちですが、そうなんですよ :(」 / Twitter

平田豊ひらたゆたか🐬さんのツイート: "pingコマンドとglibcの実装調べてみたけど、getaddrinfo関数が内部でinet_aton関数を呼んでいて、当該関数の仕様として、 a.b.c.d a.b.c a.b a の4形式を受理するようになっていました。 今回のケースは最後の「a」に相当します。 https://t.co/2lovAH99ZG"
APIPA - Wikipedia
lionsoul/ip2region - Git@OSC - OSChina.Net
lionsoul2014/ip2region: 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
Happy Eyeballs Version 2 の仕様 - ASnoKaze blog
IANA — Number Resources
192.168.0.1などのプライベートIPアドレスは途中で作られた:Geekなぺーじ
僕の💩自作OS💩が研究室のネットワークを破壊するわけがない - livaの雑記帳
Happy Eyeballs Version 2 (RFC 8305):Geekなぺーじ
Fadisさんのツイート: "WireGuardはパケットの送信時にパケット長が16の倍数になるようにパディングをしてから暗号化を行う。受信側では復号後パディングを取り除く為に元のパケット長が必要だがWireGuardのヘッダにはその情報は書かれない。論文によると「暗号化するパケットのUDPヘッダに本来の長さが書いてあるから不要」"
Fadisさんのツイート: "IPv4ヘッダとIPv6ヘッダとIPXのデータグラム長はいずれも先頭から2バイト目に2バイトで置かれているからプロトコルを判別しなくてもパケット長は取れる、という知見を得た"
Fadisさんのツイート: "オンラインゲームでUDPを使う一番のモチベーションは「再送制御にコンテンツを把握しているレイヤーが口を出したい」って所なんだ。例えば「Aさんが1歩右に歩いた」という通知が3連続で届かなかった場合、それらを個別に再送するんじゃなくて、「Aさんが3歩右に歩いた」にまとめて再送したい"
Shirouzu Hiroaki(白水啓章)さんのツイート: "未だに、RealTek NIC のUDPチェックサム・オフロードのバグを踏む事例が出るとは。 https://t.co/7tT9MO3ysD"
相手との接続ができているのに送信キューに溜まる - Google グループ
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、このための hack を入れておいたはず(=後ろに64バイトの余分な0x0を付与)だが…と確認してみると、v4.5以降同士のIPDict形式に限り、このhack化パケットは受け取らないコードになっていた。後で直しておこう。… https://t.co/RkcP17o5Ho"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この hack は最後のリトライで発動する形。 (最初から付与していては意味がないので)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDP Checksum Offloadで問題を起こすのはRealTek NIC。 10数年前に見つけた話だが、未だに発症する環境があるのが何とも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDPフラグメントかつ、最終フラグメントのペイロードが15バイト以下(だったか63だったか)の場合のみ、オフロードでのチェックサムが狂うという、確かに見つけにくいバグではある。"
Kazuho OkuさんはTwitterを使っています: 「recvmsg で destination address を取るには IP_PKTINFO もしくは IPV6_RECVPKTINFO を使う、と。linux 以外だとどうやるのかな」 / Twitter

lwIP

lwIP - A Lightweight TCP/IP stack - 概要 [Savannah]
lwIP - Wikipedia, the free encyclopedia
IPv6 - lwIP Wiki
LwIP IPv4/IPv6 stacks - lwIP Wiki
lwIP 1.3.0
JVNVU#98989920: uIP と lwIP の DNS リゾルバにキャッシュポイズニングの脆弱性
lwip.git - Unnamed repository; edit this file 'description' to name the repository.
lwIP - Wikipedia
Raw/TCP - lwIP Wiki - Wikia
BitVisorのlwIPを使ってシリアルポートに書き込まれたデータをTCP/IPで送信する - Qiita

TCP

その他

Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について : 革命の日々 その2
Programming TCP for responsiveness
TCPのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
ns3でTCPの輻輳制御を観察する - Qiita
人生の全てはTCP/IPに学んだ:Geekなぺーじ
相手がいないのに ESTABLISHED になってる TCP ポート - @tmtms のメモ
saminiir's hacker blog
saminiir/level-ip: A hacker's userspace TCP/IP stack
tcprewrite
robertdavidgraham/masscan: TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
Linux kernel TCP 実装にサービス運用妨害 (DoS) の脆弱性(CVE-2018-5390) について解説 - Qiita
Information on RFC 8548 » RFC Editor
Information on RFC 8547 » RFC Editor
堅牢なTCPサーバを作るために - katsubushiの知見から/kamakura.go#5 - Speaker Deck
第1回 TCPの輻輳制御とは何か:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
TCP Slow Startを改善する HyStart++について - ASnoKaze blog
DSAS開発者の部屋:第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました
DSAS開発者の部屋:xv6にネットワーク機能を実装した
WEBサーバのTCPコネクション数に上限はあるのか? - Qiita
TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
ブラウザからTCP, UDPソケットを操作するRaw Sockets API - ASnoKaze blog
TCPとTLSを連携させるTCPLS - ASnoKaze blog
ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog
FPSで重要な通信速度・Ping値・Jitter値・パケットロスを完全解説! | Gaming Nerd

BIG TCP

FadisさんはTwitterを使っています 「LinuxにBIG TCPを実装するパッチの話。今日の高速なネットワークでは1パケット1500バイト前後は個々に処理するには小さすぎてCPUで通信が詰まる原因になるため、LinuxはTCPをハードウェアが処理できるより大きなパケットにして処理し、ハードウェアに流す時に更に分割している https://t.co/qFVRX28Xfr」 / Twitter
FadisさんはTwitterを使っています 「この一時的に用いられる大きなパケットは一応IPパケットの形をしているためIPの制限に縛られる。つまり、長さフィールドが2バイトしかないので最大長が64KiBに制限される。100Gbpsを超えるようなガチなネットワークにおいては64KiBのパケットもCPUがボトルネックになるのに十分な小ささになるらしい」 / Twitter
FadisさんはTwitterを使っています 「IPv6には拡張ヘッダを使って32bitのパケット長を表現するジャンボグラム(RFC 2675)がある。この拡張は実際のハードウェアではあまりサポートをされていないが、カーネル内で一時的に作られる大きなパケットにジャンボグラムを使う事で、最大4GiBのデータを一度に処理できるようになる」 / Twitter
FadisさんはTwitterを使っています 「というわけでカーネル内でパケットを扱う構造体skbにジャンボグラムのサポートを追加したらしい。IPv6の場合にTSO(or GSO)(パケットの分割)とGRO(パケットの結合)がジャンボグラムを使うようにする事で、カーネルのネットワークスタックがよりでかいパケットを1単位として処理できるようになる」 / Twitter
FadisさんはTwitterを使っています 「ベンチマークでは100GbEのNICを使って185KBのパケットを使って顕著に性能が向上する事を確認したらしい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば tcpdump が GRO後の64KBパケットしかキャプチャできなくて困った記憶。 (ethtool -K で GRO自体を無効化するしかないっぽい) https://t.co/7OcTYw9IOW」 / Twitter
tcpdump: Re: why I'm capturing packets larger than MTU size

TCP Pacing

パケットペーシング

HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
世界最速通信で考えるインターネットの将来 | 日経 xTECH(クロステック)
OCNモバイルONEが始める「httpsのページング」とは何か
PowerPoint Presentation
【予告】9/25より利用混雑時における通信速度改善に向け、新たな取り組みを始めます。 : LINE MOBILE 公式ブログ
通信の最適化によるお客さま影響について(ペーシング) | スタッフブログ | マイネ王
CiNii 論文 -  パケットペーシングによる全対全通信の最適化とシミュレーション評価
20120306-IPSJ74-PktPacing.pdf
HPCS2011Shibamura.pdf
【LINEモバイル】利用混雑時における通信速度改善に向け、新たな取組を実施 | LINE Corporation | ニュース

Shirouzu Hiroaki(白水啓章)さんのツイート: "linuxの一部のバージョンでは、tcp pacingがデフォルトで有効と。ちなみに Windows/winsockには無さそう。 https://t.co/k3LYxmE5jt"
Is TCP PACING enabled by default on linux? - Unix & Linux Stack Exchange
TCP pacing - Wikipedia
paper.dvi
FQ-pacing-results.pptx
ieeexplore.ieee.org
TCP Pacing [LWN.net]
RT2001-066.doc
ns0601-takano.pdf

Multipath TCP

log, アクセス制限

Kazuho OkuさんはTwitterを使っています 「HTTP/3の場合「IPアドレスでアクセス制限したい場合、接続時のIPアドレスでやるのか、HTTPリクエスト受信時のIPアドレスでやるのか」みたいな形而上の問題があったり」 / Twitter
ゆきさんはTwitterを使っています 「Multipath TCPで接続きた場合って、サーバログってどうしてるんだっけ。 サーバミドルウェア、複数IP各仕組みになってなる。。。?」 / Twitter
Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki 最初のIPだけですね。。少なくとも昔の実装だと」 / Twitter
ゆきさんはTwitterを使っています 「@nunnun ありがとうございます。ふむー、それでいいんだっけというモヤモヤがある。記録してない方のIPでログ照会要求きたら困りそう」 / Twitter
Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki そうなんですよね。 そもそも従来のセッションログの仕組だとIPがA-&gt;B-&gt;Cって変わるのを記録することはできないのでフローログとか別のなにかを準備する必要がありますね。。。」 / Twitter
Yoshifumi NishidaさんはTwitterを使っています 「@nunnun @flano_yuki 設計の初期の頃、最初のコネクションはセッション全体の終了まで保持しなければならない、というルールを作れば、最初のコネクションを見ることで少なくともそのセッションがアクティブかどうかが判別できるという議論があったんですが、これをやると使い勝手が悪くなるんで結局採用しなかったです。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「データの1バイトだけをとってみても、再送時にIPアドレスがかわるとかありうるから、リクエスト単位で特定のIPアドレスに紐づくなんて、実際には幻想だし、接続時で十分という理解」 / Twitter

本の虫: Multipath TCPについて
本の虫: MultiPath TCPのLinuxカーネル実装
Kentaro Ebisawaさんのツイート: "iOS11でMultiPath TCP(MPTCP)が本格サポートされるとのこと。WiFiと4G/5Gの共有・切り替えなどが本格化した時に通信キャリアとその中のネットワーク機材に必要とされる(必要とされない)機能ってなんだろう。 https://t.co/Qk4uYjrNt2"
Michio Hondaさんのツイート: "@ebiken @n_kane この辺にmiddleboxの具体的な挙動に対してMPTCPがどう設計されているか書いてあります!https://t.co/xeKPpsGyol"
Kentaro Ebisawaさんのツイート: "両端のnodeだけで通信が完結することは無く、常にミドルBOXがある前提で考えねばならぬ。逆に言うと、MPTCPが最も効果的なモバイル環境のVNFやスイッチ・ルーター等ミドルBOXは、TCP拡張がある前提で設計&実装する必要がある。 https://t.co/bhFbq5Pl4C"
Kentaro Ebisawaさんのツイート: "MPTCPをペイロード又はTCP Optionに載せるか。ACKの受け取り方。シーケンス番号はSub Flow単位かTCP Sessionの番号を共有すべき... 今時(5年前だけど)のミドルBOX実装を考慮した考察があって楽しい。 https://t.co/bhFbq5Pl4C"
nsdi12-final125.pdf
iOS 11でMultiPath TCPを使う - ASnoKaze blog
RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
RFC 6181 - Threat Analysis for TCP Extensions for Multi-path Operation with Multiple Addresses
Multipath TCP(MPTCP) – ビットログ
Multipath TCP - Wikipedia
まさみさんは語りたいさんのツイート: "mptcp、生きていた!よかった・・・。… "
Hajime Tazakiさんのツイート: "Linux ではなんとか生き残ってる感じですね。。… "
ゆきさんのツイート: "TCP Extensions for Multipath Operation with Multiple Addresses https://t.co/26oHTNrSkK マルチパスTCPのv1がLast Call中だけど、v0 (RFC6824)と互換性ないんだなー。デプロイが進むと良いなー。"
draft-ietf-mptcp-rfc6824bis-13 - TCP Extensions for Multipath Operation with Multiple Addresses
JPNIC News & Views vol.1717【臨時号】第105回IETF報告 [第4弾] トランスポートエリア関連報告 - JPNIC
2020年8月21日 Red Hat,マルチパスTCPをRHEL 8.3のテックプレビューとして実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「RedHatがLinux 5.6に入ったMPTCPをRHEL8にバックポートしている。MPTCP(RFC6824)は1つのsocketのopenに対して複数の経路でTCPのコネクションを作り、生きているコネクション全てで通信する事で、帯域の向上、冗長化、WiFiとモバイル通信のスムーズな切り替え等を実現する https://t.co/ONMtfU69ou」 / Twitter
Red Hat Bringing Multipath TCP To RHEL 8.3 As A Tech Preview - Phoronix
FadisさんはTwitterを使っています 「MPTCP、最初の3way handshakeで以降コネクションを追加するために使う鍵をそのまま流してるから、経路上に居る悪意ある第三者は勝手にコネクションを追加できるように見えるんだけど、まぁこれが見えるところに居るホストはそもそも従来のTCPでも勝手にパケットを挿入できるじゃろ?って事なのかな」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@fadis_ それはアプリケーション層でやれということでは。」 / Twitter
FadisさんはTwitterを使っています 「diffie-hellmanくらいすればいいのに」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fadis_ ふつうのTCPでもシーケンス番号がわかればコネクション乗っ取りできるわけで。 そういうのは上の層でやれってことなんでしょうね。」 / Twitter
Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー - GIGAZINE

TCP Fast Open

Twitter

@rockridge07

Rockridgeさんのツイート: "Microsoft Edgeの開発版がTCP Fast Openをサポート。既に接続を確立したことがあるIPアドレスのホストに対し3 Way Handshakeを簡略化できる。デフォルト無効。参照:… https://t.co/CfGCdbLpNA"
Rockridgeさんのツイート: "Fx55:TCP Fast Openをサポート。 / “1188435 - Support TCP fastopen” https://t.co/46NKFeE3i1"
Rockridgeさんのツイート: "Fx57:HTTPS接続の場合を対象に、TCP Fast Openがデフォルト有効化。 / “show_bug.cgi?id=1394818” https://t.co/ZnkWMjJRPv"
Rockridgeさんのツイート: "Fx59:Windows版でTCP Fast Open(TFO)が使える環境をWindows 10 Fall Creators Update以降に限定した。TFOが安定して動作するよう、もともとWindows 10限定だったのを、… https://t.co/hHplpuVnGg"
Rockridgeさんのツイート: "Firefox 59/60のリリース版ではTCP Fast Open(TFO)が初期設定で無効化されている。 / “1431738 - Disable TFO on release for now” https://t.co/eg7vGQq9sF"
Rockridgeさんのツイート: "Fx65:NightlyチャンネルでもTCP Fast Open(TFO)が無効化。エラー率が高いらしい。 / “1503573 - Disable TFO” https://t.co/EJg6gwWg3F"

@fadis_

Fadisさんのツイート: "Googleさんの、HTTPで3wayハンドシェイクしてたら時間がかかりすぎるからTCPを拡張して3wayハンドシェイクを省略できるようにしたTCP fast openを実際に運用してみたら、そんな拡張知らないファイアウォールや侵入検知がパケットを蹴り始めたから俺はUDPにHTTPを乗せる事にしたぜ、って流れ実に激しい"
Fadisさんのツイート: "普通すでに広く普及しているTCPを置き換えるぞ!なんて言ってもそうそう実現するものではないんだけど、GoogleのサーバとChromeが対応するとWebのトラフィックのそれなりの割合が新しいプロトコルで通信するようになるの、Googleつよい"
Fadisさんのツイート: "で、そんなGoogleのQUICさん元に標準化されたQUICを作る作業がIETFで進んでいる、と https://t.co/IFv33tf1ky"
quicwg/base-drafts: Internet-Drafts that make up the base QUIC specification
Fadisさんのツイート: "QUICではTCPヘッダにあった殆どの情報は暗号化されたペイロードの中に突っ込まれていて、鍵を持っていない経路上のホストが読めるのはUDPヘッダとどの鍵で復号できるかを指事するコネクションIDと、バラバラに届いたパケットをどの順で復号すれば良いかを表すパケットナンバーだけ、と"
Fadisさんのツイート: "ルータはUDPの通信がいつ終わったのか知ることができない為、NAPTが通信の途中でポートの割り当てを変える可能性があるが、QUICは何処から飛んできたパケットでも正しい鍵で復号できる限り通信が続いているものとして処理される。副作用的に通信環境がころころ変わるモバイルデバイスも幸せになる、と"

@kazuho

Kazuho OkuさんはTwitterを使っています: "tcp fastopen接続確立後にパケット通さなくなるとか、片方向だけ通すやつとかあるから、クライアント側でフォールバック処理実装したほうがいいとか。そういうネットワークは0.1%以下らしいけど #ietf94j"
Kazuho Okuさんのツイート: "最新のWindows Insider PreviewではEdge(HTTPS)でTFOデフォルトオンっていいな。TFOの時代が来そう"
Kazuho Okuさんのツイート: "Windows 10 Anniversary Update で TCP RACK がデフォルトなのか! IW10にもなって、EdgeにTFOを試すオプションがついたとも"

@jovi0608

Shigeki Ohtsuさんのツイート: "AppleのTCP Fast Open導入苦労話。ミドルボックやIDSが原因で80%ぐらいしかTFOが通らない。IDSがTFOハンドシェイク完了後にブロックするのは泣ける。 / “TFO.key” https://t.co/fdDyDs06H9"
Shigeki Ohtsuさんのツイート: "ミドルボックスが知らないTCPオプションを削除するのは予想できるけど、SYN/ackのシーケンス番号までチェックしていてTFO Cookieが通るのに戻りでTFOがブロックされるのは辛いなぁ。"
Shigeki Ohtsuさんのツイート: "おぉ! MicrosoftがTCP Fast Open/TLS False Start/TLS1.3のサポートを表明。TCP FOは既にEdge Previewに実装されているのか。 / “Building a faster a…” https://t.co/yLWx3f3Pue"
Shigeki Ohtsuさんのツイート: "皮肉にも今日のアップデートでMS EdgeのTFOがdefault無効に変更されちゃいました。https://t.co/DXt5ymbAxg / “TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaz…” https://t.co/Rq4wJJgmBS"
May 9, 2017—KB4016871 (OS Build 15063.296 and 15063.297) - Windows Help

ゆきさんのツイート: "[chromium] Remove TCP FastOpen support. https://t.co/5hLiI60gdH"
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC7413で規定されている TCP Fast Open は、まだ使うには時期尚早。Linuxカーネルではデフォルトで禁止されているし、特定の条件で相手ホストを「ブラックホール指定」するが、その条件がきちんと文書化されていない。 https://t.co/JKuBkcxgim」 / Twitter
TCP Fast Open? Not so fast! | APNIC Blog

TCP Fast Open - Wikipedia, the free encyclopedia
RFC 7413 - TCP Fast Open
TCP Fast Open を試してみる - nigakyのブログ
TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 – | HTML5Experts.jp
TCP Fast Open ‐ 通信用語の基礎知識
TCP FAST OPENとは? | REDBOX Labo
マイクロソフト、より高速な「TCP Fast Open」など採用へ、Windows 10の大型アップデートとWindows Server 2016で - Publickey
MSのネットワーク高速化に向けた取り組み--「Windows 10」と「Windows Server 2016」で実現へ - (page 2) - ZDNet Japan
TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze’s diary
Archive
Enhanced Performance and Privacy for TLS over TCP Fast Open
2020年2月17日 IPFireがDNSリゾルバをエンハンス,TCP Fast OpenとTLS 1.3をサポート:Linux Daily Topics|gihyo.jp … 技術評論社

CUBIC

"CUBIC: A new TCP-friendly high-speed TCP variant"を読んだ - ゆううきブログ
SACSIS.TCP
03gun_04hen_02.pdf
なまえだよさんのツイート: "iOS/AndroidのTCP輻輳制御アルゴリズムはロスベースのCUBICです。時間経過でウィンドウサイズが変動します。ロス率が上がったタイミングに巻き込まれてUDPのDNSパケットも捨てられると悲惨な感じです。 https://t.co/3oqt2RLtJA"
Shigeki Ohtsuさんのツイート: "TCP Cubic が RFC8312 に。 / “RFC 8312 CUBIC for Fast Long-Distance Networks” https://t.co/l9IflDyZwR"
Information on RFC 8312 » RFC Editor
第3回 CUBIC-TCPの登場:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
Kazuho OkuさんはTwitterを使っています 「あーありそう "a HomePlug AV network built around XAVB2001 (or similar) adapters can buffer thousands of frames and potentially exhibit multi-second queuing delays when applications use common loss-based TCP algorithms such as NewReno and CUBIC." https://t.co/aADJJ30nKS」 / Twitter
Interactions between TCP and Ethernet flow control over Netgear XAVB2001 HomePlug AV links - CAIA-TR-130121A.pdf

BBR

BBR

Kazuho Okuさんのツイート: "BBTは他の輻輳制御アルゴリズムと公平に動作することを期待されてるので、この結果は、測定手法に問題がある(ボトルネックがモバイルキャリア内にない等)か、キャリアのシェイピングの動作による挙動か、BBRのバグ / https://t.co/LjcWzAk2DJ"
モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
Kazuho Okuさんのツイート: "か、このVPNソフトが公平性無視してる"
Kazuho Okuさんのツイート: "追試するなら、同一サーバからファイルダウンロードをBBRとCubicでやってみるといいと思いました"
Kazuho Okuさんのツイート: "同一パケロスパターンで10倍速!ってのを一人がやりだすと、皆がそれを真似することになって、結果パケロスが増えてネットワークの利用効率が下がるから、輻輳制御アルゴリズム間の公平性重要という理解"
(´,,•ω•,,`)JustinZhuさんのツイート: "確かにBBRによって効果があると思いますが、でもSSRによるパケットパタンの変化が本当の原因かなと思います。正しいといえば、SSRはVPNではない(安全性はそこまで保証できないから)、パケットパタンの変化と内容を難読化が着目された特化したトンネルです。公平性もこれによって崩れたかもしれません… https://t.co/qd6Xr8HXXR"
Kazuho Okuさんのツイート: "例えば、vpnトンネルを10本のtcpに見せかけて構築し、それぞれのtcp接続において輻輳制御をする、というのはtcpに偽装するvpnとしては妥当な戦略だと思うけど(単一のtcp接続を使う場合は二重の輻輳制御が問題になる)、そのvpn上で一本のtcpをベンチマークすると、生のtcpに比べて10倍速になるよね"
Kazuho Okuさんのツイート: "いや、このケースだとならないか"
Kazuho Okuさんのツイート: "いや、vpn内のtcpの処理次第か"
SODA Noriyukiさんのツイート: "空いてる時間帯ならともかく、元記事は「昼時の通信が集中する時間帯で五倍以上の通信速度が出た」って書いてるわけで、kazuhoさんが指摘してる通り、まず間違いなくデフォルトのTCPのパラメータに対して公平性を欠いてるよね。こういうものをみんなが使いだしたら破滅が待ってる。"
#セコンさんのツイート: "こんな環境で再び測定してみたのですが、やはりBBR有効なSSRのみ速度が出るようで、SSRのソフトウェアがTCP公平性を崩しているため、この速度になっているのでしょうか。知識不足で判断できず…。 https://t.co/GV2VN4pvtN… "
TCP BBR + ShadowsocksR + fast.com の速度を macOS + テザリング環境で測定 - Qiita
#セコンさんのツイート: "kazuhoさんの指摘の通り、BBRアルゴリズムが高速化に寄与しているわけでは無く、BBR有効なSSRサーバへ接続していると、キャリアのトラフィックシェイピングの挙動が変わり、キャリアの意図と反して割り当てが増えTCP公平性に反した行為をしてしまっているように思えてきました。… https://t.co/UpXZRgSmoR"
Yusuke MURAMATSUさんのツイート: "モバイルキャリアなら TCP Ack Clocking に類することやってるだろうから色々ありそう"
Yoshifumi Nishidaさんのツイート: "BBRはlossにreactしないアルゴリズムなのでlossにreactするアルゴリズムと大きな差がでることも一応起こりえるという気はします。10倍以上というのはちょっと大き過ぎる気がするので、どこかに問題がありそうですが、条件さえ揃えば有り得なくはないという気もします。… https://t.co/7kzuMb6tuM"

Kazuho Okuさんのツイート: "Cubicに比べてLTE回線での1MBダウンロードが44%高速化ってすごいな / “BBR Congestion Control: An Update” https://t.co/cKnkPo8sTI"
Kazuho Okuさんのツイート: "従来の輻輳制御だとBDP超えてデータツッコミがちなので応答性が悪くなるってのは(僕が)忘れがちな論点だなぁ。そして、BBRだとつっこむデータ量がBDPの2倍まで減少すると。無線のモデル化をもっと進めればさらに減らせそうと。"
Amazon Linux 2017.03で新しいTCP輻輳制御アルゴリズムBBRを試してみた | Developers.IO
Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 - Publickey
Shigeki Ohtsuさんのツイート: "BBRによるYouTubeのスループットの改善幅が日本だけ突出して良くなってる。日本ではモバイル接続が主流でパケットロスの影響が強く輻輳制御改善の恩恵がそれだけ大きいということか。 / “Google Cloud Platfor…” https://t.co/yQLN8Ljfzg"
draft-cardwell-iccrg-bbr-congestion-control-00 - BBR Congestion Control
GoogleのTCP BBRでTCPを高速化しProxyもその恩恵にあずかる - Qiita
Ryousei Takanoさんのツイート: "いろいろ懐かしい。TCP CUBICで決まりかなと思ったのですが、最近はGoogleがBBRってのを提案したりと局所的には盛り上がってそうです。… "
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「2016年にGoogleが提案した輻輳制御BBRは、delay-basedである点がそれまでLinuxで標準的に使われていたCUBICと大きく異なる。CUBICのようなloss-basedの輻輳制御がパケットロスに気付いてからウィンドウを狭めるのに対し、delay-basedはRTT等を観察してその変化に基づいてウィンドウを狭める」 / Twitter
FadisさんはTwitterを使っています 「ナウいネットワーク機器は大きなバッファを持っている為、入口より出口の方が細い箇所で大量のパケットが来ると長い待ち行列が出来る。待ち行列が伸びているとRTTが長くなるが、loss-basedの輻輳制御はパケットロスが起きたら起きない程度に調整するという動きをするので常に長い列が維持される」 / Twitter
FadisさんはTwitterを使っています 「対してBBRは経路に単位時間に流れたデータの量とRTTを観察し、パケットを流す頻度を上げても流速が変わらずRTTが増え始める点をその経路に最もスムーズにデータを流せる頻度と見做して、その頻度を維持しようとする。この結果理想的には待ち行列がほぼ空の状態が維持され、RTTを短く保つ事ができる」 / Twitter
FadisさんはTwitterを使っています 「BBR以前からdelay-basedは考えられていたが、loss-basedがとりあえずパケットロスを起こそうとするのに対しdelay-basedがパケットロスを未然に防ごうとする為、BBR以前のdelay-basedはloss-basedが混ざるとどんどんウィンドウを狭め通信できなくなる問題がありインターネットには使い辛かったらしい」 / Twitter

輻輳制御手法

Kazuho OkuさんはTwitterを使っています 「インターネット輻輳制御の基本アルゴリズムですね」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「相手が自分より金持ちな場合は1円渡し、そうでない場合は1.2円渡すという微修正すると完全に安定することが判明。これはノーベル経済学賞級の発見だ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「AIMD制御は正確に言うと、毎回、持ち金のうち一定割合を差し出し、それを皆で分配する。分配ルールが「現在の持分比例」よりも公平なら、いずれ持分は均等になる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「インターネットのパケロスはランダムに発生するのではなく、複数のパケロスがまとまって観測される、という話。これ伝統的な輻輳制御手法の根本にある考え方だし試験に出ますよ / https://t.co/CtHe5SqQBH」 / Twitter
Parsing QUIC logs and assessing packet losses | Christian Huitema
Kazuho OkuさんはTwitterを使っています 「だからネットワークシミュレータで、パケットロスn%、みたいな設定をしても、現実の環境のシミュレーションにはならない(ことが多い)」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho それなら1/2の確率で捨てるかどうかを確定、捨てるの場合連続ランダム個パケットを捨てて、指定したパケロスn%を超えた場合しばらく捨てないって言うシミュレーションがもっと現実と近いかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 実際のキューの挙動をシミュレートした方が良いのでns3とかはそうしてますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 パケロスは確率事象じゃなくて、キューオーバフローの結果なので」 / Twitter
kazさんはTwitterを使っています 「@kazuho @zlm2012 横レス失礼。 TCP-BBRの論文もそんなこと書いてあった気がしますね。」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho でもルーターに「賢い」こと(同じ IP-IP:port のパケットをまとめて処理とか?)をやってエンドユーザーがセルラーのNATとかの後ろにいる時、エンドユーザーから見ると確率事象になる可能性もそこそこありそうな気がしますね」 / Twitter
FadisさんはTwitterを使っています 「TCPの再送制御と輻輳制御はslow startを除いて受け側がパケットロスに気付いてから何とかする物なので、受け側が輻輳に気付いた時には既にスイッチで沢山のパケットが溢れている。そこから再送するのでパケットが揃うまでにはかなりの時間がかかり、レイテンシを気にする用途では使い辛い」 / Twitter
FadisさんはTwitterを使っています 「なのでIPの拡張には輻輳した機器から即座に送信側にその事を通知するECNが、Ethernetの拡張には輻輳が起きそうな時に特定の送信側に対して「少し黙れ」を要求するPFCが用意されていて、送信側がこれらを扱える事が明らかなネットワークでは、これらを使ってパケットロスを未然に防ぐという事が行われる」 / Twitter
FadisさんはTwitterを使っています 「イマドキのスマートなNICはこうした制御をハードウェアで行えるようになっていて、そうした機器で固められた輻輳によるパケットロスが起こらないネットワークの事はLossless Networkと呼ばれている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のTCP輻輳制御は、loss-based とdelay-based と hybrid とあるので、常にロスに気づいてから…と一括りにするのは正確でないかも。 https://t.co/OYkPiTMcco」 / Twitter
第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「特に、広帯域+高遅延だと、遅延変化で細かく制御しないと帯域を使い切れないのだよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(どれも「ロスを発生させたら負け」というのは共通かな?)」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「5Gみたいな広帯域モバイル回線がつらい所。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そういえば無線の場合、優先のように隘路の流量に比例して遅延が徐々に増える挙動とは違う印象ありますね…突然、ランダムに巨大なジッタ発生が多めというか。 あれは流量というより電波品質の問題なのですかね。」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「@shirouzu MAC層にリトライの仕組みが入っていて、ランダムにバックオフタイムが入るのと、リトライするときにレートを下げてリトライとかの挙動もあるので、細かく見ると遅延もレートもめまぐるしく変化していると思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 あぁ、なるほど。 本来のイエローケーブル時代のイーサネット(CSMA/CD)っぽい挙動ですね(笑)」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「@shirouzu 5Gとかならタイムスロットの割り当てがあるのですが、WiFiはまさにそれですね。運が悪いと延々とサイコロで負けるという。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「輻輳制御はIPパケットの送信量・タイミングであったり、IPパケットを落としたりマーキングする技術なのでトランスポート非依存(TCP, QUIC関係ない)けど、TCPだと中継装置が終端していたようなケースがQUICだと常にエンドツーエンドになるってのが実務上は差を産みかねないところ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なるほど、CWNDをAIMDで交換するロスベース輻輳制御と異なり、BBRの公平性はボトルネックバンド幅(BtlBw)を交換することで公平性を確保してるのか。各接続は、定期的にキューを作り、そのキューをBtlBw*0.75のレートで送信して消す。この消す作業がmultiplicative decrease...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「で、委譲されたBltBw*0.25分のバンド幅は「委譲した以外の」各接続に、それぞれのバンド幅に応じて配分される、と。これを繰り返すと、使用バンド幅が大きい接続ほど委譲量が増えるので均等状態にconvergeする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「※なぜ「配分」かというと、BtlBwは直近10RT内の観測最大値なため。委譲した接続が観測するBtlBwのほうが、以上された接続のそれよりも先に小さくなり、結果、バンド幅が再配分されたことになる、と」 / Twitter
Kazuho OkuさんはTwitterを使っています 「よしBBR完全に理解した」 / Twitter

AQM・L4S

Kazuho OkuさんはTwitterを使っています 「TCP/IP、接続ステート管理まわりは分かるし(あるいは想像つくし)、輻輳制御もまあ分かるんだけど(ヒューリスティックなところ以外)、現代的な再送制御まわりがどうなってるのか全くわからん。いろいろあるのは知ってるし、個々の要素の説明は読んだり聞いたりしてるけど身になってない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あとまあ linux カーネルの TCP/IP コードが良く分からなくて苦手意識あるというか。僕が書いてる QUIC 実装は読みやすいのに!!!」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho パケット損失で性能が低下するのがTCPなので、TCP向けの応用である限り、バッファの存在は常に善と考えていいんじゃないでしょうか。 遅延を一定以内にすることが優先でパケット損失も厭わない応用ならバッファの存在が邪魔になることもあるでしょうが、そういうのはそもそもTCP向けではないですし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho バッファを溢れてない場合、ackの返るタイミングも遅れてそれでペース調整できるので問題ないという認識です。 バッファが大きくなると遅延は当然増えますが、それを嫌うならTCPではなく、レイテンシ優先でパケット損失を許すプロトコルを使うべきかと。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap プロトコルを変えたところで、競合するトラフィックがCubicに代表されるロスベースの輻輳制御を使っていると、中継機器のバッファサイズに比例してレイテンシが大きくなってしまう、というのが問題で、だからこそAQMだったりL4Sだったりやってるのでは?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap 動画や音声でしかもリアルタイム性を要求する応用では、パケット損失があっても品質が低下するだけで通信自体は継続できるプロトコルを使い、ルータもそういうプロトコルに割くバッファ量は制限する代わりにレイテンシは保証する方向で動作するのが理想だと思ってます。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap AQMもL4Sも全然知らないんですが、そういう方向の技術なんでしょうか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap AQMはバッファがいっぱいになる前にバッファが空にならない程度を狙ってパケットを落とす手法です。CoDelとか。L4Sは輻輳制御アルゴリズムによって異なるキューを通るようにすることで、ロスベースのやつと新世代のやつを共存させる技術だと思います(たぶん)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap ありがとうございます。 AQMはrandom early dropの現代版みたいな認識でいいのかな… 損失を許さないけどレイテンシ制約は緩いTCPみたいなやつと、レイテンシ重視の奴でキューを分けた方がいいのは間違いないですね…」 / Twitter

スライド

YAMAMOTO MasayaさんはTwitterを使っています 「3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCPで通信するアプリケーションを動かすという内容で300ページくらいのスライドです。これがあれば一人で自作できますよ! #KLabExpertCamp https://t.co/4sUTh2MAk6」 / Twitter
KLab Expert Camp 3 - Google ドライブ
YAMAMOTO MasayaさんはTwitterを使っています 「スライドで解説しているコードのリポジトリはこちらです。スターを貰えると承認欲求が満たされてやる気が爆上がりするのでどうぞよろしくお願いします。 https://t.co/RpbPm0w0D0」 / Twitter
pandax381/microps: An implementation of a small TCP/IP protocol stack for learning.

Wikipedia

TCP congestion control - Wikipedia
二人の将軍問題 - Wikipedia
Two Generals' Problem - Wikipedia

Twitter

Kazuho Okuさんのツイート: "ルータがTCP ACKにバンド幅情報等を載せる仕組みの提案 / “Throughput Guidance” https://t.co/ojqyCdaxHB"
Kazuho Okuさんのツイート: "「64bitのシーケンスナンバーが10年後には求められるようになるだろう。TCP/IPスタックが対応するにも、そのくらいの期間がかかるだろう」"
Kazuho Okuさんのツイート: "tcpm で getsockopt(TCP_INFO) 標準化の機運がにわかに盛り上がってきた!!!!"
Kazuho Okuさんのツイート: "古いネタにマジレスだけどパケロスがゼロなら距離関係ないし、パケロスがあってもCubicとか最近の手法なら距離関係なかった気がする > 「RTTである「R」が大きくなればなるほどTCPのデータ転送性能は低下する」 / “Geekな…” https://t.co/h7xFnahBIL"
Kazuho Okuさんのツイート: "RFC 8311でECT(1)を実験用に空けたわけだけど、具体的にどういう風に使うつもりなんだろう"
RFC 8311 - Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
ぬるぽへさんのツイート: "TCPのEnd-toEndのRTTが縮小できるのでTCPプロキシがある場合が速いことがある, TCPのLong Fat Pipe問題 #tcfm"
ぬるぽへさんのツイート: "TCP splittingとかいう概念を初めて知った、勉強になります #tcfm"
matsuuさんのツイート: "プロトコルにもよるけどアクティブクローズをするのは大抵受信側で、TIME_WAITで残るのも受信側だからほとんど問題にならないとの認識(HTTP-Keepaliveはそんなことないか)。間違ってるなら誰か教えて欲しい。 / “n…” https://t.co/T2LFEFSmeJ"
net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
Kentaro Ebisawaさんのツイート: "F-Stack: DPDK使うとNetwork Stack自作する必要があるのを、FreeBSD Network Stack を Userspace にポートする事で解決したのね。Tencent Cloud やりますな~ https://t.co/XPyI4avazp"
F-Stack/f-stack: F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
Fadisさんのツイート: "RFC1122のTCPに関する要件の所に「データがくっついているRSTを許容すべきである。フォーマットについて標準化はまだなされていないが、RSTのデータにRSTした理由がASCIIテキストで含まれる可能性がある」って書かれててRSTが溢れて不思議な踊りを踊る実装が存在する可能性にワクワクせざるを得ない"
Kazuho Okuさんのツイート: "RFC793bis(TCPのRFCのアップデート)、100ページ超えてるのやばい https://t.co/yJtL3nhg3s"
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Kazuho Okuさんのツイート: "!!!!!… "
Hideki Sekineさんのツイート: "RFC793の内容を含んでいること、RFC793の時点で85ページあること、を考えるとむしろコンパクトな気もしますね。… "
Kazuho Okuさんのツイート: "たぶん僕の発表に絡んだ話だと思うので。ソースは https://t.co/as5VM63uWb です。そして、クライアントがハンドオーバー中とかでackが返って来ないときにどうやるかという話なので、ミドルボックスに何かのシグナルを出してもらう必要があります… https://t.co/KSkUPf7aXe"
TCP Optimization: Opportunities, KPIs, and Considerations
女子会さんのツイート: "ネットワーク事業者側がTCPをバッファリングして、パケットの番号を整列することでパケットの再送要求を減らして、5%程度帯域を減らせた事例があるという話があったけど、それがQUICの導入によりクライアント側でやれるようになれば効果が大きそうな気がしている。クライアント側の実装依存だけど。"
Kazuho Okuさんのツイート: "あーソースは他にも mobile tcp optimization とかでググれば色々でてきます"
Fadisさんのツイート: "TCPヘッダが20バイトもあるのに対し、IPは最小で8バイト毎にフラグメント化することが可能で、結果TCPのヘッダは途中で分断して送信することができて、雑にフィルタリングを行なっているファイアウォールがこうしたパケットの先頭だけを見て誤ったフィルタリングを行う事が90年代に指摘された"
Fadisさんのツイート: "TCP、再送が必要になると、その情報が既に無価値になっていたとしても再送するまでその後ろの通信内容を読ませてくれないから、ミリ秒から秒単位で更新される情報を同期するようなタスクにおいてはあまり幸せになれない。問題はTCPでは辛いとなるといきなりUDPに放り出される点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Web会議ASPを開発していた頃、セッション概念あり、再送&順序制御なし(できればFECあり)、パケット(データグラム)指向なプロトコルが欲しかった記憶。 そして、UDPでこれらを満たすレイヤを作ったけれど、これって皆が通る道なんだろうな(笑)… https://t.co/N6fdHptaQL"
鹿さんのツイート: "TCPでフロー制御して欲しいけど再送遅延は抑えたい時のために TCP Thin Stream があると思うのだけどそれではダメなのかな。再送回数抑えれば200ms x 3回とかで諦めてくれるので捗る。… "
Fadisさんのツイート: "TCPが最初に規格化されたRFC793(1981年)当時のRFCには今日ではおなじみのMUSTとかSHOULD NOTとかいったキーワードがまだなくて、RFC1122(1989年)でRFC793に書かれている仕様が必須なのか推奨なのかが追記されてるの規格としてはアレだけど面白い"
Fadisさんのツイート: "TCP、互換性のある通信をするために必要なパラメータの範囲に関するRFCが結構2010年代に入ってから作られてて、お前今までどうやって通信してたんだ感が凄い"
Fadisさんのツイート: "TCPを実装する上で読むべきRFCが多すぎてどれを読めば良いか分からん問題に対処するために、RFC7414でTCPに関する情報はどのRFCをあたれば良いかが纏められているんだけど、RFC7414自体がReference以降のぞいて41ページもあるんだ…"
Kazuho Okuさんのツイート: "https://t.co/fmiFuSkkys は、まだちょっと問題ある感じなんでしょうか… "
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Fadisさんのツイート: "いえ、欲しかったのはまさにこういうドキュメントでした。これがあればTCPの基本的な機能については歴史を辿って読む必要がなくなりますね… "
Kazuho Okuさんのツイート: "おお。歴史や実装に詳しくない人が、これ読んで分かりにくいところをフィードバックしたりすると喜ばれるんじゃないかなと思います… "
suzakiさんのツイート: "EuroSysネットワーク4つ目。LinuxのTCP処理はカーネルで97%の時間が使われる。これを効率化するために各処理をFast Path、Slow Pathに分けて行うTAS: TCP Acceleration as an OS Serviceの提案。 Fast PathではData Segment作成, Ack, Flow Controlの処理を行う。Slow Pathでは IP Routing, ARPを行う"
suzakiさんのツイート: "TAS: TCP Acceleration as an OS Service のHP  https://t.co/w6mHTo4i0O"
Kazuho Okuさんのツイート: "面白い。TCPはウィンドウサイズを送受信ともに1MTU以下にすれば実装簡単になりそうな気もするけど、TCPを知らずに育った世代なので自信ない / https://t.co/xMM5ma1odH"
3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo - Speaker Deck
Yoshifumi Nishidaさんのツイート: "結構単純になると思います。uIPはウインドウサイズ1MSSのTCP実装でサイズが5Kバイト程度です。… "
YAMAMOTO Masayaさんのツイート: "すごい。microps は pthread に甘えて実装が楽になってるけどこちらはだいぶ大変そう。@kazuho さんがコメントしているように、TCP は Window Size の広告を小さくすれば 1 セグメントづつのキャッチボールにできてシンプルになるのでぜひ頑張って欲しい(microps はその方法で tcp.c が 700行くらい)… https://t.co/RBHtoKVQCy"
Kazuho Okuさんのツイート: "再送と輻輳制御、コードにバグがあった場合、修正方法を探り当てる難しさが TLS とかと段違いに難しいイメージ。動くんじゃダメで、あらゆるパターンにおいて、ネットワークに適切な負荷をかけつつ、そのケースで想定される時間内に回復処理を行わなければならない、ってむちゃくちゃ難しい"
Kazuho Okuさんのツイート: "TCPを使うプログラムの書き方、切断処理は接続処理のだいたい100倍くらい難しいイメージ"
Kazuho Okuさんのツイート: "パイプラインを使わないリクエスト・レスポンスプロトコルの場合のみ例外的に簡単です"
Fadisさんのツイート: "LinuxをリモートからPANICさせる脆弱性SACK Panic。LinuxはMSS最小48バイトのTCPを受け付けており、その場合データは8バイトになる。キューは17*32KB分あるが16bitのindexでフラグメントを識別しており、キューに長蛇の列ができるようにSACKを投げるとindexが溢れてPANICする https://t.co/wmOGq3bwVQ"
Netflix Uncovers TCP Bugs Within The Linux & FreeBSD Kernels - Phoronix
Fadisさんのツイート: "SACK Panicを修正するパッチは既に本件カーネルに取り込まれているが、古いカーネルをしばらく使う必要がある場合MSSが小さすぎる通信をiptables等で蹴る、SACKを受け付けないようにする、といった方法で回避できるらしい"
Kazuho OkuさんはTwitterを使っています: 「accept (2)、ローカルアドレスも返してくれたらいいのに。unbound socket を listen (2) している場合に、いちいち getsockname (2) 呼ばなきゃいけないのめんどくさい」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「s/unbound socket/0.0.0.0/」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「すごい分かる。そして10ページじゃ足りないと思う https://t.co/g02E7UUZpV」 / Twitter
成瀬さんはTwitterを使っています: 「TCPのFIN、socketのcloseの話だけ10ページくらい使って説明して本とかないんですかね」 / Twitter
FadisさんはTwitterを使っています 「TCPの新しいRFCのドラフト、緊急ポインタの説明が1段落目からいきなり「実装間の違いと経路上の機器の影響の結果、緊急ポインタは新規アプリケーションで用いるべきではなくなった。でもTCPの実装はまだ緊急ポインタをサポートしていなければならない。詳しいことはRFC6093みてネ」でとても良い」 / Twitter
FadisさんはTwitterを使っています 「RFC1122、「TCPで通信するとき、slow startするようにして、再送する時は一定じゃない時間待ってから再送するようにしたら輻輳を回避出来たから、TCP喋るやつはみんなこれしろ」って書かれてて、それまでのTCPはどんな世紀末な通信してたのってなる」 / Twitter
FadisさんはTwitterを使っています 「1981年公開のネットワーク対戦ゲームTCP(RFC793)は当初酷いバランスだった事が知られている。バッファ枯渇後復活したホストに対してすぐ細切れのデータを送るリスキルが横行しスループットは急落した。そこで1989年のアップデートRFC1122では復活後バッファが十分空くまで殴れなくする変更が加えられた」 / Twitter
FadisさんはTwitterを使っています 「Silly Window Syndromeの対策もRFC1122だったんだな。やっぱり1989年より前のTCPは世紀末…」 / Twitter
FadisさんはTwitterを使っています 「TCPはストリームなので、前のパケットが失われて再送になると後ろが一緒に詰まる、というのはQUICがTCPを捨てた大きな理由だったけど、後ろのパケットはホストまで届いているんから、再送を待たずに投機的に処理して再送されてきた前のパケットとシーケンス番号が噛み合ったら確定、は出来るんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ sack付tcpでは、ある程度そんな動きで、ただユーザランドでは欠けたパケットが届くまで詰まったように見えてしまう、というお話でしょうか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu そうですね。BSDソケットを使っている場合確定していないパケットはアプリケーションから見えないので詰まってしまいます。ただこれはプロトコルの制約というよりAPIの制約であって、たとえ話DPDK上でアプリケーションが自力でTCPを喋っている場合もっと攻められる、とか考えていたところでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なるほど。 マルチプレクサ的なストリーム利用の場合は、データグラム的なデータ境界が欲しくなりそうですね(笑)」 / Twitter
FadisさんはTwitterを使っています 「あれ、もしかしてTCPの規格は再送パケットのデータが最初に送ったパケットのデータと一致している事は要求していない…? (新しいおもちゃを見つけた顔」 / Twitter
Motonori ShindoさんはTwitterを使っています 「@fadis_ TCPで再送する時に、最初に送ったのと同一のパケットになる保証はありません。後続のセグメントとくっつけて再送するのもアリなので。」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@tagomoris @_ko1 listening socket を close することで、他のスレッドで実行中の accept が終了するのって、portable じゃないんじゃないかなぁ。(昔、いろいろな環境で動くように WEBrick を直したときに、DragonFly BSD 3.6.2 では close しようが shutdown しようがブロックしつづけることを確認した)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えっlinuxのTCPのフローコントロールってオーバープロビジョニングしてるの? パケロスが発生した場合に tcp_rmem 変更しろ、とか書いてあるんだけど。それとも僕のsysctlの理解が間違ってるのかな / https://t.co/5QIoVVA8OX」 / Twitter
TCP ソケットバッファーを調整する - Red Hat Customer Portal
(1) ultravioletさんはTwitterを使っています 「@kazuho tcp_rmem を変えると連動して wndow size だか auto tuning だかに関連するパラメタも変わったような気がするのだけれど、前の職場から移るときに「すべて忘れます」誓約書にサインしたので思い出せない (嘘、たぶんサインしなくても思い出せなかった)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock ですよね、フローコントロールのオーバープロビジョニングはしないですよね。だから、パケットを受信したなら、バッファサイズが足りなくて取りこぼすことはないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 同感です。TCPのwindow sizeとして求められている役割に違反してますよね。 # メッチャ厳密にいうと、メモリ不足でカーネルが死にかけてる状況なら取りこぼす可能性についてはないとは言えないとは思いますが、それはwindow sizeを広げるとむしろ悪化する筈なので、この回答はどちらにせよ変。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock こうやって頻繁にパケット落としちゃうと、適切にフローコントロールしてる場合よりも速度低下しますもんね(そして、ごく稀にしか発生しないなら Knowledge Base で取り上げる必要がないと思う)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock はい。 現実にパケットロスしている場合、たいていは中間にある機器のバッファサイズが不足していて、それはwindow sizeを小さくするとむしろ改善する(ことがある)わけで、このアドバイスはトラブルシューティングの経験とは真逆のことが書かれてます。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 気になってもう少し調べてみたんですが 「~packets collapsed」の方は重複したsk_buffをgarbage collectしているだけで実害なさそうでした。 問題は「~ packets pruned」の方で、歯抜けになったsk_buffに重複してない部分があるせいgarbage collectできずSO_RCVBUFを越えてしまってる状況みたいです」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock で、そういう lossy なネットワークでせっかく受信したパケットを捨ててしまうことになりもったいないので、tcp_rmem を増やしてやれば捨てることがなくなって状況が改善する…ということみたいです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock なお Linux 素人なので、まったく勘違いしてるかも。専門家の意見を聞きたいところです。 ググったら https://t.co/uYFqZcCfuV の「9.2.1 tcp_prune_queue()」近辺に記述が見つかりました。」 / Twitter
TCP/IP Architecture, Design, and Implementation in Linux - Sameer Seth, M. Ajaykumar Venkatesulu - Google ブックス
Tatsuya MoriさんはTwitterを使っています 「(備忘録)昔の知識だとTLSハンドシェイクは時間がかかる印象なのだけど、2013年のRFC6928でTCP初期ウィンドウは10まで許可されている。サーバは1発目のターンでhello, certificate, exchange, doneをバルクで返せるようになった。 古い教科書ではTCP初期ウィンドウは1という説明が多い。」 / Twitter
Tatsuya MoriさんはTwitterを使っています 「TCP初期ウィンドウサイズを増やす提案は下記の ACM SIGCOMM CCR 論文 (2010年) が元ネタになっている。 https://t.co/alUfKku76K Linux では2011年からカーネルの標準設定になっているので、"code then spec" の典型例かな。コミュニティは副作用を気にしたのかもしれない。」 / Twitter
An argument for increasing TCP's initial congestion window | ACM SIGCOMM Computer Communication Review
Kazuho OkuさんはTwitterを使っています 「TCP は packet number (シーケンス番号)が再送時に変化しないから自動的に late-ack 対応ができる。そのかわり、確実なロス検出が困難になる。QUIC は、再掃除に変化してロス検出の精度が上がるかわり、意識して late-ack 対応のコードを書く必要がある。これもまたトレードオフですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というと QUIC で複雑になったようにも聞こえるけど、persistent congestion 検出にやすさでいうと、どのみち late-ack 前提のデータ構造使ってる必要があり。。。みたいな」 / Twitter

UDP GSO

Kazuho OkuさんはTwitterを使っています 「UDP GSO、カーネル内で完結してるわけじゃなくて NIC によって I/O error が返る、みたいな感じなのかぁ。DeskMini A300 は gbe も wifi もダメだった。これは 5gbe とかの USB NIC 買うしかないな。。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なんで UDP GSO やってるかというと QUIC の最適化においては重要だからです。手元だと 25% くらい速くなる https://t.co/XstTROh5VK」 / Twitter
willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
Kazuho OkuさんはTwitterを使っています 「結果まとめた https://t.co/7WOYW85ZGQ」 / Twitter
add support for GSO by kazuho · Pull Request #293 · h2o/quicly
VさんはTwitterを使っています 「@kazuho 25% ですか!それは凄い。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「しかし Intel Core をデチューンした状態でgbeサチるのが難しいとなると、なかなか10gbe導入の正当化がしづらい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーこれは結局NICのtx checksummingがオンになっているか否か、という問題でした(論文にあるようにUDP GSOはtx checksum offload必須)。Realtek r8169はデフォルトオフのところオンにできた。Intel AC 3168は非対応」 / Twitter
Kazuho OkuさんはTwitterを使っています 「UDP GSO自体は、ハードウェアがGSO非対応でも動作するらしい。ドライバのキューに突っ込まれるところまでsegmentationを遅らせることに意味があるから https://t.co/ganmK5L9EO」 / Twitter
Queueing in the Linux Network Stack | Linux Journal
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議作ってた頃は udpパケットが、pppoe や vpnでフラグメント起こさない値として、1344を使っていたっけ。 (分割検出の度に短くなっていった。なおエラーにならないので気付き辛い)」 / Twitter

DNS

GNU Name System

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GNS (The GNU Name System) の仕様詳細 (現在IETFドラフト)。公開鍵+DHTを使っており、プライバシーやDDoS脆弱性などの問題に対処している。DNSと互換性があるが、"hyper-hyper local-root"により鍵保有者による独自の名前空間をインポート可能。 https://t.co/qRFKaJTSgL https://t.co/bm8jy5wFr1」 / Twitter
The GNU Name System
The GNU Name System ICANN66 - 20191105_icann66_gns.pdf
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: Zookoの三角形 - ネットワーク上における名前は、以下の3つの性質を満たしていることが望ましい (が、もしかすると理論的に不可能かもしれない): - 人間に可読なこと - 中央集権化していないこと - 安全である (勝手に名前を偽造・改変できない) こと https://t.co/5a2ssknKrk」 / Twitter
Zooko's triangle - Wikipedia

DNS-over-TLS

Yoshinobu Matsuzakiさんのツイート: "次期バージョンのAndroidでは標準でDNS over TLSがサポートされる模様。海外事業者のネームサーバを使うのも簡単。DNSを使った #ブロッキング は更に難しくなるよ https://t.co/YqSJjurcy3"
Google Online Security Blog: DNS over TLS support in Android P Developer Preview
Google Developers Japan: Android P Developer Preview が DNS over TLS をサポート
Kazuho Okuさんのツイート: "セキュリティの観点からはローカルで署名検証をやるべきだけど、プライバシーの観点からはDoHあるいはDNS over TLSで一般的なスタブリゾルバにつなぐべきというのが、現在存在するジレンマです… "
まきひろさんのツイート: "DNSのセキュリティはローカルにDNSSEC有効なフルリゾルバを置くのが確実だよ"
Rockridgeさんのツイート: "Android 9 PieではプライベートDNSモードがサポートされており、プロバイダを設定するとDNS over TLSが利用できる。 / “Enable Private DNS with 1.1.1.1 on Android…” https://t.co/2iUFRUsNHp"
Google Online Security Blog: Google Public DNS now supports DNS-over-TLS
Kazuho Okuさんのツイート: "DHCPが平文のプロトコルなので、DoHやDoTの設定配るのはセキュアになりようがないよね、というのが標準化における懸念だと理解してる #doh_study"

DNS-over-HTTPS

Google Public DNS
DNS-over-HTTPS  |  Public DNS  |  Google Developers
Google Public DNS の様々な活用方法 - Qiita
Google Public DNS over HTTPS を試す | IIJ Engineers Blog
DNS Queries over HTTPS の標準化 - ASnoKaze blog
DNS over HTTPSの標準化開始:Geekなぺーじ
Rockridgeさんのツイート: "Mozillaの開発者がNightlyチャンネルの半数のユーザーを対象に、期間限定で、新機能であるHTTPSを通じたDNSクエリ(DoH)のテストを行おうとしたところ、オプトイン制にすべきとする反対意見が続出した。 / “Goo…” https://t.co/hGahs0RhLy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組み自体はFx60で実装済み。Firefox Nightly 61におけるテストで問題になったのは、常にCloudFlareのパブリックDNSへとDNSクエリが送信されてしまう点だ。 https://t.co/pu72EWz8a8"
Firefox, DNS over HTTPS and a controversial Shield Study - gHacks Tech News
Kazuho Okuさんのツイート: "既に www . google . com:443 に接続してから、GET /resolve?name=fqdn&type=A Host: dns . google .com とかリクエストして名前解決できるようになってるので、防ぎようがないです… https://t.co/v4tkVgyjj5"
Kazuho Okuさんのツイート: "なんと。request-uriに絶対URIを指定する場合とHostヘッダを使う場合とで挙動が異なるのは Google さんのリバースプロキシのバグっぽい雰囲気ですね… "
bosturboさんのツイート: "(echo -e 'GET https://t.co/sO5tOOs2PT HTTP/1.1\nHost: https://t.co/qComyDKBcL\n'; sleep 0.5) | openssl s_client -connect https://t.co/1aMcXHKitu) だと確かに200 OKを返してくるな…… 『GET 』の後にパスから書くと404だけど。… https://t.co/RMGjVzX8wz"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組みを解説し、CloudFlareと提携したことで信頼できるDNSリゾルバを確保できたと説く。平文のDNSクエリの危険性を説明したマンガは、いつも通りわかりやすい。 / “A cart…” https://t.co/TRrsh0Iav0"
Rockridgeさんのツイート: "記事の末尾に、HTTPSを通じたDNSクエリ(DoH)の設定を有効化する方法が掲載されている。 / “Improving DNS Privacy in Firefox – Firefox Nightly News” https://t.co/s1gB4iIlGy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)に関連する、Firefoxの各種設定について、規定値や役割などが紹介されている。また、DoHはFirefox 62でデフォルト有効化される計画だという。 / “Inside Firefox…” https://t.co/eRXDiT9ZRI"
DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
Kazuho Okuさんのツイート: "Public DNSにDoHで接続すると平均遅延は僅か(6ms)悪化するが、パケロスや品質の低いDNSの悪影響がなくなり体感が向上したという検証結果 / “Firefox Nightly Secure DNS Experimen…” https://t.co/osmlqtTOaf"
Rockridgeさんのツイート: "MozillaがFirefox Nightly 63のユーザー2万5000人を対象にDNS over HTTPS(DoH)のテストを実施(CloudflareのクラウドDNSを利用)。6ミリ秒程度のクエリ遅延が起きる(一部環境では… https://t.co/Y0W9xstTgT"
Rockridgeさんのツイート: "Fx62:DNS over HTTPS(DoH)のdraft-12仕様をサポート。 / “1466860 - TRR: update to latest DOH draft version” https://t.co/JyzIPfrLEG"
Rockridgeさんのツイート: "Fx63:オプションの〔一般〕の「ネットワークプロキシ」欄で、接続設定の詳細項目にDNS over HTTPSの接続設定が追加された。 / “1482271 - DoH preferences” https://t.co/v2WMDQx2UX"
Rockridgeさんのツイート: "DNS over HTTPSのデフォルトプロバイダをブラウザが指定すると、プロバイダの寡占を招き、中立性や政府の介入といった点で将来的にユーザーに不利益になるのでは、との意見。 / “On Firefox moving DNS …” https://t.co/DVrrPRJuRv"
https://www.rfc-editor.org/rfc/rfc8484.txt
DNS-over-HTTPS Policy Requirements for Resolvers | Mozilla Security Blog
DNSサーバがDoHに対応しているか確認できるようにする提案仕様 - ASnoKaze blog
Firefoxが通信暗号化システム「DNS over HTTPS」の対象地域拡大を発表、一体何が変わるのか? - GIGAZINE
サイトの HTTP3 化と DNS HTTPS RR および Alt-Svc Header によるアドバタイズ | blog.jxck.io

HTTPS RR

Twitter

Kazuho OkuさんはTwitterを使っています 「んーまあ、目論見というよりは、I-DのGoalsに書いてあるようにCNAMEでは無理なユースケースが出てきた結果、HTTPに関してサービスレコードではなくA/AAAAを使い続けたい勢がいなくなったというのが正直なところなんじゃないかしら」 / Twitter
Yasuhiro MorishitaさんはTwitterを使っています 「つまり、「メールサーバーにMXレコードを設定するように、WebサーバーにHTTPSレコードを設定する」という世界を、I-Dを書いた側では目論んでいると。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「HTTP(S)に関して、これまでサービスレコードが忌避されてきた理由は、サービス解決の後にアドレス解決が走るという遅延にあった。Webはレイテンシ重要なので。でもECHやHTTP/3のようなユースケースが出てきた結果、CNAME、アドレス、サービスプロパティ解決を別個にやるのは無理になった。なぜなら」 / Twitter
Kazuho OkuさんはTwitterを使っています 「multi CDNようなユースケースで、アドレス解決とECH鍵解決で、それぞれ違うCDNのものを引いてきちゃったりすると動かないので。その結果、従来HTTPSにもサービスレコード作るべき派と、アトミックに全部解決したい派が合流して多数派を形成し、SVCB/HTTPSが爆誕した」 / Twitter
Kazuho OkuさんはTwitterを使っています 「CNAMEの問題がどうこうというより、なぜ今の今になってHTTPにサービスレコードを作ることになったのか、という話。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だからまあ、レガシーなクライアント対応は、今後もCNAMEなり(apexなら)IP anycastになるだろうし、ブラウザ対応や新しいサービスならHTTPS推しされることが多くなるんじゃないですかね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「使われないものを標準化する意味はないので、ブラウザベンダーたちが軒並み反対するような仕様は通らないし、彼らはレイテンシにうるさいんですよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「HTTP誕生後30年たってから、SVCB/HTTPSがぽっと出てきて一気に進んだのは、ステークホルダー全員(ブラウザ、オリジン、CDN)が困ってるタイミングで、全員がやりたくなる提案をまとめたからだ思うし、良い意味で教科書的な事案なんじゃないのかなみたいや」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というのがプラグマティックな立場からの感想です」 / Twitter
Yasuhiro MorishitaさんはTwitterを使っています 「ステークホルダーに一般ユーザーが入っていないことも含め、まったくその通りだと思いました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@OrangeMorishita ぐうの音も出ません!!!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これは誤解がある気がする。複数CDN切り替えは、従来からさまざまなWebサイトがCNAMEを使ってやっています。なんら新しい機能じゃない。なんでHTTPS RRでその話題が出るかというと、IPアドレスとAltSvc,ECHのようなサービス関連の情報をアトミックに配れないと動かないケースが出るため。」 / Twitter
yamayaさんはTwitterを使っています 「HTTPS RRでmulti CDNに対応できるといっても、複数のCDNサービスを同時に使えるということじゃなくて、複数のCDNをスムーズに切り替えて使える(同時には使わない)ということなのであまり期待しない方がいいと思う。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「新しい通信機能を導入するにあたっての障害を取り除くためであって、なにかCNAMEより便利なものを作ろうとしてるわけではないです(Apexを除く)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「現状CNAMEでCDNを指定しているウェブサイトは、単一CDNであれ、複数CDNであれ、何も設定を変える必要はなくて。ウェブブラウザとCDNがHTTPS RRに対応することで、ECHが動いたり、いきなりHTTP/3でつなぐようになる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「DNS Camel問題、DNSの設計が古いことに起因する問題だと思ってる。 * レコードタイプをアプリケーションが勝手に定義できない * レコードタイプ追加のたびに、権威サーバのプログラムの拡張が必要(レコードのバイナリ化のために) ってあたり。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「HTTPだと、URI Pathをどう使うか、ペイロードの意味が何かはアプリケーションが自由に決められるでしょ。DNSは、そういう分離がされる前のgopher的な設計なのよ」 / Twitter

WebサーバのDNSへの登録方法が変わるよ – JANOG48 Meeting
janog48-lt-https - janog48-lt5-yamaguchi.pdf
summerday2021-https-rr - 11-yamaguchi.pdf
“HTTPSレコード”って知ってる?今知るべき4つの注意点 | IIJ Engineers Blog

EDNS0

インターネット用語1分解説~EDNS0とは~ - JPNIC
「EDNS0」とは何ですか?:DNS Tips - @IT
008-「512の壁」を越える
EDNS0 ‐ 通信用語の基礎知識
ことなかれblog 備忘録 « EDNS0
512バイトを超える DNSパケット
RFC 2671 - Extension Mechanisms for DNS (EDNS0)
digコマンドでEDNS0の動作を確認する。 - labunix's blog

DNSSEC

rick.eng.br/dnssecstat/
DNSSEC はなぜダメなのか
KSKロールオーバーについて - JPNIC
「ランチのおともにDNS」より~変化するDNSとサーバー証明書の関係【Internet Week 2017】 - INTERNET Watch
インターネット用語1分解説~EDNS0とは~ - JPNIC
008-「512の壁」を越える
OARC's DNS Reply Size Test Server | DNS-OARC
ニュース速報:読売新聞(YOMIURI ONLINE)
DNSインフラを狙う攻撃増加、ICANNがDNSSECの導入を呼び掛け - ITmedia エンタープライズ
SODA Noriyukiさんのツイート: "DNS関係で今現在の最大の問題はリフレクション攻撃の踏み台として使われているってとこだと思うんですが、DNSSECは踏み台攻撃の増幅効果が大きくてむしろその問題については対策ではなく穴を大きくする方なんですよねえ。あと毒入れ系の対策としての効果も限定的( https://t.co/JPsDVfGKZh の8.)だし… https://t.co/IkDx25Jd7B"

DNSCurve

DNSCurve - Wikipedia
インターノット崩壊論者の独り言 - DNSSECイラネ - DNSCurve を適用しました , DNSCurve と CurveCP で高速安全というDJBの話
NetAgent Official Blog : DNSCurveの紹介
Introduction to DNSCurve
mdempsky/dnscurve: Tools for DNS curve implementation
DNSCurve vs DNSSEC - Togetterまとめ

Dnsmasq

Dnsmasq - Wikipedia
dnsmasq - Wikipedia
Dnsmasq - network services for small networks.
Man page of DNSMASQ
dnsmasqで始めるプライベートDNSサーバ - GeekFactory
Dnsmasqのproxydhcp機能を使ってiPXE chainloading - Qiita

NSD

UnboundとNSDの紹介 BIND9との比較編
NSDでおてがるにDNSサーバをたちあげる - Qiita
NSD 4 – 日本Unboundユーザー会
NLnet Labs - NSD - About
Unbound + NSD で DNS
NSD (ソフトウェア) - Wikipedia
DNSサーバ”NSD”の紹介 | ICTSC tech-blog
NSDとUnboundで社内用DNSサーバを立てた話 | エンジニア ブログ
bind2other
第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

INTERNET Watch

ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーの設定確認を! 今年9月は特に注意 - INTERNET Watch
萌えドメインなのに……「anime.moe」の登録をICANNが禁じている理由とは -INTERNET Watch Watch
「KSKロールオーバー」に伴い講ずべき措置、総務省が国内関係者に告知、9月19日以降にウェブアクセスやメール送信ができなくなる場合も -INTERNET Watch
「KSKロールオーバー」で一部DNS応答サイズが増大、4人に1人のインターネット接続に影響? JPNICが確認を呼び掛け -INTERNET Watch
IANA — Domain Name Services
【IETFトピックス2016-17】 インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る - INTERNET Watch
【IETFトピックス2016-17】 熱い議論の続く、DNSプロトコル拡張と今後 - INTERNET Watch
KSKロールオーバーのテストプラットフォーム、ICANNが提供 -INTERNET Watch
大きく変化していくDNSの規格 ほか~「DNS DAY」の話題から - INTERNET Watch
「KSKロールオーバー」で問題を起こしそうな箇所はここだ! 9月19日だけでなく10月11日にも注意 - INTERNET Watch
10月11日の「KSKロールオーバー」鍵更新は延期、未対応のISPなど「相当な割合」あることが判明 -INTERNET Watch
「KSKロールオーバーはまだ終わっていない」~今年の「DNS DAY」の話題から【Internet Week 2017】 - INTERNET Watch
KSKロールオーバーの鍵更新がさらに延期へ -INTERNET Watch
KSKロールオーバー、10月11日に実施か - INTERNET Watch

Geekなぺーじ

TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ
ざっくり詳解 - NAT64とDNS64:Geekなぺーじ
なぜIPv6とIPv4の名前解決は別々に行なわれるのか?:Geekなぺーじ
KSKロールオーバーが延期:Geekなぺーじ
ユーザの近くにある偽DNSサーバの話:Geekなぺーじ
[書評]「DNSがよくわかる教科書」は、すごくイイ!:Geekなぺーじ
RFC 8501 : Reverse DNS in IPv6 for Internet Service Providers:Geekなぺーじ

ASnoKaze blog

DNS ANAMEレコードの提案仕様 - ASnoKaze blog
.internal ドメインを予約する提案仕様 - ASnoKaze blog
HTTPSで接続するための追加情報を格納するHTTPSSVCレコード - ASnoKaze blog
HTTPSの接続情報を通知する "HTTPS DNSレコード" の提案仕様 - ASnoKaze blog
DNSのエラー理由を通知するExtended DNS Errorsの仕様 - ASnoKaze blog
DNSで負荷分散を可能にするLBレコードの提案 - ASnoKaze blog

GIGAZINE

Google Chromeは「DNSルートサーバー」に大きな負荷をかけている、その理由とは? - GIGAZINE
CloudflareやAppleなどが協力して新プロトコル「Oblivious DNS over HTTPS(ODoH)」を開発 - GIGAZINE
ブラウザの追跡ブロック機能を回避する「CNAMEクローキング」を行うサービス・企業のリストが公開中 - GIGAZINE
AmazonやGoogleのDNSサービスに存在する欠陥を研究者が発見、企業の重要な情報が筒抜けに - GIGAZINE
akiさんはTwitterを使っています 「forwarding時間でLUTを引ける程度、 表がメモリに乗る程度、 というあたりでは? 名前によるICNは、未だ高速性が研究になるぐらいだし。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「以前、情報系の入門者に「なぜ通信する時、fqdnのような名前を直接使わずに、IPアドレスを使うのでしょう?」と純真な眼で問われたが、直感理解できる説明が出来なかった。 良い答え方あるかな…でも「人間に扱いやすい名前と、機械に優しいIPアドレス」は半分ウソ(機械はどちらでも可)という気が。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「黎明期は別として、今は、IPアドレス側は管理しやすさ(ルーティングや割付)の方がメリットかもしれない。 その点で「機械にやさしい」には、機械化せずとも、郵便番号や固定電話番号のような、体系的ナンバリングは管理が楽になる、みたいな話が含まれてないのが気になる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS関連(LinkedIn含む)のCDNで問題起こすこと多い様子…むしろMSが無茶しないようにして欲しいかも。」 / Twitter
---さんはTwitterを使っています 「UnboundくんがCNAME 8段まで「しか」たどらなかったのが、11段もたどるようになった!https://t.co/hJTm5tmfX9」 / Twitter
Resolving records through more than 8 CNAME fails due to hardcoded MAX_RESTART_COUNT · Issue #438 · NLnetLabs/unbound

infoQ

GoogleがクラウドDNS転送を発表
SAD DNSの仕組み

OSDN

Google Chrome 26リリース、スペルチェック機能の強化やMac/Linux版での非同期DNSリゾルバ実装などが特徴 | OSDN Magazine

スラド

DNSのCAAリソース・レコード、使っていますか? | スラド IT

GitHub

blechschmidt/massdns: A high-performance DNS stub resolver for bulk lookups in C
GitHubがどのようにDNSインフラストラクチャを改善したか
DNSCrypt - Official Project Home Page
jedisct1/dnscrypt-proxy: A tool for securing communications between a client and a DNS resolver

Wikipedia

TSIG - Wikipedia

Twitter

HTTP

Kazuho OkuさんはTwitterを使っています 「この「本来やりたかったの」ってどういう文脈なんだろう。I-D的にはalt-svcレコードの提案が源流にあるし、http屋さんとしては、zone apexにCNAMEは元々優先順位低かったという認識(SRV系拒否してきた歴史がある)」 / Twitter
---さんはTwitterを使っています 「draft-ietf-dnsop-svcb-https くん、本来やりたかったのは “zone apexにCNAME” だったはずだけど、ESNIやらIPv4/IPv6 hintやらいろんな要求が悪魔合体して嗚呼standards body……みたいな感想のみ」 / Twitter
ゆきさんはTwitterを使っています 「@kazuho 「本来やりたかった」からちょっとずれますが、ANAMEレコードの提案仕様の議論してた話が、HTTPS(旧HTTPSVC)でカバーして解決されるって感じになったんですかね https://t.co/uGYCuRfr2W」 / Twitter
Re: [DNSOP] status of the aname and svcb/httpsvc drafts
ゆきさんはTwitterを使っています 「@kazuho リンク間違えた。が、スレッドは同じ https://t.co/YAyxfjjVjG」 / Twitter
Archive
Kazuho OkuさんはTwitterを使っています 「なぜSRV系を拒否してきたかというと、ユーザがウェブブラウズに使うHTTPは名前解決の速度が重要で、再帰リゾルバに問い合わせしたらIPアドレスが返ってこないと困るからです。だからA/AAAAを引いてた。そこに、ECHの鍵とりたいとか、QUICで話せるよとか、そういう情報を入れたいという要求が加わった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ANAMEは、サービス解決を挟まずに無理矢理アドレス解決しようとする強引な仕様だったし、なくなって良かったんじゃないかな」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@kazuho まだ残ってたんですか…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@jj1bdx このへんの話です」 / Twitter

Kazuho Okuさんのツイート: "オープンリゾルバが絶滅し、リゾルバはTCPでのクエリを受け付けるべきという規定が実現可能になったという背景があるのかな / “TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ” https://t.co/vuJYimFp5T"
Kazuho Okuさんのツイート: "DNSキャッシュサーバにTCPでの応答が求められるになっただけであって、権威サーバはあいかわらずUDP-onlyでいいのよね?"
Kazuho Okuさんのツイート: "DNS権威サーバへの攻撃対策は、初見のアドレスからクエリを大量に受信し始めたら無視すれば良い #ietf97j"
Yusuke Endohさんのツイート: "https://t.co/TVeOG3Tk3j に書いてあるとおり、https://t.co/B5msekD4Um は大量の IP が割り当たっててパケットサイズでかくなるので、DNS over UDP で失敗したあと、DNS over TCP が必要になる。(続く)"
[debian-users:57972] Re: yomiuri online に接続できなくなった
Yusuke Endohさんのツイート: "なお、ツイッターが全部 https://t.co/B5msekD4Um にしてくれちゃってるけど、www付きで"www.yomiuri.co.jp”と書いたつもりでした。"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@n_soda @hoshi_takanori @ReijiAbe そこがポイントです。誰も問い合わせしないキャッシュサーバは永遠に更新されることはありません。"
SODA Noriyukiさんのツイート: "「浸透の言い換えを考えているようではダメ」って、こういう意味なのね。設定変更の遅延がユーザーに見えることはほぼ防ぐことができるので言い換え自体必要ないと(もし設定ミスで遅延が生じたら、「浸透」で誤魔化さずにちゃんと謝ろうと)。 https://t.co/AtolVVuFhI"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@nhhi122 技術者は素人に向かって浸透といわなきゃいけない状況を回避すればいいのですよ。それが技術者というものでしょう。そして回避ができないときはちゃんと理由を説明すべきです。"
(び)さんのツイート: "DNSでは、recursive queryとiterative queryそれぞれ定義があるので。… "
Kazuho Okuさんのツイート: "djbdns 歴が長すぎて知らないんだけど、最近だと BIND でもキャッシュのエクスパイヤを絶対時間で設定できるようになってたりするのかな。あれは浸透とは程遠い動作だと思う"
Kazuho Okuさんのツイート: "HTTPのキャッシュについて「浸透を待ってください」という人は聞いたことない。皆「リロードしてください」と言う。つまりは、DNSの場合、事前の対処法を知らないもしくは事後の対処法がないから「浸透を待ってください」と言うのだろう"
Kazuho Okuさんのツイート: "F5押しても権威DNSサーバまでクエリが飛ばないの、僕はうんこだと思ってます"
Kazuho Okuさんのツイート: "DoHではドウかなーって思ってドラフト確認してみたら、HTTPレイヤのキャッシュについてはバイパスする(がDNSレイヤにキャッシュがある場合は無理)って話になってた。まあそうだよね。DoHリゾルバがDNSレイヤでのキャッシュもってなければF5でリロードかかるし良い… "
Kazuho Okuさんのツイート: "別の言い方をすると「浸透」という単語の問題ではなく、「浸透を待たなければならない」という認知を強化する可能性の問題なのだ"
Kazuho Okuさんのツイート: "「浸透」という表現が「変更が伝わるまで待たなければならない」ことを含意するからダメなんですよ。正しく設定していれば待つ必要ないのに / “DNSで浸透って言っちゃだめなの? - @tmtms のメモ” https://t.co/bMxaRBcCzf"
DNSで浸透って言っちゃだめなの? - @tmtms のメモ
Shigeyaさんのツイート: "キャッシュされたRRがキャッシュから無くなるタイミングは、権威サーバで指定されたTTL(Time-to-live)の秒数で決まります。一度キャッシュされたRRは、そのTTLすぎるまでは「そのキャッシュでは」そのまま用いられます。だからコレを短くすれば、反映されるまでの時間は調整できます… https://t.co/c8JjRRsSXU"
Kazuho Okuさんのツイート: "DNSの上に認証レイヤを構築完了したので満足なう。これでDNSに悩まされないですむわー"
Kazuho Okuさんのツイート: "Amazon Route 53 のエスケープシーケンスはバックスラッシュ+8進数、Azure DNS はバックスラッシュ+10進数です。さて問題です。RFC 1035 に合致しているのはどちらでしょう"
Kazuho Okuさんのツイート: "DNS クイズを出したが回答がない。シーンとry"
Kazuho Okuさんのツイート: "「君のDNSサーバ、なんでTXTレコードを127バイトごとにチャンクするの? 255バイトでいいはずなのに」僕「djbdnsだから!!!!」"
Kazuho Okuさんのツイート: "細かなとこだけど、TXTレコードには文字列ではなく任意のバイナリシーケンスを登録可能です / “アプリケーションエンジニアが知るべきDNSの基本” https://t.co/G28FjQ9B4f"
Basics_of_DNS_that_application_engineers_should_know - Speaker Deck
Kazuho Okuさんのツイート: "DNSの「再帰」と「反復」の違いが話題になってるけど、そもそも何が違うの? 原典だと「recursive」にあたる単語に別々の訳語をあてて混乱してるとかじゃないよね???"
Kazuho Okuさんのツイート: "複数のリカーサが設定されている場合に、それぞれに順次問い合わせることを反復と言ってるのかな"
Kazuho Okuさんのツイート: "自己解決。リカーサが順次権威サーバに問い合わせていくことを「反復的(iterative)」と呼んでいるのか… "
Kazuho Okuさんのツイート: "「反復」問い合わせをした結果を返すことを「再帰」と呼んでいるのであって対立する操作ではない、と説明すべきなのかな"
ゆきさんのツイート: "Domain Contact Information (WHOIS) over DNS https://t.co/p4h4RXeTLq WHOIS over DNS #yuki_id"
ゆきさんのツイート: "「DNS Resolver Information Self-publication」 https://t.co/bFuxni3R35 Googleの人とICANN勢の共著。DNSどのようなトランスポート・機能に対応しているか確認できるようになる。こういうの必要よね #yuki_id"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「udp socket で source port 0(本当の0番。一時空きポートではなく)の sendto はできないが、 recvfrom はできてしまう非対称性、私を含めて well-known でない気がする。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「nsdのエラーは port 0 に sendtoして invalid argument だった。 おそらく src port 0 な不正DNSクエリを受けて、チェック無しにsendtoしてる。 nsd[...]: error: sendmmsg [0]=83.31.183.240@0 count=4 failed: Invalid argument https://t.co/sXUwRkj65n」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「報告者は port 0 に言及してるけど、作者側はロギングのみで、port 0 チェックは未対応に見える。 (ポート0なUDPパケット受信は、カーネルが弾くべきなのだっけ…?)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えー「(HTTPプロキシのように)DNSサーバでセカンダリとプライマリも分かれてキャッシュされるのか」が質問だから答えは否では? HTTPのauthorityと違ってDNSはどの権威サーバが答えても同じなので。 それはそうとしてWindowsのDNSキャッシュサーバ複数指定したときはそういう動きなのか勉強になる」 / Twitter
ますだまさるさんはTwitterを使っています 「今なら夏春都の質問に答えられる。DNSサーバはプライマリとセカンダリでキャッシュは別だけどWindowsのデフォルトならプライマリDNSから1秒以内に返事が返えればセカンダリに投げないのでキャッシュもされない。プロキシを使った場合は基本的にDNSクエリはプロキシが投げる https://t.co/qwG4rCQe7W https://t.co/t5TgK2NSVs」 / Twitter
[第1147話]こちら葛飾区亀有公園前派出所 - 秋本治 | 少年ジャンプ+

c-ares: library for asynchronous name resolves
c-ares-1.12.0
tornado.platform.caresresolver - C-Aresを使った非同期DNSリゾルバ - Tornado Web Server — Tornado 3.2.1(日本語)
実用 BIND 9で作るDNSサーバ(5):スレーブ・サーバのゾーン転送とセキュリティ (3/3) - @IT
キャッシュポイズニングとは | OSSのデージーネット
JPNICが管理する逆引きゾーンのネームサーバ一覧 - JPNIC
無料で安全なDNSサービスの一覧 | ハルパス
技術書典4で販売された「DNSをはじめよう」をフォローする感じの記事にしたい - Qiita
DNSトンネリングの手法 / A technique of DNS tunneling (#ssmjp) // Speaker Deck
Google Online Security Blog: Google Public DNS turns 8.8.8.8 years old
Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗 - CNET Japan

Multicast DNS

Avahi

Avahi - Wikipedia
Avahi (software) - Wikipedia
avahi-daemonを設定してDNSサーバ運用をやめた - Qiita
Raspberry PiでAvahi を使ってホスト名でアクセスする | 株式会社インデペンデンスシステムズ横浜
第216回 Avahiとローカルエリアネットワーク:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Avahi - ArchWiki
Linuxでのavahi-daemonの停止 - weblog of key_amb
[Ubuntu] Avahiのコマンド一覧 - Life with IT
avahi - mDNS/DNS-SD
どーでもいい日々: mDNS、Avahi、Bonjour
avahi-daemonのシステムログの内容について | アットマークテクノ ユーザーズサイト

Source Browser
jevinskie/mDNSResponder
RFC 6760 - Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP)
RFC 6761 - Special-Use Domain Names
RFC 6762 - Multicast DNS
RFC 6763 - DNS-Based Service Discovery
Multicast DNS
Multicast DNS - Wikipedia, the free encyclopedia
IPマルチキャスト - Wikipedia
Zeroconf - Wikipedia
Zero-configuration networking - Wikipedia
TCPやUDPにおけるポート番号の一覧 - Wikipedia
DNS Service Discovery (DNS-SD)
TCP/IP環境に革新もたらすZeroConfネットワーク「Bonjour」~概要と仕組等~
形式 - マニュアルページセクション 1M: システム管理コマンド
dns-sd(1) Mac OS X Manual Page
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ
DNS-SD(Bonjour)をUniversal Windows Platformから利用してサービスを探す - ぷろじぇくと、みすじら。 - Misuzilla.org
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ (1)
OS X 10.11のDNS64らしき動きをするDNSサーバを作る - yunazuno.log

LLMNR

RFC 4795 - Link-local Multicast Name Resolution (LLMNR)
Link-Local Multicast Name Resolution - Wikipedia
Link-Local Multicast Name Resolution: The Cable Guy, November 2006
Windows管理者のためのIPv6入門:第6回 LLMNRを使ったローカル・セグメント上での名前解決 - @IT
Vistaネットワーク大解剖 - 名前解決(2)--IPv6でも使えるLLMNRによる解決手法を追加:ITpro
ASCII.jp:Windowsネットワークの名前と番号 (5/5)|完全解剖「名前とアドレス」
Web系雑記: Windowsにおける名前解決の挙動(DNS・LLMNR・NBT)
KASAGO LLMNR 図研エルミック
日々記: コンピュータ名での名前解決ができない
プロトコルについて

ICMP

本の虫: Pingプログラムの話
packet socketsを使用してパケットを送信する - ゾンビ狩りクラブ
libnetを使用してパケットを送信する - ゾンビ狩りクラブ
おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE

ARP

internal22-265-アドレスの解決 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
internal22-264-データ構造 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
アドレス解決プロトコル - Linuxカーネルメモ
ARPスプーフィングしてみた - Qiita
FadisさんはTwitterを使っています 「ARPのヘッダのHardware Type、IANAのドキュメントには0x0001はEthernet(10Mb)って書かれてるけど、Fast EthernetだろうとGbEだろうと、そもそもEthernetですらさない802.11でも0x0001って言ってて、Ethernetと同じ長さのMACアドレスがあったらEthernetでいいや感が漂ってる https://t.co/XIxzAJPPzF」 / Twitter
Address Resolution Protocol (ARP) Parameters
FadisさんはTwitterを使っています 「ノードの識別にEthernetのMACアドレスと異なる形式を用いるネットワークではARPのHardware TypeはEthernetとは別の値になっていて、TCP/IP over アマチュア無線の為の規格AX.25ではノードをコールサインで識別する為Hardware Type = 0x0003が割り当てられている、と」 / Twitter

NIC

RNDIS

Android USB Tethering - Gentoo Wiki
Android テザリング - ArchWiki
Android tethering - ArchWiki
[Linux] USB Ether gadget(g_ether) の使い方等 - Qiita
Overview of Remote NDIS (RNDIS) | Microsoft Docs
[MS-RNDIS]: Remote Network Driver Interface Specification (RNDIS) Protocol
RNDIS について | WDDDC

CDC-ECM

cdce(4)
Develop
Ethernet over USB - Wikipedia
AN64465 - West Bridge® Integration to Android on OMAP Zoom II MDP:RNDIS, CDC-ECM, and Mass Storage Functions | Cypress Semiconductor

CDC-EEM

CDC EEM
DriverCore
XLsoft Corporation : エクセルソフト デバイスドライバ開発ツール : USB Communication Device Class
MCCI Windows drivers for CDC EEM
CDC EEM Subclass Architecture

CDC-NCM

USBのNCM(Network Control Model)仕様が世界標準に | 共同通信PRワイヤー
MCCI Network Control Model (NCM) class drivers
CDC: Communication Device Class (NCM)
TR-018_Ver1.0.pdf
TR-017_Ver1.0.pdf

MBIM

USB-IF、モバイルブロードバンド・インターフェースモデル仕様の提供を発表 | Business Wire
次世代Windows OSで変化する無線ネットワーク環境とファイルシステム (1) 無線ネットワーク機能をブラッシュアップする「モバイルブロードバンド」 | マイナビニュース

CDC-WMC

Support for the Wireless Mobile Communication Device Class (Windows Drivers)

ASIX

AX88772 - ASIX Electronics Corporation
AX88772B - ASIX Electronics Corporation

virtio-net

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第3回 I/O仮想化「デバイスI/O編」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第11回 virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第12回 virtioによる準仮想化デバイス その2「Virtqueueとvirtio-netの実現」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第19回 bhyveにおける仮想NICの実装
virtio(vhost)の概要 - tkokamoの日記

NIC(Intel)

Intel® ICH 8/9/10 and 82566/82567/82562V: Developers Manual
Intel® 82541PI Gigabit Ethernet Controller: Specification Update
Intel® Gigabit CT Desktop Adapter Product Brief
Intel PRO/1000 GT Desktop Adapter
www.intel.com/content/dam/doc/manual/8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
Intel® PRO/1000 PT Desktop Adapter - Overview
Intel 8254x - OSDev Wiki
download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf
PCIe* GbE Controllers Open Source Software Developer’s Manual
PCI-PCI-X GbE Family of Controllers Software Developer’s Manual

NIC(Realtek)

www.cs.berkeley.edu/~kubitron/cs194-24/hand-outs/rtl8029as.pdf
akizukidenshi.com/download/RTL8019AS.pdf
www.intrasoft-spb.ru/pdf/Gigabit_ethernet_controller_RTL8169.pdf
RTL8111B_8168B_Registers_DataSheet_1.0.pdf

NIC(Broadcom)

Ethernet NIC Driver Support

NIC(Marvell)

Marvell_88E8053.pdf

自作OSに10GbE NICを移植する – Raphine Project
MikanOS に NIC ドライバを実装する - 送受信編 - Qiita
既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
MII-RMII
Yojiro UOさんのツイート: "某NICの内部カウンターのインクリメントタイミングを決めている定格80MHzのオシレータ、しばらく計測した結果80.003MHzくらいで発振してることがわかった。<40ppmくらい。なるほど。 微妙に時間がズレる。"
Yojiro UOさんのツイート: "NIC内カウンター、クロックタイミングごとの加算値をキャリブレーションするためのレジスタがあるので、そこをほげると補正できるはず。"
Yojiro UOさんのツイート: "80MHzのオシレータが3KHzもずれていると、1クロックあたり4.6psくらいずれていく計算になる。 1秒で0.36ms。 今時の腕時計でもこんなにずれない。"
Yojiro UOさんのツイート: "昨日みてた某NICの内部クロック、個別にキャリブレーションして一晩ちょっとフリーランしておいた結果を眺めた。ずれは1/20くらいにはなったけどまだずれてる。 一秒あたり1usecくらい。 内部クロックだけの精度でさらに1/10くらいに追い込めそうな気はする。"
中村 実さんのツイート: "1/4nsってPTPの仕様上の分解能の限界だがな。一番下の桁でカウントアップしているだけじゃないかしらん? https://t.co/YPNbMUCDqo"
Yojiro UOさんのツイート: "ちなみにintel x550のタイムスタンプの時間分解能は12.5nsのはず。"
IzNoMaさんのツイート: "日本では10年前に 4ns分解能のがありました。特定のアトリビュートを持った udp データグラムにのみ打刻するタイプですね。 現時点での 250ps分解能はそのまま FPGAの性能向上を示してる気がします。^^ https://t.co/Ig78TWsA6k https://t.co/pQrSeaoihC"
ryoさんはTwitterを使っています: 「動的解析の結果謎レジスタの意味がわかった。どうやら0x80000000がRSS Enableのフラグで残りはprotocol毎のRSS ringの数(2^n)のようだ。https://t.co/gwFKqbTNei 謎数値の埋め込みやめてw」 / Twitter
aqtion-freebsd/aq_hw.c at master · Aquantia/aqtion-freebsd
技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します! - へにゃぺんて@日々勉強のまとめ
ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例 - yunazuno.log
tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する - yunazuno.log
RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
FadisさんはTwitterを使っています 「Ethernetヘッダが14バイトとかいう中途半端な大きさだから、4バイト境界に沿って読まないと性能が落ちるアーキテクチャではLinuxカーネルがEthernetヘッダの前に2バイトのパディングを挿入して、後続のIPヘッダのIPアドレス(頻繁に読む)が4バイト境界に来るようにするの頭良い https://t.co/rnP8NiiqVz」 / Twitter
ネットワークスタック内の謎の2バイトについて探る - Handwriting

VLAN

タグVLAN 設定例 | YamahaルータのタグVLAN
特集:ネットワーク構築の基本はVLANから(1):VLANの基本的な仕組みを攻略する - @IT
VXLAN(RFC7348)を学ぶ:VXLANが登場した理由、他の実装との違い、特徴を整理しよう (1/3) - @IT
Virtual Local Area Network - Wikipedia
IEEE 802.1Q - Wikipedia

キープアライブ

ハートビートとは|heartbeat - 意味 / 定義 / 解説 / 説明 : IT用語辞典
キープアライブとは|キープアライブパケット|キープアライブ機能|keep alive - 意味 / 定義 / 解説 / 説明 : IT用語辞典
ヘルスチェックとは|health check - 意味 / 定義 / 解説 / 説明 : IT用語辞典
セッションとは|session - 意味 / 定義 / 解説 / 説明 : IT用語辞典

AirPrint

IPP

Internet Printing Protocol - Wikipedia
Internet Printing Protocol - Wikipedia, the free encyclopedia
IPP ‐ 通信用語の基礎知識
IPP 1.1: Model and Semantics Main
williamkapke/ipp: Internet Printing Protocol (IPP) for nodejs
RFC 8010 - Internet Printing Protocol/1.1: Encoding and Transport
RFC 8011 - Internet Printing Protocol/1.1: Model and Semantics
FadisさんはTwitterを使っています 「PAPPL 1.0のRCが出たらしい。PAPPLは従来CUPSなどで使われていたgutenprint等のプリンタドライバをバックエンドとして、IPP Everywhereを喋るデーモン。最初からIPP Everywhereを喋るナウいプリンタを期待するナウいアプリケーションが太古のプリンタで印刷出来るようにする。 https://t.co/BH6ztn7FMR」 / Twitter
PAPPL 1.0 RC1 Released With A Goal To Replace CUPS Printer Drivers - Phoronix

CUPS

CUPS.org
apple/cups: Official CUPS Sources
Common Unix Printing System - Wikipedia
CUPS - Wikipedia, the free encyclopedia
Line Printer Daemon protocol - Wikipedia, the free encyclopedia
Job Definition Format - Wikipedia, the free encyclopedia
2017年1月6日号 『ドライバレス』でのプリンタ対応・UWN#492・493:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Ubuntu 17.04 その8 - ドライバーがなくてもプリンターから印刷可能に・IPP Everywhereプリンターをサポートするためテストの呼びかけ - kledgeb
3Dプリンタに対応した「CUPS 2.1」リリース | OSDN Magazine
印刷システムCUPSが15周年、最新版となる「CUPS 2.0」をリリース | OSDN Magazine
Apple傘下で開発が進められているUNIX向けプリントシステム「CUPS」、1年ぶりの新バージョン「1.6」がリリースされる | OSDN Magazine
Mantaroh@media=printさんのツイート: "CUPS ダイジェストから見る限り、1万の仮想プリンタを用意したテストを走らせてるってことね。仮想デバイスが作れる環境だとやりやすそう。"
「CUPS 2.3」リリース、新たなライセンスで提供 | OSDN Magazine
FadisさんはTwitterを使っています 「*NIXでお馴染みのオープンソース印刷システムCUPSの開発が死んでいるという話。2007年以降CUPSはAppleの下で活発に開発されてきたが、今年に入って行われたコミットは1個だけ。CUPSの主要な開発者が今年の頭にAppleを退職している事と関係しているのではないか、とされている https://t.co/Lc4ceKgQLK」 / Twitter
CUPS Printing System Open-Source Development Has Seemingly Dried Up - Phoronix
Appleによるプリンタードライバーの開発がひそかに幕を閉じていたと判明 - GIGAZINE
FadisさんはTwitterを使っています 「CUPSの今後。OSSなプリンタサーバCUPSは2007年の買収以来Appleの下で開発されていたが2019年以降開発が止まっていた。Linux Foundationが支援するOpenPrintingはCUPSをforkしてsecurity fixを行なっていたが、OpenPrintingがCUPSの開発を引き継ぐことが正式に決まったらしい https://t.co/G7BmJr8Gog」 / Twitter
OpenPrinting Now Developing Upstream CUPS, Apple Bows Out - Phoronix
FadisさんはTwitterを使っています 「00年代、USB接続の家庭用プリンタの多くは専用のドライバが必要で、それらのドライバを抱えてIPPに変換しアプリケーションにデバイス非依存のプリンタの利用方法を提供する為にCUPSは不可欠だった。しかし今日のプリンタの多くはIPP EverywhereやAirPrintといった共通の規格で印刷データをやりとりする」 / Twitter
FadisさんはTwitterを使っています 「この為CUPSはプリンタを使う為に必ずしも必要ではなくなっている。そんな事情もあってか(そもそもiPhoneから印刷する為にAirPrintを普及させた張本人である)Appleは既にCUPSの改良を続ける気は無いらしい」 / Twitter

AirPrint について - Apple サポート
AirPrint - Wikipedia
AirPrint - Wikipedia, the free encyclopedia
BonjourPrinting
Adobe Serial and Parallel Communications Protocols Specification
外出先でAirPrintに挑戦: あれやこれや備忘録

SNMP

SNMP MIB

MIBを確認するために便利なツールとか – ネットワークエンジニアが日々の出来事を語る
Windows用MIBブラウザ
SNMP Informant Standard

Simple Network Management Protocol - Wikipedia
Simple Network Management Protocol - Wikipedia
管理情報ベース - Wikipedia
Management information base - Wikipedia
net-snmp download | SourceForge.net
Net-SNMP - Wikipedia
100% recycled matsuuさんのツイート: "わかるー。接続数が多いサーバにsnmpd経由で取得しようとするとCPU負荷が悲惨なことになる。ちなみにnetstatも同様の事象が発生するのでss使おうな。 / “本当に恐ろしいsnmpd - Qiita” https://t.co/tvfn3GLPWl"
本当に恐ろしいsnmpd - Qiita

UPnP

OCF - UPnP Standards & Architecture
UPnPによるポートマップ - なぜなにTorrent

Captive Portal

Captive portal - Wikipedia
Captive Portal Problem Statementについて - ASnoKaze blog
Captive Portalとは | OSSでのシステム構築・デージーネット
Captive Portalとは | OSSでのシステム・デージーネット
Captive Portalって何? - にたまご。
Captive Portal Detectionについて - にたまご。
Captive Portal(CAPPORT) APIについて - にたまご。

MS

[MS-WINPROTLP]: Windows Protocols | Microsoft Docs
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
Fadisさんのツイート: "次世代VPN WireGuardの人がWireGuardをWindowsに移植する際にマトモなIPパケット直書きAPI(所謂TUN)がなくて困り、Windows用のTUNを作ってしまったらしい。で、これが他のソフトウェアでも有用という事でWireGuardから切り離されてオープンソースで公開されたのがWinTUN https://t.co/8xC9Em74U3"
WinTUN: Windows Finally Gets A Good TUN Driver & It's Open-Source - Phoronix
ASCII.jp:ケーブル直結で設定なしでもWindows機の間で通信可 自動IPアドレス割り当て「APIPA」解説 (1/3)|Windows Info
ASCII.jp:Windows 10でDHCPサーバーを動かす (1/2)

スライド

Seccamp 2016 チューター成果報告
ネットワーク超入門
SAI ちょっと調べてみた - Speaker Deck
詳解 Reliable UDP - Speaker Deck
「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 - Speaker Deck
作って理解するWireGuard - Speaker Deck
L2 WireGuard - Speaker Deck
BufferbloatとLinux - Speaker Deck

POSTD

Pingの発展版 : httping, dnsping, smtpping | インフラ・ミドルウェア | POSTD

Qiita

ネットワークキャプチャデータを見る時のTips - Qiita
SLICECAP: PCAPファイルの分割並列処理 - Qiita
coturn使ってみた - Qiita
インターフェース名&PCIe BDF名を調べる(Ubuntu 16.04) - Qiita
Kazuho Okuさんのツイート: "Destinationの定義もRFC1122の定義も、ホスト間の通信で0.0.0.0を使えない、と言っているだけで、ローカルホスト内での宛先として使うのは良いのでは? / https://t.co/8scijvjgFl"
0.0.0.0にはアクセスしないこと - Qiita
Kazuho Okuさんのツイート: "RFCの解釈論はあまり意味がないんだけど、この場合、宛先の有効性の定義について「デバイス間の」というのは意図して書かれたんだろうし、1122にも同じ限定があるし、それは実際のソフトウェアの動作とも合致するんでしょ?"
お盆休みにIEEE Ethernet規格(英文:個人利用無料)を読もう。1日1000ページ目標。 - Qiita
同期通信(synchronous communication)って言わないで! - Qiita
WebCodecsで、簡易NWエミュレータ作ってみた - Qiita
DID Specifications 読み進めガイド - Qiita
TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita
ipftrace2で始めるLinuxネットワークスタック探訪 - Qiita

GitHub

ASCII Header Generator

Protocol | An ASCII Header Generator for Network Protocols
luismartingarcia/protocol: An ASCII Header Generator for Network Protocols

Mosh

Fadisさんのツイート: "sshはtcpで通信するから回線品質が悪かったり、接続元が変化したりするモバイルデバイスから使うには厳しかった。そこで「udpで正しく復号できる暗号を投げてくる奴は正しい通信相手だ」でセッションを管理するのがモバイルのためのシェル Mosh https://t.co/r0L87Svo9s"
Mosh: the mobile shell
mobile-shell/mosh: Mobile Shell

Dripcap
networkprotocol/netcode.io: A simple protocol for creating secure client/server connections over UDP
FRRouting/frr: FRR - The FRRouting Protocol Suite, forked from Quagga
keiichishima/slicecap: The Slicecap utility slices a large pcap file into small pieces and hands over them to sub process in parallel.
ldcsaa/HP-Socket: High Performance TCP/UDP Socket Component
t6x/reaver-wps-fork-t6x
Tylous/SniffAir: A framework for wireless pentesting.
yarrick/pingfs: Stores your data in ICMP ping packets
kcp/README.en.md at master · skywind3000/kcp
FadisさんはTwitterを使っています 「libuinet: FreeBSDのカーネルのネットワークスタックだけ剥がしてユーザ空間のライブラリにしたやつ https://t.co/ouXKHr5mcX」 / Twitter
pkelsey/libuinet: a library version of FreeBSD's TCP/IP stack plus extras

Wikipedia

Resource Reservation Protocol - Wikipedia
Wake-on-LAN - Wikipedia, the free encyclopedia
媒体アクセス制御 - Wikipedia
ディープ・パケット・インスペクション - Wikipedia
hikaliumさんはTwitterを使っています: 「spanning tree protocolは必要な場合を除いて切っておいた方がいいなというのを体感した(物理的に繋いでから通信可能になるまでの時間が全く違った)。」 / Twitter
スパニングツリープロトコル - Wikipedia
帯域制御 - Wikipedia
帯域幅調整 - Wikipedia
トラフィックシェーピング - Wikipedia
トークンバケット - Wikipedia
Token bucket - Wikipedia

Twitter

その他

じとめすきーさんはTwitterを使っています: "VLANつながらないところ見つけたのでWiresharkでパケット眺めてたらIOデータの機器からプロトコル0x8899のパケットが大量に出てた.調べてみたらループ検知用のパケットらしい."
なぎせ ゆうきさんのツイート: "1byteが8bitとは限らないので1octet(オクテット)と表現しないと正確じゃない、みたいな話じゃないかしら。 でも、多分技術的観点での厳密さという事情より数字を大きく見せたいという理由が強そう https://t.co/qrDWGntJMq"
辻村 伸太郎さんのツイート: "個人的にはbits/sとByte/s、生まれが違うから別の方がしっくりくるんだけれども、ここまで物理層が世の中から隠蔽された(いい意味で)の中ではByte/sを一般的に使い回す方が間違い無いのかな?というような気もするなぁ…"
豆債務超過さんのツイート: "bits/s と Bytes/s を混在させるとネットワーク屋さんがキレる"
Rockridgeさんのツイート: "Fx49:TCPウィンドウのサイズを原則としてOSの設定に合わせる一方で、Windows XPは128KB、Vista以降は512KBとした。 / “1135104 – windows upload speed limited …” https://t.co/NXbdvYY5A0"
勝(まさる)さんのツイート: "netmapとDPDK、パケットデータをゼロコピーでユーザプログラムからアクセスするという点だけ見れば似ているのだけど、それを実現する方法が違う、ということですね。"
研究千年牛酪情報保管庫菩薩さんのツイート: "世界のWebDav実装最悪だな…って言いたくなる感じのコードのところです(そして, いまつなぎたいところはこれでも動かない… https://t.co/7gLPqo3cV2"
rclone/types.go at master · ncw/rclone
Kazuho Okuさんのツイート: "僕のまわりのサーバ屋さんだとnetmap一択な感じなんだけど、ツイッターの日本語界隈だとdpdkの話ばかりなのは、なぜなんだろうと思ってる"
Hiroki Satoさんのツイート: "netdb.hにあるstruct addrinfoのメンバ変数の順番がPOSIXとRFC2133で違ってるのはどうしてなのか、誰か理由を知っていたら教えてください。調べた限りでは*BSDはF, NがRFC, OがSUS, SolarisはRFC, LinuxはSUSになってるもよう。"
Hiroki Satoさんのツイート: "FreeBSDのgetaddrinfo(3)のmanpageはSUSの原稿を許可もらってそのまま入れたのだけど、そのせいでずーっと実装と違う順番の構造体定義が書いてあったようだ。macOSもFreeBSDから持って行ってるので同じ間違いが。"
SODA Noriyukiさんのツイート: "NetBSDにも同じ間違いがあった。 この変更が入ったのは FreeBSD: https://t.co/oJUD2d5BO1 NetBSD: https://t.co/R3bEk73zqy なので KAME Project / WIDE Project に知ってる人がいそう。 Solaris 9 は実装もmanもRFCと同じだった。 https://t.co/VMItWtp1lP https://t.co/ln9xVB3kPI"
神明達哉さんのツイート: "RFCとPOSIXでメンバの順番が違うのはなぜか、についてですか?うーん、わからないですね…basic APIドラフトの著者がOpen GroupとのリエゾンみたいになってPOSIXに取り込んだ、という経緯だと記憶してますが、その間のどこかで順番が変わったけど誰も気にしなかった、くらいが実情かもしれません。… https://t.co/kbOBUBxzSo"
神明達哉さんのツイート: "もしかするとOpenBSDの誰かがPOSIXへの取り込み作業に絡んでいたとかかもしれないですね。あるいはPOSIXのドラフトが途中で公開されててそれを参照したとか。まあすべて推測でしかないですが…いずれにせよ、2003年のRFC3493でも違ってるままなので「誰も(大して)気にしなかった」ということでしょう:)… https://t.co/lK2LOKHcbY"
西塚 要さんはTwitterを使っています 「なぜMTUが1500byteか。それは80年代のケーブル上の電気信号の制約に遡る。しかし今となっては、どれだけ通信が無駄になっているか。この人の記事はいつも面白い。 https://t.co/I7ttPsRoXr」 / Twitter
Ben CoxさんはTwitterを使っています 「"Why is the MTU of Ethernet 1500 bytes?" A question I asked myself a few nights back and could not find a quick response to. So after many days in a rabbit hole I present: --- How 1500 bytes became the MTU of the internet https://t.co/7s2zFxdQHV https://t.co/gJsYv6LgJg」 / Twitter
How 1500 bytes became the MTU of the internet
にゃははー仙人さんはTwitterを使っています 「@uchan_nos @TumoiYorozu 原則じゃない理由としては大体のfirewall実装がpentalobe(プロトコル、送信ip、送信port、受信ip、受信port)を記録してステートレスにnaptを管理するので、それに一致しない場合は落とされます。これはUDPにも同じ実装ができるので、強めのfirewallでは落ちる場合があります」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapデバイスをオープンしているプロセスは、tapデバイスに書き込まれたパケットを受信します。ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってるはずで、自作プロトコルスタックに(OSのプロトコルスタックがtapに書き込んだ)10.0.0.2 宛のパケットが届きます。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 10.0.0.1 宛のパケットはOSのプロトコルスタックが処理するので 10.0.0.1 に対する ARP や ping はOSのプロトコルスタックが応答します(自作プロトコルスタックにはパケットは届きません)。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapは仮想Ethernetデバイスなのでtapに書き込まれたパケットは(見えないケーブルを通じて)何処かに送られていきます。その "何処か" がtapデバイスをオープンしているプロセスです。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 そのプロセスが 10.0.0.2 宛のパケットだけを処理するなら 10.0.0.2 というノードが存在するように見え、10.0.0.3 や 10.0.0.4 宛のパケットも処理するなら 2台、3台のノードがtapデバイスの先に存在する、というようにOS側からは見えます。」 / Twitter
おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 &gt; ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってる これはip addr add 10.0.0.1/24 dev tap&lt;num&gt;した時に自動的にそのようになるのでしょうか?(僕の理解が浅く、コマンドの仕様なのかIPアドレスの概念的に当然そうなるものなのか分からないです・・)」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです。デバイスにIPアドレスを設定したタイミングで同じサブネット宛のパケットがそのデバイスから出力されるようにルーティングエントリが自動で追加されます。 microps だとこの辺でやっている処理です。https://t.co/D9ECE96QBV」 / Twitter
microps/ip.c at rebuild · pandax381/microps
おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 やっと理解できました・・!!本当にありがとうございます🙇🙇 pingで10.0.0.2に届くARPパケットの送信元が10.0.0.1なのは、仮想Ethernetデバイスとして振る舞うtapデバイスから10.0.0.2のノードへパケットが転送されているからという認識で合っているのでしょうか?(何度もすみません)」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです👌 tapデバイスをオープンしているプロセスがARPリプライを返せばOSのプロトコルスタック側からtapの先にノードが存在するように見え、なにも返さなければ存在しないように見えます。 なお、ARPのリプライやEthernetヘッダのMACアドレスは任意の値でも動作します。」 / Twitter
FadisさんはTwitterを使っています 「DPDK、Linuxのtapに対してパケットを喋れるから、実は蟹のNICでもDPDKを動かせないことはない(性能が出るとは言っていない) #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「VM上でDPDKするときはCPU pinningしておかないとエミュレータがCPUを剥がしにくるのか… #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「iperfで計測するとそこでLinuxの限界にぶつかるので計測する側もDPDKw #kernelvm」 / Twitter

エンドポイント

Kazuho Okuさんのツイート: "「endpoint: Either the client or server of the connection.」(RFC 7540 section 2.2.)はじめ、サーバを含む用例はいくらでも思いつくけど、積極的に「クライアントのみ」をendpointって呼んでる用例はあるのかしら… https://t.co/N5bU8oaJSJ"
徳丸 浩さんのツイート: "エンドポイントという用語はクライアントPCやスマートフォン等の端末のことで、サーバーは含まないと思っていたのですが、用例によってはサーバーも含むようですね。皆様の「語感」を教えてください。エンドポイントという用語は、サーバーを含む or 含まない?"
Kazuho Okuさんのツイート: "ある外来語を特定の文脈でしか見たことのない人が、その語本来の意味が何か推測できない場合、その特定の文脈での用法でしか使わないものと勘違いすることはあるんだろうなとは思うけど"
Shigeki Ohtsuさんのツイート: "RFC7540(HTTP/2)ではサーバを含むと定義しています。 "endpoint: Either the client or server of the connection." https://t.co/gLLMdIOZrm https://t.co/rtXWQ3WIGm"
RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
Shigeki Ohtsuさんのツイート: "RFC8446(TLS1.3)でも同じ定義ですね。 https://t.co/wmDVJqlFac"
RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3

sendmsg() / recvmsg() で他プロセスに fd を送信

るくすさんのツイート: "本来はrlimitに引っかかってソケットは一定数しか作れないのに、socketpairを親子で再帰的に作って、子プロセスでcloseした後sendmsgで親に閉じたfdを渡していくというのを繰り返すと、好きなだけソケットが生成できるという仕様があるらしい。 すごい"
SODA Noriyukiさんのツイート: "UNIXドメインソケット使ったこの機能、4.2BSDくらいで入った筈。 自分はファイルサービス用デーモンがクライアントと同じホストで動いてる場合、クライアントに fd 渡してクライアントプロセスが直接バックエンドで管理されてるファイルに書き込んだりする機能とかで使ってるなあ。 https://t.co/HUosUNlBSk"
るくすさんのツイート: "File descriptor passing with sendmsg(2) and recvmsg(2) over Unix domain socket https://t.co/OUWgZVEkgd え fdってソケットのCMSG使ったら送信できるのか"
SODA Noriyukiさんのツイート: "OSがもともと提供する権限機構とは別の自分で定めた方式で権限委譲できて大変便利ですよね。 https://t.co/XIkZpw3jjt"
AoiMoeさんのツイート: "デスクリプタパッシング、setuidビットを立てたヘルパー実行ファイルと組み合わせると便利"
SODA Noriyukiさんのツイート: "ちなみに 4.3-Renoで API が変ってます。昔は struct msg_control に msg_control メンバーがなくて、代わりに msg_accrights があった。Stevensの「詳解UNIXプログラミング」第15章に解説アリ。SVR4は古いAPI。"
るくすさんのツイート: "@uchan_nos ん まずfdはシステムワイドなstruct fileへのポインタなので、特に違和感なく出来ると思いますよ。sendmsgの場合は受信元でfdが変わりますが、これは単にfork時に引き継がれたfdと区別するためなのかなと推測します。"
るくすさんのツイート: "@uchan_nos ああ URL先を見て頂けると書いてあるんですが、sendmsgの場合は単にFD番号を送っているのではなく、FDを開き直して新しいFDを送ってます。(4,5です) カーネルがよろしくやってるのかと。"

masscan

Miura HidekiさんはTwitterを使っています 「https://t.co/CsHAQK84yc こんなコードが超高速とは思えないが不思議」 / Twitter
masscan/crypto-blackrock2.c at master · robertdavidgraham/masscan
Shiro KawaiさんはTwitterを使っています 「@miura1729 最適化かけても特別なインストラクション使うわけじゃないですね。でも多分ここが律速じゃないんでしょうね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 昔ICMPでmass tracerouteするやつ作ったことありますが(まっとうなとこからの依頼)、そこらじゅうでパケット落とされるので辛かったっすね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana ICMPやっぱり通らないんですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana この書き方をすると、1の立っているもっとも右のビットの位置を返す命令を生成する可能性はあるだろうけど、コメントに書きそうなものですよね。ホットスポットじゃないので手を抜いたんでしょうかね」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 gcc 7.5ではベタなコードになってました。まあ全部レジスタ内なので、他でキャッシュミス1個あればどうでも良くなる話ではありますね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど。たしかにどうせネットワークを相手にしているわけなのでそういうところをチューニングした方が得策でしょうね。」 / Twitter

users

@mhiramat

まさみさんは語りたいさんのツイート: "loopデバイスは一応drivers/blockの下にあるからブロックデバイスとして認識されるはずなのか。"
まさみさんは語りたいさんのツイート: "未だout-of-treeのWifiドライバも多いんですよね・・・。… "
henrichさんのツイート: "freeではない(OSSではない)firmware blob提供してるベンダーに言ってもらわないと、どうしようもないんだな、これが。あるいはunofficial image使う。… "
denden2501@ゴーゴーさんのツイート: "頼むからぁ debian さぁ Wifi くらい自動認識しろよ…… "
まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"

@shirouzu

histric-1

SHIROUZU(白水啓章)さんのツイート: "linuxのtcコマンドのように、NICに latency / jitter を設定できないかな…netshとかにあるといいのだが。試しにWSL上のtcを使ってみたが、Cannot talk to rtnetlink: Operation not supported となった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40G NIC同士の直結転送で転送レートが波打つ(綺麗に規則的に)原因が今のところ謎…。 10G NIC同士だと、綺麗に10Gbps近隣で安定。 また単独動作だと、PCIe*2なSSDアクセスで48Gbps、RAM-Diskで80Gbpsで安定。 割り込み&上位層までのコピー・結合コストあたりか。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Mellanox 40G NIC、UDP sock 3つを投げっぱなしでようやく、40Gbps達成!(笑)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "udpでのwritev(iov)相当は、sendmsgもしくは(udp_sockに)connectを掛けた上でwritevと。 Win系だとIOCPとRIOの組み合わせになるのかしらん?(要調査)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb NICのWin10Pro同士で、FastCopyでの転送実験。 ほぼ10Gbpsまで速度が出る。 ジャンボパケットOFFだと、6Gbps前後に速度低下。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "(少なくともL2レイヤでは)ジャンボフレームは自動選択できるようにならないものかしらん。 (この記事ではDIXフレームにサイズフィールドが無いので…とあるが本当にこれが理由なのか、やや疑問に思うところも) https://t.co/wgrieGFGJo"
【10GBASE-T、ついに普及?】10GbEでは「Jumbo Frame」が効果的、1Gとの混在環境ではMTUサイズに注意【期待のネット新技術】 - INTERNET Watch
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb高レイテンシ環境を作るには、10Gb NIC2枚刺しPC(Linux)を調達してブリッジさせるのが一番良いかな。 次はCoffeeLakeではなくて、Ryzenマシンにしてみよう。 (satさんのおかげか、最近は不安定という話が聞こえてこない)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10G NIC2枚刺しにするか、10G dual-port にするか、微妙に迷い中。 PCI-E Gen3とGen2で結構な価格差がある様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "新しいPCのための部材発注が終わった。 10GブリッジなLinuxマシンとして動作させることがメインなので、検討した結果、 i3-8100 という選択になった。(グラボなし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のNIC は Intel X540-T2 という 10Gb dual port に。 ASUS 10G のJumbo Frame最大は約16KBだったが、Intelは15.5KBと書いてある…X540-T2をブリッジで使うなら、全てを9KBで統一した方が安全かな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、ブリッジモード + tcコマンドで、結局10Gpbs出ない可能性が一番気になる点だが、さてどうなることやら。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500で、NAT descriptorを2つ定義した上で、ip route gateway ... filter ... gateway filter という形で、1G回線と100M回線をsrcのipaddr範囲で使い分けるようにしてみる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2用Linuxドライバは自分でmake install。 すると ixgbe.ko がインストールされ、(念のためrmmod ixgbeした後)modprobe ixgbe とすれば、dmesgに enp2s0f0: renamed from eth0 等と出るはずと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで10Gbitなブリッジを作る件、目論見通りに動作。 Win10 -- Linux(Bridge) -- Win10 という経路で、FastCopyで転送実験した時の模様。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ブリッジに遅延を入れた場合のSMBの速度変化。 10ms - 10.0 Gbps 50ms - 2.5 Gbps 125ms - 1.0 Gbps 250ms - 0.5 Gbps"
Shirouzu Hiroaki(白水啓章)さんのツイート: "パケットロスを0.1%でも入れると、125ms latencyで 20Mbps ~ 200Mbpsで波打ちつ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2 の dmesgメモ。 ixgbe: Multiqueue Enabled: Rx Queue count = 4, Tx Queue count = 4 XDP Queue count = 0 ixgbe: PCI Express bandwidth of 32GT/s available ixgbe: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%) ixgbe: Intel(R) 10 Gigabit Network Connection"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbps相手だと1.5GB/sec程度の性能があれば十分だけど、できれば3GB/s程度のストレージを用意したいところ。 (ピーク速度3~6GB/s出る環境はあるものの、持続するのは15GB程度の領域までなんだよなぁ…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで10Gbps NIC 経由100GBファイルコピー。 結果は80.0秒、ネットワーク転送レートは 9,898.6 Mbpsという結果。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "5MB程度の大量をネットワーク越しに処理する場合、(少なくともSSD同士なら)並列処理した方が明らかに速い。 Read/Writeと違って、CreateFile/CloseHanldeには非同期処理が無い、という点が大きいかもしれない…まだ探求すべき点は結構あるなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ジャンボフレームOFFでも、ほぼ10Gbps出るように。 (前回は片側がRAM-Diskだったため、(CPU全体では余裕があったが)1コアの天井を打っていた可能性…あとで確認しておこう。今回は両側でM.2 SSD)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験メモ。AES128CTR暗号化、CoffeeLake-S世代(3.6GHz)で1.5GB/s、さくらVPS東京(Xeon E5-2650 2.60GHz)で 698MB/s、さくらVPS大阪( Westmere E56xx/L56xx/X56xx)で 534MB/s。 いずれもAES処理に1コア使い切り状態で。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最新CPUで複数コアを使えば、10GbpsネットワークでのAES-CTRがギリギリこなせるレベルかな。GCMになると厳しいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500のDHCPD、ログ出力が頻繁に出て(抑止方法もない)、他の大事なログが埋もれてしまうため、自宅サーバ側に isc-dhcpd-serverを立てた。 ただ、ISCとしては isc-dhcp よりも kea dhcp server が一押しらしい。 (リース情報をテキストファイルではなく、PostgreSQL等に格納するらしい)"

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度調整、そこそこ低コストで妥当なロジックを思いついた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作中時間 T が総時間の R%(=r) になるよう、スリープ時間 S を計算する、という中学レベルの方程式を計算した。 結果、S = (T - rT) / r となった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、OS側バックグラウンド処理があると過剰に処理が進むし、シークの連続性が失われることで過剰に遅くなることもありえて、純粋なSleepでの速度調整というのは、もともと無理があるけれど。 (実際に全力writeして最高速度を求めた後に、最高速度*rへ調整しない限り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2(10G*2port)はPCIe Gen2なので8レーン仕様だが、X550-T2はGen3なので4レーン仕様。 20Gbps以上を非サーバ系マシンで使う場合、Gen3対応でないとPCIeレーン数不足になりやすいので気をつけないと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 + ASUSの10G NICで、1.5KのUDPを大量に送り付けられると(受信プロセスは無くとも)、その間フリーズしてしまう。(マウスすら動かない) Linux + Intel X540だと、そんな現象は起きないので、OS or ドライバの作りの問題かしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "特定コアで処理しようとして固まっている印象なので、RPS/RSSをサポートしていないという話? なお、9K以上の大きなUDPパケットになると問題は起きなくなる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(WS)+ASUS XG-C100C と Linux(4.17)+Intel X540 では、ジャンボフレームなしでも、TCP性能はあまり変わらないが、UDP受信性能が大幅に違う。(後者が良い。前者はそもそも固まる) 前者のダメっぷりはOS/ドライバに起因するのか、ハードウェアに起因するのか…面倒だがHW交換してみるかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "azure東海岸とUDP通信すると、転送レートが飽和するのは、0.02%くらいのロス率を越え始めたとき。820Mbps前後。 ちなみに、100Mbpsでもロス率0.002%で、0%にはならない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarm運用、10.7PB、1.1億ファイルで、5ファイルの書込後のデータ破損を検出。(I/Oエラーなし) ちなみに、gfarmのベリファイは、src読込時のテンポラリエラーも検出できるのだろうか? (そのためには、srcを2回読んでhash計算も2回行う必要あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmでは、md5やsha1等を検証に使っているとのことだが、md5やsha1は並列演算が難しいため、速度ネックにならないのだろうか? ハッシュツリー化して並列演算対応したり、xxhash等の圧倒的に軽いhashを使う、などの構想はあるのかしらん? https://t.co/z7b9P7UEVs"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの場合、I/Oよりもmd5が速度ネックとなる事態が発生。 そこでストライプによる並列演算プロトタイプを作ったが、xxHash最適化でI/O速度を十分超えたため、まずはxxHashをデフォルトとすることで、問題解決とした。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Read I/O、Write I/O、src-hash計算、dst-hash計算、全てが独立スレッドでパイプライン的に動作させていたのだが、まさかhash計算がネックとなるとはと思った記憶。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmの5件のデータ化け、どういう化け方をしていたのかにも興味がある。 僅かな個所のbit flipしていたのか、I/O単位で丸ごとデータ化けしていたのか等。 (FastCopyで1例だけ、高負荷でバスリセットが何度か掛かった挙句、上位にエラーを通知なしにDMA転送が数ページ欠落と思われる事例あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ASUS 10GNIC(XG-C100C)、UDPで大量通信するとドライバが死んだ。 昔から、安物NICはアプリ側UDP通信に弱いの個人法則。 (昔のカニドライバ、UDPでギリギリでIPフラグメントが発生すると常に受信破棄とか、Win3.1時代、UDP通信すると不安定になるベンダドライバを思い出したり)… https://t.co/0gpJ3TnR8X"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いまだに、RealTek NIC の UDPチェックサム・オフロードのバグが無くならない…困ったものだ。 https://t.co/sJKkwN9Nkt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ペイロードが1501~1563byte(octet)、のようにギリギリでフラグメントが発生するUDPパケットでのみチェックサムが狂い、受信先によって捨てられてしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、NICをswapしても結果変わらずだった。 つまり、Windows(Pro for WS)では、UDPパケット受信 → recvfromまでのどこかで、処理が追い付かない。(TCPなら問題なし) これはLinuxのNAPI的な仕組みがないということかな? https://t.co/GE3f7qsLGf」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これを見るとドライバ依存ながら、NAPI的な処理はやっているっぽい? https://t.co/JHy3or3NLv それと Linux softirq に相当する DPC(Delayed procedure call)もあるので、なおさら謎…(存在するれどUDPで使われない場合がある?)」 / Twitter
NAPI for windows — OSR
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tss_ontap 90年代にオンライン情報処理を取ったときも、アーランやM/M/1のあたり必須知識でしたね。 (そして「トラヒック」というNTTだかJISだかの表記がずっと使われていたり)」 / Twitter

@fadis_

Fadisさんのツイート: "pub/subモデル: subscriberがtopicに参加し、publisherがtopicにメッセージを送るとtopicに参加しているsubscriberにメッセージが送られるモデル #boostjp"
Fadisさんのツイート: "いにしえのネットワークプログラミングではクライアント毎にスレッドを立てて処理したりしたけど、スレッド作りすぎるとコンテキストスイッチのオーバーヘッドが大変な事になるから非同期でネットワークI/Oしよう #boostjp"
Fadisさんのツイート: "複数のスレッドでio_serviceをrun()するとタスクの実行順序が保証されない。「参加」「脱退」「配信」をそのまま流すと脱退前に用意した配信が脱退の処理を完了した後に実行されてしまう恐れがある #boostjp"
Fadisさんのツイート: "そこでasync_writeの中でコネクション単位のキューを用意し、同じコネクションに対する書き込みは順序が保証されるようにした、と #boostjp"
Fadisさんのツイート: "RFC4614 A Roadmap for Transmission Control Protocol (TCP) TCPの拡張が多すぎて何処に何があるか分からんから「まとめ」を作りました、と https://t.co/Y0Lkfhfwe8"
RFC 4614 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents
Fadisさんのツイート: "さくらVPSがPS4を自称して通信を待ち受けてたりするけど不審な者ではありません(IPoEにIPv4しか喋らないPS4のP2Pな通信を乗せるにはIPv6でVPSにVPNを張って、PS4からのブロードキャストをVPNでVPSに投げて、UPnPのパケットをそこで拾うしかなかった)"
Fadisさんのツイート: "SCTPはVerification Tagと呼ばれる32bit値をハンドシェイク時に通信相手と共有している。SCTPはVerification Tagを通信相手の識別に使える為、ソースIPアドレスを通信相手の識別に使うTCPと異なり、通信の途中で送信元のIPアドレスが変わってもセッションを維持する事が出来る"
Fadisさんのツイート: "systemdの人達がIPv4の衝突検出、IPv6の近傍検索、DHCPといったネットワークの設定をするソフトウェアに必要になる基本的な機能をライブラリ化したオープンソースライブラリを公開。その名もnettools (ifconfigとかで知られるnet-toolsとは全くの別物) https://t.co/62fDlRcciT"
Linux Is Getting New Network Libraries From Veteran systemd/BUS1 Developers - Phoronix
FadisさんはTwitterを使っています 「Linuxのネットワークまわりを網羅的に解説する為に要求される知識幅広すぎ問題( 一体幾つの輻輳制御アルゴリズムとQoSを実装してんだ。お前はIPXを、AppleTalkを覚えているか。iptablesが第四層を読んでいる、だと。そもそもTCPがでかい。よーしカーネル自力でDHCP喋っちゃうぞ。Open vSw(以下略」 / Twitter
FadisさんはTwitterを使っています 「802.3adはリンク毎の帯域に基づいてパケットを割り当てる為、パケットの送受信の時刻を必要としている。ところがDPDKはNICをポーリングで操作する為ポーリング間隔が大きくぶれると正確な帯域の変化が計算できない。この為802.3ad使用時は100msに1回は送受信しろ、とドキュメントに書かれている」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.18でメインライン入りしたがっているネットワークスタックの改良の話。io_uringのzero copyでdummy netdevにパケットを投げた場合(つまりCPUのみがボトルネックになる条件)に単位時間あたりに送ることができるIPv6のUDPのパケットが5%程増える https://t.co/RERZLCWUas」 / Twitter
UDP IPv6 Optimizations Queued Up For Linux 5.18 - Phoronix
FadisさんはTwitterを使っています 「ip6_make_skbは通常呼び出し元から渡された宛先をclone(refcnt++)してskbに結びつけるが、パケットがUDPの場合この関数の呼び出し後に宛先は使われずにrelease(refcnt--)されるため、このcloneとreleaseをセットで省略することでatomicなメモリアクセスを2回減らせるらしい」 / Twitter
FadisさんはTwitterを使っています 「この他にも必ずしも必要では無い構造体のゼロクリアの廃止や、関数の先頭で行われている分岐を関数に入る前に行う事でcallのオーバーヘッドを回避する等の最適化が行われている。個々の最適化は小さいが1パケット毎に行われる処理なので積み重なって上記のような差がでるらしい」 / Twitter

@kazuho

histric-1

Kazuho Okuさんのツイート: "TCP_NOTSENT_LOWAT をゼロにしたら ssh がハングする問題、デバッグするためにコンソールつなぐのがめんどくさくて切り分けませんでした #spkai"
Kazuho Okuさんのツイート: "sockaddr_unがsockaddr_storageよりでかくなることがあるSolarisと、getsockoptにsizeof(sockaddr_storage)より大きいサイズ渡すとエラーを返したlinuxか。つらい #spkai"
Kazuho Okuさんのツイート: "すっごいマジレスするとTCP接続本数を増やすことでダウンロードが高速化されるのは、回線の途中で輻輳が発生している場合のみで、つまりその場合は他のTCP接続に割り振られるべきバンド幅を奪ってる。途中の回線で輻輳が発生していない場合はTCP接続1本が最速で、複数本接続すると遅くなる"
Kazuho Okuさんのツイート: "「UDPはトランスポートレイヤプロトコルではない。IPパケットを多重化するための仕組みである。本来はIPレイヤにポート番号が入っているべきだった」 #ietf96j"
Kazuho Okuさんのツイート: "snd_wnd と snd_cwnd と inflight を一度に取れる OSX 最高!他のOSは全部イマイチ、という結論になりつつあるw"
Kazuho Okuさんのツイート: "パケット単位でコンテクストスイッチが必要になるTCPサーバで、カーネル内にTCPスタックがあることがオーバーヘッドになるというのは昔からある話であり、一方でそのようなアプリはあまり多くない"
Kazuho Okuさんのツイート: "そして、パケットよりも小さいメッセージを大量にやりとりするシステムでは、TCPスタックの位置を寄せることよりも、各エンドポイントで複数のメッセージをとりまとめ、少数本のTCPストリームに多重化するほうがパフォーマンスが稼げる。なぜならパケット数が減るから"
Kazuho Okuさんのツイート: "というわけで、僕は、パフォーマンスの観点からはユーザランドTCPに懐疑的です"
Kazuho Okuさんのツイート: "寄せるとしたらユーザランドに寄せるべきですし、実際quic対応でトランスポートの独自実装を進めてますね https://t.co/ZTm4PyhnEj"
Kazuho Okuさんのツイート: "“c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow” https://t.co/XdY35puqSg"
c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow
Kazuho Okuさんのツイート: "トランスポートにおいて「path」がIPアドレスの組を指すのか、4-tuple(ポート番号を含む)を指すのかは形而上の議論のあるところだと思うけど、個人的には「address validation」あたりの用法がIPアドレス「とポート番号」を指して「アドレス」と呼んだりするので諦めてる"
Kazuho Okuさんのツイート: "2RTTくらいの遅延を許容できるならFEC使わない方が帯域増えてうれしいよねという基本的理解"
Kazuho Okuさんのツイート: "そろそろ日本語がやばいというか、congestion controlの日本語訳が輻輳制御なのはわかっても、loss recoveryの日本語がわからない"
Kazuho Okuさんのツイート: "再送制御と呼ぶような気がしてきた"
Kazuho Okuさんのツイート: "微細化が壁にぶちあたりつつある影響の話、インターネットプロトコル屋さんからすると、光の速度はずっと不変だし、速くなるCPUと広がるバンド幅をより上手に使いたいという要求は今後もかわらないでしょ?という感じな気がする"
Kazuho Okuさんのツイート: "再送制御の応答性に対する要求というのは、昔から一貫してあるもので(なぜなら光速は不変だから)、インターネットのバンド幅の拡大に伴いレイテンシがボトルネックになったというのとは全然関係ない話ですよ"
Kazuho Okuさんのツイート: "5GだとRTTの変動が激しくてトランスポートがパケロスと誤認するという話。おもしろい。この資料公開されるのかしら #html5j #html5j_h"
Kazuho Okuさんのツイート: "うーん。ちゃんと考えると、単なるRTTの増大をQUICがパケロスと誤認することはないんだよね(リオーダーが絡むとありうる)。BBRが誤解するのはわかる。再送・輻輳制御のチューニングとしては今後課題になるんだろうなぁ"
HTTPP and 5G fixed1
Kazuho Okuさんのツイート: "TCPの場合は、再送制御でロスを検出したらCWND縮小してたけど(そののちにspuriousだと判断したら拡張)、QUICはspuriousの区別ができるので、ロスが確定したタイミングでCWND縮小するという違い"
Kazuho OkuさんはTwitterを使っています: 「相手が何も送ってこないならwrite直後にcloseしていいし、readがゼロを返すのは相手が書き込み側をshutdownした時」 / Twitter
Kazuho OkuさんはTwitterを使っています 「16KBはだいたい妥当なイメージだけど、L1$を全部上書きしちゃわないかは気になる」 / Twitter
Inada NaokiさんはTwitterを使っています 「OSのソケットバッファからユーザーランドの受信バッファへのコピーするときのバッファサイズってどれくらいあれば効率良いのかな。 16KiBでもケチりすぎかな。」 / Twitter
Inada NaokiさんはTwitterを使っています 「https://t.co/E7cGucNIkI MySQLのデフォルトは16KiBなのでとりあえず今の4KiBは小さすぎる。」 / Twitter
MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.4 サーバーシステム変数
Kazuho OkuさんはTwitterを使っています 「pipeだとすると両プロセスは別コアになって並行動作するからそれぞれのプロセスにおけるワークセットサイズ問題になるんだろうか / https://t.co/15H57eIxNy」 / Twitter
go-sql-driver/mysql のバッファサイズが4KiBなのは小さすぎる?? - methaneのブログ

Kazuho OkuさんはTwitterを使っています 「会社ブログのネットワークパフォーマンス記事、自前のUSBイーサネットアダプタで書いた私がとおりますよ https://t.co/ybtQa2m56t」 / Twitter
Can QUIC match the computational efficiency of TCP? Our research says yes. | Fastly
Kazuho OkuさんはTwitterを使っています 「必要な時に必要な機材にアクセスできることは重要だけど、デチューンした環境を使えば済む話ってのは、いっぱいある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ただ、これは性能改善のための指標がほしい開発側の論理なので、普段、容量設計のために絶対値を求めがちな運用側の人に言うと、ぽかんとされることがある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「WebTransport はともかく、本格的にやるならTCPよりQUIC勉強したほうが良いのは間違いないと思う。TCPは歴史的事情から開発コストに対して得られるメリットが小さいが故にメジャーなプレイヤーがQUICに移行したわけで、じゃあ今後誰がTCPに投資するの、という」 / Twitter
VさんはTwitterを使っています 「WebTransport / QUIC / HTTP/3 はいろいろな場面で使えると思っているので、引く手あまただと勝手に思ってます。」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「いまQUIC勉強して入れる会社ってCDN屋さんかブラウザベンダー、あと時雨堂?とか考えたけど、前職でATSのHTTP2対応パッチ書いた人たちはAppleに転職していたし、GAFAはじめ行けるところは結構あるのかもね」 / Twitter
VさんはTwitterを使っています 「いまなら QUIC を勉強して人生一発逆転だ!はどうでしょうか。」 / Twitter
小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「プログラミングを勉強して人生一発逆転だ!と考える人が多いのに、TCP/IPを勉強して人生一発逆転だ!と考える人が稀に思えるのは何故なのか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「一方で、パフォーマンス出るTCP+TLS自前実装するより、QUIC実装するほうが、だいぶ楽だとも思う。TCPやりたくない(やらない)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「TCPって自転車を魔改造して高速走れるようにしたみたいなもんで、自転車は作れたとしてもそこからの積み上げが死にそうなんだよね。QUICは最初からエンジン含め高速用に設計された四輪車なので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RFCのMUST,SHOULD,MAYといったキーワード、定義はRFC 2119になるけど、命令とか推奨というより、 * MUST - 守らないと問題が出るかも。出たら自分のコードを直すしかない * SHOULD - 守らないと問題が出るかも。出たら相手側に直してもらってもいい (続く)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* MAY - やってもやらなくてもいい。問題が出たら相手側に直してもらう くらいの認識」 / Twitter
Kazuho OkuさんはTwitterを使っています 「法律ではなくて相互運用性を確保するためのルールなので、問題発生時の切り分けのためのガイドラインであって、それを予め守っておけば問題の発生可能性を下げておくことができる、くらいの。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「メモ: CLOSE_WAITステートのソケット全消しは   ss --tcp state CLOSE-WAIT --kill でできる cf. https://t.co/GX00GENPQp」 / Twitter
linux - How do I remove a CLOSE_WAIT socket connection - Stack Overflow

@rui314

Rui Ueyamaさんのツイート: "OSI 7層モデルを使ってプロトコルを教えるのはやめたほうがいいんじゃないかなぁ。OSIは過剰設計で誰も使わなかったわけで、そのモデルを説明しても仕方ないというか、実際のEthernet/IP/TCPを直接普通に説明すればいいだけのような。OSIにどうマップされるかはトリビア的な… https://t.co/ftfQfxzJkr"
Rui Ueyamaさんのツイート: "もはや意味がないのになぜいまだにOSI参照モデルを使って実際のプロトコルを教えているのかというと、きちんと教える=OSIモデルを説明する、という固定観念があるだけだと思う。そろそろ自分がそう教わったから同じことをそのまま教えるというサイクルは切った方がよいような。"

@kumagi

kumagi2.0さんのツイート: "c10K問題に続きc10M問題というのがあって、コア数程度のスレッド数でO(1)なselectで適切にソケットを扱っても、ネットワークパケットをカーネル空間とユーザ空間の間でコピーするコストだけで性能がサチってCPIがガタ落ちするとかいうやつ。"
kumagi2.0さんのツイート: "1千万接続を超えるあたりで性能がサチるc10M問題にどう対処するかというと、DPDKみたいな方法でカーネルを経由せずに全部ユーザ空間でゼロコピーでやるようにするとか言ってて世の中こわいですね。"

@methane

INADA Naokiさんのツイート: "輻輳じゃなくて無線環境によってパケロスが生じるモバイルの場合はどうなんだろう?>複数TCP"
INADA Naokiさんのツイート: "無線だと、スループットはそこそこあるんだけど、遅延が大きく、パケロスも多い、っていう環境なんで、TCPの性能発揮しづらそうなんだよな。"

@KuniSuzaki

suzakiさんのツイート: "データセンターネットワーク4つ目。カーネルバイパスする高速TCPの研究は良いが、現在のTCPは複雑であり、カーネルスタックを使わないのは賢くない。特にカーネル内でTCP/IP ネットワークスタックは高速であり、問題はIOである。この問題を解決するstackmapの提案。"
suzakiさんのツイート: "Stackmapではカーネル内で静的なバッファ割り付やFile Descriptor arrayとScratchpadのデータ構造を追加し、カーネル内で高速IOを実現。カーネル内のTCP/IP スタックは再利用する。"

@marbocub

まあぼ@cubさんのツイート: "だから「数字を大きく見せたいからbpsじゃないか」みたいなモノとはぜんぜん違う。"
まあぼ@cubさんのツイート: "僕はネットワーク屋さんじゃないからキレないけど、混同されると「ああこの人は分かってないんだな」って思った後で、相互の理解の一致に至るまでのハードルの高さを感じて身構えたりする"
まあぼ@cubさんのツイート: "イーサネットなんてフレームサイズやプロトコルなどの条件を仮定した場合での表記になっちゃったら、かえって面倒だと思うの"

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"研究所が開発している”HOLISTIX”は、GUIでネットワークを設計(Plan)し、自動的に通信機器(ルータなど)の設定を生成、動作確認(Verify)から実際のルータへの設定反映(Deploy)までを行う集中管理ツールです" / “JANOG48 IIJ バーチャルブース | IIJ Engineers Blog” https://t.co/eCEBn7fuhg」 / Twitter
JANOG48 IIJ バーチャルブース | IIJ Engineers Blog
伊津野 英克さんはTwitterを使っています 「0始まりで8進数って仕様、いろんなプログラムでバグの温床になってて本当に誰も得しない仕様だよなぁ。」 / Twitter
高梨陣平さんはTwitterを使っています 「GoとRustのnetモジュールにIPアドレスの解釈に脆弱性。IPアドレスの表記にleading zeroを用いた場合、0が単純に捨てられる。IETFのオリジナルの仕様では0で始まる数値は8進数として扱う必要がある。 元々、Pythonで同様の誤りが指摘されていた。」 / Twitter
Go, Rust "net" library affected by critical IP address validation vulnerability
BleepingComputerさんはTwitterを使っています 「Go, Rust "net" library affected by critical IP address validation vulnerability - @Ax_Sharma https://t.co/iH7OBtzxVI」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プロトコル設計のさいの堅牢性の原則「自分が送るときには厳密に、受け取るときは寛容に」は結果的にみると有害である。これにより仕様の曖昧な箇所の誤解・拡大解釈が拡大され、エコシステムがそれに依存して「バグも仕様の一部」となり、軌道修正が不可能になってしまった。 https://t.co/xbtTkKTJRI」 / Twitter
The Harmful Consequences of the Robustness Principle

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば TCP/IP というより、socket I/F にイマイチ感を昔から感じてたり。 0byte の recv/read に大事な意味持たせるとか、recvfrom に dest addr 無いとか。」 / Twitter

USB

その他

hwhack: ugenでラピッドプロトタイピング(*BSDでUSB)
『*BSDでのUSBデバイスドライバーの実装』 2003年10月18日 OFUG勉強会資料
USB-仕様 - SyncHack
USB.org - Welcome
Universal Serial Bus - OSDev Wiki
USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで|Tech Village (テックビレッジ) / CQ出版株式会社
電子工作室
ディスクリプタ | ルネサス エレクトロニクス
FAQ 1004570 : USB HUBコントローラでTransaction Translator (TT) とはなんですか?また、"Single" と "Multi" とはなんですか? – ルネサス エレクトロニクス株式会社
Type-C、WiGig、AirFuel……:2016年に期待のPCテクノロジー“5選” (2/3) - ITmedia PC USER
現代PCの基礎知識(7):仕様書を紐解くとわかる―本当はややこしいUSB | Think IT(シンクイット)
NetBSD で USB デバイスを強制的に ugen(4) として attach したい - nikki
USB-PD Sniffer - The Chromium Projects
USB3.0のデバドラを書いてみた - livaの雑記帳
mvp/uhubctl: uhubctl - USB hub per-port power control
uhubctl/uhubctl.c at master · mvp/uhubctl
View any installed/connected USB device on your system
USB/Descriptor - SyncHack
www.picfun.com/usb02.html
エンドポイントとは | インターフェイス株式会社
USB/エンドポイント - おなかすいたWiki!
アドレスの設定 | ルネサス エレクトロニクス
USB HID クラス ‐ 通信用語の基礎知識
USB Human Interface Devices - OSDev Wiki
UEFI自作OS日記 v0.6.1 ゆ。 - 借り初めのひみつきち
Nerry さんはTwitterを使っています: 「USBマウスのブートプロトコルにはホイールのデータがないけど、通常のレポートデータの後に(規格外の)ゴミがつくことが許容されていて、実際にホイールだけ動かすと[0 0 0]のデータが飛んでくる。」 / Twitter
Nerry さんはTwitterを使っています: 「おそらくブートプロトコルモードのときはホイールのデータをマスクしていて、レポートプロトコルモードにするとゴミだった部分にホイールのデータが来ると思われる。 試した限りブートプロトコルモードでホイールデータが取れそうなマウスはなかった。」 / Twitter
Nerry さんはTwitterを使っています: 「GPDってどうもデータないときにinterrupt転送すると一瞬で0返す実装になってるぽくて、現在のXHCIドライバは一度に大量の転送するとURBが一時的に発行できない状態になるのでそれが原因な気がする」 / Twitter
Nerry さんはTwitterを使っています: 「GPD pocketがマウスに触った瞬間キーボード応答なくなる・・・」 / Twitter
Nerry さんはTwitterを使っています: 「最初のデバイスのIF 0がbootキーボードでIF 1が汎用HIDになってて、おそらくマウスを触るとIF 1のデータが詰まってキーボード側がうんともすんとも言わなくなる」 / Twitter
汎用的なBadUSB - 這いよれ Cracking Lab - Medium
WebのペリフェラルAPIに関わるセキュリティ懸念
FadisさんはTwitterを使っています 「WebHID: 特殊なゲームパッド等の標準的なAPIから扱えない入力デバイスをWebから扱えるようにするAPI。ユーザが許可した入力デバイスに対する生のアクセスが可能になる。デバイス屋さんは悪意あるWebページがデバイスのファームウェア書き換えるかもしれないから気をつけてね https://t.co/lgRifGMQ60」 / Twitter
WebHID API
FadisさんはTwitterを使っています 「で、このWebHIDが次のChromeから使えるようになる、と。まじかよ https://t.co/Gx1zWNp8Rn」 / Twitter
Chrome 86 Beta Enables Native File-System API By Default, WebCodecs Added - Phoronix
FadisさんはTwitterを使っています 「LinuxカーネルにCorsairの電源ユニットのドライバが入ったらしい。通常電源にドライバは必要ないが、一部のCorsairの電源は温度、各電源ラインの電圧、電流等の値を取るUSBデバイスが生えている。このドライバはCPUの温度センサ等と同じhwmonで、sysfsから値をとる事ができる https://t.co/fw1TjYuzux」 / Twitter
The Reverse-Engineered Corsair PSU Linux Driver Continues To Be Improved Upon - Phoronix
FadisさんはTwitterを使っています 「Linux 5.13にGeneric USB Display(GUD)ドライバが入りたがっている。GUDデバイスに向かって描くDRMドライバとGUDデバイスになりきって別のDRMデバイスに要求を流すGadgetドライバで構成され、USBデバイス側になれるLinuxマシン(RasPi4等)でUSB外付けディスプレイを自作できる https://t.co/h5x5xUF6YG」 / Twitter
Generic USB Display Driver "GUD" Slated For Linux 5.13 - Phoronix
電子工作室

USB Sniffer

Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる - tech.guitarrapc.cóm
Download Microsoft Message Analyzer from Official Microsoft Download Center
百害あって一利無し!のAMD USB Filter Driverの削除方法 - PC破壊日記的ブログ
フィルタドライバ入門
フィルター ドライバー
レポート22:デバイスオブジェクト
[HOWTO] フィルタ ドライバに IOCTL を送信する方法
Windowsデバイスドライバ開発入門 - 人とか機械とか
USBView の中身を見てみる - Japan WDK Support Blog - Site Home - MSDN Blogs
USBView ってなに? - Japan WDK Support Blog - Site Home - MSDN Blogs
ユニバーサル シリアル バス (USB) (Windows Drivers)
デバイス ノードとデバイス スタック (Windows Drivers)
Windows-driver-samples/usb/usbview at master · Microsoft/Windows-driver-samples
Windows-driver-samples/LICENSE at master · Microsoft/Windows-driver-samples
新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで | Japan WDK Support Blog
重箱の隅のデバッグ(2) – エラーの意味を探る – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft/windows-driver-docs: The official Windows Driver Kit documentation sources
Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について – Japan WDK Support Blog
Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて – Japan WDK Support Blog
USBディスクリプタ解析ツール usbview | Infinitegra TechBlog

コントローラ

EHCI

Enhanced Host Controller Interface - OSDev Wiki
Enhanced Host Controller Interface Specification
Enhanced Host Controller Interface Specification: Addendum
IntelチップセットのUSBの実装がいつの間にか変わってた件 - 人とか機械とか
ドキュメント一覧 | ルネサス エレクトロニクス
japan.renesas.com/products/soc/usb_assp/download/USB102-INFO-2-01J.pdf

xHCI

Twitter

その他

Yojiro UOさんはTwitterを使っています: "@syuu1228 xhciのspecを見直してみたら冒頭からこんなに強調してるんだよね。本当に実装ないのかなあ。 http://t.co/GHUmGzchPP"
Hiroki Satoさんのツイート: "今時なら xHCI の DbC が使えるものが多いので、それで我慢するしかないですね。UARTほど単純なものではないですが。… "

@NerryN3

histric-1

Nerry さんのツイート: "USBって規格上127個までだったと思うけどxHCIのデバイススロット32とか64しかない奴が多いんだけどもしかして127個も繋げない?"
Nerry さんのツイート: "Atom系→AddressDeviceまで進む Core系→EnableSlotが無視されるまたは死ぬ"
Nerry さんのツイート: "nopは反応あるのにenable slotするとなんとも言わなくなるのがよくわからんΣ(-᷅_-᷄๑)"
Nerry さんのツイート: "qemuだとなんの反応もないけと実機だと一応通信してるのか?… "
Nerry さんのツイート: "stall errorとtransaction error😩"
Nerry さんのツイート: "USBについて詳しくなっていくほどにUSBはHIDに向いてない規格だという気持ちが強まる"
Nerry さんのツイート: "USBの抜き差し検知できるようになった。 実質1ビットの入力ポートを手に入れたヽ(•̀ω•́ )ゝ✧"
Nerry さんのツイート: "まだ解放処理がうまくできてないから挿入時にenable slotすると2回目の挿入で死ぬ。 enable slot無効化したバージョンだと抜き差し自体は検知できるよになった"
Nerry さんのツイート: "disable slotもうまく動いたʕʘ‿ʘʔ… "
Nerry さんのツイート: "ん、なんか動き怪しいな・・"
Nerry さんのツイート: "細かいバグ修正とDisableSlot対応して抜き差しできるようになったくらいで全体的には進捗微妙(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わったのにGetDescriptor出来てないし、今だにEnableSlotうまく動かない機種もある(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わってもまだEndPoint有効になってない?"
Nerry さんのツイート: "進捗 ほとんどの環境で割り込みとEventRingは概ね動いている EventRingの動く環境でCommandRingは動いてNopCommandも反応があるが、EnableSlotが動く環境と動かない環境がある EnableSlotできる環境ではAddressDeviceも動く TransferRingが動く環境と動かない環境がある データ転送は全滅"
Nerry さんのツイート: "進捗じゃないなただの現状整理か"
Nerry さんのツイート: "昨日の進捗は AddressDeviceでInputContextとDeviceContextを混合してた間違いを修正 ポート抜き差しの通知に対応してDisableSlotできるようになった、ただし複数回抜き差しすると不安定"
Nerry さんのツイート: "xHCIデバイスとお話できるようになるまで手順多すぎだし必要な構造体も多すぎだし禿げる:;(∩´﹏`∩);:"

histric-2

Nerry さんのツイート: "やっとGetDescriptor出来た😡… "
Nerry さんのツイート: "GPD WIN… "
Nerry さんのツイート: "1個転送失敗しとるが"
Nerry さんのツイート: "USBデバイスってDEVICEのDESCRIPTORには実質ほとんど情報がない😩"
Nerry さんのツイート: "CONFIGRATION DESCRIPTOR + INTERFACE DESCRIPTOR 見えた あと1個なんかくっついてるぽいけどなんだろ… "
Nerry さんのツイート: "21ってHID DESCRIPTORか"
Nerry さんのツイート: "xhci.c 800行あってできることがコンフィグレーションのダンプ😩"
Nerry さんのツイート: "明日はバスドライバ作れるといいな"
Nerry さんのツイート: "今日の進捗 デバイスとお話しできた"
Nerry さんのツイート: "GET DESCRIPTORできるようになったということはUSBバスに信号流せるようになったということで、やっとひとつ上のレイヤーに進める。"
Nerry さんのツイート: "xhciは複数のデバイスのリクエストを非同期に処理するけど、port status changeからaddress deviceまではevent trbで区別できるけどそれ以降の普通のUSBプロトコルの転送はtrb見ただけだと何の転送かわからない"
Nerry さんのツイート: "ひとつのリクエストを処理中は他のリクエストを受け入れないようにすれば区別が容易だけど、それは頭悪い。 デバイスごとにthread作って管理するのも大袈裟な感じがする。 fiber使うのがいいのかなぁ"
Nerry さんのツイート: "デバイスのコンフィグレーションの段階になるとひとつのdescriptor読み込んで処理してつぎのdescriptor読み込んで処理してみたいな感じになるので転送ごとに処理を区切るのは現実的ではない"

histric-3

Nerry さんのツイート: "configuration descriptorのサイズ見て読み直してるヽ(•̀ω•́ )ゝ✧… "
Nerry さんのツイート: "読み込み待ちがゴミのように適当です"
Nerry さんのツイート: "あとはendpoint descriptor見つけてごにょごにょすれば入力できそうな予感"
Nerry さんのツイート: "descriptor解析するとこうなる… "
Nerry さんのツイート: "boot interfaceしかサポートしてないHID実は多い?"
Nerry さんのツイート: "configure endpointうまくいかない"
Nerry さんのツイート: "きのうのしんちょく ホストコントローラードライバーとバスドライバーを分離した ディスクリプター読み込んでごにょごにょ configure endpointは成功しなかった"
Nerry さんのツイート: "fiber未実装なのでデバイスごとにthreadで仮実装 転送やコマンドの実行結果をデバイスに返す手段がまだない"
Nerry さんのツイート: "HIDかどうかはもう認識できてるのでHIDのポーリングはやろうと思えばできるのか?"
Nerry さんのツイート: "config endpoint動いた。 キー入力まであと一歩!… "
Nerry さんのツイート: "qemuではキー入力取れた。… "
Nerry さんのツイート: "実機ではうまくいかない:;(∩´﹏`∩);:"
Nerry さんのツイート: "なんかtimeout起こしてるぽいな。interrupt転送の仕様よく分からん:;(∩´﹏`∩);:"
Nerry さんのツイート: "transaction errorってどういうことだ:;(∩´﹏`∩);:"

Nerry さんのツイート: "じつはmoeは最初からHID前提で作ってたのでキーコード読めれば入力できる (6key対応してない手抜きだが)… "
Nerry さんのツイート: "ん、一部のデバイスがbabble error返してUSBトランザクション壊れてHIDのデータ転送まで悪さしてるのか"
Nerry さんのツイート: "babble errorどうすればいんだ…"
Nerry さんのツイート: "🤔 > A babble error occurs when the hots computer or the device receives more data than the specific maximum packet size."
Nerry さんのツイート: "しばらくほっといたらやばなってた… "
Nerry さんのツイート: "なんかdescriptorがめちゃくちゃでかいデバイスあってバスおかしくなってるみたいだけど…"
Nerry さんのツイート: "というかdevice descriptorにpacket size 64って書いてるのに9バイトのデータ読み取り失敗してどうするんだ"
Nerry さんのツイート: "きのうのしんちょく configure endpointできた qemuはget reportもinterrupt inも動いてキー入力できた 実機は動かない"
Nerry さんのツイート: "babble error解消したけど肝心のHIDがtransaction error直らん"
Nerry さんのツイート: "normal trbしか送ってないのにtransactionもくそもないのだが・・・"
Nerry さんのツイート: "HIDってクラス030000と030101と030102だけだと思ってたら意外と別のクラスのデバイスが存在してた 仕様書にも乗ってないデバイスはどうしたらいんだ"
Nerry さんのツイート: "030300番台ってHID仕様書にものってない謎デバイスなんだが…… "
Nerry さんのツイート: "うまく動かないのこの機種固有の問題ではないかと他の機種で試すと起動しないかboot keyboardサポートしてない:;(∩´﹏`∩);:"
Nerry さんのツイート: "virtual box割り込み動かんけどイベントポーリングしたらUSB認識しよった… "
Nerry さんのツイート: "試しにキーボード繋いでみたら普通にキーボード読めた🤔… "
Nerry さんのツイート: "configure endpointでちゃんと1返ってきてからのtransfer commandでendpoint not enabled error😩"
Nerry さんのツイート: "実機でデバイスとお話しするところまで行けなくてその上のレイヤーに行けない😭"
Nerry さんのツイート: "xhciドライバエミュレータではそこそこ動いてるけど実機だとうまく動かんどころかUSB接続した瞬間再起動するバグもあるので本流に乗せれない😿"
Nerry さんのツイート: "qemuでは概ね動く vboxは割り込み動かないけどポーリングなら動く ほとんどの実機でport status changeは動く(時々割り込み止まる enable slotがうまく動かない機種がある descriptorとれてendpoint設定できる機種でも読み込みが動かない"
Nerry さんのツイート: "初期のsurfaceはシリーズ違ってもキーボードコネクタ互換あったけど、同じような見た目でも結構中身違うんだな。… "
Nerry さんのツイート: "surface 3pro type coverは USB HID 03000 surface 3 type coverはUSB HID 030300 surface 2? type coverはI2C HID"
Nerry さんのツイート: "同じコネクタでUSBとI2Cが同居してる。いったいどんな規格だ"
Nerry さんのツイート: "これ、初代surfaceに繋ぐとUSBになってsurface3に繋ぐとI2Cになる・・・(RTは今試せず"
Nerry さんのツイート: "初代RTで試したら何を繋いでもI2Cになった🤔"
Nerry さんのツイート: "まとめ 初期のsurfaceキーボードコネクタはUSB HIDとI2C HIDのデュアルスタック RT系デバイスに繋ぐと基本I2C、Pro系に繋ぐと基本USBで繋がる。一部例外がある"
Nerry さんのツイート: "どうでもいいことに時間を費やした。そして久々にRT起動した。"

@uchan_nos

histric-1

OS作れないマン WalB担当さんのツイート: "xHCIのリングバッファの実装方法おもろいな。書き込みポインタが一周するたびに「周回ビット」を反転させて、その周回ビットをリングバッファの各要素に書き込んでおくらしい。読み込み側も周回ビットを独自に持っていて、周回ビットと要素のビットが等しいなら有効なデータだとして処理。"
OS作れないマン WalB担当さんのツイート: "ソフトウェア側が読み込みポインタを更新すると、xHCはそこまでの要素が処理し終わったと認識するらしい。ということは、そのメモリ位置への書き込みがコンパイラ、またはCPUでリオーダされないようにしないと微妙にバグりそうだ。"
OS作れないマン WalB担当さんのツイート: "QEMUのxCHIドライバのソース読んだら規格と全然違う実装してあってこりゃ動くわけないぞ"
OS作れないマン WalB担当さんのツイート: "CRCRレジスタ唯一有用なビットをマスクしちゃってたらそりゃ0になるわ。さらに規格で「読みだすと0」になるべきビットをマスクしてなかったり。"
ファッション自作OSマンさんのツイート: "livaさんにuioでxHCIドライバを書く際に気をつけることを教わった。それは、xHCIサポートを外したカーネルを使うということ。サポートを外しておかないとカーネルと自分のドライバが競合する。"
ファッション自作OSマンさんのツイート: "xHCIドライバをまずモジュールにしつつ、自動読み込みしないようにしておく。"
ファッション自作OSマンさんのツイート: "QEMUのxHCIドライバにNo-Op Commandが実装されてない.悲しみ."
ファッション自作OSマンさんのツイート: "自作OSのxHCIドライバに割り込みに対応する機能を追加した。これでコマンド発行から完了通知割り込みまではできるようになった。次はUSBデバイスがポートに接続されたのを検知する機能と、ポートの初期化部分を書く。"
x86-64-128さんのツイート: "xHCIのUSBSTS.CNR(Controller Not Readyビット)が0になれば大丈夫だと思っていたら,そのビットだけの検査では不十分で,USBSTS.HCRST(Host Controller Resetビット)が0になるのを待つ必要があるっぽい."
x86-64-128さんのツイート: "USBCMD.HCRSTが0になるのを待つようにしたらすこぶる快調である."
x86-64-128さんのツイート: "再設計したUSBドライバによるキーボード読み取り成功"
技術書典4 け-51 x86-64-128さんのツイート: "少なくとも「USB 3.0 設計のすべて」という書籍より,xHCIのドライバ部分の記述は具体的になっている.例えばデフォルト・コントロール・パイプのMax Packet Sizeの決定方法について,その本には書いてないが僕の本にはある."

OS開発ゼミ担当 uchan_nosさんのツイート: "昨日の調査まとめ.USBの受信が遅いなーと思っていたのは,どうやらエンドポイントのbIntervalに左右されていた.64msに1回しかポーリングしないようになっており,キーボード入力がそれよりちょっと遅いと,とたんに128ms周期になってしまい,取りこぼす."
OS開発ゼミ担当 uchan_nosさんのツイート: "作戦としてはバッファを大きくしつつ,データ量が少ない時にshort packet割り込みを発生させれば,もし1入力しかなくてもすぐ入力できるし,複数入力が待機しているときも全部入力できるかなーと."
OS開発ゼミ担当 uchan_nosさんのツイート: "MinnowBoard Turbotに搭載のxHCIって,もしかしてShort Packet割り込みが発生できない?"
OS開発ゼミ担当 uchan_nosさんのツイート: "Short Packetについて勘違いしていたっぽい.Short Packetは基本的には1パケットのバイト数がwMaxPacketSizeに満たないときに発生するのであって,私が使っているキーボードのwMaxPacketSizeは8だから,絶対にShort Packetにはならない."
OS開発ゼミ担当 uchan_nosさんのツイート: "ふーむ.すると64msのポーリング周期で取りこぼさないようにするにはどうすれば?"
OS開発ゼミ担当 uchan_nosさんのツイート: "僕が使っている外付けキーボードがポンコツなんだろうと思ってLinux機に挿したらめっちゃ快適に入力できたんで,どうやら悪いのは自作ドライバの方だ"
OS開発ゼミ担当 uchan_nosさんのツイート: "キーボードのInterrupt INに対応するTransfer Ringに事前に複数のTransfer TRBを積んでおけば取りこぼさないだろうと思ったんだけど,依然として取りこぼすな."
OS開発ゼミ担当 uchan_nosさんのツイート: "OVMFのxHCIの実装を見た感じ,どうやら1msに1回の頻度でTransfer TRBの完了を監視していて,完了してたら次のを投げる,みたいにしてる感じがする."
OS開発ゼミ担当 uchan_nosさんのツイート: "え,USBデバイスのEndpoint Descriptorに書いてあるbIntervalの値ってなんなの?参考程度の情報?bIntervalより小さな値を設定すると,ちゃんとインターバルが縮まるんだけども."
OS開発ゼミ担当 uchan_nosさんのツイート: "よっしゃ.キーボード入力の取りこぼしがなくなった"
OS開発ゼミ担当 uchan_nosさんのツイート: "英語の数式表現がよくわからないんですけど,これってどういう計算すればいいんですかね round X down to the nearest base 2 multiple of Y * 8"
OS開発ゼミ担当 uchan_nosさんのツイート: "解明できてきたけど、まだ "nearest base 2 multiple of Y * 8" が謎… "
やめるのだフェネックで学ぶC++さんのツイート: "ご参考までに、以下のコードではround~2を、2のべき乗単位に切り下げるという意味で使っているようです(floorBase2関数 : Utils.h, Utils.cpp)。間違っていたらすみません。 https://t.co/L76z73Qy2N… "
OS開発ゼミ担当 uchan_nosさんのツイート: "USBホストコントローラのIntervalに設定する値が切り捨てなのか切り上げなのかの謎は、結局完全に解決はできなかった。round downと書いてあるのを鑑みると切り捨てっぽいな、という感じだけど、英文が完全に解読できたわけではない。"
uchanさんはTwitterを使っています 「最近、UEFIのUSBホストコントローラドライバの実装を読んでるんですけど、まだ最初の方なのに知らなかったことがいくつかあって参考になりますねこれ。」 / Twitter
uchanさんはTwitterを使っています 「「いくつかのサードパーティのxHCI外付けカードは64ビットレジスタアクセスをサポートしてないから32ビット×2回で書き込みます」っていうコメントがあったりして趣深い(仕様書読んでるだけじゃ絶対に手に入らない知識)」 / Twitter
uchanさんはTwitterを使っています 「USB ドライバのデバッグをしていて、完璧ではないけどかなり前進した。以前まではUSBホストコントローラの動作を開始した直後にシステムがフリーズしていたのだけど、今はご覧の通り、正常に起動するようになった。完璧ではないと言うのは、キーボードとマウスが使えないこと。 https://t.co/MdNjxJpykY」 / Twitter
uchanさんはTwitterを使っています 「原因を完結にまとめておく。USBLEGSUP拡張レジスタにXHCの所有権を表すビットがあり,そのBIOSビットが立っていたのが原因。UEFIが所有権を持っているのにOSがXHCを起動しようとしたから処理が競合したらしい。USBLEGSUP.OSを1にして所有権を要請し,所有権がもらえてから操作したら大丈夫だった。」 / Twitter
uchanさんはTwitterを使っています 「マウスとキーボードが動かないのは,この実験用PCに謎に2つのxHCIが載っているから説。自作OSでは最初に見つかったxHCIだけを親だと思うから… https://t.co/226CDE3Qv3」 / Twitter
uchanさんはTwitterを使っています 「xHCIのCRCRに関する仕様,ほぼ同じで若干違う表現が使われてるの気になる。なんだろう? RCS: Reading this flag always returns ‘0’. CS: Reading this bit shall always return ‘0’. CA: Reading this bit always returns ‘0’. Command Ring Pointer: Reading this field always returns ‘0’.」 / Twitter
uchanさんはTwitterを使っています 「flagとbitで変えてる意味が分からない。fieldは,まあそれが1ビット幅じゃないから分かる。shallの有無もよく分からない。」 / Twitter
tamura🍺さんはTwitterを使っています 「@uchan_nos なんとなく,shallがついてると「そうではない場合がある (そうではない時は何かがおかしい)」と言いたいのかなと.flag と bit はなんだろう… RCSって0ビット目でしたっけ?であればシフト演算なしに取り出せるからflag??? bitはビットマスクで取り出す的な??? わからん」 / Twitter
uchanさんはTwitterを使っています 「@y7amura Shallについては,なるほど… flag/bitは,RFLAGSレジスタにたくさんの「hoge flag」があることを考えると,ビット0だけをflagと呼ぶ,というのは若干眉唾ですね… 分からないですねw」 / Twitter
uchanさんはTwitterを使っています 「パワポのテンプレートってほとんど作ってこなかったんだけど,ふいに作りたくなって作った。シンプルな感じで仕上がった。 https://t.co/4CZaNhl2VT」 / Twitter

@liva

Fadisさんのツイート: ".@liva_jyxHCI さんの「(USB3.0 HC)デバドラを自作してみよう」が始まります #kernelvm"
Fadisさんのツイート: "「みなさん、USB使いますよね?デバドラ書いたことありますか?」って煽ろうとしたら前回のカーネル/VMでもうデバドラ書いてる話が出てたwww #kernelvm"
Fadisさんのツイート: "USB 3.0通信速度みたいな物理的な側面が進歩として有名だけど、「USBデバイスたるもの持っていなければならない情報」が大幅に増えてソフトウェアがデバイスの事をより詳しく知って扱えるようになったことも大きいんだよな #kernelvm"
Fadisさんのツイート: "USB1.1/2.0ではCompanion Host Controllerで使用するコントローラを選択して、それぞれのコントローラに対するドライバでデバイスを叩いていたが、3.0では1.xから3.xまでの全てのデバイスが期待するプロトコルをxHCIホストコントローラが喋るようにな… https://t.co/B5TiVlRMdj"
Fadisさんのツイート: "自作OSをしていると、ネットワークサポートとUSBサポートを作らないと基本的人権が満たされない #kernelvm"
Fadisさんのツイート: "自作OSへのUSB 1.1と2.0のホストドライバの実装の経験から3.0のドライバは絶対書きたくないと思ったが飲み会で作ると宣言してしまい3ヶ月かけて実装した、と #kernelvm"
Fadisさんのツイート: "品質が心もとない自作OSの上でデバイスドライバの開発を行うと問題が起きた時どちらの問題かわからなくて開発が難航する → uio(User space IO)を使ってとりあえずLinux上でドライバの開発を行う #kernelvm"
Fadisさんのツイート: "発表者「NetBSDがやっているなら僕でもできる」 #kernelvm"
Fadisさんのツイート: "CPUいじめてSEGVしちゃうどっかの人 #kernelvm"
Fadisさんのツイート: "UIOでユーザ空間でドライバの開発を行うとlibcが使えるので開発時の生産性が上がる → そうして動くところまで持って行ってからカーネルに移す #kernelvm"
Fadisさんのツイート: "xHCIホストコントローラはUSB 3.0の速度でスループットを出せるようにインターフェスがEHCIから大きく変更されている #kernelvm"
Fadisさんのツイート: "xHCIでは接続されたデバイス毎にslotと呼ばれるリングバッファが確保される #kernelvm"
Fadisさんのツイート: "xHCIのリングバッファはバッファの最後の値をnextとするリンクリストでしかなくどのくらいの長さのループにするか等はソフトウェアレベルでコントロールできる #kernelvm"
Fadisさんのツイート: "xHCIではハブにつながっているデバイスも全てホストコントローラで面倒を見る #kernelvm"
Fadisさんのツイート: "HHKBを繋いでテストしようとしたらHHKBが後ろについているUSB端子のためにハブを積んでいてなぜかハブのドライバを書く羽目になった、と #kernelvm"
k/vm 関西#8 - Google ドライブ
liva/xhci_uio
雑記(10月〜12月) - livaの雑記帳

@t_hash425

t_hash425さんのツイート: "USB3 hubのHS部分が不定期にdisconnectされる件、いろいろやってたらFでも起きることに気付きテスト用のが当たりhubと判明した ケーブル替えたりLPMいじったりこんなに時間かけて一体なんだったのか"
t_hash425さんのツイート: "FでもIntelさんのxHCはattachするごとに空いたslotでなく次のslotを使うらしく、このhubをつないでおくとデバイスのアドレスが1ずつ増えてく Nではずっとやってると無反応になる"
t_hash425さんのツイート: "Nのxhci.cの実装だとIntelさんのxHCがctrl xferでのLINK TRBをうまく処理できないぽい Intelさん以外だと起きない"
t_hash425さんのツイート: "そういやaddr = XHCI_SCTX_3_DEV_ADDR_GET(le32toh(cp[3]))のle32tohを忘れてる big endianだと動かなさそう"
t_hash425さんのツイート: "r1.63で直したつもりのLink TRBの扱いの件が直ってなかった 前回のテストではi/f upしt確認していたが、!IFF_UPのままifconfig axe0を連射すると7回目で刺さる"
t_hash425さんのツイート: "xfer ringの255番目にLink TRBが置かれるとTDが無視されるようにみえるが(ただしIntelさんに限る)、upしてるとtick taskが定期的にctrl xferを流すので問題が隠れてしまっていたと思われる"
t_hash425 @t_hash425

@ryo_on

Ryo ONODERAさんはTwitterを使っています: "XHCI_TRB_3_EP_GET(trb_3)=1か。"
Ryo ONODERAさんはTwitterを使っています: "でも、xHCI 1.1によるとroute stringというのはSuperSpeedのために必要なものであるらしいので、HighSpeedしか扱わないのであれば必要ないか。"
Ryo ONODERAさんはTwitterを使っています: "帰りにxhci 1.1 specを読んでいたのだが、疑問に思っていたことが次々と書いてあって、やっぱりちゃんと読まないといけないと思ったのであった。"
Ryo ONODERAさんはTwitterを使っています: "紙でxhci 1.1 specを持っていたら読むのは楽だと思ったが、500 pagesはちょっと持ち歩けない。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.10.2.3に、一応解説があるようなので読んでみる。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.6.5 Address Deviceを読んでみる。"

EXtensible Host Controller Interface - OSDev Wiki
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
セカンド・オピニオン (345) USB 3.0の研究(72) | マイナビニュース
セカンド・オピニオン (346) USB 3.0の研究(73) | マイナビニュース
セカンド・オピニオン (347) USB 3.0の研究(74) | マイナビニュース
セカンド・オピニオン (348) USB 3.0の研究(75) | マイナビニュース
セカンド・オピニオン (349) USB 3.0の研究(76) | マイナビニュース
IDF 2013 - USB 3.1や新規格「Media Agnostic USB」などUSB関連を総まとめ (1) 2倍の転送速度を目指すUSB 3.1 | マイナビニュース
USB Type-Cのspecを少し読んだので解説する - 人とか機械とか
SkylakeではXHCI(USB 3.0)のみのサポートとなる: 98のWeblog
規格の1mを超える転送が可能に:USB 3.1 Gen2の転送距離を延ばすマルチプレクサー - EE Times Japan
ERI USB-Audio用USBを考える
【レビュー】ASUSのプロトタイプで10Gbps対応になったUSB 3.1を試す - PC Watch
【大原雄介の最新インターフェイス動向】USB 3.0 その5 - PC Watch
uio_pci_genericでデバドラを書く<その1> - livaの雑記帳
uio_pci_genericでデバドラを書く<その2> - livaの雑記帳
uio_pci_genericでデバドラを書く<その3> - livaの雑記帳
USB Memo · osdev-jp/osdev-jp.github.io Wiki
【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有) - uchan note
USB3 host driver program structure
moe の xHCI / USB 実装 - 借り初めのひみつきち
USB/xHCI インタラプト転送の罠 - 借り初めのひみつきち
最小限の USB Hub 対応 - 借り初めのひみつきち
USB3.0ドライバ開発の道 - uchan note
USB3.0ドライバ開発の道
USBキーボードドライバを作成した - 備忘録やめた

USB ASSP | ルネサス エレクトロニクス

UCSI

FAQ: Windows システムの USB Type-C コネクタ (Windows Drivers)
USB Type-C Connector System Software Interface (UCSI) driver (Windows Drivers)
USB Type-C Connector System Software Interface Specification
Winhec_USBTypeCIntroductionandImplementationinWindows10.pdf
USB 3.1 Electrical Design
USB_Type-C_challenges-jp.pdf
BIOS Implementation of UCSI
USBC000って何だ? - Speaker Deck
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (2/2)|Windows Info
ASCII.jp:Windows 10とUSB Type-Cとの関係を深掘りする (1/2)|Windows Info
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (1/2)|Windows Info

ストレージ

USB MASS

SCSI

SCSI command - Wikipedia
SCSI CDB - Wikipedia
SCSI Status Code - Wikipedia
Fadisさんのツイート: "SCSIコマンド、歴史的な理由で大量にあるから、自分が使うコマンドだけ使えれば良いイニシエータ側の実装は簡単だけど、多様なコマンドに備える必要があるターゲット側の実装は物量的な意味で容易ではないんだよな"

SFF-8020i/MMC-2(ATAPI)

AT Attachment 8 - ATA/ATAPI Command Set
sff8020i.pdf

USB Floppy Interface(UFI)

Microsoft Word - usbmass-ufi10.doc

マスストレージクラスコマンドセット | インターフェイス株式会社
USB mass storage device class - Wikipedia
USB Mass Storage Class Devices - OSDev Wiki
Microsoft Word - usb_msc_boot_1.0.doc
USB/Class/Mass-Storage - SyncHack
www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf
labo.nshimizu.com/thesis/b2003/0aet1132.pdf
実践しながら学ぶ Android USBガジェットの仕組み(11):Android USBパケットをキャプチャーし、UMSプロトコルを解析する!! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(12):Android USBマスストレージクラスのパケットを理解しよう! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(13):UMSクラスドライバを改造し、Androidを“CD-ROMドライブ”として認識させる!! (1/3) - MONOist(モノイスト)
Fadisさんのツイート: "USBマスストレージと通信するプロトコルとして古くから用いられているBulk Only Transportでは、SCSIコマンドをデバイスに投げる→コマンドにデータが伴う場合はデータを受ける|投げる→コマンドの結果をデバイスからもらう の3つの状態の繰り返しでデータを読み書きする"
Fadisさんのツイート: "USBMSがリトルエンディアンで、その上に乗ってるSCSIがビッグエンディアンで、それ投げて返って来るパーティションテーブルがリトルエンディアンなの、個々の規格には何も問題がないけどくっつけると優秀なトラップになってる"
マスストレージクラス転送方式 | インターフェイス株式会社

UASP

USB Attached SCSI - Wikipedia, the free encyclopedia
デュアルソケット・ザ・ワールド Windows 8 で USB3.0 の UASP を ENABLE(有効) にする方法
価格.comマガジン ランダムライトが約3倍高速に! Windows 8で高速化するSSDケース
セカンド・オピニオン (336) USB 3.0の研究(63) | マイナビニュース
セカンド・オピニオン (337) USB 3.0の研究(64) | マイナビニュース
セカンド・オピニオン (338) USB 3.0の研究(65) | マイナビニュース
セカンド・オピニオン (339) USB 3.0の研究(66) | マイナビニュース
セカンド・オピニオン (340) USB 3.0の研究(67) | マイナビニュース
ASCII.jp:USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み (1/3)|塩田紳二のWindows 8 IN-N-OUT
UASPとは|USB Attached SCSI Protocol - 意味 / 定義 / 解説 / 説明 : IT用語辞典
UASP ‐ 通信用語の基礎知識
USB 3.0 Boost ‐ 通信用語の基礎知識

MTP

第653回:MTP接続 とは - ケータイ Watch Watch
メディア転送プロトコル - Wikipedia
Media Transfer Protocol - Wikipedia, the free encyclopedia
Microsoft and FotoNation Team to Support the Media Transfer ProtocolFor Wireless Digital Still Cameras | News Center
【Android】USB接続時のMTP/PTPモードを切替える方法 | TeraDas-テラダス
Media Transfer Protocol Specification
AndroidのUSB接続は説明した:MTP、PTP、およびUSBマスストレージ
MTP (Media Transfer Protocol) ‐ 通信用語の基礎知識
Download Media Transfer Protocol Enhanced Specification from Official Microsoft Download Center

PTP

画像転送プロトコル - Wikipedia
Picture Transfer Protocol - Wikipedia, the free encyclopedia
pima15740-2000.pdf
ISO 15740:2005 - Photography -- Electronic still picture imaging -- Picture transfer protocol (PTP) for digital still photography devices
PTP (Picture Transfer Protocol) ‐ 通信用語の基礎知識

Rufus - 起動可能なUSBドライブを簡単に作ろう
pbatard/rufus: The Reliable USB Formatting Utility
ブータブルUSBドライブ作成ツール「Rufus」がメジャーバージョンアップ、v3.0に - 窓の杜

ベンダ固有

FTDI

USB/Class/Serial - SyncHack
FT232R
FTDIドライバにおけるLatancyTimerについて
Linux/drivers/usb/serial/ftdi_sio.c - Linux Cross Reference - Free Electrons
FTDI Knowledgebase
uftdi(4)
Linuxで高速なUARTを使ってみた - Qiita

PaSoRi

libusb

libusb - Wikipedia, the free encyclopedia
libusb-win32 download | SourceForge.net
libusb
libusb-1.0 API Reference
libusb-1.0.18
hiro99ma blog: libusb-1.0はzadigを使うべし
libusb-1.0のメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
平坂久門ただいま失業中: libusb-1.0でUSBデバイスのEPをR/Wするサンプルプログラム
libusb
libusbについて - Linux工作室

WinUSB

WinUSBデバイスとシリアル通信するには | garicchi.com
WinUSB (Winusb.sys) (Windows Drivers)
Daisuke Kobayashi - WinUSB で USB デバイスと通信 1 - 概要
第157号(2012年3月7日発行) 技術レポート「WinUSBを用いたWindowsアプリケーション開発」|ソフテックだより|株式会社ソフテック
WINUSBの簡単な初歩や基本的な使い方・利用方法・仕様方法・やり方 | 初めての利用方法や使用方法・初心者でも簡単 使い方ラボ
WinUSB.sys事始め/ウェブリブログ
WinUSB - AVR etc

libpafe

libnfc

NFC Tools
libnfc: libnfc reference manual
MacでPasoriでNFCカードを読んでみる(libnfcを使って) | 9ensanのLifeHack
RC-S330をLinuxで使う | 團長の小部屋
nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library

libpafe
gsuica
suica_plugin
GEdy
edy_plugin

libpasori

libpasori - RC-S320操作コード
PaSoRi/RC-S320 - osdev-j (MMA)

PC/SC

NFC - Web Application Programming Wiki*
NFC/PC_SCサンプル - Web Application Programming Wiki*
スマートカード
スマートカードサブシステム
PC/SC Workgroup
pcsc-lite: API
Zinnia hacks tomorrow.
NFC 入門 | TipsZone

nfcpy

nfcpy in Launchpad
Python module for near field communication — nfcpy trunk documentation
Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る | 傀儡師の館.Python - 楽天ブログ
nfcpyでお手軽NFC開発[1/2]
nfcpyでお手軽NFC開発[2/2]
raspberry piでSuicaの履歴の表示 | TomoSoft
Raspberry Pi 2 で NFC (FeliCa) を使えるようにする - しばやん雑記
RaspberryPiとICカードリーダ - アラのアラアラしい日記
Raspberry Pi に nfcpy をインストールする手順 - 2016年3月 私家版 : @jsakamoto
OS作れないマンさんのツイート: "nfcpyのGetting Started通りにやるだけでは、複数のsystem codeを持つNFCはうまく扱えない。on-discoverコールバックの中で、引数targetのsensf_resメンバを強制的に書き換えることで対処。"
OS作れないマンさんのツイート: "もっと単純に idm, pmm = tag.polling(希望のsystem code) tag.idm, tag.pmm, tag.sys = idm, pmm, 希望のsystem code とすれば万事OKだった。"
nfcpy で複数の System Code を持つ NFC タグを扱う方法 - uchan note

IC SFCard Fan
PaSoRi - Wikipedia
Sony Japan | FeliCa | 法人のお客様 | 製品情報 | ICS-D010・D004・D002・D003
Sony Japan | FeliCa | 法人のお客様 | 技術情報/FeliCa技術方式の各種コードについて
hiro99ma blog: RC-S380はRC-S370ではない
hiro99ma blog: [win8]RC-S380のデバイスドライバ/ライブラリ
Jさんのツイート: "Today, JR East explained global NFC phones will support Mobile Suica in the future. https://t.co/f6lZG7tmAg"
Sony Japan | FeliCa | 個人のお客様
iPhoneでモバイルSuicaが使えるようになる? - NFC対応スマートフォンにFeliCa搭載という流れ (1) NFC Type Fの採用が決め手となる | マイナビニュース
iPhoneがおサイフケータイ(FeliCa) に対応か。Apple Payが間もなく日本上陸 - Engadget Japanese

DirectInput と XInput - 借り初めのひみつきち
FadisさんはTwitterを使っています 「linux-5.7からiPhone等の急速充電ドライバが入るらしい。iPhoneはUSBで接続された時点では0.5A以下で充電を行うが、急速充電デバイスに書き込みがあると2.5A吸って充電するようになる。専用の充電器はこの書き込みを行なうが、同様の操作をlinuxカーネルが出来るようになる https://t.co/tUni6BNsRM」 / Twitter
Linux 5.7 To See USB Fast Charge Support For Apple iOS Devices - Phoronix
FadisさんはTwitterを使っています 「ただし、これを有効にするとiPhoneは遠慮なく2.5A吸いに来るが、ハードウェアがそれをして大丈夫なハードウェアかどうかは別問題」 / Twitter

HID

FIDO U2F

HUTRR48.txt - Notepad
FIDO Alliance Download Specifications - FIDO Alliance
FIDO U2F HID Protocol Specification
v2f.py/u2fhid.py at master · concise/v2f.py
u2f/hid.go at master · flynn/u2f
Yubikeys overall overview - WIP

WebHID

FadisさんはTwitterを使っています 「Chrome 89からWebHIDがデフォルトで有効になるらしい。WebHIDはWebUSBで懲りていなかったGoogle最新のヤバAPI。JSで書かれたドライバでシステムに接続された入力機器を直接操作する。WebUSB同様ユーザがダイアログで許可した事をもってWebページにデバイスの使用を認める https://t.co/Fceyjauaek」 / Twitter
Chrome 89 Beta Enables WebHID By Default, Other New Web APIs - Phoronix
FadisさんはTwitterを使っています 「入力デバイスの中にはファームウェアアップデートを無条件で受け付ける等のインターネット越しに触らせてはいけない物も数多く存在するが、それらに対しては「ダメなデバイスのベンダーIDとプロダクトIDのリストをブラウザが持って、それを頑張って更新する」という驚くべき対策が仕様に書かれている」 / Twitter
FadisさんはTwitterを使っています 「ちなみにWebページがUSBデバイスの完全なコントロールを手に入れるWebUSBは、「WebUSBを活用して2要素認証ドングルに偽の情報を送る事で2要素認証を突破するフィッシングサイト」に活用された後、主要なほぼ全てのデバイスクラスでWebUSBを使えなくする修正が入ってAPIが生えたまま死んでる」 / Twitter
FadisさんはTwitterを使っています 「Webページのスクリプトの提供者は信頼できるか判断がつかない相手で、システムはデバイスドライバに悪意が無い事を期待している為デバイスドライバの提供者は信頼できる必要があって、WebUSBにもWebHIDにもこのギャップを埋める物がない。必要なのはGoogleによるドライバに対する署名だと思うんだ」 / Twitter
Webアプリがジョイコンなどに対応する「WebHID」、NFCタグを読み書きする「Web NFC」、シリアルポートで通信する「Web Serial」など、Chrome 89ベータではデフォルトで有効に - Publickey

Twitter

Livaさんのツイート: "USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは入る)のだけど、2つ以上キーを同時押しするとデータが入る #liva_notebook"
Livaさんのツイート: "何言ってるのか自分でもワケワカメなんだけど、要はAならAだけ押した時、自作OS側からはどのキーを押されたかが分からない(何かが押された事は割り込みが来るから認識できる)のだけど、Shift + Aだと、ShiftとAの双方が押された事がわかる #liva_notebook"
Livaさんのツイート: "freebsdのコード読むと https://t.co/PArc0Pgn80、ukbd_interruptでパケットを読んだ後で、ukbd_read_charでもう一文字読んでるような気がするのだけど・・・わからぬ #liva_notebook"
Livaさんのツイート: "もう一文字読んでるってのは、単一のキーしか押されてない場合、Interrupt Transfer以外の別の仕組みでキーを読んでるのかなぁ、と推測 #liva_notebook"
Livaさんのツイート: "もっとDevice Class Definition for Human Interface Devices (HID) https://t.co/mhqn81LOIR を読み込まなければならぬ #liva_notebook"
Livaさんのツイート: "寝ぼけてた。ukbd_put_keyでsc->sc_inputsをインクリメント、デクリメントして、その値が0だったらukbd_event_keyinputでreturnしちゃうからukbd_read_charにたどり着くわけない #liva_notebook"
Livaさんのツイート: "要するに、ukbd_read_charでもう一文字追加でどっかから読んだりなんてしてない #liva_notebook"
Livaさんのツイート: "えー、じゃあやっぱ単一キーを押した時にキーデータが送られてきてないように見えるけど、自作OSのバグなのかなぁ #liva_notebook"
Livaさんのツイート: "困った時のfreebsdという事でfreebsdで先程のコードにprintf仕掛けたら、一文字のときもちゃんとInterrupt Transferにキーデータが流れてきている模様。という事は自作OSのバグか・・・ #liva_notebook"
Livaさんのツイート: "問題の切り分けはできたけど、Interrupt Transferのデバッグやらなきゃいけないの、やだなぁ #liva_notebook"
Livaさんのツイート: "ん、ちょっと勘違いしてたぞ。keycodeの取得をやってるのは、 https://t.co/3KsSAPpFar か #liva_notebook"
Livaさんのツイート: "まあ結局単一キーでもちゃんと取得できている事には変わらないけども #liva_notebook"
Livaさんのツイート: "お、 https://t.co/t5fj3AOBmV これダンプすれば良さそう #liva_notebook"
Livaさんのツイート: "やっぱ単一キーでもちゃんとパケット来てるんだよなぁ #liva_notebook"
Livaさんのツイート: "お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook"
Livaさんのツイート: "正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook"
Livaさんのツイート: "この件、解決した。連続で同じレジスタ(MMIO) にwriteするのだけど、何も考えずに実装したのでコンパイラによって2つのwriteが1つに握りつぶされていた。asm volatile("":::"memory")を挟んで解決 #liva_notebook https://t.co/B5Zd22a0Kn"
Livaさんのツイート: "USBキーボードにはBoot ProtocolとReport Protocolがあってそれぞれ異なる方法で入力を返すのか。HID Specificationを読んでてよくわからなかったのだけど、やっと少し理解できた。 #liva_notebook"
Livaさんのツイート: "うーん、Boot Protocolをセットするのが問題でもないのか。。。 #liva_notebook"
Livaさんのツイート: "Interrupt Transferの2つに1つがパケロスしてるのではないかという仮説を立てた #liva_notebook"
Livaさんのツイート: "2つに1つ消えているという仮説から、data toggleをしてないのがいけないのではないかと思って設定してみた所、usb keyboardが実機で完璧に動いた!! #liva_notebook"
Livaさんのツイート: "interrupt transferにはdata toggleに関する記述が無かったからこれまで設定してこなかったのだけど、isochronous transfer以外はちゃんとdata toggleをしましょう #liva_notebook"
10/27,28はOSC Tokyoさんのツイート: "自作OSのために作ったUSBホストドライバ+HIDキーボードドライバの動作をシーケンス図にしてみた.結構苦労してプログラムしたけど,苦労するだけあるわ.絵のレベルでも凄い複雑だもん.… "
NerryさんはTwitterを使っています: 「HIDクラスって本来3.0.0か3.1.1か3.1.2しか存在しないはずだけど、たまに3.0.1とか3.0.2って名乗ってる変なデバイスあるし、3.3.0ってなんだよsurface」 / Twitter
FadisさんはTwitterを使っています 「Googleが謎のUSB HID moonballのdevice IDを追加するパッチをlinuxに投げてきた話。Googleは過去にも謎のデバイスHammerのドライバをlinuxに追加しており、これは後に出た一部のChromebookで利用されているが、moonballはhammer-likeなデバイスであると説明されている https://t.co/y3EAUysdj5」 / Twitter
Google "Moonball" Will Be Supported By Linux 5.7 - Phoronix

www.usb.org/developers/hidpage/Hut1_12v2.pdf
HIDデバイス/開発 - おなかすいたWiki!
USB.org - HID Tools
USB HID クラス ‐ 通信用語の基礎知識
Windows 8 におけるセンサーのサポート – Building Windows 8
ワコム、ホイールとファンクションキーが加わった「FAVO 4」
自作OSにUSBを実装する - livaの雑記帳
Microsoft Word - HUTRR39b.docx
USB.org - Microsoft Related HID Documentation
Keyboard and mouse HID client drivers | Microsoft Docs
USB プロジェクト - マウスのReportDescriptorを見てみよう:新適当マイコン電子工作研究所:So-net blog
レポートディスクリプタ - おなかすいたWiki!
コメを噛め» Blog Archive » HID Mouse から Joystick へ
マイコンの実験:PIC内蔵USB機能(HID)の実験6
USBマウスのレポート・ディスクリプタで悩む:親族SNS管理人ブログ:So-netブログ
rjj05b1417_m16cap | 検索 | ルネサス エレクトロニクス
Keyboard and mouse HID client drivers | Microsoft Docs
USB Human Interface Devices(HID)Class サンプルプログラム
Enhanced Wheel Support in Windows - Windows 10 hardware dev
USB1.1接続のマウスは2.0と比べて反応は? -有線でUSB1.1接続のみのマ- マウス・キーボード | 教えて!goo
usb touch screen protocol - Google 検索
レポートディスクリプタ - おなかすいたWiki!

Audio

Windows

DTMで必ず登場するASIOドライバって何? : 藤本健の“DTMステーション”
Windowsの音質を阻害するカーネルミキサー : 藤本健の“DTMステーション”
オンボードのサウンド機能を高性能化するWASAPI : 藤本健の“DTMステーション”
WASAPIでiTunesを高音質に再生!? : 藤本健の“DTMステーション”

DSD

Sony PCM-D100 の為に DSD64(1bit/2.8MHz)の曲を探してみた。 - ICT備忘録
ERI 「ハイレゾノイズ」にご用心?
About - ハイレゾ音源配信サイト【e-onkyo music】
音声のデジタル化方式について | インターフェイス株式会社
PCで音楽: DSD256の聴き方!
Direct Stream Digital - Wikipedia
DSD 64 2.8MHz v.s WAV 24bit 192kHz : Studio Okamoto の 徒然日記
DSDデモトラック | サポート | OPPO Digital Japan株式会社
【藤本健のDigital Audio Laboratory】第475回:いまさら聞けないDSD/スーパーオーディオCD - AV Watch
SUPER AUDIO CD - about SUPER AUDIO CD - Format - DSD
【藤本健のDigital Audio Laboratory】“DSDのまま編集”を実現!? 帽子型補聴システム、24ch再生などDSDの新たな可能性 - AV Watch
ハイレゾ音源がダウンロードできるおすすめ配信サイトと4つの注意点
ASIO - Wikipedia
【藤本健のDigital Audio Laboratory】第546回:DSD対応USB DACの再生ソフトを比較する - AV Watch
【藤本健のDigital Audio Laboratory】第557回:DSDの基本から未来まで。「1ビット研究会」レポート - AV Watch
ASCII.jp:ハイレゾを始めるならUSB DAC? それともネットワーク? (3/5)|麻倉怜士のハイレゾ入門講座
ソニー、DSD関連フォーマットの仕様を公開
zionote、DSD対応技術「JAVSLINK2」のライセンスを公開 - 個人利用は無料 - PHILE WEB

USB オーディオ クラス ‐ 通信用語の基礎知識
OSS開発-Tethys USB: 風のまにまに心のままに、そして想いの力を信じて
02 « 2月 « 2010 « PCオーディオブログ
USB Audio - Speaker - マイコン工作実験日記
uaudio(4)
WhatsNew/FreeBSD10 - FreeBSD Wiki
AN295.pdf
usb-audio-simplified.pdf
USB Audio Design Guide
USB Audioの転送データサイズ | インターフェイス株式会社

MIDI

MIDI - Wikipedia
MIDI - Wikipedia
今さら聞けない、「MIDIって何?」「MIDIって古いの?」 : 藤本健の“DTMステーション”
MIDI規格がすべて無料公開!GitHubも同時スタートし、よりオープンに進化する! : 藤本健の“DTMステーション”
Home
RP/CA
About | Creators' Hub - Presented by AMEI
amei-music/CreatorsHub: 異なるプロトコルやアプリケーションのメッセージを相互に変換するプログラムです。MIDI, OSC, Web Socketを流れるJSON等の相互変換ルールを定め一意に変換することで、音楽や映像アプリケーション間の接続性や汎用性を高め、様々なメディア・デバイスが連動したクリエーションをより容易にします
MIDI規格委員会
MIDI1.0規格書
DTM技術情報 - 0.目次 | g200kg Music & Software
SMF(Standard MIDI File)フォーマット解説 | 技術的読み物 | FISH&BREAD
SMF (Standard MIDI Files) の構造 - Welcome to yyagi's web site.
apollo twin USBを駆使する声優の小岩井ことりさんの本気すぎるDTM環境 : 藤本健の“DTMステーション”
MIDI 2.0 の件 | g200kg Music & Software

Wacom タブレット

Wacom タブレット - ArchWiki
Home · linuxwacom/input-wacom Wiki
Wacom Protocols · linuxwacom/input-wacom Wiki
USB Protocol - linuxwacom

DisplayLink

DisplayLink
DisplayLink - Wikipedia
【イベントレポート】DisplayLink、4K/60Hzの2出力対応のUSBディスプレイコントローラ - PC Watch
DisplayLink/evdi: Extensible Virtual Display Interface
displaylink-rpm/displaylink-rpm: RPM sources for the DisplayLink USB display adapters
AdnanHodzic/displaylink-debian: DisplayLink driver installer for Debian/Ubuntu based Linux distributions.
zhsj/displaylink: Debian package for DisplayLink Linux driver
magoroku15/DisplayLink-driver-for-android: Little modification for android
venix1/PiDock: displaylink clone
linux/udlfb.c at master · torvalds/linux
floe/tubecable: DisplayLink open-source protocol reference implementation
Home · floe/tubecable Wiki
libdlo
https://www.kernel.org/doc/Documentation/fb/udlfb.txt
HOWTO: Use a DisplayLink USB graphics adapter on Crunchbang Linux v11 Waldorf with partial upgrade to Debian Jessie

Class

USB device class drivers included in Windows (Windows Drivers)
USB.org - Defined 1.0 Class Codes
USB.org - USB Device Class Specifications
デバイスクラス ‐ 通信用語の基礎知識
3.5mmイヤホンジャックが消える日も近い?音声対応USB規格発表 - iPhone Mania
Hit the road, headphone jack. USB wants your job - CNET

エニュメレーション

エニュメレーション | インターフェイス株式会社
USB/エニュメレーション - おなかすいたWiki!
Prot3 USB Protocol( 3)  FT-232Hのエニュメレーション完了を検出
USB/PnP - SyncHack
設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識 |Tech Village (テックビレッジ) / CQ出版株式会社
USBのエニュメレーション(まとめ) : prittyparakeetのblog
USBの解説.PDF
USB1.1 およびUSB2.0におけるエニュメレーションの違いが知りたい - 108: 上記以外のマイコン関連 - Forum - かふぇルネ - Renesas Rulz - Japan
USB ( Universal Serial Bus ) インタフェース | 東芝デバイス&ストレージ株式会社 | 日本
USB Host Human Interface Device Class Driver (HHID)
エニュメレーション | インターフェイス株式会社
USBデバイス状態遷移図 | インターフェイス株式会社

パケットキャプチャ等

【レビュー】スピードテスト機能も搭載。USBデバイスの情報を一覧表示できる「USBDeview」 - 窓の杜
FREE USB Protocol Analyzer Software USB Sniffer and Logic Analyzer
hiro99ma blog: USBのパケットキャプチャ
マイコンの実験:PIC内蔵USB機能の実験3
Wireshark · Download
USBPcap
Usb Sniffer for Windows download | SourceForge.net
RatatoskrによるUSBキャプチャ - Qiita

Wikipedia

USB Type-C - Wikipedia, the free encyclopedia
USBハブ - Wikipedia
CCID (protocol) - Wikipedia

Twitter

Fadisさんのツイート: "USBデバイスを物理的に取り外さずにLinuxカーネルの管理から外すには echo <デバイス名> >/sys/bus/usb/drivers/usb/unbind 再びカーネルに握らせるには echo <デバイス名> >/sys/bus/usb/drivers/usb/bind"
Fadisさんのツイート: "カーネルの管理から外れたデバイスはユーザ空間から誰にも邪魔されずに会話できる状態になるため、ゲスト環境にホストのUSBデバイスを直接触らせたりする時に便利、と"
Fadisさんのツイート: "CDC ACMのシリアル通信って入力 出力 割り込み通知の3本のエンドポイントが転がってるだけで特にUSBの上にプロトコルのようなものはなくてそのままシリアル通信のデータが流れてるんだな…"
a.rin@mixさんのツイート: "USB が 1msec フレームなんで、GPSからの時刻データをUSB経由だと、1msecくらいのジッタがでちゃうのね"
なかのん&マジックさんのツイート: "色んなキーボードレイアウト(物理)を見てると、日本が強かった時代がコンピュータの黎明期で色々と得してるなーとは思う。こんだけ購買力落ちててもJISキーボードの販売・サポートは必須やからね。歴史的要因って強い。"
なかのん&マジックさんのツイート: "JISキーボード固有のキーが無かったらどうなるのかは、中国語のIMEがどうやってON/OFF切り替えるのかとか見ると、結構真顔になってしまう。"
なかのん&マジックさんのツイート: "USB規格にはLang1からLang4までの特殊キーが定義されてるんで、あれを各、非ASCII文字な言語圏は活用すべきだと思うんだけど、物理キーボードにそのキーを載せるとなると、やっぱりコストがかかるから、肝心のPCメーカーが率先してキーの追加を提案したりはしないわなぁ。"
なかのん&マジックさんのツイート: "失礼。Lang4までじゃない。Lang9まであった。"
Nerry さんはTwitterを使っています: 「control trb の status stage の dir は data stage の種類によって違う:;(∩´﹏`∩);:」 / Twitter
神無月ねりさんはTwitterを使っています: 「usbポートって抜き差しする時結構チャタリングでイベント飛んでるのね。使い終わったスロット解放してないからめっちゃスロット番号とぶ」 / Twitter

The USB ID Repository
www.linux-usb.org/usb.ids
home | USBGuard
dkopecek/usbguard: USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
USB転送方式 | インターフェイス株式会社
USB4™ Specification | USB-IF
USB4 Adopters Agreement | USB-IF
USB4 | USB-IF
Compound Device と Composite Device - 借り初めのひみつきち

Bluetooth

その他

デバイスに搭載されているBluetoothのバージョンをGUIで簡単にチェックできるツール - 窓の杜
第267回 Bluetoothデバイスで離席管理する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
HCIプロトコル
21.4. Bluetooth
Chapter�21.�Bluetooth on NetBSD
Bluetooth
OSx86jp @ ウィキ - 動作報告 Bluetooth編
できる周波数ホッピング
デュアルブート環境で Bluetooth を使いたい!
Bluetoothの暗号鍵ネゴシエーションに脆弱性、仕様自体を修正 - PC Watch
【アプデ/10】 2019年7月度(あるいはそれ以降も?)のWindowsUpdate適用でBlurtoothスピーカーに不具合 : ニッチなPCゲーマーの環境構築
Windows 10プレビュー版、BTデバイスのペアリングをより簡易化 - PC Watch
【レビュー】Windows 10はBluetoothの高音質通話「HD Voice」に対応したのか? ~バッファロー製ヘッドセットで実証テスト - PC Watch
サポートされる Bluetooth プロファイル - Windows Help
「Windows 10 20H1」Build 19002が“Fast”リングに ~Bluetooth機器の接続が手軽に - 窓の杜
Windows 10プレビュー版、Bluetoothの簡易接続機能が全ユーザーに提供 - PC Watch
ASCII.jp:Windows 10でようやくまともになったBluetoothのサポート (1/4)|Windows Info

Bluetooth

https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
Adopted Specifications | Bluetooth Technology Website
Specification | Adopted Documents | Bluetooth Technology Special Interest Group
ECN specification for Bluetooth SDP
Bluetooth - Windows 10 hardware dev
Bluetooth stack - Wikipedia, the free encyclopedia
Bluetooth - ArchWiki
Bluetooth - ArchWiki

Apple

Bluetooth Accessory Design Guidelines for Apple Products
iOS:iOS デバイス対応の Bluetooth プロファイル - Apple サポート
iPhone テザリング - ArchWiki
iPhone tethering - ArchWiki
Bluetoothテザリング子機として使える機種を探す方法と注意点
iPhoneはBluetooth PAN(テザリング)の子機として使えない(備忘録) – Captain's Log, Supplemental
今さら聞けないテザリングについて|プラカンブログ | プラスデザインカンパニー【大阪・東京 ホームページ・WEB制作】
Bluetooth経由でiPhoneへ写真を転送できる? - いまさら聞けないAndroidのなぜ | マイナビニュース
なぜ「AirDrop」はBluetoothを使うのにファイル転送が速いの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
The Official Bluetooth SIG Member Website
日記 (2019 年 2 月上旬)

Classic

Audio

SCMS-T

第497回:SCMS-Tとは - ケータイ Watch Watch
SCMS - Wikipedia
Bluetoothヘッドホンからテレビの音が聞こえません!? - いまさら聞けないAndroidのなぜ | マイナビニュース
SCMS-T | 用語集 | KDDI株式会社

BT-UHD

<IFA>ファーウェイ、Bluetooth新プロトコル「BT-UHD」。LDAC比2倍以上、2.3Mbpsでオーディオ再生 - PHILE WEB

LDAC

Sony Japan | LDAC™で高音質ワイヤレスリスニング
ソニーのハイレゾ対応コーデック「LDAC」は何がスゴい? 開発者に疑問をぶつけた - AV Watch
次期OS"Android O"の開発者プレビューが公開。ソニーの協力によりLDACをサポート - PC Watch
第707回:LDACとは - ケータイ Watch Watch
platform/external/libldac - Git at Google
LDACエンコーダを使ってみた - Qiita
eggman/ldacenc: LDAC encoder
eggmanさんのツイート: "AOSPにLDACのencoderのソースコードがあった。 https://t.co/sdNwBJpx42 次のAndroidにはLDACが標準搭載されるっぽいですね。"

apt-X

Qualcommが英CSRを買収。BLEやaptXなどBluetooth資産を獲得し、IoE強化 - AV Watch
aptX対応のワイヤレスBluetoothオーディオ製品と技術
ボクらのスマホ&iPhoneを最新のaptX-LL対応にする方法(ワイヤレスイヤホン選びを真剣に考える③)|オモロダイブ
高音質ワイヤレスで注目の「aptX HD」は他とどう違う? クアルコムに聞いた - AV Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Qualcommが展開する「DDFA」の高音質化技術とハイレゾ対応Bluetooth技術「aptX HD」 - PC Watch
Qualcomm® aptX™ Low Latency Synchronised Audio
aptX Low Latencyを試してみる? | Wasters haven.
新Bluetooth音声コーデック「aptX Adaptive」。動的レート制御で音質と接続性向上 - AV Watch
Qualcomm、レイテンシ削減でゲームにも対応できる無線オーディオコーデック「aptX Adaptive」 - PC Watch
第876回:aptX Adaptive とは - ケータイ Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Bluetoothを高音質/低遅延化する「aptX」。CSRが説明 - AV Watch
次期Android“Oreo”が対応「LDAC」「aptX HD」はどのスマホで使えるようになるのか? (1/3) - PHILE WEB

AAC

【第153回】“iPhoneのAACファイルをAACでBluetooth伝送すると音質劣化しない”は本当か? - Phile-web
License Fees - Via Corp

SBC

SBC (codec) - Wikipedia, the free encyclopedia
BluetoothのSBCって何ですか? - afnf.net
https://tools.ietf.org/id/draft-ietf-payload-rtp-sbc-03.txt

Bluedroid

Andorid 4.2以降はBluetoothが違う、ってどういうこと? - いまさら聞けないAndroidのなぜ | マイナビニュース
Android 5.0でBLE advertising するための要件 - Qiita
Android Bluetooth HAL Interfaces について 概要編 - Qiita
Bluetooth | Android Open Source Project
Bluedroid ‐ 通信用語の基礎知識
platform/external/bluetooth/bluedroid - Git at Google
embdrv/sbc/encoder/srce/sbc_encoder.c - platform/external/bluetooth/bluedroid - Git at Google

PulseAudio

Fadisさんのツイート: "PulseAudio 10.0がリリースされました。主な変更点はBluetooth使用時にアプリケーションの申告に基づいてA2DPとHSPを切り替える仕組み、パススルーモード、USB接続のサラウンドなデバイスが使えない不具合の修正他 https://t.co/wSWB3Q7rom"
PulseAudio 10.0 Officially Released - Phoronix
10.0

冒頭に無音を挿入

Rui Ueyamaさんのツイート: "なんかほとんどのBluetoothスピーカーやヘッドフォンは、数秒以上使われていないと待機状態に移行して、そのあと復帰直後の音の最初の0.1秒くらいが欠落するぽい。ひどい実装だ。"
Rui Ueyamaさんのツイート: "なのでTCFMではsoxで0.1秒の実質的な無音ファイル(-50dbのbrown noise)を作って音声ファイルの冒頭にくっつけるということをすることに。そうしないとBluetoothで聞いたとき最初の子音が欠落してしまう。ここらへんも含めて加筆修正しました。 https://t.co/bewRhFDebf"

【Bluetoothヘッドホン】【Bluetoothスピーカー】AAC/aptXとは?
AACとapt-Xコーデック(ポータブルスピーカー まとめ) : 日々妄想 -書籍と家電の個人的記録-
apt-x HDとLDAC ワイヤレスハイレゾの覇権をとるのはどっちだ | IT Trend news
LDAC vs aptX HD。いよいよ動き始める「ハイレゾ級ワイヤレス」 – boomil
Android の aptX aptX-HD LDAC AACサポートについて - Qiita
「Bluetoothオーディオ」の仕組みと用語 〜Bluetoothスピーカーやヘッドホンを選ぶ際におさえておきたいポイント - Fluffy white croquis
A2DP ‐ 通信用語の基礎知識
とみながたけひろさんのツイート: "相変わらず周波数特性と波形で音質評価といってる人の記事が流行ってるのか、、、"
とみながたけひろさんのツイート: "BTヘッドフォンをちゃんと電波部分、コーデックアルゴリズム、デジタル、アナログ回路性能、マイク、ヘッドフォン性能、ぐらい分離して細かくレビューしてほしい(無理)(やっぱり専業とかデカイ会社ではやっとるんかなあ)"
とみながたけひろさんのツイート: "コーデックはまあそれなりに知ってるけど、それ以外で世間の製品がどう頑張ってるか知りたい。電波状況が悪化して一度帯域を落としたら二度と戻らないようです、とか、帯域切替を頻繁に行うのでそこでノイズが載ったように聞こえますとか、遅延と音質との関係とか、クロック同期とか、、、"
とみながたけひろさんのツイート: "まあとりあえずなんちゃって評価するにしても、数秒とかのサイン波でやるなら、電波が飛ぶ領域だけでもちゃんと簡易電波暗室的な奴(アルミ缶とかでもいい)に入れて評価してほしい"

HIDP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識

BLE

BLE-MIDI

Apple Bluetooth Low Energy MIDI Specification
Bluetooth for Developers - Apple Developer
【藤本健のDigital Audio Laboratory】第669回:Bluetooth MIDI伝送で何ができる? 対応5製品とiPad連携などを試す - AV Watch
Spec / Faq | microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
Bluetooth LE MIDI Specification

6LoWPAN

わふう>ω<のひとさんはTwitterを使っています: "OpenWRT + BLE over IPv6/6LowPAN。つまり市販されているWiFiルータにBLEドングルを刺してOpenWRTでIPv6/6LowPANのルータがデモンストレーションできる、と
わふう>ω<のひとさんはTwitterを使っています: "IPv6 over Bluetooth Smart (Low Energy) [OpenWrt Wiki] https://t.co/vxgpSbU2Mi"
わふう>ω<のひとさんはTwitterを使っています: "6LoWPAN for Bluetooth low energy on OpenWRT RT Blogs - Nordic Developer Zone https://t.co/k1UkJKpOq9"
6LoWPAN のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社

Bluetooth Low Energy(BLE)入門――なぜBLEは世界で愛用されるのか - EE Times Japan
Bluetooth LE と Beacon の話
2016年のBLEを振り返る | Reinforce-Lab.'s Blog
「IoTの成功モデル」、BLE市場が活況 - 家電・モバイル - 日経テクノロジーオンライン
IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】 (1/3):CodeZine(コードジン)
DSAS開発者の部屋:既成の BLE デバイスを自作プログラムから利用する試み
FreeBSDで Bluetooth Low Energy (BLE)を使う | 元祖ワシ的日記
HOGP ‐ 通信用語の基礎知識
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
Takashi KawasakiさんはTwitterを使っています 「BLEが位置情報の権限を必要とする根本的な理由についての認識って共有されてないんだな。ビーコンに限らず、BLE機器をスキャンしたら周りにある機器が特定できちゃうので、間接的に場所が特定できちゃう可能性が高まるんだよね。別にGPSが動くわけじゃない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「少なくとも、この人とこの人、ひょっとしてお隣さん?みたいな事は十分にわかっちゃう可能性がある。Macの名前とかモロバレだし、そうじゃなくても、ユーザーのフィンガープリンティングとしては割と精度が高い。」 / Twitter

Google

bluetooth - Git at Google
platform/external/bluetooth/hcidump - Git at Google

セキュリティ

Bluetooth経由でスマホからPCまで乗っ取れる攻撃手法が発覚 ~Bluetoothがオンになっているだけで攻撃可能 - PC Watch
JVNVU#95513538: 様々な Bluetooth 実装に複数の脆弱性
数十億を超えるBluetooth機器に影響、ペアリングなしで乗っ取られる脆弱性“BlueBorne”が明らかに - 窓の杜
Armis BlueBorne: Bluetooth vulnerabilities | Firmware Security
BlueBorne Technical White Paper.pdf
Bluetoothのセキュリティ強化とリスクの軽減を図るための3つの対策
Fadisさんのツイート: "BlueBorneで明らかになった脆弱性の1つCVE-2017-1000251は、Bluetoothのデータリンク層の設定を行うL2CAP CONFIGURATION REQUESTに巨大なパラメータを付けて投げると、それを想定していない実装がスタック破壊→任意コード実行という物で、いわば21世紀のping of death https://t.co/q5DEtKHEzU"
Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251 - Red Hat Customer Portal
Bluetoothに通信傍受などの脆弱性、「Apple」「Intel」「QUALCOMM」製品などが影響を受ける恐れ - INTERNET Watch
JVNVU#92767028: Bluetooth 実装の楕円曲線ディフィー・ヘルマン鍵共有において公開鍵を適切に検証していない問題
Fadisさんのツイート: "Bluetoothの仕様が複雑すぎ、実装者に多くの選択肢を用意しすぎている為、実装者は目的を達成するのに必要なサブセットを摘んで実装する傾向があり、それがBluetoothを格好の攻撃対象にする原因になっている、という話 https://t.co/YuD0fAs5dl"
Bluetooth's Complexity Has Become a Security Risk | WIRED
Fadisさんのツイート: "Bluetoothの規格書、WiFiの約10倍のページ数があるのか…"
More information on “…Exploiting Low Entropy in the Encryption Key Negotiation of Bluetooth® BR/EDR” *

Wireless・のおと

Bluetoothのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(4)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのセキュリティのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth 5 のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth5の補遺|Wireless・のおと|サイレックス・テクノロジー株式会社

通信用語の基礎知識

Bluetooth ‐ 通信用語の基礎知識
Bluetoothプロファイル ‐ 通信用語の基礎知識
SDP (Bluetooth) ‐ 通信用語の基礎知識
HCI (Bluetooth) ‐ 通信用語の基礎知識

GitHub

Fadisさんのツイート: "Logitech(ロジクール)のUSB接続BluetoothドングルのデバイスのペアリングをLinuxから行う為のオープンソースなツール Solaar https://t.co/fpbi8nDC3I"
Solaar
pwr/Solaar: Linux devices manager for the Logitech Unifying Receiver.
bluekitchen/btstack: Dual-mode Bluetooth stack, with small memory footprint.
RedBearLab/BLE_HCI: Allows external systems or MCUs to connect BLE (CC2540) using HCI as BLE Central Role
JiounDai/Bluedroid: PoCs of Vulnerabilities on Bluedroid

Qiita

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita
FreeBSDでBluetooth SPP - Qiita

Twitter

as9kさんのツイート: "A2DPはHSP/HFP(ヘッドセット・ハンズフリー)よりはるかに音がいい。A2DP使えないものと比べたから確か"
なかのん&マジックさんのツイート: "AndroidにBluetoothのDUNを追加するアプリはあるけど、HFPを機能があるかのように見せるだけで良いんで、HFPを追加するアプリって無いんかな? 技術的にできるんか知らんけど。"
なかのん&マジックさんのツイート: "カーナビは、HFPで接続の成否を判断してるんで、HFPの無いタブレットをモデムとして使えないんだよな。"

ACPI

その他

ReactOS: drivers/bus/acpi/acpica/namespace/nsinit.c File Reference
https://www.bitvisor.org/summit/slides/BitVisor-Summit-02-eiraku.pdf
ACPI Wakeup - MythTV Official Wiki
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPI BGRT - ねりりんと借り初めのものがたり
Judgement Day - ねりりんと借り初めのものがたり
ACPICA – Raphine Project<サイト製作中>
ACPI Table - Qiita
ACPIの最新仕様書は、UEFI Forumによって管理されています。(2013年10月以降) - 64bitマシンとか、Linuxとか、アニメとかのブログ
Linux kernel ACPI-centric CVE-2017-13694: Awaiting Analysis | Firmware Security
FWTS 17.08.00 released, many new ACPI tests | Firmware Security
AML - OSDev Wiki
FADT - OSDev Wiki
New ACPI IDs for November: Nexstgo and Insyde | Firmware Security
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
ACPICA - OSDev Wiki
Shutdown - OSDev Wiki
初心者のためのACPI
第8回 ACPI その2 ACPICAを使おう - ブログやめる日記
ACPI で電源を切る - 借り初めのひみつきち
ACPI で電源を切るの補足 - 借り初めのひみつきち
Nerry さんのツイート: "たったふたつのOUT命令でここまで長い記事になるとは書き始めた時は思ってなかった。深い。"
2019年3月29日号 discoのBetaとカーネルフリーズ,ACPIまわりのデバッグ方法:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Debug ACPI DSDT and SSDT with ACPICA Utilities | Ubuntu blog
⚙ D20630 ACPI support for USB , mainly hub.
Nerry さんはTwitterを使っています: 「そういえば現状ACPI ENABLEしないままXHCIドライバとPS2ドライバ両方起動してるから一部のレガシーエミュレーションしてる機種でうまくない動作してるかもしれん。。あとで直しとこ:;(∩´﹏`∩);:」 / Twitter
Nerry さんはTwitterを使っています: 「ほんとはACPI ENABLEして電源ボタンのイベント取りたいけど機種によってはAML読まないと電源イベント取れない機種があってその辺の対応がめんどくさい:;(∩´﹏`∩);:」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「ラップトップに Linux 入れて PowerTop を実行するとまず LCD が電池を喰ってて次に CPU だったりするから,輝度を落として CPU も CPUfreq で governor を powersave とかにするだけでだいぶバッテリーが保つんですよね」 / Twitter
機械学習を利用してバッテリーの充電傾向を把握し、使用直前までバッテリー充電率を80%で止めてくれるiOS 13の新機能「最適化されたバッテリー充電」は位置情報も使用し、旅行先などでは機能を停止する。 | AAPL Ch.
Appleは新しいMacBook Pro向けの新機能として、IntelのTurbo Boostを長時間継続させアプリのパフォーマンスを向上させるような「Pro Mode」をmacOS Catalina Betaでテストしているもよう。 | AAPL Ch.
kworker/kacpidのCPU使用率が高い問題に対処した

S0ix

Linux

ols2012-mansoor.pdf
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix
How to achieve S0ix states in Linux* | 01.org
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix Forums
Add suspend-to-idle validation for Intel SoCs [LWN.net]
[linux-joule,9/9] Enable type-c HOST mode with S0iX suspend - Patchwork
ref-os-iot/0004-Enable-USB-Type-C-HOST-mode-with-S0iX-suspend.patch at master · intel/ref-os-iot
Mailing List Archive: [PATCH v2 5/5] intel_idle: Add S0ix validation
LKML: "dbasehore .": Re: [PATCH v5 5/5] intel_idle: Add S0ix validation
Linux-Kernel Archive: [PATCH] platform/x86: intel_pmc_ipc: read s0ix residency API
x86/pmc_atom: Eisable a few S0ix wake up events for S0ix residency [Linux 3.17] - Linux Kernels
Re: S0ix failure due to "clk: x86: Do not gate clocks enabled by the firmware" — Clock Framework

FreeBSD

⚙ D17676 Emulated S3 with s0ix (not currently working)
bwidawsk/freebsd: bwidawsk's FreeBSD src tree

Challenges around _OSI
8th Gen (S-platform) Intel® Processor Family Datasheet Vol. 1
IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - マイクロアーキテクチャ編 (3) 省電力周りの変更点、Atom同等のS0iXモードのステートを追加 | マイナビニュース
【笠原一輝のユビキタス情報局】スマートフォンと同様の使い勝手を実現するIntelのS0ix実装 ~IntelがClover Trailの詳細を公開 - PC Watch
ASCII.jp:インテルが最新モバイルCPUで実現した省電力技術とは?
画面オフ・モダンスタンバイ・休止状態 - ※ただの日記ブログです※
Windows 10ミニTips (57) 電源コマンドを使ってPCの「モダンスタンバイ」対応を確認する | マイナビニュース
Powercfg のコマンド ライン オプション
ASCII.jp:Modern Standby対応PCでバッテリーアイコンをクリックすると表示されるスライダーの謎 (1/2)
retrageさんはTwitterを使っています 「Modern Standby/S3 ResumeでのBIOSの動作って結構バグっていることが多いのでBIOS updateしてみるといいかもしれません。」 / Twitter
【山田祥平のRe:config.sys】モダンスタンバイ、信じる、信じない? - PC Watch
DellのXPSノートPCでスリープ中の異常発熱が報告される - GIGAZINE

Hardware-reduced ACPI platforms

HW reduced ACPI - 借り初めのひみつきち
SoC ベース プラットフォームのハードウェア要件 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0 | Microsoft Docs
Hardware requirements for SoC-based platforms | Microsoft Docs
モダン スタンバイ - Windows 10 hardware dev
モダン スタンバイの SleepStudy レポート - Windows 10 hardware dev
ACPI ファームウェアの実装要件 - Windows 10 hardware dev
ACPI バッテリおよび電源サブシステムのファームウェアの実装 - Windows 10 hardware dev
バッテリおよび電源サブシステムのハードウェア設計 - Windows 10 hardware dev
バッテリと充電 - Windows 10 hardware dev
Nerry@さんのツイート: "あ、HW reduced ACPIもPM1 control registerとほぼ同じレジスタが別にあるのか"
Nerry さんのツイート: "virtual boxで電源落とせるようになった。 HW reduced ACPI はこれでいけるはずだけどまだテストできてない… "
Nerry さんのツイート: "S5のSってSleepなのかStateなのかその他の意味なのか"
Nerry さんのツイート: "S5探す作業だいぶ短くできた… "

Skylake

ASCII.jp:Windows 10の電力管理を支えるACPIを見る (1/2)|Windows Info
ASCII.jp:「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする (1/2)|Windows Info
ASCII.jp:スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」 (1/2)|Windows Info
電力管理ガイド - Fedora における電力消費の管理について
IDF Session Presentation Template
Call for help for Skylake Power Management – Pike's Universum
linux/x86_energy_perf_policy.c at master · torvalds/linux
CPUID — CPU Identification
paper.pdf
1905.12468.pdf
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に | ニッチなPCゲーマーの環境構築Z
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
これで分かるSkylakeマイクロアーキテクチャ。性能向上と省電力化のために加えられた多くの改良が明らかに - 4Gamer.net

電源管理

北森瓦版

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
北森瓦版 - “KabyLake”と14nm+プロセス

本の虫

本の虫: Linux 3.9はPM_SUSPEND_FREEZEをサポート

PC Watch

【笠原一輝のユビキタス情報局】Intelの開発責任者に聞く、Skylake開発秘話 - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
【後藤弘茂のWeekly海外ニュース】Ultrabookのアイドル電力消費を100mW以下にするHaswellの省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Haswell」のダイと省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Atomスマートフォンで勝負をかけたIntel - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch

ASCII.jp

ASCII.jp:Windows 8.1で利用できるInstant Goの挙動を調べる (1/2)|Windows Info
ASCII.jp:Win 8.1で利用できるInstant Goのトラブルを解決する (2/2)|Windows Info

OSDN

Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine

Wikipedia

スリープ (コンピュータ) - Wikipedia

Qiita

BitVisorとACPI - Qiita

Twitter

kmem_cacheさんはTwitterを使っています: "お、マウスの電池残量が少ないことまで通知してくれるのか > gnome3 https://t.co/QwbmRDg5Xa"
Takahiro HASHIMOTOさんのツイート: "GPD PocketのUbuntu版カーネルで、bq24190_charger ドライバが充電器から取り出す電流が3Aハードコードされてるらしい。純正電源ならいいが他のはヤバいのでこのカーネルは使うなとHans氏が注意喚起してる https://t.co/kF52Mmq65T"

“「使っていない時も省エネ・・・!?」~欧州規制EuP指令の対応”|環境活動|エプソン
3メーカーに聞く、Haswell時代の電源選び 【玄人志向編】技術者「謎のサングラス男」に聞く、Haswell対応の根本とポイント - AKIBA PC Hotline!
ErP Lot 6 って?|エナぶろぐ
UEFI(U1E)へアップデートしてみました - GIGABYTE LGA1155 intel Z68(B3) Micro ATX GA-Z68MX-UD2H-B3のレビュー | ジグソー
価格.com - 『USB給電を止めたいです。』 ASRock Z87 Pro3 のクチコミ掲示板
価格.com - 『シャットダウン時にUSBへの電源供給を止めることはできますか?』 ASRock Z87 Extreme4 のクチコミ掲示板
www.eceee.org/ecodesign/products/standby/
openSUSE 13.1: 第11章 電源管理
ACPI の基礎知識
いろいろ Tips02.スタンバイと休止状態 - cool-r32.com
休止状態とスリープ状態の違い - 道すがら講堂
mjg59 | Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed

SMBus

SMBus Specifications
SMBus ‐ 通信用語の基礎知識
セカンド・オピニオン (134) バスのアーキテクチャ - 過去から未来へ(95) | マイナビニュース
I²C ‐ 通信用語の基礎知識

SBS

SBS-IF - SBS Specifications
「バッテリーを交換してください」とは? powercfg による診断 - Web/DB プログラミング徹底解説
スマートバッテリ ‐ 通信用語の基礎知識

APEI

第3章 カーネル
A_Tour_beyond_BIOS_Implementing_APEI_with_UEFI_White_Paper.pdf
ACPI モジュール - ArchWiki
ACPI, APEI support [LWN.net]
https://www.kernel.org/doc/Documentation/acpi/apei/einj.txt
Linux/Documentation/acpi/apei/einj.txt - Linux Cross Reference - Free Electrons
Linux/drivers/acpi/apei/hest.c - Linux Cross Reference - Free Electrons
LEG/Engineering/Kernel/RAS/APEITests - Linaro Wiki
linux/drivers/acpi/apei at master · torvalds/linux

ACPI 連載

www.init-main.com/acpirensai/acpi.txt
www.init-main.com/acpirensai/acpi3.txt
www.init-main.com/acpirensai/acpi4.txt
www.init-main.com/acpirensai/acpi5.txt
www.init-main.com/acpirensai/acpi6.txt
www.init-main.com/acpirensai/acpi7.txt
www.init-main.com/acpirensai/acpi8.txt
www.init-main.com/acpirensai/acpi10.txt
www.init-main.com/acpirensai/acpi-features.txt
Takanori Watanabe(@takawata19)さん | Twitter
Takanori Watanabe's Home Page

DSDT

DSDT - ArchWiki
ja/Fixing DSDT
OSx86駆け込み寺 - DSDT
おかしなDSDTを直そう | rionaoki.net
PCI 情報/DSDTテーブルの取得方法 - Japanese - InsanelyMac Forum
OSX86 Hackintoshで良く出てくる DSDTや SSDTって何?取得方法は?の夢 (DSDT.amlや SSDT.amlの取得方法、ACPI電源管理用の情報が書いてあるファイルです)

DMAR

howto_implement_hypervisor/part16.md at master · syuu1228/howto_implement_hypervisor
KVM PCIパススルー (PCI PassThrough) | nexia inc
第16章 仮想化
UEFI機能一覧(Workload Optimized 2) : Enterprise Cloud Knowledge Center Baremetal Server 1.5.6 ドキュメント
OVMF による PCI パススルー - ArchWiki
ACPI DMARメモ - 睡分不足

MS

ESRT

ESRT テーブルの定義 - Windows 10 hardware dev
ESRT table definition
ESRT テーブルへのデータ入力 - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
Better Firmware Updates in Linux using UEFI Capsules
Windows UEFI ファームウェア更新プラットフォーム - Windows 10 hardware dev
更新プログラムの処理 - Windows 10 hardware dev
ファームウェア更新ステータス - Windows 10 hardware dev
ファームウェア更新パッケージの作成 - Windows 10 hardware dev

SoC プラットフォーム用 Windows ACPI 設計ガイドライン - Windows 10 hardware dev
Hardware requirements for SoC-based platforms
ACPI 5.0 用 Windows サポートの概要 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0
ACPI 定義のデバイス - Windows 10 hardware dev
その他の ACPI 名前空間オブジェクト - Windows 10 hardware dev
ACPI システム記述テーブル - Windows 10 hardware dev
ACPI system description tables
ドッキング - Windows 10 hardware dev
Microsoft Software Licensing Tables (SLIC and MSDM) - Windows 10 hardware dev
Microsoft ASL Compiler (asl.exe) を使ってみる – Japan WDK Support Blog
デバイス管理の名前空間オブジェクト - Windows 10 hardware dev
AcpiGenFx を使った ACPI テーブルの生成 - Windows 10 hardware dev
ACPI ドライバーインターフェース – Japan WDK Support Blog
モダン スタンバイのためのハードウェアの準備 | Microsoft Docs
指示電源管理フレームワークの概要 - Windows drivers | Microsoft Docs

GitHub

illumos-joyent/dbnames.c at master · joyent/illumos-joyent
phantomuserland/acpi_main.c at master · dzavalishin/phantomuserland
PG_MANAさんはTwitterを使っています 「なんと、たった、2600行であのAMLが中途半端に動くようになります。 https://t.co/dK8M29e9Pl」 / Twitter
[add] AML Evaluator(provisional) · PG-MANA/Methylenix@e830e29

OSDN

ファイル詳細: /drivers/acpi/acpi_ctl.cc (master) - uniqos (git) - OSDN
ファイル詳細: /drivers/acpi/acpi_os.cc (master) - uniqos (git) - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nsalloc.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nswalk.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
https://osdn.jp/projects/linux-kernel-docs/docs/C06/ja/1/C06.pdf

Wikipedia

Advanced Configuration and Power Interface - Wikipedia
Reset vector - Wikipedia, the free encyclopedia

Twitter

その他

mrtska@4thSSA両日LVさんのツイート: "[StarRing] https://t.co/CXAW6qhcaR mrtska - ACPICAでACPIシャットダウンに成功したぞ"
Fadisさんのツイート: "Linux-4.8がリリースされました。主な変更点はRaspberryPi3のSoCのサポート、AMD OverDriveのサポート、ACPI Low-Power Idleをサポート、Surface3のタッチスクリーンをサポート他 https://t.co/S5XM87PpTt"
勝(まさる)さんのツイート: "ノートPCでちゃんと動くっていうと、ふたをしめて開いたら液晶がちゃんと復活するところから<おい"
AoiMoeさんのツイート: "だいたいOSがACPIの仕様書通り実装してもちゃんと動かないBIOSばっかりだもんなあ"
СЮУ1228🔥🐉さんのツイート: "@uchan_nos @kotatsu_mi そもそもACPIはそのPC上の全デバイス情報を始めとしてあらゆるPC固有の情報突っ込んでおいてOSに渡すためにあるので、電源管理だけのためのものじゃないす"
𝔬𝔯𝔲𝔪𝔦𝔫(orumin)さんのツイート: "@uchan_nos @syuu1228 自分のマシンを Linux とかで起動したときに,/sys/firmware/acpi/tables/ にあるファイルの中身をどっかにコピーした上で,それに対して iasl -d とかのコマンドでデコンパイルしたら実際の ASL に何が記述されてるとか読めそう"
ドラゴン・ユタカ・フルーツ🐬さんのツイート: "パソコンやサーバの電源ボタンを短押し(軽く一回押すこと)すると、OSシャットダウンして電源が落とせますが、実際にはOSの設定に依存します。また、RHELはログオン状態だとダイアログが出るだけです。 ログオンできないけど、マシンを落としたいときは便利な機能です。"
Yasunori Gotoさんのツイート: "ACPI 6.2が出たので見てるんだけど、NVDIMM関連の仕様も色々増えていて、頭抱えてる。 SLIT テーブルはレガシー仕様になる予感"
技術書典4 け-51 x86-64-128さんのツイート: "ACPIについて勉強。ACPIを使うには何と言ってもRSDP(64ビット環境ではXSDP)を得る必要がある。ACPICAを使うにしても、RSDPの値はユーザが与える必要がある。UEFIが有効なシステムではSystem TableからRSDPの値を探す。 #uchan_devbox"
技術書典4 け-51 x86-64-128さんのツイート: "OSを初期化するためにACPIのテーブルを読む必要があるので,ACPICAではACPIテーブルを読む機能は"Early ACPI Table Access"と言って動的メモリ管理などが無くても使えるようになっている.ACPICAのフル機能は動的メモリ管理とかマルチプロセスなんかが必要となる. #uchan_devbox"
ゆたかさんさんのツイート: "(x86な)Linuxは、システムに搭載されているCPUの数を、BIOS(UEFI)が持つACPIテーブル(DSDT)から取得します。 /sys/firmware/acpi/tables/DSDT DSDTはバイナリなので、Intelお手製のiaslツールで逆コンパイルすると読めるようになります。Processor()がCPUの定義です。… https://t.co/Q7ho4T5BpQ"
ゆたかさんさんのツイート: "PSTAメソッドでPCNTという定義が出てきますが、OperationRegion()で記述されています。つまり、0xF7FD9000をメモリダンプするとPCNTの値が入っているということです。ByteAccはバイト単位ではなくビット単位なので、PCNTは24バイト(6*32ビット)目。… https://t.co/DdSXX7H5wn"
Yasunori Gotoさんのツイート: "私の場合、acpica-toolsのacpidumpをつかって、いったんバイナリを全部ファイルに吸い取ってからiaslでdisassembleしてました。まあ、acpica-tools自体がsys配下の情報を読み取っているのでしょうけど、ユーザが直接sysを読みに行くよりはacpica-toolsを使った方が好ましいかもしれません。… https://t.co/1wup6CDG04"
Yasunori Gotoさんのツイート: "もう一個。大分昔の記憶なので正直うろ覚えですが、CPUの数はDSDTの数ではなく、MADTからLAPICの数で確認してなかったかしら?… "
C++でOS自作 技術書典5 お05さんのツイート: "The ideal and reality of NVDIMM RAS by @YasunoriGoto1 #linux #nonvolatilememory https://t.co/kZ1HqWU5xl @SlideShareより ACPIに_DSMてのがあるのか。どうやって呼び出すんだろう?"
The ideal and reality of NVDIMM RAS
Yasunori Gotoさんのツイート: "ACPIにはDSDTとかSSDTって呼ばれるツリー構造のデータが定義してあって、それがハード構成を示してます。 デバイス固有の機能があればDvice Specic Methodすなわち_DSMがそのツリーの中のデバイスの配下に定義されてて、それを呼び出すというのが流れですね。… https://t.co/QgohjFp311"
C++でOS自作 技術書典5 お05さんのツイート: "そうなんですね。ACPIテーブルはXSDTからHPETのレジスタ定義を読むというのはやったことがあるレベルなんですけど、DSMを呼び出すというのが、具体的にどうやるのかっていうのが興味あります!… "
Nerry@さんのツイート: "windowsの一番気にくわない挙動 なぜか時々勝手にスリープ解除する→誰も解除しないロック画面を愚直に表示し続けるのコンボ"
Nerry@さんのツイート: "A社のOSではなんかの間違いでスリープから起きても誰もロック解除しないなって気付いたらスリープし直します。"
yuYabu☕️さんのツイート: "え、窓は寝直さないんですか… "
Nerry@さんのツイート: "どうも実機にはgeneral purpose eventがめっちゃあるみたいで全部無効にしたら問題なく動いた・・・"
Nerry@さんのツイート: "これ結局AML見ないと何が起きてるかわからない案件なのかな"
Nerry さんのツイート: "昨日のまとめ SCI有効にして電源ボタン入力を取るだけなら簡単 実機では大量の謎のGeneral Purpose Eventが規定で有効になってるがAML読まないと何が起きてるかたぶんわからない SCIはレベルトリガーなので割り込み要員を解消するまで永遠に割り込みが発生する"
Nerry さんのツイート: "大量の謎のGPEで何が起きてるかわからない以上、AML読めるようになるまではいたずらにACPI ENABLEしない方がいいのでは?"
Nerry さんのツイート: "こういうのはブログにまとめた方がいいんだろうか🤔"
Nerry さんのツイート: "そもそも別のブログ記事書いてる途中に思いついてSCIで遊んでたっていう事案"
Nerry さんのツイート: "SCI_INTが0の機種ってどうすればいんだ・・・"
Nerry さんのツイート: "GPD今までずっとHW reduced ACPIだと思ってたら違った。"
Nerry さんのツイート: "なにか適当に作った時、panasonicは大体うまく動く。"
Nerry さんのツイート: "GPDのFADT尊重するとこいつはHW reduced ACPIじゃないということになるんだがHW reduced ACPIにしかないはずのSleep Control Registerが存在してて謎すぎる"
Nerry さんのツイート: "PM1a_CNT_BLKが0404になっててSleep Control Registerが0405になってる。 Sleep Control Registerは実質PM1 Control Registerの上位8ビットなので実態は同じものを指している。"
Nerry さんのツイート: "電源ボタンのSCIが長押ししないと取れない上に有効にしてないはずのTMR_STSビットが立つ機種がある🤔"
Nerry さんのツイート: "一部の機種で電源ボタンを押すと電源切れるようになった💤"
Nerry さんのツイート: "電源ボタンのSCIがおかしい機種はやっぱAML見ないとダメなんだろうか・・・"
Nerry さんはTwitterを使っています: 「起動時に留まる機種があって色々調べたらACPI PM タイマーが、ない:;(∩´﹏`∩);:」 / Twitter
市川 真一さんはTwitterを使っています: 「@uchan_nos ということは、これを解決するには Local APIC Timer の周波数を Intel SDM に書かれている方法で求めてから、初期化する必要があるってことなんですね、きっと」 / Twitter
ryoさんはTwitterを使っています 「pwm regulator書いてるけどバグったら変な電圧かかってボードぶっ壊しそうで恐い。今時はソフトでハードを結構簡単に壊せるんや。PC互換機のBIOSでCPUやメモリの電圧変えられるようになっりBIOSがflashになった頃からか。90年代半ば~後半くらいから?」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 9xとかの頃の初期のACPIなんて、各ベンダーが手探り実装だったから、変なBIOS実装多かったよなぁ。ここのACPIの実装が間違っているからスリープに落ちないとか、そんなの同僚が調べてた」 / Twitter

@akachochin

OS作れないマンさんのツイート: "自作OSもくもく会始まりました。最初は @akachochin さんによる「ビギナーのためのACPI」です。ACPIについて触りを勉強するプレゼンだそう。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPI=Advanced Configuration and Power Interface。電源制御とデバイスの設定のための統一規格。 #osdev_moku2"
OS作れないマンさんのツイート: "「デバイスの設定」と言っても、電源管理のための設定という色が強く、ACPIは電源管理のものと思えば良い #osdev_moku2"
OS作れないマンさんのツイート: "ACPIはレジスタインターフェースとメモリ上のデータ構造により動作する。xHCIのインターフェースとかと似てる! #osdev_moku2"
OS作れないマンさんのツイート: "ACPI system description tableとACPI Namespaceがキモっぽい。ACPIテーブルにはいろんなデバイスの情報が羅列されている。すべてのACPIテーブルはシステムに1個存在するRoot System Description Pointerからたど… https://t.co/Xt6plcNZ8g"
OS作れないマンさんのツイート: "古いACPI規格だとRSDTの場合もあるが、今のバージョンはXSDTを使うようになっている。XSDTとは、他のテーブルのポインタを集めたテーブルで、ルートポインタから指されるデータ構造。 #osdev_moku2"
OS作れないマンさんのツイート: "主要なテーブルは3つある。FADT(XSDTの最初のエントリが指す)、DSDT(システムごとの差異を格納するテーブル。デバイス情報などが書いてある。)、FACS(ファームウェアとおしゃべりするための情報が書いてある。) #osdev_moku2"
OS作れないマンさんのツイート: "DSDTにはAMLフォーマットのバイナリデータが格納されている。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPIの規格書を読んで独自で実装するのは辛いので、Intelの実装であるACPICAを使うと楽できる。 #osdev_moku2"

@liva_jy

Livaさんのツイート: "ACPICA使ってる場合の電源offは、AcpiEnterSleepStatePrep(5)から割り込み禁止して、AcpiEnterSleepState(5)でpoweroffするのだけど、そういう話ではないのかな"
Livaさんのツイート: "UEFI環境下(qemu with OVMF)でACPICAの初期化で落ちる気がするんだけど、ACPICAの問題なのか、それとも移植の問題なのか・・・(8割型移植の問題 #liva_notebook"
Livaさんのツイート: "やっぱACPICA初期化時にgrubがロードしたフォントファイルを破壊してるなぁ。これはメモリアロケータ側の問題か? #liva_notebook"
Livaさんのツイート: "とりあえずフォントファイルを退避させる事で、AcpiInitializeSubsystem()は通るけど、AcpiInitializeTables()は途中で落ちる #liva_notebook"
Livaさんのツイート: "フォントファイルコピーしたら破壊されなくなったとか呟いたけど、そもそもロード時にコピーしてるはずなんだよな。やっぱメモリアロケータがぶっ壊れてるのか #liva_notebook"
Livaさんのツイート: "なぜ僕はこれまでメモリ破壊系のバグ調査にqemuの-sオプションを使ってこなかったんだ #liva_notebook"
Livaさんのツイート: "ブレークポイント仕掛けたらRemote 'g' packet reply is too longとか言われた後にぶっ壊れる #liva_notebook"
Livaさんのツイート: "あー、UEFI環境ではRSDPはUEFIから与えられるのか、自分で探す(AcpiFindRootPointer())のでは見つからないのね #liva_notebook"
Livaさんのツイート: "参考:ACPI Spec 5.2.5.2 Finding the RSDP on UEFI Enabled Systems #liva_notebook"
Livaさんのツイート: "grub(というかmultiboot)でACPI RSDPを定義してるのはそういう意味だったのね、RSDPの探索を省略するためかと思った #liva_notebook"
Livaさんのツイート: "BIOS環境下でもmultibootがRSDPを返してくれるかどうかは要検証だなー #liva_notebook"
Livaさんのツイート: "とりあえずmultibootからもらったRSDPを渡したらACPICAの初期化は通った #liva_notebook"
Livaさんのツイート: "最近調べてた事。q35とhpetはOVMFのサポート対象外っぽいふいんき https://t.co/xBzr20fhZW #liva_notebook"
Livaさんのツイート: "biosベースでmultiboot kernelを起動すると、grubでgfxpayload=keepにしてもフレームバッファにならないの、multibootヘッダの設定が必須だったっぽい https://t.co/VUe2rLqzRP #liva_notebook"
boot - How do I force GRUB to keep video mode after switching to the OS? - Super User
Livaさんのツイート: "multiboot2 header tagは8バイトアラインというのを読み落として嵌った。ちゃんとgrubのソースを読めばもう少し早く見つけられたような #liva_notebook"
Livaさんのツイート: "新マシンで動作検証した結果、見つけた新しいバグ。PCIの初期化をACPICAの初期化後にやろうとすると、ACPICAがPCIを叩いて死ぬっていう。 #liva_notebook"
Livaさんのツイート: "でも、デバイスの初期化のためにはACPICAの関数叩いたりするからなぁ。上手く解決しないといけない。PCIバスだけ先に初期化するのもなぁ #liva_notebook"
Livaさんのツイート: "おかしいな。qemuをアップデートしてもさっきまではACPIのHPETエントリが出てこなかったのに、なぜか突然出てきた #liva_notebook"

The ACPI Component Architecture Project
FadisさんはTwitterを使っています 「Linux 5.4から追加されたkernel lockdownは有効にするとrootであってもユーザ空間からカーネルの振る舞いを変えるような操作が拒否されるようになる。kernel lockdownが有効な場合攻撃者がroot権限を手に入れた状況でも、カーネルが提供するセキュリティの為の仕組みが正常に機能する事が期待できる」 / Twitter
FadisさんはTwitterを使っています 「ところがこのlockdownをユーザ空間から無効化する方法が見つかった。ConfigFSはACPI tableを書き換える機能を提供しているが、ACPIのMethodは任意のメモリに書ける為、kernel lockdownを無効にできる。現在はlockdown中はACPI tableを変更できなくする修正が入っている https://t.co/PzwQx4R2eq」 / Twitter
Another Attack Vector Uncovered For Bypassing Linux Lockdown Via ACPI Tables - Phoronix
FadisさんはTwitterを使っています 「修正がわかりやすすぎてウケる https://t.co/rY04RW16et」 / Twitter
[PATCH] acpi: disallow loading configfs acpi tables when locked down - Jason A. Donenfeld
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「こんにち「グリーンな」環境を使うことはますます重要になっているが、ソフトウェアの消費電力を測定するのは簡単ではない。ここではプロセッサ・OS・用途に応じた電力測定ツール (PowerGadget, PowerLog, PowerStat, PowerTOP, Perf, Nvidia-smi) の選び方を紹介する。 https://t.co/bnud3ZdTpD」 / Twitter
Luís Cruz – Tools to Measure Software Energy Consumption from your Computer
tanakmura🎯さんはTwitterを使っています 「ACPIは、コアごとの性能を示すテーブルを持ってるが、マザーボードによっては、オーバークロックするとこれが全てMAXになって、P coreもE coreも公平にスケジュールされてしまうらしい。 手元のマシンは…オーバークロックしてないのに全部MAXになってますね…おいGIGABYTEどうなってんのや?」 / Twitter

PCIe

LPC

Low Pin Count - Wikipedia
Low Pin Count - Wikipedia
Wayback Machine

Active State Power Management

Active State Power Management - Wikipedia
3.7. Active-State Power Management
AR# 36325: PCI Express のデザイン アシスタント - ASPM をオフにする方法
MXI Express を使用する際に Windows がフリーズします - National Instruments
最新Red Hat Enterprise Linux 6.0の全貌 - アイドル時の消費電力を20%削減:ITpro
【短期集中連載】大原雄介の最新インターフェイス動向

PC Watch

【イベントレポート】【PCI-SIG Developers Conference 2010レポート】 PCIe Specificationの詳細 - PC Watch
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
ストレージクラスメモリにも対応した次世代インターコネクトの業界標準化団体が発足 ~AMD、ARM、Dell EMC、HPE、IBM、Micron、Samsungなどが参加 - PC Watch

OSDev

PCI - OSDev Wiki
OSDev.org • View topic - ACPICA does not return PCI devices
OSDev.org • View topic - PCI enumeration - do you cache the device list?

スライド

Interrupt Affinityについて
Interrupts on xv6

割り込み

RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから - 酒日記 はてな支店
デュアルソケット・ザ・ワールド Dual Socket な PC の割り込みに付いて
Linux / x86_64の割り込み処理 第2回 | VA Linux Systems Japan株式会社
Linux / x86_64の割り込み処理 第4回| VA Linux Systems Japan株式会社
Interrupts
日記 (2015 年 2 月上旬)

シャットダウン

FadisさんはTwitterを使っています 「GoogleがLinuxのデバイスドライバがPCIeデバイスの片付けを非同期でできるようにする変更を提案している。デバイスドライバはシャットダウン直前に行う片付けのコールバックをセットすることができるが、従来APIの制約から同一バス上のデバイスの停止は順番に行われていた https://t.co/I5xWx2AoTJ」 / Twitter
Google Has A Problem With Linux Server Reboots Too Slow Due To Too Many NVMe Drives - Phoronix
FadisさんはTwitterを使っています 「NVMeストレージはI/O要求が残っていない状態でもコントローラが処理をしている可能性がある為、コントローラにシャットダウンを通知して、それに対する応答が返ってきてからホストを落とすのが行儀の良いシャットダウン手順とされている。この待ち時間はGoogleが実験した環境で4〜5秒程度らしい」 / Twitter
FadisさんはTwitterを使っています 「NVMeストレージをPCI-Expressに大量に繋いでいるホストでは、これらのデバイスのシャットダウンを順番に行っていく為、rebootを開始してから実際にrebootするまでの時間が線形に伸びていく。結果としてrebootに1分以上かかるホストが誕生したらしい。」 / Twitter
FadisさんはTwitterを使っています 「提案では従来のシャットダウン時のコールバックshutdownとは別にshutdown_preとshutdown_postを生やす。shutdown_preでデバイスにシャットダウンを通知してshutdown_postで完了を確認する事で複数のデバイスのシャットダウンを同時に進められる。shutdownだけを使うドライバは従来通りの動きをする」 / Twitter

@syuu1228

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 付属資料 最近のPCアーキテクチャにおける割り込みルーティングの仕組み
howto_implement_hypervisor/part4.md at master · syuu1228/howto_implement_hypervisor
part4_5.pdf
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第4回 I/O仮想化「割り込み編・その1」

Twitter

PCI

Livaさんのツイート: "今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook"
Livaさんのツイート: "今回はE1000ドライバがdeassertしてないような気がしている #liva_notebook"
Livaさんのツイート: "PCI割り込みの件は、FreeBSD互換レイヤでのithreadの実装ミス(ハンドラ内でEOIを発行しない)なのだけど、これどうやって修正すればよいんだ。。。 #liva_notebook"
Livaさんのツイート: "なるほど、これか https://t.co/5Dtdf36c6w #liva_notebook"
Livaさんのツイート: "pre_ithread等はintr_event_create()で登録されてて、x86だとここ https://t.co/NvTisY7eWs #liva_notebook"
Livaさんのツイート: "このコードから分かるのは、filter処理後にAPICにEOIを投げる。そしてithread処理前にAPICの該当エントリをdisableし、処理終了後に最有効化する。なるほど、たしかにこれなら上手く動くわ。 #liva_notebook"
Livaさんのツイート: "IDT登録周りの関数の設計変更が必要になったけど、とりあえずFreeBSD互換ドライバでもAPICへのacknowledgeができるようになり、interrupt stormはなくなった。めでたしめでたし #liva_notebook"

PDA

Fadisさんのツイート: ". @omasanori さんの「Portable Driver Architecture (PDA) でユーザ空間PCIデバイスドライバ」が始まります #kernelvm"
Fadisさんのツイート: "「ring0でデバイスドライバをやっても新規性がない」 #kernelvm"
Fadisさんのツイート: "ユーザ空間でドライバを動かすことには カーネルを小さく保つ、ドライバが死んだ時の影響を限定できる、ユーザ空間の方がAPI安定性が高くドライバの再利用性が高まる、etc etc #kernelvm"
Fadisさんのツイート: "ユーザ空間PCIデバイスドライバを作るためにカーネルがユーザ空間に提供しなければならないもの: 割り込みハンドリング、デバイスが増えた減ったの管理、デバイスに対する入出力を行う仕組み #kernelvm"
Fadisさんのツイート: "Portable Driver Architecture: 高速なPCIデバイス(Infinibandなど)のドライバをユーザ空間で書く為のC言語で書かれたAPIを提供する #kernelvm"
Fadisさんのツイート: "ペイロードが小さいとどうしてもユーザ空間とカーネル空間を行き来するオーバーヘッドによって性能が落ちるが、ペイロードが大きい場合カーネルドライバと比較して遜色ない性能が出る、と #kernelvm"
Fadisさんのツイート: "「カーネル/VMの中でもネットワーク系の方にはこのDPDKというのは衆知の物のようなのですが」 #kernelvm"
Fadisさんのツイート: "DPDKはネットワーク専用に実装されているためネットワーク処理のある程度のレベルまでをDPDKでやってくれるが、ネットワーク処理以外に応用ができない。PDAはそうした処理が用意されていないが汎用的に使うことができる #kernelvm"
Fadisさんのツイート: "PDAではもともとLinuxカーネルにあるuio_pci_genericとは別にuio_pci_dmaを実装している。uio_pci_dmaはgenericと比べて明らかにソースコードが大きい → メモリ管理のため #kernelvm"
Fadisさんのツイート: "PCIデバイスとのデータ転送にDMAを使いたい → ユーザ空間で確保したメモリはスワップアウトするし不連続なメモリが割り当てられる可能性もありデバイスからのDMAで上手く書けない。NUMA環境ではDMAするメモリとPICデバイスがソケットを跨いで別のプロセッサの配下に置かれてしま… https://t.co/xTjdlmYQFo"
Fadisさんのツイート: "uio_pci_dmaではカーネル側でDMAするのに都合が良いメモリの確保を行う #kernelvm"
凍ってない方のアカウントさんのツイート: "”uio_pci_generic only supports legacy interrupts so it is not usable with SR-IOV and virtual hosts which require MSI/MSI-X interrupts.”… https://t.co/1Uyk3w9r5g"
Fadisさんのツイート: "Wrap-mapping: 同じバッファを2連続でアドレス空間にマップする → バッファをリングバッファとして使う場合に境界チェックを減らせる #kernelvm"
凍ってない方のアカウントさんのツイート: "あ、はい、uio_pci_dmaもIOMMUやろうとしてるっぽいね、なんか被ってるね https://t.co/9A5CqhKdCH #kernelvm"
Fadisさんのツイート: "pdaのオリジナルは https://t.co/6kJ3QmpuBr だけど、最近のカーネルで動かなくて、CERNが公開しているfork https://t.co/CsfCEaujkQ が最新のカーネルで動く #kernelvm"

IOMMU

とみながたけひろさんはTwitterを使っています 「xboxについてのMSの発表みると、そんなことは百年前から対策済みだというのがわかる(IOMMU使う) https://t.co/ISiHcMYkFz」 / Twitter
本の虫: 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない
とみながたけひろさんはTwitterを使っています 「「普通のPC/サーバのユーザは善意だと考えてセキュリティを設計するが、俺たちは技術的に改造が無理なカスタムのメインSoC以外は全部改造されると思って作る」というのを話しているのだけど、これは国なりなんなりにスマフォ奪取されて解析される、みたいなケースの対策も同じ感じなのだろうなと思った」 / Twitter
とみながたけひろさんはTwitterを使っています 「ちゃんと確認したわけじゃないけど、聞く話では高級スマフォではFLASHメモリがNVMe接続だそうで、だとするとPCIeがSoCから出ていることになる。物理攻撃するならこのへんなんだろうな。あと最近のWiFi6とかも爆速だから、昔みたいにSDIOとかでは辛そうだし、ここも頑張ればいぢわるできそう」 / Twitter
FadisさんはTwitterを使っています 「XBOXもXBOX360もハードウェアに対するインジェクションでハックされてきた事を思うと重みがある」 / Twitter

5/1 自作OSもくもく会さんのツイート: "インテルのチップセットのデータシートに書いてあった。TOLUD (Top of Low Usable DRAM)というレジスタに設定されたアドレスから4GBまでがPCIバスへのアクセスとなるらしい。BIOSが物理メモリ量を調べて適切にセットしてくれるとのこと。"
5/1 自作OSもくもく会さんのツイート: "PCIホストブリッジだけはコンフィグレーションレジスタを実装しなくていいことになってるんだけど、その場合Vendor IDとかはどう見えるの?"
Livaさんのツイート: "PCIのlegacyな割り込みを実装するにはACPICAまで実装する必要があった"
Kentaro Ebisawaさんのツイート: "PCI Express はデバイス使う分には楽なのだが、Root Complex とか各種 Capability を深堀しようとすると突然情報が少なくて困る。プロはチップベンダーから情報もらうんだろうけど、自分みたいな素人は公開ドキュメントだよりだからツライ。"
ゆたかさん🐬さんのツイート: "CPUのコア数は多くあっても、実は遊んでいるコアがあり、すべてのコアを使いきるのは難しいです。 OSが古かったり、PCIeカードが割り込み負荷分散に未対応だったりすると、先頭のコアばかり使われることになり、宝の持ち腐れ。"
ごごてぃさんのツイート: "あれ?WS2016からPCI-Eパススルーできるようなブログの記事があったけど、マジであるのか・・・ https://t.co/WbMGbKsVAL"
Passing through devices to Hyper-V VMs by using discrete device assignment – Hey, Scripting Guy! Blog
Fadisさんのツイート: "linux-4.20でデバイスドライバ同士がP2P DMAを利用する為のインターフェースが追加される見通しらしい。P2P DMAはPCI-Expressのデバイス間でホストのメモリを介さずに直接データを受け渡す仕組みで、GPUや100GbE、NVMe等の滝のようにデータを流すデバイスでの活用が期待される https://t.co/5iB1LYBVbE"
PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0 - Phoronix
Fadisさんのツイート: "ネットワークから受け取ったデータを加工してデータベースに書くまでの間にCPUは全くデータを見ていない未来が少しづつ近づいている("
ryoさんはTwitterを使っています: 「queueの数とMSI-X vectorの数とCPUの数とlinkstatusをinterruptで見る/見ないの組み合わせをマジメに考え出すとめっちゃめんどくさいな。RX/TXを独立にするしないも考えだすとさらに倍率ドン」 / Twitter

The Linux Kernel PCI
https://www.kernel.org/doc/Documentation/acpi/enumeration.txt
The PCI ID Repository
PCI Vendor and Device Lists
Re: Missing ACPI PCI devices in acpi_pcidev_scan
Does PCIe hotplug actually work in practice? - Electrical Engineering Stack Exchange
PCI Express – Raphine Project<サイト製作中>
PCのメモリをいじったらPCIE Bus errorになってrebootできなくなった時 - yamaguchi.txt
PCI Confguration space access methods
PCI Memo · osdev-jp/osdev-jp.github.io Wiki
PCI Express DIY hacking toolkit | Firmware Security
まつうさんさんはTwitterを使っています 「PCI ExpressからDMAを使ってメモリ上のデータをぶっこ抜き。悪用しか思いつかないけど悪用したらあかんぞ! / “GitHub - ufrisk/pcileech: Direct Memory Access (DMA) Attack Software” https://t.co/nTj59Ev6tb」 / Twitter
ufrisk/pcileech: Direct Memory Access (DMA) Attack Software
日記 (2018 年 11 月中旬)
日記 (2018 年 11 月下旬)
PCIE スニファ windows - Google 検索
Specifications | PCI-SIG
Intel PCH I/Oポートフレキシビリティ機能について - DXR165の備忘録
Ricerca Security: "I'll ask your body": SMBGhost pre-auth RCE abusing Direct Memory Access structs
DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo
日記 (2020 年 6 月)

APIC

APIC Timer

Twitter

Nerry さんのツイート: "moeでHPETやめてLAPICタイマーにしようとしたら結局スケジューラーでHPETの機能が必要になって困った😩"
デダルス・ユメノさんのツイート: "HPETが必要な理由が気になります… "
Nerry さんのツイート: "moeもプリエンプションそのものは他のOSと同様に数msのタイマー割り込みを契機としているが、スレッドごとのCPU使用率はもっと精度の高い(MHz単位の)タイマーで計測しているため"
Nerry さんのツイート: "CPU使用率計算するのにタイマー割り込みだと遅すぎるんです… "
Nerry さんのツイート: "そもそもそこまで高精度にCPU使用率計算する必要あるのか?🤔"
Nerry さんのツイート: "LAPICタイマー全てのコアで実行したろ→カウンターがコア数分増えて時計めちゃくちゃ"
Nerry さんのツイート: "IDTもコアごとに分離する必要がある・・・?🤔"
デダルス・ユメノさんのツイート: "LAPICタイマーはポーリングでも時間計れますよね… "
Nerry さんのツイート: "その発想はなかった… "

APIC timer - OSDev Wiki
Advanced Programmable Interrupt Controller - Wikipedia
Page 378
ハードウェアタイマー ‐ 通信用語の基礎知識
hiboma/clocksource.md at master · hiboma/hiboma
Local APIC timer interrupt - Linux Process Manager
Local APICのタイマ割り込み周波数を表示するメッセージ - ZDNet Japan
Linux source code: arch/x86/kernel/apic/apic.c (v3.4) - Bootlin

OSDev.org

OSDev.org • View topic - Set IMCR to 0x1 to mask external interrupts?
OSDev.org • View topic - Question about virtual wire mode
Symmetric Multiprocessing - OSDev Wiki
APIC - OSDev Wiki
IOAPIC - OSDev Wiki

interruptの意味 - 英和辞典 Weblio辞書
Eiiti Wadaさんのツイート: "@iorivur 割り込みっていう日本語は... 1959年の夏, パラメトロン計算機の出力装置が直前の文字の処理を終えたことを走行中の計算機に知らせる方法はないかとの議論で割り込みのアイディアを得ました. そして最初の並列処理のプログラムを書きました. 難かしかったなぁ."
パラメトロン計算機: 世界一周プログラム
livaの雑記帳(2016/10) – Raphine Project<サイト製作中>
Kimihiro Nonakaさんのツイート: "AMDのCPUはx2APICじゃなくてLAPICにAMD独自拡張のレジスタを追加してあるのか…(´・ω・`)"
Kimihiro Nonakaさんのツイート: "Ryzenもx2APICじゃないのか。Naplesのことを考えるとこっちも一緒に対応させたほうが良いかなぁ "ExtAPIC" | https://t.co/PNXuGP3XBv https://t.co/PNXuGP3XBv"
I/O APICのEOIが動かない - livaの雑記帳
Kimihiro Nonakaさんのツイート: "つーか、MSR_APICBASEのPHYSADDRってなんで32bitなの?(´・ω・`) これ書いたときは32bitだったの?"
Kimihiro Nonakaさんのツイート: "AMDプラットフォームでioapic(4)が二つ見えるのってnorth bridgeとsouth bridgeにそれぞれあるからなんかなぁ…。north bridge側にあるのはAPIC IDが8bitに拡張されているっぽいけどsouth bridgeのはそうなっていない?"
Livaさんのツイート: "LAPICのレジスタ読んでAPIC ID取得するのと、RDTSCP使うのとで何倍くらいの差が出るのか、調べてみたくなった"
x2APICとinterrupt remapping - 睡分不足

HPET

HPET - OSDev Wiki
High Precision Event Timer - Wikipedia
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
本の虫: VistaでHPETが使われていることの確認
NOKUBI Takatsugu野首貴嗣さんのツイート: "タイマー ACPI tableからHPETアドレスを取得、論理=>物理アドレスに変換 #kernelvm"
Fadisさんのツイート: "HPETはLinuxだとデバイスファイルをmmapして読んでるけどACPIから直接読む #kernelvm"
HPET – Raphine Project<サイト製作中>
​RyzenMaster and HPET can make your Ryzen computer run slower - PC World Australia
社会人でもOSを作りたいさんのツイート: "Celeron Nシリーズ(2015年頃のCPU)のデータシートによれば,HPETはIntel Legacy Blockに含まれている.HPETでさえレガシーデバイス扱いなのか…"
社会人でもOSを作りたいさんのツイート: "仕方ないのでLAPIC Timerで時間計測するようにした"
The Linux Kernel Disabling HPET For Intel Coffee Lake - Phoronix

Video

libdisplay-info

FadisさんはTwitterを使っています 「https://t.co/F8psUD88iQでEDIDパーサライブラリlibdisplay-infoの開発が始まった話。ディスプレイはホストに対して対応解像度等の情報を含むディスプレイの情報EDIDを送っている。送られてきたEDIDはLinuxのユーザ空間から読めるが、これまでパースは自力で行う必要があった https://t.co/C7RPO6l78J」 / Twitter
libdisplay-info Started To Address The Wayland Fragmentation Around EDID/DisplayID - Phoronix
FadisさんはTwitterを使っています 「EDIDはより高い解像度に対応したり、リフレッシュレートの種類が増えたり、新しい色空間をサポートしたり、HDRに対応したり、製品名を取れるようになったり等様々な理由で繰り返し拡張されてきた為、近代的なディスプレイが返すDisplayID拡張付の長い長いEDIDを正しくパースするのは意外とめんどくさい」 / Twitter
FadisさんはTwitterを使っています 「WaylandコンポジタはEDIDを調べて最適なディスプレイの設定を選ぶ必要があるが、従来EDIDのパースはコンポジタ毎にバラバラに実装されていた。EDIDが複雑になるに従いこのパーサの実装がシャレにならなくなってきたのでコンポジタ非依存の共通のパーサライブラリを作ろう、というのがlibdisplay-info」 / Twitter
FadisさんはTwitterを使っています 「このライブラリの開発は始まったばかりで、現時点でgitリポジトリに置かれているのはLICENSEとREADMEだけ https://t.co/16FphPojab」 / Twitter
Simon Ser / libdisplay-info · GitLab

https://www.kernel.org/doc/Documentation/acpi/video_extension.txt
JF: Linux Kernel 2.6 Documentation: video_extension.txt
Extended Display Identification Data - Wikipedia, the free encyclopedia
VESA DDC(EDID)ってなんだ? ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
VGA (VESA DDC) - HwB
用語解説
Intel Processor Graphics 調査メモ - DXR165の備忘録
acrn-hypervisor/hld-APL_GVT-g.rst at master · projectacrn/acrn-hypervisor
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel graphics
マルチディスプレイのまとめスタイル修正: Intel IGP
メモリ セグメントへの仮想アドレスのマッピング - Windows drivers | Microsoft Docs
メモリーエラー | PhoenixKnight
とみながたけひろさんはTwitterを使っています 「VGAにあるI2Cという話題で思い出したけど、EDIDのチェックサム、ひどくない? I2Cがどっちかに張り付いて、全部0xFFとか0x00になっても、チェックサムは255byteごとに1byteなので、どっちもエラー検出できないっていう。まあ0張り付きはあきらめるにしても、1は検出できるようにしてほしかった…」 / Twitter
HDMI探検隊
FadisさんはTwitterを使っています 「DDC/CI: 音量や輝度の操作 EDID: ディスプレイが表示できる解像度などの情報をとる SCDC: ディスプレイの設定を読み取るなどなどいろんな通信がHDMI上で行われている #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「CECには割と自由にパケットを投げられるが投げまくると普通に溢れて他の機器からのパケットが落ちるw #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「HDMI CECには認証がないためHDMIに繋がりさえすれば悪さができ、例えばリモコンからパスワード入力をしていたら読み取るとかハードウェアに負荷を変えるとか、輝度を高頻度で変える人間に対する攻撃が考えられる、と #kernelvm」 / Twitter
急性胃腸炎さんはTwitterを使っています 「本体では0から100までしかできない輝度設定にDDC/CIで255を書き込んでディスプレイを壊そうとするPoC 実際に壊れた(輝度が調節できなくなった) #BadHDMI ddcutil setvcp 0x10 0xff https://t.co/eKBJ4RQPMv」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「実は先月久しぶりに Modeline を直接指定したのだった… 1920x1200のディスプレイを繋いでいるのに、ディスプレイとPCの間にあるHDMI切替器がEDIDでその解像度を返してくれなくて、xrandr --newmode で無理矢理1920x1200のモードラインを突っ込んでみたら動いたという…(無理やりすぎ」 / Twitter
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Xを立ち上げるために、モニターの水平、垂直同期の周波数、ビデオ信号帯域幅、カードのドットクロックを調べ、フレームサイズを計算.... って何でこんな苦行をしていたのだろうなとふと思ってしまった。」 / Twitter

Intel Sensor Hub

Linux 4.9、これまでで最も大きなリリースに | マイナビニュース
2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに:Linux Daily Topics|gihyo.jp … 技術評論社
技術者見習いの独り言: VAIO Z(フリップモデル)に Arch Linux をいれる
Presentation Title
【後藤弘茂のWeekly海外ニュース】センサーハブによって変わるモバイルとそれを統合するウェアラブル - PC Watch
https://www.kernel.org/doc/Documentation/hid/intel-ish-hid.txt
4Gamer.net ― インテル,ソフトウェア開発者向に大規模イベントを開催。次世代Ultrabookは各種センサーを備え,Windows 8での利用が前提に
DCMI-HI DCMI Host Interface Specification

Intel Smart Sound Technology

Sound Open Firmware

The Linux FoundationがSound Open Firmwareプロジェクトを歓迎 - The Linux Foundation
Sound Open Firmware
thesofproject/sof: Sound Open Firmware
SOF Project documentation — SOF Project 0.1 documentation
Intel Architecture — SOF Project 0.1 documentation
Supported Platforms — SOF Project 0.1 documentation
Firmware - AlsaProject
Home - Sound Open Firmware
2019年7月10日 Linux 5.2がリリース ―Sound Open Firmware,PSI機能の改善など:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「FedoraがSound Open Firmware(SOF)をデフォルトにするらしい。Intelは近年のSoCなCPUにSmart Sound Technologyと呼ばれるオーディオDSPを積んでいるが、従来このDSPで実行するファームウェアはclosedだった。SOFはこれを置き換える新しいオープンソースなファームウェア https://t.co/lFtMHeGQOx」 / Twitter
Fedora Preparing To Switch To Intel's Modern "Sound Open Firmware" Audio Driver - Phoronix
FadisさんはTwitterを使っています 「SOFの開発は主にIntelとGoogleによって勧められているが、Intel Smart Sound Technologyの実態はCadence Design Systems社のXtensaと呼ばれるDSPで、同様のDSPはNXPの一部のARM SoCでも採用されており、SOFはそれらのSoCもサポートしている」 / Twitter
AMD が Sound Open Firmware プロジェクトに参加か | Coelacanth's Dream

インテル® スマート・サウンド・テクノロジー
【イベントレポート】Intel、3D XPointベースのSSDやCurieの実シリコンをデモ ~IoTやウェアラブルに対する本気度を見せたクルザニッチ氏の基調講演詳報 - PC Watch
Intel Smart Sound Technology Audio DSP Non-HD Audio ACPI High Level Design - PDF
Intel,「Broadwell-U」ことノートPC向け第5世代Coreプロセッサ14製品を発表 - 4Gamer.net
ノートPC向けなのにOCできるK付きもXeonも!第6世代Core(Skylake)が46種類増加 - 週刊アスキー

MIPI SoundWire

北森瓦版 - Intelチップセットのロードマップ―Z390は2018年下半期予定
MIPI SoundWire
ケイデンスが、業界初のMIPI SoundWire Controller IPソリューションを提供
ケイデンス、業界初のMIPI SoundWire v1.1高品質オーディオソリューション向け設計IP、検証IPを提供
Intel roadmap shows when to expect Coffee Lake-S (300 Series) - CPU - News - HEXUS.net
MIPI SoundWire v1.1のIPコアと検証IP、Cadenceが提供 | 日経 xTECH(クロステック)
【特集】今年後半の薄型ノートやタブレットは音質が大きく向上(するかもしれない) - PC Watch

ヒンジセンサー

FadisさんはTwitterを使っています 「IntelがLinuxカーネルにヒンジセンサーのドライバを追加している話。Intel曰く、ヒンジセンサーは「ラップトップで広く用いられている」センサーで、画面とキーボードのなす角、画面と水平面のなす角、キーボードと水平面のなす角を取得する事ができるらしい https://t.co/Qxtpgzq58X」 / Twitter
Intel Has A New Driver For Linux 5.12: Reporting Your Laptop's Hinge/Keyboard Angle - Phoronix
FadisさんはTwitterを使っています 「ヒンジセンサーはこの手の雑多なセンサーが押し込まれているLinuxのIndustrial I/Oデバイスの一種として扱われ、sysfsから簡単に3つの値を取得する事ができる」 / Twitter

タッチパッド

Synaptics タッチパッド - ArchWiki
libinput - ArchWiki
Linuxでタッチパッドのスクロール機能を使うには - @IT
タッチパッド - Wikipedia
Touchpad - Wikipedia
Synaptics TouchPad Interfacing Guide
2.1. ALPS Touchpad Protocol — The Linux Kernel documentation
paul_ps2emu.pdf
psm(4)
なかのん&マジックさんのツイート: "中クリックとAlt+Enterでタブに開くという共通動作を知らない人も何人か見かけた。"
なかのん&マジックさんのツイート: "@nyoro_712 macOSのtrackpadだとどうしようもないんですけど、大半のWindows PCについてるSynapticsのタッチパッドだと、3本指タップを中クリックに設定できるんですよね。ちなみに、後者の場合はブックマークの展開先は既に設定に存在しています(browser.tabs.l… https://t.co/40vmdQqRku"
なかのん&マジックさんのツイート: "@nyoro_712 無さそうなのと、特にバグとして報告もされていないので、需要が無いのかもですね。"
なかのん&マジックさんのツイート: "@nyoro_712 おそらく、historyはGUIで探すのが非効率的なので、URLバーからタイトルやURLで探してる人が多いんじゃないかという気がします。その場合、Alt+Enterで済みますから。"
なかのん&マジックさんのツイート: "@nyoro_712 一応、Firefox 3以降は、「URLバーでアクセスしたいページをbookmarkとhistoryの両方から検索すれば良い。そのために、180日分historyを残し、消したく無いものには☆を付けてもらってブックマークの未整理フォルダに突っ込んでおいて消えないようにしておこう」… https://t.co/h1kX1XHNwL"
なかのん&マジックさんのツイート: "@nyoro_712 Firefox 2開発時には新しい使い方を押しつけようとしたんですが、それは反発が大きかったので一旦取り下げられ、Firefox 3で、今までの使い方もできるけど、新しいURLバー中心の動作もできるようになりました。私もブックマークツールバーを多用しつつ、URLバーも使い、用途に… https://t.co/Wo5XYneFk9"

マウス

PS/2仕様
ardionoにPS/2マウスを接続する | ものづくりとプログラミング日記
Arduino Playground - Ps2mouse
moused(8) FreeBSDドキュメントJMan
PS/2 Mouse Interfacing
"8042" PS/2 Controller - OSDev Wiki

キーボード

キーボード コントローラ(KBC)
はりぼてOSをUEFIで起動する/4日目 - ねりりんと借り初めのものがたり
PORTABOOK - ねりりんと借り初めのものがたり
アラビア語キー配列 - Wikipedia
Keyboard layout - Wikipedia
IBM PC keyboard - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
キー配列 - Wikipedia
Altキー - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
The PS/2 Keyboard Interface
The PS/2 Mouse/Keyboard Protocol

リセット

ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
Nerry さんのツイート: "再起動と電源切断をUEFI RT ResetSystem API呼び出す方法から ACPI の提供するサービスに移行してる最中だけど、一部環境(qemu)でACPIリセット対応してない機種がある。 リセットレジスタはオプショナルのようだからこれでも正しい動作な気はするが・・・"
Nerry さんのツイート: "そもそもIOポートでリセットって一体何通りの方法があるんだ?🤔 ACPIのリセットポートはOADGに書いてるポートとかと全然違うんだが"
Nerry さんのツイート: "確か普通のPC/ATには比較的古い機種で使える遅いリセットと比較的新しい機種で使える速いリセットが何種類かあって、それの正しい呼び出し順番を昔どっかで見た気がする。 ACPIリセットレジスタはそれらとまた別のポート。"
Nerry さんのツイート: "ACPIリセットポートはCF9がよく使われてるようだがこのIOポートってPCIコンフィグレーションと被ってないか?"
市川 真一さんのツイート: "CF8 をダブルワード・アクセスする場合に PCI_ADDRESS レジスタに対する R/W になるので、CF9 にバイト・アクセスする場合には PCI コンフィグレーションとは関係なく使えると思います… "

TPM

TPM の推奨事項 (Windows 10) | Microsoft Docs
TPM 2.0 Library Specification | Trusted Computing Group
1
TCG Opal 2.0 - Technology - Apacer for Industrial - The most reliable storage and memory
TPM 1.2と2.0の機能の比較 | Dell 日本
TPM2.0は”なにもの”で、どこで(何で)対応するのか?: なんとなく綴ってみた
Trusted Platform Module - Wikipedia
今夏からWindows 10 PCはTPM 2.0搭載が必須に - PC Watch
松本 泰さんはTwitterを使っています 「MSのVirtual TPMが、FIPS140-2 取得 https://t.co/TDdMR96Xv7 これ、ゆりか先生の プラットフォームセキュリティin Windows ブートタイム保護 概要編 https://t.co/JqzQ7NgJPv 一緒に見ると、理解が深まると思うよ。」 / Twitter
140sp3690.pdf
プラットフォームセキュリティin Windows ブートタイム保護 概要編
suzakiさんはTwitterを使っています 「メモ。 TPM 1.2と2.0の機能の比較 https://t.co/U4BEehjS8N TPMで使う暗号アルゴリズムの一覧が便利。」 / Twitter
TPM 1.2と2.0の機能の比較 | Dell 日本

FIDO

WebAuthn(FIDO2)

パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
パスワード依存脱却へ一歩前進、次世代Web認証「WebAuthn」が勧告候補に | マイナビニュース
Web Authentication API で FIDO U2F(YubiKey) 認証 | blog.jxck.io
FirefoxがWeb Authentication APIを導入
マイクロソフト、WebAuthnをEdgeに実装。パスワード不要、生体認証やPINでWebサイトへログイン可能に。2018年秋のWindows 10アップデートで - Publickey
WebAuthn demo
Chrome 70から、WebAuthnでMacのTouchIDとAndroidの指紋認証がデフォルトで利用可能に。Webサイトへのログインもタッチで - Publickey
Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に - Publickey
IdM実験室: Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す
Eiji Kitamura / えーじさんのツイート: "Chrome 70 の新機能 - Windows でのデスクトップ PWA に対応、WebAuthn での指紋認証、名前付き Worker など https://t.co/9tp9JGBaSj"
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance FIDO2 Project - FIDO Alliance
指紋認証でヤフーへログイン可能に、FIDO2方式での認証に各サービスが対応 - INTERNET Watch
「FIDO」で“パスワードレス時代”到来か? ヤフーと三菱UFJに続きLINEも導入 - INTERNET Watch
Client to Authenticator Protocol (CTAP)
WebAuthnに対応したSafari Technology Preview 71、アップルがリリース - Publickey
[WIP]WebAuthnのためのnavigator.credentials.create仕様読解 - murak.me
WebAuthn @ DroidKaigi 2019 - Speaker Deck
パスワードを不要にするFIDO2プロトコルに、Android 7以降の全デバイスが適合。FIDOアライアンスが「AndroidがFIDO2認定取得」と発表 - Publickey
W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins - FIDO Alliance
パスワード不要のログイン方法「WebAuthn」がウェブ標準になる - GIGAZINE
W3C、パスワードを不要にする「Web Authentication」(WebAuthn)を勧告として発表。Chrome、Firefox、Androidなど主要ブラウザですでに実装済み - Publickey
dynamis (でゅなみす)さんのツイート: "Google AccountがいつまでもWeb Authnの標準仕様(Firefoxで実装済み)に対応しないから、非標準実装のWeb AuthnサポートもGoogleなど特定サイトだけを対象に入れようか議論してる。 なんともはや。。。何のための標準化なのかって気持ちになる。 https://t.co/tVIvU8Uw71"
Backward-Compatibility FIDO U2F support shipping soon in Firefox | Mozilla Security Blog
ASCII.jp:Windows 10+FIDO2デバイスでパスワード入力なしにMicrosoftアカウントにログイン (1/3)|Windows Info
第570回 セキュリティキーを使って,Ubuntuで多要素認証をしてみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WebAuthnことはじめ - Mercari Engineering Blog
パスワードレス認証WebAuthnの勘所と対応状況:新春特別企画|gihyo.jp … 技術評論社
W3CとFIDO AllianceはセキュアでパスワードなしログインのWeb標準であるWebAuthnを最終化した
Androidスマホが指紋認証でウェブサービスへのログインが可能に - GIGAZINE
webauthn_study_ritou.pdf - Speaker Deck

Windows Hello

IdM実験室: [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [3] パスワードとさよなら!? Windows HelloとMicrosoft Passportで実現する世界|セキュリティ|IT製品の事例・解説記事
パスワードは時代遅れです:Windows 10時代の新認証 「Windows Hello/Microsoft Passport」と「FIDO」を理解する (1/5) - ITmedia エンタープライズ
Windows Hello を Web で使うための Web Authentication API (FIDO 2.0) について調べた - しばやん雑記
FIDO in Windows10
Windows Hello とは
Windows Hello | Windows 10 | Microsoft
Windows Hello の概要とセットアップ
Windows Hello for Business (Windows 10) | Microsoft Docs
Windows Hello for Business および Azure AD 経由でのパスワードを使用しない ID の認証 | Microsoft Docs
Webでの生体認証をヤフーさまとともに - Windows Blog for JapanWindows Blog for Japan
Windows 10 で FIDO 認証技術をサポート | Windows Blog for Japan
Windows Helloが生体認証機能つき指輪「Token」に対応 - PC Watch
Web Authentication API 紹介 (Windows Hello を使った Edge 開発) – Tsmatz
MicrosoftアカウントにWindows Helloでログイン可能に ~EdgeがWebAuthn/FIDO2に対応 - PC Watch
Windows Hello for Business (Windows 10) | Microsoft Docs
Passwordless Web Authentication Support via Windows Hello | Mozilla Security Blog
Windows 10搭載の生体認証「Windows Hello」がFIDO2認定を取得 ~Webブラウザでもパスワード不要でログイン可能に - PC Watch

News

Googleアカウントの2段階認証で使用可能なUSBセキュリティキー「FIDO U2F Security Key」を使ってみました - GIGAZINE
Googleアカウントのセキュリティを最大限に高めるUSBキー「FIDO U2F SECURITY KEY」 - ケータイ Watch
GitHub、大容量ファイルストレージやFIDO U2F対応などの新サービス発表 | マイナビニュース
Bluetooth Smartデバイスで二段階認証、FIDOの仕様に - ケータイ Watch
MS、Windows 10にパスワード不要の認証技術「FIDO」を採用 - ITmedia エンタープライズ
News & Trend - ポストパスワードの有力候補、ユーザー認証の新仕様「FIDO」が始動:ITpro
半径300メートルのIT:Googleの二段階認証を3400円のUSBキーで試す - ITmedia エンタープライズ
News & Trend - 認証標準化団体が「FIDO 2.0」のWeb API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro
パスワード管理ツールを一元化するオープンソースプロジェクト「Open YOLO」、DashlaneとGoogleが提携 -INTERNET Watch
FIDO Alliance、新仕様「FIDO 1.1」とJapan WG設置を発表 -INTERNET Watch
【清水理史の「イニシャルB」】 入手をきっかけに2段階認証有効化大会を開催 YubicoのUSBセキュリティキー「YubiKey 4」 - INTERNET Watch

blog

FIDO U2Fをサポートする十数個のサービス | YubiKey BLOG
煩雑なパスワード管理から解放してくれる「FIDO」とは? - THE ZERO/ONE
アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog
FIDO認証の進化とさらなる応用展開 (第3回FIDOアライアンス東京セミナー講演) - Yahoo! JAPAN Tech Blog
次世代認証プロトコルFIDOの動向 - Yahoo! JAPAN Tech Blog

スライド

Tokbind-fido
Idcon gomi-052715-pub
slides_06.pdf

Qiita

yubikey - Googleの二段階認証にセキュリティキーを使う - Qiita

Twitter

Rockridgeさんのツイート: "Fx48:FIDO U2F v1.1 APIの初期実装が完了。security.webauth.u2fとsecurity.webauth.u2f_enable_softtokenの設定を有効化することで利用できる。参照:… https://t.co/EyDiiDX13q"
Rockridgeさんのツイート: "FIDO U2FをベースにW3Cで策定中のWeb Authentication APIについて、MozillaがFirefoxに実装する意向を表明した。 / “Intent to implement and ship: Web …” https://t.co/MIwCwKP6gT"
Rockridgeさんのツイート: "Fx57:FIDO U2F Security KeyとなるUSBヒューマンインターフェイスデバイス(HID)をサポート。2段階認証にUSBキーが使えるようになる。なお、ソフトウェアライブラリはRust言語製。参照:… https://t.co/ZJn007joFl"
Rockridgeさんのツイート: "Firefox 60において、Googleアカウントの2段階認証に既に利用しているU2Fデバイスについては、Web Authentication APIに対応していなくてもサポートする方針。ただし、数年間に限定した話のようだ。 https://t.co/umRmiLkSoA"
Rockridgeさんのツイート: "Fx59:FIDO U2Fデバイスによる認証が利用できるのは、HTTPS接続されたWebサイトのみ。 / “1247124 - Use [SecureContext] for FIDO U2F JS API” https://t.co/4Uhh9m66om"
nov matakeさんのツイート: "“For example, all YubiKey 4 devices would have the same attestation certificate; or all Samsung Galaxy S8’s would have the same attestation certificate.” えっ、デバイスごとにちがう鍵埋めてんじゃなかったのか... https://t.co/00sRMfVy7i"
FIDO Alliance FIDO TechNotes: The Truth about Attestation - FIDO Alliance
82さんのツイート: "デバイスごとに異なるキーペアに各社のCAやらがsignしてるはず→Attestation Certificate… "
Yoshikazu Nojimaさんのツイート: "このページのKey generation scheme used by Yubico U2F devicesという図に、 Device Secretという物が載っていますが、これが「Credential IDから秘密鍵求める用の鍵」で、 こちらはデバイスごとに異なる鍵が焼き込まれている認識です。 https://t.co/1nin7eyHyt… https://t.co/IHK76N9pwA"
Key generation
82さんのツイート: "仮に同じモデルで同じ Private Key つかっちゃうと、どのデバイスでも Credential ID から、Private Key 復元できちゃうからそれはないはず。Root Certificate が同じという意味では? それともキーペア生成時に、シリアルとか混ぜ込むのかな…。とりあえず記事読んでみます。… https://t.co/UEGGCSPaGw"
nov matakeさんのツイート: "FIDO2-readyなYubiKey、もうあるしいいやと思ってたけど、もいっこもらっとけばよかったw… "
Borisさんのツイート: "Today I learned that the way the Google FIDO u2f polyfill is written means the API defined at https://t.co/HqYHPOMwPo can't actually be shipped in non-Chrome browsers in that form because the polyfill will stomp on it with code that only works in Chrome."

Web Authentication Working Group
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
FIDO Alliance » Download Specifications
FIDO Alliance » Metadata Service
google/u2f-ref-code: U2F reference implementations
FIDO U2F 準拠した対応デバイス『ePass FIDO』販売開始
FIDO U2F対応認証オプション | CloudGate
u2fval
List of libraries
U2F - FIDO Universal 2nd Factor Authentication | Yubico
FIDO - マイクロソフト系技術情報 Wiki
Google、Androidスマホを2段階認証のセキュリティキーにできる機能 - PC Watch

Microsoftは、アプリ「Stubs」とオプションのドライバで、Windows 11の難点の一部を取り除きました。|自作.com
YurikaさんはTwitterを使っています 「📝 Windows でのドライバーのリバースエンジニアリングの手法まとめ。氏のノウハウ詰まってる。 https://t.co/joJADxTEGq」 / Twitter
Windows Drivers Reverse Engineering Methodology - VoidSec
FadisさんはTwitterを使っています 「RedhatがLinuxの入力デバイス(HID)サブシステムにeBPFを挟めるようにするパッチを投げている話。eBPFはカーネル空間で実行するコードをユーザ空間から安全に挿入する仕組みで、HIDにeBPFを挟む事でおかしい動きをするデバイスの為にドライバに対応を入れる必要がなくなる https://t.co/LJXFGYj28K」 / Twitter
Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
FadisさんはTwitterを使っています 「入力デバイスは基本的に同じプロトコルを喋るデバイスを沢山のベンダーが作っている為、共通のプロトコルを喋っているようで一部で標準的でない動きをするデバイスが多数存在する。これらの違いに対応する為のコードをeBPFにしてカーネルから分離する事で、新しいデバイスに素早く対応できるようになる」 / Twitter

日時管理

その他

日本標準時プロジェクト https/http を介してアクセスされる場合
てくろぐ: インターネット・トリビア: インターネットと時刻
関数の時間計測 - in neuro
システム障害なしにうるう秒を乗り切る技術の発達について|Rui Ueyama|note
melancholic afternoon
無理数時計の数理@tcfmミートアップ
「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜
クロックを用いた時間計測 - Qiita
Web標準になった高分解能な計時レベル2
ruby/zlibのテストが何もしていないのに失敗するようになった話 - @znz blog
TimexとElixir標準日時①:現在日時取得(now)を比べる - Qiita
東大、スカイツリー展望台と地上で「相対性理論」検証 セシウム原子時計より100倍高精度の「光格子時計」で - ITmedia NEWS

基礎

CPU time - Wikipedia
System time - Wikipedia
Elapsed real time - Wikipedia
wall time
UNIXのwall-clock-time、user-cpu-time、およびsystem-cpu-timeとは何ですか?
wall clock timeとCPU timeの測定 - ange1の日記
real time/user CPU time/system CPU timeの違いをメモ – Siguniang's Blog

制度

国民の祝日

国民の祝日について - 内閣府
国民の祝日に関する法律 - Wikipedia
国民の祝日チェック
なぎせ ゆうきさんはTwitterを使っています 「「祝日ってどこかから取ってこれないんですか?」 「日本の祝日って典拠は官報で発表される暦要項なんですよ。で、国が安定的にWeb API運用してくれてればいいんだけどされてなくて、年一で取ってくる安定的な依存先が難しいんですよ」 https://t.co/vkyym9YtDj」 / Twitter
令和4(2022)年暦要項の発表 | 国立天文台(NAOJ)
こよみ用語解説 国民の祝日 - 国立天文台暦計算室

和暦

MS

Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
新元号 改元の対応のプロセス – Japan New Era Name Support Blog
新元号への対応についてのアップデート – Japan New Era Name Support Blog
ZZOさんのツイート: "マイクロソフトの.netは、これまでは西暦が入ったDateTime渡すと例えば"平成1年"という文字列を返してきたのに、新元号対応後は"平成元年"という文字列を返してくるように仕様変更される。行政提出用データやOCR帳票等に"元"を出してはいけないため調査と変更を急遽行っているという現状。"
ASCII.jp:日本マイクロソフト平野社長、Windowsの「新元号」対応を説明
牟田口大介さんのツイート: "Windows Updateで元号一文字表記のフォーマットが変更されたのやばすぎ…。 レジストリで 平成_平_Heisei_H だったのが 平成_㍻_Heisei_H になったらしいよ。だれだこれにOKだしたの"
Japanese Era Ligature Abbreviations – I'm not a Klingon ( )
新元号への対応について - Microsoft mscorp
kumoha683さんのツイート: "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras] "2019 05 01"="令和_令_Reiwa_R" 追加した"
個人のお客様向け:マイクロソフト製品の新元号への対応に関する情報 - News Center Japan
日本マイクロソフト、新元号対応への同社の取り組みをまとめたページを新たに公開【やじうまWatch】 - INTERNET Watch
【令和】Microsoft の元号対応が迷走している件 - Qiita
おごちゃん / 軽率の謗りを免れないさんのツイート: "だから、改元の日まで新元号を使っちゃいけないだってば。 新元号が使えるためには、システム日付が5/1になってないとダメってのは、正しい法律の実装。 とは言え、テストがなぁ...… "
楠 正憲さんのツイート: "誰も間に合うなんて約束してなかったはずだし、ギリギリで配信されても情シス部門がテストする時間がない訳で、急がない方がいいのでは? / “Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)” https://t.co/xbbZBv8zMW"
Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)
なかのん&マジックさんのツイート: "間に合わん方がオジサン達に良い薬な気もするな。 https://t.co/JYzns9i23j"
島鉄雄さんのツイート: "Windows がちゃんと令和対応してるか、プログラマならコードで確認したくなるよね? 元年の表示は自分で対応しないと駄目っぽい。 あと、Emacs26.2 だけどなんかインデントがおかしい...orz L"" という書き方に対応してないような気がする…ぐぬぬ… https://t.co/XUhcaKr62V"
ASCII.jp:Windows 10の令和対応パッチによる変更点を詳しく見る (1/2)|Windows Info
ASCII.jp:.NET Frameworkにおける新元号「令和」への対応 (1/2)|Windows Info
ASCII.jp:改元絡みでWindows 10の電卓アプリがバグってました (1/2)|Windows Info

PC Watch

【Windows 7 ユーザーズ・ワークベンチ】Windowsの言語環境カスタマイズと国際対応 - PC Watch
2019年発の“新元号”はWindowsアップデートで対応 - PC Watch
改元されたあとの“平成31年”表記はどう扱うべき? ~日本マイクロソフトやAdobeが改元対応を説明 - PC Watch
Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
新元号は“令和”に決定 - PC Watch
ATOK、4月18日より「令和」に対応。日付入力支援なども - PC Watch
日本マイクロソフト、Windows/Officeは自動更新で「令和」に対応 - PC Watch
日本マイクロソフト、「令和」に対応したWindows更新プログラムを提供開始 ~GW中は専用問い合わせ窓口で対応 - PC Watch

窓の杜

日本マイクロソフト、来年の改元に備えたサポート情報ブログを開設 - 窓の杜
新元号への対応に関するアナウンスは6月が目標 ~マイクロソフトが最新情報を公開 - 窓の杜
改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信 - 窓の杜
Microsoft、新元号の仮定義を削除するパッチをリリース ~「April 2018 Update」向け - 窓の杜
「Microsoft Silverlight」が新元号へ対応 - 窓の杜
2月のパッチでWindowsの元号処理や仮想マシンの復元に問題 ~Microsoftが修正版を公開 - 窓の杜
日本マイクロソフト、新元号対応に関連する情報を集約したWebページを公開 - 窓の杜

blog

山市良のえぬなんとかわーるど: Windows 10 ver 1803 の新元号仮定義(既に廃止)と e-Tax
新たな元号はJIS X 0213に入るのか | yasuokaの日記 | スラド
平成の次の新元号の文字列を取得するコード - にせねこメモ
新元号は「令和」に、施行は5月1日 | yasuokaの日記 | スラド
「令和」の典拠は日本古典なのか漢籍なのか | yasuokaの日記 | スラド
The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era
The Unicode Blog: Unicode コンソーシアムは「令和」をサポートする Unicode 12.1 を正式リリースしました

Twitter

なかのん&マジックさんのツイート: "和が昭和とかぶったから、合成文字では読みにくそう。"
Taku Kudoさんのツイート: "NF(K)Cでは、U+F9A8 は U+4EE4 に正規化されるみたい。それとは別に、U+32FFの正規化が追加されるのかな。"
Kazuho Okuさんのツイート: "テストやってないのが問題なんじゃなくて、和暦対応に開発やコスト工数割かなきゃいけないのが問題なんですよ。ねんのため… "
しげっと(オルタ)さんのツイート: ""和暦の一の位が「1」だったら「元」に変換するロジックを組み込んでいた。しかし、十の位を考慮していなかったため、ミスが生じた" 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル https://t.co/tuV69sH54p"
世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル | 日経 xTECH(クロステック)
Haruhiko Okumuraさんのツイート: "「令和」の「令」は U+F9A8 じゃなく U+4EE4 だと書かれている https://t.co/C3kx855Dk9"
小熊善之さんのツイート: "こんなん発出されてたんか……。: 新元号名で使用する文字コードについて(周知) https://t.co/ZPxfm3NkgU"
改元に伴う企業等の情報システム改修等への対応 (METI/経済産業省)
20190405_kaigen_code.pdf
はむ弁護士さんのツイート: "海外の取引先は、日本がGWで長期休暇であることを伝えても「Golden week?なにそれ?」という感じで、日本側の事情を無視して休暇中にも連絡がくるのですが、今年は「Crown Princeが5月1日にNew Emperorに即位してReiwa Eraが始まるから10連休なんだ」と伝えると、わりと理解を示してくれる印象です。"
島鉄雄さんのツイート: "WSL(Ubuntu 18.04) の令和対応を完了! なんとかギリギリ間に合ったw /usr/share/i18n/locales/ja_JP を https://t.co/BJswKP6sBY の ja_JP で上書きして $ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 した。 strftime() の使い方の勉強にもなった。 (もしやる場合は自己責任でお願いします)… https://t.co/88PYrxGlFK"
sourceware.org Git - glibc.git/commit
島鉄雄さんのツイート: "ちょっと捕捉 $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 で、デフォルトロケールを ja_JP.UTF-8 に変更済み https://t.co/BJswKP6sBY ここから ja_JP を落とすには、localedata/locales/ja_JP の横の blob をクリック→上の方にある raw をクリックで落とせる"
malaさんはTwitterを使っています 「あと5年すると日本特有の昭和問題というものがあって、どういう話かというと暦に年号、つまり和暦を使用しているシステムで「延長昭和」とかいう狂った暦を採用しているシステムが年号3ケタに到達してしまうのでシステムが火を吹くというやつがある」 / Twitter

The Unicode Blog: New Japanese Era
https://www.unicode.org/L2/L2018/18220-u121planning.txt
平成の次、新元号のUnicodeコードポイントは「U+32FF」 | マイナビニュース
NHK NEWS WEB|NHKのニュースサイト
新元号は「令和」 | NHKニュース
「令和」は「beautiful harmony」海外に説明へ | NHKニュース
振込予定日がなぜか「1989年」に、コンビニATMで不具合 | 日経 xTECH(クロステック)
「令和」対応の開発者向けiOS 12.3とmacOS Mojaveベータ版がリリース。しばらく一般公開版は「平成31年」 - Engadget 日本版
第567回 令和を言祝ぐ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Wataru NishimuraさんはTwitterを使っています 「年末調整や役所の手続きで「今って令和何年だっけ?」ってなるので、いい覚え方を探した。 西暦から令和を計算するときは 西暦 から れいわ(018)を引く って覚えやすいな。西暦2021年なら21-18で令和3年になる。平成も似たようなの無いかな。」 / Twitter

夏時間

Twitter

その他

なかのん&マジックさんのツイート: "サマータイム批判してるツイートでも触れられてないけど、サマータイム導入したら、世界中の機器のアップデートが必要じゃないか?"
Hiroyuki Nishimuraさんのツイート: "日本はサービス残業という違法労働が民間だけでなく、役所ですら起きているのに是正されないという点。 時計を切り替えても、人間の体内時計は、ずれたままなので、2時間の差は健康被害を生む可能性が高い点。 他国は1時間差です。 なので、夏時間導入は労働者に不利益な結果を生むとおいらは思います… https://t.co/tpWC1Z8NgK"
何者でもないおっさんさんのツイート: ""daylight saving time"でgoogle scholarで検索すると、 交通事故が増える、心筋梗塞が増える、睡眠時間が減る、仕事場での怪我が増える、エネルギー消費は意外に減らない(むしろ増える)等、ろくなのが出てこないw 前向きな論文は被引用数トップのほうではほとんどなし。 https://t.co/FVxC3ljl2Y"
Haruhiko Okumuraさんのツイート: "この前,過去の気象を調べていて,日本時間1948-05-02 00:00でエラーになるので悩んだ。当時日本は夏時間があって,この時刻は存在しないのだった(1948-05-01 23:59の1分後は1948-05-02 01:00)"
Shiro Kawaiさんのツイート: "(時計をいじるのではなく開始時刻を変える)夏時間冬時間、ってかすかに覚えがあるんだけどどこでだったかな。… "
Tanaka Akiraさんのツイート: "国会議事録を夏時刻法で検索して眺めていると、この法案が通る前は学校や会社で夏と冬の出勤時刻を変えるのがあたりまえだった感じなのだが、いつのまに同じ時刻にするようになったのだろうか。"
Kiichiro Yanashitaさんのツイート: "この記事、何がすごいってサマータイムをやろうと考える議員も、元号法のせいで平成31年と言わなければならない役人も、新元号を発表できない政府も、そのまま書く産経新聞もバカしかいない。日本の馬鹿を選り抜いた感。【東京五輪】酷暑対策でサマータイム導入へ https://t.co/WXOmjgo8pL"
水無月ばけらさんのツイート: "2年間だけの試験導入だとというなら「弊社のサービスはサマータイムに対応しません」が最良の選択肢であるように思えますし、実際そういうところが多数出てくるように思いますね。"
元茸さんのツイート: "サマータイムの件、「完全に同期された時計に従って動いている世界」を一切知らない人たちがその辺の時計をみんなが二時間ずらすだけぐらいの気持ちで思いつきをしゃべってるんだろうけど、そのレベルの視野しかない人達が重要な決定をする立場にいる怖さはもうちょっと認識しないとまずいかも"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムに関して、ITに詳しくない人たちが、そんなに対応が大変なものなのか。ITを多少知っている人たちであっても、ハードコードとかしているからでしょ。と言っているのを観測するにつれ、デプロイコストという認識がまだまだ薄いなと感じる。"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムをOSに適用するのも、NLS機能をちょっと直せば対応できるとしよう。だが、たとえそうだとしても、それをサマータイム対応が必要とされる機器すべてに適用するのがどれだけ大変か。もっと言うと果たして現実的なのか、ということへの認識が薄い。"
須藤玲司さんのツイート: "Time Change a ‘Mini-Y2K’ in Tech Terms https://t.co/JZ14ZvXPbk NYTのこちらの記事じゃ、2007年アメリカのサマータイム期間4週間延長に伴うシステム改修費用は、少なく見積もって3.5億ドルだったとしています。 法改正からたった2年での施行で、エンジニアは徹夜続きでふらふらだとか。"
須藤玲司さんのツイート: "繰り返しますが、アメリカのシステムは2007年時点ですでにサマータイムに完全対応してました。エンジニアも経営者も一般市民も、サマータイム対応のノウハウは世界最高です。 そのアメリカで、夏時間の開始日を早め終了日を遅らせる、たかがそれだけの微調整に、費用が3.5億ドル。ざっと400億円です。"
何があなたの都市ポップなさんのツイート: "サマータイム導入の影響を受けるコンピュータが省庁や一部の企業のものだけだと思ってないか? JST に触れてるコンピュータ全部やぞ、全部。お隣の国や地球の裏側の国にあるコンピュータにも影響あるんやぞ。なんならオリンピックに海外から来る選手や観客のスマートフォン一台一台も対象やぞ"
りおりおすとさんのツイート: "タイムスタンプ付きでイベント管理しているようなプログラムがうるう秒やサマータイムを考慮してない場合、想定したイベント発生までビジーループでwaitしちゃう、なんて場合にですね…。 9:00から9:01まで待つつもりが、7:00から9:01まで待っちゃうわけですよ。死ぬわ。"
りおりおすとさんのツイート: "実際、おかしくなったシステム、例えばCPUロードが100%になっちゃったJavaとか続出しただろ…。時計が遅れるのはまだ良いんだよ。時計が進むのはマジでやばい。"
Kazuho Okuさんのツイート: "JJYは「日本標準時」を送出している以上、法律が標準時に対してオフセットを定める一般的な夏時間になるという前提において、一部メーカーの「世界時計機能だけおかしくなる」という説明は誤りでは? / “サマータイム導入で「電波時計が狂…” https://t.co/sSQHFucrzF"
FUTATSUKI Yasuhitoさんのツイート: "FreeBSDの cron には -s ってのがあって、夏時間等でGMT offsetが変更になる場合の特別な取扱いをするかどうかをこれで決めるのだけれども、CentOS 7のcronでは -s は別のフラグに割り当てられていて特別な取り扱いが常に行われると。"
FUTATSUKI Yasuhitoさんのツイート: "軽くcronにおけるオフセット変更時の挙動について見てみたけど、Vixie CronなFreeBSDとCentOS 7でそれぞれdefaultの挙動が違うということだけはわかった。(ほんとに中身をまともには読んでない:))"
ymmtさんのツイート: "グループウェアのサマータイム対応はひとつ面白い問題があります。 会議で良く「毎週水曜日10時~11時」といった予定をいれることがあるのですが、この毎週10時というのが、サマータイム中か否かでタイムゾーンの異なる参加者間での調整が難しいことになるのです。"
ymmtさんのツイート: "これに会議室予約を合わせて、ダブルブッキングをできないようにすることを考えるとさらに面倒なことになります。参加者・会議室・予約それぞれがどのタイムゾーンで予定をいれるべきか。 ひとつの完璧な正解というのはない問題です。"
kinnekoさんのツイート: "サマータイム2年だけと思っているでしょうが、未来で過去のその月日を計算する時には必ず計算が必要になります。影響は未来永劫続くことになります。"
Takehiro OHYAさんのツイート: "①「損害保険のように時刻が指定された契約や、公訴時効の成立時点などをどう扱うか。サマータイムの導入は、「1日=24時間」を前提とした契約や法制度が無数に存在する、日本社会というシステムをどのように“改修”するかという大仕事」と書いてあり、条文を見たこともないのだな感。"
Takehiro OHYAさんのツイート: "②実のところ、期間計算について定めた民法139・140条、刑事訴訟法55条とも時間以下の計算と日以上の計算を分離している。具体的には、 ・時間単位の場合は即時起算(民139) ・日以上は初日不算入(0時スタートの場合を除く)(民140) なので、1日の時間数が変動しても期間計算に支障は生じない。"
高梨陣平さんのツイート: "豪でサマータイムが開始されたが、Apple Watchの第四世代にDST、Daylight Saving Timeの取扱にバグが存在、ブートを無限に繰り返す問題が発生中。 #自民党議員、見てる?… "

@tetsutalow

上原 哲太郎/Tetsu. Ueharaさんのツイート: "こんな認識なんですなあ世の中。ではあなたのスマホどうやって時間決めてるか。これサマータイム対応しようとするとOS更新がいるのですが、では来年までに皆さんスマホアップデートしてねといって、それできると思います?… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "「いまの時間」を表示するだけならそれでもいいのですがTZ表示関係は影響うけますし,スケジュール帳など「どこから夏時間になるか」情報を欲するアプリがスマホにはいっぱいあるんでTZ情報もつOS更新しないとまともに動かないです.… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "2時間ずらすなんてやってる国はないですよ.その上で,サマータイムをビットフラグで表してそれ見て1時間ずらすようにしてるシステムがいっぱいあるのですが.例えば電波時計の標準電波はサマータイムのフラグはありますが「何時間ずらすか」は未定義ですよ.… https://t.co/1SFFY4Z3NC"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー、本当に何も分かってない。今年決めて来年も無理だし、2年間だけとかまた戻す手間がかかる最悪の選択だ。大混乱だよ。今の情報機器の時間は竜頭をひねるようには変わらないんだぞ。 / “【東京五輪】酷暑対策でサマータイム導入へ 秋…” https://t.co/ssGVwequ65"

@mhiramat

まさみさんは語りたいさんのツイート: "サマータイム導入した結果、自動的に国内に時差が発生し、自国にいながらにして時差ボケで調節できず、悲惨な結果に終わる日本代表の姿が見えるぞよ。"
まさみさんは語りたいさんのツイート: "この仕組み自体が「全員馬鹿」と揶揄される現象なんだが・・・。… "
satさんのツイート: "サマータイムとか言ってるのを見て関係者全員馬鹿かと思ってる人が多いようだけどそうじゃないと思っている。関係者のうちの多くは意味不明な施策だと百も承知で上に訴えかけているのだけれども、伝言リレーを繰り返すうちに「ナイスアイデア、ぜひやりましょう!」になってるだけかと"
まさみさんは語りたいさんのツイート: "実際2時間の変更はめちゃくちゃ身体に来ますよ。多分平日眠くて仕事にならない人が続出して、その上で「睡眠不足になるのは自己管理が出来ていないからだ」って言い出す馬鹿が続出すると思う。いままで経験したことがない人が多いだろうし、過労死や老人の死亡割合も増加するだろう。"
まさみさんは語りたいさんのツイート: "日本ってただでさえ極東の非常に中途半端なタイムゾーンに位置していて、他の地域との電話会議の設定が大変なんで、さらに2時間も時差を付けられると、多分まともな時間帯に電話会議すること自体が不可能になる。本当にするって言い始めたら、個人的に午前中に打ち合わせを入れるのをやめる。"
lastline@オクトオバケさんのツイート: "酷暑対策にサマータイム導入って、午前中に限っては正解だが、それは午後に全てを押しつけることになるわけで。 気温のピークは1時から3時くらい。地面も温まるので、実質5時くらいまで暑い。それを2時間遅らせるってことは、帰宅時間とか夜はずっと暑いという。何が酷暑対策か。"
まさみさんは語りたいさんのツイート: "サマータイム導入すると夜も熱くなるわけか。そして老人がバタバタ倒れたら、やっとオリンピックという敗戦を通じて、日本は再生できるかもしれないな。"
まさみさんは語りたいさんのツイート: "うわー、よく考えるとこれは酷いぞ。サマータイムは通常初夏に切り替わるから、来年度からの導入を行う場合、5月の天皇退位=元号変更と大体あわさり、今からどうやったらいいかを検討してまとまるのが年末となると、影響を受けるシステム変更はもはや収集が付かないレベルに・・・。"
まさみさんは語りたいさんのツイート: "サマータイム導入が31年度からだとすれば、元号変更も合わさり、サイバーテロを起こしやすくなるのは来年5月あたりからだと思われますね。… "
まさみさんは語りたいさんのツイート: "サマータイムは感覚的には夜の時間も伸ばすことになるんだけど、何が起きるかと言うと、夜9時になっても空が明るい状態になる。そんな状態で小さい子供を寝かしつけられるか?生理現象として老人と子供はついていけないよ。"
まさみさんは語りたいさんのツイート: "ただでさえ子供の寝不足・夜ふかしが問題になっているのに、暗くなってから寝かせて、朝暗いうちから起こして学校に行かせるなんてことをしたら、子供の学力以前に成長に影響することも懸念される。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyはサマータイム対応済みだが、万一、サマータイム導入が決定したら、導入に賛成した議員には「投票しない」つもり(笑) ---- 「サマータイム導入へ 秋の臨時国会で議員立法 31、32年限定」 https://t.co/ud9TWdlQ6y… https://t.co/e00X8H0NZX"
Shirouzu Hiroaki(白水啓章)さんのツイート: "日本で知っている人は少ないと思うが、サマータイム適用中のWindowsでは、サマータイムでないタイムスタンプを表示すると、Explorerとコマンドプロンプトで、時間表示が1時間ずれる豪快仕様。 cmd.exeは(DOS時代の互換性のため?)このAPIを使っている様子。 https://t.co/hY1nVKzeBY (解説参照)… https://t.co/0LUGqI2hCg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FileTimeToLocalFileTime API 「夏時間が適用される季節では、変換対象の時刻が冬時間を指している場合でも、この関数は夏時間による調整分を考慮に入れます」"

@kazuho

Kazuho Okuさんのツイート: "日本国内の一部だけ夏時間導入案について言うと、沖縄本島以東は夏時間導入、としない限り、UTC+zoneinfoで動いてるスマホとかパソコンとかも全滅するのかなw"
Kazuho Okuさんのツイート: "zoneinfo を分割するような時間帯導入が過去事例があるのか気になりますね… "
Kazuho Okuさんのツイート: "windowsもzoneinfoなのかしら"
Kazuho Okuさんのツイート: "夏時間への移行は、ある標準時から別の標準時への変更(例: 東部標準時-5から東部夏時間-4への変更)として表現するんだよ。標準時のUTCに対するオフセットが変化するんじゃないよ #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "時刻間の差の計算は、とにかく同一の標準時に変換してから計算する。実務的にはUTCに変換して計算すればいい #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "一番問題になるのは「毎日午前9時」とかローカル時刻にひもづいている繰り返しイベント。夏時間を含む複数時間帯前提のプログラムだと、値がローカル時刻かを表すフラグと、ローカル時刻の場合はどの地点か(例: Asia/Tokyo)を表す属性をもってる #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "実務的には、ローカル時刻依存のイベントを増やすのは夏時間移行の問題を増やすだけなので、できるだけ多くの繰り返しイベントをUTCベースで設計して、窓口対応など人に関係する部分だけをローカル時刻連動にする #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "これ、こうするのは、ある標準時を採用している地域のうち、一部のみに夏時間があるケースがあるから。例えばオーストラリア東部時間(AEST)を採用してる4州のうち3州は夏時間(AEDT)に移行し、1州は夏の間もAESTを使い続ける #夏時間プログラミングの基本… https://t.co/nFZaIWQWl6"
Kazuho Okuさんのツイート: "例えば東京時刻で2018/8/14 9:00AMから毎日10回繰り返すイベントはiCalendarでは "DTSTART;TZID=Asia/Tokyo:20180814T090000 RRULE:FREQ=DAILY;COUNT=10" のように表現されます。絶対値としてのタイムゾーンはでてこないことがわかるかと思います #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "#夏時間プログラミングの基本 を連ツイしたのは、第一に、OSやJVMなどが提供する夏時間サポートと異なる手法によるオレオレ手法によるサマータイム実装を考え、それを前提とした技術的妥当性を欠くサマータイムへの批判がいくつか見受けられたこと"
Kazuho Okuさんのツイート: "第二に、日本人がサマータイムや複数時間帯の存在に無頓着なコードを書いた結果、国際化が困難になることがある点を踏まえ、一般的な多時間帯サポートがどのようになされるかコメントする意義はあるのではないか、という点からです"
Kazuho Okuさんのツイート: "今後プログラムを設計する際、サマータイム機能を当初から入れることはしないとしても、後々OS等が提供する多時間帯及び夏時間サポートを使うことを想定しておくことは、多くの場合、損にはならないだろうと思います"
Kazuho Okuさんのツイート: "PIMむけのウェブブラウザを書いていたのでカレンダー情報の交換フォーマットに多少知見があった程度のクラスタです"
Shirouzu Hiroaki(白水啓章)さんのツイート: "#夏時間プログラミングの基本 を見て思い出したが、FATのようにローカル時間で記録するファイルシステムがあり、NTFSとの差分コピー時に更新ファイルと誤認識される問題もあったり。 (なので、robocopy等は1時間の誤差を無視するオプション(/DST)が存在)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "robocopyの/DSTの動作は「1時間の誤差を無視する」なので、夏時間を2時間進める、というパターンには対応できないはず。"
Kazuho Okuさんのツイート: "OS等の夏時間機能にのっかる最大のメリットは、いつ時間帯が切り替わるか(例:3月第2日曜日午前2時)を指定するデータベースを自分で設計管理更新しなくていい点。時間帯の導入廃止や切替時期が法律で変わるから、ハードコードするわけにはいかないんですよね #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "夏時間のある国でも、サーバは夏時間を適用せずに(あるいはUTCで)動かすのが一般的なのでは? 無理にサーバで夏時間使おうとするからおかしくなる / “CentOS7でJDTを試してみた – さくらインターネット研究所” https://t.co/wRw0pf1bHR"
CentOS7でJDTを試してみた – さくらインターネット研究所

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Debian の cronは夏時間(DST)をどのように処理しているのか? これは時刻指定がワイルドカードかどうかによって異なる。時計が1時間進んだとき、とばされた時刻にあるジョブは実行されるが、1時間戻ったときは同じジョブが2度実行されないようになっている。 https://t.co/eur7xro9LB」 / Twitter
How Debian Cron Handles DST Transitions – Healthchecks.io

夏時間 - Wikipedia
夏時間対応のタイムゾーンでJP1/AJS3を運用する
SAP ERPでの日本のサマータイム対応について - SAPのすみっこ
Ryosuke Enokiさんのツイート: "サマータイム導入の議論が再燃しているみたいだけど、以前元ボス(本間研一先生)が書いたこの文で、すでに結論は出ているように思う。 https://t.co/1JzeeUQ4Jv しかも2時間の位相前進はかなり無謀かと。得られる経済効果より、不眠による健康被害や事故などによる経済損失は甚大なものになるかと。"
summertime_20120315.pdf
第1回 サマータイム延長で悲鳴を上げるシステム担当者たち:アキラの海外“デッドストックニュース”掘り起こし|gihyo.jp … 技術評論社
日本の法令における「一日」と「二十四時間」 | yasuokaの日記 | スラド
サマータイム導入で「電波時計が狂う」? メーカーに聞いた - ITmedia NEWS
「サマータイム実施は不可能」スライドが話題 「経済被害が兆単位」「サイバーテロをお膳立て」立命大・上原教授が指摘 - ITmedia NEWS
Shirouzu Hiroaki(白水啓章)さんのツイート: "サマータイムに限らず、時間がジャンプした場合のcronの挙動を分かり易く説明してあった。 https://t.co/ty7xPUjJ0k"
cron の意外な落とし穴! - もろず blog
Web JJY が夏時間に対応しました
サマータイムの導入は簡単!なのか?可能なのか?メリットはあるのか? – yohgaki's blog
『Excelにタイムゾーンという概念がなく、サマータイムに対応しないということは』『これから未来永劫、時限サマータイムの2年間についての複雑な特別処理を仕込まないと、正しい集計ができなくなります』 - Togetter
この一文で、自民党内のサマータイム導入推進派の方々の息の根を止めることが出来るかしら | 早川忠孝の一念発起・日々新たなり  通称「早川学校」
出生届と死亡届における夏時刻の表示方法 | yasuokaの日記 | スラド
サマータイム導入には反対だが、サマータイム導入に必要なことを考えた - Qiita
欧州委員長、夏時間廃止の意向=460万件意見調査踏まえ-EU各国に提案へ:時事ドットコム
サマータイムにうんざり、米国で廃止の動き | ナショナルジオグラフィック日本版サイト
欧州で最後の「冬時間」に、2021年に「夏時間」廃止で 写真1枚 国際ニュース:AFPBB News
「夏時間を恒久化する法案」が全会一致でアメリカ連邦議会上院を通過 - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アメリカさん、夏時間「廃止」と言わず「恒久化」と。 (Win32API上の夏時間は、常時ONになったりするんだろうか…?) GetTimeZoneInformation API: https://t.co/o1L8r3svwR ---- https://t.co/pgh4C22dAj」 / Twitter
GetTimeZoneInformation function (timezoneapi.h) - Win32 apps | Microsoft Docs
CNN.co.jp : 米上院、全米で夏時間を恒久化する法案を可決
Kazuho OkuさんはTwitterを使っています 「夏時間、イギリスは最後まで残るんだろうな。UTCとズラすのはプライドあるだろうし、夏に夏時間だと幸せなくらいには高緯度だし #しらんけど」 / Twitter

昼休憩

シエスタ - Wikipedia
Shiro Kawaiさんのツイート: "暑さ対策というならサマータイムよりはシエスタ導入ではなかろうか。"
第63回 シエスタとるなら昼寝は短めに | ナショナルジオグラフィック日本版サイト
シエスタ(昼寝)にも影響か。スペインがワーク・ライフ・バランス重視へ|クローズアップ海外ニュース
スペインのタイムゾーン変更はいつから?
スペイン時間がなくなる?日本との生活リズムや食事回数の違い | たびこふれ
スペインの時差と現在時刻 - Time-j.net
Current Local Time in Siesta Key, Florida, USA
シエスタって何?シエスタは法律で禁止化へ~スペイン - NAVER まとめ
スペインに根付く「シエスタ」のライフスタイルを変えようとする動きが活性化 - GIGAZINE

サウジアラビアがついにグレゴリオ暦を採用、時代は「21世紀」へ - GIGAZINE
ツェラーの公式 - Google 検索
Kazuho OkuさんはTwitterを使っています 「面白い。結論としては、JSは一貫してグレゴリオ暦、Swiftは1582年以前はユリウス暦を採用している。(その方針の議論とは別に)ここで指定しているiso8601はグレゴリオ暦を扱うものなのでJSの動作が正しいだろう、と」 / Twitter
BJ HomerさんはTwitterを使っています 「Javascript and Swift apparently disagree about when January 1, 1 AD was. (Both numbers in milliseconds-since-1970) JS: -62135596800000 Swift: -62135769600000 These two numbers are exactly 48 hours apart. Can anyone explain what’s going on here? https://t.co/zMo7OuD3X2」 / Twitter

タイムゾーン

Yusuke Endohさんのツイート: "Google カレンダーに ICFPc の予定を登録しようとしたら、タイムゾーンに UTC が指定できない。「はいはいイギリスにすればいいんだろ」とやってみたらサマータイム。。。イギリスは世界標準時の自覚を持ってくれ"
Yusuke Endohさんのツイート: "みんな UTC の予定どうしてるんだろうと思ったら、アイスランドのレイキャビーク(https://t.co/o7y7CV1UtC)とか、ガーナのアクラ(https://t.co/apgjoCzrII)で代用してるって出てくる。普通に Google カレンダー側で対応してほしい。。"
四九六々(縦書き用)さんのツイート: "WindowsのICU4CでTimeZoneにお悩みの方。wintz.cのSTD_REGKEYをwchar_tにし、getTZI関数を参考にgetStd関数を作り、uprv_detectWindowsTimeZoneで呼び、apiTZI.StandardNameと比較しましょう。"
IANA — Time Zone Database
Sources for time zone and daylight saving time data
eggert/tz: Time zone database and code
タイムゾーン呪いの書 - Qiita
タイムゾーンに関するあれこれ - Qiita
アメリカの時差と現在時刻 - Time-j.net
ヨーロッパの現在時刻と時差一覧 - Time-j.net
Shiro Kawaiさんのツイート: "クラウドでのログ時刻がローカル時刻で表示されるの、メンバーが異なるタイムゾーンに散ってる状況で話しながら作業するには極めて不向きだなあ。"
Shiro Kawaiさんのツイート: "まさしく、この打ち合わせ中にgithubのissueのコメントが書き込まれた正確な時刻を知る必要があったんだけどa day agoでぐぬぬとなった。そこクリックしても時刻表示に展開されないし。(マウスをhoverしたら時刻が表示される、というのにしばらくして気付いた)… https://t.co/bSDz5L4jjx"
9b96faac591ad05eddec760eed2da2d5 齊藤敦志さんのツイート: "ブログやチャットのサービスで「×日前」「×時間前」みたいな表示をするものがあるのはそういう面倒くささをカジュアルに回避してるのかなぁと思ったことがある。 業務で使うなら一意性が必要だろうからもっとちゃんと考える必要があるだろうけど。 https://t.co/t655t1XtjX"
18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ
Toru TakahashiさんはTwitterを使っています 「US/Pacific-Newっていうタイムゾーンがtzdata2020bから消えてるんだけどそれが入った理由が、1989年に議決されなかった太平洋大統領選挙時間( 'Pacific Presidential Election Time')の法案の先手を打ってタイムゾーンリストに追加したためって。。。https://t.co/0fQYP7Uqi7」 / Twitter
US/Pacific-New is not a valid timezone · Issue #498 · moment/moment-timezone
Dai MIKURUBEさんはTwitterを使っています 「@nora96o おおぉー…。基本「削除」はしない (エイリアスは残す) 方針と思ってましたが、こういう削除はあるんですね…」 / Twitter
Toru TakahashiさんはTwitterを使っています 「@dmikurube ですねー。tzdata2020bから削除されたみたいです。 https://t.co/HNPl2gfs0o」 / Twitter
[JDK-8254679] Release Note: US/Pacific-New Zone Name Removed as Part of tzdata2020b - Java Bug System
Dai MIKURUBEさんはTwitterを使っています 「@nora96o オリジナル tzdb の方だとこのへんですかね。まあもともとかなり前から BACKWARD 入りしてたやつかー https://t.co/KUgLPfTKfA」 / Twitter
Omit US/Pacific-New from default installation · eggert/tz@2edd825
タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog
FadisさんはTwitterを使っています 「タイムゾーンの時差と過去の変更の歴史を記録したtzdbがforkしそうになっている話。unixtimeのepoch以降に違いの無い複数のタイムゾーンの情報を1つのファイルに統合し、統合されて消えたタイムゾーンはsymlinkで表現する形に変えようという提案を巡って揉めているのが原因 https://t.co/HyMpK1GFv7」 / Twitter
FadisさんはTwitterを使っています 「tzdbにはunix epoch以前のタイムゾーンの変遷も記録されているが、統合されて消えたタイムゾーンのunix epoch以前の歴史が統合先のタイムゾーンと異なる場合、backzoneと呼ばれる別ファイルにその情報が書かれる。この変更には大きく分けて2つの問題が指摘されている」 / Twitter
FadisさんはTwitterを使っています 「1つは多くのアプリケーションは今のところbackzoneを読むようにはなっていないため、移行によって既存のアプリケーションがunix epoch以前の時刻の解釈を間違える事」 / Twitter
FadisさんはTwitterを使っています 「もう1つはtzdbの要素がシンボリックリンクだった場合、そのタイムゾーンの名前は「別の正式な名前に正規化されるべき」名前であると解釈するソフトウェアがあり、この変更によって「ノルウェー時間」が「ドイツ時間」に修正されるといった政治的にヤバい変換が起こる、という事」 / Twitter
FadisさんはTwitterを使っています 「tzdbの中では、これらの問題からtzdbは現在の形式を維持すべき派とデータベースの整理を進めたい派が半年に渡って争っており、この変更を取り込んでリリースを強行しようとする整理派に対して、維持派が「もうforkするしかねぇ!」と言っている」 / Twitter

プロトコル

NTP

日本標準時プロジェクト 公開NTP FAQ
NTP Security Project、「NTPsec」ベータ版をリリース - ZDNet Japan
NTP leap indicatorを上書きするProxyを書いた - ASnoKaze blog
ntpdのLeap Smearingを有効にし、うるう秒を24時間かけて調整する - ASnoKaze blog
NTPクライアントへの攻撃などを防ぐため、要求パケットに含めるデータを最小限にすることが提案される | スラド セキュリティ
ENOG-20171027-公開資料.key
日記 (2015 年 7 月上旬)
Fadisさんのツイート: "閏秒は正確な時間を必要としないシステムなら1秒のずれをntpdでゆっくり解消すれば良いだけで、この場合60秒の存在をソフトウェアが意識する必要はない。正確な時間が必要なのに60秒を扱えないシステムはただの欠陥品だから直そう"
NTPを暗号化する Network Time Security for NTP の提案仕様 - ASnoKaze blog
Facebook、より精度が高くスケーラブルなNTPサービスのためntpdからchronyへ切り替える
NTPの次期バージョンv5の標準化が始まる - ASnoKaze blog
NTPサーバの奇妙な振る舞いとNTPv5の標準化 - ASnoKaze blog

PTP

WhitePaperPtpJP.pdf
スペシャルフォーカス: IEEE 1588 Precision Time Protocol - National Instruments

Roughtime

Rockridgeさんのツイート: "RoughtimeはGoogleが開発中のプロトコルで、サーバとの時刻の同期を安全に行うことができるというもの。ただし、正確な時刻に対し10秒程度の誤差が生じる可能性がある。 / “roughtime - Git at Goog…” https://t.co/ERdGDojsE3"
googleの新しい時刻同期プロトコル Roughtimeとは - ASnoKaze blog
時刻同期プロトコル Roughtime の標準化 - ASnoKaze blog

GPS

GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
19.6年周期の“GPS週数ロールオーバー”が4月7日にやって来る。古いGPS機器では不具合が発生する可能性も【地図と位置情報】- INTERNET Watch
魚田雅彦さんのツイート: "すでに404 Not Foundになっていますが、archiveサイトで見られました https://t.co/urTwt5Wahc… "
GPSリセットによる運航への影響発生について - JAL国際線
Hiroshi Matsumuraさんのツイート: "まさか、GPSロールオーバーでJALで問題が発生するとは!しかも最新のB787で。 https://t.co/EXHy9CpIBZ"

RTC

RTC - OSDev Wiki
CMOS - OSDev Wiki
【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
「PCの時計が1時間ずれている」の原因 - Tactful Answer
「PCの時計が1時間ずれている」の原因の解説 - Tactful Answer
pwrtest.efi – UEFI Shell developer tool to test Intel/AMD RTC wake function | Firmware Security
自作OSで時間を使いたい - HonokaNo’s blog

TSC

untagged - x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い - スタック・オーバーフロー
rdtsc ‐ 通信用語の基礎知識
CPUクロックに基づく相対時刻の計測
NAKAMURA Minoru's Diary (2010年4月)
タイマーカウンタ その3
付録G KVM 仮想マシンのタイミング管理
Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する | MCTの憂鬱
カーネルにおけるタイマー事情 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
[Win32] [x86 Assembler] Time Stamp Counter | すなのかたまり
社会人でもOSを作りたいさんのツイート: "「TSC(Time Stamp Counter)はCPUの周波数程度の細かさ,つまり1GHzであれば1ns単位で時間をカウントすることができる」というのを「1nsの精度がある」と誤った表現をしているウェブページが多いこと多いこと… 精度とは何%の誤差かを意味する言葉であって,先の話題では「分解能」が正しい."
社会人でもOSを作りたいさんのツイート: "分解能が1ns±0.5nsのタイマがあったとして,これは秒しか測れないタイマーより分解能はかなり高いと言えるが,精度はめっちゃ悪いよ."
周波数 hz 時間 - Google 検索
hz 時間 換算 - Google 検索
Timestamp-Counter Scaling for Virtualization White Paper - 教育は参考ブログ
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
c++ - Calculate system time using rdtsc - Stack Overflow
msaitohさんはTwitterを使っています 「Intel の lfence;rdtsc の挙動がいまいち謎だったのだが、イカす会話を発見 https://t.co/mHXzkXWcZY」 / Twitter
Travis DownsさんはTwitterを使っています 「@InstLatX64 I wonder if the semantics of SERIALIZE differ from: mfence lfence ? Currently, even mfence alone has what appears to be at least as strong semantics (the equivalent an embedded lfence was added to it fix an erratum).」 / Twitter
msaitohさんはTwitterを使っています 「ここから先とか https://t.co/T2x0JKuZ1Q」 / Twitter
Ronak SinghalさんはTwitterを使っています 「@trav_downs @InstLatX64 Re: footnote 5 -- does not address speculation in the front-end. Yes, does serialize the instruction stream but still allows fetching/prediction of the code stream that is after the LFENCE. SERIALIZE/CPUID do not allow that.」 / Twitter
msaitohさんはTwitterを使っています 「Inte, AMD の cpuid, lfence, mfence, rdtscp の挙動の違いの調査など https://t.co/8KVxJ7OwcA」 / Twitter
Index of /~msaitoh/tsc
rdtscp を使う - Fixstars Tech Blog /proc/cpuinfo
CPU_CLK_UNHALTEDの値を取得する - Fixstars Tech Blog /proc/cpuinfo
命令単位の時間を計測する (準備) - Fixstars Tech Blog /proc/cpuinfo
その他の時間計測方法 - Fixstars Tech Blog /proc/cpuinfo
ogiwaraさんはTwitterを使っています 「時計へのアクセスにしたってシステムclockじゃなくてrdtscp使ってCPUのclock使ってる で、時間のズレが発生したら同期するようにしてる(Cicadaとか?)」 / Twitter
FadisさんはTwitterを使っています 「TSCとは: Time Stamp Counter。x86のCPUでRDTSCを呼ぶとCPUのクロックが何クロック進んだかを取ることができる。高精度に時間を測ることができるけど、アウトオブオーダー実行で容赦無く順序が変わるので注意が必要 #nekoi7yu_tech」 / Twitter
Naoya HoriguchiさんはTwitterを使っています 「https://t.co/rTt1tkSFSo この回答オーバーキル過ぎてワロタ。bpftrace のワンライナーいいよね。」 / Twitter
timestamp - Getting TSC rate from x86 kernel - Stack Overflow
Naoya HoriguchiさんはTwitterを使っています 「別解として crash を使うてもあるね。ちょっと大掛かりだけど。カーネル内グローバル変数をみたいことはたまにある。」 / Twitter

2038 年問題

Kazuho Okuさんのツイート: "off_tの64bit化は共有ライブラリの普及前だったからまだ簡単だったけど、time_tの64bit化は面倒だよな感しかない。しかもレガシーな32bit環境だけの問題だし"
Kazuho Okuさんのツイート: "今年はアセットファイルの expires を +20years に設定しているサーバの管理者が2038年問題に悩まされる(かもしれない)年です"
Kazuho Okuさんのツイート: "プロセス内部の値だけじゃなくシリアライズされた値も問題になるわけで、たとえば windows 8 の時刻型や MySQL の timestamp 型、 ext2/3 のファイル時刻は 32-bit… "
Dan Kogaiさんのツイート: "うん。だから「」でくくっといた。あとこういう問題も残ってる https://t.co/qvJgCdQpNs… "
404 Blog Not Found:人類よ、これが本当の人類滅亡だ
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「glibcは未だに2038年問題にきちんと対処していない。デフォルトのtime_tは32ビットで、64ビットのtime_tを使うには -D_TIME_BITS=64を定義しなければならない。他のlibcやWindowsではデフォルトのtime_tがすでに64ビットであり、ビルドが新しくなれば問題は自然に解消する。 https://t.co/wALZgX06hd」 / Twitter
glibc is still not Y2038 compliant by default – Ariadne's Space
2038年問題を再発させるコードが多数の場所にコピーされてしまっている - GIGAZINE

Epochからの経過時間

SODA NoriyukiさんはTwitterを使っています 「うーん、まるで逆で、1980年頃には普通だったけど、時刻/日付計算に不便なので一部を除きほぼ滅びたっていう方が正しい>年・月・日・時・分・秒にそれぞれ整数の固定ビットを割り当てるやり方 例えばMicrosoftだとFAT filesystemの時刻は年月日時分秒だったけど、NTFSでEpochからの経過時間に変えてる」 / Twitter
PatinebootさんはTwitterを使っています 「@tetsutalow エポックからの経過時間だけで、時刻を表すのは世間に害を撒き散らして迷惑です。 時刻を、BCD表現で表す。バイトに余裕がある現代において普通。 BCD表現を知らない上原氏は、センスが無い、と暗にいうが、上原氏の知識が無い。 どうか、無知識からExchange を非難するのはやめて下さい。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「上原先生に対して知識がないって言えちゃうのもすごいけど、まあ若者は世間を知らないもんですからね…」 / Twitter
NMism (Powered by Moderna📶)さんはTwitterを使っています 「@n_soda リニアな経過時間系がないと、うるう年やうるう秒を跨いだ時間計算でバグる人続出とかになりそうですね。# それにしても非難する前にぐぐってはどうかと。X-)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda あとBCD表現を二進化十進表現ではなく、数文字列の意味で使っているのですかね…? https://t.co/SPshOeQ8qT」 / Twitter
二進化十進表現 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda そうでもないのかな…ともあれ、time_t や FILETIME(Epoch系)に対して、struct tm や SYSTEMTIME の「比較/差分/加算」の扱いづらさを考えると、メモリ潤沢だから後者が常識というのはどの世界の常識なんだろう…?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu 先輩に嘘を教えられたってのに一票です」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラムで、time_t や FILETIME の使用が禁止され、struct tm や SYSTEMTIME の利用を義務付けられた世界線とか辛すぎる…(笑) (開発者は、隙あれば後者を避けて前者を使う生き物)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そういえば整数一つでないという意味で、timeval/timespec ってちょっと使いづらい)」 / Twitter
yunkさんはTwitterを使っています 「そういえば、8bitパソコンのファイルシステムのタイムスタンプもBCDだったなあ(画像はMZ-2500のディレクトリエントリの解説から)。 RTCが時刻をBCDで持っていたからという事情もあったのかも。 https://t.co/QD9ODwgltI」 / Twitter

過去日

まちカドおるみん(妹)さんはTwitterを使っています 「“Microsoft Excelでは日付データを1900年1月1日から起算したシリアル値(連続値)で持っているが、1900年は平年であるにも関わらず、Excelは1900年2月29日を存在するものとして計算してしまうため、1900年3月1日以前の日を計算に使うと問題が起こる場合がある。” 架空の日付 https://t.co/Ub2hOSudhl」 / Twitter
架空の日付 - Wikipedia
beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi これしかし、どういうロジックになってんだろうなぁっていつもおもう。普通に実装すると0年も400で割る計算をするときは西暦にオフセットしそうだし。 100年,400年単位での閏年補正を忘れてて、2000年だけハードコーディングしたとかそういうのではなかろうか。」 / Twitter
やす⋈尾鷲市移住&テレワーク中さんはTwitterを使っています 「@beepcap @kotatsu_mi 1900年はまあ使わないだろうって考えで4で割っておけば、2000年はクリアできるからという単純な理由じゃないかなと。」 / Twitter
beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@hirayasu @kotatsu_mi そうすると2100年の処理に余計な判定が必要になるんすよ。 まぁなんで初期のExcelには2100年対応が入ってなかったのかなって。」 / Twitter
まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap どうなんでしょね。まあ普通使わない年代の時間だし、いろいろ漏れてたんでしょうなあ」 / Twitter
beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi まぁこの実装なら2100年まで100,400区切りは考えなくていいしね。」 / Twitter
まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap 2100 年問題が潜在してる可能性 > Excel」 / Twitter
beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi ありうる。もしくは2400年問題。(ただしおそらく古いバージョンにおいて)」 / Twitter

MS

.NET 6:日付と時刻の構造

時刻のみのオブジェクト

Miura HidekiさんはTwitterを使っています 「時刻だけのオブジェクトって可能なのだろうか?日本なら可能かもしれないけど、サマータイムもあるし細かく言うとうるう秒もあるし」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 その特定タイムゾーンでの任意の日の午前0時からのオフセット(夏時間切替えの日は面倒...)ってので概念としては定義できそうだけど...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど。そのオフセットを正しく設定する処理が闇ですね」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局夏時間対応考えると日時情報から日の情報を落したもの、とするしかないような気はします。閏秒対応は今時なら通常秒の範囲を0-61と取っているでしょうから問題なし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 実際に実装があるとは思えませんが、日付情報があれば59秒+1秒をしたら、60秒と返す実装が可能ですよね。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 unixitimeをそのまんま使ったらアウトですから言語でサポートするってのもなかなか辛いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 確かに...」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "コマンドプロンプトでは、未だにこの挙動(夏時間では、夏時間以外のタイムスタンプも1時間ずれる)になる様子。 (ExplorerやPowerShellではそうならない) https://t.co/S0Ji6OrgQJ"
Why are file Explorer and CMD Dir displaying differnt timestamps ? - Microsoft Community
Shirouzu Hiroaki(白水啓章)さんのツイート: "SystemTimeToTzSpecificLocalTime / TzSpecificLocalTimeToSystemTime だとこの問題はない様子。 ただ日本語MSDNは明らかに誤記しているようにみえる。 ---- 「夏時間が適用されているときは、変換しようとしている時刻が標準時間でも、夏時間が考慮されます」 https://t.co/dlUNIMuO1i"
SystemTimeToTzSpecificLocalTime 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct で(やっと?)うるう秒対応が入っていたらしい。 SYSTEMTIMEのwSecondが60に。事前にSetProcessInformationで仕込みした場合のみ(仕込みなしなら59が2秒掛かるらしい) https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「TAI開始時点の太陽秒が原子秒の基準」とタネンバウム先生の本に書いてあったのだが、間違いだったのね。 「閏秒挿入の理由についての間違った理解」Wikipediaから。 https://t.co/lzBqBbkFCe… "
閏秒 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "最後のセンテンスに、グレゴリオ暦導入時の余談が入るのがタネンバウム先生らしさ(笑) 「地主は1ヶ月分の家賃を要求し…雇用者は労働者が働かなかった10日分の給料を支払うことを拒絶した」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "念のため、写真部分の出典は「分散システム 原理とパラダイム」A.タネンバウム・M.スティーン、P.245"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSは64bit タイムスタンプで、西暦6万年まで指せるので、オーバーフローなどは気にしなくていい。 …と思ったら、何故か西暦6万年を差したファイルが実在して、FastCopyの時間誤差の許容計算でオーバーフロー発生した経験。 (2年前の話、現在はオーバーフロー対応済) https://t.co/guYWIGLbYf"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct以降、FILETIME にはうるう秒も加算されるらしい。 UNIX epochのように、うるう秒を無視(59秒と60秒が同じ値)してくれる方が楽なのだが。 https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "つまり、FILETIME ⇔ time_t の単純変換ができなくなる、と。 うーん、私のソフトでも、いくつか対応が必要になりそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、こういう計算が出来なくなる、という話。 https://t.co/ENhYQu6YAm"
Converting a time_t Value to a File Time - Windows applications | Microsoft Docs
Windowsで高精度タイマを使う - Qiita
高解像度タイマーカウンタ
ASCII.jp:Windows RS5で実装される、うるう秒対応や高精度ネットワーク時間|Windows Info
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NT系も含めてWindowsで起動から49.8日目にいろいろと問題を起こす話は有名だったけど(GetTickCount(ms単位)が一周り)、最近は概ねGetTickCount64に代替されて問題なくなった様子。 https://t.co/VGwbIf00Fc」 / Twitter
ultravioletさんはTwitterを使っています 「「248日で死ぬシステム」てのが昔はよくあってな、32bitの符号付き整数で秒を数えてるシステムがオーバーフローする話なんだが、昔のOracleで出たケースが有名で、私も巻き添えを食ったことがある」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とはいえ、これは単調増加クロックなのでとても便利。 逆に昔のUNIXには clock_gettime(CLOCK_MONOTONIC) がなく、gettimeofday(ジャンプ・最悪巻き戻り対応)か tims(2)の戻り値(粒度荒い&バラバラ)くらいで困った記憶。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「むしろ、とっくにローカル限定になっていたかと思っていた。 95時代に「小さくするとオーバーヘッド大きくなるからご注意」とよく語られていた。 (それよりSleep(1)が5-9msくらいに収まらなくなるなら、FastCopyの速度調整にも影響出てるかもしれない。確認しておこう)」 / Twitter
SimKさんはTwitterを使っています 「パフォーマンス低下問題の原因が完全に分かりました。Sleepとかタイマーの分解能を決めるtimeBeginPeriod関数の影響範囲がグローバルからローカルに変更されたようです。(つまり、以前はたまたま他で高分解能設定にされていたから動いていたって事ですね・・・) https://t.co/0enXgdLhvV」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「簡単に実験してみたが、Sleep や GetTickCount64 の粒度は15.5msくらい。 (そしてtimeBeginPeriod(1)でSleepは1ms前後まで精度上がる)」 / Twitter
Shiro KawaiさんはTwitterを使っています 「スレッドプールのスレッド数がほぼ一月ごとに増えたり減ったりする挙動とその顛末。経過時間を測るのに32bitでms単位のクロックを使ってたけど符号付きで計算してたので途中でクロックが負になってた。バグ自体はよくあるけどちゃんとモニタしてないとなかなか気づかなさそう https://t.co/tevod2mUhL」 / Twitter
The code worked differently when the moon was full - Scott Hanselman's Blog
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「満月のときに発現する?バグ。Win32のGetTickCount()(C#ではEnvironment.TickCount)は32ビット値を返すため、49.7日ごとにリセットすることが知られていた。そのためこのケースでは49.7日ごとにスレッドプールで謎の性能低下が発生して開発者を悩ませていた。 https://t.co/PsFbgaA9O2」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにWin95ではGetTickCount()は実際に起動時からのカウンタを使っていたため、Win95は49.7日以上連続実行できないという不具合が存在した。POSIXレイヤではこの値はシステムの内蔵時計から計算されているため、すべてのマシンで同じの現象が同時に発生する。」 / Twitter

Linux

本の虫: Linuxカーネルを2038年問題に対応させるには
本の虫: Linuxカーネル、Rockchip暦に対応
gettimeofdayからclocksourceまでの道のり - livaの雑記帳
Fadisさんのツイート: "2038年問題、この間LinuxのInput Subsystemが32bit x86環境で32bitで入力時刻をユーザ空間とやりとりしてるのなんとかしようって話が上がってたな https://t.co/ccw75LlY33"
Input Drivers Are Being Prepped For Year 2038 Safety - Phoronix
NOKUBI Takatsugu野首貴嗣さんのツイート: "kernel側の2038年問題対応 内部のインターフェースは全部64ビット化された 32bit kernelでは設定で時間関係のシステムコールを64ビットにできる glibcが32/64bit time_tを同時に使うことを想定していない。レビューと作業は遅いながらも進んでいる #debconf18"
Man page of VDSO
Implementing virtual system calls [LWN.net]
Kazuho OkuさんはTwitterを使っています 「そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ! https://t.co/8X82Ag0opy https://t.co/z7H4fSiv4p」 / Twitter
multitime(1) — multitime — Debian testing — Debian Manpages
FadisさんはTwitterを使っています 「vDSO: Linuxではライブラリを使わないソフトウェアであっても実行するとvDSOというライブラリがロードされているように見える。これはカーネルが用意するライブラリで、カーネル側にコンテキストスイッチしなくても達成できるようなシステムコールをユーザ空間で片付ける方法を提供する #nekoi7yu_tech」 / Twitter
FadisさんはTwitterを使っています 「vDSOのgettimeofdayの実装、「x86の場合」って言ってたから他のアーキテクチャの場合見てみたんだけど、ARMもMIPSもRISC-Vも同じ関数呼んでて、その中身はx86みたいなプロセッサのクロックカウントを使った補正なんてしてないシンプルな実装だった https://t.co/iCPuHoPcqU #nekoi7yu_tech」 / Twitter
gettimeofday.c - lib/vdso/gettimeofday.c - Linux source code (v5.11.15) - Bootlin
Kazuho OkuさんはTwitterを使っています 「gettimeofdayとclock_gettimeの2種類のクロックがあって、両者を使い分けろ(前者はタイムスタンプ等に、後者はタイマ等に)という主張嫌い。実際はタイマの値をタイムスタンプから計算したりすることもあり、バグの温床になるから。 gettimeofdayが巻き戻らないような運用するなりラッパーを書くべき」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「実行時間の正確な計測をしたいときは「計測」自体にかかる時間にも注意が必要である。CentOSとUbuntuでは gettimeofday() にかかる時間が数十倍も違っていた。これはLinuxで時刻取得のためのclocksource設定が違っていたためで、これを見逃すと間違った結果を信じることになる https://t.co/6qjb5kMddr」 / Twitter
The Speed of Time

seconds since the Epoch (Unix time)

Kazuho OkuさんはTwitterを使っています 「フォーマルな仕様書書くなら、Unix time という表現よりも、POSIX 参照して seconds since the Epoch と書く(そして注記として Unix time 入れる)くらいが良さそうだなと思った」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tagomoris @yancya @__gfx__ https://t.co/oJOTUaI0kC の 4.16 にわざわざ定義がありますね > seconds from the Epoch 一方で、unix time という表現は使ってないと思う」 / Twitter
General Concepts
Kazuho OkuさんはTwitterを使っています 「@tagomoris @yancya @__gfx__ 3.150 に Epoch の定義はあります... https://t.co/MtjBH44Kov」 / Twitter
Definitions

TAI64N形式

tai64n 形式。 | 技術系メモ
cr.yp.to/libtai/tai64.html#tai64
tai64nlocalコマンド:TAI64N形式の日付を読めるようにする|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
daemontools - TAI64N to TAI
TAI64N形式の文字列をTimeに変換する関数 - うなの日記
external TAI64N形式のデコード – knsm.net
qmailのTAI64N形式タイムスタンプの変換 - taka_moriのブログ
djbware-doc-ja/tai64n.8.xhtml at master · fumiyas/djbware-doc-ja
blog.asial.co.jp/iphone/225
daemontoolsによるロギングとプロセス監視 (3/3):実用qmailサーバ運用・管理術(9) - @IT
https://cr.yp.to/libtai/tai64.html
TAI64
Perl [script] TAI64 形式の変換・出力プログラム 00 TAI64 とは (0x255)|Perl Perl_5 Perl_my_program|blog20100901
Macでtai64、daemontools、そしてctrl+cについて - ugon105の日記
Fadisさんのツイート: "ある時刻が存在しなかったり、2度存在したり、60秒が挟まったりすると困るというプログラマさんには、TAI64という時刻表現の素晴らしさを伝えたい"

ISO・JIS

ISO 8601の日付形式
ISO 8601 の日時に関すること(間違いがあるかも) - モノトーンの伝説日記
ISO 8601 - Wikipedia
ISO 8601 - Wikipedia, the free encyclopedia
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC 3339 と ISO 8601 の両方に共通する日時フォーマット。 ようするに "2021-10-24T10:51:34.567Z" "2021-10-24T19:51:34.567+09:00" のどっちかにしとけ、と。 https://t.co/IsrO6r0p2a」 / Twitter
RFC 3339 vs ISO 8601
渋川よしきさんのツイート: "WikipediaのISO8601の日本語の方、durationの説明がまったく抜けているぞ・・・"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2021/02/01 とやれば、どの国でも「年/月/日」と察すると期待して、FastCopyの統一ログ表記はこの形。」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「たぶん多くの人がやっていると思うけど、米国でも英国でもとりあえず誤解されないように日付を伝えられるように、必ず月を Jan/Feb/Mar/... 表記にしている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういう話があるらしい。 https://t.co/kShebNkAft」 / Twitter
Tsukasa #01さんはTwitterを使っています 「ISO 8601 に倣って私は YYYY-mm-dd を使うことにしている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「私も T を使うの、視認性悪すぎると思う。 https://t.co/dzKxJuKXbm」 / Twitter
Tsukasa #01さんはTwitterを使っています 「ただ human readable なテキストで日付+時間を表現するときに 2021-03-29 に後続する "T" を付けるのは気に食わないので、全面的に ISO 8601 に従うわけでもない。」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu 対応する JIS(日本産業規格)。追補は、令和の追加: JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 https://t.co/MGp8Ezk1e2 JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) https://t.co/BUY0Mx0LGl」 / Twitter
Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「日付表記の問題でいつも思い出すのが,当地で教員になったばかりの頃,11月22日に受け取ったレポートに「11/22」と書いたところ「どうしていきなり評価が半分なんですか?!」と食いつかれたこと.自分もできる限り月はアルファベット表記.」 / Twitter
Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「補足:マレーシアは英領だった関係でdd/mm/yyyyシステムを使用.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、この形式で海外から要望が来たことは無いので、皆さんちゃんと認識できている様子。 過去にあった要望はドイツ人で、数字の桁と小数点を表すピリオドとカンマを反転させてくれ、という要望。 彼らには 1,234.5GiB 等は分かり辛いらしい。 https://t.co/nldZxpiED6」 / Twitter
世界各国での数字の区切り方、カンマ・コンマのルール | コリス

POSTD

処理速度の遅いcurrentTimeMillis() – 前編 | プログラミング | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | プログラミング | POSTD

Wikipedia

システム時刻 - Wikipedia
Time Protocol - Wikipedia
世界時 - Wikipedia
国際地球回転・基準系事業 - Wikipedia

Twitter

時間管理

Dai MIKURUBEさんはTwitterを使っています 「理解してやってるんじゃない限り、ローカルタイム (+09:00のような固定オフセットではなくAsia/Tokyoとか) で保存するのはやめておけとしつこいくらい言っておく。 2017-11-05 01:30:00 America/San_Francisco は二度あるぞ。せめて +07:00 か +08:00 のどっちだったかは常にセットにするんだ。いいね?」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「過去の時間は基本的に UTC でいいと思う。未来の時間が問題で、その国や地域において法的に定められる時刻が問題なのか (イベントの開始時刻など) それとも、それと関係ない絶対的なある瞬間を扱いたいのかで変わる」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「前者である場合はそれでも気をつけ続ける必要があって、その時刻が2回訪れる可能性や、その時刻がスキップされて訪れない可能性を常に考慮に含めておく必要がある」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「念のため言っておくと、ある時刻 (1〜2時間程度) が消滅するだけではなく、ある日付がまるごと消滅したようなことすらここ数年の間に実際あったので、まあ日付時刻については自分の常識をまず疑っておくのがいい」 / Twitter
成瀬さんはTwitterを使っています 「未来の時刻、いきなりタイムゾーンがずれる可能性を考慮するといつもあいまいでこの世の地獄」 / Twitter

time_tの差分をとって比較演算をしようと思うとdoubleへの変換は必須

SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho POSIX的にはstat構造体の時刻がナノ秒単位になっている( https://t.co/Qiq9vIxUdQ )ので、この変更に対応済みのfind実装(イマドキすべての実装が対応している筈)であれば、find自体はナノ秒解像度で動作しますね。 ただファイルシステム上の時刻の解像度が秒単位だと、どうにもならないわけで…」 / Twitter
<sys/stat.h>
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho たしかに、gnu find は ns をみてるみたいだ。 POSIX ってまだ更新されてたの知らなかったw https://t.co/wp12QkrZeb」 / Twitter
pred.c\find - findutils.git - GNU findutils
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho これ、なんで double にして比較するんでしょうね。もしかして、今時、その方が速い?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho これは一つの比較演算子で済ませたいからってだけじゃないでしょうか。 あと、Ubuntuでダメだったってテストを手元で走らせてみると、うまくいっているような? https://t.co/YVOBGdq7ms テストのやり方を間違えてますかね…」 / Twitter
run stat(1) against target · n-soda/actions-install-and-cache@2c2f1d0
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho 楽したい場所じゃないだろと思うのよね。 アクションは、こんなにいろいろやったらうまくいくに決まってるw 元のコードでも、いつも失敗するわけじゃないので。 https://t.co/9tZWHGi3Pw」 / Twitter
run stat(1) against target · n-soda/actions-install-and-cache@2c2f1d0
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho あ、でも、stat の結果を見ると秒単位では一致してるんですね。たしかに不思議だ。 あと、touch したファイルが nsec レベルで一致してるのに驚いた。」 / Twitter
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho カーネル内の nsec の更新タイミングによるのかも。 > touch $epoch 0 1 2 ... じゃダメってことだものね。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho タイマー割り込みより短い間隔だとまずそうなので、一番間隔が長くても 50Hz でしょうから、0.02秒よりも長ければ大丈夫じゃないかと。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @uta46 timeval / timespec を double に変換して持つってのは僕もやりますが、楽だからですね。find のやつも変換することで遅くなることはあっても意味があるほど速くなるとはちょっと考えづらい気がします」 / Twitter
kaz uta46さんはTwitterを使っています 「@kazuho @n_soda ですよね。楽したい場所じゃないし、普通だったら FreeBSD みたいに、まんま比較すると思うので、何か意味があるのかなと。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda time_tの差分をとって比較演算をしようと思うとdoubleへの変換は必須です*。それを避けるとなると、比較演算子で if (x.sec < y.sec) { ... } else if (x.sec == y.sec) { ... } else { ... } みたくダラダラ書かないといけないというのはあります。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda *: time_tは実行環境がサポートする最大のunsigned型かもしれないから」 / Twitter
kaz uta46さんはTwitterを使っています 「@kazuho @n_soda なるほどー。一旦、そういう構造にしちゃったから、後戻りしにくいし、ペナルティも知れてるからってことですかね。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho なるほど。ファイル更新間隔が、カーネルの時刻更新解像度よりも短かったってことですかね。実際のビルド処理だとあまり起きない気はしますが、タイムスタンプ用ファイル作成直後に sleep 0.1 するのがいいのかも… 浮動小数点数でのsleepには移植性がありませんが、Linux, macOS, *BSDなら動きます」 / Twitter
kaz uta46さんはTwitterを使っています 「@n_soda @kazuho これで、みんなハッピーかな。 > touch $epoch && touch -A -01 $epoch &> /dev/null || sleep 0.1」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda 間にsyncは挟んでも良さそうですね」 / Twitter

ゆたかさん🐬さんのツイート: "システムに負荷がかかるとOSの時刻がずれる、というのはある意味正しいけれど、負荷という表現が曖昧。 厳密には、 カーネル空間で割り込み禁止状態が継続して、タイマ割り込みの処理ができなくなることで、時刻の更新が遅れる。 が正解。CPU数や実装で異なる場合もあるけど。"
ゆたかさん🐬さんのツイート: "NOだと思います。1秒未満でポーリングして、時刻を更新すればよいです。ただ、一般的に割り込みよりポーリングのほうが重たいと言われているので、割り込みと比べて負荷がかからないほうを選択することになると考えます。 https://t.co/FIfATs8XwS"
市川 真一さんのツイート: "@yutakakn OS の無い環境で、割り込みを使わずに 3 秒毎にポーリングする方法があれば、知りたいです。方法がなければないでよいです"
ゆたかさん🐬さんのツイート: "u-bootではudelay関数で下記条件を満たすループが実装されています。単純にクロックを参照してループしているだけですね。 @ udelay() # lib/time.c ftp://ftp.denx.de/pub/u-boot/u-boot-2017.05.tar.bz2 https://t.co/vKpi3v45pt"
satさんのツイート: "かつてlinuxプロセスの実行時間utimeとstimeは、タイマ割り込み(ここでは一秒ごとに100回とする)を使って、割り込みが入った時点で実行してた処理を、直前1ミリ秒で実行した処理とみなしていた。厳密に測るのではなくサンプリングですね"
satさんのツイート: "わざとらしい例を出すと、ほぼ全ての時間プロセスが実行していたとしても、サンプリング時間にたまたまカーネルが動いてたり、スリープしたりしてれば、utimeにはカウントされない。なので精密な実行時間の計測には向かない。使うとしても十分な長さの実行時間をとらないとあまり意味がない"
satさんのツイート: "s390とia64だけはサンプリングではなく、かなり精密な方法で測定していた。 最新カーネルでこのへんのコードを見てないので、今は知らん"
satさんのツイート: "すいません10ミリ秒"
Masahiro Kasaharaさんのツイート: "ほとんど茶々だけど、閏年は if((year % 4 == 0) ^ (year % 100 == 0) ^ (year % 400 == 0)) って書きたい派です。… "
kamimuraさんのツイート: "かなり茶々だけど、閏年は、 if (isLeapYear(year)) // isLeapYearは任せた! って書きたい派です。w… "
渡久地 信之さんのツイート: "12時間表記,12時がどっちを指すのか国によって違うのでアレ."
ゆきさんのツイート: "ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み https://t.co/evTEWm2QRw 書いた。chromeがどのようにシステムクロックのズレを検出してるか。"
ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時の linux + ext4 は utimensat(2) の tv_sec に負の値を設定することで、A.D.100年なども表現できるのね。 (touch でなく、utimensat なら、B.C. も行けそう) https://t.co/1i84lSpPyt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「UNIX epoch を 0 として、1969年12月31日23:59:59 が -1という調子。 (ただ、エラー値に(time_t)-1を返すmktime(3)などとの相性悪そうだな…)」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「Un*x使うプログラマになって約20年たった私ですが、最近ようやくPC向けUn*xにCMOS時計をローカル時刻に設定するオプションがある理由を理解しました。いままでWindowsとのデュアルブート環境とか真面目に使ったことがなかった」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho Windowsのレジストリを変更してUTCを使うという方法もありますよ。 https://t.co/szPiDl0R6I 私はデュアルブート環境の時はこの設定にしていました。」 / Twitter
System time - ArchWiki
Shinji KonoさんはTwitterを使っています 「ローカルタイムをDBに入れるのは初心者の間違いだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ローカルタイムの害悪はちょっと考えればわかる。Windowsは初期にはlocaltimeをOS内部の基準に使ってた。アホ過ぎるので最近やめた。」 / Twitter
yohさんはTwitterを使っています 「https://t.co/SWigVAAdmi C++20 Calendarって同月中最初の指定曜日を起点に 先月の最終指定曜日[0]とか 翌月以降の指定曜日[5~]を直接計算できるのね https://t.co/kbcOoAUCyG」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
きしだൠ(K1S)さんはTwitterを使っています 「これ、amとpmがそのまま午前と午後に置き換えれると思ってるところから生じるバグなんだよなー 12pmは1pmの1時間前なんだけど、午後12時は午後1時の11時間後 https://t.co/1q1T1n7h65」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「うるう秒 (leap seconds) は地球の天文学的時刻と原子時計を合わせるためのもので、これまでは全て「1秒増える」調整だった。しかし地球の公転速度は速くなったり遅くなったりしているので、将来的にうるう秒がマイナスにあることもあり得る。 https://t.co/I3BwD6AVZC」 / Twitter
Hate leap seconds? Imagine a negative one - by Randy Au
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「一意な解が存在しないdate/time型の比較問題: - "2022-06-01"(date) == "2022-06-01 12:00"(time) なのか? - "2022-06-01 12:00"(time) < "2022-06-01"(date) < "2022-12-31 12:00:00"(time) なのか? - "2202-06-01"(date) < "2022-06-01 12:00"(time) なのか?」 / Twitter
Benedikt DeickeさんはTwitterを使っています 「We just had a lengthy, one hour discussion with @leoeuclids and @uibreakfast in the @userlist Slack about comparing dates with times… 🙈 Does anyone have opinions on this? 🤪 https://t.co/G0muPbOhS9」 / Twitter

西暦1年は閏年か? - プログラマーの脳みそ
ISO 8601 - Wikipedia
Facebookが高精度時刻同期システムをオープンソースへ、構築コストが従来の数分の1に - GIGAZINE
opencomputeproject/Time-Appliance-Project: Develop an end-to-end hypothetical reference model, network architectures, performance objectives and the methods to distribute, operate, monitor time synchronization within data center and much more...
mattnさんはTwitterを使っています 「全然関係ないけど、Go の time.ParseDuration は「1日は24時間丁度じゃない場合があるので 1d はサポートしない」という仕様が好きです。」 / Twitter

バックアップ

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バックアップの際の「3-2-1ルール」: - 3個のコピーを - 2種類のメディアで - 1つは別の場所に このルールは写真家 Peter Kroghによって考案された。デジタルデータだけでなく、すべての情報に適用でき、また想定される多くの被害状況に対応している。 https://t.co/3i8HKQAEsD」 / Twitter
What is the 3-2-1 backup rule?
不測の事態で重要なデータを失ってしまうのを防ぐ「3-2-1バックアップルール」とは? - GIGAZINE
mod_poppoさんはTwitterを使っています 「Windowsの「ファイル履歴」ってやつを使うと手軽にバックアップが取れるのかと思ったけどなんかバックアップされないな」 / Twitter
mod_poppoさんはTwitterを使っています 「Windowsのファイル履歴、半角全角だけが違うファイル名があると(同じディレクトリに「1.txt」と「1.txt」があると)バックアップに失敗するとかどういう作りしてるの?アホなの?」 / Twitter
mod_poppoさんはTwitterを使っています 「Windowsのファイル履歴、「長いファイル名」も苦手っぽいな」 / Twitter
mod_poppoさんはTwitterを使っています 「ファイル履歴、バックアップに失敗したならその旨をユーザーに通知するべきだろ」 / Twitter

GitHub

reactos/reactos: A free Windows-compatible Operating System
openbsd/src: Public git conversion mirror of OpenBSD's official cvs src repository.
IIJ-NetBSD/netbsd-src: automatically converted from www.netbsd.org
The NetBSD Foundation
freebsd/freebsd: FreeBSD src tree (read-only mirror)
dspinellis/unix-history-repo: Continuous Unix commit history from 1970 until today
古い記事を読んでいるmatsuuさんはTwitterを使っています 「CPU情報を取得していい感じのバナーをコンソール上に表示するツール。OS起動時やSSH接続時のmotdの代わりに表示したいところだ。 / “GitHub - Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool” https://t.co/YsIe1sf12W」 / Twitter
Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool

スライド

Falling - Google スライド
Rustでの自作OSをやってきて - Speaker Deck

blog

VA Linux エンジニアブログ

RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ
RISC-V OSを作ろう (2) ~ タスク切り替え - VA Linux エンジニアブログ
RISC-V OSを作ろう (3) ~ 割り込み - VA Linux エンジニアブログ
RISC-V OSを作ろう (4) ~ タイムシェアリングスケジューリング - VA Linux エンジニアブログ
RISC-V OSを作ろう (5) ~ 時限待ち - VA Linux エンジニアブログ
RISC-V OSを作ろう (6) ~ セマフォ - VA Linux エンジニアブログ

「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは: ITジャーナリスト星暁雄の"情報論"ノート
自作OSとマルチコア | PG_MANAの雑記
liumOS 2020年の進化を振り返る - /var/log/hikalium
dangomushi's Blog
yohei.codes
Microsoft Digital Defense Report でサイバーセキュリティの動向を知る - Microsoft Security Response Center
伊津野 英克さんはTwitterを使っています 「思うんだが、少なくともバックアップは AWS などのクラウドのマネージドサービス上に置くべきなのかもなぁ。OS の管理権限がないから、権限管理さえきちんとできてればそこまでひどいことにはならないはず。https://t.co/OXpAmyq82K」 / Twitter
BCP想定を上回ったニップンへのサイバー攻撃についてまとめてみた - piyolog
伊津野 英克さんはTwitterを使っています 「個人的には特定のクラウド事業者だけに偏るのは危険だと思っているんだけど、マルチクラウドはあまりにも難しすぎるので、バックアップだけはマルチクラウド or ハイブリッドクラウドくらいがいいと思う。」 / Twitter

Twitter

その他

宇宙線

Sadayuki FuruhashiさんはTwitterを使っています 「メモリが宇宙船で異常になりうる環境でどうやってコード書くんだろうな…ソフトウェアでメモリの誤り検出符号を実装するのってかなり難しそう。検証直後に壊れる可能性があるわけで」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@frsyuki ハードウェアで対処するのが普通だと思います。 よくある3台ハードウェアを積んで多数決で決める奴とか、宇宙というよりは業務用が主用途ですが https://t.co/uVjGh5yIC1 のあたりの話とか…」 / Twitter
Tandem や Stratus の目指した世界は今に引き継がれてるのか? - cat-a-log
Sadayuki FuruhashiさんはTwitterを使っています 「@n_soda おおーこんな世界があるんですね」 / Twitter
香港むらかみさんはTwitterを使っています 「@frsyuki @n_soda クソリプですが、自動車制御ICも三重設計だと設計部の友人が言っていました。恐らくは似た設計概念から派生しているのではないかと思います。次は新幹線系のハードウェアが気になりますね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「スペースシャトルが初飛行したころは、コンピュータを3台だったか5台だったか積んで多数決で決めるみたいな解説を一般のニュースでもやっていたのだけど、全く意味がわからなかったな」 / Twitter
ををつかさんはTwitterを使っています 「@miura1729 アポロも同じコンピュータ3台で一台がエラー出ても他の2台が動いていればてな事をしていましたね。大気圏外では宇宙線が減衰しないので、コンピュータの回路に当たり誤動作をさせる可能性が有るとかが理由だった様な記憶があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「この手の多数決で演算結果を決めるシステムってどうやってテストするんだろう?っていつも思う」 / Twitter

パッケージ・マネージャ

エヌユルさんはTwitterを使っています 「普通は「外部言語のライブラリが管理できないのでこれをinstallする時はOSのパッケージマネージャとかでインストールしてね(gtkとかがよく対象になる)」ってやるでしょ なんでBitbucketから直接ダウンロードしようってなるんだ BitbucketからGitLabに移ったから昔のバージョン全部installできない」 / Twitter
てらモス♋️さんはTwitterを使っています 「OSのパッケージ機構に頼らずにHTTPで取得してしまいたい気持ちはよくわかってな…(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「例えば自分でHTTPで配布してしまえばその配布物に対してだけ責任を持てばいいわけだけど、外部の配布機構を頼ると外部の配布機構の数だけサポートすることになるんだ…(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「各Linux distribution毎にintel-mklがどうやってどこにインストールされるか、とかOpenBLASのビルド時のフラグがどうなってるかとかを全部調べて回らなくてよくなるわけですよ(´・ω・`)」 / Twitter
retrageさんはTwitterを使っています 「前にパッケージマネージャの設計について依存関係の充足問題を解く、みたいな解説記事を読んだ覚えがあるが思い出せない」 / Twitter
retrageさんはTwitterを使っています 「research!rsc: Version SAT これな気がする。 https://t.co/AAU17fUhty」 / Twitter
research!rsc: Version SAT
retrageさんはTwitterを使っています 「2016年の記事だけどSwiftとかRustのCargoはbacktrace solver使っているそうな」 / Twitter

リファクタリングとメンテナンス

まさみさん⋈語りたいさんはTwitterを使っています 「Linuxのようにインクリメンタルなコードのレビューを基本にしてる場合のリファクタリング方法の解がよく分からないのが悩み。結局現在のコードを関係性で切り分けて部分ごとにアップデートしてるが、これはリファクタリングとはいえないよな…。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「大抵のリファクタリングは仕様を書き出してから丸ごと再設計したほうがうまく行くと思うのだが、みんな元のコードを残す境界をどの辺においてるんだろ。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat Linuxの場合、大きな仕様変更以外大規模なコード変更への欲求ないし、それもリファクタリングとは言わないと思うので、リファクタリングが不要な形態のソフトウェアだとおもいます。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap なんと、私は真のリファクタリングを知らなかったのか…。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat 真のリファクタリングをOS開発でやってるの、思いつく限りWindowsくらいなんじゃ無かろうかという疑問。(同じ外部仕様で、内部の動きがダイナミックに変わる奴)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap ああー、それはLinuxではめっちゃ議論になるやつです…。」 / Twitter
不燃ゴミさんはTwitterを使っています 「@mhiramat 自分はその対応もリファクタリングと呼んでしまっているのですが、本来は何と呼べば良いのでしょうか? メンテナンス?」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@memorydump2019 メンテナンスが正しそうですねえ。」 / Twitter
不燃ゴミさんはTwitterを使っています 「@mhiramat そうなのですねぇ 参考にさせていただきます、ありがとうございます!」 / Twitter

固定概念

隠れ肥満(体脂肪率22.7%)さんはTwitterを使っています 「何も見ないで書いてみる 1. OSのコアであるカーネルを操作するソフトウェアがシェル,シェルを画面に表示して人間が使えるようにするのがターミナル」 / Twitter
Miura HidekiさんはTwitterを使っています 「OS=UNIX系の物 であれば正しそうだけど、どうなんだろう?」 / Twitter
Miura HidekiさんはTwitterを使っています 「OSとはUNIXの派生の物であるという固定概念に固まってしまうと、30年前のレベルまで退化してしまう気がする。」 / Twitter

オフロード

Livaさんのツイート: "今日の発表のスライドをWeb公開できるように編集しました。 「創りたいOSを、創りたい時に、最小コストで作れる世界」 https://t.co/1rqXPorjAl"
18:03:24_web公開版.pdf - Google ドライブ
まさみさんは語りたいさんのツイート: "jailhouseの採用は検討済み?… "
siemens/jailhouse: Linux-based partitioning hypervisor
Linux向けハイパーバイザー「Jailhouse 0.6」リリース | OSDN Magazine
Jailhouseハイパーバイザ実践 - Qiita
Livaさんのツイート: "いえ、初耳でした。調べてみたのですが確かに近いところが多そうですね。もうちょい調べてみます。ありがとうございます!… "
ぬるぽへさんのツイート: "モチベーションはlibrary OS的なやつにあるので少し違いますが、並行して動くlinuxにlibrary OSから機能をオフローディングするやつにmultiverse kyle 2017があります、参考になるかもしれません… "
ぬるぽへさんのツイート: "同姓同名ですがどうも別プロダクトのようです こちらの論文のやつになります https://t.co/riiw0ZmHop… "
Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization — Northwestern Scholars
ぬるぽへさんのツイート: "ちなみにめっちゃ被ってるというより、参考程度、つまりliva師が修論であれやるのなら関連研究の章にかけるかなーくらいの関連度です vmmを使って自作ライブラリOS上で動いているアプリのシステムコールを協調して動くlinuxカーネルに処理させてその結果をlibraryOSと同期するみたいなやつです… https://t.co/Dvvx1PrO2o"

NetBSD

Kimihiro Nonakaさんのツイート: "今のNetBSDだとカーネルはsrc/sys以下だけではなくsrc/commonも見てるはず"
SODA Noriyukiさんのツイート: "kernel と userland で共用するコードという意味で common なんですね https://t.co/L5DibO5j4x"
Kimihiro Nonakaさんのツイート: "NetBSDは不要な機能をディレクトリ毎消すとfiles.*が無くなるのでそれだけは残さないと駄目か。sys/conf/filesとsys/arch/XXX/conf/files.XXXを見れば何が必要なのかは判る"

プログラマ

まさみさんは語りたいさんのツイート: "ベアメタル→RTOS(MSDOS含む)→Linuxと進化してきた組み込み機器のプログラマと、サーバアプリなどから入ってきたプログラマの間で、OSを含むシステムモデルの理解に深い深い溝があることはよく知られている。"
まさみさんは語りたいさんのツイート: "大きい政府と小さい政府の違いみたいな、イデオロギー的な違いを感じるんだよね。アプリで全て頑張るからOSはローダーやライブラリみたいな働きだけしとけ、というのと、アプリはすべき事に集中して書きたいから、残り全てOSでやってね、という違い。"
Kazuo Moriwakaさんのツイート: "「O_DIRECTとかsched_yield使ったハックとか使いたい人」と「そういうの興味がない人」だ… "
まさみさんは語りたいさんのツイート: "イデオロギー論争なのでどちらが正しいとか間違ってるとかそういうのは余り意味がないんだけど、前者には車輪の再発明は避け、巨人の肩に乗る方法を模索することには意味があるんだよ、ということは伝えておきたい。後者はパフォーマンス追いかけ過ぎると前者になるから注意。"
星山 等(E-SW20改)さんのツイート: "組み込みもリッチクライアントもやるのでどちらの感覚も分かるんだけど、それだけにもやもや感もある。 組み込み専業の人はOSもコンパイラもあまり信用してない感じが強いし、リッチOSアプリの人は少し下位レイヤを信用しすぎ感がある。 どちらももうちょい融通をきかせた方が良さそうに思う。… https://t.co/8zz4ZYsScZ"
Kazuho Okuさんのツイート: "職業プログラマとしての成長したい人は、SIerとかウェブ系みたいな業種ではなく、メンテやリファクタ、再設計を通して「より良いソースコードを生み出す」環境が整っている会社を選ぶべきだと思ってる。仕様を満たすコードを短時間で生み出すことを繰り返しているだけでは、なかなか成長しないよ"
Kazuho Okuさんのツイート: "なお、期限のある契約に縛られない開発の場合でも、プロトタイピングや新サービス投入など、品質よりも納期を重要視すべき局面は存在します。ただ、そればかりやっているのはよくないという話"
Kazuho Okuさんのツイート: "なお、バグが再現しないからツイートに逃避しても、プログラマとしては成長しません(気分転換にはなる)"

組み込み業界

Ryou Ezoeさんのツイート: "組み込み業界の環境がひどいという話だが、テキストファイルでコードを書く以上gitで管理しない理由はないし、メモリ数KBだのクロック数十MHzだのという環境ならまずエミュレーター(clock accurateではないにしても)を書くだろうし実機のみで動かす必要もないだろうし、長期的に考えれば淘汰される。"
beepcap@HTTPSの強制には反対さんのツイート: "まぁ、組み込み「だから」バージョン管理していないというのは嘘であるが、 シミュレータをつくるというのは環境によるものの、ほとんど無い。 組み込み開発にとってはcoreのアーキテクチャより、ペリフェラルの方が多様で統一性がないためである。… "
deさんのツイート: "問題はだいだいペリフェラルで同意。 ハード屋さん(大抵顧客)がPMIC取り除いたり、メモリ変えたり、ドライバがないカメラ持ってきたり… ハード屋さんが顧客の場合、ハード選定から関われなくて、とても辛い場合がある。… "
リーズリングさんのツイート: "顧客といってもBtoB,BtoCでは多少違いはあるだろうけど。でも結局金を出すのが顧客ですからね。たとえ顧客が間違っていても事業的に儲かるなら応えるだけのことで、それよりも儲ける道があるならそっちを選ぶのが経営だという単純な話かと… "
まさみさんは語りたいさんのツイート: "みんな嫌ならやめればいいのにと思わなくもない。ラダーで動かさないといけないからPLCが高くついてる感じがする。(逆にそれがなくなったらラズパイだけで構成される世界が来るかもしれん・・・)… "
Kazunori Satoさんのツイート: "組み込み系プログラミングの不便さなめんなって記事にシーケンサーとラダー図なめんなってコメントが付いてて、不便さマウンティングに並行世界みある。 https://t.co/Tz01ZTAAZ5 https://t.co/Tz01ZTAAZ5"
PLCとは、シーケンサとは?初心者が速習でき83%分かる11項目 | ある電機屋のメモ帳
まさみさんは語りたいさんのツイート: "ちなみに大体のPLCは中身がLinuxかWindowsです。"
ほろころさんのツイート: "この問題はethernet/ipやethercat、cc-linkを利用しつつ、raspberry piで通信すればラダーは積極的に利用しなくても良いので… (I/Oで扱える電圧はPLCに分が有るので機器の削減は出来ませんが) 例:https://t.co/xFN3y6XTWT https://t.co/kzI1ZtMZk7"

ロバスト

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「ロバスト」というと、耐高負荷というより、仕様外/想定外に強いイメージあって、少しだけ違和感を持ってしまったの、B.メイヤー先生に影響されすぎかな(笑) https://t.co/8ChrBzGedK」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kaityo256 ご参考まで。「契約による設計」のB.メイヤー先生も、仕様定義外の動作は「気配りのグレードダウン」が理想で、それが頑丈さ(Robustness)という品質の指標、と書いてますね。 https://t.co/Oy5EvzxQma」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu セキュリティ屋としてはそちらであるべきなんですが 私は生来がシス管なのでロバスト=可用性維持の文脈で使っちゃいますねー」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tetsutalow なるほど(笑)」 / Twitter
Akira TakiguchiさんはTwitterを使っています 「@shirouzu @tetsutalow 私も長く「仕様外、想定外の状況に対して強い」「可用性維持」という意味だと思っていましたが、アメリカ毎月出張1年間の時に聞いた robust は、ほぼ full featured (だから適用範囲が広い)という意味でした。コミュニティの違い?」 / Twitter

users

@fadis_

Fadisさんのツイート: "Slackwareから学び取れるのはLinux環境の仕組みというより、何故パッケージにはファイルのアーカイブより多くの情報が必要なのか、何故ディストリはオリジナルのソースを変更しなければならないのか、な気がせんでもない"
Fadisさんのツイート: "資源の共有と分配を行うのがOSの役割なわけだけど、ホスト内である資源を唯一のプロセスしか使わない事が保証されている場合OSの仕事は無駄でしかなくて、無駄だから回避しようというのは真っ当な話だし、前述の条件が満たされない状況の為にカーネルによる資源の分配も依然として必要とされている"
yoh2さんのツイート: "カーネルとLILO更新して起動したら LI で止まって立ち上がってこない恐怖は今でも鮮明に覚えてる。"
Fadisさんのツイート: "GRUBと違ってLILOは指定した位置からカーネルをロード出来なかったら他の方法で起動して修正必須だもんな"
Fadisさんのツイート: "SwitchのOSはマイクロカーネル → 高速なIPCが欲しい → スレッドごとに独立した共有メモリを使って別のプロセスにデータを投げる #kernelvm"
Fadisさんのツイート: "「キャッシュに当たるようにコードを書く」種類の人たちだ…"
ゆかたゆさんのツイート: "一般人「HDDは遅すぎるからSSDに置こう」 友人たち「SSDは遅すぎるからメモリに置こう」 職場の人「メモリは遅すぎるからレジスタに置こう」 私「HDDは安いので好きなのです。」"
Fadisさんのツイート: "CPUは外からの観測結果が変わらない限り命令の実行順序を変えるし、ストレージは外からの観測結果が変わらない限り書き込み順序を変えるし、コンパイラは外からの観測結果が変わらない限りコードを読み換えるし、グラフィックランタイムは外からの観測結果が変わらない限りレンダリング順序を変える"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "WindowsをOSSにしたところで、XPの頃でビルド1日以上かかる(40GB以上必要) 巨大すぎるOSのコードを直したいって人って多くない気がするんだよね。NTOSKRNLとWIN32Kだけでも十分な気がするんだが"
Makoto Kato ︎︎さんのツイート: "今更、第3のOSのウリが軽いとか使ってるのって、アプリが重いんだから意味ないと思うんだよな。Androidアプリが重厚たから、そのアプリが動くっていっても、スペックに似合わないもの動かしてもヘイトしか生まない。"
Makoto Kato ︎︎さんのツイート: "アプリをインストールさせないようなOSはまだ理解できるんだけどね、軽さをウリにするんだったら"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、サポートエンジニアのロールモデルってのは難しくて、そこそこ出来るレベル人が一番長生きしやすいという状況だし、飛び抜けた人はそもそもサポートだと飽きちゃうんで。 https://t.co/FjZAgsqh5P"
サポートエンジニアをサポートするサポートエンジニアNight! - Secret Ninja Blog
Makoto Kato ︎︎さんのツイート: "窓作ってる会社のEscalation Managerって職も自分がいた頃とは毛色が変わってて、まぁ今なんてTeam Managerとそんなに変わんないんじゃないのって感じだし。。。"
Makoto Kato ︎︎さんのツイート: "サポートエンジニアとしてエンジニアリングが優秀すぎる人で残るのは、まぁ家庭を持っちゃっててとかが必要であって、若くて優秀な人って、軒並みあの組織からいなくなってるんだよな、特に品川のあそこ。"
Makoto Kato ︎︎さんのツイート: "大きい組織になったサポート部門は普通の人が入ってくるので、まぁ能力的には尖る必要がなくなって、普通の人がハンドリングできるレベルしかその組織として出来なくなる。その経過をいろいろ見ちゃってるから、尖った人は大きい会社のサポート部門へ就職することはオススめしない"
Makoto Kato ︎︎さんのツイート: "組織が小さいときはやりたい放題もできるし、いい意味で頭がおかしい人が入りがちなので、エンジニアリングとしても大変おもしろいんだけどね。大概起きてる現象って事例ないので想像力働かせるとかして説かないといけないし"

@d_toybox

なかのん&マジックさんのツイート: "2、3、8、9以外は普通のアプリ開発でも基本やるべきでしょ(5は物による)。 https://t.co/PINbS54Xyq"
命に関わるコードを書く時の10個のルール - GIGAZINE
みぞらぴさんのツイート: "モノリシックカーネル - Wikipedia https://t.co/VQ3V35Mv0S >日本国内においてはしばしばモノシリックカーネルと誤用・誤表記するユーザーやライター等が今なお見られる。日本語の「物知り」と語呂が似ているための勘違いであろう。 いらん考察すぎる"
なかのん&マジックさんのツイート: "シュミレーション("

@rockridge07

Rockridgeさんのツイート: "KaiOSはFirefox OSの遠い親戚のような存在であり、Firefox OSの開発チームの一部もMozillaを辞めた後で参加しているようだ。名称の由来は中国語の「开」(日本語の「開」)から。 / “A Short His…” https://t.co/7TiwDRDAZN"
A Short History of KaiOS - KaiOS
Rockridgeさんのツイート: "Windows版Firefox 61.0.2において、OSの強制再起動後(Windows 10 Fall Creators Update以降は全再起動後)にFirefoxが自動的に起動し、セッションを復元する機能が段階的に有効化さ… https://t.co/tW4OdUYDjo"
Rockridgeさんのツイート: "Windows再起動後にFirefoxの自動復元が行われる機能は、toolkit.winRegisterApplicationRestartの設定によって有効・無効を切り替えることができる。 / “Firefox 61.0.2 …” https://t.co/uNvvE159cg"
Rockridgeさんのツイート: "Firefox Realityのパーミッション機構はProgressive/Accountable/Comfortable/Expressive(PACE)の原則を採用するという。ユーザーにとってわかりやすい形で段階的にパーミッシ… https://t.co/TzJNK5bUR6"

@uchan_nos

OS作れないマン 技術書典3 あ11企さんのツイート: "Mobingiはクラウドへのデプロイ指示を1度定義しておくと、その定義ファイルを元にいろんなクラウド環境にデプロイができるサービスらしい。オンプレミス上のCloudFoundryとかも対応している。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "AnsibleとかChefはデプロイだけに集中しており、その後の監視とか更新などはスコープ外。Day2運用(監視、ログ、更新、バックアップなど)をするためのツールがBOSHである。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "Kuboはyamlファイルを読み取ってその通りにVMを構築し、ソフトウェア(etcdを動かすために必要なものとか)をデプロイする。 #paasjp"
x86-64-128さんのツイート: "集中コースの講師になったとしたら教えたいことまとめ: ・C++でのOSの作り方 ・川合さん謹製ツールからの脱却 ・Newlibのビルド ・UEFI起動のやり方 ・ELFバイナリのローダ ・PCIバス制御 ・SATA制御 ・USBキーボード制御 ・64ビットページング ・Linuxでのメモリ管理 ・mutexなどの同期機構"
x86-64-128さんのツイート: "全部詰め込んで教えるとは言ってなくて,学生が興味のあるところを聞いてくれたら詳しい話が聞けるリストだと思ってください.… "
OS自作 uchan_nosさんのツイート: "作者が「これはOSだ」と言い張って、周りの人も「まあそうかな」と思ったらそれがOSだ、という定義が僕は好きです。… "
OS自作 uchan_nosさんのツイート: "Operating Environmentという言葉が割と好き"
OS自作 uchan_nosさんのツイート: "OS自作について考えを巡らせていると,「OSを作る」=「カーネルを作る」となりがちでよくないな.こんな機能はカーネルに入れる必要ないよな,っていうの多すぎて「OS自作とは…」ってなりがち.だけど,ユーザ空間の諸々も含めて「OS」と考えれば,OS自作のスコープは広い."
OS自作 uchan_nosさんのツイート: "ユーザ空間でどの機能を実現し,カーネル空間(リング0)にどの機能を含めるか,っていうのもOSの重要な設計課題だと思って取り組むと,かなり楽しいチャレンジングな課題に思えてくる."
OS自作 uchan_nosさんのツイート: "ユーザ空間を含めてOSであるという立場にたてば,まだまだチャンレジすべきOSの分野は広そうだなあということに気づく.例えば,HadoopやKubernatesなどの分散処理基盤もOSだな,とかいう考えになって,未開の地が広がっていることに気づく.カーネルに閉じるとやることなさそうな感じになるけど."
OS自作 uchan_nosさんのツイート: "分散OSの教科書を読むと、壮大な夢が語られていて、意思を継いでみたさが発生する。"
OS自作 uchan_nosさんのツイート: "Kubernatesとかのオーケストレーションツールは,分散OSの機能の一部がユーザ空間プログラムとして実装された例だと思います.つまり現代の分散OS.(というのが最近分散OSを学んで感じたこと)… "

@utshina2

品川 高廣さんのツイート: "Linux の /dev/urandom は書き込み可能だけど、macOS の /dev/urandom は書き込めないらしい。"
品川 高廣さんのツイート: "Linux の /dev/urandom は poll() で POLLIN を指定すると読み出し可能として帰ってくるが、macOS ではエラーになる。"

@mhiramat

まさみさんは語りたいさんのツイート: "x86-opcode-map.txtを更新したらobjtoolが壊れたとかバグ報告が来たんだけど、意外と知らないところでこれ使われてるの?"
まさみさんは語りたいさんのツイート: "ありゃりゃー、先週末CELFで話をしていたことが(こちらはWindowsとはいえ)実際に起きた。OTAメンテ出来ないIT機器は販売してはならないっていう法律作るべきだ。 https://t.co/uRNCU3mMIP"
高梨陣平さんのツイート: "カナダで千台を超えるPOS端末がリモートからマルウェアにてwipe、削除された。Windows Xpを使用。機種はpanasonicの9300。攻撃はリモート保守に採用されたベンダー経由。SMB 1のパッチが適用されていなかった。再起動には全ての端末の物理アクセスが必要。… https://t.co/z5CLgXSBNq"
Hideyuki Tanakaさんのツイート: "Dockerいらなくね?というより、Dockerのコンセプトは成功したけど実装は気に入らないから積極的に代替に切り替えていきたいという流れじゃなかろうか(´・_・`)"
まさみさんは語りたいさんのツイート: "Dockerがいらないというより、Docker自体がモノリシックすぎて他のフレームワークと合わせて使いにくいから小さくしたcontainerdが使いたい、という話では。やっぱりUnix哲学は正しかったんだよ。"
まさみさんは語りたいさんのツイート: "ということをsystemdにも普及させていきたいのですがどうすればいいでしょうか。"
Kazuo Moriwakaさんのツイート: "systemdかなり機能ごとにバラバラになってると思うのですが…… ファミリーになってるとだめなかんじですか… "
まさみさんは語りたいさんのツイート: "機能毎にAPIって切れていて、任意のコンポネントを入れ替えるのは簡単なんでしたっけ?… "
Kazuo Moriwakaさんのツイート: "systemd-logindをつかわないとかはまあ普通にできる印象ですが置き換えの実装がないのでGNOMEつかいたいとかだと困りそう… "
まさみさんは語りたいさんのツイート: "なるほろ、systemd以外に依存ができてるわけですね。 なんかCNCFみたいな感じでいい感じにコンポネント毎の呼び出し規約の標準化とかが出来ると、コンポネント毎に代替手段やフォークして別になった実装が入って、またダイナミズムが復活するかなあ、という気持ちです。… https://t.co/1slSF5oDUU"
Kazuo Moriwakaさんのツイート: "udevdとsystemd本体は外すと前提が崩れていろいろ手当てがいりそうですが、基本的にはsystemd-*は相互にdbusでやりとりする疎結合なサービス群として構成されているので入れ替えたり使わなかったりは(程度問題ですが)やりやすいはず… "
Kazuo Moriwakaさんのツイート: "少なくとも*BSDはsystemd-udevつかわずにhald等でdbus喋って対応してるので、簡単な置き換えが典型的なlinux環境に無いというだけで極めて難しいとかではないはず。https://t.co/aDsmeJLDJ6標準のサポートはsystemdが強いところなのでデスクトップ環境を動かすのにsystemdが欲しいのは割と特徴的。… https://t.co/rDPmDL7C7g"
まさみさんは語りたいさんのツイート: "svcはservice callなんだろうな。レジスタの代わりにTLSにメッセージをおいてsvcするわけか。 #kernelvm"
まさみさんは語りたいさんのツイート: "NSの内部のgfxの処理は、処理するためのバッファキューをIPCで操作する。この仕組みはAndroidのbinderの仕組みを再利用している。 #kernelvm"
まさみさんは語りたいさんのツイート: "OSの仕組みを学ぼう、より、OSに入っている仕掛けを学ぼう、のほうが面白いかも。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "OS側ニーズで再起動する場合は、デスクトップ上のアプリケーションが完全復元する仕組みが出来ると良いのだが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元のデータだと、ようやくXPはほぼ消えた感じになってきた。 (だが、時折、XP(x64)で動かないんですけど…という問い合わせが来たりする)… "

@beepcap

Miura Hidekiさんのツイート: "セルフホストOSといえば、これだよな。何度見てもすごい https://t.co/pzj7DQu3yc"
ガラパゴスは此処に在った!自作OSの上で自作CADを動かす猛者 | Scene Research Station
beepcap@HTTPSの強制には反対さんのツイート: "これはちょっと違って、12年前だと時代遅れではあるものの、 30年前は「ソフトが書けなきゃPCはそもそも起動しても意味が無い」時代だった。 パソコンを使うとはソフトウェアを記述することだった。 その時代の感性であれば、自作するのは当たり前だろう。 CPUがDX4と言っているのでさもありなん"
beepcap@HTTPSの強制には反対さんのツイート: "僕もPC98で自作のワイヤーフレームモデラソフトを作って、ワイヤーフレーム表示や3D表示を研究していたぞ。 もう多分手元からなくなってしまったが、法線ベクトルを使うともっと簡単にポリゴンへの光線処理が出来ると分かったのは作ってからだいぶあとだったな・・・(減衰率と角度で表現していた)"
beepcap@HTTPSの強制には反対さんのツイート: "セルフホストOSといいつつ、まぁ自分専用のおもちゃだったんだろうと思うぜ。"

histric

histric-1

りおりおすとさんのツイート: "CPUが暇こいてる時に、自動的にマイニング、それもその時点で最も採掘効率の良い仮想通貨を、電力消費量も込みで選択してくれるOSがあった場合、それは「意図しないマイニング」なんだろうか…。 システム環境設定に「マイニング」がある世界"
Ryou Ezoeさんのツイート: "なんでDockerみたいなものが流行っているのかと問に対して、WindowsやMacしか使えない管理者権限を持たない環境でも動くからという説が提唱されていて、GNU Hurdは正しかったのかと呆然としている。"
Shiro Kawaiさんのツイート: "なるほど。chaos monkeyはNetflixが作ったツール https://t.co/DfFnuGdupV で運用中のサービスのVMをランダムに終了させるもの。耐障害性を上げるのに役立つ。同様に、休暇取得の制限をできるだけ少なくしておけば、いつ誰が突然休んでも止まらないチームを作るのに役立つ。… https://t.co/Ynp0PsWJ7q"
Takashi Kawasakiさんのツイート: "今やWindowsが凄いとかそういう話、誰も興味ないと思うんだけどさ、現存するどころか、かなりのシェアを持ってるUNIXじゃない思想で設計されたOSなんて凄くないですか!そして、互換性重視で来たので、かなり初期の謎の機能の痕跡とかが残ってるんですよ!"
渋川よしきさんのツイート: "50年くらい前は、一人で多くの領域の開発、改良に関われたのかもしれないけど、今どきは大人数で1つの領域に集中的に資源投下してなんとか数%改良、そして量産効果でなんとか費用配賦みたいな時代なんだよね。"
sogitani / baigie inc.さんのツイート: "専門家同士は100点満点で評価しがちだけど、市場が求めるのは50点くらいだったりする。それを上手に提供した60点の専門家は、70点以上の専門家たちからディスられがちだけど、事業継続して成長できるのはちゃんと市場とミートしてる60点の人。ディスってる70点以上の専門家たちはだいたい滅亡する。"
TAN-Y(たに)さんのツイート: "Macの最高なところは英語キーボードと日本語キーボードが正しく混在利用できるところだと思っているのですが、Windowsもこの点さっさと見習ってなんとかしてほしい・・・"
Ryou Ezoeさんのツイート: "Windowsカーネルにはしばらくの間、少電力モードから復帰するときにキャッシュを無効化してメモリにも書き出さないコードが入っていた。理由は宇宙線によるメモリエラーの回避のため https://t.co/x9fZakM5Gg"
For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache – The Old New Thing
齊藤明紀さんのツイート: "×MULTICSはクソ。おれたちがいいOSを作ってやる ○MULTICS使えなくなって寂しいなぁ。懐かしいなぁ。しゃーない、自作するか。謙遜してMULTIをUNIに変えておこう。"
Nerry さんのツイート: "おれんじぺこのメモリマップは256TBのメモリ空間を512等分して、最初の512GBはアクティブなプロセスのローカルメモリ、前半の残り255個は予約領域、後半の約250個が各アプリのメモリ空間、次の1TBが物理メモリのダイレクトマップ、次の512GBがリカーシブマップ、最後の512GBがカーネル空間だった、はず"
ほうめい 不思議金物堂さんはTwitterを使っています: 「@miura1729 マルチプロセッサ構成でI/O初期化するときには他のプロセッサを足踏みさせといて共有資源を初期化し終わったら一斉にドンと走るとかたのしい」 / Twitter
Rui UeyamaさんはTwitterを使っています 「OSの授業で論文を読む授業があったけど、その中で一番印象に残ってる論文はこれ。発想の転換がすごいと思った。 https://t.co/x0Qe6sptIW」 / Twitter
atc proceedings - nightingale.pdf
SODA NoriyukiさんはTwitterを使っています 「ゴッタ煮のカオスになっていた /usr/lib を、意味によって /usr/lib (.so および .a のみを置く)、/usr/libdata、/usr/libexec、/usr/share、/var に分けたっていうのが歴史的経緯なわけで、 /var/lib っていわば /usr/lib/lib みたいなもんでチョー気持ち悪いんだよなあ」 / Twitter
Shinji KonoさんはTwitterを使っています 「ランサムウェアはバックトラックあれば防げるんだから、あんまり同情する気にはなれないが。GooleDrive ランサムウェアとか?」 / Twitter
katoさんはTwitterを使っています 「Infrastructure as Codeは、とってもいい流れだと思うんだけど。構成管理したいが故に、手作業で秒で終わることを、ず〜〜〜っと依存関係解決に費やしている時もあり。あとは、サーバでスクリプト回したらいいことなのに、サーバレスしたいからずっとRubyかPythonいじるだけの時とかもある、本末転倒感」 / Twitter
uint256_tさんはTwitterを使っています 「自動テストができないソフトウェアって何」 / Twitter
市川 真一さんはTwitterを使っています 「@uint256_t 実機で動作する UEFI のようなファームウェアや OS、仮想化ソフトウェアみたいなものって、自動テストやりにくい印象を持っています。仮想環境でテストしたところで、そのテスト結果は実機と等価じゃないですから」 / Twitter
Kazuho OkuさんはTwitterを使っています 「渡されたブートイメージのfsが微妙に壊れてるせいでTLSスタックのPRNGがコケるくらいが一番印象に残ってるやつなレベルです。まだまだだな」 / Twitter
🤫sat😪さんはTwitterを使っています 「いままで出会った中で一番強烈なバグってなんだろうなあ - CPUがたまに別の命令を実行 - カーネルの時計が(ソフト的に)止まる - 20個くらいのCPUが複雑に絡み合うデッドロック - カーネルがユーザ空間への戻りアドレスを間違える」 / Twitter
Kazuho OkuさんはTwitterを使っています 「原因がある問題は誰かが直せば済むんですよ! 本当に辛いのは、環境起因で直しようがない現象についてクレームが来たとき」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「趣味プロジェクトを長続きさせるコツ: 保守コストが可能な限り少なくなるように全体を設計する。枯れたビルド環境と動作環境、なるべく変化しない言語、少ない依存ライブラリ、陳腐な枠組みの再利用 (例: DBMSの代わりにファイルを使う)、サーバ・クライアントの単純化など。 https://t.co/uHP7jBiBp2」 / Twitter
Designing Low Upkeep Software
Katsuhiro SuzukiさんはTwitterを使っています 「OSもどきを作ってたら.bssのクリアで死んだ。何かと思ったら、 ・スタック領域を.bssにおいてた ・起動時memsetで.bssごとスタックを0クリア ・memsetのret命令で0x00000000に戻る ・Illegal Instruction だから.bssはcallなしでクリアする派と、スタックは初期化しない領域に置く派がいるのか……。」 / Twitter
this is matsuu speakingさんはTwitterを使っています 「自宅サーバをOSから各種サービス動作まで全自動で構築するIaCツール。ベアメタルサーバのOSインストールもPXEブートからケアしてくれる。わいわい。 / “GitHub - khuedoan/homelab: My self-hosting infrastructure, fully automated from empty disk to operating services.” https://t.co/40s9XsORuY」 / Twitter
khuedoan/homelab: My self-hosting infrastructure, fully automated from empty disk to operating services
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バックアップをとっているにもかかわらず、ランサムウェア攻撃で身代金を払う企業が多いのは、彼らがバックアップの復元を実際に試していないからである。ランサムウェア攻撃に備えた「サイバー避難訓練」を定期的に実施せよ。 https://t.co/JGhL4wopui」 / Twitter
Don’t Wanna Pay Ransom Gangs? Test Your Backups. – Krebs on Security

Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSの仕事の1つは資源管理です。資源管理には大別して時間管理と空間管理があり、その大部分がScheduling問題とAllocation問題に帰着します。これらは最適手法と発見的手法のどちらかで解決できますが、いずれも整数問題や確率問題、微積分問題が基礎になっているので数学は大事ということです。」 / Twitter
Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSのもう1つの仕事は抽象化≒仮想化です。不特定多数のユーザーに対して複雑なシステムをわかりやすく可視化して見せ、使いやすく機能性に優れたインターフェースを提供することですが、これはアーキテクチャデザインやエンジニアリングの知識が求められるので、図工も大事です。」 / Twitter

Advent Calendar

その他

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita
一人トランザクション技術 Advent Calendar 2016 - Qiita
武蔵野 Advent Calendar 2017 - Qiita
カーネル/VM Advent Calendar 2012 : ATND
カーネル/VM Advent Calendar 2013 - Qiita
Kernel Advent Calendar 2017 - Adventar
オープンソースカンファレンス Advent Calendar 2018 - Adventar
Advent Calendar 2018 - panda's tech note
OS-CPU Advent Calendar 2019 - Adventar
東京大学 品川研究室 Advent Calendar 2020 - Qiita
NetBSDのカレンダー | Advent Calendar 2021 - Qiita

BitVisor

BitVisor Advent Calendar 2015 - Qiita
BitVisor Advent Calendar 2016 - Qiita
BitVisor Advent Calendar 2017 - Qiita
BitVisor Advent Calendar 2018 - Qiita
BitVisor Advent Calendar 2019 - Qiita
BitVisor Advent Calendar 2020 - Qiita
BitVisor Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita

Linux

Linux Advent Calendar 2013 - Qiita
Linux Advent Calendar 2014 - Qiita
Linux Advent Calendar 2015 - Qiita
Linux Advent Calendar 2016 - Qiita
Linux Advent Calendar 2017 - Qiita
Linux Advent Calendar 2018 - Qiita
Linux Advent Calendar 2019 - Qiita
Linux Advent Calendar 2020 - Qiita

本日12月1日より,2017年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
自作OS Advent Calendar 2014 - Adventar
自作OS Advent Calendar 2016 - Adventar
自作OS Advent Calendar 2017 - Adventar
自作OS Advent Calendar 2018 - Adventar
自作OS Advent Calendar 2019 - Adventar
自作OS Advent Calendar 2020 - Adventar
自作OS Advent Calendar 2021 - Adventar

Makoto Kato ︎︎さんはTwitterを使っています 「2021年にもなって、OSの設定言語に複数の言語を設定できないようなの、Linux+GNOMEとかくらいなので、ほんと30年遅れてるんですよねぇ」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータの専門家も、使いやすいプログラムが書けることと、優れたアルゴリズムが考案出来ることと、アプリケーションを駆使して仕事を効率化出来ることは 完全に独立な話のような気がする。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu メモリや PCIE デバイス,CPU にしても個々の技術それぞれについてまとまった文献はあっても,それらが組み合わさって最終的に実際のソフトウェアの速度がどうなるかまで踏み込んだものはなかなかない印象ですね.」 / Twitter

IME

Google 入力ツールをオンラインで試す – Google 入力ツール
Wolfram|Alpha 日本語版:計算知能
家庭・趣味向けのMathematicaの価格:個人ライセンスオプション
技術情報 – 株式会社科学計算総合研究所
コグニカル
Interpretable Machine Learning
The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction • Software Engineer as Data Scientist
機械学習の研究者を目指す人へ | Hiroshi Takahashi
全ての機械学習の論文は新しいアルゴリズムを提案しているのですか? - Quora
はまさんはTwitterを使っています 「@shunji_umetani 嘘にならない範囲で限界までポジショントークするなら「確かに似てますよね!じつは機械学習も中身は最適化問題を解いてるんですよ!データから最適なアクションを見つけだす技術が機械学習。でも最適化にはデータなしで最適なアクションを見つけ出す技術もあります!」」 / Twitter
Hal TasakiさんはTwitterを使っています 「『数学:物理を学び楽しむために』田崎晴明 無償公開している大学生向けの教科書を久々に改訂。 主に行列の対角化の周辺を整備した。これでかなりスッキリと読みやすくなり内容も充実したと思う。スペクトル分解や正規行列の対角化可能性にも言及した。 https://t.co/ZAmRSjY7zZ」 / Twitter
Math book
えるエルさんはTwitterを使っています 「PRMLと並ぶ機械学習の入門書として名高いMurphy先生の本が,深層学習以降も含む進化版として出版されるようで,ドラフト版が公開 https://t.co/1h1J1ELvNc 1600pの大作の前編で,続編のAdvanced Topicsもあるそう Deep以前の最強のML本にDeepの話題も加わり,単体の網羅度では最強の教科書(鈍器)では https://t.co/5UeTagu6No」 / Twitter
https://probml.github.io/pml-book/book1.html
nianticlabs/monodepth2: [ICCV 2019] Monocular depth estimation from a single image

IME

その他

IME

日本語入力 / エスリル
フリック入力の基本 / iPhone5の使い方動画 - YouTube
Seamonkey インプットメソッド仕様書
🐟日本語入力の落とし穴 #burikaigi - みずぴー日記
“http”が“hっtp”になるイライラを解消する「ImeCaretColor」【レビュー】 - 窓の杜
SKKがブラウザ経由で使える「SKK Anywhere」を作ってみた - yunazuno.log
パッチを当ててuim-skkをUTF-8化する | κeenのHappy Hacκing Blog
im2018 · mamorlis/chaime Wiki
RFC: Add new enum value for private mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
英語圏の人は特殊文字をどうやって入力してるんだろう? | yutarineの日記 | スラド
第689回 Ubuntu 21.10でFcitx 5を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

エディタ

Big Sky :: Vim と日本語入力の話。
SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!) - しふーのブログ
エディタのVimモードで、Escキーを押したときに日本語入力をオフにする設定(macOS, Windowsそれぞれの場合) - nosu blog

自然言語処理

分かち書きする言語しない言語のトークン化を統一的に扱う方法を妄想してみる - 言語と知能
GBDT - Google 検索
☔️⚡️さんはTwitterを使っています 「正直、文章のクラスタリングならばもうGBDTでいいと思う。 NN使うとやっぱ最大の課題はAPIにしたとき重いんですよね。 精度もAUCで3%ぐらいしか違わないので、高頻度で叩かれるAPIを想定するとGBDTに分があります」 / Twitter
言語処理100本ノック 2020 - NLP100 2020
ラフ集合 コーパス - Google 検索
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「ツイッターのような短文書分析用の新しいトピックモデル。ACL2020。文書に含まれる分野を教師なし推定するトピックモデルの代表格がLDAだが、各文書に含まれる単語数が少ない短文書では弱い。分散表現は併用せず、最後まで単語を離散的に扱う純粋なトピックモデルのようだ https://t.co/jl8JMPveFA」 / Twitter
An Online Semantic-enhanced Dirichlet Model for Short Text Stream Clustering - ACL Anthology
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「Semantic enhancedと書いてあるので、GLoVeみたいな単語の連続的な分散意味表現を別に持ってきて併用する方法かと思ったんですけど、どうやらそういう話ではなく、離散的な単語表現からトピックと各単語の間のsemantic weightという値を計算して、教師なし学習時に逐次更新するらしい。」 / Twitter
C3-3.pdf
論集49-2_白田.indd
Mamoru KomachiさんはTwitterを使っています 「何がギャップだったかというと、言語学での自然言語処理はルールベース万歳でひたすら辞書やルールといった知識を書く(プログラミングは正規表現的な)アプローチだったのに対し、工学の自然言語処理は統計的手法全盛で、コーパスにタグを付けて機械学習するというアプローチだったので、違いすぎた。」 / Twitter
『トピックモデル』の勉強ノート:記事一覧 - からっぽのしょこ
Googleが表形式データを使用して自然言語の質問に答えるためのAIをオープンソース化
Salesforceがデータベース用自然言語インターフェースPhotonをリリース
MicrosoftとGoogleが言語横断のAIタスクに対する新しいベンチマークをリリース
しょこβ📚さんはTwitterを使っています 「本にはないけどこれを変分ベイズでも解くという遊び方に気付いてしまった。 #OsakaR はてなブログに投稿しました #はてなブログ 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ https://t.co/o7dO1GJjdw」 / Twitter
5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ
nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出 - クックパッド開発者ブログ
NPSアンケートを自動分類した話 - クックパッド開発者ブログ

辞書

Yuki YoshidaさんはTwitterを使っています 「国語辞典、循環参照するじゃんと思ってたが、あれは連立方程式だと思えばいいのか。巨大な連立方程式の解として全ての言葉を定義している。」 / Twitter
翻訳するポット🫖さんはTwitterを使っています 「@yos1up すこし違いますが、減衰係数をかけて代入を繰り返して計算解を出すという手法もあります。 鈴木敏『辞書に基づく単語の再帰的語義展開』 https://t.co/Fy1Hj67Bng」 / Twitter
情報学広場:情報処理学会電子図書館

スクレイピング

ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点 - GIGAZINE
ローカル環境で netlify lambda のエミュレータを動かす - mizdev
netlify-lambda で puppeteer を起動する - mizdev
ブラウザのさまざまな操作を自動化するためのガイドをまとめたサイト「theheadless.dev」 - GIGAZINE
theheadless.dev - Learn Puppeteer & Playwright
checkly/theheadless.dev: Learn Puppeteer and Playwright - Tips, tricks and in-depth guides from the trenches.
ブラウザ自動化ライブラリ Puppeteer が Firefox をサポート
Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース
ウェブサイトの情報を自動で取得する「ウェブスクレイピング」をJavaScriptで行う方法 - GIGAZINE

依存関係グラフ

特徴量重要度だけで解釈するのはやめよう~部分依存グラフのすすめ │ キヨシの命題
特徴量ごとの作用を使ってモデルの中身を解釈する l DataRobot
依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?|NTTデータ数理システム
機械学習モデルの解釈の入門: Partial Dependence Plot(部分依存グラフ) - GRI Blog
故障位置決めのためのBayesネットワークに基づくプログラム依存グラフ【Powered by NICT】 | Semantic Scholar
P1-31.pdf

耳コピ

しゃをみんさんはTwitterを使っています 「ブログに書きました。先日のOngaACCELシンポジウムで発表されたAI自動採譜の研究について、自分が関わったパートを少し詳しく解説してみました。 「AI自動耳コピ」の研究者がいま考えていること - しゃをみんの自習部屋 https://t.co/DMvmLqcouH https://t.co/uPWmlwqNAq」 / Twitter
「AI自動耳コピ」の研究者がいま考えていること
【藤本健のDigital Audio Laboratory】音を楽譜にする“耳コピ”はここまで来た。AI自動採譜の最前線-AV Watch
[2005.07091] Semi-supervised Neural Chord Estimation Based on a Variational Autoencoder with Latent Chord Labels and Features

位相的データ解析(Topological Data Analysis)について | ALBERT Official Blog
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
整数計画法による定式化テクニックをまとめたい - 締め切り駆動開発
NumPyroによるベイズモデリング入門【線形回帰編】 | deepblue
松本徹三さんはTwitterを使っています 「@shirouzu 現在の延長線上ではシンギュラリティーは無理だと思っています。三つの点でブレークスルーが必要です。1)推論スピード(量子コンピューターが必要)2)データベース(大量の文書や講演・演説等のデジタル格納が必要)3)規範の認識と遵守、自由意志、自律的問題提起、閃き、等々の問題の解明。」 / Twitter
「相手のあらゆる行動の確率を計算する」ポーカーAIをFacebookが開発、将来的にはサイバーセキュリティへの応用も - GIGAZINE
誤情報に対抗するための判断材料を提供する「コンテキスト化エンジン」構想 - GIGAZINE
【徹底解説】変分ベイズをはじめからていねいに | Academaid

ローマ字

Twitter

毎日新聞さんのツイート: "ローマ字の「ち」は「ti」と「chi」。 教育現場からは「どちらかに一本化してほしい」との声が上がっています。 https://t.co/pJXfyqmaN5"
SASANO Takayoshiさんのツイート: "「ち」は「chi」表記じゃないかなあ。「ti」は「てぃ」という発音に見えるんだけど。(キー入力のことは考慮しないツイート"
SASANO Takayoshiさんのツイート: "入力は多分tiだと思います。 #ち"
SASANO Takayoshiさんのツイート: "むしろぁぃぅぇぉ入力がlaなのかxaなのかで戦争が起きるような"
SASANO Takayoshiさんのツイート: "ていうか何故統一したがるんだろう。どっちでも良いものは「どっちでもいい」を許容しなよ。"
Orumin de Izumoensisさんのツイート: "このまえ,ローマ字入力で ti か chi かで訓令式かヘボン式かみたいなアンケートが出回っていたのだけれども,昭和二十九年十二月九日のローマ字のつづり方(内閣告示第一号)における第二表に,"ち"を chi と綴る方法が乗ってる https://t.co/g3qvGc8ft8"
KIMATA RobertHisasiさんのツイート: "なんで選択肢が訓令式とヘボン式からの択一なのか。ISO 3602はなぜかこういう時に話題にすら上がらない。国際標準なのに。あと99式とか日本式とかもあるがこちらも話題に上らない。更に固有名詞の場合、ローマ字の書き方無視して全く別の綴りになる場合もあるが、そういう場合の対策も出ない https://t.co/kXpjfgJJhc"

ローマ字 - Wikipedia
99式ローマ字 - Wikipedia
ISO 3602 - Wikipedia
UT_Komaba_Nihongo_no_romaji_hyoki_v1a
ヘボン式ローマ字一覧表です。ローマ字のヘボン式と訓令式の違いを知っておこう!
正しく知っておきたい「ヘボン式ローマ字」の基礎知識 - NAVER まとめ
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp

総ルビ

Shiki OkasakaさんはTwitterを使っています 「総ルビくらい、技術的にはほとんどコスト0でふれるんだけどな。ユニコードのルビ、なんとか標準までもっていけないものかなぁ。ツイートでルビふれないのも、けっこう社会的な問題だとおもう。 https://t.co/nD1OKToN7c」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「画面の動画は「ふりがなパッド」のものです。「ひらがなIME」とセットでうごいています。Ubuntu や Raspberry Pi などでつかえます。 https://t.co/T4C3r1zaBT https://t.co/7WyDRKuGR9 https://t.co/wvs4DxjH7w」 / Twitter
esrille/furiganapad: ふりがなパッド
esrille/ibus-hiragana: ひらがなIME for IBus
Shiki OkasakaさんはTwitterを使っています 「ユニコードのルビというのは、ただのテキストでもルビをもてるようなしくみのことです。(「ふりがなパッド」は、ユニコードのルビを編集・表示できるテキストエディター。) https://t.co/eOai11QCao」 / Twitter
ルビ - Wikipedia

漢字含有率

Shiki OkasakaさんはTwitterを使っています 「漢字含有率をさげるかきかた。 1. 和語はかながきを基本にする。 2. 常用漢字表を意識して、むずかしい漢字をさける。 3. 国語化した漢語は、かながきにする。」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「2.は、IMEのせいもあって、無視されていることがおおい。かいた本人のこのみとは無関係ということもおおそう(あとでよめなかったり)。IMEの漢字辞書の構成法については、山田尚勇さんが提言をされていた。 https://t.co/LndZrEIifW」 / Twitter
www.pitecan.com/presentations/PenInput/tcode
Shiki OkasakaさんはTwitterを使っています 「3.は、当用漢字表の「代名詞・副詞・接続詞・感動詞・助動詞・助詞は,なるべくかな書きにする」というルールから。いまでも、実践されているひとはおおいよう。梅棹忠夫さんは、これを形容動詞(ナ形容詞)にまでひろげてかかれた。 https://t.co/dLaKFh86Xw」 / Twitter
文化庁 | 国語施策・日本語教育 | 国語施策情報 | 国語審議会(終戦~改組) | 当用漢字表
Shiki OkasakaさんはTwitterを使っています 「当用漢字表のときにきめた「ふりがなは,原則として使わない。」というルールが、いいまでも、けっこう尾をひいていたり。 RT&gt; https://t.co/dLaKFh86Xw」 / Twitter
文化庁 | 国語施策・日本語教育 | 国語施策情報 | 国語審議会(終戦~改組) | 当用漢字表
山本 和英 ※暑中お見舞い申し上げますさんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
それは常用漢字ですか?
Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
人名用漢字:その漢字が子の名に使える漢字かを判定する
「やさしい日本語」のお焚き上げ - 水底の血
Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、AltGrキーを有効にすれば、記号などを直接入力できるようにしました(まだ、masterのみ)。(絵文字は、IBus標準のCtrl-Shift-eで入力してください。ねんのため。Gtk 4では、Ctrl-.でGtkEmojiChooserをつかって入力できるアプリがふえそうですが。) https://t.co/UTDblghz4W」 / Twitter
実験的な機能 ― ひらがなIME
Shiki OkasakaさんはTwitterを使っています 「Ctrl-Shift-eとうったあと「はて?」となるひともいそうなので補足。そのあとスペースをうつと、絵文字のメニューがでてきます。(GtkEmojiChooserのUIのほうが、わかりやすい感じはします。)」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、周辺テキストに対応していないアプリケーションでは「よみ入力モード」をつかうようにしました(まだ、masterのみ)。日本語を入力するとき、Chromeなどでは「よみ入力モード」をつかうようになります。 https://t.co/If1KX817zO」 / Twitter
周辺テキストに対応していないアプリケーションでよみ入力モードを有効にする · Issue #87 · esrille/ibus-hiragana
Shiki OkasakaさんはTwitterを使っています 「Firefoxなどでつかえる「モードレス入力モード」とくらべてみると、おもしろいかもしれません。」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「IMEの「よみ入力モード」については、梅棹忠夫さんがかなり初期から批判をされていました。よみの確定操作というのは、なかなか、わずらわしい操作だとおもいます。 https://t.co/ixZP824Q0n」 / Twitter
『日本語と事務革命』(梅棹 忠夫):講談社学術文庫|講談社BOOK倶楽部
Shiki OkasakaさんはTwitterを使っています 「日本語のばあいは、表記は思想とおもったほうが、おさまりはよい気がしたり。そのかわりに、最低ラインとしての「国語」は平明である必要をみとめていたのかなぁ。いまの「国語」はそうゆう「国語」ではなくて、かわりに「やさしい日本語」がある感じ。 https://t.co/zfmGfswsFl」 / Twitter
漢字・カタカナ・ひらがな - 平凡社
小池陽慈『14歳からの文章術』さんはTwitterを使っています 「野村雅昭・木村義之編『わかりやすい日本語』(くろしお出版)、ゲット。 もちろんまだパラパラめくってみただけだけれど、それだけでも、「わかりやすい日本語」という考え方が、現代文や国語の指導のうえでかなり重要なことを述べているとわかる。 勉強します。 https://t.co/yTatomvApz」 / Twitter
Shiki OkasakaさんはTwitterを使っています 「野村雅昭さんも梅棹忠夫さんのような表記法をつかう。あべやすしさんの「みみできいてわかる文章のために」がわかりやすいかも。 https://t.co/SyPquDGyny」 / Twitter
「みみできいてわかる文章のために」
Shiki OkasakaさんはTwitterを使っています 「せめて古文の授業でくらい「伝統的な日本の文章というものは、ひらがなだけで書いていくというのがひとつの主流なわけです。」とおしえてくれたらいいのだけれど。学校の教科書は原文のひらがなを漢字にかきかえてしまう。 https://t.co/Sj1jra5DcA」 / Twitter
「漢文訓読に使った言葉が今に生きているんです。」月本雅幸(2)|インタビュー VOL.3|超漢字マガジン 漢字を知り漢字を楽しむサイト
Shiki OkasakaさんはTwitterを使っています 「じぶんでよめようがよめまいが、IMEの変換候補に漢字があればそれをえらんでしまう。そうゆう心理になまえはついてるのかな。国語のにがて意識とリンクしたりもしているよう。  できた文は、表外の訓よみだらけで、達意の文として破綻していたりする。いまのIMEは、これをとめられない。」 / Twitter

ひらがな IME

Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME for IBus v0.13.0」をリリースしました。周辺テキストに対応していないアプリケーションでは、よみ入力モードを有効にして日本語を入力できるようになりました。Chromiumウェブブラウザなどでも、「ひらがなIME」をつかって日本語を入力できるようになります。 https://t.co/0pQ9jQwuaY」 / Twitter
Release ibus-hiragana-0.13.0 · esrille/ibus-hiragana
Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」、v0.12のつぎはv1.0といっていたのですが、v0.13のつぎに変更しています。「モードレス入力」から「よみ入力モード」に自動でフォールバックする機能の微調整がまだすこしあるかな、というところです。」 / Twitter

Mozc

Re: [opensuse-ja] 辞書の話
Wonderlands in Usagi's brain: mozcユーザー辞書エディターとか作ってデータ構造とアルゴリズムをがさごそっと勉強しようか
Mozcソースコード徹底解説 #TokyoTextMining
Mozc - ArchWiki
google/mozc
mozcをコンパイルしてインストールする(Linux) - Qiita
Google 日本語入力 - Wikipedia
2012年他にやったこと - Mozc 編 - NyaRuRuが地球にいたころ
2014 年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2013年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
エヌユルさんはTwitterを使っています 「@d_toybox ローマ字テーブルをカスタマイズできるのがmozc系だけなので逃れられなくなりました」 / Twitter

Google

もしかして

スペル修正プログラムはどう書くか
日本語「もしかして」検索について - 株式会社ロンウイット
日本語「もしかして」検索について - 株式会社ロンウイット
Apache Solr でサジェストを実現してみる、その2 - Qiita
「Google サジェスト」が正式サービス開始、「もしかして?」を検索窓に表示 | 日経 xTECH(クロステック)
Google、「もしかして」修正検索の新しい機能 | 海外SEO情報ブログ

グライド入力

渋川よしきさんのツイート: "グライド入力、めちゃ便利。英語入力めちゃくちゃ早くなった。欧米人がIMEを知らなくて云々というのは過去の話になりそう。グライド入力とか音声入力を実現するには必要だし、事例として理解してもらいやすくなりそう。"
渋川よしきさんのツイート: "AndroidのGoogle日本語入力内蔵英字キーボードにはグライド入力ないのね。Google中国語入力の方にはあるのに!まあ、システムキーボードのgboardの方を使えばよいのだけど。"
iOS版「Gboard」が日本語対応!賢いグライド入力も!
英文メール作成も楽ちんに。日本語対応した「Gboard」でキー入力を“同時翻訳” - ケータイ Watch
ASCII.jp:スマホの入力でも日本はガラパゴス、世界は《ひと筆書き》入力が主流だ|遠藤諭のプログラミング+日記
指をスライドして入力する - Nexus ヘルプ
Google日本語入力の後継アプリ「Gboard」のAndroid版が最新β版で日本語に対応 – ゼロから始めるスマートフォン
iPhoneのキーボード入力をカスタマイズしてちょいワザ覚えたら超快適になった - Engadget 日本版
Android★SQUARE:■Gboard - Google キーボード ~ 大幅な進化を遂げていた標準キーボード
Google日本語入力の後継キーボードアプリ「Gboard」のAndroid向けが最新β版で日本語に対応!導入方法や使い方を紹介 - ライブドアニュース
Gboard - Google キーボード - Google Play の Android アプリ
【Gboard】Google らしいスマホ向け文字入力ツールの初期設定、使い方を解説(iOS版)

Google

Google Japan Blog: Google 日本語入力の開発版をアップデートしました。(0.13.481.10x)
Google Japan Blog: Google 日本語入力チームからの新しいご提案
714668 - Duplicate normal character + Vietnamese character for Vietnamese input - chromium - Monorail
Backspace can not erase the last one character during Japanese IME conversion (macOS) · Issue #9173 · electron/electron
Google 日本語入力 - CGI API デベロッパーガイド
(99+)Google 日本語入力 ヘルプ フォーラム - Google プロダクト フォーラム
Google 日本語入力報告されている問題 - 日本語入力 ヘルプ
誤変換報告フォーム - 日本語入力 ヘルプ
[026460]通常使用する言語(日本語入力システム)を切り替える
「新しいキーボードをインストールします」と通知されますが何も変わっていない。これは何でしょうか&# - マイクロソフト コミュニティ

窓の杜

【レビュー】ここ100年間で公開されたアニメタイトルを網羅した「Google IME」向け辞書ファイル - 窓の杜
Google、スペルチェック機能を搭載した「Google 日本語入力」v0.13.521.0 - 窓の杜
Google製の日本語入力システム「Google 日本語入力」がついに正式版へ - 窓の杜
「Gboard」に漢字のよみがなを取得するAPI ~サードパーティーアプリに組み込み可能 - 窓の杜

本の虫

本の虫: Google日本語入力の技術講演会
本の虫: Google日本語入力の開発版が更新された

Twitter

なかのん&マジックさんのツイート: "Linux版ChromiumのIME周りのイベントの挙動が変なことになってるなーと思ったので、ソースコード確認してみたけど、やっぱりコメントから悲壮感漂ってくるな……ホンマに地獄。"
Desktop App Convater で変換した UWP アプリ対応の Google 日本語入力 2.23.3195.100 / 101 開発版リリース – What I Know ~ワッタイナ
まさみさんは語りたいさんのツイート: "なんかこれはgoogle日本語入力などでよく見られるような(笑)… "
高梨陣平さんのツイート: "NNのモデルは学習したデータを記憶してしまい、悪意あるユーザはデータを取り出すことが可能だとの研究結果。特にテキストデータの学習が危険でイメージやそれ以上のエントロピーが高いデータは難しいという。回避方法は重要データは学習させない、するなら差分プライバシアルゴリズムを使用すること… https://t.co/i2yOoswRt4"
Albert R. Antoscaさんのツイート: "Neural nets can "unintentionally memorize" private training data, leaving it vulnerable to hackers. "[We] don't really know why neural networks memorize these secrets right now" #neuralnets @TheRegister # https://t.co/JMSyq06F9P… https://t.co/2BxpcZlYCe"
Boffins baffled as AI training leaks secrets to canny thieves • The Register
[1802.08232] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets
Makoto Kato ︎︎さんのツイート: "Google日本語入力に関しては、エイプリルフールやる前に、プロダクトのバグを直して欲しいよね。。。"
Google Developers Japan: Gboard 物理手書きバージョンの舞台裏
なかのん&マジックさんのツイート: "Google日本語入力って、スクリーンのDPIが変更になると、移行、候補ウインドウ位置とかバグる?"
なかのん&マジックさんのツイート: "プロセスを殺してみたら正常な位置に表示されるようになったけど、その後再起動されていないのにそのまま動いてるのが気持ち悪いな……どういうことなの。"
Makoto Kato ︎︎さんのツイート: "Microsoft Japanese IMEも2017の時にいろいろあったのをサム古川さんがばらしちゃうし (まだ日本にチームあるけど)。。。"
Makoto Kato ︎︎さんのツイート: "なので、JustSystemに納税するようにしてます"
Makoto Kato ︎︎さんのツイート: "Google Japanese Inputの功罪は、IMEで稼ぐビジネスが難しくなったのと、その結果焼け野原になった後に彼らが(会社の方針かどうかは知らないけど)アップデートをしなくなったことですね。Netscape Navigatorでみんなが学んだビジネスのつぶしかたではある"
Makoto Kato ︎︎さんのツイート: "OSSなんてパッチ書いて問題点指摘するだけでもいいわけだし、自分の場合はどういう形であれバグが直ればいいだけなんで。 他人のパッチを自分が取り込む場合は、パッチを全く変えたとしてもその人の名前でできる限りlandするけどさ。ただ会社によってはできないからね"
Makoto Kato ︎︎さんのツイート: "そもそもChromiumのIMEコードってもう日本人やってないはずだし、Google Japanese Inputも(そのチームではもうない) 某氏がギョーム外の休日にやるかどうかだから、自分とかでパッチ書けばいいじゃんといつも思うんだけど。なんのためにmozcがOSSにしてあるのかと https://t.co/DyYnqFkJ0J"
Makoto Kato ︎︎さんのツイート: "AI SoftのWXビジネスだって、Microsoftに駆逐されたし (というかもともとのMicrosoft IMEはWXのソースコードライセンス版からスタートしてるが)、商用のサードパーティ製IMEはデスクトップじゃ難しいよな"
Makoto Kato ︎︎さんのツイート: "Chrome 75 for Windowsで入力周りの変な話が出てきたのは、75でTSFに移行したからか。Geckoの場合はさんざんサイクル回したけど、Chromeは一気にいったんだ。Microsoft社内でテストされてるんだとは思うけど"
SODA NoriyukiさんはTwitterを使っています 「Google IMEの z+一文字 って、たぶん Emacs Egg あたりが起源だから https://t.co/4gFIyrEzL5 の「『zX』が :-) に変換される?!」に記載されている奴はだいたいあるんじゃないかなあ。 ちゃんと確認したことないけど。」 / Twitter
Wnn Yogo Ver.2.0 (2005.4.18)
ひさてるさんさんはTwitterを使っています 「Google IME zh ← zj ↓ zk ↑ zl → ここまでは知ってたけど z- 〜 z[『 z] 』 z. … こんなのもあったのか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「OS作っているベンダーなら、なぜAndroid SにAPIを追加しなかったのかを問い詰めたいところですね https://t.co/cXxVx117KA」 / Twitter
Google Developers Japan: 日本語よみがなデータ取得を可能にする Gboard API のご紹介
Makoto Kato ︎︎さんはTwitterを使っています 「さて、イベントモデルどうするべ。inputType: insertFromDropは。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「たぶん新しいAPIがあるんだろうけど。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/90dAIyY4sU」 / Twitter
InputType to insert image from software keyboard · Issue #117 · w3c/input-events
しばいぬの太郎さんはTwitterを使っています 「Windows版のGoogle日本語入力、ローマ字入力でzの後でhjkl押すとvi的な方向で矢印が出るのね。」 / Twitter

ライティングが捗る!Google日本語入力の意外と知らない便利機能9選|ferret [フェレット]
Google日本語入力のショートカットを覚える - Milk+ea
Android用「Google日本語入力」がサポート終了。Gboardへの乗り換えで気になる点を解説 - PC Watch
Google検索では依然としてAIの分析よりも「メタデータ」が重視されている - GIGAZINE
won't fix: サードパーティ製IMEは、Web Browserのプライベート・シークレットウィンドウなんて考えてくれない

ATOK

blog

Macの日本語入力に「ATOK」を1年以上使い続けている理由 - Better Better Days
ATOK & やまぶきR による親指シフト - にせねこメモ
ATOK も統計的言語処理へ - NyaRuRuが地球にいたころ
Firefox Quantumが激重になる問題が発生中 - あれこれ備忘録@はてなブログ
3DMARK 11で透明な窓が出てきて起動しないのはATOKの設定が原因だった | Hinemosu
3DMarkが動作しない...原因はこれ?! | つれづれなるままにひぐらしすずりにむこて..
おりおんの戯言 - メインPC、ビデオカード換装。(2014/09)
ATOKの直前の入力を日本語にするをポップアップさせない方法 - プログラムdeタマゴ

PC Watch

ジャストシステム、新エンジンを搭載し誤変換が30%削減された「ATOK 2017」 ~10年ぶりの刷新でディープラーニングを駆使 - PC Watch
「まっくお」で「macOS High Sierra」に変換できるATOKの新IT辞書公開 - PC Watch
ジャストシステム、Windows 10プチフリ問題を解消したATOKアップデート - PC Watch
ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」 ~Android版も深層学習エンジンで予測変換性能が30%向上 - PC Watch
同音異義語に強くなった新ATOK。「ディープコアエンジン」が“2”へ - PC Watch

INTERNET Watch

「ATOK 2017」はディープラーニングで誤変換3割減、2月3日発売 -INTERNET Watch
「ATOK for Mac」の入力ミス修復率が35%向上、最新版をATOK Passportで公開 - INTERNET Watch

窓の杜

ディープラーニングを採用した新変換エンジン搭載の「ATOK 2017」が発表 - 窓の杜
ジャストシステム、次期「ATOK」を発表 ~ディープラーニング技術を活用して入力ミスを修正可能に - 窓の杜

Twitter

なかのん&マジックさんのツイート: "ちなみに、ATOK 2011以上はTSFのTIPになっているので、安定して動作します。ただし、Win10ではIME周りの変更がまた入ってるので、ATOK 2015以上にした方が良いです(2011も試した限りでは使えていますが)。"
なかのん&マジックさんのツイート: "@dalkyrie4g Win8以降でATOK 2010以前は64bit版アプリではまともに動作しないのを確認しました。Win7やx86版アプリでは問題無いのでWindows側の変更によるものだと思います。2011以降にアップグレードするか、Firefoxのx86版を再インストールするかですね。"
Rockridgeさんのツイート: "Fx57:アクセシビリティサービス(ATOKインサイトを含む)が有効の場合、一部のWebページでハング状態が発生する問題を修正。 / “1321960 - Browser becomes hangs up and Windows…” https://t.co/wLfSO2ubVT"
Piro/Linuxコマンド操作解説漫画連載中さんのツイート: "https://t.co/rGMU4O2FWW ATOKもAdobe製品もクラウド一本化、Google Homeを男声で喋らせるデモも後ろは当然クラウドで、スタンドアロンがあり得ない前提の「コンピュータは世界に5台だけで充分」な時代と感じるけど、ツールがオフラインで動かないっていうのは古い世代の自分には恐怖感や不快感がある"
ATOKの買い切り型とPassport版各種の違い - 俺の作業デスク
なかのん&マジックさんのツイート: "クラウドはこちらの都合よりもメーカー側の都合優先すぎて嫌だな。販売終了しても使える方法をちゃんと提供してくれるの?ってところが主に。"
一ノ瀬 いろはさんのツイート: "Adobe は用意してたりしますね。ライセンスサーバー止めるので認証不要版提供。… "
なつき@Webデザイン日曜開催さんのツイート: "ATOKは、クラウドに接続できないと変換一覧ポップアップの右端にアイコンが出ている候補が表示されなくなるはずです。 余談ですが、夕方からaiboのクラウドサーバが落ちたらしく、aiboが一歩も動かなくなってクラウドの重要性をかみしめています…… "
なかのん&マジックさんのツイート: "んんんんん? ATOK Passportって、古いATOK削除しないとインストールできない??? これはテストでむっちゃ困るんですけど。"
なかのん&マジックさんのツイート: "なんかよく分からんな。インストーラのメッセージがバグってるかも? 削除しますか的なメッセージで「はい」にしないと進まないんだけど、通常のインストーラが起動してから聞いてくるのに対しては単に拒否できて先へ進める。しかも最初に聞いてきたバージョンは再度聞かれなかった。"
なかのん&マジックさんのツイート: "いや、やっぱり、最初に聞かれて拒否できなかったATOK 2014だけ削除されてしまった。ATOKは後から古いバージョン入れられないから面倒だなぁってのと、そもそもPassportのインストーラが複数バージョンインストールしてる環境でテストしてなさそう?"
なかのん&マジックさんのツイート: "とりあえず、これ、Passportのインストーラに関しては嘘っぽいので、修正した方が良いのでは。Passportのインストーラの後に来る、ATOKそのものっぽい方のインストーラは、パッケージ版と同じく、共存の選択肢あるけど。 https://t.co/dQGTTqvwj1"
なかのん&マジックさんのツイート: "二つ以上のバージョンがインストールされていたら、最初に聞かれたバージョン以外は残せる模様。"
なかのん&マジックさんのツイート: "単純にPassportのインストーラのバグなんじゃないのかな。ちなみにmacOS版も全く同じUIから強制アンインストールさせられたけど、共存不可なのは https://t.co/dQGTTqvwj1 に明記されてるんで、macOS用のコードが、Windows版でもビルドされちゃってるとか?"
なかのん&マジックさんのツイート: "あれ? ATOK Passportだと、TIP名が"ATOK"になってて年号入って無いな。加えて、GUIDが{A38F2FD9-7199-45E1-841C-BE0313D8052F}だけど、これって今までのバージョンもこうだったんかな? もしそうなら、ATOK向けのGeckoのハックがまったく動いてなかったことになるけど。"
なかのん&マジックさんのツイート: "Win10のInsider Build入れてるノートPCの方にATOKをインストールしたら、インストール済みのバージョンのアンインストールを拒否できた。ただ、メインの環境で拒否できなかったのは複数バージョン入ってるうち、2014のみ。こちらの環境は2017のみが入ってたのと、インストーラ自体が別物かも?"
なかのん&マジックさんのツイート: "壊れて欲しく無いメイン環境の方から2014がアンインストールされてしまったのが本当に痛いなぁ。ATOKはより新しいバージョンが入っていると古いバージョンをインストールできないんで。"
Makoto Kato ︎︎さんのツイート: "Firefoxのa11yの問題はATOK使ってて痛いほどわかるんだけど、あれに首突っ込んだら身体が足りないのでやってない。。。でもデッドロックの問題はいろいろバグ報告したけど"
なかのん&マジックさんのツイート: "a11yが必要な理由がATOKのみだったら、a11y機能を無効化して欲しいぐらい。"
なかのん&マジックさんのツイート: "一太郎についてるATOKって"ATOK FOR 一太郎2018"とかになるのか。ということはこれ、毎年個別のGUIDが振られていく訳か。誰かに教えてもらうしかないかな。"
箱あんこうさんのツイート: "そういや、ATOK を入れた状態でネットが不安定なところで作業していると、サーバーと繋がらなかったよっていちいちダイアログ出してきて、しかも選択を間違えるとブラウザ開いてきたりするのが最高にウザったいのよね。 まぁ認証とか大切なのはわかるんだけど、正直つらい。"
なかのん&マジックさんのツイート: "おう……ATOK、PerMonitor DPIに対応してない?"
なかのん&マジックさんのツイート: "デバイス間での辞書の同期や、変換候補を広辞苑で確認したりできるの、ATOKしかないんで、値上がっても私的にはまだ全然OK。サービスが無くなった場合のデメリットがはるかに支出を上回るケース。 / 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER https://t.co/b3sifb793I"
月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER

ATOKとMicrosoft IMEのショートカットキー比較
Bug-org 1409155 ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment - WebStudio
「ATOK for iOS」「ATOK for Android(買い切り版)」がサポート終了へ - ねとらぼ
ついにiOS版ATOKキターーッ! 1500円でiOS 8以降対応 - ねとらぼ

Japanist

なかのん&マジックさんのツイート: "次の商品を購入しました:富士通ミドルウェア 『Japanist 10』 via @amazonJP https://t.co/xvgtMx0ae1"
なかのん&マジックさんのツイート: "来てみないと分からないけど、Japanist 10が出ると、親指シフトキーボードがある程度スマートに環境作れるようになるのでは?"
なかのん&マジックさんのツイート: "親指シフトは、キーの入力複数個をまとめて一文字の入力としてるけど、あれがレスポンスを悪くするし、OSネイティブで処理される必要が出てくるしで、技術的には筋が悪いよね……"
なかのん&マジックさんのツイート: "親指シフトキーボード(物理)を買ってあるけど、軽く1時間ほど練習して投げ出した。"
なかのん&マジックさんのツイート: "Japanist 10入れてみたけど、案の定なTS_E_NOLAYOUT対策入れてないなーという感じの動作だ。"
なかのん&マジックさんのツイート: "あと、アプリ上でJapanist 10の設定を開こうとすると、アプリがハングアップする(回復するパターンのほうが多いけど)。そして設定が開かない。スタートメニューから独立したアプリとして起動する分にはOK。"
なかのん&マジックさんのツイート: "Japanist 10のキーバインディングの変更で、他のIMEの基本的なバインディングがプリセットとして用意されていないのは、乗り換えさせる気ゼロって感じだなぁ。"
なかのん&マジックさんのツイート: "Japanist 10、一応確認したけど、TIP名は"Japanist 10"、GUIDは{E6D66705-1EDA-4373-8D01-1D0CB2D054C7}。縦書きにはちゃんと対応してる模様。"
なかのん&マジックさんのツイート: "とりあえず、Japanist 10がこのままではFirefoxで使い物にならないので、ハックを入れるバグは立てた。たぶん簡単に修正できる。 https://t.co/XvKWgzA1VD #もずでぶ"
なかのん&マジックさんのツイート: "よし、Japanist 10以外では目立ったTSFのバグはこれで一掃できたかな。"
なかのん&マジックさんのツイート: "Japanist 10のためにハック入れたパッチ、仕方なく、他のIMEでも通るパスを修正する必要があったので、少しリスクが高くなってて、BetaへのUpliftをリクエストすべきか悩んでる。"
なかのん&マジックさんのツイート: "まあ、Japanist 10ユーザからのバグ報告があったわけでもないんで、もういいかなって感じはしてるけど……"
なかのん&マジックさんのツイート: "実際のバグ報告が無いんで、GeckoのJapanist 10対応は、59にupliftせずに60 (次のESR)から。TSFのバグにJapanistが引っかかってるって話だし / https://t.co/XvKWgzA1VD - [TSF] Candidate window of Japanist 10 positioned incorrectly and flicked (not aware of TS_E_NOLAYOUT issue) #もずでぶ"

MS

MS

IME Share

IME Share (Windows)
続報: imeshare.dll —完結編— - イグトランスの頭の中
IMEのドキュメントURLメモ - イグトランスの頭の中
Mozilla for Windows x64 platform: How to get IME settings such as converted text color

知っておくと便利な機能

日本語入力(IME) の知っておくと便利な機能(1) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(2) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(3) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(4) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(5) | Windows Blog for Japan

Win10 AU, CU

Windows 10 Anniversary Update 日本語入力 (IME) 関連の改善 | Windows Blog for Japan
Windows 10 Creators Update 日本語入力 (IME) の改善 | Windows Blog for Japan

Win10 FCU

Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました – JAPAN Platform SDK(Windows SDK) Support Team Blog

IME ショートカット - マイクロソフト コミュニティ
Microsoft IME Application Interface
Third-party input method editors - Compatibility Cookbook
Input Method Manager (Windows)
Masaru Iritaniさんのツイート: "@yutakakn 横から失礼します、IME の開発者です。実は日本にも Windows の開発チームが有り、IME も日本語については日本のチーム (@msimejp) が担当しています。ローカライズに関しては、是非フィードバック Hub にてご意見をお寄せください。"
日本語入力(IME) の「クラウド候補」について | Windows Blog for Japan
Windows 10 における日本語入力の変換精度向上への取り組み | Windows Blog for Japan
Windows 10 Insider Preview ビルド 14986でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 15002 でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 16226 でお試しいただける日本語入力の改善点 - Windows Blog for JapanWindows Blog for Japan
Windows_Japanさんのツイート: "最新 #WindowsInsiders ビルドの日本語入力では、入力そのままの予測候補とスペル修正された予測候補がすぐ区別できます。クエストをお試しいただき、フィードバックをお寄せください。 https://t.co/PC41BQBF0V https://t.co/WSkxL9fF4q"
Windows 10 Insider Preview ビルド 17035 でお試しいただける日本語入力の改善点。女子高生 AI「りんな」による予測候補を追加 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 17063 でお試しいただける日本語関連の改善点について - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルドでお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18262 の日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18277 でお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18875 でお試しいただける日本語入力に関する改善点 - Windows Blog for Japan
【Chrome+MS-IME】変換確定(Enter)で入力中だった文字が消える不具合について(BackSpace→Enterで消える現象)
Windows 10 における日本語入力の改善の取り組み  - Windows Blog for Japan
Windows 10 における日本語入力の改善の取り組み  - Windows Blog for Japan
キーボード日本-ImeOn/ImeOff の実装 | Microsoft Docs
Windows の固定キー機能 - マイクロソフト アクセシビリティ

TSF

MS

ITfInputScope interface (Windows)
Text Services Framework
Text Services Framework (Windows)
TSF Aware – Dictation, Windows Speech Recognition, and Text Services Framework.
IME (Input Method Editor) と Text Services Framework のアクセシビリティ
MSDN Magazine - July 2007 - Speak Up: Support Dictation with Text Services Framework
64-Bit Considerations (Windows)
Makoto Kato ︎︎さんはTwitterを使っています 「macOSのtext replacementの機能ってOS側から適当なタイミングで現在のテキスト情報をアプリにリクエストしてそれ使ってると思ってたのだけど、そうじゃなくて、いちいちアプリがspellchecker呼べってことなの?それって。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows/TSFのautocorrectってTSFが勝手にやってくれるので (現在のテキスト情報はアプリがTSFに渡しているので勝手にできる)、同じような仕組みでmacOSでもやってるかと思ってたよ。なんだそれ」 / Twitter

Mozilla

Firefoxのナイトリービルド、Text Service Framoeworkにデフォルト対応へ | スラド IT
Masaru Iritaniさんのツイート: "@d_toybox 詳細な情報をいただきありがとうございます!担当者にもお伝えしました。初期調査では TSF に原因が有りそうだという話ですが、いただいた情報も踏まえて引き続き調査を進めます。"
Bug-org 1204519 [TSF] Get rid of the hack for TS_E_NOLAYOUT issue with Google Japanese Input - WebStudio
Windows 版 Nightly が TSF ネイティブサポートへ | Mozilla Developer Street (modest)
Bug-org 848672 [TSF] Redesign focus and IME state handling of nsTextStore - WebStudio
なかのん&マジックさんのツイート: "台湾のIMEのバグ対応でTSFの泥沼にハマってる。TS_E_NOLAYOUTがらみのバグの根元を、いい加減にWindows側とMS製の各国語IMEで修正していただきたい。"
なかのん&マジックさんのツイート: "Google日本語入力がハマってるTSFのロック絡みのバグのために入れてるハックで、他の言語のMS-IMEの動作に合わせられなくなってるっぽくて(まだ完全に確信にいたった訳ではない)頭抱えてる。"
なかのん&マジックさんのツイート: "とりあえず、最近のTSF周りの修正で得られた知見は、なんでか、ネイティブの中国語環境と、日本語環境に中国語のTIPをインストールしたのとでは、動きが全く同じではないという嫌すぎる事だ。"
WindowsのIME API、TSFのTS_E_NOLAYOUT問題とは - WebStudio
Masaru Iritaniさんのツイート: "ご指摘いただきありがとうございます。#WindowsInsiders Skip Ahead (RS5) ビルド 17643 以降では、GetTextExt() が TS_E_NOLAYOUT と E_INVALIDPOS を正しく返すようになりました。ご確認いただけましたら幸いです。… https://t.co/lV94WtXpid"
なかのん&マジックさんのツイート: "おおおおおおおお。ありがとうございます。IMEのデバッグの仕方が分からないので直接テストすることはできませんが、こちらのハックを無効化して、各IMEの挙動がどのようになるのか、テストしてみます。… "
Masaru Iritaniさんのツイート: "ありがとうございます。お恥ずかしながら私個人もまだコード上でしか修正を確認できていないので、実際の挙動として正しい修正になっていない場合はお知らせいただけますと大変助かります。… "
なかのん&マジックさんのツイート: "むむむ。"Skip Ahead is now closed. If you select this option going forward, you will have your Windows Insider Program settings reverted." になっちゃってて、Skip Aheadを選択できなくなっていますね。そのままFastリングに来るのかもしれませんが。… https://t.co/Cbjf3f6iRK"
Masaru Iritaniさんのツイート: "Skip Ahead は人数限定の早い者勝ちですので、早期に設定を変更されていない場合には選べなくなっています。件の修正は Skip Ahead のみ提供(= RS4 には残念ながら入らない)ですので、大変恐れ入りますが Fast リング への RS5 提供開始までお待ちいただきますようお願いいたします。… https://t.co/n97cuIh4UL"
なかのん&マジックさんのツイート: "はい。VMの方をFastリングにして待機しています。また、結果の方をまとめたいと思いますのでお待ちください。… "
Masaru Iritaniさんのツイート: "ありがとうございます!ご面倒をお掛けしますが、宜しくお願いいたします。… "
なかのん&マジックさんのツイート: "大変遅くなりましたが、検証結果です。5時間ぐらいでテストからまとめまで行いましたので雑ではありますが、私の検証した範囲ではJapanist 10以外は非同期レイアウトに対応しているようです。 https://t.co/k9T5ylylTJ… "
Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた - WebStudio
なかのん&マジックさんのツイート: "Japanist 10、なんで最後発で一番デキがアレなんだろうっていう謎な結果になってしまった。 / もずはっく日記: Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた https://t.co/k9T5ylylTJ"
なかのん&マジックさんのツイート: "Windows自体がバグってる上に、Firefoxぐらいしか非同期レンダリングを行うTSF-awareアプリなんて無いと思うんだけど、なんで各IMEベンダ、非同期でのUIの表示にこうも安定感のある実装できてるんだ??"
なかのん&マジックさんのツイート: "正直、もっとボロボロな結果になると思ってた。"
Masaru Iritaniさんのツイート: "詳細な検証をしていただきありがとうございます!修正が Firefox でも問題無く動作しているようで嬉しいです。Microsoft IME の挙動については担当者に報告いたしました。… "
なかのん&マジックさんのツイート: "macOSのIME周りはundocumentedな事だらけだったり、バグ報告せざるを得ないものを見つけたりと、なかなかにアレでできるだけ関わりたくないな……"
なかのん&マジックさんのツイート: "同じAppleのIMEがWebKitとBlinkで別の挙動を見せてくれたりしてて、本当に嫌過ぎて。"
なかのん&マジックさんのツイート: "TSFとCocoaは、IMEからアプリに情報を問い合わせて、アプリからの結果でIME側が動作を決定するモデルになってるけど、このモデルってIME側にバグがあったり、IME側がアプリ毎に動作を変えてるとアプリ側でバグの修正に詰むんで、これから新しいプラットフォームでは絶対に採用していただきたくない。"
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ChromeのTSFの実装見てると、そのインタフェースならシンプルにやれるんかい、みたいなのを見つけて、うぐぐってなったわ。別にパフォーマンスとかに影響しないから、互換性のためにこのままいくけど(IME側でハックされてたりすると壊れる系)。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「日本でアプリ側のTSF対応に関わった人は何人居てるんだろうか。ふと、疑問に。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「絶対、三桁はいかない気がする。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GeckoのOSKのコードが最新のWindowsで全く意味のないコードになってたことをやっと理解した。OSK表示するかどうかはTSFで判断してるのか (無効にするフラグはドキュメントにないけど存在する)」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「従来のOSKをキックするコードは全く動かなくて、UWPのAPIを使わないといけないっぽい。実装してみないとわからないが」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windowsのinputmodeの実装、noneは後回しにして、ほかのを直そう」 / Twitter

Text Services Framework - Wikipedia
Text Services Framework - Wikipedia
Project Zero: Down the Rabbit-Hole...
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「これ要するにMSCTFのプロトコルが腐ってる問題っぽいので問題の影響範囲が大きすぎてすぐには解決しないんじゃないかな… / “XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch” https://t.co/d46WZ3LzqH」 / Twitter
XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch
TSF を使う (2) - tsfapp - NyaRuRuが地球にいたころ
TSF を使う (3) - WPF での UILess Mode - NyaRuRuが地球にいたころ
IMEを使う(Windows: TSF編) - Qiita
TSFに挑戦 - イグトランスの頭の中
TSFに挑戦 (2) 表示属性 - イグトランスの頭の中
kaya: IME開発者向けリンク集
■とある言語の開発記録II / TSFで日本語変換
TSF を使う (1) - Windows Input Method の歴史 -... : Windows 8とWindows 8.1 互換性情報 リンクまとめ - NAVER まとめ
TSF を使う (1) - Windows Input Method の歴史 - NyaRuRuが地球にいたころ
はてなブックマーク - imeとtsfに関するkaorunのブックマーク
Q's Nicolatter 8 [BETA TESTING] | Netsphere Laboratories
藤枝和宏 - ぱんなこった@佐鎮(@kfujieda) - Twilog
C++ - TSFを利用して候補文字一覧を取得する | DIGI-CON 技術部
ui/base/ime/win/tsf_text_store.h - chromium/src - Git at Google
chromium/ime_input.h at master · adobe/chromium
Makoto Kato ︎︎さんのツイート: "MicrosoftがChromiumに移行したおかげで、まぁこのバグを直す方法が公開されたのは、いいこと (前だと上手く行かなかったけど、たぶんWindows側のコードの修正もいろいろ行われているんだろうなと) https://t.co/HbCWlWYSCH"
958054 - TSF1 on windows 10 should use private input scope if we are in "incognito" or "guest" mode - chromium - Monorail
Makoto Kato ︎︎さんはTwitterを使っています: 「ChromeのTSF周りのバグはGoogleのせいじゃなくて、Microsoftせいだしな。ChromeにTSF関連のパッチを投げたのがMicrosoftという意味で」 / Twitter

ショートカット

Windowsのショートカットキー: IMEのショートカット
言語バーのショートカットキー | IME2003 | 初心者のためのOffice講座
Microsoft IMEのショートカットをカスタマイズ | ものものモノローグ★ - 楽天ブログ
MS-IMEの入力モードをキーボードだけで操作したい - MS-IMEの入力モードをキー... - Yahoo!知恵袋
IMEショートカットメニューを表示するショートカットキー−Ctrl+変換キー:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft IME スタンダートのキーボードショートカットキー設定 | WEBサービス創造記
Windows で IME をキーボードショートカットキーで切り替えられないとき | すぐに忘れる脳みそのためのメモ
日本語入力変更のショートカットキー−Ctrl+Shift:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
ショートカットキーの活用|情報システム課| 東京経済大学
日本語入力ソフトの切り替えをショートカット操作で行う - 日経トレンディネット
キーボードから操作するショートカットキー
[Windows 10] USキーボードで日本語IMの全角と半角を切り替えるショートカット一覧 - Qiita
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - いまさら聞けないWindows 10のTips - 窓の杜
なかのん&マジックさんのツイート: "Winキー + / で再変換とかわしゃ知らんかったぞ!"
なかのん&マジックさんのツイート: "Winキー + iで設定なのか。"
なかのん&マジックさんのツイート: "PrintScreen系の一覧を確認したかったけど、思わず色々と覚えた(そして、PrintScreen系のショートカットキー一覧が見つからない)"
Windows10で日本語入力の切り替えストレスが減る設定方法 | ライフハッカー[日本版]

窓の杜

次期Windows 10は日本語に関連する変更も盛りだくさん 〜「Insider Preview」Build 17063 - 窓の杜
IMEで変換できない漢字は単語登録を! [Ctrl]+[F7]のショートカットでも登録可能 - いまさら聞けないWindows 10のTips - 窓の杜
IMEで間違って登録された単語が毎回変換候補に表示される! どうやって修正すればいい? - いまさら聞けないWindows 10のTips - 窓の杜
IMEで( ´艸`)こんな顔文字を入力したい - いまさら聞けないWindows 10のTips - 窓の杜
IMEの変換モード切り替えで画面中央に“あ”とか“A”とか表示されるのが邪魔! - いまさら聞けないWindows 10のTips - 窓の杜
「Windows 10 Creators Update」では日本語入力も改善 ~Microsoftが強化点を案内 - 窓の杜
1文字目は早すぎる! IMEの予測候補は3文字目くらいからでOK - いまさら聞けないWindows 10のTips - 窓の杜
英語の会社名や製品名をIMEで自動的に半角英数へ変換したい! ~小文字から始まる英字をすばやく入力する方法 - いまさら聞けないWindows 10のTips - 窓の杜
文字入力のユーザー辞書をバックアップしておきたい! - いまさら聞けないWindows 10のTips - 窓の杜
辞書にない最新フレーズを入力したい! クラウド候補を活用する - いまさら聞けないWindows 10のTips - 窓の杜
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - 窓の杜
なかのん&マジックさんのツイート: "FirefoxやThunderbird共に一時期のトップクラッシュはこの辺だったし、なかなかに設計に問題抱えてる感じなんかな。 https://t.co/pg0iAQRrts"
Windows 10環境で日本語入力中に「Microsoft Office」がクラッシュする不具合 - 窓の杜
「Windows 10 RS5」に機械学習のタイピング支援、フォントのユーザーインストールも可能に - 窓の杜
「Windows 10 19H1」Build 18242がリリース ~日本語IMEに新しい要素を投入か - 窓の杜
「Windows 10 19H1」では日本語入力システムの改善も - 窓の杜
“(╯°□°)╯(┻┻”も簡単に入力 ~「Windows 10 19H1」の絵文字パネルは日本の“Kaomoji”をサポート - 窓の杜
新しいIMEがフィードバックを反映させて復活 ~「Windows 10 19H1」Build 18305 - 窓の杜
新設計の日本語IMEが利用可能に ~「Windows 10 20H1」Build 18875が“Fast”リングに - 窓の杜
「Windows 10 20H1」Build 18941が“Fast”リングに ~日中に続き韓国語IMEも近代化 - 窓の杜
新設計の日本語IMEをさらに改善 ~「Windows 10 20H1」Build 18950が“Fast”リングに - 窓の杜
Windows 10の日本語IMEに大きな改善が目白押し ~Macっぽい入力モードの切り替えも可能に - 窓の杜

PC Watch

Windows 10プレビュー版IMEが改良。Backspaceの使い方で予測変換がより賢く ~変換状態からのキーワードWeb検索もサポート - PC Watch
Windows 10プレビュー版は日本語フリック入力対応。さらにAIがネコを認識 - PC Watch
次期Windows 10に女子高生AI「りんな」がIMEとして実装 - PC Watch
Windows 10 RS5、ソフトウェアキーボードがAIで賢く。スペル修正や予測入力可能に - PC Watch
次期Windows 10で日本語IMEが刷新へ - PC Watch
Windows 10プレビュー版、タッチキーボードにキー幅の自動調整機能 ~次に押されるキーを推測して入力ミスを軽減 - PC Watch
【山田祥平のRe:config.sys】Ctrl+スペースで行こう - PC Watch
Windows 10プレビュー版に新しい日本語IME。安定性やゲーム互換性などが向上 - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows 10プレビュー版、日本語IMEのキー割り当てが「設定」画面で可能に - PC Watch
変換/無変換キーが消えた「Surface Laptop Go」。Mac仕様のIMEオン/オフで便利に ~日本マイクロソフトが13日発売のSurface Pro Xとともに特色を紹介 - PC Watch
Windows 10 October 2020 Updateでも日本語IME周りの不具合が継続? Microsoftが回避策を提示 - PC Watch
入谷 優さんはTwitterを使っています 「以前 Windows Blog for Japan で公開した記事に対するご意見を受けて、#WindowsInsiders 向け最新ビルドでは TabletInputService が TextInputManagementService に改名されました。これでサービス停止による諸問題が無くなることを願っています。 https://t.co/VNRaEEwqEd」 / Twitter
Windows 11 Insider Preview Build 22471公開。日本語タッチキーボード修正など - PC Watch

NyaRuRuが地球にいたころ

Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ
信頼できる書き込み・読み込み - NyaRuRuが地球にいたころ
HTML5 Forms の type 指定がデスクトップ IMEに影響するという話 - NyaRuRuが地球にいたころ
Windows 10 Insider Preview Build 14332 実験ノート: ブラウザと IME のプライベートモード連携 - NyaRuRuが地球にいたころ
Metro スタイルアプリケーションと IME - NyaRuRuが地球にいたころ
保護モードと IME - NyaRuRuが地球にいたころ
あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
数式入力パネルとアプリケーションを連携させる 2 つの方法 - NyaRuRuが地球にいたころ
チューニングと過学習 - NyaRuRuが地球にいたころ
「開発の主体」って何だろう? - NyaRuRuが地球にいたころ
2012年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (0) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (1) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (2) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (3) - NyaRuRuが地球にいたころ
Windows Vista における IMM32 API / Message の変更と互換性に関する影響 - NyaRuRuが地球にいたころ
Windows Vista IMM32 関係まとめ - NyaRuRuが地球にいたころ

Twitter

Yutaka Hirataさんのツイート: "日本語入力をオンにした状態でスペースキーを打つと、空白が全角で入りますが、SHIFTキーを押しながらスペースキーを打つと、空白が半角になります。いちいち、日本語入力をオフにしなくてもよいのでおすすめです。ATOKとMicrosoft IMEのいずれでも使える技です。 https://t.co/F89tt5gtOC"
takimuraさんのツイート: "IMEが原因でVivaldi落ちたっぽい… "
なかのん&マジックさんのツイート: "WindowsではIMEはアプリ内部にロードされて動くんで、IMEがクラッシュした場合も苦情がアプリに行くの、結構不条理。"
なかのん&マジックさんのツイート: "昔、OS XでIMEの機能を呼び出して、そのリアクション中に同じ機能を呼び出すとIMEのプロセスがクラッシュするというバグを見つけたけど、そうするとOSを再起動するまでIMEがどのアプリでも使えなくなってた。そういう意味ではWindowsのやり方の方が正しいって気もする。"
なかのん&マジックさんのツイート: "@inasoft_ayacy バグの内容的にも、タイミング的にも、 https://t.co/4Po30xSJhp っぽいです。Creators UpdateのMS-IMEにはちょっとヤバいクラッシュバグがあったので、その可能性を減らせないか試すために、MS-IMEがアクティブな間はIMCを無効化していました"
なかのん&マジックさんのツイート: "むう。Win10 RS4に入る英語キーボードの単語のsuggest機能、Firefoxだと、候補の表示と操作まではうまくいくんだけど、最後の確定時にキャレット位置に挿入されるだけになっちゃうな。 #もずでぶ"
なかのん&マジックさんのツイート: "Windowsをタブレットモードで初めて使ってるけど、日本語入力ひどいな。何でローマ字入力なの。ローマ字入力とかかな入力とか気にしなくて良いはずのデバイスなのに。"
なかのん&マジックさんのツイート: "いやATOKじゃなくてMS-IMEなら多少ましか。でも、正直使えるレベルじゃないな。"
✨私がういにゃんだ✨さんのツイート: "DJやすんでる間にTraktorが日本語検索できるようになってた・・・・・・・・・・・・・! 2.6.7 -> 2.11.2をキメた… "
なかのん&マジックさんのツイート: "macOS版とWindows版とあるみたいだから、macOS版の話なのかな。Windowsって、基本的にはIMEに「わざわざ」対応しなくても、IMEが「とりあえず」使えるアプリが作れてしまうっていうのが未だに他のOSにも真似できていなくて凄い。というか、あんな互換性の鬼、そうはいない。"
なかのん&マジックさんのツイート: "Nightlyユーザでも結構、ATOK 2011とか、MS Office IME 2007とか相当古いサードパーティーのIMEを使ってるもんなんだなぁ。あと思ってたよりもMS-IMEユーザが多い。"
なかのん&マジックさんのツイート: "Windows 10 October 2018 Updateで修正されたTS_E_NOLAYOUT周りの最終確認と、Nightlyの現状への最適化もやらないといけなんだけど時間が……"
Masaru Iritaniさんのツイート: "これ、新しい #msimejp で一番お気に入りの機能です。これまでもキー設定を頑張れば実現可能ではありましたが、スイッチ一つで簡単に設定できるようになりました。 #WindowsInsiders… "
Masatoさんのツイート: "あれ、以前のIMEこんな設定項目あったっけ 使い心地を試してみよう (build 18277)… "
渋川よしきさんのツイート: "うおーーーー!IME周りの実践的なコードが読み放題だ!WinFormsのOSS最高!MSDNでもVista時代に作られたサンプルとか削除されて古い形式のAPIしかネットに詳しい情報がなかったりしたのでこれは良い。 https://t.co/Y0ByT6KH4n"
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "WinFormsのソースなんてreference sourceで前から読み放題だったのだが… https://t.co/3xwjodWZLv"
Reference Source
2018年12月5日 Microsoft,「Windows Forms」などのUIフレームワークをオープンソースに,「.NET Core 3.0」プレビュー版も:Linux Daily Topics|gihyo.jp … 技術評論社
米Microsoft、WPFおよびWinForms、WinUIをオープンソース化 | OSDN Magazine
なかのん&マジックさんのツイート: "@msdmairitan お久しぶりです。検証のために今環境を整えている最中ですが、TSF and/or MS-IMEの動作が変わってしまっているようです (https://t.co/quWVy94EZa)。ITfKeystrokeMgr::KeyDown()がasync処理になったか、pfEatenがFALSEを返すようになったかのどちらかかなと睨んでます。とりいそぎ。"
なかのん&マジックさんのツイート: "分かりました。値がおかしくなるの自体はGeckoのバグなのですが、動作が変わってしまった原因はImmGetVirtualKey()の挙動が変わっているようです。1809ではTSF/TIPがRequestLock()を呼び出している間はVK_PROCESSを返しますが、19H1では生のVKを返してくるようです。意図的な変更でなければご注意を。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のForegroundAppのIME on/offを知るには、GlobalHook + IMM系API発行しかないのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系だとIM系のツールバーがカーソルそばにあるから、現在のIME status 把握のために、タスク通知領域を見る、みたいな視線移動が不要と。"
なかのん&マジックさんのツイート: "あー、MS-IMEのInputScopeのアレか。"
江永島子さんのツイート: "やっぱchromeで新しいタブ開いて検索窓に入力しようとすると 勝手に半角になってしまう。 前はこうじゃなかったような。"
yasu0796さんのツイート: "Chrome 75 において手元の環境でも再現することを確認しました。 私の方からも不具合を報告しました。 #gHelp… "
マイクロソフトサポートさんはTwitterを使っています: 「#Windows10 の MicrosoftIMEで誤った変換をしてしまい、予測候補に毎回出てくるようになってしまった...。 そんな時は変換候補画面で消したい候補を選びCtrl+Deleteキーを押せば削除できます。 #MSHelpsJP https://t.co/zil7INxmsH」 / Twitter
島鉄雄さんはTwitterを使っています: 「なんと!これは助かる! &gt; できたこと &gt; WM_IME_ 及びその他のウィンドウメッセージを収奪 これが出来るのか…後でソースを解析しよう。」 / Twitter
(1) 精廬 幹人さんはTwitterを使っています: 「WindowsのEmacsにIME patchを当てるのが超面倒臭くてdynamic moduleで作った後、26.1のcc-modeが激遅で27.0.50に上げて10ヶ月masterに追従させたセルフテストでノーSEGVでした事をご報告します。 https://t.co/e1UjycJEAB」 / Twitter
maildrop/w32-imeadv: IMM32 dynamic module for Emacs on Windows
精廬 幹人さんはTwitterを使っています: 「毎回パッチのコンフリクト解決するの嫌なの なお、dllの暗黙的依存関係の解決も超めんどくさかったのでスクリプトもございます。 https://t.co/j9YVaip1gH」 / Twitter
maildrop/emacs_dependency_resolver: emacs dependency resolver
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 10 21H2のソフトウェアキーボード、Android 10以降と同じように画像ファイルを入力できる機能が付いてるんだけど、drag&amp;dropぽい動きで挿入されるからEdgeだとページ推移になって笑った」 / Twitter

文字入力で「イラっ」とする6つの問題とその解消法(1/2) - FMVサポート : 富士通
「ローマ字入力」と「かな入力」を切り替える|パソコン|サポート・お問い合わせ:シャープ
日本語入力のOn/Off切り替えキーを変更する:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft Windows 7 - 入力言語の切り替えを行うキーを変更する方法 | HP®カスタマーサポート
日本語入力の切り替えはトグルじゃダメ、の件 - DTP Transit
ASCII.jp:Windows 10の日本語入力は使いにくい?|ズバッと解決! Windows 10探偵団
IMEを無効にすることとスクリーンキーボード - イグトランスの頭の中
MS-IMEとHTML5のinput[type=xxx] - Qiita
Gecko1.8相当製品において修正したバグ - WebStudio
IMEを制御する方法
IMEがおばかと諦めてませんか? - Windows 2000 Blog
Windows 10のIME、郵便番号辞書の更新はどうなっている?:山市良のうぃんどうず日記(142) - @IT
[半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS
なかのん&マジックさんのツイート: "トグル形式って頭の中で全ての状態を管理できていることが前提になるんで、ime-mode: active;とかで簡単に問題が出てくるんだよな。なので、どっちかのモードへの切り替えボタンが独立して存在するのがUI的にはすごく正しい。"
なかのん&マジックさんのツイート: "半角/全角キーとか、カタカナ/ひらがなキーとか、Windowsネイティブイベントのカオスっぷりを知っていると、この辺どうにか綺麗になっていただきたい(たぶん互換性維持のためにしないとは思うけど)。"
なかのん&マジックさんのツイート: "一応、各OSでのIME関連キーのKeyboardEvent.keyのマッピングはこんな感じ。ややこしいことこの上ない。 https://t.co/B3MWD5BBxx #もずでぶ"
NativeKeyToDOMKeyName.h - mozsearch
なかのん&マジックさんのツイート: "そもそも今のJISキーボードの日本語入力キーって、一体何にあわせて設計された結果なんだろう。どの現在のIMEもラベルの通りの機能をデフォルト設定にはしていないよね。"
1549394 - Potential privacy leak from Win10 keyboard autocomplete of data entered in Private Browsing
Makoto Kato ︎︎さんはTwitterを使っています: 「GtkInputHintsとか見てもIMEで履歴を学習しないモードのための値がなさげなので、とりあえずリクエストした https://t.co/owjFCZmFzY」 / Twitter
RFC: Add new enum value for privte mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
Windows 10のアラビア語のキー配列 - 七誌の開発日記
won't fix: IS_PRIVATE on Windows 10 20H1
Windows 10 20H2にアップデートしたら、Microsoft IMEが消せなくなったので解決してみた | しょぼんブログ

増井俊之

略歴 / CV - 増井俊之
masui (Toshiyuki Masui)
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「なんでみんなIMEを自作しないの?」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「MacのIMEだってChromeOSのIMEだって500行ぐらいで作れるのに。ソースも辞書も公開してるから真似してほしい...」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「キーボードは自作するのにIMEは自作しないというのはヘンだろう」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私のGitHubにはソースがいろいろ置いてある。辞書はScrapboxで公開してる。 https://t.co/hiDUxbFd26」 / Twitter
Gictionary
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私が使ってるアルゴリズムはこういう感じ。何年もこれで生活してるし、このテキストもこれで書いている。 https://t.co/JVvFg37zx3」 / Twitter
接続辞書と日本語入力 - 増井俊之
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「何度も言うけど、普通のMacアプリケーションのinfo.plistを書き換えてMacのIMEにすることができる。ChromeOSの場合はChrome拡張機能でIMEを作ることができる。いずれにしてもとても簡単なので試してみて損は無い。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「昔はMacのIMEを作るのは超大変だったと思うのだけど、IMKitというライブラリが出てから簡単になって、それをRubyで使えるようになって超簡単になった。それをずっと使ってたのだけど、サポートが無くなったので困ってるのであった... RubyでなくてもIMKitが使えるスクリプト言語があればいいんだけど。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「Catalina時代のらくらくIME作成法、みたいなのがわかればそれで満足かも」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「もう一度言っておくと、MacでもChromeOSでも私は自作の500行IMEでずっと暮らしており、それで全然問題はありません。連文節変換なんて要らなかったんや!」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「変な挙動のIME増えると死ねる……特にCocoaとTSF。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Android APIは知らないけど、CocoaとTSFでは、アプリとIMEが共に、同じアプリ内の別のコンポーネント同士かのように動くので、どちらかが他の製品と極端に違った動作をすると、ハックを入れないといけなくなり、その原因を修正すると、そのハックが今度は邪魔になってバグったり。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「なのでAPIのドキュメントで非常に細かく「どうあるべきか」を定義しておいて欲しいんだけど、特にCocoaの方はその辺が全くドキュメント化されてないと良いレベルで。」 / Twitter
予測入力の弊害 - 増井俊之
曖昧検索asearch - 増井俊之

SKK

まちカドおるみんさんはTwitterを使っています 「形態素解析しないし辞書から愚直に単語を自分で選ぶだけだから変換精度などというものは SKK にないのでは。仮に悪かったとしたら辞書から適切な変換を選べなかった/あるいは適切な送り仮名挿入ができなかった入力者に帰結する問題ではなかろうか」 / Twitter
まちカドおるみんさんはTwitterを使っています 「私は「mozc で z と他のキーを複合させて記号を短縮入力できるのは SKK などに先にある機能だと知ってしまった?じゃあ SKK も使うしかないよね」という謎理論を真に受けて爾来 SKK ユーザーです。@tadsan って人のせいです。」 / Twitter
にゃんだーすわんさんはTwitterを使っています 「@atpons もともとはオムロンのWnnが由来でegg(tamago)経由でEmacsに入ってSKKに実装されてWindowsに持ち込まれたあとSKKIMEの作者がGoogle日本語入力に実装してmozcになったのではないかと臆測しています。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@atpons @tadsan Canna とかで .canna に Lisp 書いて同等機能を実現する例なども当時あったようなので、わりと当時良く知られていた key combo っぽそう」 / Twitter
スマートコンさんはTwitterを使っています 「z で記号変換できるのめっちゃ便利だし、変換しないひらがなはそのまんまダーっと入力できるので思考に近い速さで日本語が打てるので SKK 以外無理(漢字直接入力は帰って」 / Twitter
まちカドおるみんさんはTwitterを使っています 「あと再帰的かつ on-the-fly の辞書登録、/ 入力での abbrev 変換モードが楽すぎて好き。abbrev 変換で abbrev や英単語をカタカナ音写に変換する本来の用法より、アクセント記号やキリル文字、ギリシャ文字とかをラテン文字から変換するのに使うほうが多いけれど。」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi 現状のSKKからUIをおおきく変えない範囲でできそうな工夫を考えてみると「訪問先からの"きしゃ"」みたいなときに手前の文脈から"きしゃ"の変換候補の並び順を変えるとかはできるかもしれない」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@moriwaka 最近の SKK 実装だと豫測変換機能を入れ込んでたりもします」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi おお、そうなんですね!」 / Twitter
まちカドおるみんさんはTwitterを使っています 「original や DDSKK はほぼ使ったことがないのだけれど、skk.vim には何度か救われた」 / Twitter
高精度に漢字変換できるSKK辞書を作った(四角号碼、正假名) | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「SKKでギリシャ文字打つときは/alphaでTeXでギリシャ文字打つときは\alphaなのけっこう混乱するな」 / Twitter
k0kubunさんはTwitterを使っています 「@blackenedgold /alpha 初めて知った (ので混乱してなかった)」 / Twitter
κeenさんはTwitterを使っています 「@k0kubun κeenを入力するときに毎回必要になる」 / Twitter
yoh2さんはTwitterを使っています 「ところで SKK さえあればいい、ではなく数ある IME から SKK を選んだ、なんだよな。 ついでに言うと Linux デスクトップ環境では fcitx の SKK も ibus の SKK も手に馴染まず、uim の SKK がいい、となってる。」 / Twitter
yoh2さんはTwitterを使っています 「fcitk の SKK や ibus の SKK が馴染まないというより fcitk や ibus が馴染まない (´・_・`)」 / Twitter
κeenさんはTwitterを使っています 「ぎゃーぎゃー言ってないで読むか… https://t.co/RtmIJ0cXVy」 / Twitter
uim/uim: A multilingual input method framework

GIGAZINE

Googleの新たな自然言語処理モデル「ALBERT」はどのように進化したのか? - GIGAZINE
「AI関連ソフトウェアの輸出に制限をかける」とアメリカ政府が発表 - GIGAZINE
無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた - GIGAZINE
実際のところ「AIが表情から感情を読み取る」ことは可能なのか? - GIGAZINE
AIが人間の表情から感情を読み取る「感情検出技術」はなぜ危険視されているのか? - GIGAZINE
Googleの新たな自然言語処理AI「T5」の特徴とは?実際にAIとクイズで対決も可能 - GIGAZINE
ローマ教皇がMicrosoftやIBMと共同で発表した「AIの倫理に関する呼びかけ」とは? - GIGAZINE
「差別をAIに植え付ける」としてMIT研究者らが大規模なデータセットをネットから完全削除 - GIGAZINE
Googleが「知らない言語」も翻訳処理ができてしまう言語モデル「LaBSE」を発表 - GIGAZINE
ゲームパッドからのテキスト入力を最適化する手順をエンジニアが公開 - GIGAZINE
Microsoftの量子コンピューター構築のカギだった「マヨラナ粒子」を観測したという論文が撤回される - GIGAZINE
量子コンピューターに関する論文が続々と撤回されている理由を「マヨラナ粒子」の研究者が解説 - GIGAZINE
2000種類以上ものアフリカの諸言語を機械翻訳可能にするオープンソースプロジェクト「Masakhane」 - GIGAZINE
AIがリスクとコストを事前に考慮して強化学習を行うためのツール群「Safety Gym」をOpenAIが発表 - GIGAZINE

infoQ

Agile Igniteを使用した継続的ディープラーニング - Denis Magda氏の講演より
説明可能なAIに関する調査結果を研究者チームが発表

GitHub

hiroshi-manabe/ngram-converter-cpp: Kana-Kanji (and vice versa) converter using N-gram data (C++ version, dictionary data included)
tmu-nlp/simple-jppdb: A paraphrase database for Japanese text simplification
日本声優統計学会
libhangulに韓国の人名用漢字をほぼ全面追加 | yasuokaの日記 | スラド
choehwanjin/libhangul: libhangul
WorksApplications/Sudachi
zhezhaoa/ngram2vec
deton/tsf-tutcode: Kanji Direct IME for Windows
uim-tutcodeで後置型かな漢字変換(連続するひらがなを対象に最長一致)
Shiki Okasakaさんのツイート: "tsf-tutcodeをローマ字入力やかな入力用につかってみると、 ・ひらがなを直接入力できるというは能率がよい、 ・後置型変換で最長一致のときは、まぜがきではなくて、直前のひらがなの部分に限定したい、 ・従来のIMEから後置型変換への移行は別にむずかしくない、 といった感想。"
Shiki Okasakaさんのツイート: "tsf-tutcodeがおもしろいのは、 『しろうとむけワープロの登場を期待したいですね。』 と、梅棹さんのようにかきたいときに、ふつうのIMEだと、 『素人向けワープロの登場を期待したいですね。』 になりがち。それが、 https://t.co/nqprBgjY22"
不一致シーケンスが後置型変換開始キーで確定された時に変換対象外になるバグ修正 · deton/tsf-tutcode@32301e8
esrille/ibus-replace-with-kanji: Replace with Kanji Japanese input method for IBus
Shiki Okasakaさんのツイート: "EDICT2ファイルからibus-replace-with-kanji用のカタカナ辞書を生成して、ひらがなからカタカナ語に置換変換できるようにしました。 https://t.co/TB0Y23oQ5U"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiでは、辞書ツールもSKK辞書からrestrained.dicを生成するように書きなおしました。 https://t.co/PBA3Y1etnq"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiで和語の用言も必要であれば漢字で入力できるようにしました。※ 和語は「かな書き」を好む傾向とのことで、常用漢字表内でも弄ぶ・遡る等は「ひらがな優先」いうのが『NHK漢字表記辞典』流。 https://t.co/rmpclFO57r"
yoriyukiさんのツイート: "Pythonで書かれたオープンソースかな漢字変換エンジン「中山道」をリリースしました。普通に統計的言語モデルを使っています。ソースは辞書がついてこないので、バイナリをダウンロードしてください。 https://t.co/lAP330vJe2"
Release Version 0.1.0 (鴻巣) · yoriyuki/nksnd
Shiki OkasakaさんはTwitterを使っています: 「「ひらがなIME」のウェブページをつくりました。総ルビ。原稿は、「ひらがなIME」と「ふりがなパッド」をつかって、総ルビのマークダウンでかいています。それをPythonでHTMLにかきかえています。リポジトリには、原稿やスクリプトごとおいてあります。 https://t.co/Wbq8IlwloO」 / Twitter
はじめに ― ひらがなIME
Shiki OkasakaさんはTwitterを使っています: 「「ふりがなパッド」v0.1.0 をリリースしました。  Fedora、Ubuntu、Raspbian用のソフトウェア パッケージを用意しました。「日本語 漢字置換インプット メソッド for IBus」v0.6.0とくみあわせて利用してください。 https://t.co/NmPoD1HSY6 https://t.co/zeJFxBpbiA」 / Twitter
Release furiganapad-0.1.0 · esrille/furiganapad
Shiki OkasakaさんはTwitterを使っています: 「ふりがなをふった漢字のおわりまでカーソルを移動して、CTRL-Tをおすと、ひらがなにもどせます。そこで変換キーをおせば、またいつでも漢字に変換できます。」 / Twitter

Wikipedia

形態素解析 - Wikipedia
POBox - Wikipedia
日本語入力システム - Wikipedia
修飾キー - Wikipedia
フリック入力 - Wikipedia
トライ木 - Wikipedia
オンライン整数列大辞典 - Wikipedia
ロジバン - Wikipedia
Lojban - Wikipedia
湯桶読み - Wikipedia
重箱読み - Wikipedia
Control key - Wikipedia
コントロールキー - Wikipedia

Qiita

glfwマルチプラットフォームでのIME対応の困りごとまとめ - Qiita
マルチプラットフォームでIME対応させたいメモ - Qiita
ニューラルかな漢字変換 - Qiita
未踏の応募資料を公開します 【統計的かな漢字変換】 - Qiita
理工系俗語辞典 - Qiita
Windowsのvimで挿入モードのIMEをデフォルトオフにする - Qiita

Twitter

@d_toybox

金具 as a 産廃さんのツイート: "IME周りはどうやら闇が深すぎて、普通に対応するだけでアプリ側が細工しまくりなイメージがすっかり刷り込まれてしまったので、ユーザが別の細工を入れたらうまく動作する方がおかしいくらいかもしれないな。"
道化師さんのツイート: "Chrome だけ、 IME 絡みの細工がうまく動作しないからその対策してたら Chrome 本体の挙動がおかしくなった。 Chrome さん、 IME 周りのハンドリングがアホっぽい。"
一ノ瀬 いろはさんのツイート: "IME 周りってかなりの闇という印象。 IME 側もアプリ側も。"
なかのん&マジックさんのツイート: "だって、GeckoのIME周りの実装の面倒見て、10年以上給料貰えるぐらいですから。"
なかのん&マジックさんのツイート: "いぐざくとりぃ…… https://t.co/kkghv2DgrK"
金具 as a 産廃さんのツイート: "なんとなくTL眺めてる限りでは、それぞれの"失敗"に対してIME側がそれぞれ異なるアプローチで修正をしかけていて、それらに対して更に対応を強いられるようなことがあるらしいようなイメージがある。"
道化師さんのツイート: "IME周りって別にそんな闇々してないと思うんだけどなぁ。単に IME ?なにそれ?極東の連中はそんな面倒臭いモノ使ってテキスト入力してんの?って感じのIMEに対する理解が薄い連中が絡んで失敗やらかしてるだけなんじゃないの?"
なかのん&マジックさんのツイート: "それ、日本人がメンテしてても日本以外のIMEユーザにそう思われてると思うよ。"
⚓そうだな㌠⚓さんのツイート: "MS-IMEとATOK、GoogleIMEの各バージョン毎の動きの違いとか全然違ったりするからIMEは大変だと思う。(古いIMEだとTSFではなくIMMで実装されててWindows8.1以降Firefoxでクラッシュするとか)"
なかのん&マジックさんのツイート: "TSFになってから、一回、エラーを返すとヘソを曲げてTIP (IME)が動かなくなるとか多々あってですね。色々とやってるんですわ、色々と。"
なかのん&マジックさんのツイート: "読むとタノシイヨ? / TSFTextStore.cpp - mozsearch https://t.co/EEGhlUyv29"
なかのん&マジックさんのツイート: "この上にまだ、e10sでcontent process側での非同期更新をTSFTextStoreから隠蔽してるクラスが居たりするからね?"
なかのん&マジックさんのツイート: "ちなみに、こんだけ実装が大きくなってても、WinXPでは全然まともに動かなかったからね……"
なかのん&マジックさんのツイート: "特に、Natural Input、てめぇだ。"
なかのん&マジックさんのツイート: "@cobodo あ、そういえばここの、"However, this is fixed on Win 10."っての、当時のプレリリース版では修正されていたっぽいものの、現存しているはず。"

histric-1

なかのん DAYS''さんはTwitterを使っています: "ちなみに、GeckoはIMEからたとえ意図的にASCIIのコントロール文字が未確定文字列に混入してても、これを無視して(無いものとして)処理するようになっています。"
なかのん DAYS''さんはTwitterを使っています: "そもそもWindowsだとCtrl+AltはAltGrなのでショートカットキーとして使っちゃいけないんだけど……"
なかのん DAYS''さんはTwitterを使っています: "ハングルのキーボードだけは、さらにBackspaceの隣のキーを押させないと分からないけど、OS Xがハングルのキーボードをサポートしてるかは怪しい。Mac用のハングルキーボード探したけど、少なくとも当時は存在していないっぽかった。"
なかのん DAYS''さんはTwitterを使っています: "Mac OS XのApple純正キーボード以外を接続した時にShiftキーの横のキーを押せっていうダイアログ、上手いよね。KeyboardEvent.codeの仕様書見ると分かる。 https://t.co/kqtd8O8M4w"
なかのん DAYS''さんのツイート: "入力した文字数でしかサジェストしてこない予測変換はその価値を見いだせない……"
なかのん DAYS''さんのツイート: "OS Xの欧米のキーボードレイアウトでキー長押しにした時に出るアクセント記号付き文字の候補の入力、内部のイベントの生成が実にひどくて涙出る……こういうデザインがAppleは相変わらず下手だよなぁ……"
なかのん DAYS''さんのツイート: "他のOSならIME非対応アプリならIMEをそもそもオンにできなかったり、未確定文字が表示されなかったり、確定しても何も入力されなかったりするのが当たり前だけど、WindowsはIME側で未確定文字列表示したり、確定文字列をキーによる入力にまでフォールバックしてくれる。"
なかのん DAYS''さんのツイート: "Windowsのキー入力とIMMのイベントモデル考えた人、本当に凄いと思う。後からIMEに対応したんだと思うけど、キー入力イベントとの整合性や、それへのフォールバック、さらにIMEイベントの処理のしやすさと、これらのバランスが最高。"
なかのん DAYS''さんのツイート: "積極的に使ってなくても恩恵受けてる可能性はあるよ。ブラウザとか未確定文字列を自前描画するアプリはフォーカス移動で確定が普通だけど、これはIMEでテストでちゃんとテストされていないアプリで意図しない確定の原因担ってる。 https://t.co/oSbDYx3ZyK"
なかのん DAYS''さんのツイート: "ちなみに、3の時点でBackspaceキー使ってもOKで、コツをつかむと、かなり効率よく辞書登録できて、同じ単語の入力で何度も面倒な入力しなくて済む。"
なかのん DAYS''さんのツイート: "ATOKに、変換しようとしたけど辞書に無かったって事実を分からせる、最後の文字の確定をうまく知らせる、ここがポイント。難しそうに聞こえるけど、慣れると簡単にできたりする。よく使う当て字の登録とかに便利。"
なかのん DAYS''さんのツイート: "くそっ。右Altキーが無いからハングルのTIPでオン・オフ切り替えできないことに今頃気付いた。本当に右Altを削除するという判断した日本人は他言語の入力に対して無知すぎないか? キーボードという言語入力のためのハードの設計者なのに。"
なかのん DAYS''さんのツイート: "ちなみにTSF実装で、Korean TIPはMS謹製のものでも、かなり変な挙動してくれるので鬱陶しい。サードパーティー製のものはやはり、互換性のためにこれに合わせてるっぽくで地獄絵図。"
なかのん DAYS''さんのツイート: "ATOKさんには有名なヨーロッパ、南米のサッカー選手の名前ぐらいは辞書に入れてもらいたく……あまりにカタカナで書く外国人名に弱いのが難点。"
なかのん DAYS''さんはTwitterを使っています: "ちなみに、Geckoはかなり前から、キー操作にしろホイール操作にしろ、ページ単位でスクロールする場合には1ページ分より少しだけ少ない量しかスクロールしない。そうしないと特にリストボックスのようなUIでは分かり難いから。"
なかのん DAYS''さんのツイート: "未確定文字列を見られる可能性をどうしようってのがやっぱあって……あと、自動学習しちゃわないといけないんだけど、その辺も色々と…… https://t.co/NuACAoEAR5"
なかのん DAYS''さんのツイート: "テキスト入力の抽象化にはこの方が良いのは分かるんだけど、キーイベントの後に文字入力イベントが保証されてる訳じゃないんでこの辺がバグの温床になってるなぁ、昔から。"
なかのん DAYS''さんのツイート: "ChromeのKeyboardEvent.key、printableキーはそこそこ正しいんだけど、non-printableキーに関しては、ただのKeyboardEvent.codeと値が違うだけの挙動なんだよな。仮想キーコードからじゃなくて、scancodeからマッピングしてる"

histric-2

Rockridgeさんのツイート: "Fx52:Android版のIME処理をJava側と非同期化し、パフォーマンスを向上させつつマルチプロセス機能(e10s)との互換性も確保した。 / “1307816 – Make IME asynchronous on the…” https://t.co/Cua1Zwgp4b"
なかのんクエストさんのツイート: "Firefoxは2.0まで、IMEやキーボードレイアウトの状態制御が出来なかったんで、3.0から各プラットフォームのネイティブのパスワードフィールドの挙動に合わせる際に、入力不能なパスワード使ってたユーザへの配慮として、CSSのime-modeで挙動を戻せるようにしておいた。"
なかのんクエストさんのツイート: "macOSはASCII-Capableなキーボードレイアウトに絞るように開発者向けの資料で指示があるけど、逆に言うなら、ASCII-Capableなレイアウトで入力できる非ASCII文字は使える。ユーロ記号とか。"
なかのんクエストさんのツイート: "Windowsは確か、デッドキーは利用不能だけど、非IMEなキーボードレイアウトは利用可能。LinuxはテーブルベースのIMEは利用可能なので、デッドキーは利用可能。非IMEなレイアウトは何でもOKだけど、そもそも、アプリがそれを判断出来ない、指定出来ないぐらいのAPIだったり。"
Rockridgeさんのツイート: "Windows版Firefoxにおける、保護モードで動作するFlash PlayerのプロセスとIMEとの関係について。2013年7月の記事だが、その後Firefoxに加えられた修正を理解するための基礎知識を提供してくれる。 https://t.co/DEx4sWJG8a"
Flash PlayerのIME問題のおさらい - WebStudio
なかのんクエストさんのツイート: "最近、IMEにいい加減にどうにかしてって思うのは、(特に単漢変換の時に)候補を追加入力で絞り込めないことだな。例えば部首とかで絞り込めたら膨大な候補の大半を捨てられるのに。"
なかのんクエストさんのツイート: "自動学習がおかしな事にならないように、できるだけ本来の読みから文節区切って確定していきたい。"
なかのんクエストさんのツイート: "基本的にはどのIMEフレームワークもマルチプロセスなりマルチスレッドなりで、エディタに遅延書き込みが発生することが想定されていなかったりとかしたりするぐらいです(Androidは、 @NyaRuRu さんががんばって非同期なアプリでも大丈夫な形とか聞いたけどまだ見ていない)。"
なかのんクエストさんのツイート: "そろそろ標準仕様側で決着ついてる、IME利用時のKeybordEventの発火処理の標準仕様準拠化作業もやりたいな。あれは結局、Firefoxの挙動にメリットも多いけど、他のブラウザ間が互換あるんで影響のでかさからFirefox側の動作を変えてという話にorz"
なかのんクエストさんのツイート: "Firefoxの動作が、というより、Netscape時代からの動作なんだけどね。"
なかのんクエストさんのツイート: "内部処理は一年以上前から設計変更時に、あわせて準備してたんだけど、TSFモードが完全に非対応なんでその辺をガッツリ書かないといけない。"
なかのんクエストさんのツイート: "IMEの未確定文字列がある時にkeydownイベントやkeyupイベントを発火する最大のデメリットって、これらのイベントの本当の意味を理解していない開発者にアクセシブルじゃないサイトを作ることを許してしまうってところなんだよね。"
なかのんクエストさんのツイート: "keydownとkeyupイベントは仕様でも定義してるけど、物理的にキーが押された、もしくはそれがエミュレートされたというイベント。つまり、文字が入力されたというイベントじゃ*無い*。"
なかのんクエストさんのツイート: "なので、inputイベントの代わりにkeydownやkeyupイベントをハンドリングされていると、音声入力や手書き入力のようにキー入力と関係ない文字入力時に正しくハンドリングできず、マイナーな環境が切り捨てられる可能性が高くなる。こういうのを仕様レベルで回避したかったんだけどね。"
なかのんクエストさんのツイート: "もうひとつ、Firefoxだけ、文字入力しないキーでもkeypressが発火するという動作があるんだけど、こっちは発火しない方がmakes senseだと思うんで変更に賛成なんだけど、内部処理を先に書き換えないといけないところが多過ぎて踏み出せずにいる。"
なかのんクエストさんのツイート: "まあ、なんにしろ、互換問題がこの辺は昔から報告多いし、仕様も決着ついてるんでそのうちにどうにかする。"

histric-3

なかのん&マジックさんのツイート: "無事、57へのupliftが承認された。Google日本語入力とMS-IMEでURLバーにフォーカスあてるとIMEがオフになる(IMEが自動的にやってる)余計な機能、無効化されます。 https://t.co/Pi9ZGb3G89 #もずでぶ"
なかのん&マジックさんのツイート: "ただし、副作用として、これらのIMEが選択されている間、URLバーにフォーカスを与えても、タッチキーボードはURL用ではなく、通常用になります。他のIMEやキーボードレイアウトならURL用になります。 #もずでぶ"
なかのん&マジックさんのツイート: "MS-IMEの公式のフォーラムでもこの機能に不満持ってる人居たし、なんでGoogle日本語入力もそれを真似たのかまったくもって謎。ATOKは自動で余計なことをしてくれないので助かってる。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、前々からの問題だったなのに、なんでこのタイミングで強引に修正したのかというと、デフォルトのレイアウトでは、検索バーが消えて、URLバーから検索するようになったから。流石にこれでIMEをいちいちオフにされるのは迷惑なので説得しやすくなった。 #もずでぶ"
なかのん&マジックさんのツイート: "本当はIS_URLだけじゃなくIS_SEARCHもInputScopeに指定すればTSFのデザイン的には正しい。でもそうすると期待通りに動かないし、タッチキーボードも同様だったので、IS_DEFAULTを渡すようにした。なのでIMEからは特殊なものには見えなくなってる #もずでぶ"
なかのん&マジックさんのツイート: "@robert_KIMATA 全ブラウザ、検索兼URL入力の欄になってるので、そういうのをTSFが用意するか、MS-IMEとGoogle日本語入力が独自にやってることなんで、IS_URLとIS_SEARCHの同時指定でよろしくやるかのどっちかであるべきなんですよね。こちらとしては不本意な変更。 #もずでぶ"
なかのん&マジックさんのツイート: "IME内部でのクラッシュ(もっといえば、DLL内部でのクラッシュ)が、アプリのクラッシュに見えてしまうの、Windows上でアプリで商売やってる側としては迷惑なのでどうにかしてほしい……"
なかのん&マジックさんのツイート: "AltGr使うヨーロッパ言語ではAltGrキー押したときに発生するGDKのイベントがUnityの時だけバグってるんではよ消えて…… / Unityデスクトップの存続に向けて開発者やメンテナ募集が行われる | スラド Linux https://t.co/bex7I4R0Ce"
なかのん&マジックさんのツイート: "UWP関連の色々で、ここ最近のWindowsはIME周りのコードを書き換えている様なので、できるだけ最新のバージョンを使い続ける方が良いという、今までには無かったような状況に思えます。"
なかのん&マジックさんのツイート: "@inasoft_ayacy Firefoxは、UWPではありませんが、TSF-awareアプリです。about:configでintl.tsf.enableをfalseにして再起動すると、通常のアプリと同様のIMM APIを利用したハンドリングを強制できますが、その場合はどうなるでしょうか?"
なかのん&マジックさんのツイート: "そーいや、たまにパスワードに日本語も、みたいな話を見かけるんだけど、あれもいろいろと有るから、未だにASCII文字だけなんだと思うよ。まず、第一に、マルチデバイスな昨今、全ての環境でパスワード入力欄の仕様を同時に変更するのは難しい。"
なかのん&マジックさんのツイート: "第二に、未確定文字列等をショルダーハック(だっけ?)される心配をどうするのか。第三に、コンピュータに詳しくないユーザがうまく入力できるのかという、サポートのコストに対する懸念がある。最後に、IMEがパスワードを学習してしまう問題がある。"
なかのん&マジックさんのツイート: "実際に、最後の問題は深刻で、Androidでたまに、パスワード入力欄を独自実装してるのか、IMEが使えるアプリがある。この時、パスワードがIMEに学習されてしまい、変換候補に表示されるという糞な体験をしてる。"
なかのん&マジックさんのツイート: "USB HIDで定義されてる全キー入りのキーボード欲しい。"
なかのん&マジックさんのツイート: "世界のキーボードを知ってから、MacにApple純正じゃないキーボードを刺したときに、左右のShiftキーの横のキーを押さされる意味が分かった。あそこにある特殊キーだけでレイアウトが分かっちゃうのね。"
なかのん&マジックさんのツイート: "まあでも、物理レイアウトを意識するmacOSはクソだと思いますけどね。"
なかのん&マジックさんのツイート: "OSは論理レイアウトだけ意識すれば良いと思うんだけど、macOSは物理キーボードタイプを文字とのマッピングに使うせいで、JISキーボードでUSレイアウト(Dvorak含む)を使えない。そのくせ、APIというか、ネイティブイベントでは仮想キーコードしか取得出来ないというのが意味不明… https://t.co/A2bfORKmc3"
なかのん&マジックさんのツイート: "TSFについてググると、自分の出した情報か、NyaRuRuさんの情報に行き着くだけというオチ……"

histric-4

なかのん&マジックさんのツイート: "MSのIME、軒並み、TS_E_NOLAYOUT問題を一杯抱えてるみたいなので、本当にTIP側でどうにかして欲しいんですが……"
なかのん&マジックさんのツイート: "Firefoxでkeydown/keyupが発火されないのは現在のUI Events上はバグなんだけど、"input"イベントを捕まえずにどうにかしようとしている時点で入力イベントを理解できていない(UI Eventsの仕様案を読んでいない)な、この人。 https://t.co/F41MKDw4X2"
inputの入力値の制御でIME入力とかいろいろ辛かった話 - Qiita
なかのん&マジックさんのツイート: "修正を後回しにしてるのは、本来"input"イベントを使うべきだからなんだよなぁ。音声入力とかにどうやって対応するつもりだ?"
なかのん&マジックさんのツイート: "TSFのTS_E_NOLAYOUT問題、個人的に知ってるMSの人に直接コンタクトとるべきかなぁ、もはや。"
紙魚丸(しみまるさんのツイート: "ウィンドウズ 登録されてない文字を辞書登録して今後は変換できるぜ ってのあるけど 逆に そんな変換はもうしなくていい って登録はできんのかな ゲームって入力して変換押したらGAMEって出て いいからそういうの やめて"
なかのん&マジックさんのツイート: "ブラウザのオートコンプリートだと、矢印キーで選択してDeleteで消せるけど、IMEでは考えたこともなかったな。"
なかのん&マジックさんのツイート: "アプリ開発者としては、macOSのCocoaみたいな、「アプリの実装がIMEやフレームワークと一体となって動かなければいけない」という設計は本当にキツい。TSFも基本的にはそれに近いけど、アプリからもAPIを使ってIMEにリクエストできるのは大きい。"
なかのん&マジックさんのツイート: "NSTextInputContext.invalidateCharacterCoordinates()を呼び出してもアプリから当然のごとく期待される動き、つまり、候補ウインドウの位置の再計算とか無いからね。何のためにあるのか本当に謎。"
なかのん&マジックさんのツイート: "access keyとshortcut keyがコンフリクトしてたらどっちが優先順位高いの問題……(Geckoはaccess key)"
てるろーさんのツイート: "IMEほど闇は深くないんだけど、海外製テキスト入力コンポーネント(典型例がDataGrid)でIMEを想定してないキーイベント実装になってるやつ、よくありますね / 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記 https://t.co/EZbyWlBdYu"
なかのん&マジックさんのツイート: "そういうのがあって、音声入力や手書き入力に非対応なWebアプリが増えちゃうから、未確定文字列がある時にkeydownとkeyupは発火すべきじゃないって、UI EventsのWGで昔、抵抗したんだけど、Gecko以外は発火してるからっていう理由で負けた。"
なかのん&マジックさんのツイート: "これは本当に今でも悔しくて、Webアプリはテキストの入力を検出する場合、beforeinput (Geckoはまだ未実装)、input、composition(start|update|end)イベントのみで実装しないと全然アクセシブルじゃない。"
なかのん&マジックさんのツイート: "beforeinputはどうすればスマートな実装になるのか、未だに分からないんだよなぁ。keypressイベントの発火方法自体を見直さないと、EventStateManagerからフォーカスのあるEditorに問い合わせて、みたいな汚いやり方しか思いつかない。 #もずでぶ"
なかのん&マジックさんのツイート: "長年の修正で、keydownイベントがkeypressイベントのほぼ全ての情報を持つようになったのでなんとかなるのかもしれないけど、一部のプラットフォームはIMEが処理する前にkeydownイベントを発火してから、keypressにするか、compositionイベントにするかを判断してるんでキツい。 #もずでぶ"
なかのん&マジックさんのツイート: "keydownの発火をIMEが処理したかどうかを判定できるようになるまで遅らせるべきなんだけど、そうすると、今度は、keydownイベントのpreventDefault()でcompositionstartを抑制するということがプラットフォームによっては不可能になるので、なんというか、仕様が悪い気する。 #もずでぶ"
小野塚裕也 (よP)さんのツイート: "ところで Windows 版 LINE は IME のキーバインドより前に出てくるから単語区切り指定中にウィンドウが開かれたりして使いにくいのなんとかして。ライン社内には Microsoft IME でキーボードショートカット使う人いないのかね。"
小野塚裕也 (よP)さんのツイート: "IME の文字入力・変換作業中にホストのアプリケーションがキーボード入力受け付けちゃダメでしょ。"
小野塚裕也 (よP)さんのツイート: "極端なこと言うとスマートフォン中心に使っている人なら LINE のキーボードショートカットなんか使わない (というかあっても実用的でない) んだからなくてもいいのに。"
なかのん&マジックさんのツイート: "IME全く使わない人たちが開発するとこの手のバグを入れがちなのに、LINEがやらかしてるのか。"
なかのん&マジックさんのツイート: "あー、でも、ハングルのIMEだと、何かショートカットキーを押したくなる時には、もう、ユーザの中では入力が終わってる状態だから、か。"

histric-5

なかのん&マジックさんのツイート: "ぼんやりとソース見てるけど、devtoolsは全部、keypressからkeydownにそのまま移行させた方が良いのかな。"
なかのん&マジックさんのツイート: "e-Taxはime-modeを多用してくれてて、かなり入力しやすかった。あれを実装するなとまで書いたW3Cは本当にアレ(抵抗はした)。"
なかのん&マジックさんのツイート: "とりあえず、確定申告ページで今でも使われてるってのは書いておいた。ime-mode: active;とime-mode: inactive;は設定で無効化できた方が良さそうではある。ただ、無効化をデフォルトとするかどうかは悩ましい / https://t.co/ASPFx4ZeN8 - Remove ime-mode propery https://t.co/CmHiTpqk5s #もずでぶ"
なかのん&マジックさんのツイート: "Android、タッチ入力の仮想キーボードからIME使うのと、ハードウェアキーボードから使うのとでは動作が違うのかよ……"
なかのん&マジックさんのツイート: "実装後回しになったとしても、ハードウェアキーボードのパスを作っておいて、そこに仮想キーボードから疑似イベントを流す、みたいな形になってないのかな?"
なかのん&マジックさんのツイート: "今日もパッチ書いてて戸惑ったんだけど、この例、本当に正しいんだろうか。WM_SYSKEYDOWN(UP)は無視して良いの? TIP/TSFがAlt+somethingを処理できないけど。 / ITfKeystrokeMgr::TestKeyDown method (Windows) https://t.co/RX6nWMiJ9B"
ITfKeystrokeMgr::TestKeyDown method (Windows)
なかのん&マジックさんのツイート: "@msdmairitan さん、ご意見あれば。"
Masaru Iritaniさんのツイート: "ありがとうございます。ちょっとこの辺り詳しい人に聞いてみます。… "
なかのん&マジックさんのツイート: "はい、お願いします。最初の実装時にもうーん、と思いながらも、例に従って、WM_KEYDOWNとWM_KEYUPのみTSFに渡すようにしました。もしアレならWM_SYSKEYDOWNとWM_SYSKEYUPも渡すようにします。… "
なかのん&マジックさんのツイート: "macOSでIMEから飛んでくる未確定文字列をそのままテキスト内で使うの、もういい加減にダメって広まってないの?"
なかのん&マジックさんのツイート: "Firefoxは現存する有名なIMEの全機能を子プロセス上でもサポートするために、かなり色々と値をキャッシュしたりしてて、シンプルに文字入力してるだけのときからすると「無駄な」処理をいっぱいやってる。入力から発生する処理の別プロセス・別スレッドへの追い出しは本当にキツい。"
なかのん&マジックさんのツイート: "OSからの入力に対するイベントと、それへの応答が非同期処理をサポートする形になってくれて、さらに、各IME等のミドルウェアがそれをバグ無く処理できるようになれば、メニーコア時代のデスクトップアプリはもーちょい進化するのかもしれない。書いてて無理に思えるけど。"
なかのん&マジックさんのツイート: "シングルプロセス、シングルスレッドなアプリはどんどん相対的にパフォーマンスの悪いアプリとなっていくわけだけど、ユーザからの入力に対するリアクションってほんどスレッドの分けようが無いアプリも多いので、やはりスレッドあたりの性能向上も大切だなぁと。"
なかのん&マジックさんのツイート: "Firefox/Chromeのような、メインプロセスが重要なタイプのマルチプロセスアプリの設計は今後どう変化していくんだろう。今でもメインプロセスにかかる負担ってそれなりにあるけど、統括すべき子プロセスが増えていくと……"
なかのん&マジックさんのツイート: "今頃気付いたけど、macOSの日本語入力、今でも内部的にはKotoeriって名乗ってるんだ。"
なかのん&マジックさんのツイート: "Win10に古いIME入れてるとこんな感じで警告が毎度毎度、大きめのアップデートで出る。… "
なかのん&マジックさんのツイート: "Win10の大型アップデートのときに出なくても良いんではって思ったけど、いつまでも古いサードパーティーのIME使いながら、すぐにその自覚無く文句言う人出てきそうだから出すしかないか。"
なかのん&マジックさんのツイート: "「ぽんよう」はATOKでもMS-IMEでも変換できないか。"
なかのん&マジックさんのツイート: "ATOKは訂正候補出してきて、MS-IMEは単純にカタカナに変換できないように文節切ってくるのか。ガチで間違ってる人にはATOKの方が良さげ。"
なかのん&マジックさんのツイート: "ものっすごいlong standingなテストAPIのバグを見つけてしまった。よく動いてたな、IME周りのテスト。"
なかのん&マジックさんのツイート: "Linux版Nightlyで、一部のデスクトップテーマのバグのせいでfcitxの未確定文字列が正しい色で表示できないバグを修正したけど、その方法がfcitxの参照してる選択色を上書きするというちょっとリスキーな方法なので、regression出てたらできるだけお早めに報告を(bugzillaでも私に直でも) #もずでぶ"
なかのん&マジックさんのツイート: "このバグが起きてる環境だと、未確定文字列が背景も文字もおおむね同じ色なのでほとんど読むことができないので可能な限りupliftを行いたい(betaとESR60)。"
なかのん&マジックさんのツイート: "Debianでこんな感じに表示されてしまってる。… "
なかのん&マジックさんのツイート: "IMEの未確定文字列の表示自体は、把握している限りはfcitxユーザにしか影響無い上に、かなり新しいバージョン使ってる場合は、このバグ回避のためにfcitxが別の色をFirefoxの場合に使ってるので問題は起きてないです。ただ、IME以外の部分でのregressionが無いのかというのが怖いところ。"

なかのん&マジックさんのツイート: "先月、Nightlyで一番使われたIMEがハングルのIMEというのは予想外だった。日本語・中国語と違って選択肢無いとそうなるか……"
なかのん&マジックさんのツイート: "MS Office IMEを使ってる人が、ちょっと無視するには忍びない数で居てるな。安全方向にふった修正にしておくか……"
なかのん&マジックさんのツイート: "んー、先週末に突っ込んだTS_E_NOLAYOUTの修正に従ってTIPを信頼するパッチ、Nightly + 色々なTIPで試してみると、いくつか状況限定でバグるな……やはり、実装が無かったらTIP側にもバグがあるか。"
なかのん&マジックさんのツイート: "Site Isolation、IMEの観点からするとどうなんだろってのは無くも無い。今どきのIMEは周囲のテキストを読んでるし。IEの形式なら安全だろうけど。Edgeはどういう設計になってるのか未だに知らない。"
Taku Kudoさんのツイート: "ネットワークのflow、initializer、shape をまとめて同じところに書けるのが地味に静的グラフの利点だと思っているのですが (kerasなんてまさしくそう)、どうなんだろう。逐次実行の解釈がどうしても優先されるので慣れが必要ですが、これは定義なんだというスタンスに立てば可読性が良い。"
kyo agoさんのツイート: "reactでtextareaちゃんと管理するの、辛い。。。"
kyo agoさんのツイート: "react + textarea、真面目にやろうとすると「現在の入力値」、「現在のカーソル位置」、「現在のIMEの状態(変換状態)」の管理が必要な感じがする。 (宣言的にUI構築するんだからUIの状態に関わるものを管理するのは当然なんだけど。。。)"
なかのん&マジックさんのツイート: "ネイティブアプリレベルでもIMEのバグや挙動の違いの吸収はかなりキツいのでAPIのほとんどないWebは相当につらくないかなぁ。ある程度はブラウザが吸収してるけど。"
なかのん&マジックさんのツイート: "IMEのAPIって2種類のデザイン方法があって、IMM/GTK vs. TSF/Cocoa/Androidみたいな感じなので、WebへのAPIの公開とか出来る気しない(Qtってどうだったか忘れた)。"
なかのん&マジックさんのツイート: "Firefox for AndroidのパスワードフィールドでIMEで入力したら文字がダブる件、IMEのSelectionがマスク文字の上に復元されてないのをとりあえず修正してみたら、もっと動作が意味不明になった……"
なかのん&マジックさんのツイート: "最近、Firefox 64にセキュリティのテスト用のアドオンからキーボード入力をエミュレーションするAPIを新規に設計して投入したんだけど、その内部の処理はFirefoxOSのIMEをまともに作れるように設計したクラス群なので、XULアドオンの頃よりも真っ当なテストが可能になったという皮肉。"
なかのん&マジックさんのツイート: "ちなみにそのAPIは普通のアドオンからはセキュリティ的に危険すぎるので相変わらず使えません。専用のビルドオプション付けてビルドしないと存在すらしないので。"
なかのん&マジックさんのツイート: "今どき、KeyboardEvent.keyCodeだけを無条件に参照してkeypressイベントリスナを実装するWeb開発者、引退してくれない?"
なかのん&マジックさんのツイート: "よくあるのが入力のフィルタリング目的でそういうコードを書いてるんだけど、"input"で見てないから、IMEからの入力、貼り付け、D&Dあたりは素通りで入力できてるし。知識が雑すぎる、というか自分で特定のブラウザでだけ実験した結果を知ってるだけなんだろうな。"
なかのん&マジックさんのツイート: "未確定文字列が空のIMEって今どきあるんかな。Win7ではなさげなので、あるとしたらLinuxか?"
なかのん&マジックさんのツイート: "Input Events Level 2にIMEのイベント定義が入ってるけど、今までの定義とコンフリクトしてたり、TSFでそれたぶん無理、みたいな内容で、「お、おぅ」ってなってる。"
なかのん&マジックさんのツイート: "とりあえずこれだけで数ヶ月かかりそうだから、最初はInput Events Level 1の実装で決まりだな。"
なかのん&マジックさんのツイート: "おお、Ubuntu 18.04からUbuntu 18.10にアップグレードすると、デッドキーがmacOSと同様に未確定文字列を出すIMEとして実装し直されてる。"
なかのん&マジックさんのツイート: "実装面で一番苦しめられたのはLinuxのIME事情のクソッぷりだったな、結局(というか今でも環境限定バグがちょいちょい来てる)。"
なかのん&マジックさんのツイート: "(特に)プラットフォーム側がやっつけな実装すると、こうやってエコシステムがボロボロになってってダメになるんだってのを実感させられた。"
なかのん&マジックさんのツイート: "IMEの変換処理を非同期で他のプロセスで処理するために、APIの拡張を全く行わずに、イベントモデルを汚くハックしてて、アプリ側から見ると、来るかどうか分からない複製されたイベントを待たなくてはいけないという、実装した人本当にどうかしてる状況が今のLinuxのIMEのデファクトスタンダード。"
なかのん&マジックさんのツイート: "せめて必ず複製したイベントを再送してくるんだったら単純だったものを……"
なかのん&マジックさんのツイート: "今後、compositionstartをcancelableにしようとしたときに、また、Linuxでの実装が物事を複雑にしてくれるな……"
なかのん&マジックさんのツイート: "ちなみに、どのIMが非同期で処理しようとするのかっていうのを取得するAPIも当然無いので、アクティブなIMがiBusかFcitxじゃないかを確認し、それらだったら、さらにそれらが非同期処理を行うかどうか決定してる環境変数も確認して、というクッソ汚いコードをアプリが書かないといけない。"
なかのん&マジックさんのツイート: "ちなみに、Waylandになると、iBusかFcitxかっていうのを見分けるためのAPIが"wayland"と返してくるらしく……"
Makoto Kato ︎︎さんのツイート: "その経緯もChrなんとかOSが最初ibusを使ってた関係で非同期APIがあるらしいんだけど、その後そのOSがibus使うの止めちゃったんで、まぁ中途半端になりがちですよね… "
なかのん&マジックさんのツイート: "IMEも既に独自拡張のフラグをmodifiersに突っ込んできてるんで、あそこに見分けが付くフラグを入れて欲しかったです(これから非同期で処理するよ、っていうのを)。… "
なかのん&マジックさんのツイート: "愚痴ってたら、またLinuxのIMEが変な事してくれてるのが原因のバグ来てる……"
なかのん&マジックさんのツイート: "今のmozilla-centralで動いてるIME周りの自動テストは、JS製のIMEから複雑な未確定文字列を送信でき、コンテンツ上でのイベントも受け取れるという本格的なものなんだけど、Firefox OS向けに作ってたAPIなんだよね。なので、テスト用にはかなりのオーバースペック。本当に真面目に作り込んである(w"
なかのん&マジックさんのツイート: "しかもこのリッチなAPIが完成したの、確かFirefox OS終了に間に合わなかったというオチだった気がする……"
なかのん&マジックさんのツイート: "Windowsキー + : (コロン)で絵文字を入力できるとか初めて知ったんですけど……ただこれ、アクティブなキーボードレイアウトを英語にしておくと英単語の入力で絞り込めるけど、日本語だとIME問わず絞り込みができない?"
なかのん&マジックさんのツイート: "しかもTSF-awareアプリケーションとIMMのエミュレーションにちょっと齟齬があるんだよな、どうしよう。"
なかのん&マジックさんのツイート: "macOSのIME周りを知ってる開発者とのパイプが欲しい今日この頃。アプリによって動作を変えられるの、本当に意味が分からない。"
なかのん&マジックさんのツイート: "IMEからアプリに任意のタイミングで問い合わせを出せる、TSFやCocoaの設計は、IMEの開発者から見て便利なんでしょうか? アプリ側が用意できてなくてエラーが返ってきたりするんで、数多くあるアプリとの連携部分がかえって大変そうなイメージなんですが……"
なかのん&マジックさんのツイート: "ちなみにアプリ側から見ると結構しんどい形になる上に、意図通りにIME側が動いてくれなかった時に、何が気に入らなかったのか分かり難くて対応しづらいってのがあります。まさにmacOS上のシンプルな変換だけが必要な言語のIMEみたいに。"
なかのん&マジックさんのツイート: "とりあえず、MS-IMEも含めて、TSFは非同期レンダリングサポートしてるのにIME側が対応してくれてないのはキッツいですな……IMMみたいにアプリ側から通知出す方がこういうあたり、確実。"
なかのん&マジックさんのツイート: "ハングルのIMEの挙動が特殊過ぎるんで、ハングルの勉強したら?と言われるものの、そもそも日本語のIMEも全部は面倒見れていないという……"
なかのん&マジックさんのツイート: "日本語のIME、特に人名を変換してる時に思うんだけど、一文字目での候補リスト内の絞り込みがマウスを使ってでのUIでも良いんで、存在すべき。"
なかのん&マジックさんのツイート: "FirefoxユーザのLinux版のIMEのシェアを久しぶりに確認してみたらibus強いなぁ。"
なかのん&マジックさんのツイート: "IME経由で文字を実際に入力したユーザだけでの統計なので、欧米でキーボードからの直接入力だけのユーザはカウントされてませんので、たぶんibusの実際のユーザはもっと多い。"
なかのん&マジックさんのツイート: "IMのコンテキストの名前に"WAYLAND"が増えてるな……"
Makoto Kato ︎︎さんのツイート: "https://t.co/iiLfFYZkND このlandedをみて、reviewerでちょっと笑った。未だにreviewerになってる。。。"
657623 - Using TSF instead of IMM32 in the IMF on Windows - chromium - Monorail
Makoto Kato ︎︎さんのツイート: "幣社も4プラットフォームをほぼ2人のみでやってるから、人のこと言えないんだが、IMEとか入力周り。"
なかのん&マジックさんのツイート: "自動テストの方法をいい加減に作らないと、ですね……… "
Makoto Kato ︎︎さんのツイート: "確かにgtestでmock作れるようにしないとね… "
なかのん&マジックさんのツイート: "うーん。複雑なHTMLのケースでのテストが書きやすいようにmochitestで考えてたんですが……どちらにしろ、OSとTSFTextStore間に一枚かませて抽象化しないといけないですね。… "

ともい(Tomoi,S.)さんのツイート: "テキストフィールドにIMEModeみたいなプロパティがある以上、それに開発者マター以外のアプローチが存在しないのはなぜだ…と思い続けているけど、まあ日本人の使い勝手なんて理解できないだろうなあ…(・ω・"
ともい(Tomoi,S.)さんのツイート: "おそらく一生実装されないかもですが、Winの日本語入力可能フィールドはIMEの最後の変換モードを常時永続的に記憶しててほしいし、中途半端に覚えて継承されるかと思うと逆側になっててイラッとくるものもあるので、ユーザー側で英数・日本語の初期モード固定を指示できるようになっていてほしかった。"
Makoto Kato ︎︎さんのツイート: "IME依存のhack、GeckoのTSFの実装もGTKの実装もいろいろ多いけど、Androidも大概多いんだけど、OSの抽象化とは。。。 https://t.co/E3fwfzby8Y"
InputMethods.java - mozsearch
こたさんのツイート: "なんか気になったのでアンケート「ぁ」や「っ」など小書きを入力するとき、Xを使うか、Lを使うか、変換を使うか教えてください。"
京橋 ひよわ@労進さんのツイート: "んなもん、左Shift+「や」、右Shift+「つ」に決まってるやん?"
島鉄雄さんはTwitterを使っています: 「やっぱり、どんな IME パッチをあてても確率の問題でいつかは必ず落ちる事が分かったんで…これを試してみようかな。(多分明日から) これがちゃんと動けば、もう Emacs 本体から IMM32 のコードはバッサリ消し去りたい… https://t.co/bDP9dhOITK」 / Twitter
島鉄雄さんはTwitterを使っています: 「お!予想外に(失礼w)すんなり動いた! https://t.co/XcigCEpcRN ↑ここの 27 pretest 版を使って(つうかインストーラがある!) load-path に w32-imeadv.dll と lisp-w32-imeadv.el を置いて、(load "lisp-w32-imeadv.el") をした。 w32-imeadv.dll は自前でビルドしたけど、これも一発だった。続く https://t.co/CAKyv5QReI」 / Twitter
Index of /gnu/emacs/pretest/windows/emacs-27
島鉄雄さんはTwitterを使っています: 「lisp の方は色々カスタマイズ(や修正)が必要そうだ。 あと、起動直後に IME 効かない問題を対処するのに別のモジュールが必要みたいだけど、出来れば統合してもらえるとうれしいです!> @m_toguro さん これで長年の IME 問題は解決するんじゃないかと期待したい。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo w32-imm32-on-start-enablerの方は、メッセージフックの中から直接DispatchMessage() を呼び出すという非常にaggressiveな事をしていて、本当に動くかどうか?動いたとして副作用は無いか等の確信が持てなかったんです。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo .dllをload-pathからのければすぐ外せるのもダイナミックモジュールの利点なので、不具合ぽい時やだめそーだったらはずそーと思いまして。 僕チキン(´・ω・`)」 / Twitter
島鉄雄さんはTwitterを使っています: 「@m_toguro 今までの IME パッチだと w32fns.c の w32_createwindow() 内で、画像のようなアドホックなコードで回避してるようです。 多分安全だとは思いますが、若干気持ち悪いと言うかw 参考までに。 https://t.co/nPfLNOVTOq」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 最小化すると動き出すのは、MS-IMEがWM_TIMERを送ってきてて、最小化・最大化の時に、ShowWindow()の向こう側で、システムのメッセージポンプがちゃんとDispatchMessage()してるからなのですが、同じ問題に起因するのがATOKの確定アンドゥでこっちはフリーズしちゃいまして…。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 本体にパッチを当てれば治るのも確認してて、多分これが正攻法であるとは思います。 自分でつくっておいてなんですが、w32-imm32-on-start-enablerは、穴の開いた燃料タンクをぐるぐるまくガムテなのです… https://t.co/uED5j89odN」 / Twitter
精廬 幹人さんはTwitterを使っています: 「なんで、 w32fns.c のw32_msg_pump のお尻のあたりを ちょっと弄るといいと思うんだ。 https://t.co/w44eo2Y58B」 / Twitter
精廬 幹人さんはTwitterを使っています: 「ちな、ATOK の Ctrl-Backspace の確定アンドゥがプチフリーズするのも同じ原因の模様」 / Twitter
精廬 幹人さんはTwitterを使っています: 「MS-IME は起動時に 0x0113 = WM_TIMER を送信 ATOK は、 確定アンドゥ時にうちの環境では0xC046 これはRegisterWindowMessage() で登録されたメッセージ hwnd が NULL の状態で GetMessage() が返す。 ところまで確認したんだけど、どうしよっか。」 / Twitter
品川@学生募集中さんはTwitterを使っています 「ディープラーニングを使ったシンプル・ロバスト・高精度な日本語IMEが欲しい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ウォール街を、ウォーター街と書くミス。 スマートフォン入力は、妙な自動補完に気づかないこと多い。 入力の達人は、視線は文章を見ながらのタッチタイプなのかな?」 / Twitter
ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「プロジェクトX、東芝のワープロ回やってる。辞書にない単語は後ろから検索し、助詞で切って推定するっていう論文読んだことある。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@houmei カシオFP1100でかな漢変換を作ったけど、「後ろから検索」ってEUCコードなら簡単だが、SJISとかUnicodeだと難しい。viを自作するにも編集フラグと折り合いつけるのは大変。」 / Twitter

Choosing the right estimator — scikit-learn 0.23.1 documentation
機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning | Microsoft Docs
専門用語和訳プロジェクト「みんなのわやく」(機械学習・メディア処理) - Google スプレッドシート
機械学習*と公平性に関する声明 | 人工知能学会 倫理委員会
研究開発成果 - サイバーフィジカルセキュリティ研究センター - 産総研
2-2_データを説明する - 2-2_literacy_level_note.pdf
Shiki’s weblog
仲原文也@籠城中(筋トレ3年)さんはTwitterを使っています 「新しいMicrosoft IMEで送りがなの基準はどこで設定するのだろう。本則にしたいのだけど、、」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
機械学習品質マネジメントガイドライン 第2版 | デジタルアーキテクチャ推進センター | 産総研

形態素解析→依存文法解析→直接構成鎖解析→談話構造解析

コーパス

国立国語研究所

nwc-toolkit

Web クローラー

Heritrix - Heritrix - IA Webteam Confluence
Heritrix - Home Page
internetarchive/heritrix3: Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
Heritrix - Wikipedia
Webクローラ「Heritrix」を使ってみる - Qiita
国立国会図書館-デジタルアーカイブシステム
Heritrix - masayua

HTML テキスト抽出(CETR)
HTML テキスト抽出(簡易)
Google Code Archive - Long-term storage for Google Code Project Hosting.
xen/nwc-toolkit: Automatically exported from code.google.com/p/nwc-toolkit
ウェブサービス - s-yata.jp
コーパス - s-yata.jp
日本語ウェブコーパス 2010
N-gram コーパス - 日本語ウェブコーパス 2010

UniDic

MeCab

MeCab: オリジナル辞書/コーパスからのパラメータ推定
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
taku910/mecab: Yet another Japanese morphological analyzer
mecab-ipadic-neologdがすごいという話 - kivantium活動日記
Pythonからmecab-ipadic-neologdを使う - Qiita
MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する - Qiita
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
MeCab - 日本語形態素解析システム
MeCab - Wikipedia
NMeCab でも mecab-ipadic-neologd を使ってみた - しばやん雑記
MeCabのライセンス変更事例 | オープンソース・ライセンスの談話室
きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた « LINE Engineers' Blog
NEologdさんのツイート: "mecab-ipadic-NEologd に"色々な不具合の修正をしたIPA辞書のみ"をインストールする機能をつけました📕 長い間、個人的に便利に使っていた機能です🔧 インストール時に-cオプションを付けるだけで利用可能です😄 #neologd"
neologd (NEologd)
ねこ先輩さんのツイート: "Mecabの動作確認するとき、私はいつも「吾輩は猫である」という文を入力するんですが、neologd入れたら文まるごと固有名詞になってしまって無事に動作確認できたようです。"
【Python】MeCabと極性辞書を使ったツイートの感情分析入門 - StatsBeginner: 初学者の統計学習ノート
Mecabに人名辞書を追加 - Qiita
mecab-skkserv MeCab を使ってかな漢字変換
日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
MeCab: 単語の追加方法
Odashiさんのツイート: "みんな一度は作って最終的に実用的な理由でMeCabに回帰する形態素解析器"
Taku Kudoさんのツイート: "MeCabはたいてい爆速ですねというフィードバックをいただくのだが、某所の某グループから遅すぎじゃボケと言われて、草。 世界は広い。"
【Python】テキストマイニングしてみた〜形態素解析〜 | 開発アプリブログ

Twitter

全角

UniDic広報担当さんのツイート: "web茶まめの、「解析前処理」の項目の「半角文字を全角に変換」のチェックボックスをONにして実行してみてください。 UniDicには、全角文字しか入ってないので、 半角文字はすべて未知語処理されてしまいます。 https://t.co/7eFH8AgK4K"
UniDic広報担当さんのツイート: "解析用UniDicに登録されている短単位はすべて全角です。 また、文字コードはUTF-8です。"
Taku Kudoさんのツイート: "@unidic NFKCにしませんか?"
UniDic広報担当さんのツイート: "@taku910 web茶まめを作っているのは私ではないのですが、今、開発者に依頼しておきました。"
UniDic広報担当さんのツイート: "あとは、解析用UniDicの表層形が全部NFKC化した文字列でも登録してあるかDBちゃんと見とかないと。"
UniDic広報担当さんのツイート: "こっちは、デフォルトでチェック入れて外せないようにしてあります。 https://t.co/6Hy2A40gui また、UniDicが全角を採用しているのは、BCCWJの文字列がすべて全角に統一されているからです。 https://t.co/ZZrCpMye4M"
UniDic広報担当さんのツイート: "そうか、国語研のコーパス、基本全角だからDBに半角エントリは作ってないのか。 これは、解析用の辞書のほうでの対応案件か。 半角カンマのcsvへの表層形登録は","でいいのかな。きっと。 #unidic3への課題 https://t.co/glgmg2ZBb3"

histric-1

UniDic広報担当さんのツイート: "OSDNのリポジトリはunidic2系の公式配布サイトでしたが、 内部の人から見ても怪しかったので、これまでの解析用UniDic配布サイトを統合した新サイトを作りました。 https://t.co/DZKztyaX7j https://t.co/tbd7D7ArUL"
高岡一馬さんのツイート: "「短単位は、漏れの少ない 用例検索を重視した設計(単位の長さ、可能性に基づく品詞体系、細かい語義までは考慮しない字面主義) となっているため、自然言語処理分野の統語解析や意味解析に向いていません。」 https://t.co/vw96DTbO3N"
UniDic広報担当さんのツイート: "皆さんご存知でしょうが、UniDicはすでにChaSenへの対応をやめています。 MeCabの解析用辞書のみ配布を行なっています。"
UniDic広報担当さんのツイート: "今からでも組み込もうかしらん。 https://t.co/w1w1Nvmb6q"
UniDic広報担当さんのツイート: "個人的に、UniDicは 「あ、UniDicって、いいな」 と思ってもらえる方がいて、 そういう人に使ってもらえたら、それだけでうれしいです。 https://t.co/lS1WYOaJLs"
UniDic広報担当さんのツイート: "※表3.2に掲げた語を選定した際の観点は、以下のとおりである。 (1)元の語形が一般にあまり使われることがない 【例】 テレビ(テレビジョン) ジム(ジムナジウム) https://t.co/GjpSEz7dhf"
UniDic広報担当さんのツイート: "BCCWJ短単位情報規定集第4版 p.34より。 これに従うなら、たしかに、デフレも表に載せていい気がする。 https://t.co/6hgYH507rJ"
UniDic広報担当さんのツイート: "ちょっと今度のUniDic会議で議題にしてみます。 https://t.co/7DdwcQUnUh"
藻(入院中:第6日)さんのツイート: "「コン」,「コミ」でコンディショナーやコミュニケーションということにはならないけど、「デフレ」,「スパイラル」は独立して通じるからなあ。"
UniDic広報担当さんのツイート: "単に、規定が古いだけの気がするんですけど。 https://t.co/MGVVffSMG8"
UniDic広報担当さんのツイート: "もともと、計算機のための規定ではなく、人間のための規定で、 国語研は、ほっとくと皆さん、マンパワーですべて解決する驚異の集団です。 https://t.co/n1ijXquTBR"
UniDic広報担当さんのツイート: "基本的に、コアデータを人手で作ってるときにDBに載っていない短単位を随時追加するという方針です。 コーパス作るのが、一番のお仕事なので。 そこらへんは、UniDicの公式ページの「UniDicとは」という項目を参照してください。 https://t.co/L2IpvspaSl"
Taku Kudoさんのツイート: "UniDic短単位の目的や意図は分かっているつもりだが、新しいという理由だけで盲目的に採用し、その目的におおよそ合致しない構文解析に使おうとしているところに違和感がある。UniDicの中の人もずっと言い続けていることだが。"
UniDic広報担当さんのツイート: "WEB+DB PRESSの100号読んでたら「国立国語研究所が公開している表記統合辞書」という文言があって、ナニソレ? と思って調べたら、ほんとにあった。 https://t.co/JTjNB1OpSg 国語研のトップページからこのページにはどうやってたどり着いたらいいのだろう?"
UniDic広報担当さんのツイート: "あれ? BCCWJ作るときに使ってたNum Trans と ChaOne 、いま何処? マニュアルしか見つからない……"
UniDic広報担当さんのツイート: "「ユニディック」です。 小さい「ッ」入ります。 https://t.co/8EHeitda0A"
UniDic広報担当さんのツイート: "UniDicの音韻論情報、あの謎記号の説明、どっかのマニュアルに書いてあったなあと思ったら、まさかこんなところに…… https://t.co/9s99tIFBF5 UniDic2のマニュアルにはもう載ってない…… しかし、なぜこの場所に?"
UNIDIC_manual.pdf

histric-2

UniDic広報担当さんのツイート: "UniDicあるある 解析用UniDic使ったMeCabの出力1行を、 まずタブでspliって、 次にタブの右側を半角カンマでsplit。 時々行数がおかしい。 タブの右側はちゃんとしたCSVなので。 ただのカンマ区切りではないことに注意。 アクセントとか。そこらへん。 https://t.co/BwAFivi4qE"
UniDic広報担当さんのツイート: "「行数」じゃない。「列数」だ。 (さすがに、あたまがぼーっとしてきたなあ) https://t.co/ReWrFg1mVb"
Toshinori Satoさんのツイート: "mecab-unidic-NEologd、ユーザーさん居たのか。。IPADIC版と比べて相対的に滅多にcloneされない状態なんですよね。実用的なサービスで使われててるなら今より改善できるけど、使用事例が伝わって来ないので現状維持以上はなかなかできない状態です😅"
UniDic広報担当さんのツイート: "UniDic2の論文で出てくるXMLから作るSQLiteのDB、 https://t.co/TyJ27uQk3P 立ち消えになってたかと思ったら、 Comainuのとこにそれっぽいものがあった。 https://t.co/0nXr2GCmjz"
UniDic広報担当さんのツイート: "「コーパスは、」がコーパスですらないとは…… 学生の皆さんへ どちらも「検索用のインターフェース」です。 少納言はBCCWJの文字列検索しかできませんが(ほとんどお試し用) 中納言(要アカウント申請)には、BCCWJ以外のコーパスも含まれており、形態論情報レベルでの検索が行えます https://t.co/rXo7fY3Zcl"
UniDic広報担当さんのツイート: "形態素解析(Chasenレベル)の説明で「東京都」の例あげて、「東/京都」と切るよりも「東京都」のほうが頻度高いから~ というのを見かけると、 「それ、内部では名詞-名詞の連接VS名詞になってて、表層の連接は見てないから、名詞単発のほうが強いだけ」と思って、読むのをやめる。 https://t.co/S9hTevggYe"
UniDic広報担当さんのツイート: "まさに、コンテキストの話なのに、そこにまったく触れずに、品詞連接のラティスで解決できるんです。みたいに書いてあるから。 「東/京都」が実在したら、どうするんだよって、前から思っていたので。 ほんとにあったの、すごくうれしい。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "ちがった。「頻度高いから~」は問題ない。Unigramの頻度だから。 ただ、これを「連接を見てラティス作れば解決できます」というのが、許せないんだ。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "あたかも表層形の連接まで考慮してあるように説明されているので。 https://t.co/NbLORCjwGD"
UniDic広報担当さんのツイート: "時間があれば、フルアノテーションして、学習に使いたい。 https://t.co/IMoHqPGCMS 時間が、あれば…… #unidic3への課題"
FairyMaCorpus/corpus/wikipedia/confusing-unidic at master · FairyDevicesRD/FairyMaCorpus
UniDic広報担当さんのツイート: "ちなみに、短単位は、「語」という主観的なものではありません。 コーパス内の単語ライクなものの数を測るための、ものさしの目盛りです。ものさしには主観が入ってはいけないので、誰が認定しても揺れないルールで設計されています。"
UniDic広報担当さんのツイート: "主観といい方は確かに言いすぎですね。 作業者1人1人の恣意性がなるべく入り込む余地を入れないように統制する というのが適切でしょうか。 まあ、何かしら、統制をとるルールと基準がないと、何を1個にするかが作業者間で揺れて、その個数を数えるための資源ができないので。 https://t.co/Eymb3jkw1K"
UniDic広報担当さんのツイート: "ちなみに、国語研はいまはコーパス作ってますが、もともとは数を数える方が主なお仕事でした。"
Taku Kudoさんのツイート: "UniDic が最小単位の結合規則を漢語と和語で変えているのは、何かの理由があってからなのだろうか。本当は最小単位にしたいけど、漢語の多くが1文字=1単語になるを嫌ったのだと推測できる。辞書に漢語か和語か書いてあって、それを素性に使うからそりゃ精度高くなるだろう。"

UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "現代書き言葉解析用UniDic:unidic-cwj-2.3.0と 現代話し言葉解析用UniDic:unidic-csj-2.3.0 を公開しました。 https://t.co/be456fHjQO"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0では、 入力として、従来の全角正規化ONLYから、全角正規化とNFKC正規化両方に対応しています。 また、Windows用GUIツールChaMameをパッケージングしています。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMameを使えば、黒い画面を使わずにMeCabの解析が行えます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "また、解析用UniDicの解析結果末尾に付与されている語彙素IDと分類語彙表番号との対応表が公開されています。 https://t.co/EWkOHTN5xN"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "この対応表はChaMameにもパッケージングされているので、ChaMameを使うと、解析結果に分類語彙表番号を自動付与することも可能です。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMame単体はここからでもダウンロード可能です。 https://t.co/dzeCpdRfpr"
パッケージ ChaMame - ChaKi - OSDN
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "unidic-xxx-2.3.0は、日常会話コーパス開発促進に向け、発音形の精度を上げるために、新たにアクセントを素性に追加しています。 そのため、matrix.defが2.2.0よりも巨大になっていますので、ダウンロードの際はご注意ください。2Gほどあります。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "不要ならば、ダウンロード→解凍の後、matrix.defを消していただくことで、サイズを小さくできます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0、matrixは大きくなりましたが、mecab-dict-genする前のmodelファイルはさらに小さくなりました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "1603系の解析用UniDicの学習時に使用された設定ファイルが発掘されたので、1603系のzipに追加でパッケージングしました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "UniDic-分類語彙表番号対応表の最新版はこちらからもダウンロード可能です。 https://t.co/Ls2QxZQZi1"
masayu-a/wlsp2unidic: Alignment table between `Word List by Semantic Principles (WLSP)' and UniDic Lemma ID.
akirakuboさんのツイート: "unidic-cwj-2.3.0をげっとしてfeature.defの変更点を確認 書字形出現形(orth)と読み(pron)の両方が登場するテンプレートは軒並み削除されてるっぽい アクセント関係のテンプレートが追加されているのは既報通り どの程度精度に変化があったのか気になる所"

「UniDic」国語研短単位自動解析用辞書
「UniDic」国語研短単位自動解析用辞書|UniDicとは
「UniDic」国語研短単位自動解析用辞書|用語集
「UniDic」国語研短単位自動解析用辞書|最新版ダウンロード
「UniDic」国語研短単位自動解析用辞書|商用利用について
UniDic プロジェクト日本語トップページ - OSDN
コーパス検索アプリケーション『中納言』
Web茶まめ
UniDic広報担当さんのツイート: "ちなみに、UniDicの短単位規定集を含め、BCCWJに関連する詳細な報告書はここにそろってます。 BCCWJを使う上で意外と重要な情報も意外とさらっと載っています。 https://t.co/yEkicS7UcD"
関連ドキュメント 現代日本語書き言葉均衡コーパス(BCCWJ)
概要 現代日本語書き言葉均衡コーパス(BCCWJ)
UniDic広報担当さんのツイート: "ここ1年くらい前から解析用UniDicの評価は、mecab-system-evalではなく、こっち↓を使ってます。 https://t.co/RGw73I02Ky"
形態素解析器性能評価システムMevAL
teru-oka-1933/meval: 形態素解析器性能評価システム MevAL
corpus.indd
MeCab で UniDic 辞書を使ってみる / 桃缶食べたい。
「UniDic」国語研短単位自動解析用辞書|FAQ
Microsoft Word - 2017031X_NLP2017_予稿集原稿_kondo.docx
A6-3.pdf

CaboCha

CaoboCha: Yet Another Japanese Dependency Structure Analyzer
taku910/cabocha: Yet Another Japanese Dependency Structure Analyzer
CaboChaで始める係り受け解析 - Qiita
CaboChaで係り受け解析をやってみる - Aqutras Members' Blog
MeCabとCaboChaとRMeCabでテキストマイニングの準備をする - DISTRICT 37
Python CaboChaを用いて係り受け構造を抽出する方法 | トライフィールズ
CaboCha(python)で辞書指定 - studylog/北の雲
UniDic広報担当さんのツイート: "ちなみに、CaboChaのUniDicモデルで付けられる「文節」は短単位ベースなので、国語研の規定する「文節」とはまた違ったものです。 (精度が低いのもそこが関係しています) 詳しくは、BCCWJ形態論規定集(上)を参照ください。 https://t.co/Ehqb2DvdES https://t.co/bDytdEgrGR"
corpus.indd
UniDic広報担当さんのツイート: "本当なら、短単位でなく、長単位を出発点として、係り受けのモデルを作ってもらいたいので。 https://t.co/Rxhm1LSC9R"

コーパス開発センター -Center for corpus development-
KOTONOHA: 国語研究所のコーパス開発計画 コーパス開発センター -Center for corpus development-
KOTONOHA: プロジェクト コーパス開発センター -Center for corpus development-
258億語の日本語コーパスをウェブで公開~国立国語研究所 -INTERNET Watch
国語研日本語ウェブコーパス (NWJC)
概要 国語研日本語ウェブコーパス(NWJC)

NEologd

neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
neologd (NEologd)
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog
MeCabとNEologdのインストール方法(CentOS6) - Qiita
neologd使って形態素解析したい。できれば依存関係とかは丸投げで。 - Qiita
CentOS 7にmecab-ipadic-NEologdを入れて動かすまで - Qiita
B6-1.pdf
kagomeでNeologdを無理矢理つかう - 押してダメならふて寝しろ
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
「mecab-ipadic-NEologd」なら「ピコ」「太郎」もバッチリ「ピコ太郎」 - 一馬力のメモ帳
kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする | Web Scratch
Paul O'Leary McCannさんはTwitterを使っています 「NLP本の作業でneologdの現状を再確認していますが以前よりも使いたくなくなりました。2019年から不安定になった更新が2020年9月から全くない、「ヤバい」が固有名詞になっている、データ収集の詳細が未だ不明、issueは放置状態、などなど。」 / Twitter
Paul O'Leary McCannさんはTwitterを使っています 「制作側をあまり攻める気はありません、きっとなにか事情はあると思います(コロナ禍ですし)、ただし未だに無条件でneologdを推奨する記事が氾濫している現状に少し呆れています。」 / Twitter
ゆきのさんはTwitterを使っています 「個人で独裁的にやるOSSの問題……。(NEologdは収集側のソース公開してないからOSSといっていいか微妙だけど)」 / Twitter

形態素解析

KyTea

KyTea (京都テキスト解析ツールキット)
Graham Neubig - ソフトウェア
KyTea - the Kyoto Text Analysis Toolkit
neubig/kytea: The Kyoto Text Analysis Toolkit for word segmentation and pronunciation estimation, etc.
Zelchさんのツイート: "「辞書」のメンテナンスという意味で言うと、 KyTea デフォルトモデルは最もメンテナンスされているものの1つでしょう。 共同研究などを通じて、「辞書」ではなく文脈ありの「コーパス」が増え続けてる。 医科学、特許、Twitter、レシピ、将棋解説、ガーデニングと多岐にわたる。"
OdashiさんはTwitterを使っています 「ちなみに多分分かち書きはMeCabより速いです。」 / Twitter
legalforce-research/vaporetto: Vaporetto: Pointwise prediction based tokenizer
OdashiさんはTwitterを使っています 「ペロッ、これはKyTeaの3倍速いKyTea! https://t.co/xYJM10r7Qx」 / Twitter

bigram

bigramとは バイグラム: - IT用語辞典バイナリ
統計的テキスト解析(4)~統計モデルとツール~
第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社
束 (束論) - Wikipedia
日本語形態素解析エンジン・言語郎 | 形態素解析とは?

Darts-clone

プロジェクト - s-yata.jp
darts-clone/Introduction.md at master · s-yata/darts-clone

Twitter

Yuya UnnoさんはTwitterを使っています: 「これみて思ったが、効率的なFSTの実装ってどうするんだろう。double arrayの拡張で出来るんだろか。今時、辞書引き速度なんて気にしないのかな https://t.co/dJrBXdRhCs」 / Twitter
たけっぱさんはTwitterを使っています: 「形態素解析機では、入力テキストに対して最初にラティスを生成するのですが、そのために効率的に辞書データの持つ必要があります。 その実装としてFST, ダブル配列などがあるって感じですね。 janomeはpyconjp2015で発表があり資料がありました。 https://t.co/kUJSZxO5XY #rettypy」 / Twitter
Pyconjp2015 - Python で作って学ぶ形態素解析
たけっぱさんはTwitterを使っています: 「違うな、辞書に該当するエントリを見つける操作は有限オートマトンがありますが、その実装方法としていくつかバリエーションがあり Minimal Acyclic Finite-State Automata, trie木、ダブル配列などがある感じですね。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: MeCabやjanome、kuromojiの形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: (MeCabやjanome、kuromojiの)形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。 #rettypy」 / Twitter
ODA, YusukeさんはTwitterを使っています: 「@takegue KyTeaのような境界が確定するまで辞書を使わない方式もあるので「形態素解析器では」は主語が大きすぎ」 / Twitter
たけっぱさんはTwitterを使っています: 「@odashi_t 主語大きすぎました...」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTによる辞書引きの実装のなかで、僕が知る限り最先端を行ってるのはLucene FST https://t.co/w4OItebepj だと思うけど、他にもいい実装があるかもしれない」 / Twitter
lucene-solr/lucene/core/src/java/org/apache/lucene/util/fst at master · apache/lucene-solr
takuya-aさんはTwitterを使っています: 「Lucene FSTについてはこの会で @moco_beta さんからいろいろ教えてもらえそう https://t.co/xYF898b6jp」 / Twitter
Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編) - connpass

@taku910

FAQ

Taku KudoさんはTwitterを使っています 「sentencepieceを超巨大なデータで学習した時にOOMになるのをなんとかせえ というのがFAQになりつつある。そもそもサブワードは高頻度の部分文字列の上位数十k個を使うだけなので、サンプリングで十分だと思うのだが、なしてそこまでデータ量に拘りたいのか。」 / Twitter
OdashiさんはTwitterを使っています 「@taku910 コーパスを均等にシャッフルできる(適当な標本を取っても偏りがない)ことを暗に要求していませんかね」 / Twitter
Taku KudoさんはTwitterを使っています 「@odashi_t 要求していますよ。あくまで OOMが出るときの workaround を提示してるのであって、同一ドメインのテキストであればサンプリングで十分だと思います。偏りが気になるのであればメモリ買ってくださいとしか言えません。」 / Twitter
Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t つうかそんだけエイヤと集めて全部たらそれはそれで大層偏ったコーパスになってそうなもんですよね…」 / Twitter
Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t s/全部たら/全部使ったら/」 / Twitter
OdashiさんはTwitterを使っています 「@katsuhitosudoh @taku910 経験じゃ納得させられないだろうし、何か統計を出して「サンプリングで十分」としといた方がよさそう」 / Twitter
Taku KudoさんはTwitterを使っています 「すでに実装していますが、全データを使いたい目的でこサンプリングサイズを極端に大きく設定してくるのです... https://t.co/uUSbDZptgU」 / Twitter
sentencepiece/util.h at master · google/sentencepiece

#nlp2018

Taku Kudoさんのツイート: "#nlp2018 形態素解析WSお疲れ様でした。解析器・辞書開発者の指針や想定ユーザを明らかにし、ユーザとのマッチングを取るという当初の目的は十分果たせたと思います。"
Taku Kudoさんのツイート: "#nlp2018 E2Eの出口が形態素解析になるというUniDic/BCCWJの見解が明らかになっただけでも収穫が大きい。人文系の研究を目的としているため。工学的な応用であれば、長単位を使ってほしいとのこと。"
Taku Kudoさんのツイート: "#nlp2018 ニューラルE2Eと基礎解析の関係について言いそびれたけど、結果を人が直接見たり、簡単なルールで出力を加工して結果とするのであれば、その解析は必要であろう。解析結果が別の機械学習手法の入力になってれば、jointすればいいので、「要らない」という方向性になってもおかしくない。"
Taku Kudoさんのツイート: "#nlp2018 全体的に、短単位→長単位の方向性が感じ取れた。招待講演にもあったけど、短単位は辞書構築が楽な反面リッチな情報を付与できない。例えば、読みが「吉田山(やま)」「筑波山(さん)」になるかは長単位として記述するしかなく、アノテーション→学習→まとめあげは無駄が多い。"
Taku Kudoさんのツイート: "#nlp2018 国語研長単位は、文節から内容語と機能語を取り出したものだが、定義的にはトップダウンに決まり短単位のまとめあげではないとのこと。実際、短単位品詞列から決定的に文節が決められないので(要機械学習)、本来別物と思ったほうがいい。"
Taku Kudoさんのツイート: "#nlp2018 招待講演にもあったが適切な長単位の定義は応用によって変わり、その応用での曖昧性が解消ができる最小単位が語の単位となる。NEologd は、読みを取ることが主目的であるため、有名人の名と姓はつなげて1語となる。この原則で作られていれば、解析結果が直接ゴールとなりえる。"
Taku Kudoさんのツイート: "#nlp2018 形態素解析で論文が書けるのは、精度や速度に関することで、こういう機能が付いたとか、新しい情報が出力できるといった内容では難しい。0.95が0.96になるのは評価されて 0が1になるのは評価されにくい現状はなんとかしたいが、WSでは後者にスポットライトが当たったのは良かった。"
Taku Kudoさんのツイート: "#nlp2018 「サブワード正則化: 複数のサブワード分割候補を用いたニューラル機械翻訳」という発表で優秀賞をいただきました。ありがとうございます。アイデアは驚異的に単純で、適用範囲が広いです。"
Taku Kudoさんのツイート: "#nlp2018 今回の話はニューラル言語処理のテキスト前処理+ID化を学習時にon-the-flyで行っています。静的処理に比べ、サンプリング、ノイズ付与、データ拡張等の柔軟性が上がります。今回の話は一般化できて、前処理がある確率分布としてモデル化できていれば、そこからサンプリングするだけです。"
Taku Kudoさんのツイート: "形態素解析ワークショップの発表資料へのリンクを掲載しました (公開承諾が得られたもののみ) 。よろしくお願いします。 https://t.co/WThWaNJDDt"
Taku Kudoさんのツイート: "形態素解析WSの UniDic の資料を掲載しました。UniDicを応用として使おうとしたときの疑問点がまとめられています。UniDic は、形態素解析をゴールとする人文系研究のための辞書ということが明確になったのは良かったです。https://t.co/WThWaNJDDt"
形態素解析の今とこれから

Wikipedia

Taku Kudoさんのツイート: "形態素解析のLatticeは、よくグラフとかDAGとして紹介されるけど、ある位置で開始する・終了するノード集合は完全二部グラフになるという便利な性質があるので、エッジをわざわざ管理する必要なく、ノードの出現位置だけ管理すれば大丈夫。グラフだからといって汎用データ構造使う必要ない。"
完全2部グラフ - Wikipedia
2部グラフ - Wikipedia
独立集合 - Wikipedia
グラフ彩色 - Wikipedia
マッチング (グラフ理論) - Wikipedia

histric

histric-1

Taku Kudoさんのツイート: "#nlp2017nmt subwordで出てきたBPEとwordpieceは基本的に同じです。sentencepieceはBPEに加え、言語モデルによる学習も実装しているのと、単語リストからではなく生文から学習することで単語分割がいりません。多言語処理がやりやすいです。"
Taku Kudoさんのツイート: "多言語処理をするときは、言語ごとに異なる前処理が必要だったのですが、多言語の生コーパスを混ぜて単一のSentencePieceモデルを学習するのが手っ取り早いです。言語ごとに処理を切り替える必要がなくなります。"
Taku Kudoさんのツイート: "自然言語処理の要素技術(単語分割・構文・意味解析)の応用先として機械翻訳があったけど、いまや立場が逆になっているような気がしている。すなわち、大量のパラレルデータとE2E学習が可能なNMTを使えば(例えば転移学習)、要素技術の精度が上がるのではないかと。"
Taku Kudoさんのツイート: "もともと生成(decode)向けにつくったSentencePieceですが、意外と Encode側でも高性能になるので、いよいよ解析タスク全般で通常の単語分割はいらないのではないかと思う。サブワードじゃなくても文字CNNでもよい。neologdは壊滅的にNNと相性良くない。"
Taku Kudoさんのツイート: "KyTeaをTrgで使った結果を見たらやたら「1508年〜15 18年」のような出力がやたらあって、よく調べたら、数値の分割の一貫性がないことに起因している(年がつくかで分割変わる)。"15 18" をdetokenizeするのは厄介で、現実的には空白入れるしかない。"
Taku Kudoさんのツイート: "NLPでの緻密な単語分割を人間がやっているとは思えないし、その道の専門家しか学習データ作れない実情を考えると、もっと大雑把で直感的な(教師なし)分割で良くて、緻密な分割はそこからの差分を「無理やり鍛えて適応する」と考えたほうが、実情を反映できそうな気がする。"
Taku Kudoさんのツイート: "BPEは分割手法が全く異なるので、kuromoji/mecabのモデルに変換できません。unigram だと、語彙テーブルの対数尤度に -1 かけて整数コストにし、未知語処理を切れば原理的には一緒になります。 https://t.co/lG0ZwGX8XY"
SentencePieceを形態素解析のように使えるAPIを公開した - Qiita
Taku Kudoさんのツイート: "DiscoGAN と CycleGAN アイデアは同じだと思うのだが、けっこうそう思っている人が多くて安心した。言語処理で使えるかは謎。可変長なので、元に戻したときの類似度の定義が難しい。"
Taku Kudoさんのツイート: "さもすべての自然言語処理に使えるような記述になってて注意が必要。特定言語の特定処理にしか使えない。言語・タスク非依存なのはNFKCぐらい… https://t.co/uNcIvduprw"
自然言語処理における前処理の種類とその威力 - Qiita
Taku Kudoさんのツイート: "実応用を考えるとすべての前処理は可逆変換であってほしい。情報を落としたり正規化するのは構わないが、元のテキストとの対応が復元できれば複数のNLPシステム間で結果統合がやりやすくなる。"
Taku Kudoさんのツイート: "SentencePiece の実験結果を足しました。(Src/Trg どちらかだけ等) KyTeaとSPが似た傾向を示していますが、SPは語彙サイズが 1/10で済みます。neologdとの組みあせが強いというのも面白いです。 https://t.co/v3glMTTOul"
google/sentencepiece

histric-2

Taku Kudoさんのツイート: "neologdと組み合わせると良いことは、長い単位で確実に分割できるところは分割しておいて、あとはデータ駆動でサブワード化するというお互いの長所が補完できるからだと思います。"
Taku Kudoさんのツイート: "sentencepieceは NFKC のサブセット(CCC並び替え以外)を実装しています。ICUを使って静的な正規化規則を作ります。実行時にはICUは必要ないです。 https://t.co/Q5EA1Uqweo"
Taku Kudoさんのツイート: "ICU経由で作ったNFKCルールはここにあります。独自正規化をしたいときは適当にいじって学習時に --normalization_rule_tsv で指定すると、モデルに正規化規則が埋め込まれます。 https://t.co/EnhDBkgbft"
Taku Kudoさんのツイート: "数年前に議論になったけど、短単位係り受けは形態論と統語論をごちゃまぜにしてて気持ち悪い。さらにUDは意味も扱おうとしてるので混乱。表層的な単語が文節相当になる言語は結構あるし、文節は特異な単位ではない。好きな形態素解析使えばいいし。 https://t.co/Lvk35I0lE9"
「語」とはなにか・再考 - murawaki の雑記 - rekkenグループ
Taku Kudoさんのツイート: "分散表現とは、単語がN次元で表現されるのではなく、N次元の実数ベクトル意味空間のランダムウォークから「単語相当」のシンボルがサンプリングされていると解釈するのが議論のとっかかり"
Taku Kudoさんのツイート: "実践的な内容という話なので、mmap の話とか入れてるけど、細かすぎてほんとうにいいのか謎。辞書等の大きいリソースをOS上でどう管理するかは、10年前は結構重要だったけど、今どきはどうなんだろう..."
Taku Kudoさんのツイート: "SentencePieceの語彙数が16384なのが気になる。 被覆率が99.95%になるよう語彙数を決めて(これが16000)、残りは unk になる。分割結果には<unk>シンボルが出てこないのが誤解の元か... https://t.co/Sh08fXSeze"
Small-NMT Task
Taku Kudoさんのツイート: "ちなみに、--character_coverage=1.0 とすれば、学習データの全ての文字が1語彙になります。ただし、CJKはゴミみたいな低頻度語が使われるのであまり現実的ではありません。99.95%の被覆率は、単語ベースにくらべれば圧倒的に高いですし。"
Taku Kudoさんのツイート: "重複あり(通常のカバレッジ)で98.59%は大きいです。spmの学習に使ったデータでのカバレッジですか? そうであれば、99.9%以上になるように最小語彙セットを作るので、何かがおかしいです。再現できるようなデータをいただければ調査します。 https://t.co/qw1Vk7QKzz"
Taku Kudoさんのツイート: "長男君の塾の国語の宿題に、品詞毎に単語を分類する問題があって、MeCabを使って解いたったら驚かれ、さらにこれを作ったのワシじゃといったら更に驚いてた。正確には辞書は作っていないけど…"
Taku Kudoさんのツイート: "sentencepiece の Python wrapper を足しました。pkg-config に依存しているので、sentencepiece の再インストールが必要です。あとは pip install でいけるはず。 https://t.co/muImH9AZhk"
sentencepiece/README.md at master · google/sentencepiece
Taku Kudoさんのツイート: "最大単語長さが極端に短い(4とか)設定の単語分割は、問題が極端に単純になるので軽くチートだと思う。完全に単語ラティス作れるし。"
帰国した情報系センター教員さんのツイート: "NLTKのword_tokenizeを使っていた箇所を、sentencepieceに置き換えたら2%精度が上がった(エラー率が50%下がった)。単語区切りって何なのかなあ‥‥"

histric-3

Taku Kudoさんのツイート: "JESC字幕コーパスでモデル作ってみたが、文脈を無視した文単位の評価なので、リファレンスより良い結果になっている。つまり、問題設定として成立していない。文脈にはみなさん興味ないのかな?"
Taku Kudoさんのツイート: "字幕みたいにノイズが多いコーパスは、学習がノロノロとしか進まず、イテレーション回せばまだ上がるかもしれない… みたいな事案が続いてる。 いまさらの気づきかもしれないが、綺麗なデータはすぐに収束する。"
Taku Kudoさんのツイート: "WMTの評価は、人手評価があるのでdetokenizeした結果を提出して、NIST tokenizerで分割・評価するのが通常だけど、最近は評価データを moses tokenizerで分割した結果をオラクルとして評価している事例が多い気がする。分割結果がオラクルだとするのは、C… https://t.co/vNMKlPltop"
Taku Kudoさんのツイート: "「コーパスと自然言語処理」のA氏担当(形態素解析)章を見たが、ザ・アカデミアという感じで私の本と方向性が違うし凄みを感じる。読者が違うからしょうがないにしても、私のは論文に書かれない実応用上役立つ知識集みたいな色合い。"
Taku Kudoさんのツイート: "例えば、形態素解析のラベル・長さバイアス問題は、それ以前の逐次実行手法が抱える問題であって、OSS含め利用可能な逐次実行形態素解析器がないことから普通の技術者が感じることはない。という判断で、私の本には書いていない。"
Taku Kudoさんのツイート: "MeCabの右文脈IDと左文脈IDがあって、実質同じIDなのに分ける必要があるのか? というのは、日本語の振る舞いとそれにどう工学的にアプローチしてきたか歴史的背景を説明する必要がある。"
Taku Kudoさんのツイート: "end-to-end のNLPやれるほどの十分な学習データがあるのは翻訳ぐらいしかないので,翻訳も少量のコーパスでうまくいくような方法論のほうが他分野へ応用がしやすいかも (単に少量のほうが実験が楽だという言いわけ)"
Taku Kudoさんのツイート: "未探索のハイパーパラメータがすごくいい結果を出すことが判明。 慌てて再実験。話の整合性もよくなるからいいとは思うが、結構センシティブな設定になるのが難。"
Taku Kudoさんのツイート: "本日発表したサブワード正則化のためのサンプリングAPIは、sentencepiece に組み込まれています。C++: https://t.co/Sjkn5Mf9id   Pythonのサンプル: https://t.co/wvVkUVS2uE"
Taku Kudoさんのツイート: "形態素解析WSで、工学的アカデミアと産業界の温度差を見た。工学は良くも悪くも精度が上がればいい立場。が、〇〇という語句が取り出せたとしても、後段処理が認識できなければ無意味。後段の知識と単語分割の知識と統一的に扱うようなやり方に産業界は向かっている (例 NeLogd)"
Taku Kudoさんのツイート: "後段の処理が機械学習ベースになってるのであれば、前にも言ったように分割を周辺化したりジョイントすればいいので、形態素解析はいらなくなる。"
Taku Kudoさんのツイート: "Adversarial Logit Pairing どうしてこんなんでうまくいくのか感が拭えない。"
Taku Kudoさんのツイート: "使う人少ないと思いますが、SentencePiece の unk/bos/eos/pad の ID を変更できるようになりました。https://t.co/qkIFgSqdgQ"
Taku Kudoさんのツイート: "mecab.h が酷い言われ方w Cインターフェイスと完全に対応とれる作りなんでそこんとこ忖度してほしい。 STLすら外に出ていないし、そもそも C++03 がターゲットなので unique_ptrない。どこでも動く最大公約数のライブラリだったら、Cだけでいいと思う。C++はおまけ。 https://t.co/MTZR4Ptu3w"
C++ラッパーを書く ~ C++の複雑怪奇な言語仕様を理解することによるメリット - Qiita
Taku Kudoさんのツイート: "RAII は分かるけど、イテレーターは糖衣でしかないので使う側がラップしてくれとしか言えない。むしろ ABI互換性が保証されない C++ で、複数のコンパイラ、DLLやシェアドライブラリまで考慮したヘッダを書くことにどれだけ神経をすり減らされることやら。で、結局Cに落ち着く。"
Taku Kudoさんのツイート: "SentencePiece 更新しました。ライブラリ内でのエラーは外に放出されるようになりました。Python は例外が飛んできます。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "BLEUの評価時に 本体の前処理(単語分割)を使うなという話。以前は守られていたけど、NMTになってめちゃくちゃになった。 私も言い続けてきたけど、こうやってリファレンスがあるとありがたい。 https://t.co/KjQFbqr8vQ"
[1804.08771] A Call for Clarity in Reporting BLEU Scores

histric-4

Taku Kudoさんのツイート: "SentencePiece の Travis-CI ルールを更新。Linux は docker化、Macのテスト追加、python wrapperのテスト、wheel パッケージの作成 (アップロードはしない) などなど。https://t.co/6b25gqz57t"
Taku Kudoさんのツイート: "形態素解析の本を書いて、形態素と語をいっしょくたんに解析している現状をやめて、語の下位構造として形態素がある本来の形に、日本語もすべきだと強く思うようになった。"
Taku Kudoさんのツイート: "なんのリテラシーもないまま macOSをUnix代わりに使うのはプチ勘弁。 そもそも Linux 向けに作ってるものを、さも macOS で動いて当然みたいな態度を取られるとやる気なくす。Macサポートには、それなりの時間と金がかかるし、個人的に関わりたくない。我慢してるんです。"
Taku Kudoさんのツイート: "https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。"
Module google/universal-sentence-encoder-lite/1  |  TensorFlow
Taku Kudoさんのツイート: "spmのメモリアロケーション問題、伝家の宝刀 thread_local で誤魔化すか。負けた気分。tcmalloc にするだけで、最大40%ぐらい速くなる。"
Taku Kudoさんのツイート: "リソースの爆発を防ぐために、ある程度の上限を決めとくことはよくあるけど、そこを平気で超えるエクストリームユーザが少なからずいる。SentencePiece の語彙サイズを単語異なり数より大きくしたいとか。--split_by_whitespace=false で単語nグラムまで考慮できるけど、やりすぎな気が"
Taku Kudoさんのツイート: "subword-nmtのBPE分割がPythonでも比較的高速なのは、事前単語分割結果を前提として、単語単位で結果をキャッシュしているからのようだ。その前提が効かない日本語だとSentencePieceに比べて400倍ぐらい遅くなる。にしても、キャッシュの寿命を考えてないのはいかにも実験コードっぽい。"
Taku Kudoさんのツイート: "周りでもMBP離れが加速している。"
Taku Kudoさんのツイート: "サブワード=BPEという認識を無くしたい。要望があったので、語彙を制限する機能(subword-nmtにはある)を実装したけど、貪欲アルゴリズムであるがゆえ、ちょっとした拡張でも実装がめんどい。 https://t.co/HMTVCLPvRG"
Taku Kudoさんのツイート: "言語モデルで語彙を制限したければ、結局全探索するので該当するノードをラティスから取るだけでよい。BPEの場合は、将来どうなるかわからないので、処理の途中で止めるわけには行かず、いったん完全解を作って、マージした逆順に再分割する。"
Taku Kudoさんのツイート: "というか、この逆順の方法が正しいかどうかも謎。考えるのも無駄なので、深追いしない。"
Taku Kudoさんのツイート: "ちなみに、CJKの(教師なし)単語分割で、学習時にはがんばって語彙獲得をするけど、分割は最長一致という話をちらほら見る。これがうまくいくのは、アルファベット数が多くて解空間がスパースであるからだけど議論されることはあまりない。英語やDNAシーケンスでやると終わる。"
Taku Kudoさんのツイート: "さらに、BPEがうまくいくのは目的関数が劣モジュラだからで、劣モジュラではない尤度を目的関数にすると動かなくなる。が、CJKだと解空間がスパースなので尤度+貪欲法でもなんとなく動く。オリジナルのwordpiceモデルがCJKのみで尤度+貪欲法を使ってたのはこういう背景がある。"
Taku Kudoさんのツイート: "アルファベットの異なり数とか平均単語数の事前情報を無意識に仮定していることがあるので、言語非依存というときには注意が必要。"
Taku Kudoさんのツイート: "競プロ、Kaggle、トップカンファレンス、人材を評価する基準としては素晴らしいと思うけど、採用で本当に重要なのはどれかに偏らないように多様性を確保することだと思う。様々なバックグラウンドを持ったその道のプロが集まったチームのほうが経験的に楽しいし強い。NLPは性質上多様性は高いと思う。"
Taku Kudoさんのツイート: "社内で同様のリクエストがきたから想定内とは言え、エクストリームユーザが増えてきている。 https://t.co/hkFhjRZ8jH"
Does not recognize \n · Issue #101 · google/sentencepiece
Taku Kudoさんのツイート: "SPMは、デフォルトで<s>, </s> を特別視せず通常の文字列として扱います。内部トークンをリクエストに入れることで動作が変えられたり、これらがデコード時に外に漏れるというのは、(S|N)MTあるあるのバグです。SPMは、実験にも使えるようworkaroundがあります。詳細は以下。 https://t.co/WzQZ4mcSTC"
Understanding BOS/EOS symbols · Issue #102 · google/sentencepiece
Taku Kudoさんのツイート: "ユーザが入力できるコンテキストはXSSといった危険があるので、あらゆる状況で神経使わないといけないというのは普通のエンジニアの発想だが、どうも研究者にはピンとこないらしく、 <s> の話も適当なワークアラウンドで回避されることしばしば。住む世界が違うのか。"

histric-5

Taku Kudoさんのツイート: "TFとChainerのコードを並べると、たしかに前者の辛みは理解できるけど、機械学習プラットフォームとして目指す世界観を俯瞰すると、よくできてると思う。機会あったらどっかにまとめたい。"
Taku Kudoさんのツイート: "string_view (absl) にして入力はゼロコピーに (といっても、今までも独自StringPieceなのでパフォーマンスは変わらず)。 最上位のAPIに関しては極小 string_view もどきを作り、ここでもコピー発生しない。 https://t.co/87ifD4cs4Q"
Taku Kudoさんのツイート: "こっそり公開していたのですが、見つかったので... sentencepiece の tf ops を実装しています。生文を placeholder 経由で feed できるようになりますspm のモデルがグラフに埋め込まれるので、デプロイが楽になるかもです。https://t.co/2Ss9yIr7gV"
how to use sentecepiece tensorflow Op · Issue #125 · google/sentencepiece
Taku Kudoさんのツイート: "例の op を tf.contrib にもってくには、まず Windows 対応しないといけないし、そうなると cmake のほうが楽だし.. めんどい"
Taku Kudoさんのツイート: "発表あるのに現実逃避に cmake に移行中"
Taku Kudoさんのツイート: "メルボルン中にちまちまやっていた cmake 移行をマージしました。ついでに tcmalloc が利用可能のときはリンクするようにしました。言語やコーパスに依存しますが、10-40%ぐらい速くなります。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "ACL終わったので…しばらく前に機械翻訳チームを離れ、別チームに移りました。ここ最近研究をやることになって運良くACL通ったのですが、やはり製品コードを触ってたいかなと。あと、研究として機械翻訳をやることは自分の興味とズレる。ACLもニッチな話で翻訳に応用したが正しいですし。"
Taku Kudoさんのツイート: "夜な夜な spm の windows 対応してたが、 dll の作成はほぼ諦め。手抜きして全 export を試みたが、protobuf 周りで未解決シンボル出まくり。やはり export するclass/関数を陽に定義せねば。そうなると設計も含めて結構変更が必要。改めて C++とdllは鬼門すぎる。"
Taku Kudoさんのツイート: "そもそも protobuf もデフォルトで静的リンクで、dll は「やりたきゃやれば」という立場。あと、dll 経由で protobuf をexposeするなと書いてある。つまり、dll 中にある protobuf message を main から使えない。 https://t.co/Flc7EBfaSt"
Taku Kudoさんのツイート: "ACL short paper は単に long の短い版じゃないよとちゃんと書いています。negative result もOKというのがわりと重要。ある意味多様性を担保してるのだと思っています。 https://t.co/Huxrk0QVGM"
Taku Kudoさんのツイート: "データの入手が容易だからしょうがないにしても、全体的に英語を前提としたNLPが増えている印象。怖いのは、英語の言語的特徴を陰にかつ無意識に仮定したモデルが増えると、なかなか辛いものがある。"
Taku Kudoさんのツイート: "TF hub 経由で elmo が使えるもよう。https://t.co/ZKeSVOxKhT"
Module google/elmo/2  |  TensorFlow Hub  |  TensorFlow
Taku Kudoさんのツイート: "多様性がないがしろにされる環境にいるとストレスで、さらにそれが無意識に起こっていることが残念だ、ってなことを某先生に言ったら、ことさら日本は多様性に対してコストがかかるから、意識しないと自然とそうなるよってことを言われ、妙に納得した。"
Taku Kudoさんのツイート: "現環境への破壊的操作満載のスクリプトでmac版 wheel を作っているのですが、手元で簡単に仮想環境が動かせない macOS でみなさんどうやってやりくりしているのでしょうか。実機なしで travis だけで開発している私は変かもしれないけど、それが普通であってほしい。 https://t.co/qdm1QWIhdi"
Taku Kudoさんのツイート: "自戒を込めて日本は、何かライブラリを書いた時に、コードの書きやすさ、気持ちよさ、見通しの良さといった主観的なことを前に出しすぎな気がする。さっさと仕事がしたい人にはどうでもよくて、何ができるか、何が違うのかという具体例を示さないと評価されにくい。"
Taku Kudoさんのツイート: "git tag 一発で、 travis/appveyor 上での linux, win, osx pip パッケージのビルド、テスト、デプロイが完結できるようになりました。組み合わせでもかなりある。数ヶ月前は、pip って何?って状態でしたが、一通り経験すると次が楽になりそうです。 https://t.co/jCxTkIUHvG"

histric-6

Taku Kudoさんのツイート: "文字が持つ密度が異なるので、漢字を入れて評価しないと言語ユニバーサルとは言いづらいかも。サブワードだと漢字圏の言語と英語の対訳をまぜて学習した場合、1文あたりのトークン数がだいたい同じになって、情報量的には同じなんだなということが実感できる。 https://t.co/7s6VrKUTdN"
[1808.09943] Revisiting Character-Based Neural Machine Translation with Capacity and Compression
Taku Kudoさんのツイート: "件の本の目次があります。その道のプロにはアタリマエのことしか書いていません。事前計算等の高速化の話は少し役に立つかも。 https://t.co/Y0UFcypcco"
Taku Kudoさんのツイート: "sentencepiece 遅すぎじゃという指摘を受けて、いろいろ修正中。LSTMに比べればダンチで速いのでそんなに頑張っていなかったけど、改めて世の中は広い。virtual call を止めたり、断片化が起きにくいようにまとめてメモリアロケーションするなど、普通の最適化で速くなりそげ。"
Taku Kudoさんのツイート: "本や論文の執筆のために Linux laptop を持ち歩いていたのですが、それから開放され、chromebook に戻ってきた。楽でよい。普段の仕事はこれだけでできるし。"
Taku Kudoさんのツイート: "conda 対応しろというリクエストが… むむむ"
Taku Kudoさんのツイート: "sentencepiece の normalizer に moses の再実装を追加したほうがよいのだろうか? 個人的/思想的には不本意ですが、ほぼほぼでファクトになってるのと、今の前世紀設計・実装は扱いにくいのではないかと。"
Taku Kudoさんのツイート: "長男くんに Python の fractions モジュールで有理数・分数計算を見せたら感動してた。次は sympy か"
Taku Kudoさんのツイート: "SentencePiece(unigram) が中国語評判分析でうまくいった話。事前分割が不必要等の意図通りの内容で嬉しい。これに限らず中国語でうまくいく話はよく聞く。中国語教師あり単語分割の進展をよそに、単純教師なしが良いというのは複雑。分割を目的にしてはいけないことの戒め https://t.co/S72B2grmlG"
Taku Kudoさんのツイート: "拙著の発売日です。これで夢の?印税生活"
Taku Kudoさんのツイート: "IBMモデル1的な教師なしで対応を取る手法は、汎用すぎてどこにいっても役に立っている。"
Taku Kudoさんのツイート: "件の本にも書きましたが、memory mapped file がサポートされてる言語だと、辞書中の様々な文字列情報をゼロコピーで扱えるので高速になります。JavaやPythonだとそのへんの苦労が想像できます。 https://t.co/5qPmSaLiAi"
Javaでつくる本格形態素解析器
Taku Kudoさんのツイート: "sentencepiece のissue がたまり気味。チーム離れてから完全副業状態なのでどうにもこうにも。"
Taku Kudoさんのツイート: "そもそも入力が単語列という話は、単語とは何かを考える人にとっては興味が薄いのです。これも英語至上主義の弊害かな..."
Taku Kudoさんのツイート: "単語とは何かを言うなら、文とは何かを考えずに文埋め込みを計算するのもよく分からない。話し言葉や古語には文がなく、書き言葉に導入された概念。主語省略は文を前提にした議論であって、英語と日本語の文相当のチャンクの定義のズレに注目したほうが面白いと思うが、私だけだろうな。"
Taku Kudoさんのツイート: "std::string 使えばC++で文字列処理楽だぜーといってたのはもはや過去の話に。NLPは内部で大量の文字列を扱うので、std::string_view にするかしないかでパフォーマンスに影響が。古き良きポインタ演算の世界へようこそ。コードの見た目も結構変わってきた。"
Taku Kudoさんのツイート: "mecab-unidic の中の人は、私以上に mecab を使いこなしているのは間違いないですが、開発当時の想定を遥かに超えて、現状では無駄が多いので、作り直したい気分ではある。"
Taku Kudoさんのツイート: "連接表が 715MByte というのはなんといいますか..."

histric-7

Taku Kudoさんのツイート: "absl::flat_hash_map が使えるようになってる。結構高速なのでおすすめ。https://t.co/d7EZPD0Hff"
abseil-cpp/flat_hash_map.h at master · abseil/abseil-cpp
Taku Kudoさんのツイート: "今書いてるコード flat_hash_map のルックアップが全体の70%ぐらいで、どこをどうやって高速化するか頭をかかえる。最適化を意識せずに書いたコードが普通に速かったのは嬉しい反面。"
Taku Kudoさんのツイート: "放置気味だったので、出発前に更新。tf 本体のバージョンをパッケージのバージョンに埋め込むようにした。ビルドもオフィシャル docker image 上で作るようにしたので、同じバージョンのオフィシャル tf pip パッケージであれば、ABI互換性は保たれるはず。 https://t.co/kEXgX05HCP"
tf-sentencepiece · PyPI
Taku Kudoさんのツイート: "ポスターデモ終了。BPEとどう違うのというのがFAQ。そうだよね。システム vs アルゴリズムの名前の違いなので紛らわしい。"
Taku Kudoさんのツイート: "ベンチマークに一喜一憂する弊害。SQuAD に限れば、機械は賢いパターンマッチャー/人間は範囲選択ミスばかりという分析もある。研究者はより純粋に「理解する」ことの本質をベンチマークを通じて知りたいのであって、人間を超える・超えないといった話ではない。 https://t.co/c65JvSZ2nr"
on-squad.key
Taku Kudoさんのツイート: "自然言語の encoder は、BERT 関連で急激に発展したけど、本丸は、decoder つまり、言語生成だと思っている。評価が難しいのが難点ですが。"
Taku Kudoさんのツイート: "#misreading sentencepieceについて補足。BPEは最長一致ではなく、学習時の文字結合ルールを同順番で再生することで行います。言語モデルの分割は、分割そのもののNLPっぽさや直接的な翻訳精度の向上が目的ではなく、スコアがある→複数分割/サンプリングできる→データ拡張して精度向上という流れです"
Taku Kudoさんのツイート: "#misreading BPEや言語モデルはデータ圧縮と関連があって、前者はテキスト全体のトークン数の最小化、後者はエントロピーの最小化をしています。LZとハフマン符号の違い。BPEは貪欲法ですが、目的関数が劣モジュラなので、あの方法でも理論的に厳密解との差が保証できます。"
Taku Kudoさんのツイート: "某MNLPで marian NMT の方に sentencepiece と sacreblue オシなので頑張ってねと告げられた。ただ protobuf の依存は嫌だから何とかせいとも言われた。いよいよ nanopb に移行か?"
Taku Kudoさんのツイート: "N→G に移った経験から言うと、Nのほうが研究テーマの裁量を含め圧倒的に自由だった。MeCabやれたし。純に自分の研究・開発したのなら、アカデミアだと助言された(そう思う)。つまり報酬低いからダメといった単純な話ではなく、仕事内容、裁量、自由度を含めて考える必要あり。"
Taku Kudoさんのツイート: "もちろん究極の自由は起業なんでしょうね。私はその能力がないので無理です。"
Taku Kudoさんのツイート: "メモリ4Gがバズってるみたいですが、手元の自宅普段使いマシンは、メモリ4G ARMv8 の chromebook 。特に困っていない。"
Taku Kudoさんのツイート: "marian nmt がサポートするようになって、実践的で有益なフィードバックをいただけるようになったのは幸いだが、それなりの作業量が必要だと思われる。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 仕事増えた"
Information about protobuf · Issue #254 · google/sentencepiece
Taku Kudoさんのツイート: "BCCWJ/Unidic のこの手の話題は枚挙に暇がない。「仕事部屋」や「空き部屋」「山仕事」が1短単位というのは、原則を知っていればちゃんと理解できる。"
Taku Kudoさんのツイート: "BCCWJ/Unidic で、「かけそば」は1語、「かけうどん」は2語というもの、短単位認定基準を適用するとそうであるとしか言えない。「うどん」の語源は諸説あるみたいだが、Unidicでは漢語にしてる。"
Taku Kudoさんのツイート: "メジャーNMTに取り入れられてお星様増えたし、周辺がなんだか騒がしい。家も本業もいろいろ忙しく何もできてない。"
Taku Kudoさんのツイート: "PyPI のダウンロード統計が見れる。git clone (C++) よりも圧倒的に多い。https://t.co/o6AjvKfyk1"
PyPI Download Stats
Taku Kudoさんのツイート: "mecabのCRF学習は、2000年前半のメモリー4Gぐらいの環境でなんとか動くようキャッシュ等の工夫をめちゃくちゃしてたけど、今日日数十〜百Gのメモリーが使えるので、そもそも必要ないかもしれない。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 protobuf への依存を無理やり解決した。当初のやり方とは違いますが。"
中川裕志さんのツイート: "@taku910 @mamoruk ダブル配列日本発は存じております。NLP解析系アルゴリズムに興味を持っている学生は見たことないですが、言語あるいは言語学そのものに興味を持っている学生は少しはいて、そういう人がアルゴリズムに入っていくという感じでしょう。"

histric-8

Taku Kudoさんのツイート: "NLPが他のML応用と少し異質なのは、データでなんとか学習可能な問題とは別に、知識がないとどうにも解けない問題がいっぱいあること。固有名詞の翻訳・読み推定が例。知識を学習データとして与えても学習される保証ないし、直接知識から出力させたいジレンマに陥る。"
Taku Kudoさんのツイート: "今やってること、あるNLPタスクの疑似学習データ作成に使えるのではないかと思えてきた。多分誰もやっていないはず。"
Taku Kudoさんのツイート: "sentencepiece (python) の使い方の網羅的な colab page を書いた。今回の出張の半分ぐらいはこれ関係。どうなるか謎なプロジェクトだったし、メインの仕事でもないけど、ここに来てユーザが増えている印象。 https://t.co/kYpTSAJkuR"
sentencepiece/sentencepiece_python_module_example.ipynb at master · google/sentencepiece
Taku Kudoさんのツイート: "mecab(単語分割)をsentencepieceの語彙獲得の制約のみに使うというやり方があります (OSS版では未実装だが検証済み) サブワードが形態素をそれなりに尊重するようになり、かつ実際の分割時にはmecabが必要ないメリットがあります。"
Taku Kudoさんのツイート: "sentencepieceはモデルの再現性と自己完結性にかなり気を使っていて、 --self_test_sample_size=1000とすると、学習データの一部とその時の分割結果をモデルファイルに埋め込み、モデルの読み込み時に整合性を自己診断する。学習データのリークを防ぐためにデフォルトはオフ。 https://t.co/LY9vxRi81m"
sentencepiece/sentencepiece_model.proto at master · google/sentencepiece
Taku Kudoさんのツイート: "tf ファミリーとの親和性強化のため、sentencepiece のビルド周りが不安定になっています。同僚さんが頑張ってくれていますが、そのうち落ち着くはずです。pip でダウンロードできるものは今のところ影響なしです。"
Taku Kudoさんのツイート: "SentencePieceに関する2つの論文も、BPEより良いという結論は出していないし、それが意図通り。… "
Yusuke Odaさんのツイート: "Wordpiece (BPE) と SentencePieceに性能上の差異はほとんどないという認識"
Taku Kudoさんのツイート: "未知語対策に、漢字をそれっぽい英語に1:1で可逆変換する方法ってないかな。意味と頻度を適度に保持すれば、そのままサブワードが動かしやすくなる。… "
Kosuke Tsujinoさんのツイート: "多言語sentencepieceモデルを学習したいとして、言語間で量を揃えて混合コーパスを作るだけでは十分でないということだ"
Taku Kudoさんのツイート: "またIBMモデルみたいなものを書いてしまった"
Taku Kudoさんのツイート: "少し認識が違います。CJKと英語を混ぜてサブワードを作っても、データ圧縮が基礎なってるので一文あたりのトークン数はあまり変わりません。つまり1サブワードあたりの情報量は均質です。問題は漢字の種類数の多さで、未知語完全になくすには全文字を入れることになり文字分割と変わらなくなります… https://t.co/jkrBuy8gyt"
Kosuke Tsujinoさんのツイート: "言語ごと等量にコーパスを混ぜるとロマンス系言語(実質的に英語含む)に共有されているラテン語系の語幹が勝ちがち、プラス、文字数の差を考えると西欧言語とCJKでものすごくサブワード粒度が不均等になるのだ…"
Taku KudoさんはTwitterを使っています: 「デフォルトを全角スペースにして半角スペースをopt-in するのが定石。逆にするから混乱する。こういうしょーもないところは頑張るところではない。」 / Twitter
Taku KudoさんはTwitterを使っています: 「BPE で subword regularization する話。自分の仕事が再現・継続されていることが何よりうれしい。」 / Twitter
Lena VoitaさんはTwitterを使っています: 「[1/3] BPE-dropout: our new paper by Ivan Provilkov and Dmitrii Emelianenko! https://t.co/9pnuK8qlss In training, we corrupt segmentation procedure of BPE to produce different segmentations of the same word. In inference, we use standard BPE and outperform BPE and sentencepiece. https://t.co/fA3pfHODzL」 / Twitter
[1910.13267] BPE-Dropout: Simple and Effective Subword Regularization
Taku KudoさんはTwitterを使っています: 「できません。任意の連結を認めると、語彙数がコントール不能になり、語彙数を固定するというサブワードの考え方に反します。強制的に分割することは可能です。」 / Twitter
vochicongさんはTwitterを使っています: 「@taku910 MeCabで分かち書きしてから、SentencePieceを適用しています。SPでトークンを更に分割することなく、連結だけ行うような動きをさせることはできますか。」 / Twitter
Taku KudoさんはTwitterを使っています: 「不自然と言われても、サブワードはそういうものとしか言えません。語彙数が固定されているので、限られたパイを取り合ってるだけです。」 / Twitter
vochicongさんはTwitterを使っています: 「現状、SPで「ソニー」が「ソ/ニー」に分割されてしまうのは不自然です。」 / Twitter

histric-9

Taku KudoさんはTwitterを使っています: 「Subword regularization の追試論文その2? うまくいかないという声を時々聞きますが、元論文にもこの論文にもあるように、十分データがある+同一ドメインで評価しているとほとんど変わりません。小規模データor 別ドメインで有効です。 https://t.co/ZZ7lxz9QGY」 / Twitter
[1911.03109] Domain Robustness in Neural Machine Translation
Taku KudoさんはTwitterを使っています: 「「外国人参政権」を形態素解析の問題の難しさの例として使うのはいいけど、システム間の優劣に使うのはミスリード。学習データが足りないだけで、既存モデルでも扱える。形態素解析に限らず、モデルがだめなのかデータ不足なのか区別して議論してほしい。」 / Twitter
Taku KudoさんはTwitterを使っています 「mecabが速いと言われてますが、初期の形態素解析はどれもそれほど遅くなく、chasen も juman もせいぜい2-5倍遅い程度だったんです。突如として速い実装が出たんではなく、周りがどんどん遅くなっていった。」 / Twitter
Taku KudoさんはTwitterを使っています 「高速な形態素解析解析といえば「すもも」がありました。なんかのパッチ書いて送った気が... この時代は学部生だったので中身もよく分かってなく単なるユーザでした。ちなみに juman2.0 時代はTRIE使っていないので、フェアな比較にはならないです。 https://t.co/GYQ2n76ILR」 / Twitter
情報学広場:情報処理学会電子図書館
Taku KudoさんはTwitterを使っています 「性能には直接影響はないが、実際それが起きるとユーザが嫌がる事例ってのがIMEにはあって、評価を難しくしている。そういうのを潰すと性能が低下することもありジレンマ。」 / Twitter
Taku KudoさんはTwitterを使っています 「たとえばIMEで次の単語を予測する場合、予測が全部外れても無視すればいい話。でも予測した単語が完全に的外れだと印象がすこぶる悪い。正解データとの比較だけではこの悪さ具合が評価できない。」 / Twitter
Taku KudoさんはTwitterを使っています 「旧長尾研卒の私ですが、研究室で寝ていると「黒はし君いる〜」とふら〜っと長尾先生が入ってこられ、若かりし自分は不躾な対応しかできなかっとこは苦い思い出です。データで殴るNLPの先駆けで、ツールやリソースの整備に尽力され、実世界で動くNLPに多大なる影響を与えたことは疑いの余地がありません」 / Twitter
Taku KudoさんはTwitterを使っています 「日本語TTSをやってたがこの辺はまだ未解決。結局、エラーがあったら機動的に再学習できるモデル化がまず重要。さらに、単語分割、読み→文字のアライメント、読み表記の多様性は気にせず、レイジーに記述できるようにすることで、日本語話者ならだれでも修正できるようになると良いサイクルが生まれる」 / Twitter
山本 和英(言語商会)さんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
Taku KudoさんはTwitterを使っています 「レイジーの中には、部分アノテーションも当然含まれます。」 / Twitter
Taku KudoさんはTwitterを使っています 「日本語読み推定 kytea でええやんという話もありますが、アノテーションに単語境界の意識がいるので不十分です。文中の任意の部分文字列に読み・発音をルーズに書けるのが理想です。単位の異なる読み情報等を柔軟に取り入れることができます。ただ、ノイズに弱いので、工夫は必要です。」 / Twitter
Taku KudoさんはTwitterを使っています 「neologd は長い複合語を一語にするアプローチを採っています。副作用がない利点がありますが、その情報が別の文脈に再利用されないもったいなさがあります。」 / Twitter
Taku KudoさんはTwitterを使っています 「様々な単位・粒度で読みが部分的に・ルーズに付与された辞書やコーパスがあって、そこから読みモデルを作る。私は結構泥臭くやったけど、今どきの方法で綺麗に作れたら素晴らしい成果になると思います。」 / Twitter
Taku KudoさんはTwitterを使っています 「日本語のトークン化、教師ありでやるなら単位が*安定*している文節や長単位でやって、その細分割はタスク依存で Don't care (~教師なし)と以前から思っていたが、経験的に長単位+サブワード化が強いらしく、その通りになってるみたい。文節内の分割なんて人間は気にしてないと思うし。」 / Twitter
Taku KudoさんはTwitterを使っています 「ということで、いきなり長単位/文節分割が可能な高速な解析器が欲しい。内部の分割は必要ないので、形態素まとめ上げという旧来のやり方を踏襲しなくてよい(というかしない方が良い)」 / Twitter
Taku KudoさんはTwitterを使っています 「短単位の機械分割はほぼ完璧なのに対し、人はマニュアルを熟読しない限り一貫してできません。つまり本質的ではない見かけの精度が上がってるだけなのかも。逆に文節は、助詞欠落状態でも人はアクセント句を無意識に簡単に挿入できます。そのギャップが違和感になっています。「安定」とは対「人」です」 / Twitter
山本 和英(言語商会)さんはTwitterを使っています 「私は単位が最も安定している短単位が最善だとずっと思っていましたが、確かに安定という意味では長単位(をこれ以上人間が分割しないこと)のほうがいい気もしてきました。これは大きな知見かもしれません。」 / Twitter
Taku KudoさんはTwitterを使っています 「unidicにチャレンジするも、単純なタスクだとipadicのほうが精度がよく、ipadicに出戻ることを何度も繰り返している。短単位独特の使いづらさが起因してそう。「自転車」が「自転|車 」に分割されてて、こりゃembeddingの平均を取ってもうまくいかんだろうと思う。」 / Twitter
Taku KudoさんはTwitterを使っています 「おっしゃる通りで、std::stream が遅いので独自にバッファリングしています。それでも IOだけで10-20%ぐらい食います。分かち書きだけなら -Owakati -o/dev/null としたほうがよいです。純粋な解析だけだと -Onone でわかります。」 / Twitter
𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「MeCabのIOオーバーヘッドがかなり大きい説があって、アルゴリズム以外の下らない要素でどうもCLIのコマンドは速度が当てにならない。」 / Twitter
Taku KudoさんはTwitterを使っています 「BudouX 文節区切りというのが渋い。改行処理といタスクの特性に合ってる。人間とのインタラクションが増えるほど文節の重要性が増してくる。」 / Twitter
Taku KudoさんはTwitterを使っています 「budoux は tinysegmenter の機械学習と同様な方法でモデルをコンパクトにしてるようです。tinysegmenter は半分お遊びだったのですが、多くの言語に移植されて作者本人が驚いています。精度だけで単語分割を語ることはできません。」 / Twitter
Taku KudoさんはTwitterを使っています 「tinysegmenterのモデルは今どき言葉だと、深さ1の決定木(=決定株)を弱学習器に使う gradient boosting です。弱学習器は「一つ前の文字が「は」だったら分割」といった決定をします。boosting の特性上、使用する決定株の種類数にL1の正則化がかかり、モデルが小さくできます。」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepiece のFAQに「 <s> が分割されてしまいます。」ってのがあって、ユーザーが入力できるリスクがあるけど本当にいいのか? とモヤモヤしながらユーザ定義トークンにするworkaroundを提示している。エンジニア的観点だと許容できなんだけど。」 / Twitter
Taku KudoさんはTwitterを使っています 「DNN時代だと、特殊トークン (<mask>) で制御することが増えた。ユーザに制御を許可するリスクがあるので、sentencepiece は、特殊トークンは明確に区別し、入力できないようになっているが、ユーザ定義トークンとして定義して通常入力と同列に扱う人が多いみたい。」 / Twitter
Taku KudoさんはTwitterを使っています 「ライブラリとしての形態素解析がまだメジャーじゃなかった時代は、入力に特殊なタグを入れて動作を制御する (解析をスキップしたり) する機能があった。当然mecabでも要望あったが、バッサリ捨てた。log4j での教訓でもあるが、入力に本来タスク以上の意味づけを行うとリスクが高まる。」 / Twitter
Taku KudoさんはTwitterを使っています 「GEC(文法誤り訂正)の評価、精度/再現率/F0.5 が使われてるけど、どれくらいの誤検出(false positive)を許容するかは状況によっても変わるし、誤検出=10%でもゴミとなることもある。本来はPR-AUCのようにPRカーブ全体として評価してほしい。seq2seq だと、この辺の制御が難しいのは想像できるけど。」 / Twitter
Taku KudoさんはTwitterを使っています 「仕事でNLPやってると、精度・再現率のバランスをどうとるかはいつも悩みどころで、しきい値で制御できるモデルにすることはもちろん、PR-AUCを意識することが増えた。F値一択ってのは、あまり現実的ではない。」 / Twitter

Taku KudoさんはTwitterを使っています 「今日日、高性能の形態素解析より、MeCab互換の使い勝手のいいそれのほうが需要があるのではないかという議論をした。」 / Twitter

Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
google/sentencepiece
Taku Kudo
タスクに合わせたトークナイザ、単語分割に関連したポエム - yasuhisa's blog
形態素解析をして単語を取り出せているつもり・・・か? - Qiita
Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
形態素解析
形態素解析器 Sudachi の辞書が手に入ったので Go で遊んでみた - 押してダメならふて寝しろ
Subword segmentaion と SentencePiece について - Qiita
高岡一馬さんのツイート: "SudachiとNWJCをつかった日本語単語分散表現を公開しました。Apacheライセンスなので商用利用も可能です。 https://t.co/lRkJvRt79V"
大規模コーパスと複数粒度分割による日本語単語分散表現
32ビットCygwin向けmecab-cygwin32 | yasuokaの日記 | スラド
日本語形態素解析エンジンnagisaは古典中国語(漢文)を学習できるのか | yasuokaの日記 | スラド
kagome v1.11.1 をリリースしました。あるいは sync.Pool にまつわるバグの修正 - 押してダメならふて寝しろ
ゼロから作った形態素解析器Taiyakiで学ぶ形態素解析 - The jonki
形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として

スクレイピング

匿名加工情報

高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編(保護法改正はどうなった その2)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編の2(保護法改正はどうなった その4)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・中編(保護法改正はどうなった その3)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・後編(保護法改正はどうなった その7)

クローリング除外

まとめのまとめ - Google 検索
NAVER まとめ[情報をデザインする。キュレーションプラットフォーム]
Twitter

ZMap

The ZMap Project
zmap/zmap: ZMap Internet Scanner
【論文メモ】ZMap: Fast Internet-Wide Scanning and its Security Applications (2013)

Anaconda

Python

Python

python/cpython: The Python programming language
Welcome to Python.org
概要 — Python 3.5.1 ドキュメント
12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.5.1 ドキュメント
10. 完全な文法仕様 — Python 3.5.1 ドキュメント
Python 言語リファレンス — Python 3.5.1 ドキュメント
3.6.2 Documentation
pip 9.0.1 : Python Package Index
wheel 0.30.0a0 : Python Package Index
PyCharm
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
パッケージのインストール — Python Packaging User Guide ドキュメント
Installation — virtualenv 15.2.0.dev0 documentation
Pythonパッケージのドキュメントホスティングサービス「pydoc.io」が公開される | OSDN Magazine
Pydoc
「The Next Platform」で読むグローバルITトレンド(11):PythonはFPGAアクセラレーションの裾野を広げるか (1/3) - @IT
pipenv: 人間のためのPython開発ワークフロー — pipenv 8.1.9 ドキュメント
DebuggingWithGdb - Python Wiki
Python debugging configurations in Visual Studio Code

IDLE

25.5. IDLE — Python 3.6.1 ドキュメント
25.5. IDLE — Python 3.6.2 documentation
IDLE (Python) - Wikipedia
IDLE - Wikipedia
Python入門(1) IDLEを使う
Python入門(1) Python世界に入る
Pythonで学ぶ 基礎からのプログラミング入門 (2) プログラミングの環境を整えよう | マイナビニュース
【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
PythonのIDLEでデバッグを行う方法 | ガンマソフト株式会社
Python入門 - IDLEとPythonの基本的な使い方 - Python Works

pdb

27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント
27.3. pdb — The Python Debugger — Python 3.6.2 documentation
PythonデバッグTips - Qiita
【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース
Pythonにおける効率的なデバック方法入門 - MyEnigma
Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web

Lint

flake8

Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
dreadatour/Flake8Lint: Sublime Text plugin for lint Python files
flake8 3.3.0 : Python Package Index
Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定 | まめりうむ
よみさんのツイート: "flake8はmapとかfilter使っても怒られないからすき"
Vimメモ : flake8でPythonのコードをチェックする - もた日記
VimからFlake8を使うプラグイン - Qiita
Vim - Pythonのflake8やsyntasticで特定のエラーを無視する - ぼっち勉強会

pep8

はじめに — pep8-ja 1.0 ドキュメント
Python のコーディング規約 PEP8 に準拠する - Qiita
PEP 8 -- Style Guide for Python Code | Python.org
[Python] コーディング規約(PEP8)を学んで、Pythonらしいコードを書く - YoheiM .NET
mumumu/pep8-ja: PEP8 日本語版
pep8 - Python入門
Python で pep-8 の「E501 line too long」にしないためのコーディングテクニック | 技術的生存報告記
Pythonで学ぶ 基礎からのプログラミング入門 (36) Pythonのコーディング規約「PEP8」 | マイナビニュース
PEP8を読んでみよう
Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる - もた日記
vimでpythonのコーディングスタイルを自動でチェック&自動修正する - ton-tech-ton

pylint

Pylint - code analysis for Python | www.pylint.org
Pylintの使い方メモ - Qiita
Pythonの主要なLint(pep8, pylint, flake8)の設定方法まとめ - Qiita
Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog
PyLint で Python コードの質をチェックする | CUBE SUGAR STORAGE
Python: pylint でバージョン 3.x 非互換のシンタックスを見つけ出す - CUBE SUGAR CONTAINER
[Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする - dackdive's blog
pylint 1.6.5 : Python Package Index
【python】コードの品質管理について その2 pylint - simudaru's blog
[vim]Syntasticでpython用の設定をする - dackdive's blog

コード補完

Python用のvimの設定 - memorandum

ライブラリ

csvkit

csvkit 1.0.1 — csvkit 1.0.1 documentation
wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats.

Grumpy

本の虫: GoogleがGoによるPython実装、Grumpyを発表
Google Open Source Blog: Grumpy: Go running Python!
渋川よしきさんのツイート: "1スレッドだと性能で負けちゃうのか。ウェブサービスぐらいしか美味しい用途なさそう。 : Google Open Source Blog:Grumpy: Go running Python! https://t.co/2N5V88QLWb via @google"

Numba

Numba — Numba
Python高速化 Numba入門 その1 - ゆとりデータサイエンティストの諸々所感

ByteWeight

るくすさんのツイート: "byteweightとかいう謎のpythonモジュール出てきたので調べたら、David Brumley先生が作ったバイナリから関数を抽出するモジュールらしい。 https://t.co/1mnWNjoGTF"
るくすさんのツイート: "ああ USENIX Sec'14にちゃんと論文があるんだ BYTEWEIGHT: Learning to Recognize Functions in Binary Code https://t.co/oMD3wcuvW8"
るくすさんのツイート: "実際に作ったのはDavid Brumley先生じゃないかもしれない CMUの誰かだ"
ByteWeight
BYTEWEIGHT: Learning to Recognize Functions in Binary Code | USENIX

pandas

Python Data Analysis Library — pandas: Python Data Analysis Library
pandas.DataFrame — pandas 0.20.1 documentation
pandas-dev/pandas: Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
Pandas - Wikipedia
pandas (software) - Wikipedia
Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編 - Qiita
10分でPandasを学ぶ - Qiita
Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
Python pandas データのイテレーションと関数適用、pipe - StatsFragments

3.2. Sympy : Python での代数計算 — Scipy lecture notes
christiangoltz/shaape: Shaape is an ascii art to image converter designed to be used with asciidoc.
PyPIに悪意のあるパッケージがアップロードされていた | スラド
Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと

WSGI

Web Server Gateway Interface - Wikipedia
meinheld 0.6.1 : Python Package Index
Meinheld
mopemope/meinheld: meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
meinheld + WebSocket + mongodb しようとした時エラーが出る - Qiita

Selenium

Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム

MicroPython

MicroPython - Python for microcontrollers
micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
Micro Python で組み込み Python
micropythonを始めよう(ESP8266編) - かいしゃぐらし!
Overview — MicroPython 1.8.7 documentation
micropython/micropython-unicorn: MicroPython on Unicorn

Python AST

32.2. ast — 抽象構文木 — Python 3.5.2 ドキュメント
Python の ast モジュール入門 (抽象構文木を辿る) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて - CUBE SUGAR CONTAINER
Python とマクロ、インポートフックと抽象構文木 - forest book
Python の ast モジュール入門 (NodeVisitor を使う) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木)... | CUBE SUGAR STORAGE
31.3 Python 抽象構文
Python/AST作成を読む - Code Reading Wiki
[Python] ast.literal_evalを使って文字列を評価する | aoshiman.org

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近の Python-dev (2017-02)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)
DSAS開発者の部屋:最近のPython-dev(2017-09)
DSAS開発者の部屋:最近のPython-dev(2018-01)

YAMAGUCHI::weblog

Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog
Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog

methaneのブログ

Python を速くする取り組み - methaneのブログ
Python と Ruby と typing - methaneのブログ
Python 3.6 の(個人的に)注目の変更点 - methaneのブログ
Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく - methaneのブログ

blog

本の虫: Pythonのpymothoaが興味深い
python3.3からparseまわりでなんか変わったのかな - Gentoo metalog
pip 9.1 から msgpack が使われるようです - methaneのブログ
Python の正規表現で IGNORECASE するときは気をつけよう - methaneのブログ
Pythonのマルチスレッドで気を付けるべきこと | 凡人のブログ
pandas DataFrameを省メモリにpickleする - ABEJA Tech Blog
The History of Python.jp
AWS LambdaがPython3.6に対応したのでpyenvとpyenv-virtualenvで環境構築してみた | Developers.IO
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonの環境構築を自分なりに整理してみる – Aki Ariga – Medium
Virtualenv vs. Pyenv - Sho Shimauchi | Tableau Public
Flask を使ったプロジェクトひな形
DSAS開発者の部屋:Pythonアプリの起動を高速化する
リスト内包のひみつ - atsuoishimoto's diary
PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
Python 3でpopcountを計算する - にせねこメモ
はじめてのにき(2017-11-08)
はじめてのにき(2018-06-26)
【Google Colab】Python環境の使い方(無料でGPU付き) | アルゴリズム雑記
Pythonの順序付き辞書OrderedDictの使い方 | note.nkmk.me
JVM上で動くPython 3処理系「cafebabepy」の仕組みと実装 Pythonの深くて美しい言語仕様 - ログミーTech(テック)
cafebabepy PyCon JP 2018 - Speaker Deck
Pythonを経由してC++のオブジェクトを扱う方法 - FPGA開発日記

OSDN

「Python 3.6」がリリース | OSDN Magazine
「Python 3.5」リリース、非同期プログラミング機能の強化や型ヒントの記述機能を導入 | OSDN Magazine
Python向けのグラフィカルなシェル「IPython 5.3」リリース | OSDN Magazine
Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
Pythonパッケージ管理ツール「Pip 10」リリース | OSDN Magazine
QtのPythonバインディング「Qt for Python」、初の公式リリース | OSDN Magazine
「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される | OSDN Magazine
Python考案者のGuido van Rossum氏がPythonに関する意思決定から引退することを表明 | OSDN Magazine
「Python 3.8」リリース、新たに代入式を導入 | OSDN Magazine
Pythonがリリーススケジュールを変更、「Python 3.9」より毎年10月にメジャーリリース公開 | OSDN Magazine

GitHub

SigThief

SigThief: PE signature tool | Firmware Security
secretsquirrel/SigThief: Stealing Signatures and Making One Invalid Signature at a Time

NumPy — NumPy
numpy/numpy: Numpy main repository
riolet/pol: Python one-liners: Awk-like one-liners for python
Taku Kudoさんのツイート: "長いことpypy上に名前だけが予約されていた CLIFが公開されていた。 https://t.co/FmVt0fGYwq C++のPythonラッパをお気楽に作るやつです。SWIGとちがって公開したい関数をoptinするところが良い。 #ifdef SWIG しなくてよい。"
google/clif: Wrapper generator foundation to wrap C++ for Python and other languages using LLVM.
google/skylark: Skylark in Go: the Skylark configuration language, implemented in Go
Overview — skylark 0.9.0 documentation
hit9/skylark: No longer maintained. A micro python orm for mysql and sqlite3.
mjpost/sacreBLEU: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons

Wikipedia

IDLE (Python) - Wikipedia
オフサイドルール - Wikipedia

Qiita

Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita
Anaconda で Python 環境をインストールする - Qiita
リスト内包表記の活用と悪用 - Qiita
Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
pythonでローカルwebサーバを立ち上げる - Qiita
Pipenvでnpm-scriptsみたいにPipfileへコマンドを書く - Qiita

Twitter

その他

Hajime Moritaさんのツイート: "コンパイラやIDEががんばってくれない言語はライブラリ作る人が苦労するしかない気がする。しかしPythonはtype hintingいれてPyCharmをつかうとあら不思議、すっかりJavaみたいになります。JetBrainsやばい。彼らのIDEはぜんぶJava界の陰謀。"
Tsuyoshi Mishinaさんのツイート: "C++で実装したライブラリからCリンケージ関数をエクスポート→ctypesでラップに初挑戦。ネイティブコードの高速さとPythonの豊富なデータ解析機能の良いとこ取り。os.getpid()でカーネルのプロセスIDを取得すれば、VSのデバッガにアタッチも可能。これは強力です。 https://t.co/UW3AZyQlRn"
Manabu Terada@CMScomさんのツイート: "Pyenvはやめよう。Python標準の venv を使ったほうが良いよ。 #PyNyumon 参考はこちら https://t.co/Z9kKadEPNE"
INADA Naokiさんのツイート: "念のため言っておくと、pipenvはpipfileとvenvを組み合わせて便利にするツールで、pipfile(requirementsやlockの新フォーマット)はpypaが開発してます。 https://t.co/0w0yTr4tkm"
Kengo Sawatsuさんのツイート: "@shirouzu 僕も最初「えー結局win32をctypesシなくちゃいけないの?学習メンドクサ!」ってなりましたが、pywin32で殆ど呼び出せるので、そちらを検討したらどうでしょうか? https://t.co/m0rQg1v2rH win32file.GetDriveType("e:\")… https://t.co/W0p2WMX7jd"
win32com - PyWin32(Python for Windows extensions) - 愚鈍人
tomo🐧さんのツイート: "__matmul__ が Python 3.5 で導入されたのってあんまり有名じゃないのな https://t.co/I2qm7MlGcX"
What’s New In Python 3.5 — Python 3.6.4 ドキュメント
Atsuo Ishimotoさんのツイート: "よく勘違いしてる人がいるが、range()が返すのはイテレータでもジェネレータでもないから注意するんだ。… "
Kazuho Okuさんのツイート: "AST変わらなくても変数名変えたら動作変わる「可能性」はあるでしょ。例外のメッセージだって変わるわけだし。テストがめんどくさい場合の線引きとしては妥当だと思う / “20 万行超のコードベースをテストせずにリファクタリングリリー…” https://t.co/G6YswLHPFv"
Takeshi ITOHさんのツイート: "式を組み立ててevalするのも影響ありますね。… "

@fadis_

Fadisさんのツイート: "Python-3.7.0からdata classes(PEP 557)がサポートされる。dataclass指定付きで作成されたクラスは含まれているメンバとその初期値を列挙するだけで__init__と__repr__と各種比較演算と__hash__が暗黙に定義される。https://t.co/PNNYmOv8bd"
Fadisさんのツイート: "A-Zで分けて分散しない案件といえばこれを思い出すんだけど、今のpypiは、パッケージ名じゃなくて何かのハッシュでディレクトリ分けるようになってる https://t.co/4gv6Uu54z9"
Fadisさんのツイート: "Pythonに、式の中で右辺値に名前をつける文法が提案されていて、でも「その名前を=の左辺にもって来たら何が起こるんだ!!」ってなってPythonガチ勢達が溢れ出るカオスを抑え込むのに奔走してるっぽい"
Fadisさんのツイート: "PEP 572 -- Syntax for Statement-Local Name Bindings https://t.co/3ADdHHX4pT"
Fadisさんのツイート: "Python 3.7がリリースされた。Python 3.7ではpdbのimport無しでデバッガに落とせる組み込み関数breakpoint()、Cの構造体のように使われるクラスをより簡単に作れるようにするdataclass、コルーチンローカルな変数を作るContextVar等の機能が追加される https://t.co/eLOQq9dSRb"
Python Insider

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "Python3でsymlinkかどうかの判定関数(is_symlink)は存在するが、Junctionかどうかの判定関数はない様子。 (さらにリパースポイント全般の種別を知る方法が知りたいところ) ctypes等でAPI呼び出しするしかないのかな?"
SHIROUZU(白水啓章)さんのツイート: "Windowsのstat_resultにはst_file_attributesメンバがあり、os.stat().st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT などとすれば、リパースポイントかどうかの判定が可能。 https://t.co/JeE4pE4N0k"
SHIROUZU(白水啓章)さんのツイート: "この方法だとJunction判定は可能だが、symlinkファイルは解決後のstat値となるため(Junctionではそうならない不思議)、そちらも判定したい場合、is_symlinkは別途使うか、os.lstat()を別途発行する必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、Python1.5xは共通鍵周りが無いのも困ったが、それ以上にunicodeどころかSJIS/EUCですら変換ライブラリが無かった。 で、kconvライブラリの利用が殆ど唯一の選択肢だったが、GPL縛りありという状態と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "こんなPython1.xの歴史を経ていると、Python2.2-2.4辺りで入った、unicodeおよびcjkcodecs周りは非常な福音だった…が、Python3.xの文字列=UCS-4統一はそれやりすぎだろ感(笑) 寄せるなら、utf-8統一の方がうれしかったな…どうせIVSとかあって1つの器に1文字情報が入り切るわけでもないし。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CythonとPyPy比較をしているページをいくつか見てみたが、素のPythonのままだとPyPy優勢が多く、cdefや引数型指定を多用するとCythonが圧勝する例が多い印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "くだんのブログでは、「取り下げた修正(AST が変化する修正)」に「変数名の typo 修正」を入れているような。 Pythonだと、ローカル変数も変数名がバイトコードに残るわけで。… "
鯉江さんのツイート: "lexical scopeならローカル変数名の変更はほかの名前を隠してしまわないならテスト不要になるべきところASTダンプ単純比較だと擬陽性になるが、そもそもpythonはバイトコードが違ってしまうから影響がないとは言えないということでしょうか? ところでローカル変数名って例外に影響あるんでしょうか?… https://t.co/2QrdIjgX8I"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Pythonの場合、変数は変数名をキーとして、関数辞書→モジュール辞書→グローバル辞書、と実行時にフォールバックして探索しますよね。 従い名前が変わると挙動が変わるのは普通にありうる話で、ASTも(トポロジは変化せずとも)変数名を記述したリーフ内容が変わって当然かなと。… https://t.co/lNoUIwocwd"
Shirouzu Hiroaki(白水啓章)さんのツイート: "んなこたない。 ---- 「入出力のみを行うスレッド(ネットワークI/OやディスクI/Oなど)であれば、GILの競合を招く」 https://t.co/El8xAy3Xir"
なぜPythonはこんなにも遅いのか? | POSTD
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワーク等の入出力がないなら、GILの競合を招く、が正解。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "syscall中はGILは外れていたはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名付きexeが SmartScreen にブロックされなくなったことを確認。 次回のリリースから、exeリリースに変更する予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「任意の整数列をn次方程式に変換する、というお題をnumpyで解いて、numpyの使い方を少し訓練…というか、ほぼ polyfit を呼ぶだけだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「内部でフーリエ級数使って解いているのかな?(ぜんぜん知らない)」 / Twitter
404 Blog Not Found:宴会ネタ - 揚げ足取り数列
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「普通に最小二乗法だった。 https://t.co/8JDhKYNc4k」 / Twitter
非線形最小二乗法 - Wikipedia

@shibu_jp

渋川よしきさんのツイート: "macユーザーがpyenvを使いたがるの、どうもHomebrewが複数バージョンのPythonをインストールできなくなって、それの回避でpyenvを使う流れっぽい。ダメなパッケージマネージャのしわ寄せをこっちに投げてくるな、という話っぽい。MacPorts使ってたから知らんかった"
渋川よしきさんのツイート: "Pythonは動的型付け言語だって言われるけど、引数の数とかのチェックとか厳しいし、JavaScriptと比べると硬い言語だなって思う。プログラミング言語の動的、静的ってデジタルじゃなくて、アナログ値だよね。"
渋川よしきさんのツイート: "例えば、Pythonでウェブサービス作っているとして、Djangoの使い方だけじゃなくて、HTTPの仕組みを知る(1つ下のレイヤー)と、メンテしやすいソフトウェア構造(1つ上のレイヤー)を知るのは大事だと思う。そうやって1つずつ広げるのは大事。"
渋川よしきさんのツイート: "Pythonの特殊メソッドの方式。ライブラリからすると、後方互換性が崩れないというのはすごい。… "
渋川よしきさんのツイート: "mypyで型をばっちりつけるPythonプログラミングをやってみているけど、pep8の文字数制限が3倍ぐらい厳しく感じる。"
渋川よしきさんのツイート: "Goのテスト哲学は「うん、なるほど」と思うのだけど、PythonやるとassertEqual便利って思ってしまう。"

@taku910

Taku Kudoさんのツイート: "python の sdist と wheel のパッケージングの挙動が違ってて死ねる。"
Taku Kudoさんのツイート: "Pythonの闇を見た。C++11/Windows/Python2.7という組み合わせは無理っぽい。 https://t.co/hZRXGXqmVX"
Taku Kudoさんのツイート: "manylinux にはホント苦労させられたけど (cmake のインストール、腐った pthread_once の自作など)、目的のためなら多少汚くてもゴリ押しするスタンスは評価しないと。互換性が壊れまくる物をリリースしたり、そもそもバイナリパッケージがない状況にくらべれば、ユーザに対するメリットは大きい。"
pypa/manylinux: Python wheels that work on any linux (almost)
Taku Kudoさんのツイート: "FYIですが、manylinux は docker 上で作るのが正解です。実際に使っているスクリプトがあるので参考になれば。travis 上でも動きます。 https://t.co/K7cCtyUtAT"
Taku Kudoさんのツイート: "CIしてんのというツッコミは置いといて、「ソースコードを変更する」にC拡張が含まれるとNGなような。普通にASTがいっしょで出力が異なるコード作れる。 https://t.co/HEASwoZf1C"
20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog

@ncaq

エヌユルさんのツイート: "リフレクションがあるから動作変わる可能性はあるのでは / “「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよ…” https://t.co/Z57ERS2o6b"
「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよねって記事なのに伝わってなくて笑った - bkiosのコメント / はてなブックマーク
エヌユルさんのツイート: "ASTのdiffがGitHubのpull requestにCI的に出てきたら有用っぽい / “20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog” https://t.co/8Cc76FS8uF"

The Python Graph Gallery – Visualizing data – with Python
Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
Python.jp SlackからDiscordへ - atsuoishimoto's diary
Python.jp Discordサーバ - python.jp
Python 言語リファレンス — Python 3.6.5 ドキュメント
Python - pythonのvar++とvar=var+1で挙動が異なるのはなぜ(151179)|teratail
セイウチ演算子を導入した「Python 3.8.0」がリリース ~“Microsoft Store”からも入手可能 - 窓の杜

Jupyter

Project Jupyter | Home
Project Jupyter | Install
Installing Jupyter Notebook — Jupyter Documentation 4.1.1 alpha documentation

Qiita

データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
Jupyterインストール - Qiita
Jupyter Notebookでブログ書きたい - Qiita
Jupyter事始め - Qiita

Twitter

七誌さんのツイート: "プラットフォーム依存GUIを書きたくない→Web化?→ローカルだけで動かしたい→Electron?→配布物が大きくなるのでブラウザは既存のものを流用したい→Webサーバーとして動くローカルアプリ と考えて、Jupyter Notebookがこの形態だと気付いた。現実味はある。"
酔漢@ニャー将棋さんのツイート: "昼休みの間、Jupyterで遊んでいた。理系世界の勉強方法は確実に変わるぞ。 https://t.co/7psy5eAQ5s"
七誌さんのツイート: "以前、電卓アプリではなくPythonを電卓代わりにすれば、ログも記録できるというような説明をしていた。しかしIDLEだとちょっと説得力がなくて、ほとんど定着しなかった。Jupyter Notebookだったらもっと説得力があったのだろうけど、当時は存在を知らなかった…"
S.Asa♥さんのツイート: "データ可視化できるploty使うとJupyter上でオシャレグラフがすぐできる。チュートリアルを一通りやったけど、すごく直感的でわかりやすい。ラベルにLaTexも使えるようなので、物理計算の可視化とかにすごくよさげ! https://t.co/56vdUsgPRw https://t.co/R0RJ9wBgVx"
Plotly
CodeXP/新・どう書く.org管理人さんのツイート: "Jupyterの内部実装を追うのって結構勉強になるのでお勧め。traitletsを用いることによる柔軟性の高い起動方法や、1プロセスで同時に高負荷なセッションを捌けるTornadoのnon blocking I/Oの有難み、Zero MQによる軽量なキュー処理など。自前アプリへの組み込み方法も含めて、いつか発表したいなー。"
piqcyさんのツイート: "Jupyter Notebookからスクリプトを抽出してPython/R/Juliaファイルにする、さらにファイルを修正してJupyterに戻す、ということを可能にするツール。これで、Jupyter上のスクリプトを好きなエディタで編集して反映させることができる。 https://t.co/wWdtDkAkx6"
mwouts/jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts

私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート | WEB ARCH LABO
ゼロからはじめるPython(2) Jupyterノートブックで気軽にPythonをこね回そう | マイナビニュース
AnacondaとJupyter NotebookでPythonの練習が捗った話 | フクロウのブログ|株式会社フクロウ|株式会社フクロウ
Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法
データ分析の必需品「Jupyter Notebook」の魅力とは - DeepAge
Jupyter Notebook を使ってみよう – Python でデータサイエンス
Jupyter Notebookを利用してお手軽分析環境構築 | DATUM STUDIO 株式会社
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES
Jupyter Notebookの拡張機能を使ってみる - はしくれエンジニアもどきのメモ
danielfrg/pelican-ipynb: Pelican plugin for blogging with Jupyter/IPython Notebooks
Jupyter (IPython Notebook) で書いたものをブログで共有したくて - ニートに片足突っ込んでいるブログ
オレオレJupyter運用法 ~常にJupyter Notebookを開きつつ任意のディレクトリをターミナルから開く · Wolftail Bounds
Colaboratory - Google 検索

Downloads | Anaconda
Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
「Python」ディストリビューション「Anaconda」に「Visual Studio Code」が追加 - 窓の杜
データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE
Hello, Colaboratory - Colaboratory

pythonとseleniumを使ってウェブスクレイピングをしてみた - Qiita
Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
Pythonでsqlite - Qiita
Pythonスクレイピングメモ - Qiita
PythonとBeautiful Soupでスクレイピング - Qiita
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム
スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 | トップコート国際法律事務所
takuya-aさんのツイート: "なるほどー、アルゴリズム的にも面白いし、Wikipedia使ったデータ処理するときに役立ちそう / 1件のコメント https://t.co/H0NqHvoMBY “トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.” https://t.co/tAasAbblqA"
トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
katsugeneration/ja-wiki-category: Japanese Wikipedia Category Data Mining Repository
Python統合開発環境「PyCharm 2019.2.1」リリース | OSDN Magazine

Wikipedia

コーパス - Wikipedia
コーパス言語学 - Wikipedia
言語資源 - Wikipedia
計算言語学 - Wikipedia
ツリーバンク - Wikipedia
自然言語処理 - Wikipedia
国立国語研究所 - Wikipedia

Qiita

さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
さだまさし N-gram コーパスを用いてサジェスト機能を作ってみる - Qiita

Twitter

SentencePiece

takuya-aさんはTwitterを使っています: 「いまさらだけどSentencePieceの論文読んだ。ユニグラム言語モデルでエントロピー的に最適なサブワード集合を獲得するアルゴリズムがおもしろい。」 / Twitter
takuya-aさんはTwitterを使っています: 「1. 十分に大きい語彙集合を用意し、サブワードの最初の候補とする。コーパスに現れるすべての文字集合に加え、頻度の高い部分文字列をコーパスから計算する。後者はコーパスからSuffix Arrayを構築することで線形時間で計算できる。 2. EMアルゴリズムでサブワード分割を最適化(続く)」 / Twitter
takuya-aさんはTwitterを使っています: 「3. 各サブワードに対して、それを抜いたときに下がる尤度の量を計算 4. それらをソートして、下位n%の語彙をサブワードから削除(ただし1字のものは残す) 5. 2-4を与えられた語彙数になるまで繰り返す」 / Twitter
takuya-aさんはTwitterを使っています: 「論文へのリンクはこちら https://t.co/C0fTDqGcXa」 / Twitter
[1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
Taku KudoさんはTwitterを使っています 「tensorflow-text が sentencepiece を公式にとりこんでくれたので、tensorflow 2.2.0を最後に tf_sentencepiece を廃止できそう😀 https://t.co/s5fvnUbwWs」 / Twitter
Taku KudoさんはTwitterを使っています 「tf.text sentencepiece のAPIは eager 動作に特化して、こういっちゃ見も蓋もないが sentencepiece の Python wrapper だけで再実装できる? TF1時代の計算グラフのノードの一部としてのAPIであれば TF ops の意味があったけど、そもそもTF1古いからいらないのだろう。」 / Twitter
Taku KudoさんはTwitterを使っています 「結局一日仕事。tf.2.2.0 対応させて、新しいリリース出してて、issue数を半減。https://t.co/YoKd2xwFh0」 / Twitter
Issues · google/sentencepiece
Taku KudoさんはTwitterを使っています 「sentencepiece の byte_fallback は、未知文字を UTF-8 byte sequence にバラす大技で、未知語が完全になくなります。意外とうまくいくようで、NMTで使うとレアな文字(絵文字など)はコピーするといった動作が学習されるようです。」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepiece が iterable object から直接学習できるようになったので、https://t.co/NQ2XO5LQ7v との親和性が格段に上がったはず。適当なサンプルコードをそのうち書きます」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepieceに機能追加要求がぼちぼちくるけど、その機能がなぜ必要なのかを書いてほしいし、聞くことにしている。大抵の場合、既存機能+αで workaround できるし、ディスカッションを通じて万人に有益かどうか判断してからでも遅くない。mecabもそんな感じであまり機能過多にはなってない。」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepieceの引用数がmecabのそれを抜いたようです😀 https://t.co/1JnAvtWbRH」 / Twitter
‪Taku Kudo‬ - ‪Google Scholar‬
Katsuhito Sudoh (ja)さんはTwitterを使っています 「なんか毎年この時期に SentencePiece は手法名でもアルゴリズム名でもないぞというコメントを書いているので、何度でも工藤さんのコレを思い出したい。」 / Twitter
Taku KudoさんはTwitterを使っています 「@mamoruk SentencePiece のアルゴリズムというと曖昧で、デフォルトは Unigram 言語モデル、それとは別にBPEをサポートしています。翻訳精度で比較すると二つはあまり変わりませんが、前者は確率的サンプリングが可能でACLの話に続きます。https://t.co/wfP4m5LBWv」 / Twitter
[1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates

Taku Kudoさんのツイート: "https://t.co/C38UPC5Kz1 大規模な字幕翻訳コーパス (おそらく OpenSubttile?) せっかくなので、文脈情報がほしい。対話と翻訳をからめた研究が進むかも。"
JESC
asciianさんのツイート: "青空文庫全体のデータがGitHubからダウンロード可能になっている!これはテキストマイニングとかで最高なのではないだろうか。https://t.co/mtXrY4WKwL"
aozorabunko/aozorabunko
UniDic広報担当さんのツイート: "実は、この世には、https://t.co/v7HHtrgm3A というツールがございまして…… https://t.co/09Jl2PZvsK https://t.co/XjJBLaEgpU"
ChaKi プロジェクト日本語トップページ - OSDN
Taku Kudoさんのツイート: "日本語日常会話コーパス届いた (個人契約)  ちょろっと見たがこれは凄い。ボキャ貧ですまぬ。"
hiroshiさんはTwitterを使っています: 「Sudachi辞書に同期した同義語辞書がリリースされています。17,051グループ・46,000語が収められています。 https://t.co/RWOApQHKFp https://t.co/sx5WJk7ziC」 / Twitter
SudachiDict/synonyms.md at develop · WorksApplications/SudachiDict
SudachiDict/synonyms.txt at develop · WorksApplications/SudachiDict
hiroshiさんはTwitterを使っています: 「リリースおめでとうございます㊗️ 自然言語処理はもちろん検索用同義語辞書としても利用価値の高い、商用利用可能な貴重な言語資源ですね。形態素辞書と同期して同義語辞書が今後も拡張整備されていくならば、SudachiはElasticsearchをはじめ多くの検索エンジンの標準日本語NLPになっていくでしょう🎊🇯🇵」 / Twitter
Sorami HisamotoさんはTwitterを使っています: 「ワークス徳島NLPから、 同義語辞書をリリースしました 🎉 https://t.co/RS1Mt7WPWe 専門家による高品質な言語資源です。Sudachi辞書と同様にApache 2.0。 現在1.7万グループ、4.6万語収録。語彙辞書と同様、継続的に拡充していく予定です!Elasticsearchへの接続も開発中。 https://t.co/btG8mmgyuZ」 / Twitter
hiroshiさんはTwitterを使っています: 「まずは文化庁公式見解を読んでおくのが良いと思います。 https://t.co/IrlSgDp64P 文化庁「著作権法の一部を改正する法律(平成30年改正)について(解説)」 著作物に表現された思想又は感情の享受を目的としない利用(新法第30条の4関係) https://t.co/0tzkN96zER」 / Twitter
r1406693_11.pdf
Yuta Nakamura 🌧️🐠🐠🐠さんはTwitterを使っています: 「著作物からのコーパスや訓練済み△△の作成・公開をするにあたって,NLPerの皆さんは法的な問題をどこで相談しているんだろう」 / Twitter
hiroshiさんはTwitterを使っています: 「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合(以下「非享受目的」という。)には,その必要と認められる限度において,利用することができることとした。」 / Twitter
hiroshiさんはTwitterを使っています: 「同条は,上に述べたように実質的に通常権利者の対価回収機会を損なわないものの,形式的には権利侵害となってしまう一定の行為を広く権利制限の対象とする趣旨で新たに規定を整備するものである。」 / Twitter
hiroshiさんはTwitterを使っています: 「こちらの法律事務所の記事に具体的な解説があります。 https://t.co/zSTAx7ckn5 「著作物の本来的利用には該当せず、権利者の利益を通常害さないと評価できる行為類型」「モデル生成を行う他人のために学習用データセットを作成して不特定多数の第三者に販売したりWEB上で公開する行為」等々記載あり〼」 / Twitter
進化する機械学習パラダイス ~改正著作権法が日本のAI開発をさらに加速する~ | STORIA法律事務所
じょじょんきさんはTwitterを使っています: 「Webクロールベースの870万の日英ペア文のコーパスを公開|[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus https://t.co/7icfPmN0YV」 / Twitter
[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus
hiroshiさんはTwitterを使っています 「日本語の学習済みWord Embeddingの比較評価をしている記事があるけど、複合辞と文節の区別がないのもしかり、評価方法も客観的でなくて残念。ワークス徳島研の論文に学ぶことは多くあるはず。」 / Twitter

テキスト解析:ルビ振り - Yahoo!デベロッパーネットワーク
新辞林 - 言語と知能
Googleが自然言語処理の弱点「言い換え」を克服するデータセットを公開 - GIGAZINE
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コーパス分析からみた、合理性を失いつつある現代の言説。1850年から2019年までのGoogle N-gramを分析すると、近代以降、感情に訴える文章は減り続けていた。しかしこの傾向は1980年から増加に転じており、2007年以降は特に顕著である。同時に事実ベースの言説は減っている。 https://t.co/exhv1pV1Bv」 / Twitter
The rise and fall of rationality in language | PNAS

Universal Dependencies

Universal Dependencies

Universal Dependencies
日本語係り受け解析エンジンとしてのGiNZA・StanfordNLP・UDPipe | yasuokaの日記 | スラド
Universal Dependenciesにおける「二重主語」の問題 | yasuokaの日記 | スラド
Universal Dependencies 2.4がリリース | yasuokaの日記 | スラド
Universal Dependencies と類型論 - murawaki の雑記
「語」とはなにか・再考 - murawaki の雑記
研究紹介
松田寛 - 短単位品詞の用法曖昧性解決と依存関係ラベリングの同時学習
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (言語理解とコミュニケーション)
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (思考と言語)
Universal Dependencies 日本語コーパス
P5-8.pdf
E3-4.pdf
im2017.pdf
「毎日、友だちといっしょに校庭を走る。」の「毎日、」は、どこに係っているのか | yasuokaの日記 | スラド
「象は鼻が長い」の「象は」は、どこに係っているのか | yasuokaの日記 | スラド
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
Universal Dependencies 2.5がリリース | yasuokaの日記 | スラド
Universal DependenciesとStanford Typed Dependenciesと矢印の向き | yasuokaの日記 | スラド
日本語Universal Dependenciesにおける名詞句の並列はconjの夢を見るか | yasuokaの日記 | スラド
Universal Dependencies 日本語コーパス
形態素解析モジュールfugashiが「軽量版UniDic」を伴ってリリース | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をCamphr-KNPで解いてみる | yasuokaの日記 | スラド
日本語Universal Dependenciesで二文節間の「係り受け」をエミュレートするには | yasuokaの日記 | スラド
UD_Japanese-GSD (v2.6向けdev)プレリリースに関して | yasuokaの日記 | スラド
Universal Dependencies 2.6がリリース | yasuokaの日記 | スラド
「申し訳ないが私は興味ない」の「ない」は同じなのか違うのか | yasuokaの日記 | スラド
「近いとしても」と「親としても」では単語間の係り受け構造は異なるのか | yasuokaの日記 | スラド

spaCy と GiNZA

hiroshiさんはTwitterを使っています: 「本日のUniversal Dependencies Symposium@国立国語研究所での発表資料です。 「GiNZAで始める日本語依存構造解析〜CaboCha, UDPipe, Stanford NLPとの比較」 https://t.co/T3mwQN6Lep」 / Twitter
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開 | Recruit - リクルートグループ
NLP2019 松田寛 - GiNZA
[“GiNZA - Japanese NLP Library”] | [“Universal Dependenciesに基づくオープンソース日本語NLPライブラリ”]
megagonlabs/ginza: A Japanese NLP Library using spaCy as framework based on Universal Dependencies
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZAとそのベースとなるspaCyについての秀逸な解説です。Text Classificationまで詳細に説明されています。spaCyの内部構造を知る上でとても貴重な情報源だと思います。 オージス総研 はじめての自然言語処理 - 第4回 spaCy/GiNZA を用いた自然言語処理 https://t.co/uY4Yq9bnib」 / Twitter
はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
spaCyと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZAで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.0.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.2.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
hiroshiさんはTwitterを使っています: 「今後ginzaコマンドに並列実行オプションを追加するときには、形態素解析レイヤだけの高速動作モードも追加しようかと。使う側はとにかくシンプルな記述で最大速度が得られれば満足だと思うので。」 / Twitter
hiroshiさんはTwitterを使っています: 「GiNZAは依存構造(or係り受け)解析器ですが、形態素解析器と勘違いされがちなので、GiNZAと同時にインストールされる高速な形態素解析器を、 $ sudachipy で実行するようREADMEで案内しようと思います。」 / Twitter
多言語解析ツールspaCy 2.2.2がリリース | yasuokaの日記 | スラド
GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZA v3.0.0 (Benitoite)をリリースしました。https://t.co/CDumSLJb6o pip install ginza でインストールが完了。 形態素解析専用のginzameコマンドを追加。 UD_Japanese-BCCWJ+GSK2014-Aでparser+nerをマルチタスク学習することで精度もかなり改善しています。 ぜひお試しを!」 / Twitter
hiroshiさんはTwitterを使っています: 「pipenvを含む一部の環境で形態素辞書が読み込めない問題に対処したGiNZA v3.1.0をリリースしました。 pip install -U ginza で最新版に更新し、ginzaコマンドを実行した際に ValueError: cannot mmap an empty file のエラー表示で異常終了する場合は、 ginza -i で形態素辞書を初期化してください。 https://t.co/lDzSoEASgb」 / Twitter
GiNZA v3.1.0で読む「ライトの兄弟オスカーはコミックブック作家だ。」 | yasuokaの日記 | スラド
ginzaとnetworkxを使って係り受けパスで文をインデクシング - ナード戦隊データマン
係り受けパスによるインデクシングを日英に一般化 - ナード戦隊データマン
何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話 - Qiita
hiroshiさんはTwitterを使っています 「GiNZA v3で強化された固有表現抽出をマスキングに応用した記事です。独自コーパスでしっかり定性評価されています。spaCyのCNNモデルは追加学習も可能です。一度コーパスをGiNZAで解析してENEタグを付与し、それらと競合しない新たな抽出対象をタグ付けしたコーパスでNERを追加学習するのがよいかと。 https://t.co/S5UQs3FDAQ」 / Twitter
株式会社AI ShiftさんはTwitterを使っています 「*TECH BLOG更新* 固有表現抽出を用いて個人情報のマスキングができるかを検証した記事の続編です。今回はGiNZAを用いた検証を行いました。 https://t.co/nqvMDXeOnx」 / Twitter
GiNZAによるテキストデータからの個人情報の抽出 | 株式会社AI Shift
hiroshiさんはTwitterを使っています 「GiNZA v3の固有表現抽出はENE(関根の拡張固有表現階層)体系で学習しています。 https://t.co/H9HuzZHCBH https://t.co/Fk1DhaWAOa そしてpipelineの後段でENEからspaCy標準のOntoNoted5固有表現ラベルを独自に拡張した体系に変換しています。 追加学習時はENE体系を考慮したタグ付けを行ってください。」 / Twitter
関根の拡張固有表現階層 -7.1.1-
liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html
spaCy上の係り受け可視化ツールdeplacy | yasuokaの日記 | スラド
CamphrがKNPの係り受け解析をサポート | yasuokaの日記 | スラド
「吾輩はここで始めて人間というものを見た」の文節係り受けはどうなっているか | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をGiNZAで解いてみる | yasuokaの日記 | スラド

Stanza(StanfordNLP)

Masato Hagiwara (萩原正人)さんのツイート: "スタンフォード大のNLPグループから、ニューラルで分かち書き、品詞タグ付け、係り受け解析ができる Python ネイティブのライブラリが登場。Universal Dependencies 準拠、53言語に対応。前処理の新たなスタンダードになりそう。https://t.co/Qu9fzztkNH"
StanfordNLP | StanfordNLP
「令和」の係り受け解析エンジン(仮)としてのStanfordNLP | yasuokaの日記 | スラド
StanfordNLPで読む『吾輩は猫である』 | yasuokaの日記 | スラド
CoNLL-U Format
64ビットCygwinにStanfordNLPをインストール | yasuokaの日記 | スラド
piqcyさんはTwitterを使っています 「stanfordnlpが進化したStanzaが公開。spaCyのように自然言語の各種処理(単語分割・依存構造解析・固有表現認識etc)をパイプラインで実行可能。PyTorchで構築されたニューラルベースのモデルで解析を行う。多言語対応がうれしい(日本語含む66言語)。ライセンスはApache2だが内包するCoreNLPはGPLで注意 https://t.co/OAawRDkhpE」 / Twitter
piqcyさんはTwitterを使っています 「なおspaCyからStanzaを利用することも可能 https://t.co/3OHYIIJKym」 / Twitter
多言語文法解析ツールStanzaリリース | yasuokaの日記 | スラド
Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
Re: Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
UD-Kanbun・spacy-stanza・spacy-udpipeの自動文切り機能をOFFにするには | yasuokaの日記 | スラド
「New York」と「Hà Nội」と「新大阪」は1語なのか2語なのか | yasuokaの日記 | スラド

UDPipe

「令和」の係り受け解析エンジン(仮)としてのUDPipe | yasuokaの日記 | スラド
UDPipe APIのpython3ラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipe APIの両方にアクセスできるpythonラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析 | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析の改良 | yasuokaの日記 | スラド
多言語文法解析ツールとしてのspacy-udpipe | yasuokaの日記 | スラド

unidic2ud

現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud | yasuokaの日記 | スラド
unidic2udと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータ | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータと本物のCaboChaとの違い | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータをWindowsで動かすには | yasuokaの日記 | スラド
UniDic2UDによる単語間の係り受けと二文節間の係り受け | yasuokaの日記 | スラド
日本語における単語間の係り受け解析 | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのUniDic2UD | yasuokaの日記 | スラド
UniDic2UDにおける品詞間の対応 | yasuokaの日記 | スラド
UniDic2UDとGiNZAで読む「難儀な難儀は難儀する」 | yasuokaの日記 | スラド
「港の見える丘」の「港」は「見える」の主語なのか | yasuokaの日記 | スラド
日本語の言語処理における「単語」長の問題 | yasuokaの日記 | スラド
動詞の連用形による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
接続助詞による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド

NLP-Cube

「令和」の係り受け解析エンジン(仮)としてのNLP-Cube | yasuokaの日記 | スラド
日本語係り受け解析エンジンとしてのNLP-Cube | yasuokaの日記 | スラド
NLP-Cubeで読む『吾輩は猫である』 | yasuokaの日記 | スラド
64ビットCygwinにNLP-Cubeをインストール | yasuokaの日記 | スラド

COTOHA API

COTOHA APIのUniversal Dependencies向けpythonラッパー | yasuokaの日記 | スラド
COTOHA APIのUniversal Dependencies向けpython3ラッパー | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受けをCOTOHA APIで解析する | yasuokaの日記 | スラド
COTOHA API

Google ColaboratoryでCamphr-Udifyを使うには | yasuokaの日記 | スラド
Google ColaboratoryでCamphr-Udifyの結果を可視化するには | yasuokaの日記 | スラド
CygwinにSciPyをインストール | yasuokaの日記 | スラド

Graphviz

望遠鏡は「望遠」「鏡」なのか「望」「遠鏡」なのか | yasuokaの日記 | スラド
「望遠鏡で泳いでいる彼女を見た」の係り受け関係 | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphvizで可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphviz 2.38で可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re: 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re:「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド

照応解析

リーディングスキルテストは、何の「係り受け」をテストしているのか | yasuokaの日記 | スラド
D5-2.pdf
照応解析 - Wikipedia
_pdf
ono_bthesis.pdf
照応・照応解析まとめ|直接照応・間接照応・外界照応・ゼロ照応 - アズメディア|広告とメディアを考える(@_danboooo_ )
照応解析
省略・照応解析
ゼロ照応解析について - あしたからがんばる ―椀屋本舗
CiNii 論文 -  外界照応および著者・読者表現を考慮した日本語ゼロ照応解析
https://ipsj.ixsq.nii.ac.jp

談話構造解析

談話構造解析 DIA
奥村研究室ホームページ
P3-15.pdf
F6-2.pdf
談話構造 | Nishida Lab
自然言語処理18_31
_pdf
談話構造理解(だんわこうぞうりかい)とは - コトバンク
#3211. 統語と談話構造
Open Resources - 東北大学 乾・鈴木研究室 / Communication Science Lab, Tohoku University
コロナ社「文脈解析」本のレビュー - Qiita
公開ツール - NAIST Computational Linguistics
太田 博三 - 「コロナ社」「文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ 10)... | Facebook

述語項構造解析

英語形態論
述語項構造シソーラス (岡山大学竹内研)
自然言語処理21_333
B4-5.pdf
E1-1.pdf
日本語文章に対する 述語項構造アノテーション仕様の考察
述語項構造解析 | Yuta Hayashibe
nlp13.pdf
10-6-B3-4.pdf
述語項構造シソーラス | Takeuchi Lab
述語項構造のシソーラス分類と意味役割の設計について
D4-3.pdf
JCLWorkshop_No.7_18.pdf
JCLWorkshop_No6_06.pdf
述語項構造解析のための格フレーム辞書構築の検討 - 長岡技術科学大学 自然言語処理研究室
研究会 - BCCWJへの述語項構造シソーラスの付与による意味役割の検討
CiNii 論文 -  述語項構造シソーラスによる述語と名詞の構造化
takeuchivthai.dvi

スラド

Montague形式意味論とМельчук依存文法は、どちらが漢文の自動解析に向いているか | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 漢文の依存文法解析と返り点の関係について
AIを用いた漢文の文法解析 | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 古典中国語(漢文)の形態素解析とその応用
Kyoto University Research Information Repository: 四書を学んだMeCab+UDPipeはセンター試験の漢文を読めるのか
Kyoto University Research Information Repository: Universal Dependenciesの拡張にもとづく古典中国語(漢文)の直接構成鎖解析の試み
udkanbun · PyPI
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
「駆け抜ける」と「走り切る」は複合動詞なのか動詞連続なのか | yasuokaの日記 | スラド
「着たくない服は着ない」の「ない」はcliticかaffixか | yasuokaの日記 | スラド
「知を致すは物に格るに在り」の「に」はcliticかaffixか | yasuokaの日記 | スラド
「うなぎを浜松に食べに行く」は係り受け解析できるのか | yasuokaの日記 | スラド
東ロボは何を係り受け解析していたのか | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのCamphr-Udify | yasuokaの日記 | スラド
64ビットCygwin向けAllenNLPインストーラ仮公開 | yasuokaの日記 | スラド
WSL上のLinuxにKNPをインストールする | yasuokaの日記 | スラド

Wikipedia

構成素 - Wikipedia
カテナ (言語学) - Wikipedia
依存文法 - Wikipedia
ルシアン・テニエール - Wikipedia
統語論 - Wikipedia
補語 - Wikipedia

Twitter

Sorami HisamotoさんはTwitterを使っています 「ワークス徳島NLPでは日本語単語ベクトル「chiVe(チャイブ)」も公開しています! 本日 v1.1 をリリース。 国立国語研との共同研究、100億語規模コーパス「NWJC」、形態素解析器「Sudachi」の複数分割単位を併用、word2vec (Skip-gram) で学習。 https://t.co/Uf1Y0OgIZW #NLP2020sponsor #NLP2020」 / Twitter
WorksApplications/chiVe: Japanese word embedding with Sudachi and NWJC
Taishi IkedaさんはTwitterを使っています 「形態素解析器を比較するためのライブラリを公開しました! https://t.co/rvpebKewMw 日本語コーパスのダウンローダーと前処理機能を搭載しており、数行のコードで処理速度の比較、単語分割の比較、後段タスクでの精度比較が行えます。 またDockerでは、環境構築なしに9種類の解析器を比較できます! https://t.co/DhmbflEVqe」 / Twitter
taishi-i/toiro: A comparison tool of Japanese tokenizers
takuya-aさんはTwitterを使っています 「PMI を正規化する Normalized PMI (NPMI) を使ったフレーズ認識。そこそこうまくいくみたい / 他4件のコメント https://t.co/kA1iGpIdJU “mots quotidiens.” https://t.co/PBGw4wQIm6」 / Twitter
[B! nlp] mots quotidiens.
mots quotidiens.

形態素解析を行うだけのバッチをつくる - クックパッド開発者ブログ
Haruhiko OkumuraさんはTwitterを使っています 「ということでオープンデータの定義についてまとめておいた→ https://t.co/NL8AkyLETy」 / Twitter
オープンデータとは
shirayuさんはTwitterを使っています 「日本語T5モデルを公開しました. トークナイザをByte-fallbackありで学習しているので,「未知語」が基本的に発生しません. 学習データにもよりはしますが,「鯯」(さっぱ)のような珍しい漢字が入力にあっても,上手く扱ってくれることが期待できます. https://t.co/lWPn0qFSzx」 / Twitter
megagonlabs/t5-base-japanese-web · Hugging Face
速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説 - LegalForce Engineering Blog
水先案内人@江戸川さんはTwitterを使っています 「VaporettoのリポジトリにBenchmark用のコードを追加しました。各種Tokenizerの実行速度を計測比較できます。 https://t.co/EvNYZtSLI2」 / Twitter
vaporetto/bench at main · legalforce-research/vaporetto
GiNZAと患者表現辞書を使って患者テキストの表記ゆれを吸収した意味構造検索を試した - エムスリーテックブログ
GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
Go の形態素解析器を wasm で利用する
Sudachi同義語辞書をElasticsearchで使う(暫定方法)
情報検索のための単語分割一貫性の定量的評価 - Yahoo! JAPANの研究開発 - ヤフー株式会社
形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として
WorksApplications/chikkar: Japanese synonym library
Sudachiを使った同義語辞書の拡充 | VISASQ TECH BLOG
Wayback Machine
ワークスAP、形態素解析エンジン「Sudachi」の有料サポートを開始、構築と運用を支援 | IT Leaders

情報幾何学

最小二乗法

1916-07.pdf

Twitter

解答略さんはTwitterを使っています 「情報幾何におけるAffine座標系は、関数の空間における良い座標系を上手く定義してるなぁと思ってる。例えば正規分布の場合 「なんでパラメタをμとσに取るの?2^μ+σ^3とμ/σではダメなの?」 という疑問に対し 「正規分布全体の空間における、確率構造に由来する接続と整合しないからダメ」 と論破できる」 / Twitter
てらモス♋️さんはTwitterを使っています 「ここで確率測度の空間の構造と整合する正規分布のパラメータの組のとり方が実は二つ存在することが分かり...」 / Twitter
てらモス♋️さんはTwitterを使っています 「それぞれ二つの積 p(x)q(x)/\int p(x)q(x) dx, \int p(x-y) q(y) dy に対応する事が分かる...」 / Twitter
てらモス♋️さんはTwitterを使っています 「そしてカルマンフィルターはこの二つの積を交互にとる操作そのものだという導入を...」 / Twitter
てらモス♋️さんはTwitterを使っています 「確率測度の空間、アフィンにしかならなくてしかも積が二つ入るので環にならないし結構不思議な形してるよね」 / Twitter
てらモス♋️さんはTwitterを使っています 「一次元正規分布を指数型関数族として見ようと思うと、パラメータ二つあるので x -&gt; (x, x^2) で無理やり二次元に持ち上げるけど、これのせいで二次元空間上で δ(y=x^2) 的な特異な測度になるので、測度論を軽く触っておかないと厳しい(ルベーグ測度とボレル測度の違いとか難しいやつは勿論要らない)」 / Twitter
てらモス♋️さんはTwitterを使っています 「と言う話を云々してるから chaos-da が全く進まないんだよ!」 / Twitter
てらモス♋️さんはTwitterを使っています 「カルマンフィルターが遠い...」 / Twitter
てらモス♋️さんはTwitterを使っています 「確か LETKF の誤差解析をやろうと思ってたはずなのになんでこんなところからやっているのか...」 / Twitter

2020年抱負 | κeenのHappy Hacκing Blog
幾何を使った統計のはなし
情報幾何学1: 確率分布とリーマン多様体 - 初級Mathマニアの寝言
情報幾何入門
_pdf
DVIOUT
matsuzoe_201710hokudai-handout.pdf
takano.pdf
toukei12.dvi
情報幾何の勉強。機械学習の数理的研究。 - 日記マン
infogeo.dvi - infogeo-sice.pdf
11_KJ00005768851.pdf
book_0403.pdf
「情報幾何」に入門するための資料PDF。解説論文と機械学習への応用の紹介 - 主に言語とシステム開発に関して
「情報幾何」で深層学習の謎を解く新しい機械学習手法を創り出す - NII SEEDs / 国立情報学研究所
情報幾何への入門と応用
FEM と幾何学の機械学習 – 株式会社科学計算総合研究所
情報幾何勉強会(第一回 情報量) – 株式会社科学計算総合研究所

機械学習

その他

はじめに — 機械学習帳
世界初!教師データなしで高次元データの特徴を正確に獲得できるAI技術を開発 : 富士通
20190529_xSiG_public
リザーバコンピューティング - Google 検索
masa-su/pixyz: A library for developing deep generative models in a more concise, intuitive and extendable way
Machine Learning Systems are Stuck in a Rut | Proceedings of the Workshop on Hot Topics in Operating Systems
C4ML
富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
MIT Tech Review: グーグルが発見した、機械学習が現実世界で使い物にならない理由
ReLU - Google 検索
数学セミナー2018年12月号|日本評論社
2020年度講義情報ページ
AI研究の第一人者・松尾豊氏が語る「日本でDXやAIの活用が進まない理由」|@DIME アットダイム
AIりんな、コンシェルジュなどの顧客対応へ - 阿久津良和のWindows Weekly Report | マイナビニュース
[2009.05673] Applications of Deep Neural Networks
AI in Software Engineering at Facebook
「悪いやつをAIで予測する」のがなぜいけないか - yhara.jp
「この人、家賃を滞納しそう?」AIが予測 入居審査を45分→16分に - ITmedia NEWS
mediapipe - Google 検索
AlphaFold2 - Google 検索
「6年解けなかった構造があっさり」──タンパク質の“形”を予測する「AlphaFold2」の衝撃 GitHubで公開、誰でも利用可能に - ITmedia NEWS
AlphaFold2PredictStructure.ipynb - Colaboratory
deepmind/alphafold: Open source code for AlphaFold.
PasonaTech-Inc/Qumico
東京大学、強化学習と統計的自然言語処理の講義資料が無料公開 サイバーエージェントの講師ら担当
DeNA/MoT AI技術共有会発表リスト | dena-mot-ai-study-group
AIで数学の新たな定理発見 英DeepMindと数学者がNatureに共同論文 - ITmedia NEWS
Exploring the beauty of pure mathematics in novel ways | DeepMind
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ビッグデータ・パラドックス - 調査のサンプル数が多いからといって、結果に信頼性があるとは限らない。ある調査では、ワクチン接種率を大幅に間違って算出していた。偏ったビッグデータは「ノーデータ」よりも悪質だ。偏りを助長し、人々に間違った自信を与えてしまう。 https://t.co/LUYKsuinrv」 / Twitter
Vaccination surveys fell victim to ‘big data paradox,’ Harvard researchers say – Harvard Gazette
マイクロソフトのAI技術は何が違うのか? - PC Watch

画像や3Dボリュームを小さいデータで近似

FadisさんはTwitterを使っています 「画像や3Dボリュームを小さいデータで近似するNNを素早く学習させる論文。全体を1つのNNで学習するのではなく、データを複雑な部分ほど小さくなる階層的なブロックで区切り、ブロックに対応するfeature gridを選ぶNNと選ばれたfeature gridから値を求めるNNを繋いで学習させる https://t.co/E8mYkrdZbY」 / Twitter
Computational Imaging ACORN: Adaptive Coordinate Networks for Neural Representation | SIGGRAPH 2021
FadisさんはTwitterを使っています 「feature gridを選ぶNNの入力はグローバル座標xyzとブロックのサイズsで、個々のブロックのサイズは学習中に上がってくる誤差を元に「有限のブロック数を現在の分割数で誤差が減らない所により多く割り当てる」ような整数計画問題を解く事で決定する」 / Twitter
FadisさんはTwitterを使っています 「ブロックサイズが変わるとNNの入力が変わるので、NNは聞かれなくなった「古いサイズの場合の出力」を緩やかに忘れながら「新しいサイズの場合の出力」を学習し直すことになる。ブロック数は固定で、どこかを細かくするとどこかが荒くなる為、学習が進むと分割が必要な所ほど細かく分割された状態になる」 / Twitter
reroさんはTwitterを使っています 「@fadis_ 忘れるとかもできるんやな。入力が少なくなって相対的に全体への影響が減るだけじゃなくてちゃんと記憶データサイズも減ってるのかな?」 / Twitter

パーセプトロン

その他

第17回 パーセプトロンを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社
第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社
ニューラルネットワークとパーセプトロン - Sideswipe
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) | コンピュータサイエンス | POSTD
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(後編) | コンピュータサイエンス | POSTD
はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
七誌さんのツイート: "パーセプトロンでXORが実装できない理由を、真理値表を2次元にマッピングして一次関数の直線で区切れないためと説明された。区切るためには曲線が必要で、その曲線がフェルマー曲線や楕円曲線に似ていると思っていた。あ、だからフェルマー予想の証明に楕円関数論が絡むのか!と今頃気付いた…"
七誌さんのツイート: "楕円関数論の重要性がじわじわ来ている。改めて竹内先生の緒言が身に染みる! https://t.co/99YRij5404"
パーセプトロンの概観とディープラーニングへ - HELLO CYBERNETICS
パーセプトロン - Pythonと機械学習
コベクトルで考えるパーセプトロン - Qiita
実は難しい自然言語処理。画像認識の活用も始まる

コンパイル

入門 Keras (2) パーセプトロンとロジスティック回帰 | 株式会社インフィニットループ技術ブログ
Kerasでディープラーニングに入門する(MNISTの手書き数字問題を単層パーセプトロンで解く) - Qiita
OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
パーセプトロンってなんだろう? - きしだのはてな
パーセプトロンとサポートベクターマシン - きしだのはてな
ニューラルネットワーク - プログラムに組込み可能なライブラリ
第16回 最適化のための勾配法:機械学習 はじめよう|gihyo.jp … 技術評論社
keras_tutorial
MXNet チュートリアル : 手書き数字認識 – MNIST – PyTorch
Caffe2によるディープラーニングの基礎と実践 rev 1.1
多層パーセプトロン (Multilayer perceptron, MLP)をExcelで理解する - Qiita

ネットワーク

パーセプトロンとニューラルネットワークの違い - kakts-log
パーセプトロンとは? - Qiita
ニューラルネットワークと深層学習
多層パーセプトロン - Wikipedia
パーセプトロン - Wikipedia
機械学習 - パーセプトロンはニューラルネットワークなのか?|teratail
パーセプトロン ニューラル ネットワーク - MATLAB & Simulink - MathWorks 日本
パーセプトロンとニューラルネットワーク(1) - 人工知能・ロボティクス・and so on 工学系ブログ
ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発した論文を読んだ - Qiita
Deep Forest :Deep Neural Networkの代替へ向けて - Qiita
C++ヘッダだけでDeep Learning、tiny-dnnの紹介 - Qiita
Fadisさんのツイート: "最近、ディープラーニングを扱う記事のニューラルネットワークのイメージ図が謎の3層全結合だったら、記事が古いのではないかと疑う事を覚えた"

可視化

多層パーセプトロンの動きを可視化する - StatsFragments
Python: 単純パーセプトロンを実装してみる | CUBE SUGAR STORAGE
D3.jsでパーセプトロンを可視化した - くじらにっき++
多層パーセプトロンの動きを可視化する - StatsFragments : GoogleやFacebookが注目するディープラーニング(深層学習)についてまとめてみた - NAVER まとめ
perceptronの可視化 - Qiita
プログラマーが効果的な可視化を作成する (前編) - Qiita
プログラマーが効果的な可視化を作成する (中編) - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 1): 基本原則 - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 2): 学習ガイド - Qiita
高次元データの次元削減および2次元プロット手法 - Qiita
探索的データ解析における正しい可視化手法の選び方と描き方 - Qiita
情報理論を視覚的に理解する (1/4) : | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (2/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (3/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (4/4) | コンピュータサイエンス | POSTD

時系列

パーセプトロン
Journal of Chemical Software Vol.4 No.2, p.57 (1997)
階層型のネットワーク
ニューラルネットワークの考え方 | Logics of Blue
18-1-10.dvi
売買判定システム修正版2

ボルツマンマシン

ボルツマンマシン - Wikipedia
ボルツマン分布 - Wikipedia
daem0nc0reさんはTwitterを使っています 「物理学から離れてかなり経つので知らなかったけど、2019年にBoltzman定数の定義が見直されたんですね。 https://t.co/nUhwkfD4bc」 / Twitter
SI-Brochure-9.pdf
ボルツマン定数 - Wikipedia

ONNX

AWS、Facebook、Microsoftの3社、AIモデルのオープンフォーマット「ONNX」を正式リリース:異なるディープラーニングフレームワーク間でAIモデルを移行できる - @IT
ディープラーニングフレームワーク間で共通のモデル表現が可能に:MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表 - @IT
AWS、MicrosoftやFacebookなどが推すAIフォーマット「ONNX」をサポート:ディープラーニングモデルのオープンフォーマットのエコシステムが拡大 - @IT
ONNX形式のモデルを使ってみる | Money Forward Engineers' Blog
AIモデルの相互運用性プロジェクト「ONNX 1.0」 | OSDN Magazine
ONNX のモデル出力と、ONNX を使った推論をやってみた - Fixstars Tech Blog /proc/cpuinfo
ONNX
Open Neural Network Exchange
webonnx/wonnx: A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web
shinichiro hamajiさんのツイート: "ONNX、ループとかないと思ってたけどいつのまにか生えてるやん https://t.co/LTSE4GsztY"
Yuta Kashinoさんのツイート: "How Facebook scales AI https://t.co/pJJIRPqRYC FaceBook社内の機械学習インフラ.PyTorchで学習した後にONNX経由でCaffe2によるプロダクション環境での推論実行が実現できているそうです.… https://t.co/zAz0yUkmh3"
PreferredNetworksJPさんのツイート: "【発表】学習済みDNNモデルを #ONNX 形式から読み込んで動作させる推論専用ライブラリMenoh(メノウ)を公開! #Chainer で学習したモデルを #Python 以外の言語で実装したアプリケーションに瞬時にデプロイすることができます。 https://t.co/xXjPh0JViE"
pfnet-research/menoh
Taku Kudoさんのツイート: "ONNX ということは、Define-by-Run が標榜する真の動的モデルの実行は難しいのではないのかな... TFのようにインファレンスを Python から切り離してヘテロ環境で実行したいのなら、どのみち静的なグラフが必要で、そのへんのトレードオフはなかなか解けないですね。"
Taku Kudoさんのツイート: "Define-by-Run, Define-and-Run より、Model as code, Model as data といったほうが、インファレンスの立場からの違いがはっきりすると思う。"
はじめてのにき(2018-07-01)
米Microsoft、機械学習向け推論エンジン「ONNX Runtime」をオープンソースで公開 | OSDN Magazine
ONNX はチューリング完全だよ、という話 - 兼雑記
Noriyuki OHKAWAさんのツイート: "onnx関係者 "All names MUST adhere to C identifier syntax rules." て文を誰も読めないんじゃないかと疑ってる."
Microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
shinichiro hamajiさんのツイート: "OpenVINO サポート、実装やり直して今の2つ目で、何がうざいって ONNX => dldtモデル部分が Python で書かれてることで、僕は system(3) でやるのが結局一番と判断したけど https://t.co/lEsjvPu4r0 onnxruntime は Python.h 使って頑張ったぽい https://t.co/AtHXMwHQN1"
shinichiro hamajiさんのツイート: "Intel みずから onnxruntime に関わってくれたおかげで、それなりに ONNX サポートキープしてくれそう……?という期待ができるのかな。。まあ TF/Caffe 優先ではあるのだろうけど"
shinichiro hamajiさんのツイート: "また三日坊主になってる。GSoCのやたら優秀な方に、 continue/break/return を実装していただいた https://t.co/TaBIzzVK5l ONNXに落とす(キツい)、グラフに変換する時に頑張る(キツい)、などを検討した後に、AST-to-ASTで消しさればいいんじゃない?という話になって、綺麗にまとまって良かった"
Canonicalizer Unittests, and Break Canonicalization. by Rishav1 · Pull Request #352 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "つまり任意の Python AST を continue/break/return の無い Python AST に等価変換する感じ"
shinichiro hamajiさんはTwitterを使っています: 「Practical developers 読んでて、むしろ value_info が必須でないことが ONNX で良いと判断した理由の一つだったなあと。 shape 必須な時は static shape なグラフなので、単に onnx.shape_inference.infer_shapes すれば(バグってなければ) value_info は全て判明するはずだし」 / Twitter
Noriyuki OHKAWAさんはTwitterを使っています: 「@shinh exchange formatなのに利用側に(shape inferのための)runtimeを要求するのが嫌だと思ったんですよね.python同士でしかやりとりしないなら別にいいんですけど」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「@notogawa たしかに、C++/Python以外から使いにくくなってprotoの利点ちょっと殺しちゃってると言われればそうかもですね」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「また三日坊主になってる。最近だとONNX workshop行って、Python listをSequenceで扱うopを足して、というのが進んでたので、それは一年前通った道……と偉そうにこういうの多分いるよ、て共有したり https://t.co/IY5s5qLISa PR にコメント書いたり、提案通り実装したりした https://t.co/RXbPUDByyO」 / Twitter
ONNX with Python list/loop in chainer-compiler - Google スライド
Add standard ONNX sequence ops by shinh · Pull Request #665 · pfnet-research/chainer-compiler
uint256_tさんはTwitterを使っています 「ONNXの中身ってprotocol bufferなのか」 / Twitter
Optimizing BERT model for Intel CPU Cores using ONNX runtime default execution provider - Microsoft Open Source Blog
マイクロソフト、WebAssemblyとWebGLで推論エンジンを実装した「ONNX Runtime Web」(ORT Web)をオープンソースで公開 - Publickey

NNEF

青子守歌さんのツイート: "ニューラルネットワークのデータ表現形式の標準規格が策定された https://t.co/Q1QgLb3lgL この間のミーティングで言われてたやつこれか"
Neural Network Exchange Format (NNEF) - Neural Network Exchange Format (NNEF)
Fadisさんのツイート: "OpenGL等の標準化で知られるクロノスグループ、異なるニューラルネットワークフレームワーク間でニューラルネットワークの学習済みモデルをやり取りするためのフォーマットNNEF 1.0を公開 https://t.co/jYTWfdtz4u"
Khronos Announces NNEF 1.0 Standard For Neural Networks - Phoronix
ニューラルネットワークツールと推論エンジンの相互運用のためのプロジェクト「NNEF」が仕様を公開 | OSDN Magazine
ニューラルネットの共通フォーマット対決! NNEF vs ONNX - Fixstars Tech Blog /proc/cpuinfo

MLIR

uint256_tさんはTwitterを使っています 「MLIRのMLってMachine LearningっぽいけどMulti-Levelなんだよね」 / Twitter
FadisさんはTwitterを使っています 「LLVMがMLIRをSPIR-Vにコンパイル出来るようになったらしい。MLIRは計算グラフを表現する中間言語で、TensorFlowが最適化の為のターゲット非依存の表現として生み出した。既にCUDAに落とす実装があったが、これでNVIDIA以外のGPUでもVulkanが動けばMLIRを実行できるようになる https://t.co/Wd195YHV2R」 / Twitter
LLVM Adds MLIR-Vulkan-Runner To Run MLIR On Vulkan-Enabled GPUs - Phoronix
FadisさんはTwitterを使っています 「ただし時々実行できないCUDA PTXを吐き出す…(白目」 / Twitter
Fadisさんのツイート: "MLIR: LLVM IRにすると失われる情報を利用した最適化の為に言語固有の中間言語で最適化を行う言語が増えていて、機械学習フレームワークもそうしたいけど沢山のフレームワークが個別にこの実装をするの無駄だから共通の実装を作ろうぜ、とTensor Flowの人が作った中間言語 https://t.co/BZEXUi6HhI"
MLIR Is A New IR For Machine Learning That Might Become Part Of LLVM - Phoronix
Makoto Kato ︎︎さんのツイート: "いや、Tensorflowじゃなくて、LLVM作った人だから、彼。"
ドッグさんはTwitterを使っています 「MLIR 中間言語の設計の紹介論文が Chris 筆頭著者で出てる | 'MLIR: A Compiler Infrastructure for the End of Moore's Law' https://t.co/F7DGu2NeU9」 / Twitter
[2002.11054] MLIR: A Compiler Infrastructure for the End of Moore's Law
てらモス♋️さんはTwitterを使っています 「LLVM を実行時に必要とするのは辛いのでコンパイル時に MLIR まで使えるようにしておいて、rustc 内で ptx-kernel 見つけたらそれは MLIR 経由で PTX にコンパイルして最終的な ELF のどっかに埋め込むような事がしたい...」 / Twitter
てらモス♋️さんはTwitterを使っています 「SPIR-V でも PTX でもそうだけど、ホストコード用の ELF にアクセラレータ向けのバイナリを埋め込む為の標準化を RedHat の人か誰かが提案してなかったっけ...」 / Twitter

MN-Core

shinichiro hamajiさんはTwitterを使っています 「いやーがんばったなあ、という感じ。個人的には逆アセ書くところから、みたいなむっちゃ基本的なとこから始めて、今はこんだけ動いてるってのに感慨がある。図にあるように抽象化の過程で謎の概念が色々(再)発明されて、まあまあ新奇性がちらほらあるDLコンパイラスタックになってるんじゃないかなぁ」 / Twitter
Preferred NetworksさんはTwitterを使っています 「【発表】深層学習用プロセッサーMN-Coreのコンパイラを開発し、MN-Coreを搭載したスパコンMN-3で深層学習ワークロードを最大6倍以上高速化!(MN-2と比較) MN-CoreはPyTorchとシームレスに連携し、PFNの深層学習基盤技術としてさらに進化しました。 https://t.co/bIj9Yh6aeL」 / Twitter
深層学習用プロセッサーMN-Coreの専用ソフトウェア(コンパイラ)を 開発、深層学習の実用的なワークロードの計算速度を最大6倍以上高速化 | 株式会社Preferred Networks
Takuya AkibaさんはTwitterを使っています 「https://t.co/WTN0s6420P 我々インフラ領域で取り組んできた MN-Core コンパイラスタックの記事です!MN-Core は「そこはソフトで頑張ってよ」という思想のかなり極端な HW (参考 https://t.co/rgSLV0ORAS)ですが、ソフト側の様々な難問も乗り越え PyTorch から性能が出せる感じになってきてます!」 / Twitter
MN-Coreコンパイラを用いた深層学習ワークロードの高速化 | Preferred Networks Research & Development
「そこはソフトで頑張ってよ」、世界最高を目指す国産AIチップの開発秘話 | 日経クロステック(xTECH)
Takuya AkibaさんはTwitterを使っています 「ソフト面の難問は様々ですが、競プロ的なものも結構多く、○○したり△△したり☓☓したりしてます(競プロ単語を最初普通に書いてたんですが、一応伏せとこ……)。「競プロっぽい課題がいかにも出てきそうだなぁ」という雰囲気は shinh さんのこのスライドとか是非。https://t.co/zRIwEejcBN」 / Twitter
競プロ忘年会のやつ - Google スライド
PFN で開発している深層学習 コンパイラスタックについて - Google スライド
Miura HidekiさんはTwitterを使っています 「後半のPEの割り当て問題、もう少し粒度が高いと計算場モデルがよさそうだけど、せいぜいベクトルではオーバーヘッドが大きすぎるわな。意外と、実行時間を評価値とした遺伝アルゴリズムなんていいような気がする。」 / Twitter

chainer-compiler

転職してからやってること - 兼雑記
はじめてのにき(2018-07-01)
はじめてのにき(2019-03-22)
Chainer-compiler - Google スライド
shinichiro hamajiさんのツイート: "自分が適当に書いたコードにコメントもらうのは、こわくもあり、とても面白くもあって良かった。当たり前だけど、自分が苦労したからといって人にとって面白いとは限らず、自分が忘れてるからといって人の目に止まらないとは限らないもんだなあと思った #chainer_compiler_reading"
shinichiro hamajiさんのツイート: "前者はループまわりは本当に色々苦労したけど終わってみると割と普通、というのと、後者は方針途中でかえた残骸が残ってたshape inferenceが妙に注目されて @kuenishi さんが最近おっしゃってた「まともなソフトウェアはデッドコードは消す」という教えをね…ちゃんと実践しないと。。"
shinichiro hamajiさんのツイート: "せっかく open なので chainer-compiler についてなんかかいていこうかなと。 https://t.co/Zy0eHiXjfM は Chainer のバージョンを上げてて、 ChainerX の新しい op を使うためなので重要。でもこれすると python から使った時の ABI 大混乱を避けづらくて、このへんポリシー決めてなかいとなあ"
Bump up chainer version by shinh · Pull Request #272 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "歴史的事情のある XCVM はわかりにくいので、 ChainerX VM を略して、リポジトリの中では ChxVM と呼ばれることとなりました https://t.co/YJEUU4kjxk"
Rename XCVM to ChainerX VM by shinh · Pull Request #277 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "自分のじゃないのを書くと、 Shape を ChxVM の型にするやつ https://t.co/ivh69nYj8T Shape を Array で動的に持ってたので、 ch2o/elichika で出力した ONNX とか Shape だらけで、なんというか結構大変なオーバヘッドになってるので、いろいろとなんとかなると嬉しい"
Specialize GeItem from shape variable by take-cheeze · Pull Request #305 · pfnet-research/chainer-compiler
chainer-compilerのその後 - Google スライド
動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development

GPT

小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「AI分野でめちゃくちゃ盛り上がってる「GPT-3」を使った事例が15個まとまってる。 GPT-3の衝撃 https://t.co/oR4P1mjq0D 「GPT-3の方法はこれまでのDeep Learning研究の観点からみるとかなり特殊です.むしろ新しいプログラミングパラダイムと見るべきかもしれません.」」 / Twitter
GPT-3の衝撃 - ディープラーニングブログ
超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
超高精度な言語モデル「GPT-3」は本当に「人間そのもの」な会話ができるのか実験した結果は? - GIGAZINE
自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか? - GIGAZINE
OpenAIが超高精度な言語モデル「GPT-3」用いたAIモデルをAPIとして利用可能に、Wikipediaの内容を「質問」で検索するデモムービーも - GIGAZINE
AIによる自動文章作成ツールがあまりにも高精度のテキストを簡単に作り出してしまうため開発陣から「危険過ぎる」と問題視される - GIGAZINE
「あまりにも危険過ぎる」と危険視された文章生成ツール「GPT-2」の技術で画像を自動で生成することに成功 - GIGAZINE
OpenAIが1,750億のパラメーターを持つGPT-3 AI言語モデルを発表
須山敦志 Suyama AtsushiさんはTwitterを使っています 「理解に基づいて文書を生成するのではなく,大量の学習データから「コピペ」しているかのよう. GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about https://t.co/SxSG54nl2Z」 / Twitter
GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about | MIT Technology Review
須山敦志 Suyama AtsushiさんはTwitterを使っています 「何はともあれ,適当にウェブの記事を切り貼りしてレポート課題を出す学生たちの「仕事」は,事実上AIによって奪われたわけですね.」 / Twitter
20200926
文章生成AI「GPT-3」がRedditで1週間誰にも気付かれず人間と会話していたことが判明 - GIGAZINE
Text Synth
超高精度の文章を自動生成できる「GPT-3」は1日当たり45億以上の単語を出力していることが明らかに - GIGAZINE
超高精度な文章生成AI「GPT-3」には反イスラム教的なバイアスが存在すると判明 - GIGAZINE
「GPT-3」に近い性能の言語モデルをオープンソースで目指す「GPT-Neo」 - GIGAZINE
OpenAIが画像生成用のGPT-3モデルを発表
MicrosoftがGPT-3 AIモデルの独占ライセンスを取得
99.9%少ないパラメータでGPT-3パフォーマンスを上回るAIのトレーニング方法
FadisさんはTwitterを使っています 「2年半程前に某所でGANによるアセット生成とQ学習によるモーション生成の威力がヤバいから、ゲーム屋は今すぐ機械学習勉強しないと生き残れんぞという発表をしたんだけど、実際には「GANによるアセット生成とQ学習によるモーション生成とGPT-3による会話生成の威力がヤバい」だったな」 / Twitter
Q学習 - Wikipedia
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「文章生成器 GPT-3 は、イスラム教とテロを関連づけて学習してしまっている。「ムスリム2人組がバーに入っていくと...」という書き出しの文章の続きを生成させると、クリスチャン、仏教徒などの場合と比較して6倍程度 (66%) の確率で残虐なストーリーが描かれる。 https://t.co/BzzGknSf0Y」 / Twitter
Two Natural-Language AI Algorithms Walk Into A Bar... - IEEE Spectrum
Shiro KawaiさんはTwitterを使っています 「AIに見える世界では人が犬を噛むだろう」 / Twitter
Kazunori SatoさんはTwitterを使っています 「人は普通「馬には目が2つある」みたいな常識はあえて文に書かないから、GPT-3に馬の目はいくつ?と聞くと3つと答えてしまう…って話、面白い。データセットのバイアス。」 / Twitter
人間と見分けがつかないほど自然な文章を書けるAI「GPT-3」の改良版AI「InstructGPT」一般公開、詩も執筆可能 - GIGAZINE

HuBERT

ステート・オブ・AI ガイドさんはTwitterを使っています 「自己教師学習による音声表現学習モデルの最新版 HuBERT、控え目に言ってヤバいのでは・・。 ・面倒なVQ-VAEではなくk-meansで学習した離散コードを予測するだけ ・音声「だけ」から言語生成も可能 (GSLM) ・音声処理ベンチマークSUPERBで首位を総ナメ 音声では「とりあえず HuBERT」が主流になる予感 https://t.co/pKuk5DZHW8」 / Twitter
ステート・オブ・AI ガイドさんはTwitterを使っています 「論文 GSLM: https://t.co/5mL6CJv3VB SUPERB: https://t.co/X91IL6wdO7 HuBERT: https://t.co/cY5Ut3lvAR」 / Twitter
[2102.01192] Generative Spoken Language Modeling from Raw Audio
[2105.01051] SUPERB: Speech processing Universal PERformance Benchmark
[2106.07447] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
ステート・オブ・AI ガイドさんはTwitterを使っています 「「HuBERT のここがスゴい」もう一個あった 音声をたった 365 bps で超高圧縮できるコーデックとして利用可能、ほとんど劣化なし。 論文: https://t.co/unB7lwkBNK デモ: https://t.co/tgPKUsogYS」 / Twitter
[2104.00355] Speech Resynthesis from Discrete Disentangled Self-Supervised Representations
Speech Resynthesis from Discrete Disentangled Self-Supervised Representations

blog

AIブーム終焉の意味するところ|Ryota Kanai|note

Publickey

AWS、SQL文で機械学習のモデル作成、トレーニング、推測まで実行できる「Amazon Redshift ML」正式リリース - Publickey
Facebook、どんな話題にも対応できるAIチャットボット「BlenderBot 2.0」オープンソースで公開。会話しつつ裏でネット検索し最新情報を取得 - Publickey
[速報]AWS、JupyterLab IDEベースの新サービス「SageMaker Studio Lab」無料提供を発表、ブラウザで機械学習を学び試せる。AWS re:Invent 2021 - Publickey

Cygames Engineers' Blog

【CEDEC 2021 フォローアップ】ゲーム制作効率化のためのAIによる画像認識・自然言語処理への取り組み | Cygames Engineers' Blog
【CEDEC 2021 フォローアップ】不正検知を可能とする弱教師あり学習手法「DevNet」の紹介 〜膨大なデータに潜む異常を最小限のラベリングで見つける技術〜 | Cygames Engineers' Blog

Fixstars Tech Blog /proc/cpuinfo

ClPyが製品候補版になり、ほぼ全ての主要機能が動作するようになりました - Fixstars Tech Blog /proc/cpuinfo
ClPyの論文が公開されました - Fixstars Tech Blog /proc/cpuinfo
ClPy meets libTooling (1): Ultima - Fixstars Tech Blog /proc/cpuinfo

Preferred Networks Research & Development

[AAAI2021採択論文] 深層学習による株価予測 | Preferred Networks Research & Development
[2012.07245] Deep Portfolio Optimization via Distributional Prediction of Residual Factors
[AAMAS2021採択]株価予測のためのアンサンブル・進化計算手法 : Trader-Company法 | Preferred Networks Research & Development
[2012.10215] Trader-Company Method: A Metaheuristic for Interpretable Stock Price Prediction
MCU上でのsegmentationモデルの実行 - Preferred Networks Research & Development
MN-Core上の高速化に向けた可視化プロファイラ - Preferred Networks Research & Development
aHSICを用いた多次元時系列上の変化検知と変数同定及びアルゴリズムの改善 - Preferred Networks Research & Development
表形式データに対する深層学習ライブラリの開発と実験 - Preferred Networks Research & Development

20200418
CPUベースのディープラーニングの飛躍的進歩により、GPU市場への圧力が緩和される可能性があります|自作.com
New Algorithm Makes CPUs 15 Times Faster Than GPUs in Some AI Work | Tom's Hardware
MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
高校数学を使って誤差逆伝播を”再発見”できるAutoML-zero - akira - Medium
日本ディープラーニング協会におけるRNN (Recurrent Neural Network) | yasuokaの日記 | スラド
LINE、NAVERと共同で、世界初、日本語に特化した超巨大言語モデルを開発 新規開発不要で、対話や翻訳などさまざまな日本語AIの生成を可能に | ニュース | LINE株式会社
ニューラルネットワークで「開いた量子系」を学習する – 機械学習と量子物理学の融合 | academist Journal
Ethics Processing Unit - マルシテイア
強化学習の環境紹介! | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
WebAssemblyを用いてBERTモデルをフロントエンドで動かす - OPTiM TECH BLOG
SageMaker Experimentsによる実験管理とQuickSightを使ったその可視化 | Money Forward Engineers' Blog
huggingface transformersで使える日本語モデルのまとめ – Yellowback Tech Blog
transformersのTokenizerで固定長化する | Money Forward Engineers' Blog
機械学習初学者が AutoGluon を利用して未来予測をしてみた話 - Adwaysエンジニアブログ
世界最大規模のディープラーニングを「富岳」で実施して世界一になりました - fltech - 富士通研究所の技術ブログ
深層強化学習アルゴリズムの評価は正確か? | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
AIOps向けデータセット生成システムの論文をIOTS2021で発表しました – さくらインターネット研究所
ログデータと言語モデルを用いた同義語辞書の自動構築 | メルカリエンジニアリング
人工知能、深層学習、ビッグデータ解析の限界は?|shinshinohara|note

PC Watch

【後藤弘茂のWeekly海外ニュース】NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
【後藤弘茂のWeekly海外ニュース】第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵 - PC Watch
【後藤弘茂のWeekly海外ニュース】NVIDIA Ampereにおけるプルーニング対応の特徴 - PC Watch
【後藤弘茂のWeekly海外ニュース】人間の脳から産まれたディープラーニングのプルーニング - PC Watch
NTT、分散配置されたデータから安定したディープラーニングが可能な技術 - PC Watch
【やじうまPC Watch】AIがクロスワードでも人間を超える - PC Watch
東芝、デジカメ写真から実スケールを計測できる世界初のAI技術 - PC Watch
NVIDIA、文章からリアルタイムで画像生成するAI - PC Watch
Meta、子どもが描いた1枚絵からアニメーションを作るAI - PC Watch
若者よりも年配者、男性よりも女性、AI知識が豊富な人ほどAI技術を懸念 - PC Watch
理研、人間のように自然な表情を作れるアンドロイド - PC Watch

日経クロステック

AIにおける「次元の呪い」解決へ、富士通研が機械学習の最有力学会で発表 | 日経クロステック(xTECH)
Apple注目の1ビット深層学習、超省電力で「スマホに常時AI」 | 日経クロステック(xTECH)
小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 https://t.co/TR9RRFPx6f 『自然言語処理の世界を一変させた「Transformer」系のモデルが、なんと全く異なるタスクであるロボット制御の世界で大きな効果があることが分かったのだ。』」 / Twitter
自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 | 日経Robotics(日経ロボティクス)
次世代AIが画像符号化の限界打破、圧縮率が数千分の1に? | 日経クロステック(xTECH)

マイナビニュース

FastLabel、アノテーション作業を支援するプラットフォーム | TECH+
東芝、時系列データで機器の異常検知から要因判定まで可能なAI技術 | TECH+
NTTレゾナント、マルチモーダルAI技術などと連携可能なAPI群「AI suite」 | TECH+

GIGAZINE

画像

ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
最先端のAI画像認識モデルでも正しく認識できない画像まとめ - GIGAZINE
コンピューターは「人間の目線」をどのように認識するのか? - GIGAZINE
高度な画像認識AIは手書きの文字やステッカーなどの「敵対的な画像」で簡単にだまされてしまう危険性 - GIGAZINE
「画像認識機能を誤認させる攻撃」を科学者が実証、自動運転の脅威となる可能性 - GIGAZINE
AIによって生成された人間の画像は「瞳孔の形」で区別できる - GIGAZINE
顔認証の40%以上をたった9つの顔で突破するマスターキーならぬ「マスターフェイス」を作るAIが登場 - GIGAZINE
AIが入力したキーワードからイメージしたイラストを描いてくれる「Hypnogram」 - GIGAZINE
「違法画像の検出システムは簡単にだませる」ことを示した実例はこんな感じ - GIGAZINE
たった数単語入力するだけでワードに沿った風景画像を生成してくれるAI「GauGAN2」のデモを使ってみた - GIGAZINE
ただの花の絵をオバマ元大統領の顔だと誤認させる画像認識AIへの新しい攻撃方法「TnT」 - GIGAZINE
ディズニーが「自然な顔」を生み出すために3D顔マップとAIを組み合わせた手法を開発 - GIGAZINE
会議中にスマホを触る政治家を機械学習と画像認識で検出 - GIGAZINE
AIで自分好みの美少女イラストを作れる「Waifu Labs」の開発者が「AIが俺の嫁を作る方法」を解説 - GIGAZINE
「児童の性的虐待画像に写った手」をAIで分析して犯罪者を特定するプロジェクトが進行中 - GIGAZINE
Unityが最新ゲームエンジンのデモ映像を公開、CGと言われても実写にしか見えない - GIGAZINE
AIが生成した超精巧なニセデータ・ディープフェイクを検出するプラットフォーム「Reality Defender」 - GIGAZINE
GIGAZINE(ギガジン) - 「AIが作り出した架空の顔」が企業のマーケティング戦略に使われていることが判明

Google

Googleのエンジニアが人間がコーディングを行うよりも高速で自己進化するAI「AutoML-Zero」を発表 - GIGAZINE
Google傘下のDeepMindがゲームのルールを教えられなくても勝ち方を勝手に学習していくAI「MuZero」を発表 - GIGAZINE
GoogleがAI倫理に関する議論を受けて新たなAI責任チームを編成、社内外からは非難の声も - GIGAZINE
Googleがスパース推論でニューラルネットワークの高速化を達成したと報告 - GIGAZINE
Googleが自然な会話を実現する対話特化型AI「LaMDA」を発表、LaMDAが冥王星や紙飛行機になりきって会話するデモも公開 - GIGAZINE
GoogleがAIを用いてAI専用プロセッサの開発を爆速化したことを発表 - GIGAZINE
Appleの「M1」搭載Macに最適化されたAI向けライブラリ「TensorFlow」の最新バージョンがリリースされる - GIGAZINE
無料で物理演算エンジン「MuJoCo」がダウンロード可能に、DeepMindの買収により - GIGAZINE
AIプログラムの「AlphaZero」にチェスを学習させる中で明らかになった知見とは? - GIGAZINE
映像から立体モデルを構築する技術がついに「物体の形状の変化」にまで対応した「HyperNeRF」をGoogleの研究者らが開発 - GIGAZINE
「AIが差別発言しないかをAIでチェックする」というDeepMindの試み - GIGAZINE
DeepMindの碑文解読AI「Ithaca」で失われた碑文を72%の精度で復元することに成功 - GIGAZINE

NVIDIA

NVIDIAが対話型AIのフレームワーク「Jarvis」の提供を開始 - GIGAZINE
NVIDIAがセキュリティ上の脅威を検出・防止するためのAIフレームワーク「Morpheus」を発表 - GIGAZINE
AI技術の最先端を行くNVIDIAはAIの未来をどのように予測しているのか? - GIGAZINE

Facebook

Facebookが英語を経由せずに100個の言語を直接翻訳できる新しい機械翻訳システムを開発 - GIGAZINE
Facebookが機械学習と映像画質向上用のカスタムチップを独自開発か - GIGAZINE
Metaが言語・画像・音声など複数分野に適応できる自己学習型AI「Data2vac」を発表 - GIGAZINE
Metaがすべての言語をリアルタイムで翻訳するAI「バベルフィッシュ」を開発中 - GIGAZINE

MS

OpenAIが入力した自然言語から自動でコードを出力するAIシステム「Codex」をリリース - GIGAZINE
ドッグさんはTwitterを使っています 「GitHub Copilot でも使われてる Codex モデルの改善版を OpenAI がサービスとして提供するのか.API の waitlist に登録できる.Codex は自然言語からソースコードを生成する生成モデル | 'OpenAI Codex' https://t.co/9jOf88qdTw」 / Twitter
OpenAI Codex
OpenAIが開発した画像認識AI「CLIP」の思考の特徴とは? - GIGAZINE
超高精度な文章を生成できるGPT-3は「もはや言語モデルとして唯一の選択肢ではない」との指摘 - GIGAZINE
GitHubのソースコードから自動学習するAIプログラミング機能「GitHub Copilot」で禁止されている単語は1170個、ゲームに使われている関数まで禁止 - GIGAZINE
AIベンチャー・OpenAIの「GPT-3」がウェイトリストなしで誰でも利用可能に - GIGAZINE
コーディングも支援可能な文章生成AI「GPT-3」が文脈に応じた内容を生成するように進化 - GIGAZINE

自然言語処理

AIが文章を書けるようになったことで政治がゆがめられる危険性がでてきた - GIGAZINE
言語の壁を超えて複雑な文章や画像も理解できる新検索アルゴリズム「MUM」をGoogleが発表 - GIGAZINE
「文章生成AIによって作られたフェイクニュース」は本当に民主主義にとって危険なのか? - GIGAZINE
「ハサミを箱に入れる」「布を折る」など言葉で指示した多様なタスクをロボットアームで遂行するAIが登場 - GIGAZINE
ロボットに仮想空間で「現実世界とは何か」を学ばせることで学習を高速化する「Habitat 2.0」をFacebookが発表 - GIGAZINE
中国の研究チームが新たなAI「悟道2.0」を発表、パラメーター数は1兆7500億でGoogleとOpenAIのモデルを上回る - GIGAZINE

予測

ハードディスクに障害が発生する可能性を機械学習で予測する研究 - GIGAZINE
ディープラーニングで交通事故の発生を高精度で予測するモデルをMITが開発 - GIGAZINE

倫理・懸念

高度に発達したAIを人間が制御することは可能なのか? - GIGAZINE
AI規制が逆に「新たな生体認証監視時代を到来させてしまう」という主張 - GIGAZINE
特定のシナリオが道徳的かどうかを判断するAI「Delphi」が登場、AIは道徳や倫理の問題を解決できるのか? - GIGAZINE
AIは「AIにまつわる倫理」についてどう考えるのか? - GIGAZINE

AIを用いたマリオカート64の全自動走行がNINTENDO64の実機で成功 - GIGAZINE
初めてニューラルネットワークによる量子化学計算を実現したシステムがオープンソース化 - GIGAZINE
通常のチェスAIよりも人間らしい指し回しを実現するニューラルネットワークチェスエンジン「Maia」 - GIGAZINE
コンピューターに物事を学習させる「デイープラーニング」はどのように実行されるのか? - GIGAZINE
GPUに比べて最大15倍高速な市販CPU向けのディープラーニングアルゴリズムが開発される - GIGAZINE
機械学習の「Q学習」にベイズ推定を取り入れると一体何が起こるのか? - GIGAZINE
効率的なミサイル迎撃用のAIを開発する研究者が「トンボの脳」をコピーする意味とは? - GIGAZINE
ロボットに見つめられると集中力が削がれてしまうことが判明 - GIGAZINE
脳を半導体に「コピー&ペースト」するテクノロジーが発表される - GIGAZINE
ウェブカメラで顔や体の動きをトラッキングして3Dアバターを動かせる「KalidoKit」のソースコードが公開中 - GIGAZINE
MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
CPU algorithm trains deep neural nets up to 15 times faster than top GPU trainers
L.starさんはTwitterを使っています 「論文の方をざらっと眺めてみたが、極めてざっくり言って疎行列を上手に扱うためにハッシュテーブルを使うということのようで、たしかにそれはメモリが潤沢なCPUの得意そうな分野。もうちょっと読み込んでみたい。 https://t.co/rMigDHNuqC」 / Twitter
片桐 孝洋さんはTwitterを使っています 「ざっとみた感じ  行列構造を疎行列データ構造のように持ち(この管理をハッシュテーブルでする) あとはSIMD化して高速化のようだ」 / Twitter
片桐 孝洋さんはTwitterを使っています 「対象の疎行列構造の制約を見る必要があるが、HPC分野の得意技で高速化しているといえる。 どのぐらい汎用か見極める必要があるが、この方法は、IntelのCPUだけでなく、「富岳」のARM64FXでも、有効そうな方法に思える。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ニューラルネットワークで生成したマスターキーならぬ「マスター顔」を使って、(CNNベースの) 顔認証の40%が通過できるという研究。StyleGANに入力する初期値を遺伝的アルゴリズムで変化させるらしい。 https://t.co/9VXMT308qw」 / Twitter
‘Master Faces’ That Can Bypass Over 40% Of Facial ID Authentication Systems - Unite.AI
「ディープラーニングは万能ではない」という主張、次世代のAIを支える理論とは? - GIGAZINE
7種類の声でAIが文章を感情を込めて読み上げてくれる商用利用可能な読み上げソフト「VOICEPEAK」レビュー - GIGAZINE

infoQ

Google

Googleが新しい高性能TensorFlowランタイムをオープンソース化
Google、Facebook、Microsoftの大規模多言語AIモデル
Googleが高速アテンションモジュールのPerformerをオープンソース化
GoogleとMicrosoftのAIモデル、言語理解ベンチマークにおいて人間の能力を凌駕
Googleは兆パラメータのAI言語モデルSwitch Transformerをオープンソース化
GoogleがAutoMLアルゴリズムのModel Searchのソースを公開
Google DeepMindのNFNetがディープラーニングを効率化
自然言語処理とゲノミクス処理を進化させるGoogleのBigBirdモデル
Perceiver:複数の入力データ型向けの単一のニューラルネットワークモデル
Google Cloudがマネージド機械学習プラットフォームの Vertex AIを発表
Googleがトークンフリー言語モデルByT5をオープンソース化
GoogleがTensorFlow LiteをAndroidに統合、さらにAutomatic Acceleratorを追加
Googleが8億パラメータ視覚・言語AIモデルのALIGNを発表
DeepMindがデータに依存しないディープラーニングモデルPerceiver IOをオープンソース化
TensorFlow 2.3ではパイプラインのボトルネックを削減し、前処理を改善
AppleのML ComputeフレームワークがTensorFlowトレーニングを加速
ExBERT、NLPモデルで学習された表現を探索するためのツール
少ないパラメータでTransformerの性能を凌駕するGoogleのGated Multi-Layer Perceptron
トレーニング済モデル上で高速クエリ検索インデクスをサポートするTensorFlow Similarity
Googleが2800億パラメータのAI言語モデル”Gopher”をトレーニング
DeepMindが量子化学AIモデルのDM21をオープンソース化
PipelineDPによりGoogleの差分プライバシーライブラリをPythonで提供
AlphaCode:ディープラーニングによる競争力のあるコード合成

Facebook

Facebookは機械学習プライバシーライブラリのOpacusをオープンソース化
Facebookが多言語音声認識ディープラーニングモデルをオープンソース化
Facebookがタンパク質配列を処理するAIモデルをリリース
FacebookがZionEXプラットフォームを発表、12兆パラメータのAIモデルのトレーニングを可能に
FacebookがTransformer AIをスケールアップするExpire-Spanをオープンソース公開
モバイル、科学計算、分散トレーニングを強化したPyTorch 1.9がリリース
Facebookがコンピュータビジョンモデル”Multiscale Vision Transformers”をオープンソースとして公開
Facebookが将来の行動を予測できる新しいAIモデルを開発
PyTorch 1.10がリリース - CUDA Graphs APIを追加、コンパイラを改善、Android NNAPIをサポート
Facebook、ディープラーニングモデルの初期化を高速にするGHN-2 AIをオープンソースとして公開
Facebookが20億パラメータの多言語音声認識モデルXLS-Rをオープンソース化
PyTorch利用についてメタとAWSが協力
MetaがマルチモーダルAIアルゴリズムのdata2vecをオープンソース化

MS

OpenAIがニューラルネットワークを理解するためのビジュアライゼーションツールであるMicroscopeを紹介
OpenAIはニューラル言語モデルのスケーリング法則を近似する
Microsoft Researchが新しいビジョン言語システムを開発:VinVL
Microsoftがニューラルテキスト読み上げAIへの限定アクセスを発表
MicrosoftがAIトレーニングライブラリのZeRO-3オフロードをリリース
MicrosoftのZeRO-Infinity Libraryで32兆個のパラメーターのAIモデルをトレーニング
LinkedInがGreykiteをオープンソースに
OpenAIがAI処理最適化のためのPythonベースのプログラミング言語であるTritonをリリース
OpenAIが120億パラメータのコード生成AI Codexを発表
GitHubのCopilot - オートパイロットへの道程は長い
MicrosoftがAzure Open AI Serviceをリリース、大規模なGPT-3モデルへのアクセスなどを提供
Microsoft、分散マシンラーニングライブラリSynapseMLをオープンソース公開
OpenAIが質問応答AIのWebGPTを発表
OpenAIは人間の指示に従うためのInstructGPT言語モデルを導入

スタンフォード

スタンフォードNLPグループがStanzaをリリース:Python NLPツールキット
学習済みモデルの一般への影響を研究するスタンフォード研究センター

MIT

MITがAIベンチマークとなるThreeDWorld Transport Challengeを発表
MItの研究チームがAMM(Approximate Matrix Multiplication)アルゴリズムのMADDNESSをオープンソースとして公開
MITの研究者がディープラーニングの計算負荷を調査

Intel

InterCon 2021のパネルディスカッション:AIはエンドユーザにとって本当に有益か
IntelのLoihi 2とLava Frameworkでニューロモルフィックコンピューティング研究の進歩を目指す
ディープラーニングツールキットIntel OpenVINOではAPIが拡張され、パフォーマンスが向上

Baidu

BaiduのERNIE 3.0 AIモデルが、言語理解ベンチマークで人間のパフォーマンスを超えた
Baiduが110億のパラメータを持つチャットボットAIのPLATO-XLを発表

企業

Alibaba Announces 10 Billion Parameter Multi-Modal AI M6
アリババがAutoMLアルゴリズムのKNASをオープンソース化
NVIDIAがAIをトレーニングするデータセットジェネレータDatasetGANを発表
トヨタの研究者が語る数理研究の事例、不完全なデータでも機械学習できるか? | TECH+
IBMがハードウェアベースのベクタ-シンボリックAIアーキテクチャを開発
AWSが機械学習を学習し実験するための無料ツールSageMaker Studio Labを発表
WaymoがBlock-NeRF 3Dビュー合成ディープラーニングモデルをリリース

histric

MLを運用環境に展開する前に知っておくべきこと - Francesca Lazzeri氏の講演より
Caltechが偏微分方程式を解くAIをオープンソースとして公開
NLPライブラリのspaCy 3.0にTransformerベースのモデルと分散トレーニングが追加
マシンラーニングをテストとメンテナンス作業で使用する
研究者が生物学的に妥当なAIトレーニング方法を公開
CMUがAIモデルの一般化を保証するアルゴリズムを開発
EleutherAIが60億パラメータGPT-3のクローンであるGPT-Jをオープンソース化
IT運用のための人工知能(AI) - その概要
BasisAIのオープンソース、Boxkite機械学習モニタリングツールとは
Joanneum ResearchがロボットAIプラットフォームRobo-Gym Version 1.0.0をリリース
QCon Plus11月注目のMLトラック: 最新のMLイノベーションのすべてについて学ぶ
AIを有効にしたトラブルシューティングにより、リカバリ時間を短縮
BigScience Research Workshop、AI言語モデルのT0をリリース
QCon Plus MLパネルディスカッション - 実用化されたMLの次なるステップは何か?
リアルタイムMLのためのストリーミングファーストなインフラストラクチャ - Chip Huyen氏の講演より
Katharine Jarmul氏のMachine Learning at the Edge
MLCommons、最新のMLPerfトレーニングベンチマークの結果を発表
AIは見ることによっても聞く
Amazon OpenSearchに履歴データの異常検出を追加
aws/random-cut-forest-by-aws: An implementation of the Random Cut Forest data structure for sketching streaming data, with support for anomaly detection, density estimation, imputation, and more.
継続的な深層学習の評価:画像分類のための新しいベンチマーク
Meta AIの畳み込みネットワークのアップグレードにより、画像分類が改善

LambdaML: 深層ネットワークトレーニングにサーバレスを使うメリットとデメリット
テルアビブ大学、長文NLPベンチマークSCROLLSをリリース
大学の研究者が機械学習のコンピューティングトレンドを調査

スライド

tvm_intro.pdf - Speaker Deck
Intel Nervana Graph Compilerとは?
TensorFlow XLAは、 中で何をやっているのか?
DLHacksさんはTwitterを使っています 「質問応答タスクでモデルが何を学習しているのかを調べるために複数のデータセットに対して各種ablationを行った結果,モデルはショートカットを学習しているだけで文章や質問の理解をしていないことを示唆する結果が得られた. https://t.co/mS1RYMIIMG」 / Twitter
[DL輪読会]What do Models Learn from Question Answering Datasets?
確率的推論と行動選択
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
統計的機械学習 - yasuda.pdf
画像生成・生成モデル メタサーベイ
最近のディープラーニングのトレンド紹介_20200925
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
Tensorflow/Pytorch モデル移植のススメ - Speaker Deck
メルカリレンズβ WebAssembly × AIのプロダクト開発 / PWA Night vol.36 - Google スライド

Zenn

Glow コンパイラを試してみた
deno で機械学習
Lensだけで作るニューラルネットワーク

Qiita

ニューラルネットワーク、多様体、トポロジー - Qiita
出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「https://t.co/fl8svJgzuW 古めのディープラーニング(RNNやLSTM)で止まってる人が「Transformerって何?」を把握するのにとても良い資料、流れがわかる。 ただ、全くディープ知りませんって人が読む資料ではないのと、処理の流れを説明してくれてるんであってなんでこれが強いのかとかの解説ではない」 / Twitter
図で理解するTransformer - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「もうちょい説明が欲しいって方にはこっちもおすすめ https://t.co/iVKkm2xz35」 / Twitter
End-to-End Object Detection with Transformers - Speaker Deck
製造業における機械学習 - Qiita
強化学習 - 2020論文までの道のり(Q学習中心~R2D3, Agent57) - Qiita
【日本語モデル付き】2021年に自然言語処理をする人にお勧めしたい事前学習済みモデル - Qiita
機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita
naoppyさんはTwitterを使っています 「本当は奥が深いSoftmaxとそのお仲間達 https://t.co/95F2L58S39 #Qiita めちゃくちゃ面白い!argmaxが (p, z)を最大化するpという考え方でなるほどなってなったし、sparcemaxの一般化法がすごくてびびった 資料に出てきた”単体”という数学用語と図の意味がちょっとしかわからなかったのが残念」 / Twitter
本当は奥が深いSoftmaxとそのお仲間達 - Qiita

Twitter

特徴量エンジニアリングを含めた前処理がもっとも重要

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習に大量データを与えて自動でチューニングすれば人間より良い予測ができる」というAI信仰みたいなのは本当にそうなっている所を見たためしがなくて、そういうアプローチをする場合のほとんどは「良い予測ができている」かどうかすら正常に判断ができずに失敗してます。」 / Twitter
まますさんはTwitterを使っています 「「SVM/Naive Bayes/GBDT/RF/NNなど、データごとに良いモデルは違って、それらをチューニングしてアンサンブルするのが重要だ」っていう神話(大嘘)を信じ込んでいる人間が一部存在してるのがたぶん真の問題なんだよな。」 / Twitter
まますさんはTwitterを使っています 「現実は、「特徴量エンジニアリングを含めた前処理がもっとも重要で、モデルはデフォルトのGBDT使っとけばOK」っていうものだから、Feature Store的な方面は良いけど、頑張ってベイズ最適化でモデルをチューニングするAutoML的方面ははっきり言って殆ど意味がない。ついでに論文も再現性がない。」 / Twitter
まますさんはTwitterを使っています 「謎の伸び方してるけど、これに関する話です https://t.co/ds7oyNzdI0」 / Twitter
まますさんはTwitterを使っています 「kaggle弱い人あるあるで草」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「このケースはまだ良い方で、ちょっとだけ統計や機械学習を勉強した段階だと陥りやすいミスもあります。データや課題の前提を確認せずに「RCTを実施すれば効果を証明できる」「交差検証をやれば予測精度を担保できる」などと信じていると危険。」 / Twitter

現状

須山敦志 Suyama AtsushiさんはTwitterを使っています 「こんな状態なのに、深層学習はAI史上最大のブレイクスルーとして2012年あたりからずっと持て囃されてきたんですよね。。検証方法が不十分であったことは明確。しかも、同じやり方が今でも続けられている。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「すごい! >CIFAR-10で訓練されたDLモデルは、95%が欠けた全く無意味な画像でも自信たっぷりの予測を出す。 https://t.co/aXRu5k4CbE」 / Twitter
Nonsense can make sense to machine-learning models | MIT News | Massachusetts Institute of Technology
須山敦志 Suyama AtsushiさんはTwitterを使っています 「分からないときは分からないと言う予測の例: >変分ベイズを使って変化点検知をしてみる https://t.co/7Nyq9FCqrk」 / Twitter
変分ベイズを使って変化点検知をしてみる - 作って遊ぶ機械学習。
須山敦志 Suyama AtsushiさんはTwitterを使っています 「分からないときは分からないと言い、実際に予測は当たりにくいという例: >深層学習はガウス過程 https://t.co/FQCsTzigUw https://t.co/WyqTCOvcnC」 / Twitter
深層学習はガウス過程 - 作って遊ぶ機械学習。
ari23🐜|データサイエンティストさんはTwitterを使っています 「@sammy_suyama ちょっと、これはひどいですね…(・_・;」 / Twitter

JAX/FLAX

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2022年における PyTorch vs TensorFlow比較。1. 公開されているモデルの豊富さ、2. デプロイの簡単さ、3. ツール群について評価している。1. は PyTorchが圧倒的に有利。2.+3. はTensorFlowが有利。結論: 研究開発ならPyTorch、産業利用ならTensorFlowがおすすめ。 https://t.co/g4n6I5oXpE」 / Twitter
PyTorch vs TensorFlow in 2022
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「HNのコメントによると、TensorflowはGoogle的には「オワコン」で、いまのGoogleは徐々にJAX/FLAXに移行しているらしい。 https://t.co/9LQPKtOmml」 / Twitter
google/jax: Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

結果の信頼性確認

Eikyu ItoさんはTwitterを使っています 「深層学習系のプロダクト、話題になる割にはそれほど実用的に役に立たない理由は「結果が信頼できない」からなんだよな。9割はうまくいくけど、残り1割は全くダメ。で、9割よければ人間の工数9割削減できるかというとそうはならない。元々の工数比が「実行5割、チェック5割」だったりはザラなので(続く」 / Twitter
Eikyu ItoさんはTwitterを使っています 「答えが信用できずチェックが必要な限りは効率アップが5割を越えることはありえない。同じ「9割ok、1割ダメ」でも、ダメな1割の時に「できませんでした!」と報告してくれるならそれでもよい。9割の方はチェックしなくてよいので、だが深層学習は、ダメなものがダメとわからない。」 / Twitter
Eikyu ItoさんはTwitterを使っています 「だから、9割までできたらその次は「9.5割を目指そう」ではなくて「ダメな1割を検出する方法を考えよう」となってほしいのだが、そういう話はほとんど聞かない。というか恐らく深層学習では原理的に後者が無理(向いてない)なのだろうと思う。そこにどうしても限界を感じてしまう。」 / Twitter
inoue.aさんはTwitterを使っています 「@aq3948 棄却オプションという方法を使うことがあります。たとえば分類タスクなら予測スコアから、回帰タスクなら予測器の誤差の絶対値を予測する予測器を作ったり予測値でなく予測分布を求めたりして信頼性の低い予測を検出します。https://t.co/ABMnqSZwAV」 / Twitter
【機械学習勉強会】パターン認識と機械学習(PRML)第1章のまとめ Part.3 ~決定理論~ - IMACEL Academy -人工知能・画像解析の技術応用に向けて-| エルピクセル株式会社 (page 2)

論理との組み合わせ

Miura HidekiさんはTwitterを使っています 「昔話題になってもっと広まるべきだった用語  ソリトン  ウェーブレット  フラクタル圧縮 思い出したら追加します」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 ファジー推論」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 ファジーは思いついたのですが、今知っておくべきかと言うとちょっと悩みます。その手の曖昧な話は深層学習ベースで処理した方がよさそうな気がします」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 そうですね。日本だと深層学習一本やりな感じですが、論理と組み合わせてシステムを組む方法論もあるらしいです。ファジーは論理の一種なので、あいまいな論理と深層学習の組み合わせも可能性としてはあるかもしれません」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど。深層学習一本やりな感じのニュアンスでツイートしたのですけど、論理としてのファジーと深層学習の組み合わせも面白そうですね。ファジー理論って論理としてどれほどの枠組みがあるのか(健全性・完全性は?(無理な気がする...))わかりませんが。」 / Twitter

Bug

Ryuji FuchikamiさんはTwitterを使っています 「DeepLearning系のプログラムの一番難しいところは、バグがあっても学習が進んでしまうことに他ならないと改めて思った次第です。 そしてバグがあると最後の最後で必要な結果に達しなかったりするので、デバッグがとても難しい(泣)。」 / Twitter
marsee101さんはTwitterを使っています 「@Ryuz88 本当にそう思います。バグに気が付かないし、デバッグ大変。結局、二種コードを書いて、中間結果を比べてました。簡単で分かりやすいコードとチューニングコード。」 / Twitter
Ryuji FuchikamiさんはTwitterを使っています 「@marsee101 同じくです。最近やっとPyTorchと比べられるようになってきたのですが、今度は直すところが多くてなかなか大変です。」 / Twitter

二重降下

いんそうさんさんはTwitterを使っています 「論文を公開しました。二重降下(パラメタ数が極端に多いと過学習しなくなる現象)が深層学習でも起こることを理論的に示しました。既存の理論解析は、扱えるモデルは線形回帰や二層NNなどの浅いモデル限定でしたが、本理論は深層モデルを含む最尤推定を扱えます。米ラトガース大の中田さんが主著です。」 / Twitter
Stat.ML PapersさんはTwitterを使っています 「Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks. (arXiv:2103.00500v1 [https://t.co/zjV5HgYw5a]) https://t.co/s82Iv8LKht」 / Twitter
[2103.00500] Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks
いんそうさんさんはTwitterを使っています 「導出した二重降下のリスク曲線と、我々の理論に適合するアーキテクチャ(並列化NN)の画像です。 https://t.co/eEHD71ECgr」 / Twitter

モグラ叩き問題

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「出てきた問題を一つ一つfixする」ってやっていくと気がつかないうちにどんどんオーバーフィットしていくこともML特有の難しさですね。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「普通のIT開発では、人が書いたコードのリリース時に仕様通りのふるまいかを検証すればよい。一方MLシステムでは、かき集めた新データでMLモデルを再学習するたびにシステムのふるまいが変わるし検証も難しい。「誰もそれをテストしてないのである!」が起きるのがML Opsの怖さ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはモグラ叩き問題と呼んだ方が良いかもしれない。見つかった予測ミスを修正しようとしてモデルや前処理のどこかをいじると、他の場所で新しいほころびが出てきてしまう。この新しいほころびが手持ちのデータ外(=本番環境や未来)であると絶対に気が付かない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これを防ぐには、「その修正が合理的かどうか?」に関して熟考する必要があります。「なんかわからないけど特徴量XがY~Zの範囲の値を取ると予測値が暴れるみたいなのでここは処理を分けて予測精度を保ちます」みたいな変な修正をやっていると事態は悪化するだけです。」 / Twitter

説明

Seitaro ShinagawaさんはTwitterを使っています 「ニューラルネット界の怖い人に襲われないためのdeep learningの説明 「人の脳を模倣した」→×調子に乗り過ぎています。まず襲われます。 「人の脳の神経回路を模倣した」→×まだ調子に乗り過ぎています。人目が多いところでは襲われます。 「脳の神経回路の仕組みに学んだ」→〇無難な表現です。」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「脳の神経細胞のモデルから直接インスパイアされたのかと言われると、最初はヤリイカの巨大軸索だしなあという気持ちがあるので、「神経細胞が行う情報伝達の仕組みに学んだ」とかにした方がより適切と思いますが、私は大人なので空気を読んで「脳」は残しました。空気を読んだんです襲わないでください」 / Twitter
Katsuhito Sudoh (ja)さんはTwitterを使っています 「@sei_shinagawa ただの関数近似の一種ですが何か?という説明をしてたりします」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「@katsuhitosudoh deep learningの端的な説明は私もそうしていますね。敢えて「脳の~」とか「人の~」とかみたいな言い回しをしたいなら上記のようにするかなということです。まあ私個人としてはこういう言い回しは嫌いじゃないです」 / Twitter
FadisさんはTwitterを使っています 「最初にこれを考えたヤツはニューロンから着想を得たかもしれないが、学習できるようにネットワークの進行方向を定めた段階で既に模倣もへったくれも無い別モンなんだよな」 / Twitter
ジョニーさんはTwitterを使っています 「ディープラーニングはブラックボックスなので、不具合があってもなぜ判断を誤ったのか分からなくて嫌がられることがありました。どこかの化学メーカーでも精度は良いけど説明力がないので、ディープラーニングじゃなくて結局線形回帰使った話を聞きました。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「データ解析の専門会社が日系製造業に深層学習ベースの異常検知システムを納入する際、いざ量産導入でテストとちょっと違う画像を投入しシステム破綻しクレーム、がしばしばあるそう。私は画像屋さんと工場両方の言い分がわかるつもりだが、そもそもDLって製造業に向いてない気が個人的にはしている。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「工場では「当面この製品ずっと作りますよ」と言いつつ半年後に設計変更して画像の感じが大幅変化なんてザラ。"設備"は短くても5年償却、即ち5年は初期の性能を維持すること前提。そういう意味で「汎用性」に乏しくなりがちの深層学習ベースシステムは製造業の商習慣に会ってないと思っている。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu 再度学習させることは難しいんでしょうか?」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@ATOM01074529 もちろん画像解析の正論としては「画像が変わったのなら新しく学習しなさい」です。ただ工場としては「寝ぼけたこと言ってんじゃねえぞ!不良画像集めるのどんだけ苦労したと思ってんだ?これから製造するモノの不良画像なんてあるわけねえだろ!過去の画像だけで何とかしろ金払ってんだぞ」です。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu あ。 そりゃ、不良品の画像はないですね。(恥ずかしい) 教師なし学習とか?(←機械学習何も知らない。) そもそも外観でわかる不良の割合って大したことない気もします。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@tako2539 工場はとくに、何か問題が起きたら即対策立案!放置はあり得ない、という文化ですので「ミス率0.1%だがミスの理由不明」よりも「ミス率5%だがミスの理由が明確」のほうが基本的に好まれますね。あとは「いざ困ったら自分達で微調整効く」も好まれます。」 / Twitter
ジョニーさんはTwitterを使っています 「@dr_vegepamyu 工場は問題起きたら再発防止策立案しますから、説明力があるモデルの方が好まれそうですよね。 私は一時期金融業界にいたんですが、金融でも問題があったら金融庁やお客さんに説明することが求められますし、説明力あるモデルが求められてました。DLも提案しましたが却下されましたね。」 / Twitter

histric

histric-1

Fadisさんのツイート: "どうやらディープラーニング屋さんはネットワークを定義したDSLに沿って計算を行うフレームワークの実装はDSLのインタプリタの開発に他ならない事に気が付いてしまったらしく、ネットワーク定義を食べてLLVM IRを吐くコンパイラフロントエンドの開発が加熱しているらしい"
Fadisさんのツイート: "DLVM: LLVM IRに落とす事ができ、ニューラルネットワークに欲しい演算と型を備えたLLVM IRより高レベルの中間言語 https://t.co/WN9Ijyka92"
The DLVM Compiler Infrastructure for Deep Learning Systems
shunsuke_sasakiさんのツイート: "DLVMは作者がメンテナンスを止めちゃいました。”The authors of this project are no longer maintaining DLVM, but instead developing Swift for TensorFlow”… "
Fadisさんのツイート: "Glow: ネットワークのグラフを入力として、グラフの最適化を行なった物をLLVM IRに変換して、LLVMにターゲット固有のSIMD命令の利用や命令スケジューリングをさせる機械学習コンパイラ https://t.co/MoW4SWm9tB"
pytorch/glow: Compiler for Neural Network hardware accelerators
はじめてのにき(2018-11-11)
Aug. 2017
Intel® Nervana™ Graph: A Universal Tensor JIT Compiler
shinichiro hamajiさんのツイート: "Relayというか、グラフIRに対する関数型言語IRの優位性というのがさっぱりわからなくて、PythonベースのフロントエンドDSLで、ループを常に再帰で書いてあれば、unrollするか否かの選択を、デコレータへの引数などの方法で伝えられる、ということが思い当たった"
shinichiro hamajiさんのツイート: "ただ関数型スタイルでモデル書くのか……?という疑問と、別にRelayにそういうコードは無いというか普通にループしてるというか、 https://t.co/sMM9CKREcX にあるDSLすら実体ない気がするんだよなあ、ということで、よくわからん。このRelay PDFは論文というよりdesign docみたいなものな気がするし謎"
Relay: A New IR for Machine Learning Frameworks
TensorSpace.jsがニューラルネットワークの3D可視化フレームワークを提供
Fadisさんのツイート: "ニューラルネットワークの計算グラフを図にしたヤツ、「TensorBoardが生成するヤツ」よりもっと中立な規格ってあるんだろうか"
MLIR: A new intermediate representation and compiler framework
Mapping Spiking Neural Networks onto a Manycore Neuromorphic Architecture
takeoさんはTwitterを使っています: 「深層学習コンパイラやバックエンドの研究開発ツラすぎてこの分野の進化が止まりかねないという話 Machine Learning Systems are Stuck in a Rut https://t.co/arPRuTA1oV」 / Twitter
Machine Learning Systems are Stuck in a Rut
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 昨日、読みました。 なかなか、得るものが多かったです。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer この論文は割とネガティブな論調で書いてますが、でもコンパイラやってる人はみんなおんなじことを多少なりとも思ったことあるんじゃないかなぁって思います」 / Twitter
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 画像処理を長年やっていたので、 データの並びはいつも気になるポイントでした。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer 弊社でも割と議論の的になります」 / Twitter
FadisさんはTwitterを使っています: 「MLIRを吐くFortranフロントエンドFCのソースコードが公開された話。MLIRはTensorFlowが生み出したLLVM IRよりも高級な表現を維持する中間言語で、LLVM IR含むいくつかのターゲットに落とすことができる。LLVMには既にFortranフロントエンドf18があるが、それとは別 https://t.co/j2eTH7obI0」 / Twitter
The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source - Phoronix

histric-2

Daisuke OkanoharaさんはTwitterを使っています 「Enokiは複数プラットフォーム向け自動ベクトル化、微分化を備えたライブラリであり、define-by-runとコンパイル型の中間といえ、レンダリングのような数十万行程度の規模のコードを対象にできる。またテンソルだけでなくより複雑な入れ子データ構造も扱える https://t.co/yOqINrqovT」 / Twitter
FadisさんはTwitterを使っています 「これ、きちんと性能が出るように作ると大変面倒くさいし、性能気にせず素直に実装すれば一瞬で完成する。CNNってやってる計算自体は複雑じゃないんだよ」 / Twitter
がっちょ( ¨̮ )さんはTwitterを使っています 「畳み込みニューラルネットワーク(CNN)って0から自分で実装することって可能ですかね……? (実装期間は長くても4か月が目安) (むやみにやろうとするととても深い谷に落ちそうで怖い)」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「ディープラーニングは(規則はあるのだが)人間に理解できる低次元空間では中々規則が見えて来ないような問題で、かつ頑張って低次元への近似を行っても返って情報を損なうようなときに、よもや人間の理解がボトルネックなのだと認めて、データ突っ込んでアウトプットだけ見るのに適した方法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「人間の脳を模擬してますとか、説明性を付与できます、とか半分デタラメだと思う。前者は、当初はそういう意図だったというのはあるかも。後者は、説明できるんだとしたら、それはニューラルネットワークの話ではなくて、そのデータがやっぱり低次元で十分だった、という話だと思われる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「deep learningが長足の進歩を遂げてるとは言え、K値とかオバマの顔写真復元とかの騒ぎのようにモデルなき予測の危険性は明らかだし、機械学習を補助として使うことは増えても、プログラマの仕事は、すぐには、なくならないんだろうなーって思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今から業界に入る人の引退までその状態が続くかわからんけど、いっそ、さっさとコンピュータになんでもまかせて、みんな遊んで(趣味に打ち込んで)過ごせる時代が来たらいいなと思う」 / Twitter
./note008.html
高卒工員プログラマーさんはTwitterを使っています 「困った時のニュートン法 まあ最小値付近の微分係数の扱いが微妙なんで 微分係数(の大きさ)がスレッショルドを切ったら微小変位法に切り替えるけどな」 / Twitter
FadisさんはTwitterを使っています 「ニューラルネットワークを使った機械学習というのは、どういう関係かもわからない関数をとりあえず何でも近似できるニューラルネットワークで置いて、最適化問題にして解いてしまえという物なので、効率の良い学習の為の工夫は多くの場合関数の形は分かっているが係数が不明な最適化問題に転用が効く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「ニューラルネットワークは人間の脳を模したもの」とか言っても何も問題はないですね。所詮モデルなんだしどう思おうが勝手です。むしろuniversal approximation theoremみたいな実用とは無縁な定理を持ち出してどんな予測にも使っちゃう傾向の方が問題です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同時に、「ニューラルネットは人間の脳を模しており、人間のように学習や予測ができる」みたいな言説が独り歩きして各地であることないこと語られてしまっている現状もあるので、専門家としてその点に釘を刺しておくのは重要です。いずれにしても「モデルはモデル」という割り切りが重要。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓現実の複雑なタスクに対して具体的な要求仕様を定義し、実現可能な技術に落とし込むというプロセスにおいて、ディープラーニングはまったく実用的ではありません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「なので、煩雑な現実を避けて、それらしいサブタスクを設定してデモを魅せるというのが多くの企業がやっていることですが、残念ながら実応用へのボトルネックの解消には繋がっていないのが現状でしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「4年前ですが、この区別は未だに浸透していない感があります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人の知能を模倣するための科学と、より一般的な予測・判断の科学とは、目指す方向がそもそも違っていることを今一度強調しておきたいところです。自分は企業のエンジニアとして後者の発展をより望んでいます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「近い将来に人と同程度の人工知能が実現して、今の職業をそっくりそのまま置き換える」みたいなストーリーは起きません。」 / Twitter
'Yuki’ KamitaniさんはTwitterを使っています 「深層ニューラルネットワーク(DNN)とヒトの脳との階層的な類似性を測る指標を作ったら、最近の「高性能」DNNは、あまりヒトの脳に似ておらず、物体認識精度と脳との階層的類似度の間には負の相関があった、という話。AlexNetやVGGがめっちゃ強い https://t.co/qEbuYw0WAk」 / Twitter
Kazunori SatoさんはTwitterを使っています 「AIというより、「人の手に負えない膨大な条件の組み合わせからいい感じの答えをざっくり見つけるアルゴリズム」として見れば、MLって単純に強力すぎるツール。映画マトリックスのように、世の中の様々な課題が高次元空間内の微分可能な関数として見えれば、従来のITとは全然違うんだなと感じられる。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「一般的なIT開発とは問題の解き方が全然違うから、何か異質なものとして「AI」って名前を付けて、想定用途を制限したり過剰に期待したり幻滅したりして納得したい人が多いのだろう。でも実態は計算パラダイムに過ぎず、使うCPUもソフトもごく普通。とても便利だけどクセのある新しいパラダイム。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「甘利先生の講演を聞いてる。 内容も研究スタンスも面白い。 そういえば機械学習の理論・数式を追うだけでなく、ピンと来ない時は、その意味するところを低次元に落とし込んで、実感的に捉えられるようにする工夫とか、甘利先生クラスでもこういう作業するのね、とか。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「自然言語文法は例外だらけなのに自然に感じるのは、法則に見えてホントは慣れで学習しているからで、慣れとはニューラルネットの重み付けそのものと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「理系発見の多くも、先に結論を発見して、その後に論理性・無矛盾を完成させるパターン多い。 これも同様のニューラルネット構造が一因かな? (あと無意識が解を考え、意識が気づく構造も一因そうだが) 棋士も、先に良い手を思い付いてから、それが正しいかを確認する方向が多いという話も。」 / Twitter
1T0TさんはTwitterを使っています 「2功8罪 https://t.co/Nc2Fb2bruh」 / Twitter
1T0TさんはTwitterを使っています 「↑てっきり黒は全部罪かと思ったらそうとも言い切れないな」 / Twitter
UmeponさんはTwitterを使っています 「変数と同数のパラメータを用意すれば、パラメータを上手くチューニングすることでどんな問題も解けるようになるっ!」 / Twitter
UmeponさんはTwitterを使っています 「真面目な話、手動で弄る必要のあるパラメータが増え出したら「本質的な問題を棚上げにしてるんじゃないか?」という危機感を持ち遡ってアプローチから見直した方が良い。」 / Twitter

histric-3

Kentaro FukuchiさんはTwitterを使っています 「ミュラー・リヤー錯視やポッゲンドルフ錯視が「ぼかし」によって説明できるかもしれないという杉原先生の説明は、畳み込み処理との関係を考えると非常に面白い。 https://t.co/h78r5prRFo https://t.co/NekyJgHBdm」 / Twitter
Kokichi Sugihara's Homepage (Japanese)
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的な感触としてディープラーニングは、一部の特定の応用領域を除き、ビジネス面では完全に終わっています。」 / Twitter
Yuta KashinoさんはTwitterを使っています 「(´-`).。oO( 誰も言わないのでつぶやいておきますが,DNN等のAIのビジネス適用,やはりブライアン・アーサーの言う基本技術のいくつかが未だ欠けていて,ほとんどの領域で人が期待する性能が全然達成できず,適用範囲があまりに狭すぎますよね….世の中も気づいてきたので,しばらくすると… )」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とりあえず「大量にデータを食わせてハイパラチューニングすれば何とかなる」というパラダイムは応用領域では捨てた方が良さそう。その代わり、計算効率化やモデリングに関する知見などは、分解すれば良い部品はたくさんあります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「DNNを使って自動化したい」っていう話、一定のリテラシがある界隈では本当に聞かなくなった(かわりにAIが良く用語として使われてますが)。このあたりは研究よりビジネスの方が判断が冷たいというか飽きが早いというか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん人手を介さず自動的に精度の高い予測ができる技術だとか、そういうものは未来永劫重要なテーマではありますが、現状でそれは到底実現されていないですしされる見込みもないので、この辺を売り文句にしてビジネス提案するのは虚構に近いです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「要は、issueとsolutionの対応付けが、研究とビジネスとでぐちゃぐちゃになってしまっている。研究領域のissueから生じたsolutionを、そのままビジネスのsolutionとして使ってはいけない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「曲線フィッティングな深層学習が活躍できそうな領域に関しては、Andrew Ng先生の短い説明がありますね。 &gt;If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. https://t.co/25bng87NuU」 / Twitter
Andrew Ng: What AI Can and Can’t Do
Ken McAlinnさんはTwitterを使っています 「深層学習が廃れることはなく、どんどんなにが得手不得手なのかがわかっていくんだと思うんですよね。個人的には人間が得意なこと(画像認識、運転、言語)は得手で人間が不得意なこと(経済予測、ビジネス意思決定)が不得手っていう区別になんとなく納得しています。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データが豊富に存在するある特定の課題を、深層学習なり強化学習なり最適化なりベイズなりドメイン知識なりを徹底的に組み合わせて解きにいく、はまだまだありそう。逆に、汎用お手軽予測ツールとしての深層学習の使い道はなくなりました。」 / Twitter
Yusuke Hayashi(林祐輔)さんはTwitterを使っています 「「深層学習を使う必要がない」ツイートで例に挙げられていた2つの分布が重なる場合の識別問題. こちらの図表(b)ではカーネル法を使ってそんな問題でも解ける場合があることを紹介している. 深層学習はカーネル法では固定されているカーネル関数がデータに応じて適応的に変化するモデルの1つ. https://t.co/9vhN9F3bZ9」 / Twitter
akiraさんはTwitterを使っています 「https://t.co/BjliikbCYZ 深層学習を使って、物理学で人間が解釈可能な現象を発見させる研究。物理現象ではグリーン関数が頻出するが、未知の偏微分方程式に関連グリーン関数をモデルに学習させることで、より理論に即した物理的特性発見手法になっている https://t.co/c3tMBGixud」 / Twitter
[2105.00266] Data-driven discovery of physical laws with human-understandable deep learning
lotzさんはTwitterを使っています 「Haskellで深層学習、Haskellでは型を活用した抽象的なネットワークの記述に徹して、実行はより低レイヤーの言語に変換して行うみたいな連携は現実的なんじゃないかと思ってる。HaskTorchとか」 / Twitter
mod_poppoさんはTwitterを使っています 「Pythonでは多次元配列のshapeを型で表現できないけどHaskellなら型レベル自然数とかで型の表現力高いのでHaskellで深層学習(のガワ)は普通にありだと思うし実際にHasktorchみたいなプロジェクトがある」 / Twitter
mod_poppoさんはTwitterを使っています 「Hasktorchだったかは忘れたけど前にHaskellでディープななにかを触った時にIsList (Maybe (Tensor …))みたいなインスタンスを持ってて行儀悪いなーと思った記憶がある」 / Twitter
mod_poppoさんはTwitterを使っています 「真面目に色々型をつけようとすると型制約のオンパレードになって初心者お断りな雰囲気を醸しがち」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「物理シミュレーションのためのディープラーニング。ここではCSでよく使われている教師つき学習でなく「微分可能な物理 (differentiable physics)」という手法を提案している。これは物理シミュレーション自体をモデルとして組み込むことで予測精度を向上できる。 https://t.co/oUc39GPqgx」 / Twitter
Welcome … — Physics-based Deep Learning
Seitaro ShinagawaさんはTwitterを使っています 「去年の対話システムライブコンペで大いなる力を見せつけて優勝した、NTTさんの16億パラメータ日本語対話モデルがついに公開。待ってました・・・!🎉🎉🎉 日本語対話システム研究がこれからどんどん活発化しそうですね。 https://t.co/tVXGE7H56H https://t.co/gVA5JkKcSE」 / Twitter
[2109.05217] Empirical Analysis of Training Strategies of Transformer-based Japanese Chit-chat Systems
nttcslab/japanese-dialog-transformers: Code for evaluating Japanese pretrained models provided by NTT Ltd.

ワクワクさんさんはTwitterを使っています 「ランダム行列理論によってデータを用いずにニューラルネットの重みだけから過学習などを判断できるツールらしい。 https://t.co/Yeow9uBoFP」 / Twitter
CalculatedContent/WeightWatcher: The WeightWatcher tool for predicting the accuracy of Deep Neural Networks
OdashiさんはTwitterを使っています 「深層学習ライブラリ、 1. CPUで動くのを書くだけなら2,3週間でできる 2. GPUで動くのを書くのは次の1か月でできる 3. あらゆる種類のバグが湧き出し、これに対処するため永遠に開発 という感じ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ニューラルネットワーク (Transformer) を使った数列の予測。数列を与えると、それを生成するような数式を推測する。OEISの数列を推測させることもできる。 https://t.co/GsoZPzals9」 / Twitter
main · Streamlit
FadisさんはTwitterを使っています 「RepVGG: 深層CNNとしては古典の部類のVGGの畳み込み層の横にskipを付けたモデル。ResNetと異なりskipがconv1層とセットになっている為、skipを等価な3x3のconvに変換して重みを足し合わせる事でconvとpoolが一直線につながったVGGと同じ形の簡素なNNになり高速に評価ができる https://t.co/4ASPiz6nb5」 / Twitter
[2101.03697] RepVGG: Making VGG-style ConvNets Great Again

Taku KudoさんはTwitterを使っています 「データセットA, Bがあって、データ内で閉じた評価(交差検定等)だとAがよいのに、ユーザのリアル環境ではBが良いということはよくある。でも人はA, Bの数字だけで評価しがち。本来は比較できないのに。疑似データを使いだすとますます怪しくなる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「モデルが複雑になった時、考えるべきことは、そのモデルが本当に必要なのか、ということなんですよね」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ディープラーニングにおける収穫逓減。深層学習は高い精度を達成したが、そのモデルはムーアの法則によるハードウェア進化を上回るペースで巨大化を続けており、経済的・環境的コストも増大している。今後、精度の向上にしたがって、CO2排出も増大する。正当化できるのか? https://t.co/NAML7Ce9ZZ」 / Twitter
Deep Learning’s Diminishing Returns - IEEE Spectrum
uint256_tさんはTwitterを使っています 「DNNって固定小数点数で計算することあるの」 / Twitter
uint256_tさんはTwitterを使っています 「それってただの量子化か」 / Twitter
.ʙɪɴさんはTwitterを使っています 「@uint256_t 出力精度がそんなに下がらないのでGPUで早く計算できる固定小数点を使うとは聞いたことあります (FPUあるなら浮動小数点数でも良さそう)」 / Twitter
uint256_tさんはTwitterを使っています 「@SpreadSyntax 浮動小数点数つらい」 / Twitter
.ʙɪɴさんはTwitterを使っています 「@uint256_t 頑張って、、、」 / Twitter

エキスパートシステム

エキスパートシステム - Wikipedia
人工知能「エキスパートシステム」とは?実用例で簡…|Udemy メディア
【図解】コレ1枚でわかる人工知能の3つのアプローチ:ITソリューション塾:オルタナティブ・ブログ
ディープラーニングと機械学習は何が違う?それぞれの特徴を解説|発注成功のための知識が身に付く【発注ラウンジ】
機械学習モジュール群を組み合わせて、最適なソリューションを提供するPKSHA Technology |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
ディープラーニングとエキスパートシステム(ルールベースAI)の使い分け方 |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
AIとシミュレーションを組み合わせ、データに乏しい状況でも意思決定を可能に
「<オージス総研をとりまく>人工知能技術の過去と現在(1)」 | 株式会社オージス総研
AIブームを支える「機械学習」~AIの現実的な始め方とは?~ | アシスト
n4200000.pdf
知識表現(ちしきひょうげん) - ITmedia エンタープライズ
知識表現

数値計算

その他

LDU分解

4レッスンrev070711 - lesson_4.pdf
chap07.pdf
朝焼けのつぶやき |LU分解/LDU分解・・・
行列の分解 - Wikiwand
cholesky.pdf
柏木先生原稿(2012年度).pdf
「LDU分解」に関するQ&A - Yahoo!知恵袋
行列を分解して上下三角行列が欲しい - Thoth Children
p04.dvi - p04.pdf

approximate computing survey - Google Scholar
20200314
数値計算ライブラリ「NumPy 1.22」が公開 | OSDN Magazine
spitbol/spitbol: SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
SoftFP Library
LibBF Library
ferreiradaselva/mathc: C math library for 2D and 3D programming
OSQP solver documentation — OSQP 0.2.1 documentation
oxfordcontrol/osqp: The Operator Splitting QP Solver
log_(0.99)(0.01 / x)をx=0から200でプロット - Wolfram|Alpha
Wolfram|Alpha 日本語版:計算知能
インテル MKL | 数値演算・統計関数ライブラリー | XLsoft Intel
Mathematics for programmers (early draft)
Google、社内で利用するプライバシーに配慮した統計ツールをオープンソースで公開 | OSDN Magazine
金融市場トレーダーの行動法則をボルツマン方程式で解明 | 東工大ニュース | 東京工業大学
状態空間モデルの推定方法の分類 | Logics of Blue
UTokyo OCWx
微分方程式と差分方程式(漸化式)
イジング模型の定義 - MathWills
Jones on modulus without division
入門テキスト「測度と積分」 - Mathpedia
Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
Point Cloud Library (PCL)
bin coordinates - Google 検索
3-FPAI101-20160807-B504_15-20.pdf
Juliaで精度保証付き数値計算 | TakLAB日誌
天才数学者ラマヌジャンのように数式を予測して生み出してくれるAI「ラマヌジャン・マシン」が誕生 - GIGAZINE
移動平均とFIRフィルタ – GitHub 出張所 – プログラム関係のブログはここに
超指数増加 - Google 検索
数値データのスケーリングの結果を比較してみた - Adwaysエンジニアブログ
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「図解カルマンフィルタ入門。カルマンフィルタは (正規分布が仮定できるような) 不確定性がある環境で制御をおこなうときに使える枠組みで、分布を共分散行列で表すことにより、すべての可能性を同時に考慮できる。 https://t.co/1xCvHRL121」 / Twitter
How a Kalman filter works, in pictures | Bzarg

数理最適化

用語の定義

電子計算機の沼さんはTwitterを使っています 「用語の問題なんだけど、 数理計画問題があって、 それを解くのが数理最適化?数理計画法? そのうちの一部が線形計画法?線形数理最適化ってのもある?」 / Twitter
UmeponさんはTwitterを使っています 「@Hishinuma_t 数理計画問題(=最適化問題)を解くのが数理計画法です. 理論から応用まで最適化問題を扱うこと全般を指して数理計画(=数理最適化)と呼ばれることが多いです.」 / Twitter
UmeponさんはTwitterを使っています 「@Hishinuma_t 数理最適化はもともと数理計画と呼ばれていました.2010年に国際学会Mathematical Programming Society (MPS)がMathematical Optimization Society (MOS)に名称変更したことを受けて,国内でも数理計画を数理最適化と呼ぶことが増えました.」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@shunji_umetani あー!なるほど!! 名称変更してるんですね! どおりでなんか習ってない気がするし、機械学習と共に現れたような気がすると思いました。なるほどなあ、、 「線形計画問題」はどうなるんですか?「線形最適化問題」?」 / Twitter
UmeponさんはTwitterを使っています 「@Hishinuma_t そこは人によって意見が分かるところなんです.自分は数理計画→数理最適化だけの変更で,線形計画などはそのまま使ってます.」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@shunji_umetani な、、なるほど、、、 ありがとうございます。 積年のモヤモヤが晴れました、、」 / Twitter

Fixstars Tech Blog /proc/cpuinfo

整数型 と Newton法 - Fixstars Tech Blog /proc/cpuinfo
収束加速法の紹介 - Fixstars Tech Blog /proc/cpuinfo
東芝シミュレーテッド分岐マシン (SBM) による最大カット問題のベンチマーク - Fixstars Tech Blog /proc/cpuinfo
「DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
「CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
シミュレーテッド分岐マシン(SBM)で巡回セールスマン問題を解く - Fixstars Tech Blog /proc/cpuinfo

データをアクションにつなげる技術「数理最適化」とは? | DOORS
数理最適化による問題解決の実践的なアプローチ
【連載】ブレインパッドの数理最適化ブログ(目次) - Platinum Data Blog by BrainPad
第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第2回:ナップサック問題を色々な方法で解いてみた【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第3回:はじめての配送計画の列生成法【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第4回:在庫問題と配送問題をドッキング!大規模最適化時代で何が変わる!?【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第5回:なぜデータサイエンティストが数理最適化を行うのか【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
井山梃子歴史館さんはTwitterを使っています 「「実社会におけるあらゆる問題は、守らなければならない制約条件のもとで、何らかの評価指標を最小化あるいは最大化する制約付き最適化問題として定式化することができます。」 すき」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/v5L3opFuTw」 / Twitter
【プレスリリース】制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- | 日本の研究.com
ТагсановさんはTwitterを使っています 「異分野横断しててカッコいいなと思う一方で、論文ざっと読んでみるとグレブナー基底の計算が途中で必要みたいで、現実的な問題設定に対してどれだけまともに使えるのかは気になるところではある https://t.co/GmKGFMeEzB」 / Twitter
京都大学さんはTwitterを使っています 「制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- https://t.co/RH6Fb8BHRf」 / Twitter
制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- — 京都大学
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「問題は,計算機を増やすことで高速化される効果は最善でも線形であるのに対し,組み合わせは指数関数で増えることですね。」 / Twitter
UmeponさんはTwitterを使っています 「バイバインを使えば、どんな組合せ最適化問題も線形時間で解ける計算機って作れるのかな?同じ物がコピーされるだけだから難しいか。」 / Twitter
Python言語による実務で使える100の最適化問題 | opt100

Eigen

Eigen
Eigen3 survey
C++行列計算ライブラリEigen入門 - Qiita
ベクトル/行列演算の定番ライブラリEigen - Qiita
C++の行列ライブラリ Eigenの紹介 | Preferred Networks Research & Development
C++線形代数ライブラリEigenの注意点 - Regen Techlog
pdf-eigennote.pdf
でらうま倶楽部 : Eigen - C++で使える線形代数ライブラリ
081791add.pdf
Code_Tips/Eigen.md at master · Shusei-E/Code_Tips

Karatsuba

κeenさんのツイート: "karatsuba、アルゴリズムオーダー的には速いけど実測はかなり桁数上がんないと意味ないみたいなこと聞いた"
Keiさんのツイート: "真面目にKaratsubaが筆算より速くなるビット数を探ってみたら、(32ビットで)1600より上、1800-1900以上で確実くらいだった。Wikipediaの320-640より大分上である。"
Masaki⊣Haraさんのツイート: "あまり把握してないけど、Karatsuba除算とかもあるらしいんだよな https://t.co/XKunRC5Yvw"
2 Karatsuba系列のアルゴリズム
κeenさんのツイート: "karatsubaのkaratsubaってなんなんですか?唐鍔?"
κeenさんのツイート: "人名なの…"
高梨陣平さんはTwitterを使っています: 「任意の桁数の数値の乗算を求める高速なアルゴリズム、Karatsuba Algorithm。最近、改善されたとか。HNで発見に至る歴史が紹介されている。またPythonのlong integerでも採用されている。 https://t.co/l8ApGtfj3j」 / Twitter
Hacker News 100さんはTwitterを使っています: 「Karatsuba Algorithm https://t.co/7V5hdwVZVv (https://t.co/6lwcKHQDzL)」 / Twitter
Karatsuba algorithm - Wikipedia
Karatsuba Algorithm | Hacker News

小清水さんとコンピューター数学

FMA (Fused Multiply-Add) について色んな観点でまとめてみた - 小清水さんとコンピューター数学
逆数の近似命令と精度補正について (その1) - 小清水さんとコンピューター数学
丸め誤差界の Hello World 的定理 -- Sterbenz の定理 - 小清水さんとコンピューター数学
計算環境の精度を当てる ― 解説編 ― - 小清水さんとコンピューター数学
計算環境の精度を当てる ― Intel CPU と Excel への応用 ― - 小清水さんとコンピューター数学
expm1 や pow などの 指数・対数函数 への考察 - 小清水さんとコンピューター数学
素数大富豪だけじゃなく HEX もやろう! ― 紹介編― - 小清水さんとコンピューター数学
Newton法でつながるコンピューターと数学の隙間 - 小清水さんとコンピューター数学
Excelでおかしな計算結果になった問題の正解値を求める - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (3) ―たった1度の型変換― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (2) ― 三角函数を定義通りに ― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (1) - 小清水さんとコンピューター数学
浮動小数点の丸めの方向と性質 (1) - 小清水さんとコンピューター数学
下書き - 小清水さんとコンピューター数学

行列

linear2017.pdf
Julia(SymPy)で行列式、逆行列を求める方法 | 趣味の大学数学

自動微分・微分可能プログラミング・逆問題

自動微分

Masahiro SakaiさんはTwitterを使っています 「以前に、KLEEがLLVM IRを記号実行するように、LLVM IRを自動微分できないかと考えたことがあったけど、NeurIPS 2020で発表されてた! Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients https://t.co/zjJKPuTdlF 実装: https://t.co/vajNgEfEzq」 / Twitter
Paper
Enzyme AD
Masahiro SakaiさんはTwitterを使っています 「新分野にMLを適用する際に、その分野の既存コードをMLフレームワークのDSLに書き直すなりしなくてはいけないのを何とかするという動機。 言語非依存の自動微分を実現し、また低水準言語を対象とした自動微分は非効率という常識を覆し、最適化後のIRを自動微分することでより高効率なコードを生成!」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「この手のことをやるのに型解析が必要なのは普通なんだけど、memcpyはforwardは型によらないけど、backwardは型によって処理を変える必要があるというのは、自分は気づいてなかったので面白かった。」 / Twitter
kashiさんはTwitterを使っています 「自動微分の説明をしようと思って、その前置きとして (f(x+Δx)-f(x))/Δx みたいな数値微分での誤差を計算してプロットしてみた。Δxがでかいと離散化誤差が、Δxが小さいと桁落ちがひどくなってどんなΔxを取っても精度が出ないよー、なんてよく話してたけど、きれいなV字になるものだなあ。 https://t.co/AeX6neglOj」 / Twitter
kashiさんはTwitterを使っています 「試したプログラムはこんな簡単なやつです。 https://t.co/rImTcN6J1C」 / Twitter
Ryosuke YONEDAさんはTwitterを使っています 「C++の自動微分実装。良さげ? https://t.co/u2n3hn67rL」 / Twitter
autodiff

Julia

Shuhei KadowakiさんはTwitterを使っています 「ここ数日自動微分技術の基本的なアイディアについて勉強したので、メモも兼ねて自分の言葉でまとめてみます。基本的には、僕が勝手に尊敬しているMike J Innesさん(https://t.co/nrAKrct5I6)の"Differentiation for Hackers"(https://t.co/8RmsqDQfq6)と彼の論文(https://t.co/Pmkf5pCHKk)のまとめ 1/n」 / Twitter
MikeInnes (Mike J Innes)
MikeInnes/diff-zoo: Differentiation for Hackers
[1810.07951] Don't Unroll Adjoint: Differentiating SSA-Form Programs
Shuhei KadowakiさんはTwitterを使っています 「"Differentiation for Hackers"はシンボリックな表現に対する直感的な微分器の実装から始めて、色々な自動化の方向性を紹介するっていう内容。微分自体はチェインルールさえ理解すれば実装は難しくなく、ホスト言語の元プログラムからいかにして微分可能な表現を得るかという点が自動化の核となる 2/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「順方向に連鎖律を適用する場合、ホスト言語のプログラム実行の流れに沿って伝播できるので、operator overloadingさえ利用できれば実装が簡単で最適化もしやすい。一方で一入力に対してしか微分を伝播させられないため、MLなどの応用場面でよくある高次元入力に対しては効率が悪くなってしまう。 3/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「ただクロージャにキャプチャされた変数の扱いが面倒(多分ここでも伝播を繰り返す必要がある?)。よく出てくるデュアル数は一見ただの実装上のテクニックに見えるけど、微分の定義との関係性は深淵で面白い。 逆方向に伝播させる場合計算量が出力次元に対して比例するためMLなどではこちらが一般的 4/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「ただホスト言語のプログラム実行をそのまま使うことができないので、元プログラム中の計算を大幅に簡略化した表現を部分評価によって得てそれを微分するのが基本的な方針らしい。その表現は自動微分の文脈だと一般に"Wengert list"と呼ばれるが、ML界隈では"graph"と呼ぶらしい 5/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「部分評価の仕方によって、静的に計算グラフを得る("Static Declaration")と動的にWengert listを構築する("Eager Evaluation")という大きく2つのアプローチに分かれる。それぞれの代表例としては、TensorFlowは前者で、PyTorchとかChainerは後者に属する。 6/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「この2つの間のトレードオフは、効率的に動作させたい(static declaration) vs. 動的なcontrol flowなども含めてホスト言語の機能を自動で計算グラフに変換したい(eager evaluation)というもの。とはいえさっき挙げた代表的なライブラリだといずれもハイブリッドっぽくなっているらしく、 7/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「最近だとTFもeager evaluationをサポートしてるらしい(https://t.co/8BMv2Qqtzd)。 とはいえ、これらのアプローチはいずれにせよ独自の表現から逆伝播を行うため、既存のコンパイラ資産のスムースな利用とか、ホスト言語の意味論から得られる情報を用いた最適化とかがやりにくいっていう欠点がある 8/n」 / Twitter
PyTorch vs TensorFlow — spotting the difference | by Kirill Dubovikov | Towards Data Science
Shuhei KadowakiさんはTwitterを使っています 「であれば、元プログラムを簡略化した表現ではなく、元プログラムを*そのまま*変換した表現に対して微分すれば、それらの欠点が解決できるじゃん、っていうのが"Don't Unroll Adjoint: Differentiating SSA-Form Programs"のアイディア。つまりSSA表現に対して微分を行えれば、素直に最適化ができる 9/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「SSA表現を微分する上で考慮すべきものは、いかにしてcontrol flowを扱うか、autodiffの視点で言うといかにして複数回代入/参照される変数を扱うかという点。結論としては、スタックにiterationごとの変数の状態を記憶しておくという解決方法を提示している 10/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「あとはプリミティブな要素に対して言語それぞれの意味論に沿って微分を定義してあげるだけで実装できる... というアイディアの実装がhttps://t.co/tWLIy5rabYであり、Zygote.jlは理論的にはJuliaの最適化の恩恵をそのまま利用することができる! 11/n」 / Twitter
FluxML/Zygote.jl: Intimate Affection Auditor
Shuhei KadowakiさんはTwitterを使っています 「ちなみに、JuliaのSSAではなく、LLVMのSSAを微分したらLLVMを利用しているいろんな言語で自動微分できるし最適化もしやすいよ、っていうのが僕の上司のValentin氏が書かれたEnzyme(https://t.co/sJLfflH8kb)のアイディア(理解が正しければ) 12/n」 / Twitter
[2010.01709] Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
Shuhei KadowakiさんはTwitterを使っています 「Zygoteの話に戻ると、Zygoteは既存のJuliaプログラムに対してそのまま微分することができ、実際に #Julia言語 のコミュニティで広く使われている一方で、Juliaコンパイラの技術的な問題点(at-generated関数)から、まだまだ理想的なcompile-time/runtimeのパフォーマンスを得ることができていない 13/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「Keno氏が今度のJuliaConで発表しようとしているDiffractorは、Juliaの型推論で得られる型情報をうまく利用しながら自動微分のコンストラクト(adjoint code)を作ることで、そうした問題を解決しようとしているもの(Zygote.jlが利用しているat-generated関数は型推論後の型情報を利用できない) 14/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「...で前置きが長くなりましたがなぜ自動微分をちょっと勉強したかの背景を説明しますと、僕が最近取り組んでいるJulia compiler-pluginプロジェクト(https://t.co/Kb2qNM5TMt)は、そうした型推論後のコードに対する変換をしやすくするためのコンパイラインフラの整備を目標としているためなのです 15/n」 / Twitter
Julia Compiler-Plugin Project - HackMD
Shuhei KadowakiさんはTwitterを使っています 「すでにDiffractorは動いてるので、今の状態でもKenoには十分使えるんだろうけど、まだみんなが簡単に使える状態ではないので、まずはあんまJuliaのコンパイルパイプラインのことをよくわかってない僕が勉強しながら簡単に使えるくらいの状態に整備しようとしています 16/n」 / Twitter

『微分可能プログラミング』はどこから来たのか - bonotakeの日記
自動微分 - Wikipedia
自動微分を実装して理解する(前編) - Qiita
ボトムアップ型自動微分の実験 - kivantium活動日記
FadisさんはTwitterを使っています: 「なんとなくだけど、この4年程で「とりあえずニューラルネットワークにぶち込んでみた」系論文が減って、入れ替わりで「微分可能にすればこの式だって出力から未知の入力がわかるよね」系論文が増えた。optimizerが使える対象は何もニューラルネットワークだけじゃないもんな」 / Twitter
FadisさんはTwitterを使っています: 「コンピュータグラフィックスのレンダリングの過程を全て微分可能にすると、出力から入力を求めるのは最適化問題になり、結果の画像からマテリアルやメッシュを推定できるようになる。つまりイメージからレンダリング素材が作れるようになるから、今既存のレンダリング手法の微分が試みられている」 / Twitter
FadisさんはTwitterを使っています: 「逆レンダリングによって描かれている物の形状を求めたい場合、メッシュでは事前にトポロジが分かっている必要があるためうまくいかない。そこでポイントクラウドをレンダリングした事にして、そのレンダリング過程を微分して逆レンダリングした、という論文 https://t.co/ePByceofWt」 / Twitter
igl | Interactive Geometry Lab | ETH Zurich | Differentiable Surface Splatting for Point-based Geometry Processing
FadisさんはTwitterを使っています: 「ポイントは、全てのレンダリング方向から見えない(多様体の内側にある)点はどれだけ反復しても最適化の対象にならないため、そのような点は最寄りの表面まで押し出す点と、点群が偏るのを防ぐために1サイクル毎にポイントクラウドの密度を平滑化する点」 / Twitter
FadisさんはTwitterを使っています 「@Linda_pp そいつの最高にクールな所は、自動微分でレンダリングを逆回し出来るところ(レンダリング結果に近くなる入力を探索できる)」 / Twitter
piqcyさんはTwitterを使っています 「ピクセル(RGB)レベルの密なMap構築を行うDense SLAMについて、SLAMの構築プロセスをすべて微分可能にし勾配法による最適化を可能にした研究。フレーム間のマッチング・Map推定・グローバル最適化をそれぞれ微分可能な計算に置き換えている。」 / Twitter
Krishna MurthyさんはTwitterを使っています 「Today we release gradslam - automagically differentiable SLAM. Run dense 3D reconstruction in @PyTorch! And, it's fully differentiable :) Co-led w/ @S_Saryazdi, ably supported by @mautkiungli @duckietown_coo Webage: https://t.co/vxVDedldRY Paper: https://t.co/cN3tjc9e11 https://t.co/oV5np9CCjm」 / Twitter
About | gradslam
[1910.10672] gradSLAM: Automagically differentiable SLAM
だめぽラボ@技術書典9さんはTwitterを使っています 「自動微分を組み込んだ言語を作りたいという気持ちはあるけど、自動微分みたいなメカニズムを直接言語に組み込むべきなのか、それとも自動微分を実装できる程度にメタプロなりその他強力な言語機能を備えた言語を作る方が筋が良いのかはよくわからない」 / Twitter
てらモス♋️さんはTwitterを使っています 「フォーワード・バックワード組み合わせる高速自動微分でも、二重数を使うような自動微分でも、数式のまま処理する数式微分でも、いずれにせよ数学的に扱うべき関数を計算機上で(C言語の意味の)関数ではなく計算グラフなりのデータとして扱う為の環境はだいぶ整って来てるですよね(´・ω・`)」 / Twitter
FadisさんはTwitterを使っています 「与えられた文字と似た特徴を持つベクタフォントを生成する論文。CNNでラスタフォントを生成する手法は以前からあったが、ベクタフォントの生成は困難だった。この手法はベクタ画像のラスタライズを微分可能にして、ラスタでの誤差をベクタを吐くNNまで逆伝播できるようにする https://t.co/nuVmmKq62g」 / Twitter
[2110.06688] DeepVecFont: Synthesizing High-quality Vector Fonts via Dual-modality Learning

線形連立微分方程式の行列形の解法

Shinji KonoさんはTwitterを使っています 「極線の証明は二次の等式を微分するだけなので難しくない。接線なんだから微分するのは当然だし。直接計算するのもたいしたことはないが、知ってると楽。 https://t.co/6it6mrwqNM」 / Twitter
美しい図形の性質(極線、二次曲線) まさかそこを通るなんて・・・ | 東大に文理両方で合格した男が綴る、受験の戦略
Shinji KonoさんはTwitterを使っています 「この手の「わけもわからず微分」系は便利。偏微分とかラグランジュの未定係数法とか知らないのは残念だよな。それ抜きで物理を理解できるとかあり得ない。エネルギー抜きで物理を理解するようなものでしょ。高校生でそれをやらないなんて。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ファインマン先生も「微分方程式はexp xをかけて積分」すれば良いとか言ってたし。それがなんなのかがわかるのは、線形連立微分方程式の行列形の解法を見てからだな。 y = d/dt x + a y = exp a x のd/dt が行列になるだけ。行列乗とかが出てきてしまうが。」 / Twitter

超離散化

1216-23.pdf
�������������� (�������������) - B41_006.pdf
03-Surikagaku-478-35-preprint.pdf
sample.dvi - 57_1015.pdf
超離散化について - Qiita
144446913.pdf
Article_No_03.pdf
abst.dvi - 8-003.pdf

統計モデル

正規分布と冪分布 - 増井俊之
冪乗則 - Wikipedia
スティーヴンスのべき法則 - Wikipedia
確率分布 - Wikipedia
パレート分布 - Wikipedia
Zeta distribution - Wikipedia
ジップの法則 - Wikipedia
mr-csceさんはTwitterを使っています 「進化計算など評価関数を何回も呼ぶ必要がありその評価関数が重いとき,その評価関数をの出力を予測するモデルを作り,そのモデルの出力を評価として使用するようなのをsurrogate modelingというらしい.前に某氏が評価関数重いしモデル作ろうと言ったときはマ?と思ったが一般的なテクニックだったのか」 / Twitter

レヴィ–プロホロフ計量

Ryoma Sin'yaさんはTwitterを使っています 「Lévy–Prokhorov metric 知らんかった. https://t.co/OB9rnr1fx5」 / Twitter
Lévy–Prokhorov metric - Wikipedia
レヴィ–プロホロフ計量 - Wikipedia

KL 情報量

カルバック・ライブラー情報量 - Wikipedia
相互情報量 - Wikipedia
KL情報量を概念的に理解する - PlayGround
正規分布間のKLダイバージェンス - Qiita
生成モデルで語られる Kullback-Leibler を理解する - Qiita
Kullback-Leibler
Kullback-Leibler
自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net
research_mle
41.pdf
エントロピーからKLダイバージェンスまでの話 - HELLO CYBERNETICS
7c_12.dvi
www.cfme.chiba-u.jp
KL情報量
カルバック・ライブラ擬距離
InfoTheory05_4.dvi
情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
エントロピーからKLダイバージェンスを理解する | マサムネの部屋
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 KL情報量で確率分布間の違いを測ることについて普通の理解の仕方が普及していない感じがする。Kullback-Leibler情報量を「距離」の概念で理解しようとするのは的を外している。 Sanovの定理より、KL情報量は確率分布pの独立試行で確率分布qをシミュレートしたときの予測誤差とみなせます。続く」 / Twitter
エントロピー、カルバック・ライブラー情報量、最尤推定法 - 初級Mathマニアの寝言

Scalable Probabilistic Approximation

20200222
New Algorithm Allows PCs to Challenge HPC in Weather Forecasting
Low-cost scalable discretization, prediction, and feature selection for complex systems | Science Advances

ディオファントス方程式

宇宙物理たんbot@VTuber活動1周年!!さんのツイート: "(「62円切手または82円切手を買え」という指示だとして、)62円切手整数枚と82円切手整数枚で1000円分の組み合わせを作れという問題はみんな大好きディオファントス方程式 62x + 82y = 1000 ですわ。この方程式はマイナスの枚数を認めない限り「解なし」ですのよ。 https://t.co/4ekzM3KGUm"
大木 一真|モジカクしごとさんのツイート: "(伝え方が完全に悪かったのだけど、)インターンの大学生に1,000円分の切手を買ってきてとお願いしたら、1,000円切手1枚を渡された……。 聞いたら、そもそも切手を買ったことなんて今までなかったそう。これが令和……。… "
Hideyuki Tanakaさんのツイート: "ディオファントス方程式ってよく知らなかったけど、拡張gcdのことだったのか(´・_・`)"
Hideyuki Tanakaさんのツイート: "ディオファントス方程式調べてみたけど、任意の整数係数の方程式を指すらしいからこの形の方程式をそういうのは一般的過ぎると思いました(小並感)"
Hideyuki Tanakaさんのツイート: ">2変数2次方程式a x2 + b y + c = 0 の整数解の存在判定問題はNP完全問題であることが証明されている。(→計算複雑性理論 はぇぇこの時点でそうなのか(´・_・`)"

計算量

News

「量子理論の副産物に過ぎなかった」──東芝の「量子コンピュータより速いアルゴリズム」誕生秘話 (1/5) - ITmedia NEWS
「世界最速・最大規模」──東芝、量子コンピュータより高速に組み合わせ最適化問題を計算するアルゴリズムを開発 - ITmedia NEWS
東芝 研究開発センター:研究開発ライブラリ 世界最速・最大規模の組合せ最適化を可能にする画期的なアルゴリズムの開発について-物流・創薬など社会課題を短時間で解決するサービスプラットフォームの構築に向けて-
Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems | Science Advances
20190511
第74回 計算量の数学 計算量とは :はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社

blog

計算量はコンピュータ性能論の「入り口」にすぎない--専門家が語る、IT屋に知っておいてほしい基礎知識 - ログミーTech
できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
計算複雑性を勉強するときに参照する本のメモ - 誰にも見えないブログ
PとNPについて - Yabu.log
NP問題における決定問題とはなにか - Yabu.log
NPクラスのNondeterministic polynominal algorithmについて - Yabu.log
計算量とBig-O記法 - 素人がプログラミングを勉強していたブログ
計算量のはなし - 赤い黒歴史を蓄積する
アルゴリズムを評価する計算量について - bambinya's blog
» 開発新卒に捧ぐ、基本のアルゴリズムと計算量 TECHSCORE BLOG

スライド

組合せ最適化入門:線形計画から整数計画まで
How to tackle hard combinatorial optimization problems arising in real applications? - Speaker Deck
計算量

PDF

ad09-01.pdf
ad11-02.pdf
2.ho
アルゴリズムと データ構造
Microsoft PowerPoint - alg1.ppt [互換モード]
Microsoft Word - keisankigairon.ch4a.110420.doc
第2回 アルゴリズムと計算量
最大充足化問題に対する近似アルゴリズム
uchanさんはTwitterを使っています 「P=NPという結論を導く証明が書いてあるらしいPDFをチラ見しただけで,僕はその内容を理解できる自信がないです。最大独立集合問題に詳しい人に判断をゆだねます… https://t.co/HHXz3Chx15」 / Twitter
(PDF) Extract maximum independent set using eigenvalue relation
SDB-ex1_sample.pdf

Qiita

[初心者向け] プログラムの計算量を求める方法 - Qiita
計算量オーダーについて - Qiita
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita

Wikipedia

ランダウの記号 - Wikipedia
計算複雑性理論 - Wikipedia
組合せ最適化 - Wikipedia
近似アルゴリズム - Wikipedia
線型計画法 - Wikipedia
線型計画問題 - Wikipedia
整数計画問題 - Wikipedia
グレブナー基底 - Wikipedia
代数方程式 - Wikipedia

Twitter

qsort の計算量

Kazuho OkuさんはTwitterを使っています 「「クイックソートの計算量はいくらですか?」 「O(N log N) です」 「それはオーダーですね。もっと具体的にいくらですか?」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「分布がランダムだとして、logの底が2より大きいのは間違いないけど平準化して具体的にいくらになるのか。e?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「計算量を問われた時に big-O notation が最初の一歩なのはそうだけど、実際は、定数項や最悪値なども検討が必要だし、面接でもそういうところ見たりするイメージ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「考えるのめんどくさいから、ググったら比較回数 2 n ln n だった。つまり底はeであってる :-p https://t.co/9fpilIC4KT」 / Twitter
Quicksort - Wikipedia
Kazuho OkuさんはTwitterを使っています 「しかしまあ、Job Descriptionがはっきりしてる面接でソートの質問してもしょうがないだろ、って思う。そんな教科書問題よりも、もっと専門分野で知識と発想を問う質問はいくらでもできるので。何やらせるかわからないサラリーマン雇用ならともかく」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ソート、実際に使う場面では漸近計算量だけじゃなくて定数項が問題になったりするのでちょくちょく自分で書く機会がある気がする。」 / Twitter
ytakanoさんはTwitterを使っています 「速度上げたいなら、計算量よりCPUキャッシュを理解した方がいいよ」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「細かい事を言えば、式の前に何らかの定数係数が掛かる事を許容するのであれば「底がいくつか」はどうでも良いはず。底の変換公式を使えば良いので。」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「なので定数倍を気にしないオーダー表示なら、O (n log n)などの「底を特定しない」形式になる。」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「C(n) = 2n ln n ≈ 1.39n log2 n. となるのは定数の変換公式を使うと ln n = log2 n/ log2 e なので、係数2にln 2=0.693が掛かって、2 x 0.693 で1.39になってる。」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「log(対数関数)は定数倍の任意性を持たせるのであれば、底がなんであっても一緒。事実上、同じ関数。 e^x(指数関数)は逆にx軸を定数倍する事を許容するのであれば、底がなんであっても一緒。x=ay(aは任意の定数)と置けば e^ay=(e^a)^y で底を変換できる。つまり同一の関数になる。」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「この辺、高校数学でごく当たり前の範囲だと思うのだけど、もはやスッカリ忘れてる人も多そう。 私もこの前まで忘れていて、この間改めて確認して頭の中を整理しましたw」 / Twitter
彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「と言うような事を押さえた上で「計算量がオーダーで示されてる理由」を考えると納得行くんじゃ無いかな? なぜ「定数倍の違い」を気にしないのか?いちばんの理由はそれがマシン(ハードウェア)に依存するからだけど。」 / Twitter

malloc

Masaki HaraさんはTwitterを使っています 「↓std::vectorのpush_backの計算量です」 / Twitter
Masaki HaraさんはTwitterを使っています 「再アロケートとコピーのコストだけ解析すればよくて、再アロケート時の倍率をm&gt;1、長さをn, 容量をcとしたとき、max{(mn-c)/(m-1), 0}とすると、 ・通常のpushではm/(m-1)貯蓄 ・再アロケート時 (n = c) はn消費 で計算できる感じか」 / Twitter
Masaki HaraさんはTwitterを使っています 「growable array のポテンシャル解析ってどんな感じでやるんだっけ」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみにmalloc/freeにかかる時間は O(size) とみなすのが一般的だと思うけど、メモリ使用量が増えたときの実際の効率低下はどれくらいの感じなんだろう」 / Twitter
KojimaさんはTwitterを使っています 「push_back と pop_back と shrink_to_fit をこの順でやるのを繰り返しても O(1) が保証されるかな」 / Twitter
Masaki HaraさんはTwitterを使っています 「shrink_to_fitがどうせ線形時間なので、上乗せでpotentialを貯金していると考えればいける」 / Twitter
Masaki HaraさんはTwitterを使っています 「Webアプリケーションプログラミングやってると漸近計算量改善の60%がインデックス張るで30%が配列をsetに事前変換するなので感覚が鈍る (数字は適当)」 / Twitter
hasimotoさんはTwitterを使っています 「@s_isshiki1969 あ、見ました。ありがとうございます。 K&amp;Rのmallocとかって malloc( 1024 )でも、リストどこまでたどるかはヒープ次第で 1024 がオーダー計算になってないから、あれっていう感じでした。」 / Twitter
monochromeさんはTwitterを使っています 「@k1ha410 そうですね。K&amp;Rも一般的にはO(1)という理解だと思いますが、でかい領域を取りに行くとfitする場所を探すのに時間がかかるという意味かと思いました。」 / Twitter
hasimotoさんはTwitterを使っています 「@s_isshiki1969 でかさ(絶対的指標じゃない)次第ですが最近のmallocは考えられてる感じしますよね。」 / Twitter
monochromeさんはTwitterを使っています 「@k1ha410 sizeにはほぼ影響を受けないはずですね。」 / Twitter

chokudai(高橋 直大)さんのツイート: "競技プログラミングの弱点は、「最悪計算量しか意識しない習慣がつく」ことで、これしかやってないのは割と危険。最悪計算量を意識するのは当然大切なんだけど、平均計算量、というか平均計算時間も結構大切。マラソンマッチ出るとむしろそっちを意識するのよね。"
chokudai(高橋 直大)さんのツイート: "ソートだったり二分探索だったりしてると「logなんて所詮定数倍みたいなもんだよねー!」って気分になるけど、平衡二分木とかだと「logはおもい・・・logはおもい・・・」って感じになる"
chokudai(高橋 直大)さんのツイート: "二分探索は中に処理そこそこ書くからlog感普通にある気がしてきた。"
Fadisさんのツイート: "計算量で有利なアルゴリズムを選択する時、そこには「データがキャッシュに乗り切らないくらい多い」という前提がある。数十、数百程度のデータを操作する場合「計算量を抑える為に複雑なデータ構造を採用する」より「線形時間を要するけどキャッシュに全部乗る」方法の方が速いという事がしばしばある"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最悪計算量と平均計算量をグラフにして、挟まれた部分を塗った時、最悪計算量が上界(=領域の上限)、平均計算量が下界、という言い方をするらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "dict(hashmap)検索が O(n) になる確率、qsortが O(n^2) になる確率。 これらの確率は0と考えてプログラミングすることが多い。 事実上0と見做す確率の閾値はどのあたりだろう…ハードウェア由来の問題を起こす確率に比べて充分小さい、あたりは最低条件な気はする。"
John Carlos Baezさんのツイート: "WOW! A new paper claims to have found a more efficient algorithm for multiplying large numbers. It supposedly runs in O(n log n) time - this had never been achieved before. One catch: it only works on numbers with at least this many digits: (cont)… https://t.co/jknld8INnm"
7594591200220899443さんのツイート: "nlognの掛け算ついに発見されたのか"
7594591200220899443さんのツイート: "(但2^(2^4096))よりでかい必要があり)"
7594591200220899443さんのツイート: "計算量の議論をする時にインフォーマルには「nが小さい時のいくらかの例外を除いて」みたいな言い方をするわけだけど、そのnが既知宇宙の全原子数よりもでかいというのは「いくらかの例外」っていうニュアンスで語るのは結構すごい(厳密にやるときは極限をとるからまあ、あまり問題にならないが)"
著者近影さんはTwitterを使っています 「計算量とかを気にするのって、明らかにプロファイル取って遅いとわかる場合か、可読性を失わない範囲である程度素朴に読める形のときとかだけど、時々計算量が〜みたいな不適当に最適化したがる会社とか人見るたびに適当にみんな計算量って言いたいんだな…みたいな気持ちになる」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量で最適化するのは愚だが、プロファイルとって遅いときに計算量を気にするかは時と場合による(多くの場合原因は計算量ではなく、I/O かオーバーヘッドの場合が多いのが経験則で、計算量改善すると遅くなる場合が多い)」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量は日頃から気にした方がいいというのは正解だと思うが、計算量だけを気にするのは良くない(計算量は結構指標にならない)というのが個人的な意見」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana まぁそうなんだよな 結局、見方が偏った人種がプログラム書いてる中にそこそこの割合、規模感でいるんだなぁとか色々見て考えてて」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b いや単にこれは経験の問題だと思ってる。普通大学では計算量という指標しか習わないし、カバレッジやプロファイルの取り方とか習わないので」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana む、言われれば確かに」 / Twitter
κeenさんはTwitterを使っています 「NP完全な問題、今のところ計算量がO(2^n)な解法しかないから基本は避けるんだけど、それはそれとして計算量がO(2^n)なコード書いたことないから一回くらいは書いとかなきゃって思ってる」 / Twitter
™お嬢様さんはTwitterを使っています 「O notation, 個人的には "f(n) in O(n)" とか "O(n) \subset O(n^2)" とかにしたいんだけど,分野の慣習が "f(n) = O(n)" とか "O(n) = O(n^2)" なので,できるだけ数式にしない方向の "f(n) is O(n)" や "O(n) is O(n^2)" で回避しようとしてます…….」 / Twitter
画力・博士号さんはTwitterを使っています 「( f∈O(n ↦ n) あたりになってほしいなあという気持ちがある)」 / Twitter
Yasunori OhtoさんはTwitterを使っています 「P=NP論文の証明と擬似コードを改稿しました。日本語版です。読んでコメント頂ければ幸いです。 https://t.co/c09I6ayOYk」 / Twitter
(PDF) Polynomial-time Extraction of the Maximum Clique Using Eigenvalue Relation
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「計算量の講義資料で「オーダー計算には係数や定数は無視」と書きつつも、実開発だと(指数や多項式オーダー計算を避けるのは当然としても)「定数や係数」も結構大事なこと多いよね、とも思いつつ。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題に関するこれまでの発見まとめ。 https://t.co/Khi7pSTDfA」 / Twitter
P-versus-NP page
_ko1さんはTwitterを使っています 「計算量わからんでもプログラムを仕事にできる人が(いっぱい)いるってのはソフトウェア工学というかコンピュータサイエンスというか、なんかそういうのの勝利って感じで基本いいことだと思う派です。」 / Twitter

chokudai(高橋 直大)🍆さんはTwitterを使っています 「QiitaのPython計算量記事から引用だけど、この表はやっぱり頭に入ってて欲しいかなあ。どちらかというと「表を覚える」というよりは「こういう仕組みだからこれはこの計算量になりそう」って言うのが推測出来てほしい。 (推測値と外れた所だけ覚えれば表全体は覚えなくて良いかららくちん) https://t.co/NdSkZ0GQ2P」 / Twitter
空間計算量とは|領域計算量|space complexity : 意味/定義 - IT用語辞典
空間計算量 - Google 検索
時間計算量とは|time complexity : 意味/定義 - IT用語辞典
時間計算量 - Google 検索
一週間で身につくアルゴリズムとデータ構造|応用編第1日目:アルゴリズムと計算量
アルゴリズムで天地の差: 計算の手間
オーダー記法の定義と大雑把な意味 | 高校数学の美しい物語
計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章
計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章

固定小数点数

固定小数点数 - Wikipedia
Fixed-point arithmetic - Wikipedia
hdLab : 第10回「固定小数点の演算」(201302) ~ 21世紀のシステムLSI設計を支援する プロダクト&サービス
固定小数点演算について
固定小数
固定小数点とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点型【変数の型】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点数とは - IT用語辞典 Weblio辞書
固定小数点数
固定小数点と浮動小数点 - DSP入門(ディジタル信号処理入門)
固定小数点演算(こていしょうすうてんえんざん)とは - コトバンク
固定小数点数(コテイショウスウテンスウ)とは - コトバンク
固定小数点形式(こていしょうすうてんけいしき)とは - コトバンク

グレイコード

グレイコード - Wikipedia
Gray code - Wikipedia
グレイコードと実数
グレイコードを生成するだけの小話 - Qiita
グレイコードの特長は、何ですか? - 製品に関するFAQ | オムロン制御機器
グレイコード | ITと社会用語辞典 | IT用語辞典 | 日立ソリューションズ
グレイコード ‐ 通信用語の基礎知識
グレイコード バイナリ変換CGI
グレイコード
グレイコードとは (グレイコードとは) [単語記事] - ニコニコ大百科
グレイコードカウンタ

正規分布乱数生成

(「・ω・)「ガオーさんはTwitterを使っています 「Juliaの正規分布乱数生成が気になって見てみたけど驚くほど短いな。Ziggurat法というらしい。 https://t.co/uXcoqZpEXN」 / Twitter
julia/normal.jl at e5884e74a5fb15b11d5e116efa05d186ebe2a74a · JuliaLang/julia
加藤公一(はむかず)さんはTwitterを使っています 「@bicycle1885 多項式関数のつなぎ合わせで近似するんでしたっけ。多量に呼ばれるところだからシンプルで高速でないといけない。」 / Twitter
(「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu どうですかね。論文を斜め読みですが、基本的なアイデアは密度関数を同じ面積の矩形で覆って、そこからサンプリングする(矩形なので単純で高速)みたいな感じです。たまに失敗するので、それは特別処理が必要みたいです。 https://t.co/kST3jwyq2B https://t.co/ubhkyAoxDd」 / Twitter
The Ziggurat Method for Generating Random Variables | Marsaglia | Journal of Statistical Software
(「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu 失敗というのは、矩形が密度関数からはみ出している部分とか、一番下の裾部分に当たるケースみたいです。うまくやれば99%程度は成功するみたいです。」 / Twitter

PC Watch

Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 - PC Watch
NTTデータと広島大、組合せ最適化問題をGPUで高速解決する技術 ~GeForce RTX 2080 Ti×4で秒間1兆の探索が可能に - PC Watch

infoQ

AlphaFoldアルゴリズムがCOVID-19タンパク質構造を予測
確率論的データサイエンスモデルのテストから学んだこと
NumPy 1.20が実行時SIMDサポートと型アノテーションを加えリリースされた

POSTD

数値最適化のインタラクティブ・チュートリアル | プログラミング | POSTD
ハミング符号 : データの誤り検知/訂正をインタラクティブに学ぶ | コンピュータサイエンス | POSTD

スライド

NumPy闇入門
マルコフ連鎖モンテカルロ法入門-1
関数データ解析の概要とその方法

blog

二重振り子の精度保証付き数値計算 - kashiの日記
x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note
整数の平方根(切り捨て) | g200kg Music & Software
対数関数の超越性 - 記号の世界ゟ
解ける線形微分方程式の話 - 記号の世界ゟ
多元数について8枚のスライドでまとめてみたら | ポップラーン
確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました! - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
整数の割り算を掛け算に変換 (3) - 七誌の開発日記
行列式という名前の由来ってどこからなのよ? - 備忘録
5次方程式の解の公式をガチで求めよう|きいねく|note
【TV出演】NHK(Eテレ)「テストの花道」~もどりま表の活用例他(数学って面白い!) - 永野裕之のBlog
「群」って何なの?「同一視」から始める群論 - アジマティクス
50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化 | fabcross
なぜ相関係数rの範囲が-1≦r≦1か | おいしい数学
三角関数はなぜ重要か - 増井俊之
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - CADDi Tech Blog
chirp z-transform | Kyopro Encyclopedia of Algorithms
Winograd勉強メモ - あざらしなので
ViEW2021にて論文『画像の次元削減のための高速共分散行列計算における近似誤差解析手法の提案』を発表します - Fixstars Tech Blog /proc/cpuinfo
『近似計算における精度低減の妥当性:N体問題の場合』のJSSST2021発表案内 - Fixstars Tech Blog /proc/cpuinfo

GitHub

科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「すべてのハードウェア、型、行列構造への依存を吸収することを目的として開発された、数値計算ライブラリ"monolish"を公開しました。 https://t.co/g5ZLJGAlGy PythonやJuliaのような簡単なインタフェースで、MKL、 cuBLAS、cuSPARSE、cuSOLVER、BLAS、LAPACKのAPIを統一した関数が利用できます。」 / Twitter
ricosjp/monolish: monolish: MONOlithic Liner equation Solvers for Highly-parallel architecture
科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージ、またはDocker環境での導入をサポートしています。 対応ライブラリ、データ型、行列フォーマット、ソルバは今後増やしていく予定です。 詳しくはドキュメントをご覧ください。 https://t.co/p5EYyHpbS8」 / Twitter
科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージは以下の環境での動作をサポートしています。 ・Intel CPU ・AMD CPU ・NVIDIA GPU 付属のビルドスクリプトを用いれば以下の環境でも動作します。 ・IBM Power ・NEC SX-Aurora TSUBASA ・ARMv8 ・Fujitsu A64fx 今後、Intel Xe、AMD RADEONへの対応を行う予定です。」 / Twitter

Wikipedia

擬似逆行列 - Wikipedia
Moore–Penrose inverse - Wikipedia
Roger Penrose - Wikipedia
組合せ数学 - Wikipedia
二項係数 - Wikipedia
カハンの加算アルゴリズム - Wikipedia

Zenn

CGのための数学
JavaScriptの数値計算はどれくらい正確なのか
線形代数と確率過程の話
三角関数の話
疎行列とベクトルを掛けたい貴方に
見たら「ん?」となるエラーバーのグラフ

Qiita

線形代数を学ぶ理由 - Qiita
モンテカルロ法における境界条件の扱いについて - Qiita
数値計算の研究をしている学生が&quot;数値計算に潜むとんでもないリスク&quot;について話してみる - Qiita
Potts模型のモンテカルロシミュレーションコード - Qiita
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - Qiita
離散フーリエ変換(DFT)の仕組みを完全に理解する - Qiita
numpy そっくりなヘッダオンリー C++ ライブラリ NumCpp - Qiita
ロボ太さんはTwitterを使っています 「見たら「ん?」となるエラーバーのグラフの話の記事を書きました。こんなグラフを見かけたら「ん?」と思いましょう。ちなみに振動を含む緩和過程でエラーバーを過剰推定するのは僕が実際に経験したことです。 https://t.co/xsqKusgERN https://t.co/oz7FAW0q62」 / Twitter
見たら「ん?」となるエラーバーのグラフ - Qiita
hrk先生さんはTwitterを使っています 「@kaityo256 @k_nitadori 悲しいことに、このようなグラフは論文査読や、査読を通ったはずの論文誌でも良く見かけます。さらには、エラーバーはSDと書いてあるのに上下非対称のものもあります。」 / Twitter
ロボ太さんはTwitterを使っています 「先のQiita記事、「指数関数に振動が乗っているとノイズと区別がつきにくい」というのがわかりにくかったみたいですね。このグラフ、Data Aが指数関数+正弦波で、Data Bが指数関数+ノイズです。観測間隔が周波数より長いと両者の区別がつきづらいのがわかります。 https://t.co/8WfkNuTacP」 / Twitter
ロボ太さんはTwitterを使っています 「これ、フーリエ変換すれば変なピークが立つので振動に気付くわけですが、そもそも「振動が乗っている」可能性に思い至らないとフーリエ変換しようとはしないでしょう。その場合でも、ちゃんとエラーバーをつければData Aではエラーバーが大きすぎるので「何かおかしい」と気づくことができるわけです。」 / Twitter
ロボ太さんはTwitterを使っています 「うーん、振動が乗ったデータのエラーバーの話、「データ間の相関」が本質で、「サンプリング周波数が大事だよね(標本化定理)」という話が本質ではないんですよ。例えばこの二つのデータ、片方はランダムで、片方はパイこね変換ですが、似たような感じに見えますよね(続く) https://t.co/7IxA2w9mNb」 / Twitter
ロボ太さんはTwitterを使っています 「で、それぞれ100個ずつ平均して分散もとめてエラーバーつけると、Data Aはまぁ普通かな、という感じだけど、Data Bは「ん?」と思うじゃないですか。実際、Data Aは100個中69個が平均にエラーバーがかかっててるのに対して、Data Bは48個で、「ん?」と思うわけです。 https://t.co/JtvCt6NCAb」 / Twitter
ロボ太さんはTwitterを使っています 「「見たら「ん?」となるエラーバーのグラフ」の記事に、パイこね変換の例を追加しました。この記事のテーマは「エラーバーからデータ間の相関に気づく」ことであり、「サンプリング周波数が大事だ(標本化定理)」ということではありません。 https://t.co/fd39kqmSv8」 / Twitter
超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita
FDTDで電磁界解析 - Qiita
Kerasのhard_sigmoidが max(0, min(1, (0.2 * x) + 0.5)) である話 - Qiita
Boost C++ Librariesのbrent_find_minima(Brentの方法)による1次元関数の最小化 - Qiita

Twitter

その他

シミュレーション(予測と定性的な性質を調べるもの)

ロボ太さんはTwitterを使っています 「僕は「数値計算は現実を近似している」とは思ってなくて、逆に「計算機の中にイデアがあり、現実が不完全な形でそれを再現してる」と思ってるんだけど、少数派であろうとは思う。」 / Twitter
てらモス♋️さんはTwitterを使っています 「数値計算そのものは現実と関係する必要はそもそも無くて、評価するべきものを数値的に評価出来たらそれは数値計算として正しい。特にそのうち実在する現象を再現しようと試みたものの事をシミュレーションと読んでいる、くらいの気持ち(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「ここから更に計算の目的で分類するべきで、予測を行うものと定性的な性質を調べるものに分かれこれらは多くの場合両方シミュレーションと呼ばれるが、これは評価方法が根本的に異なるので別概念とする方が良い…(´・ω・`)」 / Twitter

数式処理

三谷 純 Jun MITANIさんはTwitterを使っています 「コンピュータによる数式処理は基本的にルールベースですね。 Mathematica の開発者の一人による、積分計算の裏側についての話。 350のルールで教科書に載っている積分の式の99%に対応できたとか。その後、6700以上のルールの実装もなされたとか。 https://t.co/htkcSE9XzP」 / Twitter
Wolfram JapanさんはTwitterを使っています 「Wolfram Alphaで積分計算の「ステップごとの解説」をご覧になったことはありますか. ものすごく複雑な代数的関数の不定積分を見事にやってのけてしまうあのアルゴリズム.裏で何をやっているか気になりませんか. 新しい手法を考案した開発者がその一端をこちらで解説しています https://t.co/3mnyN3w5Ok」 / Twitter
New Methods for Computing Algebraic Integrals—Wolfram Blog

連立一次方程式・誤差

電子計算機の沼さんはTwitterを使っています 「でもコンテナに行列ファイル突っ込むだけで連立一次方程式とか固有値が解けると答え合わせが楽になるんだ 自分でソルバを書いたときにコンテナに突っ込むだけでEigenなりLisなりが呼ばれて,簡単に答えを出してくれるとパッと比較しやすい」 / Twitter
ひもになりたいにゃんにゃんさんはTwitterを使っています 「@Hishinuma_t 連立一次方程式の答え合わせは元の方程式に代入して確かめるんじゃダメなんですか?」 / Twitter
kashiさんはTwitterを使っています 「@Oo_nyannyan_oO @Hishinuma_t 元の方程式に代入したらぴったり0になるけど、実はめっちゃ誤差が入ってる、なんてこともないわけではないです。 https://t.co/Viy4qApkoB」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@mkashi @Oo_nyannyan_oO すごい例ですねw まぁそれにアルゴリズム間違っててうっかり収束してるけど他の問題では解けないとかもあるあるかなあと」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「@Hishinuma_t @mkashi @Oo_nyannyan_oO #Julia言語 なるほど A = [ 64919121 -159018721 41869520.5 -102558961 ] のとき inv(A) * A = [ 1.0 2.0 0.0 1.0 ] となって、第1列だけ偶然うまく行っているんですね。ちなみに A * inv(A) = [ 0.0 2.0 -1.0 2.0 ] こちらは全然ダメ。 https://t.co/dQnvwBmT82 https://t.co/hyqSuah3VQ」 / Twitter
kashiさんはTwitterを使っています 「@genkuroki @Hishinuma_t @Oo_nyannyan_oO この例題に関してはいろいろな見方があると思いますが、当然真の残差は0でなくて、残差の計算にも誤差が入って0になってしまうところが面白いです。あと、行列aの全成分を有理数にするにはRational.(a)と書けばいいんですね。勉強になります。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter

行列

NimdaさんはTwitterを使っています 「これはありなのか沼の人に聞きたいやつだ」 / Twitter
akiraさんはTwitterを使っています 「https://t.co/N2eVxQes7u 行列の掛け算を高速化する研究。ベクトルを分割し、その小分割の探索表をもっておく。対象のベクトルの最近傍を探索することで、それらの総和で行列積を計算させる。通常の行列積の100倍高速で、精度も落ない。 https://t.co/jgwvosoxJ3」 / Twitter
[2106.10860] Multiplying Matrices Without Multiplying
NimdaさんはTwitterを使っています 「いやこれ近似計算か? しかし前処理に使うにはありだったりするのかな」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@nimdanaoto arXiv公開時話題となり、解説記事も出たはずです https://t.co/IRBxAxm00i "it often runs 100x faster ..." ICML 2021 https://t.co/Z62Ff6dRwn Sparsity in Neural Networks WS, Spotlight, 2021/7/9 https://t.co/dUmkO4JBR4 1stは MIT博士課程で ML話題企業 https://t.co/S4e7nc86Ki @Hishinuma_t」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "Multiplying Matrices Without Multiplying", ICML 2021 (arXiv, Jun 21, 2021) https://t.co/LfNRIa9ToI "it often runs 100x faster than exact matrix products and 10x faster than current approximate methods." "but does not fit cleanly into any of them," https://t.co/PYXvUOmiRz https://t.co/uE1YMxrR0N」 / Twitter
Mosaic ML | Team
Sparsity in Neural Networks Workshop 2021 - Day 2 - YouTube
Multiplying Matrices Without Multiplying

非整数階の微積分法は履歴現象を記述することができる

はる💉💉さんはTwitterを使っています 「分数回の微分って、どんな使い道があるのだらう。とか考えちゃいけない話題なのだろうか。」 / Twitter
はる💉💉さんはTwitterを使っています 「履歴かぁ。。。 「整数階でない微積分法について」 https://t.co/geWL8Txvvk」 / Twitter
2016sugimoto.pdf

積分

黒木玄 Gen KurokiさんはTwitterを使っています 「#超算数 ∫ と dx を「かっこ、かっことじる」のような感覚で使うかのように教えるのはやめた方がよいよね。 「∫dx f(x) だと(∫dx)×f(x)との区別がつかない」というような感覚を高校生の心に植え付けると、その子の将来に障碍を設けることになってしまいます。 数学の使用法に関する教養は大事。」 / Twitter
物理学科に入学した凛ちゃんbotさんはTwitterを使っています 「〜高校〜 先生「積分は∫とdxで、f(x)を『挟みます』」 凛「挟む」 〜大学〜 教授「ガウス積分は∫dx exp(-αx^2) (-∞<x<∞)です」 凛「挟んでない」 教授「微小体積dVと確率密度|ψ|^2をかけて足し合わせると確率P=∫dV |ψ|^2」 凛「挟んでない」」 / Twitter
threewellsさんはTwitterを使っています 「@genkuroki 挟まない表記法は、大学初年度は高校時の影響で違和感があったのですが、多重積分を使うようになってから大変便利だと感じるようになりました。」 / Twitter
threewellsさんはTwitterを使っています 「@genkuroki 演算子として捉えると自然な書き方のような気がします。」 / Twitter

ルベーグ積分

Shinji KonoさんはTwitterを使っています 「ルベーグ積分っていうけど、ある意味普通の面積の計算で、測度論が入るとわけわかに。そこでは集合論は必須。そこで一階述語論理を出したのは歴史的な悪手で、高階直観論理が正解だった。で、それは圏論と同じだから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「岩波の現代数学概論は、それを中途半端にやった感じだな。」 / Twitter

対数の略記

ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「自然対数をlnに揃える、一方で常用対数もlcか何かに揃えるのが一番マシかもしれん 双方に配慮するってのは感情論だけど、表記の問題なんて所詮「慣れ」とか感情論なんだから」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@syobon_hinata 常用対数には既に「lg」という略記がありますよ」 / Twitter
ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@mod_poppo 知りませんでした……(lnに比べてどれだけ浸透してないのか……)」 / Twitter
さろげーとさんはTwitterを使っています 「@syobon_hinata @mod_poppo ISO 80000-2だとlgが常用対数なんですけど、計算機分野ではlgで二進対数を表すんですよね……(ISO 80000-2で二進対数はlb) やっぱり曖昧さ回避のためにはlcが一番いいかと」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「えぇ……」 / Twitter

histric

histric-1

FFFumihiro MMMatsuiさんのツイート: "三角関数の件、単純に角度を突っ込んだら円の上での縦or横を返す関数っていう、それだけで色々な場面で便利な事は伝わりそうな気がするけど、不要論が出まくるのは、なんか加法定理とか倍角公式とかあたりが「あの謎の呪文の空欄を埋める科目が三角関数ってジャンル」的なイメージが根付いちゃうのかな"
FFFumihiro MMMatsuiさんのツイート: "それはまあ原因は不要論自体よりも、三角関数のテストで高得点をとろうと思うと三角関数とは何かを掴むのに時間をかけるより「三角関数=加法定理や倍角公式のコンボ技の構成要素」として暗記する方が有利になってしまうっていう、なんかそういうレギュレーションの抜け穴みたいなのに起因する気がする"
FFFumihiro MMMatsuiさんのツイート: "それでまああのコンボは「三角関数とは何か」みたいな基礎とは関係なくて、教科書で基礎的な扱いで習うけど本来はたぶん結構応用的なものな気がするし、確かに進路によってはその後一生使わないだろうし、「三角関数ってなんかあの謎コンボ覚えさせられるけど一生使わないやつでしょ」ってなるのかもな"
FFFumihiro MMMatsuiさんのツイート: "高校課程までの数学はわりと全般的に暗記ゲーの方が強くなっちゃう面あるよなあ。かといってテストを全部証明問題にするわけにもいかないだろうし現実的には中々どうしようもないんだろうな"
FFFumihiro MMMatsuiさんのツイート: "僕は定期テストとか存在しなかったから実際の感覚はよく知らんけど(なので偉そうに思ってる事言うとちょっと後ろめたさある) それでも数学は結構暗記してた部分(実際に三角関数関連とか)あるし高校課程までの数学で暗記というチート技が割と効いてしまうのはまあ本来はあれなんだろうなって気する"
FFFumihiro MMMatsuiさんのツイート: "たぶん僕は平均よりは高校数学の範囲の内容を実際に使う場面が色々あって利益を享受したほうかなあと感じるけど、それでもなんか心の中で数学の一部に対して漠然と苦手意識みたいなのが残ってる箇所はちらほらあって、それはたぶん当時に暗記に頼って押し切った事がある箇所なのかなという感じはしてる"
FFFumihiro MMMatsuiさんのツイート: "一方で数学って好きな人はとことん好きだよね。初対面で「〇〇論はお好きですか?では〇〇論は?」みたいな質問から始まって数十分くらい〇〇論についてマシンガントークが始まる事とかたまにあって、たぶん数学が超好きな人達の間ではそれで会話が始まるパターンもそんな珍しくないのかなと思ってる。"
FFFumihiro MMMatsuiさんのツイート: "しかし今書いてて気づいたけど僕もなんか会話の切り出し方がそういう系って指摘された事が昔あったしぜんぜん他人の事言えないかもしれない。コミュ力ェ…だし"
FFFumihiro MMMatsuiさんのツイート: "もちろん〇〇論とかから切り出すって意味ではなくて"
Fadisさんのツイート: "三角関数の必要性云々は、悩んでいるなら「コンピュータグラフィクスでもやって3秒で燃え尽きてきてください」ってだけの話なんだけど、同時に非線形関数である三角関数をいかに計算から排除するかはコンピュータグラフィクス屋が全力で知恵を絞る部分でもある"
Sheileさんのツイート: "sin/cosが無いと円を描く弾が撃てないし、atanが無いと自機狙い弾が撃てない。それに対数ができないとスコアシステムに困るし、行列ができないと3Dゲーム作るのに困る。英語ができないと新しい技術の取り込みや、DirectXのエラーを調べるのに困る。ゲーム作りたい人は、数学と英語やっときましょう。"
島鉄雄さんのツイート: "三角関数どころかガンマ関数もゲームで間接的に使われてる。 クォータニオンの Slerp の実装には acos が必要だけど、これのテイラー展開をウルフラムさんに聞くと、ポッホハンマー記号なるものが出て来て、それの計算にガンマ関数が使われてた。 面白そうな関数だけど、これ以外の使い道を知らないw… https://t.co/k6HmmOWMQC"
mはげさんのツイート: "30年前の名著「数値計算の常識」を読んでたらBASICで0.01を10000回足したら100.003になるとか書いてあった。まあ昔のPCなんてそんなものかなと思いながら、Visual Studio 2017で試してみたら同じ結果だったw… https://t.co/f1ZQXlojRv"
渋川よしきさんのツイート: "昔のの数値計算と同じ浮動小数点数の計算をやって、同じように計算誤差が出るぞってやつ、ある意味コンピューターサイエンスの教育の敗北では・・・という気がしないでもない(そういえば、GoならわかるシステムプログラミングでIEEE754は扱おうか考えてやめたんだった)。"
c1815(内閣調査室 技官)さんはTwitterを使っています: 「工学的に虚数の存在意義はオイラーの公式により三角関数を指数関数で表記できる事で、電気工学で広く使われる有用な道具です。「虚数の実現が厳しい」とか訳がわかりません。貴方もその存在の恩恵を受けています。 https://t.co/4PKz0q2HEj」 / Twitter
部品(本田翼)さんはTwitterを使っています: 「1960年代に発表されたフーリエ変換アルゴリズムの一般化であるCZ変換に対して、逆フーリエ変換の一般化アルゴリズムは未解決だった。それが50年かけてついに発見された|・ω・`)フムフム https://t.co/QzDtngRKFh」 / Twitter
Engineers solve 50-year-old puzzle in signal processing
応用数学たん(旧ファイナンスたん)さんはTwitterを使っています: 「ブラックショールズ方程式は解析解が出ているので、超高次元の偏微分方程式を数値計算するアルゴリズムの実験にも使われているのです。 確率解析学、数理ファイナンス、機械学習、数値解析 ☆3」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「「ループを使わずに1から100を順に出力するコードは書けますか」という質問に、凄腕たちがプログラム的な技巧を凝らした答えをする中、MSのデータサイエンティストが「1000/(999^2)を300桁まで計算すると答えが0.01002003…099100になるよ」とサラッと答えてて、どんな脳の使い方したら思い付くのそれ https://t.co/Ng3dv4ZS4K」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「元スレッド https://t.co/donuG6acMg その他の回答も含めて和訳してくれてる人 https://t.co/s0cMrfhD0s どんな頭の使い方したか類推してる人 https://t.co/xaR4sXBe5L」 / Twitter
How to print 1 to 100 in C++ without a loop, goto or recursion - Quora
ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora
「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

histric-2

社会人でもOSを作りたいさんはTwitterを使っています: 「学生「マクローリン展開なんて,何の役に立つんですか?計算機で一瞬でsinを計算できるじゃないですか」 ???「sinの計算を実装できるようになる。計算速度と精度のバランスを自分で設計したりできるぞ」 (Newlibのsinの実装を読んだ感想)」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos 近似計算するなら別に定義域全体で収束する必要ないから収束遅いマクローリン展開なんて役に立たないじゃないですかー(煽り返し」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「Newlibのsinの実装を読むと,sin(x)のxが非常に小さいときはsin(x)~xという近似を使って,それ以外はマクローリン展開で計算してるぽい。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「数学詳しい人に教えて欲しいのですが,Newlibに出てくるこの近似って妥当なんですか? sin(x+y) = sin(x) + sin'(x')*y ~ sin(x) + (1-x*x/2)*y sin(x+y) = sin(x) + sin'(x')*y までは分かる。(これも厳密には近似なんだけど,まあ納得) ~ sin(x) + (1-x*x/2)*yが分からない。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos こんにちは。TLで今見かけただけですが、sin'(x) = cos(x) のマクローリン展開を1次の項で打ち切ったものではないでしょうか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@nekketsuuu なるほど。1/2がどこから来るかなと思ったんですが計算してみたら確かにそうなりました。yが十分小さければいい近似になりそうです。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos (すいません1次じゃなくて2次でした)」 / Twitter
Nakatani ShuyoさんはTwitterを使っています: 「@uchan_nos sin の微分 cos を同様に展開してます」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「マクローリン展開じゃなくてテイラー展開だった」 / Twitter
kashiさんはTwitterを使っています: 「この本に、Newton法が解に収束せずに無限ループに陥る例を扱った章があって、「不安定周期解ではあるが丸め誤差のせいで安定的にその周期解に留まる」という事例が紹介されてた。 https://t.co/QlSD1JeVAd」 / Twitter
米津 アンさんはTwitterを使っています: 「矢崎成俊 著『実験数学読本』 色んな数学モデルを寄せ集めた本です。本書を読めば、わたしたちの身の回りからよりたくさんの数学を見出せるようになれるでしょう。扱っている数学は大学1年レベルですが、高校生が読んでも「数学の力ってすげー!」を堪能できる内容だと思います😆 #今日の一冊 https://t.co/huYujiZNNw」 / Twitter
kashiさんはTwitterを使っています: 「で、そもそもNewton法で解に収束せずに周期解に陥るとき、ほんとに不安定なのか、という興味を持ってあれこれいじってたら、こんな例を見つけた。方程式x^3-x+1.5=0に対するNewton法で初期値を1.5018719167693075...とすると、安定な3周期解になる模様。 https://t.co/bItfhPISsu」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復が周期的になる例は教科書によく載っているけどたいてい不安定で、実際には解に収束するか無限に発散するかどちらかだ、みたいなのをどこかで見た気がしてて(妄想かも)、そうでもなくて周期解に陥ってしまう場合も普通にあるんだなあと思った、という話。」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復の安定周期解って面白い発見じゃね?と思って調べてみたら先行研究があって、方程式が多項式で全ての解が実なら安定周期解は存在しない、複素解を持つ場合は普通に存在する、とのこと。 https://t.co/BaDetPVw2T」 / Twitter
S0002-9947-1986-0849472-6.pdf
FadisさんはTwitterを使っています: 「確かに微分可能な関数しか使っていない 確かに自動微分の結果で最急降下法にかけると解に収束する この微分を手で求めろという問題が試験に出たら単位を取れる自信がない みたいなのがゴリゴリまわってるのを眺めてる。計算機ばんざい」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@math153arclight Python以前に、そもそもintel PCで計算してたら意味無い。カハン教授のparanoiaテストでバグるのがまだ直ってない、と言うか直す気無くてitanium使え、って言ってる。MIPSやSPARC, HP Precisionアーキを使おう!」 / Twitter
ロボ太さんはTwitterを使っています: 「数値計算をするときには、まず解析解がわかる系を計算して、答えが一致するか確認するといいですよ(数値解と解析解が微妙にずれてるグラフを見ながら)」 / Twitter
FadisさんはTwitterを使っています: 「第1種ベッセル関数を誤差逆伝播するのに何とかしてこれを微分できないかな、と思ったんだけど台形公式でバラして微分すると動くけど死ぬほど遅いヤツが出来て、テイラー展開で近似して微分すると次数上げても誤差が大きくて困ってた所に神のような論文を見つけてしまった https://t.co/dookUeJZp6」 / Twitter
The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors | SpringerLink
FadisさんはTwitterを使っています: 「次数を上げて行くとx=0近傍の吹っ飛んでる部分がだんだん広がって行くんだけど、10次でもこれだけ食いついてくる https://t.co/5Z6xpSHAzj」 / Twitter
FadisさんはTwitterを使っています: 「というかベッセル関数ってn-2次とn-1次の計算済みの値を使ってn次の値を高速に計算できるんだな…。このため0次と1次の場合だけ気合いで近似すれば任意のnについてn次の場合の近似が出来たことになる」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ n-1とn+1とかもあったようなと思ってググった https://t.co/HRgJXUNipD」 / Twitter
ベッセル関数(円柱関数)の公式あれこれ - 倭算数理研究所
FadisさんはTwitterを使っています: 「@ignis_fatuus 微分公式あるやん… (圧倒的数学ちから不足)」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ まあこれ数学ちからというより知ってるかどうかだから..」 / Twitter
FadisさんはTwitterを使っています: 「お前解析的に微分求まるのかよぅ…。めっちゃ頑張ってまともな速度で数値微分する方法探してたのに https://t.co/KKL1Raw2TH」 / Twitter
s.komataさんはTwitterを使っています: 「ハレー法は、ニュートン法の精密化(の一つ)である。それにしても、ここにもひょっこり顔を出すシュヴァルツ微分 https://t.co/K4HufevbIi」 / Twitter
Halley's Method -- from Wolfram MathWorld

histric-3

FadisさんはTwitterを使っています 「物理ベースな3Dグラフィクスでは全てのマイクロファセットについての積分が式について来て、反射ならマイクロファセットは完全鏡面反射する事にして出来るディラックのデルタ関数をぶつけて積分を潰せるけど、拡散はこの手が使えないからリアルタイムレンダリングで使うにはうまい近似が必要になる」 / Twitter
ゆうなさんはTwitterを使っています 「今日ほど内積の偉大さを知った日はない。 内積は基底変換、内積はフーリエ展開、内積はカーネル、… #数学デーinN高」 / Twitter
てぴ✨数学が大好きさんはTwitterを使っています 「@kawauSOgood リーマン幾何学をやるといいかもです(*´∀`)」 / Twitter
FadisさんはTwitterを使っています 「幾何においては、内積が「cos求めたのと等価な計算を時間がかかる三角関数の計算を陽に行わずにできる」という性質があまりにも便利なのであった」 / Twitter
小清水さんさんのツイート: "いつか紹介しようと思っている、定数との掛け算方法についての論文。三角函数の周期性で x - n * pi/4 みたいな計算で誤差がたまらないようにするために、いろんなところで使われている手法: https://t.co/QSHxyXWpYB"
MultFmacArith.pdf
FadisさんはTwitterを使っています: 「解析的に解けない理由は思い当たらないけど解くのが辛そうな方程式をとりあえずMathematica Onlineに突っ込んで、ノートが沈黙するのを眺めて、やっぱり解くのはやめよう、となる作業」 / Twitter
Teppei KuritaさんはTwitterを使っています 「Mitsuba2の微分可能レンダリングの簡単な例。目的となるレンダリング画像への誤差を最小化するようにシーンパラメータ(反射率等)を勾配法(SGD)等で最適化できる。左の壁は赤色が真値なのだが、適当な値で反射率を初期化しても最終的に真値に収束する。PyTorchとの統合可能。 https://t.co/xRCyO7hawW https://t.co/rniWlyVuol」 / Twitter
Differentiable rendering — mitsuba2 0.1.dev0 documentation
Kazuho OkuさんはTwitterを使っています 「@shirouzu 指数関数なので、新規を積分した累積の低は同じになるので、それを片対数グラフにプロットすると、同じ傾きになるかと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho 確かにその通りですね…指数は微分しても同じでした(笑) (ただこの調子だと、 (重症+死亡者) / 感染者、の比率は低下していくということで良いのですかね)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho いや1.1倍で同じなら、1.1^n day倍になるだけなので、比率は変わらないですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「直接の知人を1ホップって言おうと主張するの、確立された技術用語に別の定義を持ち込もうとしているという点で、爆発的な指数関数的増加を「指数関数的増加」に言い換えるの同等に非科学的な主張じゃないのかな cf. https://t.co/vZqfEWqV89」 / Twitter
ホップ (ネットワーク) - Wikipedia
monochromeさんはTwitterを使っています 「@miura1729 @uint256_t modって被非除数と除数の符号によって4パターンぐらいあって、しかも言語によってバラバラですよね。RubyとRust (LLVM) も違っていてハマった覚えが」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @uint256_t modも割り算もバラバラですよね。その点、Common Lispは全部用意する(3パターン)という男らしさ」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @s_isshiki1969 @uint256_t Schemeは6パターン網羅 (やりすぎ?) https://t.co/Ai69oiwjR6」 / Twitter
SRFI 141: Integer division
Masaki HaraさんはTwitterを使っています 「・割って掛けたらきっかり元に戻ってほしい→有理数ライブラリでいけます ・ルートして2乗したらきっかり元に戻ってほしい→代数的数ライブラリでいけます ・logしてexpしたらきっかり元に戻ってほしい→ちゃんとやるのは無理です」 / Twitter
Miura HidekiさんはTwitterを使っています 「ReduceやMathmaticaみたいな処理にすれば多分できる」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 記号処理というか項書換え系というか... 近似値が欲しいと言われるまで数値にしない :)」 / Twitter
tkrさんはTwitterを使っています 「行列積、転置行列作ってメモリアクセス局所的にするだけで計算時間半分になった メモリキャッシュ意識したらそんな変わるんか…」 / Twitter
電子計算機の沼さんはTwitterを使っています 「numpyだのscipyだのJuliaだのMatlabだのにBLASのラッパーみたいなI/Fの微妙に違うものが量産されたのは完璧にHPCの敗北で,もっと下のレイヤでHPCが主体となって早くBLASを作り直せば多種多様な異母兄弟みたいなのが生まれずに済んだんじゃないかと最近強く思う」 / Twitter
電子計算機の沼さんはTwitterを使っています 「あんなFortranで書かれた型縛りが強すぎるものを2020年にもなって後生大事にいろんな言語で使うためにみんなでラッパー書いて使おうっていうのが間違っている」 / Twitter

histric-4

Shinji KonoさんはTwitterを使っています 「まあ、色々意見はあるが 微分方程式はexp xをかけて積分 だけで院試はだいぶ違う。未定係数の問題を出したところは知らん。畳み込み積はみた。あれは知らんと解けん。知らないのはダメだとは思うけど。」 / Twitter
FadisさんはTwitterを使っています 「積分を「解析的に解けるラッキーな関数の解析的な積分の方法を覚える」ところから学び始めるの自体が、あまり筋の良いシナリオではないんだよな」 / Twitter
horiemさんはTwitterを使っています 「格子法って有限要素法とかも含まれるのか (グリッドの差分法だけを指す言葉かと思ってた)」 / Twitter
てらモス♋️さんはTwitterを使っています 「差分法もデルタ関数でガラーキン近似してるだけなので実質スペクトル法(?)」 / Twitter
てらモス♋️さんはTwitterを使っています 「分野にも計算機にも寄らない共通の数値計算の基礎なんて微積と関数解析くらいしか無いよな(´・ω・`)」 / Twitter
ど ね ( 。 •̀ _ •́ 。 ) ( 群 )さんはTwitterを使っています 「これを利用して多項式の積をFFT使って高速に計算する方法があった気がしますね(畳み込みの Fourier 変換はそれぞれの Fourier 変換結果の積になるので)」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「そうか。多項式の積って畳込みそのものだったんですね。 https://t.co/Im0SY5RIFZ」 / Twitter
κeenさんはTwitterを使っています 「昨日rust-jpのslackで整数の平方根がとりたいけどメソッドがないって話題が上がってたので(非負)整数の開平計算実装してみた https://t.co/jsFSgjZLNg アルゴリズムはWikipediaでも参考にしてみて。 開平法 - Wikipedia https://t.co/L2mNx0H1re」 / Twitter
extract_sqrt.rs
開平法 - Wikipedia
Shinji KonoさんはTwitterを使っています 「学部の授業で連続だが至る所で微分不可能な関数で、三角波を細かくしていく、するとゼロになる。失敗。そこで諦めないで、それを全部足すとできるってなのが印象に残ってる。フラクタルみたいなので理解してたので解析的書けるんだ的な面白さがあった。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「自称文系という中には、微分といわれると冷や汗をかき、積分なんていわれたら一日中ブルーみたいな人がいるけれど、「いま時速○○だから××時間後には△△あたりに着くな」などいうとき、普通に物体の位置を速度の積分で導出しているのだから、実はほとんどの人は日常生活で初歩的な積分は使えている。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「物体の位置を微分したら速度、速度を微分したら加速度になる。当然ながら反対方向の加速度→速度→位置は積分。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そういえばいたるところで微分できない連続関数のグラフってあったな。どんなに拡大してもカクカクしているという。」 / Twitter
Genki TakiuchiさんはTwitterを使っています 「@shinji_kono フラクタルな曲線全般的にそんな感じですけど、多分ワイエルシュトラス関数かな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数解析は自分的に必要性がよくわからなくて… でも、機械学習系に入ってきてるのか。収束とか問題になるしな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「部分積分はけっこうパターンマッチ的にめんどくさい技術で、名前がついていて「ここで使うぞ」と身構える感じ。プログラミングだとメソッドを抜き出すrefactoringに近い。」 / Twitter
Yusuke Hayashi 林 祐輔さんはTwitterを使っています 「渡辺澄夫先生の講義ノートと講演スライド.「統計的推測の問題が物理学と似ている構造を持つのは,単なる偶然なのでしょうか.それとも, 観測から真の分布を推測する,ということは物理学の一部なのでしょうか.」 1. https://t.co/64whBKegAn 2. https://t.co/GIULKJlnp0 https://t.co/qiaf6Uj3kh」 / Twitter
KJ00007905533.pdf
Mathematical Foundation of Statistical Learning - statphys20180312.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積といえばzipWith (*) v1 v2 ……え、長い?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積が利用されるのって「愚直にループを回すと遅い」問題か「愚直にループを書くと字面的にうるさい」問題の結果だと思ってる」 / Twitter
yuyabu🎄🎁さんはTwitterを使っています 「実践コンピュータービジョン前書き &gt;主成分分析により次元を削減するという応用から入って、主要な固有値と基底ベクトルで近似するために行列を変換していくんだな、と理解してからは目の前が開けた経験があります この境地になりたい」 / Twitter
てらモス♋️さんはTwitterを使っています 「メモリからデータを取ってくるのがCPUから見てとても遅い現代において、読み込み→計算→書き込みを単位としてモジュール化するのは悪手で、eDSL作って計算部分だけまとめる機構に流れるのは自然で、そうなるとC++だとuBLASみたいな事になっちゃうんだよね(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「そもそもスペクトル法にしておけば、微分ってのはikかけるだけの操作なんですよ…(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「スペクトル法使えるの、普通には長方形か円柱か球面しか無いんだよね」 / Twitter

Kazuho OkuさんはTwitterを使っています 「オミクロンの重症化リスクが若干低いとしても、それは指数関数の定数項でしかないので、指数関数の底である再生産数が大きくなる影響のがでかいわなぁ」 / Twitter
mod_poppoさんはTwitterを使っています 「多項式のユークリッドの互除法とかだと「(一般の)体係数に対するアルゴリズム」が事実上「有限体係数に対するアルゴリズム」だったりする(有理数体だと係数膨張して実用的じゃないので)」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「なんかそういえば,「ベクトル演算の画期的な新記法が発明された!ファインマンダイアグラムに匹敵する新発明!」みたいな論文,あれ読んでないけどどうなったの?」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「これだ. https://t.co/QLHuauuuZ7」 / Twitter
1911.00892.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「多項式、いっそ係数のリストとして表記したほうが関数との紛れがなくなる」 / Twitter
dif_engineさんはTwitterを使っています 「@mod_poppo 不定元も「形式和」も使わないと結局そう定義することになりますね.」 / Twitter
uint256_tさんはTwitterを使っています 「リザバーコンピューティング よくわからない」 / Twitter
てらモス♋️さんはTwitterを使っています 「リザバー、先に適当な非線形発展を行う物理系とその系への入力と計測を用意して、その性質を調べて可能な計算のクラスを見て、自分のやりたい計算をその上に翻訳する操作的な認識(´・ω・`)」 / Twitter
じ〜ま⊿🦀さんはTwitterを使っています 「微分方程式の理論に線形代数が出てくるとか初見殺しじゃね? 関数の集合をベクトル空間と見るっぽい雰囲気は感じとった」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「数学全然知らんけど、積分って解析的に解けない式が多すぎて、高校までは数少ない単純なルールで計算できるパターンを覚えてパターンマッチする問題しかなかった記憶だし、それ以降は情報に進んだから数値的にやりゃあええやろみたいになってもうたな。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「ホント、やっぱり数学はプログラミングとセットでやってくれないと困るよなぁ。ある計算をするのに複数の求め方がある時に計算量的にはこっちの式がいいだとか、計算誤差を最小化する為にこっちの式が望ましいだとか、そういうところまでセットでやって欲しい。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的にわかりやすかった行列の積の直感的な説明: 行列 Aと行列Bを掛ける (AB) とき、Aの各行は「関数」と考えることができ、Bの各列は呼び出しの「引数」と考えることができる。引数がいくつあるかはA(の幅)によって決まるが、データの個数はB(の幅)によって決定する。 https://t.co/i9jEgihbPO」 / Twitter
A Programmer’s Intuition for Matrix Multiplication – BetterExplained
解答略さんはTwitterを使っています 「微分コンサルは、いらんねん。合成関数の微分公式とかいう神器を使えば何でも微分できるし むしろ欲しいのは積分コンサルやねん。 * t=tanx/2に置換するやつ * t=x+√(x^2+1)に置換するやつ * 楕円関数snを使うやつ * Γ関数で書けるやつ * 超幾何級数にするやつ みたいにコンサルが言ってくれると便利」 / Twitter
ゆうがたさくはなさんはTwitterを使っています 「@kaitou_ryaku まず積分が可能かどうかを教えてくれるコンサル…」 / Twitter
QDくん🇺🇸米国株/機械学習/Python/シストレ/金融工学/FIRE/副業さんはTwitterを使っています 「Numpyのチートシートです。ご査収ください。 https://t.co/Id38FTbpyX https://t.co/WXlfeiyCOH」 / Twitter
NumPy Cheat Sheet: Data Analysis in Python - DataCamp
Satoshi ImaiさんはTwitterを使っています 「今学校で情報の授業もあるそうだから数学の実験できると楽しそう 円周率教えたらモンテカルロ法で近似値求めてみるとか、 微分教えたら最小二乗法で線形回帰してみるとか、 三角関数教えたら音声をフーリエ変換して情報圧縮してみるとか、 当時から数学のありがたみを知りたかったよね」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「フーリエ変換の結果を3次元表示し、時間領域と周波数領域が同時に見れるようにしたもの。複素空間まで見えるのがすごい。 https://t.co/P9uUewWqQm」 / Twitter
Fourier Cube
解説さんはTwitterを使っています 「物理学も解析的に解けなかったりするところは計算機でゴリゴリゴリゴリしてるんだけどその手の物理って教養だとあんまりやらないっぽくて物理学に綺麗な印象が残る」 / Twitter
mima_itaさんはTwitterを使っています 「機械学習の環境は個人のPCだとあかんわ。 手持ち最強の環境でもcolaboratoryで動いたコードが、gpuがヘッポコと言われて動作しなかった。」 / Twitter
Hiroki FukagawaさんはTwitterを使っています 「これの参考文献を貼っとく。回転座標系の修正ナビエ・ストークスはDEFの式。ベクトルでの計算を追うのは大変だが、微分形式なら機械的な計算で出る。 https://t.co/r1FztsdnfF」 / Twitter
Derivation of Navier–Stokes equation in rotational frame for engineering flow analysis - ScienceDirect
Hiroki FukagawaさんはTwitterを使っています 「2021年まで、回転座標系のナビエ・ストークス方程式が不完全なものだったのは驚きですな。そして、誰も導出を追ってなかったとは…。2日くらい計算していたが、めっちゃ大変だったし、よくある式が自分の感覚的にも違うだろうと思ってみていて、その導出を追いかけていたが、ロジックが飛んでいた。」 / Twitter

ゆとりーなさんはTwitterを使っています 「やる夫で学ぶディジタル信号処理 https://t.co/rJOQ6NRtje 必要に迫られて趣味でデジタル信号処理を学んでたら行き着いたんだけど、そこらへんの教科書の5000兆倍わかりやすいと思ってよく見たら、やる夫スレ魚拓じゃなくて東北大学工学部の講義補助資料だった。」 / Twitter
やる夫で学ぶディジタル信号処理

SVM

SVMの理論的な話 - genkami.github.io
機械学習アルゴリズムのしくみを解説 「サポートベクトルマシン」と「k-means法」とは:CodeZine(コードジン)
langstatさんはTwitterを使っています 「機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita https://t.co/4huHGnSLUz 分かりやすくて、いい感じ。正則化に関する可視化はわりとよくあるけど、、、SVMのハイパーパラメータ(gamma, C)の可視化はそんなに見たことがない気がする(忘れている可能性ありw)」 / Twitter
機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita

ビタビアルゴリズム

その他

ビタビアルゴリズム - Wikipedia
畳み込み符号 - Wikipedia
HMM viterbi
Forward filtering-Backward samplingによる単語分割でアンダーフローを防ぐ – ご注文は機械学習ですか?
マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。 - Bug Catharsis
ビタビアルゴリズムをpythonで実装してみた - Screaming Loud
ビタビアルゴリズム
Viterbi アルゴリズム
無線通信における畳み込み符号化について
無線通信における畳み込み符号化について
ボクにもわかる地上デジタル - 地デジ方式編 - 符号化
畳み込み符号のプログラムについて(C言語) - 畳み込み符号とビタビ復号のプログ... - Yahoo!知恵袋
Viterbiアルゴリズムについて - プログラマ専用SNS ミクプラ
ビタビアルゴリズム【入門】具体例で分かりやすく解説!(Viterbi)
ページ 1
あやしいサイコロと『隠れマルコフモデル』 | 株式会社フォワードネットワーク
Viterbiアルゴリズム - 機械学習の「朱鷺の杜Wiki」

動的計画法

blog

動的計画法でフィボナッチ数列の計算を速くする。 - from scratch
Matrix-chain multiplication problem - Lilliput Steps
なぜdp「やるだけ」なのか ~動的計画法について考える その1~ - kuuso1のブログ
競技プログラミングにおける動的計画法更新最適化まとめ(CHT, MongeDP, AlianDP, インラインDP, きたまさ法) - はまやんはまやんはまやん
DPとは何か フィボナッチで - 簡潔なQ
連鎖行列積問題 : がぶ飲みミルク珈琲
Tech Tips: 連鎖行列積を動的計画法で解く
第13回 NVIDIAが提供する数学ライブラリ | G-DEP
DPはDAG上の最短経路ではない - うさぎ小屋

PDF

PowerPoint Presentation
バイオインフォマティクスⅠ
shiryou-20160906-4.pdf
untitled

スライド

動的計画法を極める!
動的計画法
動的計画法 / Python 11 - Speaker Deck

GEMM

Nehalemアーキテクチャ向けDGEMMの高速化: 事例 | NEC
dgemm を使用した行列の乗算
dgemm によるスレッド化の効果の測定
インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 | iSUS
dgemm によるスレッド化の効果の測定
gemm-一般行列・行列積 VI - LabVIEW 2017ヘルプ - National Instruments
shinichiro hamajiさんのツイート: "すべてのアクセラレータ作るベンダーに一番自信ある設定でGEMMやった時の数字を公表する義務を課してほしい"

BLAS

Wikipedia

Basic Linear Algebra Subprograms - Wikipedia
OpenBLAS - Wikipedia
LAPACK - Wikipedia
LINPACK - Wikipedia

ロボ太さんのツイート: "「ソフトウェアテスト」というべきか微妙ですが、HPLがちゃんとできるということは、ハードウェアベンダーがちゃんとしたBLAS職人を抱えている証左になります。昔は知りませんが、現在の石で行列行列積を書くのは非自明な技術です。自分でDGEMMを書いてみれば、その性能の低さに驚くと思い… https://t.co/PQ4jZPQTWD"
ロボ太さんのツイート: "科学技術計算の多くはBLASに依存しており、その基本はDGEMMです。DGEMMはアーキやSIMD幅に応じて書き直す必要があります。HPLをちゃんとやるというのは「そのアーキでちゃんとしたBLASを用意します」という、ベンダーの意思表示になります(もちろんこちらはBLASはBLA… https://t.co/rYHdoO34wP"
Hideyuki Tanakaさんのツイート: "BLAS専用ハードとかないのは、BLASってめちゃくちゃ関数がおおいから専用ハードなんて作っても意味があんまないからじゃないのですかね…。DGEMM専用回路ですら汎用プロセッサと比べてたいしてメリットないんじゃないかと言われているのに。"
Hideyuki Tanakaさんのツイート: "すでに現在のアクセラレーターってDP演算回路が全体の数割を閉めているらしいから、全部埋め尽くしても数倍にしかならないし、そもそもそれらにきちんと途切れることなくデータを物故見続けるためにはそれなりの量のバスと、キャッシュがどうやっても必要になるから、DGEMM専用回路でも2倍も行… https://t.co/w2fBpD3je0"
Hideyuki Tanakaさんのツイート: "というのをDGEMM専用回路つくりゃいいじゃんという指摘を僕自身でしてみたときに思った。そんなこともないよっていうハード設計者の人がいらっしゃったらおしえてちょー(´・_・`)"
Hideyuki Tanakaさんのツイート: "あとBLASで負荷が高いのはLevel3だから、それ以外はソフトで書いたほうがいいでしょっていう。Level2はどう考えても帯域ネックになるしな。"
shinichiro hamajiさんのツイート: "PEZYのおかげでLINPACKというやつがDNNと違って単にGEMMやってるだけでなくてもうちょい大変なことをやってるという認識が持てたということがありました。以前はスパコンてGEMMお化けなんでしょくらいの認識だったというか、なんでスパコンで多体問題とか解けるのと今でもわかっ… https://t.co/KytNh0mxQb"
BLASの簡単な使い方
IBM Knowledge Center - BLAS 関数構文

Qiita

制御理論としての動的計画法 - Qiita
意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法 - Qiita

Hideyuki TanakaさんはTwitterを使っています 「そもそもDP自体は具体的なアルゴリズムを指さないから、言葉自体がふわっとしたものになる気はした。」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「DPとか単語の意味がわかりづらいから、DAG Memoisationとかで良くないか?配列を使う実装は、パラメーターがDenceな配列にできるときの特殊ケースってことでええやろ。(´・_・`)」 / Twitter
fujikaWAさんはTwitterを使っています 「動的計画法って何でDynamic PlannningじゃなくてDynamic Programmingなんだろう?命名由来は?って思ってググってみたら、アホ臭い政治的理由でわろた 時の国防長官がとんだアカデミア嫌いだったようで、彼からの攻撃を避けるために数学っぽさを排除した言葉を選んだそうな() https://t.co/GeSfVHRWjC」 / Twitter
なぜ動的計画法はDynamic「Programming」という名前なのか - フリーランチ食べたい
動的計画法(ナップサック問題) - アルゴリズム講習会
Spaghetti Source - 連鎖行列積
ダイナミックプログラミング
できる動的計画法:ロッド切り出し問題 | プログラミング | POSTD
chokudai(高橋 直大)さんのツイート: "多分DPを狭義に解釈してる人は「メモ化再帰はDPではない」みたいに言いそうだし、これは完全に競プロ方言だと思ってる。(メモ化再帰はDPです)"
chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「全探索→貪欲→動的計画法の順序で書いたのは初めてだけど、これはこれで良いのよね。 全探索→動的計画法がアルゴリズム的には繋がりが良いのだけど、貪欲を挟む事で、「自明な改善が出来ないケースでDPが有効」ってストーリー性を持たせやすくなる。」 / Twitter
omuomuginさんはTwitterを使っています 「大学ではなぜか動的計画法で解きたい問題のダメな方法として紹介されたので、しばらく末尾再帰以外の再帰は悪手なんだと思ってた。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@omuomugin 動的計画法で解きたい場合は、それは確かにナイーヴな再帰関数だとあんまり良い手じゃない気がします(メモ化再帰は使い所ありますが)。」 / Twitter
Kenji OtsukaさんはTwitterを使っています 「@uint256_t 動的とか計画とか言うとわかりにくくなりますが、過去の結果を使って次の結果を求めるようにしたのが動的計画法だと理解しています。」 / Twitter
kinabaさんはTwitterを使っています 「子の個数が定数(2とか3とか)だったら全ての根から木dpするのは普通にメモ化再帰するだけで線形時間なので、ただの木dpと手間ほとんど変わらないんじゃないかなと思いました。いわゆる"全方位木DP"は、次数が多いノードの向きを変えるのをO(1)にするために累積和とかのテクが要るという話なはず。」 / Twitter

PDF

coding_06.pdf
ohp12.dvi
nlp-programming-ja-04-ws.pdf
アラインメントはグラフで表現できる
<4D6963726F736F667420506F776572506F696E74202D2091E630338FCD8CEB82E892F990B395848D86979D985F2E70707478>

GitHub

Yuji-Kosugi/sysele
yk-tanigawa/201410HMM: HMM
ビタビ複号を行うプログラム

探索

その他

infoQ

Sonic - 軽量でスキーマレスな検索システム
Googleが概念ベクトルを使用した画像検索を研究
ベクタ類似性検索の実用化を支援するPinecone 2.0

antirez/rax: A radix tree implementation in ANSI C
興味深いデータ構造:BK木 | プログラミング | POSTD
米Microsoft、最近傍探索ライブラリ「Space Partition Tree And Graph(SPTAG)」をオープンソースで公開 | OSDN Magazine
最小二乗法 機械学習 - Google 検索
行列 微分 - Google 検索
ユークリッド距離 - Google 検索
κeenさんはTwitterを使っています 「赤黒木を定義するときに赤と黒の2値を表現するためにパディング含めて32bitを消費するの無駄だなーと思ってたけどRustならenumのdescriminant mergingがあるからメモリが無駄になる訳ではないな。C/C++でも手動で同様のことできるはず。 https://t.co/ki4f9iITtV」 / Twitter
Rust Playground
リバーシプログラムの作り方 サンプル
近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo
KampersandaさんはTwitterを使っています 「作りました。シンプルで強いFrontCoding文字列辞書のRust実装です。 https://t.co/EEVPA0LCuA」 / Twitter
kampersanda/fcsd: Front-coding string dictionary in Rust
KampersandaさんはTwitterを使っています 「FrontCoding辞書は単純に先頭から読み込むだけのデータが多いので、文字列圧縮が簡単に適用できたりして素敵です」 / Twitter
日本語のサジェスト機能の実装
巡回セールスマン問題(TSP)の基本的な解き方(ILS) | フューチャー技術ブログ

法則発見

1_270.pdf
機械学習 - Wikipedia
Microsoft Word - pantel_web_v2.docx - P2-30.pdf
058.pdf
15群(○○○)-8編 - S3gun_03hen_03.pdf
機械学習とは?教師あり・教師なし・ 強化学習・半教師あり学習のアプローチ法も説明 | データサイエンスコラム|アガルートアカデミー
機械学習に欠かせない、特徴量とその選択手法とは | AI専門ニュースメディア AINOW
Microsoft PowerPoint - 01Intro.ppt - 01Intro.pdf

文字列

e2rtre2

T.Mieno@無職さんはTwitterを使っています 「"Palindromic trees for a sliding window and its applications" というタイトルの論文が IPL で公開されました: https://t.co/lfVJ5INfnB」 / Twitter
Palindromic trees for a sliding window and its applications - ScienceDirect
KampersandaさんはTwitterを使っています 「e2rtre2なんて素敵な名前のデータ構造があるのね」 / Twitter

極大部分文字列

再訪: 極大部分文字列 - Retrieva TECH BLOG
極大部分文字列について調べた - $shibayu36->blog;
情報学広場:情報処理学会電子図書館

python 文字列 flatten - Google 検索
v8 rope 文字列 - Google 検索
v8 rope 文字列 flatten - Google 検索
Kazuho Okuさんのツイート: "wwww これメンテし続けてる情熱がすごい! これでうまく行くのは、数値に変換する前にflattenしてるってことですかねぇ… "
Takuo Kihiraさんのツイート: "@kazuho さん、さっき @yosuke_furukawa さんに教えてもらったんですが、V8 で rope で切り貼りされた文字列を flatten するためにはこうすればいいらしいですよ! https://t.co/Nt1LGTRwt0"
flatstr/index.js at master · davidmarkclements/flatstr
Takuo Kihiraさんのツイート: "そうだと思います。最適化で殺されそうですが、今度 disasm のコード覗いてみて、Rope を flatten する処理にどんなのがあるのか見てみますw… "
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
文字列アルゴリズムの学びかた - Hatena Developer Blog
qrintfの最適化 - RuJIT開発日記
h2o/qrintf: sprintf accelerator for GCC and Clang
最も割高なアンチパターン : 構造化されたデータを文字列関数で操作する「printfアンチパターン」について | プログラミング | POSTD
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
どれだけ速く文字列からスペースを削除できるのか | プログラミング | POSTD
kmem_cacheさんはTwitterを使っています: "strncpy()・strlcpy()よりも使いやすくてセキュアなstrscpy()が追加されたと。 / “Linux 4.3-rc4 Kernel Released: Adds A New & Better String Cop…” http://t.co/ztQJvCSuRl"
Hirochika Asaiさんのツイート: "strtok()にobsoleted by strsep()って書いてあるけど、strtok()とstrsep()の挙動が違う。macOSのstrtok()は連続するセパレータは省略してstrsep()は空文字を返す。POSIX的にはどっちが正しいんだろう…?"
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列検索アルゴリズムいろいろ - Qiita
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | プログラミング | POSTD
rapidstring: rapidstring
boyerjohn/rapidstring: Maybe the fastest string library ever.
シンプルで強いFrontCoding文字列辞書を紹介したい - Kampersanda's Blog
OdashiさんはTwitterを使っています 「弊の高速文字列マッチングライブラリです。 https://t.co/gA7zQv5ZEI https://t.co/IKFXQ36iA4」 / Twitter
legalforce-research/daachorse: 🐎 A fast implementation of the Aho-Corasick algorithm using the compact double-array data structure.
OdashiさんはTwitterを使っています 「このライブラリを当てるだけでRustの形態素解析器が全部ある程度の高速化を見ると思います。」 / Twitter

ビットベクトル

Kozonoyuki's Blog: ビットベクトルによる集合
C言語 ビットベクトル 集合 要素数の調べ方について - ビットベクトルを用い、集... - Yahoo!知恵袋
学生ゼミ 10/25 - JP@IKN
4.2.pdf
汎用kumAGIさんのツイート: "簡潔ビットベクトル、高速なのはいいんだけど構築のコストが大きいので検索が支配的なコストの場合に使うしか無くてDWHとかIMEとか使いどころが難しいのでは…。"
「ビット演算・ビットベクトルとは」を理解する - Qiita
簡潔ビットベクトル(完備辞書) - Mister雑記
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
簡潔データ構造 - Wikipedia
簡潔データ構造超入門 ~つくって学ぶ簡潔ビットベクトル~ - EchizenBlog-Zwei
簡潔データ構造超入門III ~簡潔ビットベクトルで転置インデックスを効率的に実装する~ - EchizenBlog-Zwei
整数ベクトルからビット ベクトルへのマップ - Simulink

簡潔データ構造

Rustで簡潔データ構造のライブラリを3つリリースしました | 俺とお前とlaysakura
Succinct Integer Array Library
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
高速かつ省メモリなbit vector「sucBV」を作る (1/2):CodeZine(コードジン)
効率的で簡潔でモジュール式のセットメンバーシップおよび非メンバーシップ証明のためのRustライブラリ - wenyanet
定兼 邦彦 (Kunihiko Sadakane) - 簡潔データ構造講義資料 - researchmap
簡潔データ構造(Succinct Data Structure)で最初に読むと良さそうな論文 - EchizenBlog-Zwei
Miura HidekiさんはTwitterを使っています 「簡潔データ構造第2回: ビットベクトルに対する簡潔データ構造 - Retrieva TECH BLOG https://t.co/XlnLPLPWh6 とてもわかりやすくてよいのだけど、popcountって定数時間と見てもよいのだろうか?というもやもやが残った。実際に実装する際には定数時間だろうけど。」 / Twitter
簡潔データ構造第2回: ビットベクトルに対する簡潔データ構造 - Retrieva TECH BLOG
ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@miura1729 popcはあんまり使わない命令なので1サイクルで完了するような実装ではないのでは、と思ってます。推測でしかないのですが。 https://t.co/kzCtQ9KzHX」 / Twitter
命令実装時のサボりについて: 竹下世界塔の計算機よもやま話
Miura HidekiさんはTwitterを使っています 「@houmei この記事、むちゃくちゃ面白いですね。ありがとうございます」 / Twitter

2^n分木 ビット演算 管理

Binary Indexed Tree (BIT) 総まとめ!区間加算や二次元BITまで | アルゴリズムロジック
ビット全探索( 2^n 通りの全探索) | アルゴリズムロジック
bit 全探索 - けんちょんの競プロ精進記録
std::setを使わない代替テクニック [いかたこのたこつぼ]
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita
徹底攻略MCA Database問題集: 「M10‐101」対応 - 森下泰子 - Google ブックス
二分木 - Wikipedia
B木 - Wikipedia

intrusive container

侵襲・非侵襲

関数呼び出しのトレース - yohhoyの日記
python - How do I print functions as they are called - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "C++は侵襲型のリストやマップなども用意して欲しいところ。 (できれば複数リスト対応できるもの) 非侵襲型=insertだけでアロケータ必須とか、要素内部を漁ってもイテレータが取れない、という制約になっている。"
SODA Noriyukiさんのツイート: "Boostにはあるし、言語標準の方でも議論はしてるっぽいですよね https://t.co/EtGBKKzf3o… "
Intrusive Containers

OSC2019東京・春出展さんのツイート: "Linuxカーネルのリンクリストは余計なアロケーションがなくて効率はいいんだけど、要素となるデータ構造と、それを入れるコンテナの種類が密に対応しちゃうのが気持ち悪い。"
SODA Noriyukiさんのツイート: "intrusive containerって奴ですね # これに対しSTLやglibみたいな奴は non-intrusive container Linuxに限らず他の OS でも似たような構造はあるし(*BSDだと <queue.h> や <tree.h> など)、ゲームとか組み込みの世界でもよく欲しくなるのでC++にも入れようって話が出てたり https://t.co/EtGBKKzf3o… https://t.co/EK4OaKn9jr"
SODA Noriyukiさんのツイート: "元となるデータ型を変更しないといけない(intrusive)という欠点は当然あるので、適材適所で使うものですが…… "
_さんのツイート: "Boost.Intrusive とかありましたね https://t.co/9dd13XN7Dx"
Chapter 19. Boost.Intrusive - 1.64.0
OSC2019東京・春出展さんのツイート: ""intrusive container"っていう呼び方は初めて知りました.ありがとうございます!とあるデータ構造を,ここではリンクリストで,こっちではarrayリストで,こっちではsetで,みたいにしたかったらintrusive containerは不向きですね.… https://t.co/QfDH6bELcN"
SODA Noriyukiさんのツイート: "arrayは無理なので向かないけど、(mapあたりで実装した)setとlistなら可能だし、わりとしょっちゅうやります。設計時にそのデータ型が属するcontainerの種類や数が不定だったりすると不可能ですが。… "
OSC2019東京・春出展さんのツイート: "ああ,そうか.ポインタで繋げるタイプのコンテナなら実現できそうですね.… "

疎行列

sparse

hsjoihsさんはTwitterを使っています 「https://t.co/oOfSt36h8R「未初期化のメモリなんてどうなっててもいいよね、如何なる演算をも許さなくてもいいように思える」 私「わかる」 人「なんと https://t.co/p93MaxwPau という天才的アルゴリズムが反例として存在します」 私「なるほど?」 私「なるほど~~」」 / Twitter
"What The Hardware Does" is not What Your Program Does: Uninitialized Memory
research!rsc: Using Uninitialized Memory for Fun and Profit

疎行列格納形式の話 - krustf の雑記
CRS形式 - JICFuS Wiki
疎行列のデータ構造入門再び - nursの日記
大規模疎行列のデータ構造とアルゴリズムその3 - nursの日記

ハッシュ

merkle DAG

ブロックチェーン処理に特化した中国製ファイルシステム「TCFS」 - PC Watch
IPFS入門 : 新たなP2Pハイパーメディア分散プロトコル | POSTD
トランザクションデータを要約する技術「マークルツリー」
[Japanese] Patricia Tree · ethereum/wiki Wiki
暗号学的ハッシュ関数 - Wikipedia
データのバージョン管理が可能な分散データベースNomsのイントロダクション - Qiita
ipfs.key
【次世代のインターネット】IPFS(Inter Planetary File System)で遊んでみた。 : 暗号通貨って何? es's website

マークル木

Go

Kentaro Haraさんのツイート: "なかなか表舞台の話題に出てこない技術に Trillian(https://t.co/E5vOG1cgwA)というのがあって、個人的にはブロックチェーンとほぼ同等のことができて、かつブロックチェーンよりよほど将来性がある技術だと思う。オープンソースになってて、SSL認証などですでに実用化されている。"
google/trillian: Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.

Kazuho Okuさんのツイート: "公文書の記録にgitとかブロックチェインとかみたいな話を目にするけど、普通はMerkle Hash Treeを使って部分検証を可能にするんじゃないの?"
Kazuho Okuさんのツイート: "ええ。Certificate Transparencyみたいなお金にならないものでさえmerkle treeで実現できてるわけで、公文書ならハッシュチェインで良いと僕も思います… "
ハッシュ木 - Wikipedia
Merkle tree - Wikipedia
データ検証などで利用するMerkle Treeのメモ | Siguniang's Blog
トランザクションデータを要約する技術「マークルツリー」
ビットコインの技術 Merkle tree(Hash tree) プログラミングJava
ビットコインとマークルツリーとマークルパスと - とってもやさしいビットコイン
【連載】暗号通貨ってなんだろう?⑦「第五部『その他』」 – びりあるの研究ノート
ビットコインとは何か? 第2回:ビットコインの仕組み(ブロックチェーンの構造) - ビットコインの解説 | Bitcoin日本語情報サイト
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイル破壊検出用の並列ハッシュ値計算を考える。 ファイルデータを例えば256KBブロックで分割し、インターリーブ的にn本のストリームに見立てる。 ストリーム毎にハッシュ値を取り、最後にハッシュ値*nを並べてハッシュ値を取った場合、上記目的用としての品質はどの程度担保されるかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、md5やsha1記録用としては使えないので、イマイチではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "良く似たものに、merkle-treeがあり、70年代の終わりからすでに分散ハッシュ計算方法として、実績がある様子。 https://t.co/B1IiFBGWAI"
Dan Kogaiさんのツイート: "ZFSはすでにブロック破壊検出と可能ならば修復も標準でやってくれるのだけどそれとは違う?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ZFSやbtrfsでは、こちらに書いたmerkle-treeが使われているみたいですね。 https://t.co/10YzrZNOlD 元々の動機はこちらに。 https://t.co/OWW9VhcYYT… "
鯉江さんのツイート: "AES-NIつかってGCMでチェックするのが早いと言ってる人がいたのを思い出しました。 https://t.co/XC2UX2GCzW https://t.co/MdzlQ0pMOb… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、いいですね。… "
IPFSについて勉強した - mizchi's blog

khash

libgit2の内部データ構造: strmap - Qiita
attractivechaos.awardspace.com
SW-1202-2282-2063さんのツイート: "@yukihiro_matz @mirichi 参考にされたオリジナルのkhashはこれですかね? https://t.co/4X9lsJlD0c"
mrubyでkhashの使い方がまずいせいで起きる現象(putするまえにgetしてない)
klib/khash.h at master · attractivechaos/klib
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library

SipHash

SipHashについてのメモ - Qiita
SipHash - Wikipedia
SipHash: a fast short-input PRF
siphash.pdf
jedisct1/siphash-js: A Javascript implementation of SipHash-2-4
veorq/SipHash: High-speed pseudorandom function (reference code)
Change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust
SipHashとAdvanced Hash Flooding - 不意になにかを残すブログ
SipHash — Idea of the day
siphash 0.0.1 : Python Package Index
Yusuke Endohさんのツイート: "rust が案外速いと知って、じゃあなんでこのコードは遅いんだろうと今更 perf report 見てみたらハッシュ関数が半分以上占めていた。siphash は遅いんだなあしみじみ"
DSAS開発者の部屋:最近の Python-dev (2017-02)

MurmurHash3

MurmurHash3 · aappleby/smhasher Wiki

xxHash

xxhashの紹介 - KengoSawa2の技術的ななにか
Cyan4973/xxHash: Extremely fast non-cryptographic hash algorithm
xxHash - Extremely fast non-cryptographic hash algorithm
Synergy KK - 02-08Silverstack - オフロードとバックアップ -xxHash、MD5 / SHA-1チェックサム方式とMHL
使った node.js ライブラリ – xxhashjs / xxhash « Ooharabucyou
xxHash - a hash algorithm as fast as memcpy
xxhash 1.0.1 : Python Package Index
XxHash - Wikipedia
xxhash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash v0.8.1リリースされたが、I/F変更があって FastCopy 側もそこそこ対応が必要になっていた。 https://t.co/cCJeaR4tug」 / Twitter
Cyan4973/xxHash at release
ハッシュ関数 xxHash の入力を32bitに限定した場合に重複した値が出ないことを確認したい - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "ベリファイ用ハッシュ計算のデフォルトは、xxHashにしようかな…"
Kengo Sawatsuさんのツイート: "server2012<-80gbps->server2012 で、検証してみたところ ベリファイなし:3000MB/Sec(たぶんハード上限) xxhash:1500MB/Sec MD5:300MB/Sec SHA1:340MB/Sec ハッシュ計算がネックになっているので、記録用には使えないが壊れてないことは保証されるハッシュがあってもいいのかもしれませんね。(有料?)… https://t.co/ACQZ2QpC36"
Shirouzu Hiroaki(白水啓章)さんのツイート: "並列版xxhashを考えてみます(笑) 何並列に分割するか、考えてどころですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHashをストライピング的に並列処理した場合の速度実験。 (i5-8600K(6コア)、チャンクサイズ16KB、ストライプ数16) ワーカースレッド数(6)で 15.2GB/s、(4)で 12.5GB/s、(2)で 6.8GB/s、(1)で 3.5GB/s に。 待ち合わせオーバーヘッドはあるものの、使う価値はありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記実験では、1MB毎に待ち合わせした場合の値。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHash64 の速度の件、ビルドオプションを /Ob1 → /Ob2 (inline指定のinline化 → 可能な全てのinline化)で、3.7GB/s → 13.3GB/s に向上、100Gb環境でもマルチスレッド版必要なさそう。 (逆に利用側での #define XXH_INLINE_ALL は効果なし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、v3.52をリリースするかな、xxHashデフォルトに変更して。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "付記。ビルドオプションは xxHashライブラリのビルドオプションのみ変更。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MT化xxHash / オリジナルxxHashで比較実験。(i5-8600K) ハッシュ対象が6MBの場合、60GB/s / 14.3GB/s となり、1GBの場合、27GB/s / 13.4GB/s となった。 そしてMT化版は 3スレッド指定で性能上限に達する。 だいたい理由は判るが面白い。… https://t.co/9FtZC0lvuz"
xxHashメモ(VC++用Tips、MT実験)
SHIROUZU Personal Log(2018-07-08)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「知らないうちに xxHash で 128bit が定義されていたようだ。 https://t.co/NowpG61eeH ちなみに xxhashの作者はハッシュ品質テストにSMHasherを使っている様子…これが業界的にはデファクトなのかしらん? https://t.co/n6GXjFkMVK」 / Twitter
xxHash/xxh3.h at dev · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SMHasherは「ハッシュテストの DieHarder を目指している」とのこと。 https://t.co/0nOsBumaP3」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3(128bit)は、従来版より性能が高いらしいが、まだ実験版。 (10月の最新リリースでハッシュ値が変更されたが今後もありえる) https://t.co/9TkMrdl8iR」 / Twitter
Releases · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「従来の xxHash(64bit) に比べて、xxHash3 はSSE/AVX利用で性能向上が著しい(2-3倍)。 正式リリース(v0.8)になり次第、こちらをFastCopyのデフォルトにするかな。 (今もさらなる性能向上のPRが取り込まれている最中っぽい) https://t.co/n6GXjFkMVK https://t.co/DBC6a6Lx5x」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash(64bit)の並列化実験(=通常版と値が変わる)で 13GB → 60GB/sまで改善した時のメモ。(2年前) https://t.co/SCuw1ulL8S」 / Twitter
xxHashメモ(VC++用Tips、MT実験)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ようやくxxHash3 v0.80 リリースと。 (このリリース以降、128bit xxHash 値が将来リリースでも維持が保証される) https://t.co/sWDmn0hsnh」 / Twitter
Release xxHash v0.8.0 - Stable XXH3 · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3を含む、xxHash v0.80 がリリースされた、の方が正確だった。 xxHash3 は 128bit が使えるのに加えて、従来のxxHashに比べて処理性能も約1.5倍に向上。 https://t.co/K3DWI1qRVp」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、xxHashのYann Colletさんは zstd や lz4 の作者でもある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHashは x86系だけで 通常 / SSE2 / AVX2 / AVX512版 と4実装が含まれているのだが、CPU毎の最適実装への動的な切替は VC++ ではビルドできない。 (ので、自動切替を自前で用意したり) https://t.co/XBfW3qcKvj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K で 1MB * 60000 = 60GB分の xxh3(128bit) を計算するとこんな結果に。 通常: 6.0s SSE2: 3.1s AVX2: 2.4s (なお、もっと上位CPUでないとAVX512は使えないが、世評を見る限り、大して性能向上しないのではとも)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても xxh3、CoffeeLake i5 で 25GB/s 出るのは大したもの。 参考までにxxHash時代の記録。 https://t.co/SCuw1ulL8S」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は SSD RAID などで、I/O が高速化しているので、ハッシュ値計算がボトルネックになることがあるため、高速ハッシュ計算はとても大事。 (md5だと専用スレッドで計算しても間に合わない) https://t.co/A9kiB1nHKc」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu コピー時の同一性検証ならGCMみたいなMAC使った方が速かったりしません?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho xxh3は非暗号学的ハッシュなので非常に軽く、手元のi5-8600Kで25GB/s、公式サイトだと 30GB/s くらい出ているのですが、GCMでもこのくらい行くのでしたっけ…? https://t.co/GaHddSLjZL」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu あーすみませんmd5しか見てませんでした。gcmだとその条件で6GB/s程度は出ると思いますが10GB/sは行かないと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash作者のYann Colletさんに確認したところ、VC++では SSE2/AVX2/AVX512の動的切り替えは、下記のようなソース分割コードしか実現不可能という結論に。 https://t.co/qr9RCzQ5B7」 / Twitter
shirouzu/xxh3_sw

hash

kbcl0_0004 - essen-wiki
ドッグさんのツイート: "Facebook が開発した高速でメモリ効率の良いハッシュテーブル実装 F14 が Folly C++ ライブラリの一部として公開したのか.記事内では具体的な最適化の内容について解説されてる | 'Open-sourcing F14 for memory-efficient hash tables - Facebook Code' https://t.co/smzRYWwWks"
Open-sourcing F14 for memory-efficient hash tables - Facebook Code
ドッグさんのツイート: "ただし std::unordered_map とかが提供している reference stability は F14 では保証されないのか"
ドッグさんのツイート: "ハッシュ値が衝突すると衝突の解決のために普段とは違うパスを通らないといけないから CPU が分岐予測を外す → 衝突を減らすのが大事.とはいえナイーブにテーブルの初期サイズをデカくすると当然メモリ効率が悪くなる"
ドッグさんのツイート: "そこでスロットごとではなくチャンク (複数のスロットの塊) ごとにハッシュ管理して,検索時はそれぞれのチャンクをベクタ命令で並列に検索.二段構えになる分普通のハッシュテーブルより処理は多くなるけど,トータルとしては速くなる"
ドッグさんのツイート: "要素をポインタで間接的に持つ F14Node,要素を直接値で持つ F14Value,要素を配列に置いて配列で持つ F14Vector の複数のメモリレイアウトを検討して F14Value と F14Vecror のハイブリッドにしたらしい (F14Fast)"
ドッグさんのツイート: "C++ 的に頑張った点として, std::string をキーに持つテーブルは std::string_view で no copy に検索できるようになってる ,noexcept でムーブ出来ない型の要素を入れた時は [[deprecated]] で警告を出しまくる (ウケる) これは経験的に大抵 noexcept 付け忘れてるケースがほとんどのため"
汎用kumAGIさんのツイート: "大昔に作ったスライド、「あなたの知らないハッシュテーブルの世界」これslideboomってサービスに上げてたけどサービス終了したしアニメーションが入ってるせいかslideshareに上がらなかったのでとりあえずdropboxに置いて欲しい人に届くように公開。内容は古いです。 https://t.co/I1pxAshYt0"
あなたの知らないハッシュテーブルの世界.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "完璧なハッシュ関数だと、fa fb の衝突はそれ以上改善できなさそう。 ただ、fa fb に加えて、ダミー文字列mを付与して、f(a+m) f(b+m) も行って、fa+f(a+m) と fb+f(b+m) で512bit比較が許容されるなら衝突改善できそう。… https://t.co/tD9Q5F6geC"
とつげき東北⛅さんのツイート: "問題: 1/(2^256)の確率で衝突してしまう暗号学的ハッシュ関数fがある。入力に対する出力は256bitで、衝突以外は「安全」だとする。 原文としてaとbがあるとする。xをハッシュにかけたハッシュ値をfxのように書く。 f以外のハッシュ関数がない場合に、faとfbの衝突を少しでも回避する方法を考察せよ。"
とつげき東北⛅さんのツイート: "そういう意図でした。 文字列を連結した場合……と書くとヒントになりすぎるし、240文字で制限あるしで困りました。 ちなみに「完全な」ではない場合の定義も曖昧で、aと何かを連結したものと、bと同じ何かを連結したものもまた衝突するなら、解なしぽいですね。 ご回答ありがとうございます!… https://t.co/HyQpVZWfdC"

QHash

島鉄雄さんはTwitterを使っています 「古い記事だけど辞書のベンチマーク比較サイトがあった。 これ見るとQHashがやたら速いし省メモリ。 早速ソースコード見てみたら、struct Span と言うデータ構造が肝のようだ。 要するに仮想記憶の様に所々しかメモリが確保されてない巨大配列を作ってるようだ。 これは良い。 https://t.co/RM9rjQZQje」 / Twitter
Benchmark of Dictionary Structures
島鉄雄さんはTwitterを使っています 「Boost のハッシュ(unordered_map)も十分速いし省メモリだから、今は std::unordered_map を使っておけば間違いないのかもしれないけど、ソースコードを見ても何やってるか全然分からん… その点 QHash はかなり読み易い。」 / Twitter

Go

意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama|note
Kazuho Okuさんのツイート: "@rui314 ネットワーク界隈だとossificationを防ぐためのgreasingという言い方をするので、そういう単語を紹介してもいいのかなと思いました cf. https://t.co/ZNyY1AadfS"
Rui Ueyamaさんのツイート: "@kazuho そう、TCPとかだとossificationがひどいので新しいプロトコルではなるべくgreasingするようにしていて、みたいなこと書いたんですが短くするために削除してしまいました。"
Kazuho Okuさんのツイート: "@rui314 なるほどです。「グリス(を塗る)」と言ったほうがランダム化よりも良いかと思ったのですが、意図的に落とされたんですね"
Rui Ueyamaさんのツイート: "@kazuho Goのマップとかだとgreasingっていう言い方を聞いたことがないんですよねぇ。そっちから書き始めたので話の流れ的にまあこれでいっか、と。"

POSTD

私が書いた最速のハッシュテーブル – PART 1 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 2 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 3 | コンピュータサイエンス | POSTD
私が書いた最速のハッシュテーブル – PART 4 | コンピュータサイエンス | POSTD

最近のruby-core

最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2017年1月) | Money Forward Engineers' Blog

局所性鋭敏型ハッシュ

Miura HidekiさんはTwitterを使っています 「https://t.co/sHNKVNTbdU 面白いのだがよくわからない。隠れ層の重みを1bitとか2bitにしてハッシュテーブルで検索するって話なのかなー?」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
zakkiさんはTwitterを使っています 「@miura1729 理解しきれてませんが、重みの精度落とすんじゃなくて、局所性鋭敏型ハッシュでのハッシュテーブルで最近傍近似するとかなんとか https://t.co/TYiZIirw1E」 / Twitter
keroro824/HashingDeepLearning: Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
miyoxさんはTwitterを使っています 「行列計算じゃなくてハッシュテーブルを使う? https://t.co/ta2Ak7J33V 論文はこれかな https://t.co/aRlUj0b1U7」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
[1903.03129] SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems
OGAWA, TadashiさんはTwitterを使っています 「.@miyox MLSys 2020でのペーパーとスライドです "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel https://t.co/hoaRaKHv3Z Anshumali Shrivastava https://t.co/3sRRl219kU」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel, MLSys 2020 https://t.co/25sEoYoKb1 https://t.co/u2OPpgLzPY Amazon-670K 2x (22 core Xeon E5-2699A v4, 2.4 GHz): 1 H TF on V100: 3.5 H https://t.co/b7f4Rnapj2 https://t.co/1kYVn7PfWz」 / Twitter
Anshumali Shrivastava

Twitter

chokudai(高橋 直大)さんのツイート: "(x,y)を((long)x<<32)+yでエンコードするとハッシュ衝突して死ぬ、普通に知らなかった。(C#のDictionaryの内部実装の問題っぽい)"
Kazuho Okuさんのツイート: "rubyのハッシュテーブルって何か昭和な実装使ってたと思うんだけどkhashとかにしないのかな #RubyKaigi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyベリファイでは、I/O中にハッシュを並列計算することで、ハッシュ計算をI/O時間に隠蔽していた。 だが、速度向上につれて1GB/sを越えてくると、ハッシュ計算時間がI/O時間を上回るようになり、ハッシュ時間が律速要素になって来たのは、とても面白い。… https://t.co/UfkmUTUyYm"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のPythonのhash()は、起動毎に異なる値を返すらしい。 (hash値が予測可能だと、dictでDOS攻撃が可能なため) https://t.co/CSmQXCYs7B… "
security - hash function in Python 3.3 returns different results between sessions - Stack Overflow
Taku KudoさんはTwitterを使っています: 「unordered系のcontainerの実装を変えると、違う結果をはきだした。hash関数が変わると再現性がなくなるというのは本来あってはならないことだよな.. 速度的に強い制約ないのであれば、ordered なコンテナを使うほうが無難。」 / Twitter
SmoothieMap 2: the lowest memory hash table - Roman Leventov - Medium
KOMIYA AtsushiさんはTwitterを使っています: 「メモリフットプリントが小さく(1エントリあたりのヒープ使用量が小さく)て、rehash によるレイテンシの劣化がない java.util. Map の実装らしい。 “SmoothieMap 2: the lowest memory hash table ever” by Roman Leventov https://t.co/W6NJWQmVsH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AIの偉い人から「LSH(Locality-sensitive Hashing)」という単語を聞いて調べ中。 (そもそも多次元=球面集中も知らなかった) ---- 「(昔は近似検索にはハッシュは使えなかったが)Locality-sensitive Hashingという類似検索向けのハッシュ法を開発して状況は一変し…」 https://t.co/RNXGZZf6BL」 / Twitter
7_256.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「高速ハッシュ計算コマンドを作って実験したところ、xxh3 だけは SSD速度限界に。 xxh3 ... 2788.7MiB/s xxh ... 1534.8MiB/s sha1 ... 1035.4MiB/s sha512 ... 741.4MiB/s md5 ... 736.3MiB/s sha256 ... 499.1MiB/s」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(他にもハッシュ種類増やしてもいいのだけど、メジャーなのはこのくらいかな?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あれ、自分で書いておいてアレだけど、xxhの速度が遅すぎだな。コンパイルオプションを再確認しよう。 https://t.co/cIeDU2TLdf」 / Twitter
xxHashメモ(VC++用Tips、MT実験)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxh3 でしか dispatch(sse/avx等への動的切り替えルーチン)を使って無かったというオチだった。直しておこう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やはり、xxh3 だけでなく xxh も dispatch版にすることで、SSD側の速度限界に。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに高速ハッシュ計算コマンドは、次期FastCopyに添付するつもり…ただコマンドラインなので使いづらいかな?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は PCIe5 も出始めて、下記の xxh 13.3GB/s だと速度ネックが出る場面もありそう…といって、ハッシュツリーやストライピングにすると、互換性に問題出るのだよなぁ。 https://t.co/SCuw1ulL8S」 / Twitter
xxHashメモ(VC++用Tips、MT実験)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、同梱の FcHashコマンドライン(xxh/xxh3/sha1/sha256/sha512計算)は、本家の OpenSSL のそれより高速になってます。 (ディレクトリ指定で配下のファイルも一括算出も可能…いずれ MHL出力とかできると良いかな)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(たぶんこれ、ハッシュ算出ツールで最速と思ってる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、FcHashコマンドを添付したのは、opensslコマンドでは xxh/xxh3 ハッシュが算出できないため、というのも一因。 (暗号学的ハッシュ関数ではないため。ただしその高速性から、映像業界などでは広く使われてる印象ある)」 / Twitter

HKDF, HMACなどのハッシュ関数を使う場合に知っておくべきFS/PFS – yohgaki's blog
A Hash Function for Hash Table Lookup
高速ハッシュアルゴリズム | YOSBITS
八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第2回 RHG の逆襲
あなたの知らないハッシュテーブルの世界
テンプレート: Hopscotch Hashingとその他
aappleby/smhasher: Automatically exported from code.google.com/p/smhasher
luispedro/diskhash: Diskbased (persistent) hashtable
Positive Technologies - vulnerability assessment, compliance management and threat analysis solutions
leo-yuriev/t1ha: Fast Positive Hash, aka "Позитивный Хэш" - just the fastest portable hash function.
HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
Re-implementation of Lock Free Cuckoo Hashing – ScienceOpen
伊津野 英克さんはTwitterを使っています 「ハッシュ関数は速いかだけじゃなくて予測不能か(暗号に使えるか)、衝突率が低いか、DoS耐性があるか、と用途によって最適解が違うのが難しい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「DoS耐性なくてもキーが動的に変わらなかったり、キャッシュ用途であれば使用に何の問題もないし、予測不能性も外部に露出しないなら何の問題もない。遅いのと衝突率が高いのはどうにもならないけど。」 / Twitter
伊津野 英克さんはTwitterを使っています 「非暗号用途だがDoS耐性のある高速なハッシュ関数実装らしい https://t.co/Ohk0oW9IUH」 / Twitter
tkaitchuck/aHash: aHash is a non-cryptographic hashing algorithm that uses the AES hardware instruction

二分探索

DSWアルゴリズム - Wikipedia
Day–Stout–Warren algorithm - Wikipedia
高速な圧縮辞書ライブラリXcdatをリリースしました - Kampersanda's Blog
KampersandaさんはTwitterを使っています 「Lemire氏のブログを眺めてて面白かった記事。複数の二分探索を実行するとき、各ステップをインターリーブして実行すると、どうせ外れる二分探索の分岐予測よりも効率的に命令が使えて定数倍高速化するというもの。 https://t.co/H4mqcr7NOC」 / Twitter
Speeding up independent binary searches by interleaving them – Daniel Lemire's blog
Binary search with modern processors - Speaker Deck

グラフ

NyaRuRuが地球にいたころ

graph (1) - NyaRuRuが地球にいたころ
graph (2) - NyaRuRuが地球にいたころ
graph (3) - NyaRuRuが地球にいたころ
graph (4) : 身近な例 - NyaRuRuが地球にいたころ
graph (5) : クエリ式 - NyaRuRuが地球にいたころ
graph (6) : 再帰クエリ - NyaRuRuが地球にいたころ

ダイクストラ法のよくあるミスと落し方 - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ
グラフ理論の基本概念 誤用例はなしっ - 檜山正幸のキマイラ飼育記 (はてなBlog)
グラフ理論の基本概念とその誤用例 -- mixiがどうしたってぇ? - 檜山正幸のキマイラ飼育記 (はてなBlog)
大規模グラフアルゴリズムの最先端
ページランクのアルゴリズムをC++で試してみる (1/3):CodeZine(コードジン)
BDDとZDDを下から読んで再帰アルゴリズムを作る - Qiita
01-BFSのちょっと丁寧な解説 - ARMERIA
ワーシャル–フロイド法 - Wikipedia
疎行列の計算を実装してグラフ理論をかじってみる (1/3):CodeZine(コードジン)
江崎貴裕@数理モデル本発売中!さんはTwitterを使っています 「巡回セールスマン問題の最短経路長は、もしノードの位置が一様ランダムに決まると仮定すると、その領域の面積とノード数の平方根に比例する式で近似できるということが知られているらしいのだが、試しに計算してみたら思ったよりいい近似で驚いた。 https://t.co/fWc7VrJhmw」 / Twitter
数学の難問「巡回セールスマン問題」の近似解を求める最良のアルゴリズムが数十年ぶりに更新される - GIGAZINE
Shinji KonoさんはTwitterを使っています 「この種のアルゴリズムの計算量や解の質の問題は極めて難しくて手法そのものが良くわかってない。アルゴリズム自体よりも、そっちだな。 https://t.co/J2MSPl1pDE」 / Twitter
Shinji KonoさんはTwitterを使っています 「巡回セールスマンはNPハードだがNP完全ではないけど、NPの理解に計算幾何学が使えるなら面白い。きっとやっている人たくさんいるんだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに、可能な計算全てに計量を入れるような話だし」 / Twitter
閉半環を使ってグラフ上の最短距離を計算する!
κeenさんはTwitterを使っています 「Idrisだと(依存型のついた)Matrixあるし簡単じゃんと思ったらSemiRingじゃなくてRingが要求されていた…」 / Twitter
グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
kinabaさんはTwitterを使っています 「全ノードが次数k以上な最大部分グラフを探すアルゴリズム https://t.co/Dqf8bj2ImP (次数k未満のノードをまず捨てると、残ったノードの次数が減るので繰り返すと捨てられる物が増える)を思い出したけど、実際近い理屈かもしれないな。残す候補の物の集合からある程度のリンクがないと捨てられやすい」 / Twitter
Find k-cores of an undirected graph - GeeksforGeeks
Masaki HaraさんはTwitterを使っています 「整理整頓の仕方。「これは要らないな」と思ったものを捨てるとものが半分以下になるので、これをn回繰り返すと最初の(1/2)^nになる。というのは嘘にしても、何回か繰り返すとなぜか捨てられるものが増える。」 / Twitter
バネ埋め込み法を使って隣接行列からグラフを描画する
Navigable Small Worldによる近似最近傍探索 - suzuzusu日記

隣接行列

有向グラフ 隣接行列 圧縮 - Google 検索
有向グラフ 隣接行列 圧縮 意味ネットワーク - Google 検索
有向グラフ 隣接行列 意味ネットワーク - Google 検索
隣接行列 意味ネットワーク - Google 検索

map

各種マップ実装の性能比較 - mixi engineer blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonは、逆に3.7(実装では3.6)から挿入順でのイテレーションが保証されるように。 ただしハッシュ値は起動毎にランダム(コリジョン対策)」 / Twitter
mattnさんはTwitterを使っています 「そうするとユーザがそれに依存したコードを書いてしまい以降アルゴリズムを変更できなくなります。そこで Go では意図的にイテレーションの順をランダムにするようになっています。」 / Twitter

Elias-Fano encoding

Taku KudoさんはTwitterを使っています 「ソートされた整数列(転置インデックスのポジションリストとか)の圧縮に elias-fano-encoding という手法があることを知った。Quasi-succinct で、試したところ、ありがちな手製圧縮をはるかに凌駕する。 https://t.co/f32s48zQHn」 / Twitter
Sorted integers compression with Elias-Fano encoding | Antonio Mallia
Taku KudoさんはTwitterを使っています 「sentencepieceを本来の意味でのデータ圧縮につかってみた。当たり前だがうまくいく。」 / Twitter

DyFT

KampersandaさんはTwitterを使っています 「Our new paper "DyFT: a dynamic similarity search method on integer sketches" has been published in Knowledge and Information Systems Journal (as an invited paper from ICDM20) https://t.co/gaJhCiYTe2」 / Twitter
KampersandaさんはTwitterを使っています 「The SharedIt link is https://t.co/JtppgsZmx8」 / Twitter
DyFT: a dynamic similarity search method on integer sketches

トライ

404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン?
Gauche:Trie
Parallel Collections - 並行トライ - Scala Documentation
Groonga - grn_dat - 参照ロックフリーなダブル配列
ダブル配列の豆知識
ダブル配列の実装方法
人生で何度目かのダブル配列TRIEを書いた - Qiita
すごいTrie - Qiita
Rui UeyamaさんはTwitterを使っています 「TrieというとGoの標準ライブラリのここらへんでTrieを使っているけど、実はこれかなり非効率的で、DFAを使って入力に対してリニアにしか時間がかからないようにしたほうがいいはず。パッチ書くの面倒だけど。 https://t.co/kBoyU1sKyj」 / Twitter
src/strings/replace.go - The Go Programming Language

Splay木

かつっぱ@競プロYouTuberさんはTwitterを使っています 「Splay木って最近示されたDynamicOptimalityの下界を達成していたっけ(ギリしていなかったような)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「根拠のない直感なんだけど、クエリ列のエントロピーの大小とOptimalDynamicBinarySearchTreeの計算量の大小も連動するイメージがあって それとSplayTreeのおそらくほぼOptimalなところを見ると、「Splay木は偏ったケースだと早い」がなんとなくそうかもしれんなという気になる」 / Twitter
Masaki HaraさんはTwitterを使っています 「へー動的最適性って示されたんだ (名前しか知らない)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「まどろっこしい話をしたのでスーパー火消しタイム - Tarjanの動的最適性の予想はまだ示されていないはず - 最近Wilberの下界が最適っぽいかもしれない予想にProgressがあった(https://t.co/9mPFBQBoVZ) だけなのでSplay木が全然下界じゃな可能性は残っています 最近の私のツイートはイメージです」 / Twitter
Settling the relationship between Wilber's bounds for dynamic optimality

Crit-Bit Tree

404 Blog Not Found:algorithm - PATRICIA に一番似合う姓は Crit-Bit かも
高速な文字列検索 Crit-Bit Tree コンテナ(C++) - Qiita
prog_0003 - kiwi-log
Crit-bit trees
crit-bit 木 (その3) - Tociyuki::Diary

機械学習インデックス

Kazunori Satoさんのツイート: "Jeff Dean他、Learned Index Structureを発表。B-Tree比で70%の性能向上と桁違いの省メモリを実現。GPU/TPUにも載りそう。 https://t.co/Bs2WmD2io9 https://t.co/eQGGRuAB2D"
Fadisさんのツイート: "「B-Treeのインデックスは機械学習で言う回帰木であり、この部分をディープラーニングを含む他の機械学習の手法で置き換える事ができる」 その発想はなかった"
Kazuho Okuさんのツイート: "多次元への拡張やばいな。任意のクエリに対応したインデックスを自動生成できれば、もうセカンダリインデックスどうしようとか考える必要なくなる / “The Case for Learned Index Structures – Ar…” https://t.co/y2PJqeq11F"
The Case for Learned Index Structures – Arxiv Vanity
Kazuho Okuさんのツイート: "機械学習インデックスのやつ、一次元なら古典的な方法でもできそう(例えばJPEGのように頻度を階層的にDCT)な気がするけど、どうなんだろうなー"
Kazuho Okuさんのツイート: "なんというか、次元低いなら機械学習いらない気がするんだよね。あるいは、次元が低くても機械学習に優位性があるなら、同じ手法を使うことで画像の圧縮率を大幅に上げることが可能だってことになるよね"
Kazuho Okuさんのツイート: "あーインデックスだと参照速度重要だからDCTよりもNNになるのかな"
Daisuke Okanoharaさんのツイート: "@kazuho 画像の圧縮にNNを使う研究はいくつか出ててすでにJPEG は超えてて特に低レートだとかなり勝ってます。スタートアップもでてきてます。ただ、NNによる圧縮の本命は容量も大きく圧縮がすごく効くであろう動画だと思います。 https://t.co/HwddgBaZcU"
IR Reading 2019秋 論文紹介 / IR Reading 2019Fall - Speaker Deck

進化的アルゴリズム

進化的アルゴリズム - Wikipedia
進化戦略 - Wikipedia
CMA-ES - Wikipedia
乱択アルゴリズム - Wikipedia
分散共分散行列 - Wikipedia

オートマトン

Ichiro HasuoさんはTwitterを使っています 「これ,実はオートマトン理論の成果です.「Bellman operator を使うと確率的オートマトンの解析が局所的にできるよ!(動的計画法)」という基本の話に,あえて大域的な解析を上手に組み合わせることで,解析が爆速になりました.[Phalakarn・滝坂・Haas・蓮尾 CAV'20]」 / Twitter
国立情報学研究所(NII)さんはTwitterを使っています 「[ニュースリリース] 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発 ~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ https://t.co/XIfTJW9bR6」 / Twitter
意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ - 国立情報学研究所 / National Institute of Informatics
国立情報学研究所(NII)さんはTwitterを使っています 「本研究ではゴールの達成確率を最大化する戦略を精度保証しながら高速に計算する手法を開発しました。工業製品の品質確認や自動運転の制御、マーケット投資戦略の策定等、幅広い分野の意思決定を支援するシステムに応用可能で、システムが示す選択肢の正しさを保証しつつ高速に計算結果を提示できます。 https://t.co/4AZ9QHLXfB」 / Twitter

OpenVDB

FadisさんはTwitterを使っています 「OpenVDB 9.0がリリースされたらしい。9.0では新たにVDBの簡素な(C++版はheader only)実装であるNanoVDBが追加された。NanoVDBはVDBの木構造のトポロジを構築後に変更できない代わりに、多くの場合フルのOpenVDBより高速にデータにアクセスでき、更にGPU用の実装も提供される https://t.co/TFKnLntuxq」 / Twitter
OpenVDB 9.0 Released With NanoVDB GPU Support - Phoronix
FadisさんはTwitterを使っています 「OpenVDBはオープンソースで実装された空間的データ構造。疎に散らばった要素の中からある位置の近傍にある要素を高速に探したい、交差判定をしたい、といった物理シミュレーション等でよくあるタスクをハッシュと木構造をうまく組み合わせたデータ構造で効率よく行う https://t.co/ld1UfO7nhs」 / Twitter
OpenVDB

blog

Segment Tree を少し速くする - Fixstars Tech Blog /proc/cpuinfo
Segment tree - Wikipedia
DSAS開発者の部屋:最近のPython-dev(2017-09)
はてなブックマークWeb版のエントリー検索のアルゴリズムを改善しました - はてなブックマーク開発ブログ
論文メモ: Accelerated Query Processing Via Similarity Score Prediction (SIGIR 2019) - stop-the-world
論文メモ: Fast Approximate Filtering of Search Results Sorted by Attribute (SIGIR 2019) - stop-the-world
Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
文字列アルゴリズムの学びかた - Hatena Developer Blog
赤黒木による順序付き集合 - Tociyuki::Diary
赤黒木同士の非破壊 JOIN 関数 - Tociyuki::Diary
お勉強メモ:混合ベルヌーイ分布とEMアルゴリズム - Kampersanda's Blog
分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す - エムスリーテックブログ
再訪: 極大部分文字列 - Retrieva TECH BLOG
ローンチ前の Tag Suggestion 機能を機械学習で作る - Beatrust techBlog
日本語辞書ありキーワード抽出器からの多言語辞書なしキーワード抽出器の Distillation - Beatrust techBlog

スライド

実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
The first step self made full text search - Speaker Deck
Mercari Item Search: Behind The Scenes (20min) - Speaker Deck
50分で学ぶアルゴリズム / Algorithms in 50 minutes - Speaker Deck

Qiita

TDS: Transposition Table-driven Work Scheduling - Qiita
HDA*: Hash Distributed A* - Qiita
bit全探索について簡単にまとめる - Qiita
実践・最短経路問題 ~最短経路問題の見抜き方・立ち向かい方~ - Qiita
てらモス♋️さんはTwitterを使っています 「双対を幾何学的に捉える https://t.co/y5wMXc2o0J #Qiita よく知らないけど凸解析とかにつなげるんじゃないの(´・ω・`)」 / Twitter
双対を幾何学的に捉える - Qiita
アルゴリズムの世界地図 - Qiita
動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita
lotzさんはTwitterを使っています 「@lot_carnage 整数二進対数面白いですね!👀 これで完全平衡二分木の配列における要素が属する階層が求まると✍勉強になります!」 / Twitter
整数二進対数または一番左の立っているビット位置を求める関数をいくつか実装して比較する - Qiita

Twitter

島鉄雄さんのツイート: "プログラミング言語には split や split-if 等豊富に用意されているけど、split の対としての slice が無いものが多い気がする。(elisp とか…) slice は使用頻度が低いかもしれないけど、無いと一から作らないといけないから、用意しておいてほしいもんだ。… https://t.co/tBJ7fp4rSK"
takuya-aさんはTwitterを使っています: 「パフォーマンスのためにmutableなデータ構造を書く(一度確保した配列などのオブジェクトを何度も使い回して速度とメモリを稼ぐ)必要がたまにあり、そういうときは事前条件と事後条件のアサーションを思いつく限り書く。コードは冗長になるけど、逆に不変条件が明確になるのでわかりやすくなると思う」 / Twitter
kgotoさんはTwitterを使っています: 「素晴らしい。 ちなみに3進数だけでなく、任意のk進数配列を最適な領域で保存するデータ構造[Dodis+, STOC 2010]というのもあります(実装はたぶんまだない)。 https://t.co/ujr4BuSi0d」 / Twitter
かんぱさんださんはTwitterを使っています: 「{0,1,2}上の値から成る配列(Trit Array)に対する簡潔データ構造の実装を公開しました。 https://t.co/lhTsgATSH9」 / Twitter
kampersanda/succinctrits: Succinct Rank/Select Data Structures on Trits
takuya-aさんはTwitterを使っています: 「データ構造の本のなかで突然EM algorithmって出てきて???ってなったけど、データがメインメモリに載らない前提でディスクとかを使って計算するアルゴリズムはExternal memory algorithmっていうらしい。計算モデルもちゃんと定義されてる https://t.co/Ibs0p5GUkv」 / Twitter
External memory algorithm - Wikipedia
(            ​‌‍‎‏ null)さんのツイート: "Mapなどの連想配列の挿入順が保持されない、というのは昔は常識だったが、最近は多くの言語・処理系で保持されるようになってきており、逆に保持される方が常識であるように変化しつつあるのは面白い"
おーいわくんさんはTwitterを使っています: 「BERTを使って検索をより良くする話です | Understanding searches better than ever before https://t.co/P7QkslUvD9」 / Twitter
Understanding searches better than ever before
マスタケさんはTwitterを使っています: 「近傍探索の問題、実サービスで出会う問題は大抵部分集合内(,例えば同一タグで絞るとか日付で絞るとか)の近傍探索の問題に落とせるずで,実際そのほうが圧倒的に計算量が落とせるのに, 今までそういう提案はなかったという意味でこの論文は本当に好き https://t.co/y5fFf6Z3IS」 / Twitter
[1808.03969] Reconfigurable Inverted Index
takuya-aさんはTwitterを使っています: 「新着順や価格順などの属性によるソート順を維持しながらDCGなどの指標を最大化するランキングを近似誤差・時間計算量の理論保証つきで計算するアルゴリズムの論文です(オタク特有の早口)」 / Twitter
relevanceの意味・使い方・読み方 | Weblio英和辞書
takuya-aさんはTwitterを使っています: 「そもそも検索の精度というか、relevanceに対して真剣に向き合ってるサービス・会社が日本にほとんどないという」 / Twitter
takuya-aさんはTwitterを使っています: 「もちろんrelevanceだけを見ればいいわけではなく、レイテンシとかUIとかの全ての要素を含めたUXが大事なんだけど、そもそもrelevanceの問題にちゃんと取り組める、取り組んだ経験のある人が少ない」 / Twitter
takuya-aさんはTwitterを使っています: 「メモリに載らない(データの大部分はディスクにある)前提だとBkd-TreeとPH-Treeどっちが速いんだろう」 / Twitter
takuya-aさんはTwitterを使っています: 「PH-TreeはB+Treeのうえにデータを載せる実装があるので比較はできるはず https://t.co/7fgPeAKASx」 / Twitter
tzaeschke/phtree: PH-Tree
Tomoko UchidaさんはTwitterを使っています: 「2, 3 週間睡眠を削った結果,近似最近傍探索 (HNSW) のパッチができつつあります https://t.co/hRjZicENcG が,インデクシングはやっぱり遅いのと,大改造がすぎるので入るのかどうか。。。」 / Twitter
Add HNSW graph builder · mocobeta/lucene-solr-mirror@5fb9328
スマートコンさんはTwitterを使っています 「別に難しいことを知ってる必要はなく、「log n は n に比べて余程小さい」「幾つかに分割してたら log n っぽくなる」「n log n という表記があったらだいたいよさそう」「n^2 はでかい」くらいの肌感覚で良い」 / Twitter
KampersandaさんはTwitterを使っています 「弊圧縮ダブル配列辞書ライブラリxcdatを再実装して整備しました。改めて実験するとそこそこ良い性能でしたのでよければお使いください(結果の詳細はREADMEにあります) https://t.co/Tobkj5RSku https://t.co/Tu5xWcoFdx」 / Twitter
kampersanda/xcdat: Fast compressed trie dictionary library
KampersandaさんはTwitterを使っています 「弊近傍探索ライブラリあってめっちゃ嬉C https://t.co/6GpYpfb9wi」 / Twitter
kampersanda/mih-rs: Rust implementation of multi-index hashing for neighbor searches on binary codes in the Hamming space
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「N分木の探索効率について。比較回数だけをみれば、N=2のときが平均して一番効率がよいように見える。では二分木が最強か? というとそうではない。メモリアクセスのコストを無視しているからだ。実際にはこれは結構大きい。 https://t.co/WXUMeTVMp8」 / Twitter
Binary Trees are optimal… except when they’re not. | Harder, Better, Faster, Stronger

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題は1971年にSteve Cookによって提案された。あれから50年、P vs NP問題は依然として最も重要な問題のひとつである。アルゴリズムの進展により、最近ではP≠NPであってもそれなりの答えが出せるようになった。だがもしP=NPだった場合、公開鍵暗号は不可能になる。 https://t.co/wzPRQ9Po9o」 / Twitter
Fifty Years of P vs. NP and the Possibility of the Impossible | January 2022 | Communications of the ACM
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「過去60年間に、アルゴリズムの研究はどれくらい役に立ったのか? 教科書と1000本以上の論文を調査した結果、14%のアルゴリズムはオーダーが変わり (O(2^n)がO(多項式)になったりなど)、ムーアの法則によるハードウェア進化を超えて高速化された。結論: アルゴリズム研究は重要 https://t.co/VqmEimeqaD」 / Twitter
How Fast Do Algorithms Improve? | IEEE Journals & Magazine | IEEE Xplore

blog

その他

測度論 / ルベーグ積分 - 星の本棚
覚えるために学べ。GANを用いて過去に覚えたことを忘れないようにするクラス分類器 | AI-SCHOLAR
Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
DeepなFactorization Machinesの最新動向 (2018) - Gunosyデータ分析ブログ
20191109
距離学習(Metric Learning)入門から実践まで|はやぶさの技術ノート
人間が深層学習のAIを理解できないのには、理由がある:朝日新聞GLOBE+
なぜ「事実」と「意見」を区別して話せない人がいるのか。 | Books&Apps
東大情報学環大澤昇平氏の差別発言について - researchmap
JR西日本「ベンダーの提案すら理解できない素人だった」新幹線の“着雪量予測”データサイエンスコンペ開催までの「奮闘」
<8D758DC081698250816A2E626F6F6B>
motomura.dvi
Kazunori SatoさんはTwitterを使っています: 「TJOさんのすばらしい説明可能性まとめ。 "ヒトが理解できるのはいわゆる「弾力性」とか「ルールベース」が関の山であり、これを機械学習モデルに置き換えると所詮は(一般化)線形モデルもしくは決定木(回帰木)止まりになる" https://t.co/ffC8SrfKf2」 / Twitter
機械学習の説明可能性(解釈性)という迷宮 - 渋谷駅前で働くデータサイエンティストのブログ
SentencePieceについて書いてみる。 - どん底から這い上がるまでの記録
物理法則を”発見”できる機械学習モデルAI Feynman - akira - Medium
ベイズ統計・ベイズ機械学習を始めよう | AIdrops
【第一回】ねこでも分かる!いかさまグラフにはもうダマされない!! - ed-ict|授業でもっとICT活用
ポケモンを題材に因果推論を実践してみる - tepppeiのブログ
20200505
AIっていったい誰なのよ | RAD-IT21
VAEに基づくグラフの表現学習 - Sansan Builders Box
銀行での不正検知の精度向上へ 暗号のままデータ連携・機械学習ができるわけ | DG Lab Haus
2020年総まとめ  興味深い論文/記事85選|akiraTOSEI|note
2021年05月時点で自分が実践しているMLOpsの情報収集方法 | Shunya Ueta
「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記
だらだらとKotlinで色々データサイエンスの業務をやって思ったこと | by nardtree | Medium
2021年ノーベル経済学賞の簡単な紹介 | | AI tech studio

はてなブログ

JavaScript エンジニア向け: 知識ゼロから tensorflow.js で機械学習入門 - mizchi's blog
WebサービスのA/Bテストや機械学習でよく使う「確率分布」18種を解説 - paiza開発日誌
Factorization Machinesを今更読みました - EchizenBlog-Drei
識別/生成モデルの観点から見たRubin/Pearlの統計的因果推論(*既に一定の予備知識のある方向け) - Take a Risk:林岳彦の研究メモ
ワードエンベディングベクトルを使った検索アプリを作った話 - 科学と非科学の迷宮
層の定義 - tsujimotterのノートブック
確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】 - HELLO CYBERNETICS
確率を解釈する - hidekatsu-izuno 日々の記録
検定や信頼区間の前提が満たされない状況に対して,テキストはどう助言してきたか? - Tarotanのブログ
なぜ統計学では釣り鐘型の分布が使われ、物理現象では右肩下がりの分布が使われるのか - 小人さんの妄想
全てプログラミングで解決しなければならないという思い込みを捨てる - 武蔵野日記
Kaggle グランドマスターから統計学と機械学習の違いを考える - hidekatsu-izuno 日々の記録

データ

生データ使い放題?! 「日本は機械学習パラダイス」になった ― DEEP LEARNING LAB 勉強会 - Deep Insider
効率的な教師データ作成(アノテーション)のための研究サーベイ - ABEJA Arts Blog
(翻訳) データエンジニアリングの未来 - satoshihirose
実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~ - Ahogrammer
AIデータ活用コンソーシアム設立 | yasuokaの日記 | スラド

ガウス過程

ガウス過程の補助変数法をJuliaで実装、回帰結果を比較 • matsueushi
ガウス過程の補助変数法 (Inducing variable method) を理解する • matsueushi

マルコフ

マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる | 秋元@サイボウズラボ・プログラマー・ブログ
強化学習の基本:マルコフ決定過程ってなんぞ? - HELLO CYBERNETICS

モデリング

ブラックホール撮影にも使える「スパースモデリング」とは?【機械学習】 - zalgo3の逆張りブログ

推論・推定

Pythonとカーネル密度推定(KDE)について調べたまとめ - Stimulator
なぜCatboostの推論は速いの? - 簡単なレポート
ベイズ統計学に関する議論を整理する - hidekatsu-izuno 日々の記録
なぜ統計学には主義が必要なのか - hidekatsu-izuno 日々の記録
「数理科学を使えば統計の”主義”を争う必要ない」という主張について検討する | 人はやがて死ぬ
それはベイズ統計学ではなくて、言わば情報量基準主義ですよ
統計学に主義はあってもいいけど,人を説得するときに使うものじゃないという気がする - チラシの裏の落書き日記
特異学習理論 - Google 検索
情報量基準 - Google 検索
事後分布 - Google 検索
統計的仮説検定 - Google 検索
信頼区間 - Google 検索

補足

Ken McAlinnさんはTwitterを使っています 「うっすらと感じてた誤解が言語化されてたのでちょっと補足。まぁ誤解は自分の言葉足らずが原因ということで。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「1. 一番勘違いされてる点であると思うけど、だれも特異学習理論を批判していない(というか情報量基準を広中の定理で拡張してるので批判する意味がない)。批判は「情報量基準によって様々な主義の統計学が統一されはじめて学問になった」という主張である。別にこう主張するのは構わないのだが」 / Twitter
Ken McAlinnさんはTwitterを使っています 「これはメジャーな意見ではないのと同時に情報量基準が適応できない分野(時系列、因果推論、確定的データ)はいくらでもあるので「統一」と言われると困る。「はじめて学問になった」という主張も根拠がわからない(ベイズもSavageの公理系によって学問になったと主張できるし)。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「肝心なのは「情報量基準ベースに統計学を一貫して見る」というのが(定義より)主義であるという点である。これを便宜的にWベイズと呼んでいたが情報量基準主義のほうが的確に思える。 2. 何度も書いてるがデータが真の分布からiidに発生されている、というのはかなり強い仮定である。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「完璧な実験ができるなら話は別だが、ほとんどの場合この仮定は満たされていない(というか確認できない)ので「理論の保証」はあくまで利用者がどこまでリスクを許容するかの話になる。データがiidだと思うのなら理論的に保証されてるし、iidでないなら(eg時系列)保証されないので良くないモデルを選ぶ」 / Twitter
Ken McAlinnさんはTwitterを使っています 「可能性が増え、利用者としてはリスクとなる。ほとんどの場合はこれが度合いの問題なので利用者としてはリスク・リターンを考えながら評価基準を複合的に考えないといけない。ちなみに特異学習理論によって拡張されたのは扱えるモデルであってデータの種類ではないが、今後その方向に拡張できればいいと」 / Twitter
Ken McAlinnさんはTwitterを使っています 「思う(情報量基準ではないけど時系列でのモデル評価の理論は自分も書いてる)。ただ「安心して使える」ものではない。 3. 自分は予測主義なのだが、予測の良さ≠因果性なので科学とは良い予測をすることなのか因果関係をみつけることなのかはまだ議論があるので一意に「科学とはこれだ」とは言えない。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「4. ベイズの論理構成の最小限は意思決定である(というのが主観ベイズの立場)。そこから事前分布がでてきてベイズの定理がでてくるという話なのでモデル/データがなくてもベイズはできる。 5. その後のベイズ/頻度の部分は指摘すると長くなるのでパス。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「最後に言うとだれも主義を強要してない。(みんな「見方」をもってるんだから)主義を考えるとこういう解釈ができたりこういう研究ができるよって話なのであって、自分が正しいともみんな同じ意見になれとも思ってない。」 / Twitter

複素 数太郎さんはTwitterを使っています 「データはデータであって確率変数とも定数とも一切関係ないのだから「確率変数/定数を扱うこれこれの理論の計算結果がこうだから現在の設定におけるデータをここに当てはめると所望の結果と考えられるものが出る」と言えばいいのに、なぜか「データは確率変数」というIQ3みたいな言い方で表現される」 / Twitter
統計学の「主義」批判に渡辺ベイズは一切必要なく、そこには一般的な記号操作におけるリテラシーの問題しかないのではないか|複素 数太郎|note
因果推論 x 機械学習についてできることを整理してみました - Adwaysエンジニアブログ

アンチウィルス

機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介 - 脱力系日記

言語処理

チュートリアル「Janome ではじめるテキストマイニング」を GitHub & Google Colab で公開しました
文章埋め込みを用いた教師なしキーフレーズ抽出EmbedRankの実装とその評価 - Sansan Builders Box
言語処理学会の論文がぜんぶ公開されたからみんなで見ようぜ!! - 5日と20日は歌詞と遊ぼう。
言語処理学会第25回年次大会(NLP2019) 発表論文集
やぐさんのツイート: "Blog書きました。fasttextが公式で言語判定のモデルを配布しているので、それを使ってみたという話。サブワード単語埋め込みを使っていながらもモデルサイズが小さいところに、fasttextの気合いを感じます。 / fasttextを用いた言語判定 - Out-of-the-box https://t.co/p1PXd2jUIn"
fasttextを用いた言語判定 - Out-of-the-box
Elastic Common Schemaについて | Elastic
横断検索で社内情報共有を加速させる - Hatena Developer Blog
Googleの自然言語処理モデル「BERT」はインターネット上から偏見を吸収してしまうという指摘 - GIGAZINE

R の prop.test

R-Source
データ解析・マイニングとR言語
2変量の関連(2) - R on Windows
統計的分析手法あれこれ(2群間の比の差の検定)
割合の差の検定のサンプルサイズ計算 - 統計ER
カイ二乗検定と等比率検定の関係は何ですか?
[R]{stats} prop.test() : 比率の差の検定を行う関数 | Dr.Clover's Computer Clinic
比率の信頼区間
標本サイズの決め方
python - PythonRのprop.testと同様の比例検定
R の prop.test() からの信頼区間は、手の計算と SAS の結果とは異なります。

自社のデータ分析基盤をSLOを用いてデータドリブンに品質向上 - Adwaysエンジニアブログ

スライド

slideshare

機械学習モデルの判断根拠の説明
機械学習で泣かないためのコード設計
プログラミング言語として考えたTensor flow
Control as Inference (強化学習とベイズ統計)
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
[DL輪読会]Pay Attention to MLPs (gMLP)
深層学習による非滑らかな関数の推定
文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
数式を綺麗にプログラミングするコツ #spro2013
EMアルゴリズム
坂本寛さんのツイート: "この教科書はわかりずらいところがあることが世に知られているので、教科書をより分かり易く理解するための工夫があり資料としてもすぐれている。発表ももちろん上手なので聴けなかった人は残念ですね。 #nlpaperchallenge… "
ᴉɥsᴉuɐʞɐu oɹɐʇuǝʞさんのツイート: "NLP の方の最初の発表資料公開しました。 https://t.co/lOkagdoSGf あとで修正するかもしれません〜 #nlpaperchallenge"
Deep nlp 4.2-4.3_0309
takuya-aさんのツイート: "昨日のMLM KANSAIの @nyanp さんの資料が公開されたぞ!特徴量の作り方めちゃめちゃ参考になるのでぜひ / 1件のコメント https://t.co/vRvm1AWXlx “最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング” https://t.co/AUtVR9gtaY"
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
「安心な移動」のためのPOI検索
cvpaper.challengeさんはTwitterを使っています 「「Vision and Language」のメタサーベイ資料を公開しました!画像と言語の融合問題について、タスク別のサーベイ(EQA, Navigation, Retrieval, Pre-trained Model)や最新動向について説明しています。 https://t.co/ADTLX9j693」 / Twitter
Vision and Language(メタサーベイ )
cvpaper.challengeさんはTwitterを使っています 「「自己教師学習(Self-Supervised Learning)」のメタサーベイ資料を公開しました!教師がないデータに対して自ら教師を作成し学習する枠組みで、教師あり学習の代替を担うかもしれないとして最近注目を集めている技術です。トレンド、注目研究者/研究機関も含めています。 https://t.co/wgvVakgydA」 / Twitter
自己教師学習(Self-Supervised Learning)
パターン認識と機械学習入門

「確率統計-機械学習その前に-」を更新した(version 2.2) - hidekatsu-izuno 日々の記録
確率統計 - 機械学習その前に - - Speaker Deck
Argo Workflow によるMLジョブ管理 - Speaker Deck
What’s new in Elastic Stack 7.1?
検索結果の品質向上 Elasticsearch入門 - Speaker Deck
chikoskiさんのツイート: "「経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう」 https://t.co/GRxqVoJP8P 最近、オリジナルとは違う形でSemantic Webが実現されつつあるのではないか、という気持ちになっている。"
#経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう - Speaker Deck
Cloud Composer & Dataflow によるバッチETLの再構築 #data_ml_engineering / 20190719 - Speaker Deck
近似最近傍探索の最前線 - Speaker Deck
Fast Succinct Trie - Speaker Deck
takuya-aさんはTwitterを使っています: 「FSTのDAGの構築は一度Javaで書いたことあるので理解してるつもりだけど、シリアライズまわりはいいアイデアあったら盗みたい https://t.co/GDIybhEtuP」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTについてはこちらもどうぞ #Kuromoji https://t.co/6xdEyBNIZt」 / Twitter
犬でもわかる Minimal Acyclic Subsequential Transducer / Introduction to Minimal Acyclic Subsequential Transducer - Speaker Deck
takuya-aさんはTwitterを使っています: 「Lucene FSTのシリアライズのやりかた、 @moco_beta さんのおかげで完全に理解できたし、自分で作ってるFSTのライブラリで同じ方式のシリアライズを実装してみようかな」 / Twitter
#JJUG Java における乱数生成器とのつき合い方 - Speaker Deck
sigam23sp01.pdf
Target Encoding はなぜ有効なのか - Speaker Deck
ヤフーにおける機械学習検索ランキングの取り組み - Speaker Deck
niconicoの検索システム(2019年版) - Speaker Deck
hiroshiさんはTwitterを使っています: 「機械学習で用いるデータセットや学習済みモデルの著作権についてまとめられたIBIS2019での講演資料が公開されています。 STORIA法律事務所 柿沼太一 氏 「機械学習と知財・契約」 https://t.co/knum7n5yMY https://t.co/3A6nn2QQ1m」 / Twitter
機械学習と知財・契約
逆FM音源 - Speaker Deck
TFHEのための多項式乗算入門 - Speaker Deck
The Web Conference 2020 Report -多目的最適化における確率的ラベル集約- - Speaker Deck
Mathematical Optimization in 60 minutes - Speaker Deck
Trends in Deep Generative model and Self-supervised Learning at NeurIPS2019 - Speaker Deck
Trends in Deep Learning Theory at NeurIPS 2019 - Speaker Deck
Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
CyberAgent AI Labを支えるCloud実験環境 - Speaker Deck
Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理 - Speaker Deck
メルカリにおけるA/Bテスト標準化への取り組み - Speaker Deck
Increasing number of attempts ver. 2021 - Speaker Deck
しゅんけーさんはTwitterを使っています 「個人的にはコーディング面で black / flake8 / isort / mypy あたりの導入があると、完璧感ありますね(みんなが同じように綺麗なコードが書けるようになる)(はず)」 / Twitter

Qiita

最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
EMアルゴリズム徹底解説 - Qiita
自然言語処理における、Attentionの耐えられない短さ - Qiita
seq2seqで利用可能な日本語対話データセットをダウンロードするツール - Qiita
【機械学習】Google翻訳(みたいなもの)を自作してみた。 - Qiita
不均衡データを損失関数で攻略してみる - Qiita
パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語 - Qiita
Shiro Kawaiさんのツイート: "「AIは意味を理解しない」ことのすごくわかりやすい例だ https://t.co/y8OVswgGcN より正確に言うなら、「AIは与えられたデータの範囲内で通用する『意味』を見つけ出すが、その『意味』が人間の常識と一致する保証は何もない」かな。"
AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
AngluinのL*アルゴリズムと機械学習(特にRNN)への応用 - Qiita
【2020決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
__init__.py を省略してはいけない - Qiita
クックパッドを支える検索技術 「鰹」と検索して「鰹節」を表示されないようにする工夫 - ログミーTech
Taku KudoさんはTwitterを使っています 「公開ありがとうございます。1. なぜNFKDなんでしょう。2. neologd のバージョンがあったほうが再現させやすい。3.「語彙のカバー範囲」の意図が不明ですが、長いトークンが欲しいのであれば形態素解析しないほうがよい。 https://t.co/CZcuXcmRgn」 / Twitter
有馬幸介/StockmarkさんはTwitterを使っています 「BERTの軽量版とも言えるAIモデルであるALBERTについて日本語モデルを弊社エンジニアが公開しました!精度をほぼ落とさずモデルサイズが1/10ぐらいになっているので、やはり実務上は本当に使いやすい。 https://t.co/2sQ6LZ9uGu」 / Twitter
大規模日本語ビジネスニュースコーパスを学習したALBERT(MeCab+Sentencepiece利用)モデルの紹介 - Qiita
半順序でソートするためのアルゴリズムとは? - Qiita
ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita
初 LAPACK!で DGELS (QR 分解もしくは LQ 分解)による最小二乗法を実装してみた - Qiita
Linuxのかな漢字変換の興亡 - Qiita
線分の交差判定と交点特定 - Qiita
pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
深層学習のセキュリティ課題と論文まとめ - Qiita
AIと公平性(入門編) - Qiita
Taku KudoさんはTwitterを使っています 「マジレスすると v0.1.94 から manylinux2014 になっていて、pip &gt;= 19.3 が必須です。pipが古いとソースパッケージにフォールバックされローカルでビルドされます。 https://t.co/wgPoBTRvPC」 / Twitter
ubuntu にsentencepiece をインストールするときつまづいた - Qiita
FDTDで電磁界解析 - Qiita
線形代数学の基本定理 - 4つの部分空間 - Qiita
ロバストなベイズ的回帰分析のための新しい誤差分布 (理論編) - Qiita

Wikipedia

尤度関数 - Wikipedia
Likelihood function - Wikipedia

Twitter

その他

次元の削減

Yuta SuzukiさんはTwitterを使っています 「t-SNEの軸の意味を絶対聞かれるだろうと思って図を作っておいたものの、特に触れられず空振ったので供養しておきます・・・ https://t.co/UsAa2LjPcD」 / Twitter

Formulaic Expression

retrageさんはTwitterを使っています 「こういう決まりきった表現、Formulaic ExpressionというのでNLPで研究されてた覚えがある」 / Twitter
livaさんはTwitterを使っています 「英語で文章書くのが辛すぎて何時も泣きながらやってるマンなんだけど、今回試した既読論文のコーパス化は結構良かった気がする。 特定の状況を記述する際、アカデミア固有の(更に言えば分野固有の)慣用表現があるわけで、その単語の用法(主語、目的語、前置詞は何か)含めて調べるのに役立った。」 / Twitter
livaさんはTwitterを使っています 「具体的なやり方は以下の通り 読んだ論文をローカルに保存する際に、pdftotextでtext化した物をtreetaggerで形態素解析しておいて、検索時はレンマや品詞でパターンマッチさせる。 https://t.co/Cob0NckUKA」 / Twitter
livaさんはTwitterを使っています 「自然言語処理の基礎を知らないままに作ったので、今回は形態素解析までしかやってないけど、やっぱ構文解析くらい欲しいなと思ったので、その辺は落ち着いたら。」 / Twitter
livaさんはTwitterを使っています 「補足すると、別にこういうツールは世界に無限にあるだろうけど、自分用にパーソナライズされたコーパスがあるってのが大事だった、っていう話」 / Twitter

検定と評価法

Taku KudoさんはTwitterを使っています 「モデルバイアスが考慮できていないのは同意しますが、それだと、現状のテスト文+BLEUを使う限り、いかなる検定でも同じ問題が残り、ブートストラップには罪がない気がします。ブートストラップはBLEUが直接パラメトリック検定ができない理由で使われていて、それ以上でもそれ以下でもありません。」 / Twitter
𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「MTで"bootstrap resampling test"という統計的有意性を与える手法がずっと使われていますが、これはNMTの時代にはむしろ危険だと思っています。compare-mtのissueでその問題提起をしました。 https://t.co/n1lBW1qalh」 / Twitter
Consider to avoid bootstrap resampling test · Issue #126 · neulab/compare-mt
𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「これは本当にやばい(MTの研究が間違った方向に進む原因になる)と思っているので、すみませんが識者の人は何かコメントつけてくれるとありがたいです。」 / Twitter
Taku KudoさんはTwitterを使っています 「現状「システム間の翻訳性能に差がない」という帰無仮説を「システム間のBLEU値に差がない」とみなして検定をしていますが、この「みなし」が良くないということでしょうか? これが良くないということであれあば、仮説検定よりは評価法の問題な気がします。私は検定と評価法は別に考えています。」 / Twitter
𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「そのとおりです。仮説の正しくない検定を使用して正しくない結論を与えることにそれ自体が不誠実な行為であって、妥当な仮説を持つ検定がない場合場合取れる選択肢は「何もしない」以外ありません。」 / Twitter
𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「伝統的にこの分野では統計が悪用されている印象を持っています。いい加減正してほしい」 / Twitter
Taku KudoさんはTwitterを使っています 「BLEUもいい加減で批判多いし、その上に作った評価基準・検定も目くそ鼻くその認識。ただ、業界を劇的に進展させた貢献は評価されるべきで、必要悪として納得している。完璧な評価は極めて難しいかコストがかかりすぎるので、反実仮想してその価値を判断したい。」 / Twitter

熱平衡化がチューリング完全

ytakanoさんはTwitterを使っています 「熱平衡化がチューリング完全なんだろうけど、どう言う計算モデルなんだろ。て言うか、熱平衡しない物体とは一体… https://t.co/d0bi0BCodM」 / Twitter
【研究成果・プレスリリース】熱平衡化の問題は、一般的な形では解決不可能な問題であることを証明 | 学習院大学
ytakanoさんはTwitterを使っています 「これか。 https://t.co/2OLw3MmoHt」 / Twitter
Undecidability in quantum thermalization | Nature Communications
ytakanoさんはTwitterを使っています 「Universal Reversible Turing Machine. 知らない計算モデルだ。」 / Twitter
ytakanoさんはTwitterを使っています 「Reversible Computationや、Reversible Turing Machineてのがあるっぽい。 https://t.co/aSJUJKHxwL」 / Twitter
co.combinatorics - reversible Turing machines - MathOverflow
ytakanoさんはTwitterを使っています 「reversible computationはある時点の状態から、入力が計算できる感じか。」 / Twitter

連続性の仮定

™さんはTwitterを使っています 「とあるML手法を理論解析した論文に「推定したい関数が連続かどうかわからないんだから,連続性を仮定した評価は使えないのでは」みたいなコメントがついていて,どうしたものか……?」 / Twitter
™さんはTwitterを使っています 「任意のML手法って推定したい関数に適当な仮定(aka. inductive bias)を置くものじゃないんです? なんか自信なくなってきた.」 / Twitter
しましまさんはTwitterを使っています 「@tmaehara ノーフリーランチ定理があるので,学習する世界に何らかの仮定を入れないと無理かと 何を仮定したか明示するよう論旨を修正していくしかなさそうな」 / Twitter
™さんはTwitterを使っています 「@shima__shima かなりはっきりと明示してる(定理の形で書いていて,冒頭が Suppose f is continuous.)&コメントもそれは認識してるんですよねえ.それはそういうものだ,みたいなコメントを返せばいいのかしら…….」 / Twitter
しましまさんはTwitterを使っています 「@tmaehara Unrealistic という考えかもしれないので,妥当だという支持材料を足してみるとか」 / Twitter
™さんはTwitterを使っています 「@shima__shima なるほど,ありがとうございます(連続性を unrealistic と思うのは想定してなかったです……).」 / Twitter
しましまさんはTwitterを使っています 「@tmaehara しきい値で不連続はあり得るのでは?」 / Twitter
™さんはTwitterを使っています 「@shima__shima いくらでも不連続な関数は考えられるんですけど,ごく一般的な教師付き学習の設定で置く仮定としては連続性はかなり弱いものだと思っていたので(&稠密だから期待値が取れることの仮定とそんなに変わらないので),それを unrealistic とわざわざ指摘されるのはよくわからないですね…….」 / Twitter
しましまさんはTwitterを使っています 「@tmaehara それなら,それなりに誠実に答えておけば,SPCはスルーしてくれるのでは?」 / Twitter

主成分分析と因子分析の違い

Tetsuo IshikawaさんはTwitterを使っています 「主成分分析(PCA)と因子分析(FA)の違いについて、概念的な操作の方向(観測量から分散を最大化するような合成変数を作るのか、それとも観測量の背後にあると想定される潜在的な構成概念を浮かび上がらせるか)が大きい認識だったが、誤差のモデル化の差異をこんなイメージで説明するのは初めて見た」 / Twitter
Fernando RosasさんはTwitterを使っています 「The difference between PCA and factor analysis in a single picture! Key difference: how noice is modelled. (Source: https://t.co/FrOHmqOfZc) https://t.co/swLdqpRnfB」 / Twitter
pca - What are the differences between Factor Analysis and Principal Component Analysis? - Cross Validated
Tetsuo IshikawaさんはTwitterを使っています 「誤差に相関を許すかどうかをピクト化するとこんな風になるイメージ図で、分かりやすくなったような、よくよく考えるとやっぱり煙に巻かれたような。式で見て比較した方がストレートフォワードだという意見もあるかもしれない。 ともあれ、このstats.stackexchangeの解説は示唆に飛んでおり大変秀逸だ。」 / Twitter

自然の斉一性

確率

伊津野 英克さんはTwitterを使っています 「客観ベイズの立場に立つなら、頻度確率が主観確率に内包されるのは自明だろうなぁ、ていうかその方が自然に思えるけど。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 客観ベイズは(定義によるんですが)事前分布を無情報にすることですね。ここで言う客観的ベイズって主観ベイズにおける事後分布な気がします。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@kenmcalinn 本の説明に従うなら主観確率に補正(観測済みの頻度に基づく合理性)と曖昧化(無差別の原理)の制限を加えたものだと書かれていました。過去のデータを元に事前分布を設定(≠経験ベイズ)したようなものかなぁ、と思っていました。用語の使い方は気をつけないとまずそうですね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 前者と後者って相反してませんか?笑。前者は普通の主観ベイズ(合理性の定義によりそうですが)、後者は客観ベイズですね。ただ長い議論の結果、無差別の原理は無知(ignorance)を表してないし無知を事前分布で表すことはたぶん不可能って結論になりました。このへんの議論は哲学のほうが遅れてるかと。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@kenmcalinn 「合理的解釈を必ずしも選択しないことも可」ということを表現するための仕掛けだそうです。無理やりくっつけました感は否定できないですかねw 2010年くらいの文献が挙げられているので、たしかに統計学サイドの方が議論が進んでいるのかも。」 / Twitter
伊津野 英克さんはTwitterを使っています 「もはや量子論が情報に基づくものという理解がスタンダードとなった現在、確率の定義と物理世界においてなぜ再現性があるのかという話は分けたほうがいいんじゃないかなぁ。傾向性解釈は後者に引きずられてる感じ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「確率=主観確率だけど、(相対論や量子論に対するニュートン力学がそうであるように)たまたま身近な物理空間では斉一性があるが故に、特殊形としての頻度確率が便利なタイミングが多い、と理解することにしよう。」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「自然の斉一性の否定だ」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「こういうのを「発見」するための推論はアブダクションであって、以降諸事象は演繹的に見られるわけだが、「先にルールがあるからルールに沿ったものしか見つけられない」とか「多くの人がそう信じるからそうなってしまった(それ以前は違った)」という可能性は本当に無いのだろうか?」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「多分、昔からリンゴは木から落ちていただろうが、それが地球に引かれて落ちるようになった(あるいはそう見えるようになった)のは、ニュートン以降だったとしても多分誰もそうだとは気づけまい。 自然数の乗法が交換するとみんな信じたから交換するようになった、あるいは交換しない自然数が」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「「見えなくなった」のだとしても、誰もそうだとは気づけまい。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ 前半の解釈ではあくまで反例の発見に心理的な困難があるだけで、客観的には自然の斉一性を否定しませんね(ただ主観的なものと客観的なもので支配しているルールが違うだけで)。 後半の解釈は一旦は自然の斉一性を否定していますが、それでも「多くの人が信じたように振る舞う」という法則が追加された」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@sanjutsu_yu 「先にルールがあるから...」は一種の実在論者で大元の人(「我々が...」)と同じ意見であるように見えますね. 『「多くの人が信じたように振る舞う」という法則』自体は斉一的であることが可能かもしれませんが,よく言われる斉一性(実験や宇宙観測による過去の推測の正当化)自体は破ってそうですね」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ ですね 特にそのへんの仮定は「便利(というかないと何もいえない)から置いた」という意味が強いものなので、(一般に受け入れられるかはさておき)一度くらいはちゃんと懐疑してみても罰当たらないでしょうという感じがあります。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「強い自然の斉一性 「自然はある程度の規則性を持っており、誤差や時々明白な誤りはあれども現在の自然科学はそれをある程度近似している。」 弱い自然の斉一性 「自然はある程度の規則性を持っているが、それを自然科学が記述できているかはわからない。あたかもサイコロで数回同じ目が出たからグラ賽」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「だとイチャモンをつける博徒のようなものかもしれない。」」 / Twitter

永劫回帰の思想(決定論)

yamaguchishoさんはTwitterを使っています 「この方の問いはとても自然です。 答えは「イエス」でありえます。 私自身、永劫回帰の思想を知った瞬間に《これは決定論だ》と直感しました。ただし――ここからが重要だが――《なぜ永劫回帰は何かしらの決定論を含意しうるのか》を説明するのは難しい。私は十年以上説明できませんでした。(つづく)」 / Twitter
kandekさんはTwitterを使っています 「「永遠回帰(永劫回帰)」って決定論のうちのひとつなのかな?」 / Twitter
yamaguchishoさんはTwitterを使っています 「永劫回帰が何かしらの決定論を含意する理路は以下。 永劫回帰では、t1からt2の期間、t2からt3の期間、t3からt4の期、(以下同様)で完全にそっくりなこと(いわゆる質的なコピー)が生じる、と仮定します。 この場合、t1~t2期間のある時点で、t2~t3期間の任意の時点の出来事が決まっている。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「同じことはそれ以後の期間についても妥当する。かくして永劫回帰は何かしらの決定論を含意する。(Q. E. D.) 押さえるべきは、これは因果的決定論ではない、という点。むしろ、t1~t2の時点ですでに、t2~t3の時点の出来事が或る意味で「在る」、というタイプの決定論です。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「これは、永遠主義が或る意味の決定論を含意する、というのと似た理路です(永遠主義においては、未来の出来事はいまの時点で或る意味で「在る」)。そして、「決定論」という語で因果的決定論のみを理解するひとは、この理路を退けるでしょう(これは言葉づかいの問題です)。(了)」 / Twitter
yamaguchishoさんはTwitterを使っています 「先ほどの問題をさらにニーチェの設定に近づけて考察したくなった。 ニーチェ的永劫回帰の世界では、 ..., T_-2, T_-1, T_0, T_1, T_2, T_3 ... という具合に過去向きと未来向きに永遠の時間が横たわっている(T_iたちは同じ長さの時間インターバル)。 (つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「ここで、各T_iに完全にそっくりなこと(質的なコピー)が生じている、と前提する。この場合に何かしらの決定論が導出されるか。 第一に、..., T_-2, T_-1, T_0, T_1, T_2, T_3 ...がいわば「現実的無限」として全体として存在するとき、あらゆる時点の出来事は無差別的に「在る」。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この場合、永遠主義が一切を既在化し或る種の決定論を導き出すのと同じ仕方で、決定論が導出される。 第二に、先の永劫回帰の世界に真の意味の「生成」があるとする。この場合《現時点の生成へ至るために無限の時間が「経過」した》というお馴染みの目眩のする仮定を受け入れることになる。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この仮定を受け入れれば、後は単純である。この場合、任意の時間インターバルの出来事は、先立つインターバルのコピーである――それゆえ、任意の時間インターバルの任意の出来事は、前もってそのような仕方で決定されていたことになる。かくして決定論が導出される。(Q. E. D)(了)」 / Twitter

主体性

Shiro KawaiさんはTwitterを使っています 「へええ。フランスの劇場では本番前にMerde!と声を掛け合うそうな。Merde = 糞 https://t.co/1QKRUeYwfb」 / Twitter
翻訳が絶滅するとき――翻訳がすべて機械によって行われる日など永遠にやって来ない - ENGLISH JOURNAL ONLINE
Shiro KawaiさんはTwitterを使っています 「ところで文中の、機械翻訳の限界についてだけど、情報という意味では肉体の存在や社会との関わりなども(コストを度外視すれば)情報にエンコーディング可能だと思う。線が引けるとすれば、正解のない問いに答える主体として責任を取れるかどうか、という点じゃなかろうか。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「ある言葉の訳としていくつも候補の中から一つを選択するとき、訳者は自分の存在を懸けている。あらゆる表現行為に言えるんだけども。もちろん理論的なバックアップはあるけど、どこまで支えを求めるかの選択まで含めて、究極は「俺がここまで調べてこう解釈するからこうするのだ」という主体的判断。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「時にはそれが、過去の事例からみて外れ値になることもあり、そうなったらその正当性を担保するのは訳者の覚悟しかない。辞書にこうあるとか、学習データのせいだとか、人のせいにできないのだ。 機械翻訳にそういう主体性を持たせられるだろうか。」 / Twitter

統計学と科学哲学・再現性

Ken McAlinnさんはTwitterを使っています 「物理って結果がでやすい(実験とかでの再現性が高い)分野なのでその分結果のハードルが高い(eg 5σ)し、不確実性が低いので求められる統計水準も低く、同様に求められる哲学的な要求水準も低い(compatibilismで十分みたいな)。なのである見方では簡単な分野と言えると思う(数学的な難しさとかの話は別)。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「統計学って科学哲学とは切っても切り離せないんですが、物理学では統計学は使わないんでしょうか。」 / Twitter
Minaka Nobuhiro 新刊『読む・打つ・書く』発売中!さんはTwitterを使っています 「科学哲学に関する須藤靖さんの主張は,彼のホームグラウンドである “物理学” では正しい認識かもしれませんが,ワタクシのように “生物体系学” の現代史を知っている者にとってはただの偏狭な間違った認識ですね.個別科学ごとに「科学と科学哲学との関係」はそれぞれ異なるということです.」 / Twitter
Ken McAlinnさんはTwitterを使っています 「物理ではJaynesがベイズを使って物理学をやってましたね。個人的にあまり好きなスタイルではないですが。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「でも他の分野って再現性が低かったり実験ができなかったり不確実性が高いので、その分結果のハードルは低くならざる負えないし、求められる統計水準も哲学水準も必然的に高くなる。なので難しい。 物理学者が他分野に進出して失敗するのは分野特有の結果のハードルの高さと頑健性から自分たちの」 / Twitter
Ken McAlinnさんはTwitterを使っています 「やりかたの正当性を信じてるけど、それってあくまで「簡単」なケースにしか適応できなくて「難しい」問題に当たると(当たり前だけど)うまくいかない。でうまくいかないとその分野(というか物理以外を)科学じゃないとか統計学はいらないとか科学哲学は無駄とか言う。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「でもそれって「我々はそんな難しい問題を考えなくていい分野にいるんですよ」って言ってるにすぎないと思う。それに対しては「それはよかったっすね、うちは難しいんで(統計とか哲学とか)必要なんですよ」としか言えないんで、「科学では〜」とか「科学者は〜」とか一般化しないでもらいたい笑。」 / Twitter
Toshiaki KOUNOさんはTwitterを使っています 「@kenmcalinn むしろ物理や化学の方が例外的に再現性が高いんですよね。でも、そちらの方が普通だと勘違いしている人が多い。物理現象でも地震みたいに再現性があるのか疑わしい現象もありますよね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@tkounoeconomist そのとおりですね。ある種のセレクションバイアスだと思います。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「まぁ実験とか観測とかで統計学は使うと思うんですが(加速器とか天体物理とか)、そもそも複数の仮説がある状況が物理では何回もあったと思うんですが、それが取捨選択されてくプロセスはベイズなんですよね。結果が明らかな(不確実性が少ない)場合はそのプロセスが単純化されるってだけだと思います。」 / Twitter
科学哲学たん/敷衍 真理さんはTwitterを使っています 「統計力学というものは物理科では必修レベルですが、科学哲学に出てくるような統計学観とはほど遠い扱いをされている実感です。(真に統計学と呼べる手法を使っているのは物理でもごく一部?)」 / Twitter
伊津野 英克さんはTwitterを使っています 「伊勢田先生の書評読んで「えっ、確率の哲学における頻度論と統計学の頻度論って別物なの?」という驚き。科学哲学わけわからなすぎw」 / Twitter
Daily Life:大塚淳『統計学を哲学する』を読む
Jun OtsukaさんはTwitterを使っています 「「信頼区間は確率か否か」問題、やはり確率の定義(意味論)の問題だと思うのですよね。「区間が真値を含む」ということの確からしさという主観解釈的な意味での確率ではないけど、「推定を繰り返したときに含む割合」という頻度主義的な意味では確率と言える、というか言うべきなはず。」 / Twitter

哲学的思慮

Ken McAlinnさんはTwitterを使っています 「特に昨今の再現性問題などを考えるにそういう哲学的思慮は大事だと思いますよ。つい最近もこういうディベートがありましたし、それを「宗教戦争」だって矮小化すると本質を捉えられずインパクト0の研究をすることになるのでは。いやもうそうだけど。 https://t.co/sD9fnKmF74」 / Twitter
Statisticians Debate Issues Central to Inference and Estimation | National Institute of Statistical Sciences
Ken McAlinnさんはTwitterを使っています 「インパクト0はクロムウェルの法に反してましたね。エプシロンに訂正します。」 / Twitter

相関係数

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい相関係数の提案。ピアソンの相関係数と同程度の簡単なアルゴリズムにもかかわらず、従来手法では補足できなかった相関も検出できる。実際のアルゴリズムは論文の 式(1.1) で示されているとおり、非常に単純。https://t.co/bUBiByciDm」 / Twitter
[1909.10140] A new coefficient of correlation
adad8mさんはTwitterを使っています 「Graphical comparison between the standard (linear) #correlation and the Chatterjee's "rank correlation" recently introduced in https://t.co/xJIg336UGL #statistics #probability @johnleibniz @_bakshay https://t.co/BWCeIZIECR」 / Twitter
Preetum NakkiranさんはTwitterを使っています 「Very clean idea / paper! https://t.co/IVrl1WnwpD」 / Twitter
Akshay BalsubramaniさんはTwitterを使っています 「@PreetumNakkiran Chatterjee's correlation coefficient for 1D RVs https://t.co/KKTVggNwja behaves nicely and has wonderful relationships to copula measures, HSIC, etc」 / Twitter

DAG

Ken McAlinnさんはTwitterを使っています 「正直DAGが次のp値になりそうな感じがして危ういかなって思った。」 / Twitter
oosugi naoyaさんはTwitterを使っています 「今起きている革命、「因果革命」とは [statistics] on #Qiita https://t.co/erwQLLyA9t」 / Twitter
今起きている革命、「因果革命」とは - Qiita
Ken McAlinnさんはTwitterを使っています 「ざっと読んだ感じ「ベイジアンネットワークや統計的因果推論の考案者であるJudea Pearl」は事実誤認だし、「因果ダイアグラムと名付けた有向非循環グラフを導入することで調整すべきか否かを決定できるわかりやすい方法を提案しました」も結構ニュアンス違う。あとDAGで観測データと意思決定は無理。」 / Twitter
oosugi naoyaさんはTwitterを使っています 「@kenmcalinn ご指摘ありがとうございます!事実誤認とニュアンス違いの件は自分の方で再度勉強・調査できるので行いますが、「DAGで観測データと意思決定は無理」の意味を捉えきれなかったのでお手数ですが補足・解説いただけると助かります」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ごちゃごちゃした現実上の観測データとかビジネスにおける意思決定には向いてないです。簡単な例だとxyzと変数がある状況でDAGを指定しても現実ではabcと無限に変数があるしその指定したDAGが正しいとは限らないのでうまくいかない可能性があります。特に経済データだとそうですね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya これとか参考になるかもしれません:https://t.co/YEwOuNYc5P」 / Twitter
1907.07271.pdf
arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/1PgWiToUKQ」 / Twitter
[1907.07271] Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics
oosugi naoyaさんはTwitterを使っています 「@kenmcalinn なるほど!ギャップの正体がわかった気がします。私が暗黙的に自社のWebサービスの分析(自分の実務)にかなり引っ張られ、まさに「クローズドで操作しやすい状況」に認識が引きずられていました。共有された文献は目を通しきれていませんが(4章あたりですよね?)確かに経済データでは難しそう」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ちなみにA/Bテストでも実は対象にネットワーク構造があるとうまくいかない時があって、同僚が研究してます(https://t.co/YCByyOgq3v)。もちろんこれもネットワーク構造がわかる強い仮定があるのですが笑。」 / Twitter
1705.05752.pdf
arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/v1JegxcxGu」 / Twitter
[1705.05752] Limitations of design-based causal inference and A/B testing under arbitrary and network interference
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
Ken McAlinnさんはTwitterを使っています 「Pearlの書いたことの受け売りだと思うんだけど、統計/経済だとRubin流が主流で、それなのはやっぱりそれなりの理由があるんですよ。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「前もやりとりあったけど、DAGをあくまで「仮定の可視化」と捉えるべきところを「因果関係が分かる方法」まで解釈すると今後DAGを指定さえすれば因果関係がわかるのでこれが因果ですっていう人が大量にでてきてものすごくめんどいことになりそう。」 / Twitter

因果関係

くまだ総研(久萬田巌)さんはTwitterを使っています 「因果推論の話が話題ですが、個人的には語感の問題か因果推論=統計的因果推論みたいな使われかたをちょくちょくしているのがあまりよろしくない気がしますね(日本語だけ?)例えばDAGなどで定義されてる因果関係は、日常的な用法や科学哲学で議論される因果関係よりかなり狭い定義という理解なので。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「この辺りの因果概念に関しては松王先生の「科学哲学からのメッセージ」が非常に詳しいです」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「あとはいつものことながら、因果関係なるものにおいても、発見の文脈と正当化の文脈は違いますよ、ということかなと思います。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「そもそもわれわれ人間は因果関係なるもののこれや!という明確かつ包括的な定義をまだ持っていないという点は知っておいて損はない気がします。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「(メチャ良い本なので売れてほしい) 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 https://t.co/VPtjqMch3Z」 / Twitter
科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 | 政浩, 松王 |本 | 通販 | Amazon
くまだ総研(久萬田巌)さんはTwitterを使っています 「あ、こちら誤解を招きかねない表現になってしまっていますが、恐らく話題の出所と思われるoosugiさんが書かれている元記事がそうという話ではなく、あくまで界隈での一般的な用法の話です。(記事の内容は知らないことばかりなので、大変ありがたいです。しっかり読んで勉強したいです)」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「(誤)ちょくちょくしているのが (正)ちょくちょく(界隈で)されているのが」 / Twitter
伊津野 英克さんはTwitterを使っています 「ランダムに生成した系列がたまたま因果関係があるように見えてしまうことが否定できない以上、プロセスを無視して機械的手続きだけで因果関係を確定することが無理なのは自明な気が。」 / Twitter

統計的因果推論

須山敦志 Suyama AtsushiさんはTwitterを使っています 「非常に参考になります。因果推論も仮定の明確化が超重要ですね。 https://t.co/nBwE2etUvL https://t.co/71buObKlVM」 / Twitter
統計的因果推論入門の講義資料を公開しました - Unboundedly
統計学における因果推論(ルービンの因果モデル) – 医療政策学×医療経済学
心理学における因果推論(キャンベル) – 医療政策学×医療経済学
伊津野 英克さんはTwitterを使っています 「結局、因果推論って、よくわかんないや。「重回帰分析で因果関係がわかる」と「ベイズ推定 or ベイズネットで因果関係がわかる」と「統計的因果推論で因果関係がわかる」の違いが何なのかよくわからん。グレンジャー因果が因果のサブセットしか扱っていないのはわかるけど。」 / Twitter
uncorrelatedさんはTwitterを使っています 「重回帰分析で因果効果が測定できる条件を考えて、統計的因果推論をその条件を満たした推定だと整理するとよいと思います。大久保 (2019)「因果推論の道具箱」が分かりやすかったです:https://t.co/cJkljIfa6E 矢印の向きを考える因果探索は、追いかけていないので分かりません('-' )\(--;)BAKI」 / Twitter
因果推論の道具箱
伊津野 英克さんはTwitterを使っています 「@uncorrelated まさにその資料を読みながらわからんなぁ、と思ってたのでw 因果推論が因果のサブセットを扱ってるとして、じゃあ従来の手法は何を扱ってるのかな、と。時間的前後関係が足りない?」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きをどれぐらい客観的(≒他人に説得的)に仮定できるかでしょう。RCTや自然実験だとx→yの因果は明確に仮定できますよね。PSMなどマッチングだと、マッチングによってy→xへの因果が無くなっていると考える事ができるので、x→yの因果しかないと仮定できます。TSL/IVであれば、」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno y→zにならないzを探すことで、y→xに邪魔されないように、z→x'→yと因果の向きを揃えます。他にもありますが、まぁ、それぞれ仮定があるので、説得できるかはケースバイケースですが、因果の向きを定めて考えて問題の無い推定モデルぐらいに捉えてよいと思います。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@uncorrelated 因果関係の三原則というものがあるそうです。これが科哲的にどこまで正しいものかはわからないですが、2の共変性はどの方法も考慮してそうです。3の交絡と1の時間的前後関係をどう担保するかという違いなのかもですね。 https://t.co/gL4NHCjHeN」 / Twitter
因果関係を支える三つの基本的原則 - アイデアの散策
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno xₜ₋₁→yₜの仮定を、予測を考える経済学だと許してもらえないときがありますが、それはさておき、重回帰分析一般だとy→xがあると数理的に推定量がおかしくなりますし、z→x; z→yでzが観測できない場合は単なる相関と言う事になります。」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きx→yを仮定できないときに、何とかx→yを仮定する方法/y→xの影響を制御する方法(e.g. SCM, DID)と言った方が良いかもです。」 / Twitter
伊津野 英克さんはTwitterを使っています 「因果推論、ようは今まで記述でしか表現できなかった因果性に関する仮定をシステマティックに表現し検証できるようにするするためのフレームワーク郡って感じ?」 / Twitter
伊津野 英克さんはTwitterを使っています 「どちらかと言うと実験計画のための手法なのかなぁ、と。」 / Twitter
伊津野 英克さんはTwitterを使っています 「現代哲学のキーポイント 因果性などを読んだ結論としては、科哲として因果性が何か結論は出ていないが因果推論は因果性のサブセットを扱っているから、その範囲では大丈夫、ということのように感じる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「Pearl 流、Rubin 流因果推論のベースとなる介入主義は因果性とは何かという科哲的な興味の解明には全く役に立たないが、実用上問題のないレベルで因果性を表現できるようなので安心して利用できる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「Pearl 流因果推論(DAG)が一番包括的だが、原因が出揃ろう必要がある。Rubin 流因果推論は適用できるパターンが限られるものの、これで因果性があることがわかれば、因果性があるとみなして良いようだ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「ベイジアンネットワークは、Pearl流、Rubin流とは異なる確率上昇説に基づく理論だが、必ずしも因果関係を明らかにできず疑似相関の問題を解決できていないようだ。DAGと組み合わせて使うのがよさそうではある。」 / Twitter
伊津野 英克さんはTwitterを使っています 「DAG と書くと誤解を招くか。バックドア基準と書く方がよさそう。」 / Twitter
伊津野 英克さんはTwitterを使っています 「もしかして、ベイジアンネットワークと Pearl 流因果推論って同じものを指してる?」 / Twitter
伊津野 英克さんはTwitterを使っています 「科学哲学と統計学で概念が入れ子になってるからややこしい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「結局、因果性を保証しているのはベイジアンネットワークじゃなくてバックドア基準なんだな。」 / Twitter
ミルの3条件(因果関係の存在を主張する根拠) | Dr.Clover’s Computer Clinic
因果推論とは何なのか - hidekatsu-izuno 日々の記録
グラフィカルモデルに基づく因果探索手法の調査 - Fire Engine
機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想 - Fire Engine
協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPの理論と実装のまとめ - Fire Engine
機械学習の予測を解釈するKernel SHAPの高速性と拡張性の向上を目指したライブラリを開発した - Fire Engine
時系列性を考慮した因果探索手法VAR-LiNGAMの紹介|Dentsu Digital Tech Blog|note
伊津野 英克さんはTwitterを使っています 「因果探索手法で経済モデルが出来上がると思いはもちろんしないんだけど、理論モデルと現実のデータから作られたモデルでどこが同じでどこが違うのかは見てみたい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「説明、予測、因果効果、という区分けはよくわからないなぁ。説明と因果効果は目的は同じで適用できる範囲の差しかないように思える。記述に至ってはさっぱりわからん。」 / Twitter
伊津野 英克さんはTwitterを使っています 「これ読む限り、対比するような話じゃなく見えるけどなぁ。 https://t.co/lWzvbrmdOw」 / Twitter
「記述」と「説明」との差 : 最前線に立ち続ける覚悟はあるか
因果推論における未観測の共変量の影響を考える感度分析 - 名前はまだない

匿名化は安全ではない

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人情報を「匿名化」して安全に利用できるという考えは神話にすぎない。たとえ本名だけ消しても、それ以外のほぼすべての情報 (住所、GPSログ、検索履歴など) は復元可能である。にもかかわらず「匿名化すればプライバシーは保護できる」という危険な考え方が広まっている。 https://t.co/XYruPUpwuB」 / Twitter
Big Data May Not Know Your Name. But It Knows Everything Else | WIRED

茂木 健一郎

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たしかにダメダメな印象(笑) ニューラルネット基礎の「逆誤差伝播」の回路すら脳に見つからない状態だったはず。 (また最強の碁や将棋は、棋士の棋譜を使わず、自己対戦のみで最強に) https://t.co/jNzNTwRNAl」 / Twitter
タクラミックスさんはTwitterを使っています: 「茂木健一郎氏が人工知能や深層学習を十分に理解しているとは疑わしい記事。確かにある程度まで人工知能による英語翻訳は飛躍的に進んだが、それでも明らかに人間未満だ。決定的に欠けている部分を軽視して英語学習に安易に応用するのは疑問> 人工知能から学ぶ「英語学習法」https://t.co/EXvv2b6NqW」 / Twitter
人工知能から学ぶ「英語学習法」 | PRESIDENT Online(プレジデントオンライン)
タクラミックスさんはTwitterを使っています: 「…最も重大な疑問点はこの部分。 「人工知能が実行している学習法は、すべて、人間の脳がやっていることである。」 と茂木氏は断じているが、私が知る限り、人工知能は人間の脳がやっているであろうことを真似てはいるが、脳の仕組みを確実に解明した上での事ではない状態だった筈。私の認識不足か?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…私の懸念は、深層学習が機械翻訳の精度を向上させたと言っても、必要な学習量や学習に必要な演算量は人間の能力を超える膨大なもので、同じ事を人間に適用するのは無理があるという事。人間にとって効率の良い学習法をこそ採用すべきなのに人工知能ブームに乗って世間を惑わせるだけにならないか?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…「人工知能は人間の脳では出来ない事をやっている」というのが私の認識だ。人間の脳がやっている通りの事をしなくても、結果は出せるというのが、今流行っている人工知能界隈のやっている事だと理解している。よって、人間が学習する際に、深層学習と同じ手法を用いるのは無理があると私は思う。」 / Twitter
タクラミックスさんはTwitterを使っています: 「…反復学習の効果については人工知能以前から人間の学習成果として確認されている。茂木氏が人工知能分野の深層学習に中途半端に言及した上で 「人間が人工知能に学ぶ日が来るとは思わなかったが、時代は変わった。」 とお書きになるというのは、脳科学分野の著名人の一人として、いかがなものかと思う」 / Twitter

答えを知っている人は滅多にいない

伊津野 英克さんはTwitterを使っています 「古市さんが「GoTo批判にはエビデンスがない」と批判してたけど、ベイズ会計のエントリ書いてて気づいたのは、十分なデータがないなら、より妥当な事前分布が置かれてるかが重要ということ。エビデンス無くても西浦さんの見解を支持するのが科学的な態度だよ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「統計はマウント取る人はいっぱいいるが、答えを知ってる人は滅多にいないので、生半可な知識でもいいので公開してフィードバックを得たほうがいいと思う。」 / Twitter
伊津野 英克さんはTwitterを使っています 「結局、プロジェクト管理手法も統計も銀の弾丸はないので、用法用量に従って正しく使う必要があるのだが、支持者は得てして万能薬のように語るので間違いが起こる、とw」 / Twitter
伊津野 英克さんはTwitterを使っています 「データがあるときにどんな順番で手法を適用すればいいのかというフローチャートがほしい。」 / Twitter

文法

kinabaさんはTwitterを使っています 「そもそも完全なる門外漢的アレですが個人的に自然言語が文脈自由以上とは思えない(正規言語のstate complexityの差として複雑さを捉えた方がいいと思う)派なのでlinearizationされた形で扱うのとても自然に思える」 / Twitter
kinabaさんはTwitterを使っています 「これについて考えていることをdumpしておくと、自然言語を文法で表すとして、どう表現すると(1)人間にわかりやすいか(2)様々な機械的処理が実装しやすいか(3)人体による実装を巧く説明しているか、等々色々な見方があって多角的に見るべきもので一つの正解があるものではないと思う」 / Twitter
kinabaさんはTwitterを使っています 「とした上で、Joshiの弱文脈依存文法 https://t.co/mddnuZIwZH 的な話にめっちゃ違和感があって、まったく自分の身体的な直感としてでしかないが、人体は線形オーダを超える構文解析はしてないので、どうせ近似的にしか実装されていない強い文法機能を考える際に多項式時間という制約に意味あるのかとか」 / Twitter
Mildly context-sensitive grammar formalism - Wikipedia
kinabaさんはTwitterを使っています 「一方それでは任意深さのネストは非文だから正規言語と主張するなら、任意に長い文もないから全て有限言語って話になる、という反論については、やはりこちらも人体そうなっていない気がする(巨大な有限集合を全部記憶するのでなく小数のルールを回している気がするしI'm(very)*happyとか相当に文だろ」 / Twitter
kinabaさんはTwitterを使っています 「それで自分に違和感がない範囲としての正規言語なんですが、あんまり無茶苦茶な文法構造が無いというのは、オートマトンの状態数が増えすぎない構造が自然に現れやすいという話に言い換えられないかというのが元の発言で、https://t.co/a42nzprvl5 とか、あー状態数減るなーみたいな。」 / Twitter
Adjectives: order - English Grammar Today - Cambridge Dictionary
kinabaさんはTwitterを使っています 「ただstate complexityを持ち出したのはそれくらいしか正規言語内の階層構造思いつかなかったからで、現象のあまり良い定式化ではない気もする。文脈自由文法+α で表すというのは人類が"文法構造"を"理解"しようとするにはあまりに妥当な道具立てなので、理論的支柱はそうあるべきだとも思う。」 / Twitter
kinabaさんはTwitterを使っています 「というわけで、文脈自由文法+αの文法達をその間の階層構造を保ったまま正規言語の中に埋め込むような操作を考えて、上位の文法で成り立つ現象を正規言語の内部階層へとtransferできるような埋め込みとかで説明できたりしないものかなあみたいなことを考えていた。」 / Twitter

cognicull.com

kakiraちゃんさんはTwitterを使っています 「え すごい数学解説サイト見つけてしまった。 数学の勉強時によく起こる下の現象をなんとかすることができてしまいそう https://t.co/jlpxmG018F https://t.co/NrVhkAdboI」 / Twitter
コグニカル
kakiraちゃんさんはTwitterを使っています 「数学、原理的には、わからない概念の定義元を見る、その定義にわからない概念があればその定義元を見る、って感じに再帰的に探索していけばいつか分かる、というのは分かるんだけど、人なので探索木の深さが3以上になると途端にしんどくなって理解を諦めてしまう」 / Twitter
kakiraちゃんさんはTwitterを使っています 「1記事には1つのキーワードについて解説されていて、そのキーワードを説明するのに必要なキーワードを子とするような「木」がビジュアライズされて表示されている。 すべての記事について、依存関係が明示されているから、分からなかったらその元をたどれば良い。 https://t.co/TOeamMq1u9」 / Twitter
kakiraちゃんさんはTwitterを使っています 「子ノードをクリックすることで、別の記事に飛ぶことができるが、最初にアクセスした親ノードはそのままで、子のノードだけが展開されて、ページの内容だけすり替わるようになっている。「深く掘って調べてきたのは良いけど、どこまで調べたんだっけ・・・???」という現象を起こりにくくできる。 https://t.co/G8xHAN4UqV」 / Twitter
kakiraちゃんさんはTwitterを使っています 「分かっているノードは画面左上ハサミで切り取ることができて、木の表示をシンプルにすることができる。単純に見やすくなるし、基本的に木が複雑になると理解を諦めてしまいがちなので、モチベ向上に繋がりそう。 https://t.co/s2dz4HcIkf」 / Twitter
kakiraちゃんさんはTwitterを使っています 「この木を逆に見ると、ある概念が支えている概念が分かるから、「これ何の役に立つの???」という問いかけへの解にもなってるのか。。。強すぎる。。。」 / Twitter

物理と機械学習の相性

ogiwaraさんはTwitterを使っています 「ところでF=maが成り立つ、って証明はどこにもないよね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱ物理における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「@designpatterngf 多くの自然現象がニュートンの運動の三法則で説明できることが立派な証明と思います(が、演繹的な証明はないよね、という意図ですよね?) なんか、そーゆの、物理と機械学習の相性はとても良いと思うんです。」 / Twitter

数理最適化

UmeponさんはTwitterを使っています 「先日の白金鉱業.FMで「数理最適化では機械学習のような過学習のような問題はないんですか?」と質問されて、今まで強く意識していなかったなあと気付かされました。」 / Twitter
UmeponさんはTwitterを使っています 「もともと数理最適化では、任意の入力データに対して解の最適性と最悪計算時間を理論的に保証するようにアルゴリズムを設計・開発するので、そういう問題を議論する文化がなかったんだろうなあと。」 / Twitter
UmeponさんはTwitterを使っています 「ところが、現実問題の多くがNP困難な組合せ最適化問題で、アルゴリズムの出力する解の最適性や最悪計算時間が理論的に保証できなくなり、そういうことと向き合う必要が生じてる。」 / Twitter
UmeponさんはTwitterを使っています 「代表的な組合せ最適化問題では、ベンチマーク問題集というべきデータセットが公開されて、それらの問題例に対するパフォーマンスで開発したアルゴリズムが評価されてるけど、それって機械学習における過学習と同じ問題が生じてるのは本当にそう。」 / Twitter
UmeponさんはTwitterを使っています 「最近の組合せ最適化のコンペティションでは、出題時に配布するデータと評価時に使うデータを分けて、後者をシークレットにしてるし、数理最適化の論文に数値実験の結果を掲載する際にも、そういう手続きは必要かなと思う。」 / Twitter
UmeponさんはTwitterを使っています 「トークでは、入力データの不確実性という観点からロバスト最適化の話題に触れましたが、こういう観点もあったなあと思い出した次第です。」 / Twitter
tdual(ティーデュアル)@MatrixFlowさんはTwitterを使っています 「そうなんだよな。 「人間が上手に定式化できる」場合って結構あるんだよな。なのにそれでも強引に機械学習を使おうとする現場。」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています 「機械学習って要するに定式化の雑さをデータ量でゴリ押すことで汎用性を高めたタイプの数理最適化だと思っているので(あちこちから刺されそう)、「データが少ない」「人間が上手に定式化できる」という条件下なら普通に数理最適化すれば良いのかなと」 / Twitter

組合せ最適化

がぶさんはTwitterを使っています 「社内で話題 https://t.co/iOowCTeeQk 組み合わせ最適化→組合せ最適化がいいよって話 https://t.co/tAVUBTy7g6」 / Twitter
電通、エー・スター・クォンタムと業務提携 - ニュースリリース一覧 - ニュース - 電通
「組合せ最適化」と「組み合わせ最適化」のどちらが正しい? - Togetter
がぶさんはTwitterを使っています 「「組み合わせ最適化」って検索するとことごとく「組合せ最適化」ってでるの面白い https://t.co/564fD161lQ」 / Twitter
組み合わせ最適化 - Google 検索

関数解析的資料

逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「まだ出版会社とか決まってませんがgithubあたりで順次公開したら見に来てくれる人よかったらふぁぼください ふぁぼ多ければ公開します」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「私が機械学習の入門書出せたら 初手でヒルベルト空間を仮説空間として導入して、汎関数で損失関数を定義し、フレシェ微分で勾配法を定義する。 実アルゴリズムはこれの特別な場合です。 数学科学部レベルの解析学を履修した人にはさいっこうにわかりやすい機械学習の入門資料」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「ニューラルネットもSVMもResNetも、ぜーーんぶ積分表現理論とかの無限次元の連続理論を先に持ってきて、実際のアルゴリズムはすべてその離散化として定義する」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「機械学習始めた頃、多くの書籍の数学的な雑さに戦いた。 今はもちろんだいぶ機械学習のことがわかってるから、雑な資料でも忖度して読めるけど、今後機械学習始める数学徒があんな無駄な努力する必要はないです。 初手から関数解析的な資料でやった方がいいに決まってる」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「「一般的な機械学習入門書」はこのレポジトリで公開となります。今(2020/10/11現在)は序文しか書いてませんが、これを更新する形でどんどん作り上げていく所存。 https://t.co/yNkutk6PwL リンクミスったので再掲」 / Twitter
Runnrairu/Machine-Learning-text: 一般的な機械学習入門
takuya kuboさんはTwitterを使っています 「@ranoiaru 解析学の方なのですね。情報幾何は(本当はちょっと違うけど)統計モデル上の微分幾何で、双対アファイン接続(接続のなかで計量によって結ばれる対のアファイン接続)がわかってしまえば、かなり素直な話だと思います。 輸送解析も楽しみです。頑張ってください。」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「@bocchi_talks 専門はSDEです」 / Twitter

次元

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
七誌さんはTwitterを使っています 「イメージを式で表すことを試みる。 n次元の擬ベクトルはn-1本のベクトルの外積で構成される。 例えば5次元では v₁∧v₂∧v₃∧v₄=⋆v₅ となり、左辺が張る部分空間に次元を落とすことを繰り返して、2次元まで落とす。 v₁∧v₂∧v₃=⋆v₄ v₁∧v₂=⋆v₃ そもそもv₁∧v₂だけで表せるけど…」 / Twitter

テンソル

Shinji KonoさんはTwitterを使っています 「ベクトルとテンソルの「変換」は、実態は一つ。変換されてるのは座標系に対する表現。それが理解できれば変換は自然に見えてくるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「では実態は何かというと位置と線形変換。なので、座標変換自体もテンソルなので、なれないと混乱する。計量テンソル。」 / Twitter
Shinji KonoさんはTwitterを使っています 「行列とテンソルの違いは、行列は表現のことだが、テンソルは線形変換という意味を持ってるってこと。テンソルの行列表現とかそんな感じ。」 / Twitter

機械可読自然言語

ロボ太さんはTwitterを使っています 「日本語みたいな自然言語を、プログラミング言語と同じレベルで機械可読になるように言語仕様を定めることができたらうれしいかなぁ。日本語っぽいプログラミング言語ではなく、プログラミング言語っぽい日本語って意味で。例えば複数の意味に取れる文章は文法エラーになる、みたいな。」 / Twitter
ロボ太さんはTwitterを使っています 「昔、AIに協力しながら何かをさせるタスクを与え、自由に通信させてたら、そのうち「共通言語」を作り出していった、みたいな研究みた気がするけど、そうしてできた「人工自然言語」は、機械可読性が良くなるのかなぁ。それとも曖昧性が残るのかしら。」 / Twitter
uint256_tさんはTwitterを使っています 「@kaityo256 https://t.co/CIMggdv9oD これでしょうか」 / Twitter
1706.05125.pdf
ロボ太さんはTwitterを使っています 「@uint256_t 僕が見たのは10年以上前、教師なし学習で人工言語を作る試みだった気がします。でもこの論文も面白そうですね。」 / Twitter

テスト

Shuhei FujiwaraさんはTwitterを使っています: 「機械学習、「大量にテストケースを用意すると、それなりにそのテストを通過する関数を自動生成できるやつ」で大体のエンジニアに伝わると思うんだけどどうなんだろ」 / Twitter
そすうぽよさんはTwitterを使っています: 「@shuhei_fujiwara 未知の入力に対してもそれっぽい答えを返す(返してほしい)という性質も重要だと思います」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@_primenumber もちろん大事は大事なんですが、そのあたりは大雑把な仕組みがわかった後に伝える方が楽かなという気持ちです」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数って言葉は正確でない気がします。本当に関数を生成できたら、すごい技術ですが。多分究極のAIですね。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 多分優秀なエンジニアほど、言葉の正確性に対するこだわりは強いので、「それができたらプログラマも機械学習に駆逐されるじゃん!と感じてしまうと思います。生き残るのは… 多分テストケース職人??(か、仕様書書きエンジニアのみ)」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 関数の形に強い制約があるとか省略している部分はあるけど、一応一部の教師あり学習に対しては嘘ではないと言って良い程度の説明かなあと思っています。 相手が本当に厳密な説明を求める場合はみっちり数時間付き合ってもらうしかないですね(実際に本気で興味を持ってくれたらする気はあります)。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数ではなく、ロジックという言葉を使うのはどうでしょうか?ロジックのほうが、意味合いが広いので、関数より良い気がします。関数というと、プログラミング言語で言うところの関数を連想するので、誤解を与えるかと。」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 普段はもうちょっと慎重に言葉を選ぶので、僕も実際にロジックという言葉を使っていますね。 「データから欲しい入出力のロジックを逆算で生成するのが目標」という説明をすることが多いです。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara あと、これも優秀なエンジニアならではですが、テストケースが通ればいいだけだったら、もろ過学習しまくってしまえばいいんでない?AIってそんなもんなの?なんて誤解もあるかもですね。学習データにない入力にもそれなりな出力を返せるようにできることも捕捉が必要だと。」 / Twitter

無限小での線形代数

ふみさんはTwitterを使っています 「大学入ってすぐの微積の授業で教授が「微積は無限小で線形代数をする分野」って言ってて、そのとき微積と線形代数が全く別物だと思ってた私は意味わからなかったけど、今はめっちゃわかるし的確に言い表した言葉だったんだなって感動している」 / Twitter
無限小と微分 | 関数の微分 | 微積分 | 数学 | ワイズ
授業実践記録
無限小 - Wikipedia
小話Vol.3:関数の「無限小バトル」と「微分可能性」 - 新米数学博士の数学談話室
Lecture9.pdf
第1章 微積分入門
TRonso33_Ikeda.pdf

確率分布

@7shi

七誌さんはTwitterを使っています 「二項分布→ポアソン分布→指数分布→ガンマ分布 の流れを勉強した。導出まで追っていないけど、それはまた別の機会に。ポアソン分布は素朴な算数で出せそうな気がしたけど、ネイピア数が出て来る時点で素朴な算数ではない・・・ #bayes_hmc」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 Wikipediaを見て気付きましたが、半減期もポアソン分布なんですね。」 / Twitter
gm3dさんはTwitterを使っています 「@7shi 量子力学でそのうちある状態から別の状態への「単位時間あたりの遷移確率」を計算すると思うので、そうすると系が始状態のままでいる時間(=寿命)はポアソン分布になります。」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 ポアソン分布は単純な仮定から導かれるので、適用範囲が広いのですね。」 / Twitter
七誌さんはTwitterを使っています 「ポアソン分布と指数分布を知っている現象に適用するなら原子核の半減期かなと思うけど、分布の理解が曖昧で自力では適用できなかった。 「一つ一つの崩壊する時間間隔の確率は指数分布に従い、単位時間あたりの崩壊はポアソン分布になる。」 https://t.co/nx9Krkvpas」 / Twitter
半減期 - Wikipedia
七誌さんはTwitterを使っています 「ずっとシュレーディンガー方程式は何を扱っているのかちんぷんかんぷんだったけど(計算すると確率分布が得られることしか分からない)、量子力学の難解さと関係なく、単に周辺知識(ハミルトンヤコビ、微分方程式、波動、フーリエ、連続の式、拡散など)が不足していた面が大きかったと感じている。」 / Twitter
七誌さんはTwitterを使っています 「確率分布の時間発展をアニメーション化するとうねうねしているのはピンと来なかったけど、正規化されていれば面積が保存される(常に1)ので、非圧縮性の流体みたいな感じがして来た。そういう手がかりもなく漫然と見ていても、何もイメージが湧かない…」 / Twitter
七誌さんはTwitterを使っています 「一周回って、改めてリウヴィルの定理を眺めていた。深い・・・ 「確率分布がどのように時間発展するかを予言する定理」 「時間発展に対して相空間中の体積が保存」 「運動は非圧縮性流体中の浮かぶ微小な粒子の運動に類似」 https://t.co/rjeopv34Yj」 / Twitter
リウヴィルの定理 (物理学) - Wikipedia
七誌さんはTwitterを使っています 「ざっくりした書き方に好感を持った。 「情報幾何学に現れる空間はコンパクトではない(略)。なので、安心して積分を行えない可能性がある。それを安易に回避するには積分値が有限となるものを積分すれば良い。」 シンプレクティック・ベクトル空間上の確率分布の発展について https://t.co/rp4ydtZKfR」 / Twitter
Kyoto University Research Information Repository: シンプレクティック・ベクトル空間上の確率分布の発展について : ラクダを飼ってみませんか? (統計多様体の幾何学の新展開)
七誌さんはTwitterを使っています 「言い回しが面白い。 「シンプレクティック幾何学とは、非退化で可積分な構造(微分2形式)を備えた多様体の幾何学であり、古典力学を無駄と思える程に抽象化した解析力学を更に抽象化したものである。」」 / Twitter
七誌さんはTwitterを使っています 「話題に出ている島谷先生の『ポアソン分布・ポアソン回帰・ポアソン過程』は面白そうだったので入手していたけど、いつものように積んでいたので少し読んでみた。 確かに、パソコンを使って乱数でシミュレーションをして納得感を得ることが強調されている。私が先日書いた非局所性の記事と同じ方針だ!」 / Twitter

τ-σさんはTwitterを使っています 「与えられた確率 分布がどの程度にべき分布に近いのかということを定量化し,妥当な閾値によって判別 できる方法が,Clauset らによって最近開発された https://t.co/2gshuffR5p」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 似てるな〜と思ってちょっと考えたのですが、wavenetの正解データはone-hot vectorなのに対して、生成データは確率分布なので、GANの判別器が判別しやすすぎて上手く学習されない気がします。正解データの方も確率分布にするいい方法があれば、かなり上手くいきそうに思えます!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta parallel WaveNetの場合、連続な確率分布が出力です。しかも平均値が分かります。その平均値をgeneratorの出力としてGANに取り入れられそうだなと思っています。元論文でもparallel WaveNetの出力をSTFTして誤差に用いているのは、同じ仕組みだと思っています。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 平均値を判別器に入力するの、とてもいいと思います!! その場合、wavenetが出力する確率分布の山が1つであることが前提になりそうですが、実際山は1つなんでしょうか??(wavenetやったことなくて知らなくて・・・画像の方のPixelRNNの方は、論文で多峰になることを報告していました!)」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta 私もWaveNetの出力を観察したことはないので分かりませんが、多峰になることは多い気がします。VAEのようなトリックを使って、微分可能なサンプリングをすればいいのかも?(parallel WaveNetもlossの計算で何かしら工夫をしているはずです)」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 確かに! 正規分布の混合みたいな多峰の確率分布であることを仮定して、VAEを使ってサンプリングすればできるかも・・・うーん、なるほどです。parallel WaveNet、もうちょっと深く読まねば。良い議論でした!ありがとうございます!!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta こちらこそありがとうございます。蛇足ですが、parallel WaveNetでは256クラス分類ではなく、波形の各サンプルがロジスティクス分布の混合から生成されると仮定して、その分布の母数をネットワークの出力としています。parallel WaveNetというか、PixelCNN++で提唱されたテクニックですが。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ そうなんですね!! parallel WaveNetは難しそうで・・・ それを踏まえて詳細に読んでみたいと思います!!ありがとうございます!!」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ 確率分布も有名なものは知っているといいかもしれないです。 例えば、判別分析で、与えられたラベル付きデータをグループごとに分ける直線を引くのは、各グループのデータが、分散が同じ正規分布から生成されたと仮定して、確率が最も大きいグループから生成されたと推定することに対応しています。」 / Twitter
いんぐらむさんはTwitterを使っています 「@brenazmsc その辺はPRMLの2章で泣きながらやってるので大丈夫かと……」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ それなら大丈夫そうですね。等分散の仮定を外すと判別関数が2次式になるのも面白いです。 パッケージを使っているだけで何をやっているか知らない状態だと、不適切な手法で分析を行ってしまうことがあるので、理論を学ぶのも必要と感じています。」 / Twitter
s.t. 超兄貴ではないさんはTwitterを使っています 「最尤法による判別分析 メリットはサンプル数が多ければ、確率的に判別できる デメリットはデータの分布が既知である必要があることと、サンプル数が必要であること #kantomath #kantomath1」 / Twitter
俺人〜Oregin〜さんはTwitterを使っています 「#JDLA #G検定 復習のつぶやき。 生成モデルの復習 訓練データの特徴を学習し、類似したデータを生成するモデル。例として、自己符号化器の潜在変数に確率分布を導入したVAEや、訓練データと生成器が生成したデータを識別器で判別させることによって学習を進めるGANなどがある。」 / Twitter
みっちゃん|研究者✖️ブロガー|毎日一歩ずつ成長中🥚→🐣さんはTwitterを使っています 「今日は、ベイズの定理を用いたデータ判別を紹介しました。 https://t.co/LWsVtKkPxk – ベイズの定理を用いて、学生さんを配属するクラスを判別する – ベイズ判別=確率分布を考慮したベイズの定理 #ブログ #ブログ初心者 #ブログ更新しました #17日目 #ベイズ判別 #データを判別する方法はいろいろ」 / Twitter
ベイズの定理を用いたデータ判別【ベイズ判別法】 | mi-chan-nel | みっちゃんねる
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、正規分布仮定が論外なのはマンデルブロ「禁断の市場」で知った。 (ノア効果やヨセフ効果という用語もこれで知った…後者はランダムな独立過程でなくて大変動が長期影響する話)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ただマンデルブロの本にしても「グラフの相似形から世界にべき乗則多い」と気づいてマルチフラクタルやノア効果等その性質を深める研究をしたものの、その根源(なぜべき乗則が現れるか)については説明が無い気が…「だって潜水艦ノイズから綿花価格までべき乗則に溢れてるから」的な。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 #数楽 正規分布に関連している確率分布達について勉強すると、結果的にガンマ函数とベータ函数について学ぶことになるのですが、そのとき、ベータ函数の4種の表示を心に留めておくと計算の見通しが良くなる場合があります。そのとき②を忘れずに!詳しくは添付画像を参照。 https://t.co/g1gvMwHcvF」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 ガンマ函数とベータ函数で済ませることができない場合には超幾何函数達まで一般化する必要が生じる。一般化する前にガンマとベータの扱いに慣れておくことは損にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「楕円な分布に線を引いて、どれが近似とか議論してる統計は嫌い。楕円は楕円だろ。」 / Twitter

確率・統計・意味

純セメスさんのツイート: "児童虐待死事件に心理学者の先輩は「円環的因果律って知ってます?物事の要因は1つだけでなく沢山あって、中には無限ループになってるものもあるんです。それなのに知りもしない外野の人間が結果論で1つの原因を見つけて袋叩きにしている。そんな奴がいる限り虐待問題は解決しません」なるほどである… https://t.co/rVLbsQbjnc"
Yusuke Odaさんのツイート: "NMTがポジネガ間違えるのは極めて典型的なエラーで,誰が翻訳モデル作っても発生しうる問題なんですが,世間的にはやっぱり今でもパターンマッチで翻訳しているものと思われているらしく,特定のリクエストから学習したんだろうという言説が飛んでいる."
Yusuke Odaさんのツイート: "ポジネガの間違いは人間が見れば致命的だが,ニューラル翻訳モデルからしてみればたった1単語の差異でしかないので,人間が思っている以上に矯正は難しい(恐らく世界中の機械翻訳研究者が頭を抱えている)"
Shiro Kawaiさんのツイート: "「意味が逆になる」ことの重大性への重み付けは、対訳だけを学習データとする限りは得られないって感じなのかな。その範囲では些細な違いだし >RT"
須山敦志 Suyama Atsushiさんのツイート: "ガウス過程のインタラクティブなデモ。 特に最後にあるカーネル関数の組み合わせ方と得られる予測分布の関係性はとてもわかりやすい。 https://t.co/87goFc6gGC"
A Visual Exploration of Gaussian Processes
Kohei Ichikawaさんのツイート: "非線形システムにおいて系全体の状態を決定する(observabilityを実現する)ために必要になる最小の直接観測すべきノードをグラフの静的な情報から調べる手法を提案。 双対する概念である可制御性は非線形だとお手上げだったのに可観測性は上手くいくのがとても面白いです。 https://t.co/7XHvwFuXdR… https://t.co/FQuvUnE24m"
Observability of complex systems | PNAS
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から、研究で「信頼性区間95%」が多くて、「どこから出た基準なのだろう?」という疑問があったが、今月の日経サイエンスで氷解。 統計学を作ったフィッシャーさん「とりあえずp=0.05くらいが妥当?」と書いただけだったという話。さらに後年、0.05を挙げた点を後悔していたとか(笑)」 / Twitter
三鷹ういさんはTwitterを使っています: 「@shirouzu @NikkeiScience フィッシャーさんが、農学者であった点は注目ですね。 農業なら、20年に1回は異常気象です。」 / Twitter
dif_engineさんはTwitterを使っています 「測度論的確率論のすごさってのは,(考えても仕方ない)「なぜある試行でそれが選ばれたか」を全く問題にすることなく確率的な現象を記述してることなんだけど,平岡&堀『プログラミングのための確率統計』以外でそういうことを強調して書いたものを見たことがない気がする.」 / Twitter
dif_engineさんはTwitterを使っています 「すごさの一つ,ですね.主語がでかすぎた.」 / Twitter
dif_engineさんはTwitterを使っています 「自分は確率論の講義受けるまえにルベーグ積分のあらすじは理解していたので,確率空間の公理が難しいとは思わなかったけど具体的な現象との結びつきかたの理解にはその後長い時間がかかった.」 / Twitter
dif_engineさんはTwitterを使っています 「コルモゴロフの『確率論の基礎概念』は,そのちょっと前のフレシェの仕事にヒントを得てラプラスやガウスあたりまでの話を整理したみたいなことなんじゃないかと思ってる(けどよくわからない).」 / Twitter
dif_engineさんはTwitterを使っています 「『確率論の基礎概念』はこの分野が測度論で塗りつぶされるきっかけをつくった本だから「ランダムネスそのものを正面から取り扱わないよ宣言」ぐらいありそうだと思うかもしれないけどそういうことは書いてくれてない.」 / Twitter
dif_engineさんはTwitterを使っています 「若干繰り返し気味になるが,フレシェの仕事に刺激されてラプラス,ガウスあたりの仕事を「現代風に」しようとしたという意味なら結局問題は「期待値の評価」であってランダムネスそのものは興味の関心からズレていくよね.」 / Twitter
統計たんさんはTwitterを使っています 「統計学を理解するには,データから推論をしているから客観的な推論になっている,というナイーブな価値観を投げ捨てることがまず必要だと思います。」 / Twitter
てらモス♋️さんはTwitterを使っています 「確率測度の空間に有限個のパラメータ張って多様体として見なすけど、そもそも無限次元のまま多様体として扱えれば便利なのにな的な(´・ω・`)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 1÷(場合の数)=確率 という式が成り立つのは、「数え上げたそれぞれの場合すべてが等しい確率で発生する場合のみ」という条件がついています。現実世界の事象でこの条件が成り立つのはかなり限られていて、先生は、そのことをはっきり教えないといけないんですが…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 話題になっている新型コロナウイルス対策のワクチンの場合、治験の段階で数万人に接種して、ワクチンが原因で死亡した人数はゼロでした。したがって接種した場合に死ぬ確率は大きめに見積もっても「1/数万」よりも小さいわけです。「1/2」ではありません。」 / Twitter
Ohkubo YusakuさんはTwitterを使っています 「嫌味でもなんでも無いんだけど「統計学は数学の範疇であり、かつ数学で言える以上のことを統計学に持ち込むべきで無い」派のひとって物理についてどう思ってるんでしょう? 論点はある公理系で閉じたはずの命題で現実世界を説明することに(なぜ)成功しているか?という点で似てると思うのですが。」 / Twitter

ベイズ

ベイズ統計の教科書

Ken McAlinnさんはTwitterを使っています 「元も子もないことを言うと一番大事なのは色んな教科書を読んで色んな考えに触れることだと思うんだけど、難しいのは欧米の主要なベイズの本がほとんど和訳されてないこと。これによる認識の差は大きいと思う。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「例えばBayesian Choice、BDA、Statistical Rethinkingだけをとっても別々のベイズの立場があるんだけど、どれも翻訳はされてない。古典で言えばSavageもJaynesも(知る限り)翻訳されてない。なので日本語で勉強しようとすると結構限定的なのかなってかんじする。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「実はある代より上はベイズの勉強をするのに英語の教科書しかなかったからこういう話は知ってて、欧米で教育を受けた人(自分とか)もこういう話は知ってる。逆に最近始めた、もしくは英語にハードルがある人は知る由もない、ということに歪さを感じる。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「そう考えると一番いいのはSNSでどうこうするより主要な教科書を翻訳したり、そういう考えを紹介するような教科書を書くことなんだけど、知ってる層がそれをするモチベーションがない(業績にならないとか)ので歪さを助長させてる側面はあると思う。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「立場的にはBayesian Choiceがde Finetti/Savage流の主観ベイズ、BDAがプラグマティックなベイズ(これは立場がちょっと曖昧)、Statistical RethinkingがCox/Jaynes流の主観ベイズを反映してる。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「ただ色んな立場があったとして意見交換や議論をすることがあってもそれが不毛という認識はないし、逆に研究が促進されたりするのでそういう状態が理想なのかなって思う。初学者も色んな考えに触れて自分に合うように勉強できるわけだし。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「ちなみに標準的なものはなにかっていうのは英語の教科書を読めばわかるけど、ベイズ理論の大御所のRobertの渡辺ベイズ(英訳版)の書評を読めば大体どう捉えられてるかわかると思う。 https://t.co/NdvjNNPJ3Y」 / Twitter
mathematical theory of Bayesian statistics [book review] | Xi'an's Og
伊津野 英克さんはTwitterを使っています 「過去の自分の考えを振り帰って思うのは、多くの日本人は確率統計を数学の一部として習うので数学なんだと思ってるけどそうじゃない(概念を数学で定義しているという意味では物理学と同じ並び)、というところが掛け違いの原因なのかも。」 / Twitter
伊津野 英克さんはTwitterを使っています 「初学者の立場としては黒木さん達のベイズに関する活動は迷惑なので、そっとしておくべき、は個人的には思わないなぁ。今の状況だと標準的な理解へのアクセスを妨害しているわけで。」 / Twitter
伊津野 英克さんはTwitterを使っています 「物理学においてさえ実在とは情報に基づく付随概念となりつつあるのに、主観確率を拒否し続けるのはいかがなものか。」 / Twitter
Masahiro HottaさんはTwitterを使っています 「量子力学を、知的生命体である観測者一人が天上天下唯我独尊となる「唯我論」だという批判を哲学系の人がすることがありますが、それは的外れとしか言いようがありません。」 / Twitter
Masahiro HottaさんはTwitterを使っています 「量子力学では、実在は創発してくる二次的な近似概念でしかありません。「○○が実在している」ということも、結局は情報でしかないので、実在概念自体が情報に基づいている派生概念です。情報こそが量子力学の扱う対象であり、その意味でも量子力学は情報理論なのです。 #入門現代の量子力学」 / Twitter
Masahiro HottaさんはTwitterを使っています 「量子力学分野で超有名な実験物理学者であるツァイリンガーは、「実在と情報を区別するのは不可能だ」と言ったそうですが、結局このスレッドで私が言っていることを、そう表現しただけなのだと思います。彼や量子力学をディスる哲学系の人は、それを単に理解し損ねているだけかなと、思っています。」 / Twitter

ベイズの事前分布

須山敦志 Suyama AtsushiさんはTwitterを使っています 「基本的に超パラメータというものはデータのなんとなくの「スケール観」を示しているものです。超パラメータの最適化というのはそのスケール観をデータから自動調整することを意味します。モデル選択の1つと考えるべきですが、やりすぎると当然過学習してしまいます。僕は最適化はしません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「よくデータを正規化(平均ゼロ、分散1にそろえる)みたいな謎の前処理を見ることがあるのですが、ある意味ベイズ統計の事前分布のパラメータ(超パラメータ)はこのようなデータのスケール設定を妥当性・解釈性を持って実施するものだと見ることができます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「XXXを最大化/最小化する」みたいな設計方針の統計手法は、このようなデータのスケール観や考慮するノイズ量の情報がわかりにくくなってしまっている場合が多い。だからスケーリングなどの前処理に闇雲な試行錯誤を要する。確率モデルで手法を解釈するとこの辺の仮定がわかりやすくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これ、古いツイートでしたが、「超パラメータ」はベイズの事前分布のパラメータを指していることに注意です。最適化アルゴリズムの設定パラメータなどは指していません。」 / Twitter

ベイズ統計の回帰モデル

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計の回帰モデルの解説で「パラメータの事後分布p(θ|y)を求めてから予測分布p(y*|y)を求める」と書かれていることが多いが、この手順は必須ではないので本質的ではないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現に、モデルとデータから予測分布を出すにはパラメータをまるまる周辺化して消してしまってもよい。その意味で、予測を行うためにはパラメータの存在自体とか「学習」といった考え方はそもそもなくてもOK」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「事後分布→予測分布の計算手順は典型的だし、直観的にもわかりやすいので支持されているのだと思うが、この手順が当たり前だと思い込んでしまうと潜在変数モデル、時系列モデル、ノンパラモデル、教師あり/教師なし/半教師ありといった手法を統一的に理解できなくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「複数の手法やモデルを統一的な観点で理解しておくと、いろんなアイデアの間を自由に行き来して適宜活用できるのでとても便利だし、何よりストレスが少ない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とは言え、何でもかんでもひとつの枠組みに丸め込んでしまうと思考停止になることもあり得るので、「事後分布→予測分布」のような特定の典型例にあえてフォーカスして性質を調べたり計算を効率化したりするのは工学的な観点で重要」 / Twitter

TensorFlow User Group ベイズ分科会の資料 PPLについて - HELLO CYBERNETICS
バッチベイズ最適化を使ってロボットに完璧なオムレツの調理方法を学ばせる
江口允崇さんはTwitterを使っています 「ランカスターのベイジアン計量経済学のテキストにも頻度主義とベイジアンの違いについての補論があるのだけど、情報量基準がどうこうは一切書かれてないので、例のスライドの内容はあくまで一部の人の解釈の仕方ってことなのですねやっぱり。 https://t.co/32pu0QJKzw」 / Twitter
レオ爺さんはTwitterを使っています 「ベイズって結局のところ事前確率に根拠がなかったり、 尤度の設定がヒトによってちがってたりするから、 科学では使いにくいんだ。 そこらへんを適当に変えちゃえばどんな結論でも導けるから。 じっさい、ベイズ使うひとの結論って、その人の数だけあるともいわれる。客観性が期待できない。」 / Twitter
伊津野 英克さんはTwitterを使っています 「それはサイエンスを狭く捉えすぎだし、量子論が情報理論だと言われている状況で主観的アプローチがサイエンスでは有用ではない、というのは相当駄目な発言では。例えばこれはサイエンスではないのだろうか https://t.co/cJkWyuakby」 / Twitter
ベイズ推定を用いた新たな電子構造の解析法を開発 | 研究成果 | 九州大学(KYUSHU UNIVERSITY)
MKTさんはTwitterを使っています 「@hidekatsu_izuno GelmanやMcElreachもベイズ統計が一般に主観的なものであることは認めているような気がします。単に分野によっては事前分布の主観性の程度が減ると。 BDA3 https://t.co/Y52jsJuLhz Stat Rethinking https://t.co/vkbjqZShze」 / Twitter
MKTさんはTwitterを使っています 「Gelman先生の論説は分かり易い 「統計手法は主観的である。特にベイズは。ただ、尤度や事前分布は出来るだけ科学的に設定されるべきである。そして観測によって分析をより客観的にしていく。ただモデル設定や評価法から科学的判断を完全に排除することはできない」 BDA3, p13: https://t.co/akK1IDnHW9 https://t.co/Yt6xIKLwKC」 / Twitter
Ken McAlinnさんはTwitterを使っています 「主観ベイズの立場からするとある実験の結論はある想定するエージェント個人の合理的な結果にすぎないので、そもそも主語が小さいです(小さい世界)。これで複数のエージェント(再現実験)の結果が一つの結論に収束してくことが大きい世界に近づく科学的プロセスだと思ってます。」 / Twitter
Hiroshi ShimizuさんはTwitterを使っています 「主観ベイズの立場で実験結果の再現性の問題はどのように考えられるのかが気になっている。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「端的に言えばすべての実験結果が同じ方向向いてるんだたら(様々なエージェント/事前分布に対してロバストなら)主観の結論から間主観の結論に昇華できる、みたいなかんじです。」 / Twitter
Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn ありがとうございます!なるほど、ある主体の信念の更新レベルを超えた話になっていくんですね。サヴェッジにいう小さな世界と大きな世界、まだ十分理解できてないですがイメージはできました。どのような統合が可能かという話の一つとして前のザッピングセミナーの内容につながるという感じですね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@simizu706 なので(不正がなければ)再現性がないからといってその人を責められないし、逆に過度に一つの結果を一般化できないという至極穏当なことしか言えないです笑。ただメタ分析は難しいですね(小並感)。」 / Twitter
Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn なるほどなるほど。個別の実験の分析結果の統合とかをどうするかは頻度主義ではメタ分析がありますが、データが違う場合に、ベイズでもモデル平均化のような形で統合できるんでしょうか。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@simizu706 一応あると思いますが統合的な枠組みはないと思います(今検討してます)。」 / Twitter
Ohkubo YusakuさんはTwitterを使っています 「@kenmcalinn @simizu706 少し違う話かもしれませんが「研究結果に異質性がある」を「条件づけるべきデータがまだ未確定」と看做して良いのであれば、確証理論の文脈で研究されてきたJefferyの条件付け規則(Jeffery"s"ではなく)が近いのではないかと思いました。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@ohkubo_yusaku @simizu706 それは他人の研究結果を不確実なデータだと捉えればそうですね。でも正直Jeffrey Conditioningは使いづらい。。。」 / Twitter
Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn そうなんですね。ありがとうございます!(楽しみにしてます)」 / Twitter

特許

Hacker Newsさんのツイート: "Google's PageRank patent has expired https://t.co/qozXMIut9A"
US6285999B1 - Method for node ranking in a linked database - Google Patents

ツール・ライブラリ

piqcyさんのツイート: "Microsoftが、高速なTokenizerをリリース。その速度は、なんとspaCyの10倍にのぼる。現在はアジア圏の言語がサポートされていないが、今後に期待。 https://t.co/VrbxrGOmUy"
Microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
Wolfram Japanさんのツイート: "ソフトウェア開発者のためのWolfram Engineが無料で公開されました。どんなシステムにも配備でき、プログラム、言語、Webサーバから呼び出せるWolfram言語エンジンです。ご興味のある方はStephen Wolframのブログページからダウンロードしてお試しください。 https://t.co/1QKMY23eQq… https://t.co/suPRPmDUGY"
Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Blog
ikawahaさんのツイート: "かわいそうな形態素解析ライブラリとしておなじみの kagome が docker デビューしたよ 🎉 KEINOS さんありがとう! #デモサーバがすぐ立てられるのでラティス見たりするの楽になるかもね https://t.co/YMl9D5TBo0"
ikawaha/kagome - Docker Hub
kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter
Shion HondaさんはTwitterを使っています 「Colab ProとGoogle Driveで安く快適なKaggle向け計算環境を作る方法について書きました。 気になるのはデータのダウンロード方法ですが、Google Driveに保存しておいたzipファイルをcontent以下に展開するのが速いケースが多い気がしています(インスタンスのリージョンなどに依存していそうです)。」 / Twitter
Shion HondaさんはTwitterを使っています 「Google Driveに課金したので、Googleフォトの有料化問題も同時に解決。」 / Twitter
Shion HondaさんはTwitterを使っています 「This post shows you how to set up a *cheap* and *comfortable* computing environment for Kaggle using Colab Pro and Google Drive. Happy Kaggling! Happy Kaggling on Colab Pro &amp; Google Drive | Hippocampus's Garden https://t.co/8wMwbYRgk2」 / Twitter
Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden

異常検知

Yasuhisa Yoshidaさんのツイート: "最近仕事で取り組んでいた異常検知の機能、やっと出せました。ロール内で普段と異なる動きをしているホストを教師なし機械学習で検知します。検知だけではなく、このメトリックの動きが変っぽいよというところも提示するのもポイントです(解釈可能な機械学習ってやつ)。 https://t.co/HW5t5sy5IA"
新機能・ロール内異常検知の使いかた - Mackerel ブログ #mackerelio
Mamoru KomachiさんはTwitterを使っています: 「今日は吉田さん (@syou6162) に大学院の集中授業で異常検知を題材に演習をお願いしています。講義資料は以下だそうです〜 https://t.co/Mcv0tPZXFg」 / Twitter
syou6162/tmu_cs2

手法の区別

HELLO CYBERNETICSさんはTwitterを使っています 「モデルと推論or最適化手法、そしてアルゴリズム(具体的な実行手順)は明確に区別した方がいいです。おそらく、そこらへんがごちゃごちゃになるから膨大な種類の機械学習手法がバラバラにあるように見えるのだと思います。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「NNはモデルで勾配法は最適化手法で、後方自動微分が勾配を求める具体的なアルゴリズムです。 単層パーセプトロンに勾配法を利用する場合は上記と同じですが、勾配法ではなく凖ニュートン法を用いることもでき、ロジスティック回帰はそのケースが多い。 呼び名が変わるが変わってるのは最適化手法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「別に勾配法を利用していてもロジスティック回帰と呼べて、なぜならこの呼び名がモデルに対してつけられているから。シグモイド関数が出力層に来てる単層パーセプトロンとロジスティック回帰はモデルとして同じ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「あと状態空間モデルは無論モデルで、その中の隠れマルコフモデルや動的線形ガウスモデルがある。 これに対して、ベイズフィルタの一種であるカルマンフィルタやパーティクルフィルタは潜在変数の推論方法。HMMの潜在変数推論として動的計画法の一種のビタビアルゴリズムがあるようなもの。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「線形ガウスモデルやHMMに対してEMアルゴリズムを利用すると潜在変数に加えて状態空間空間モデルのパラメータを推定するということができる(EMアルゴリズムがパラメータと潜在変数を逐次最適化するアルゴリズムという考え方)。」 / Twitter

モデル

データ丸暗記

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「A Iはデータが正しくないと動かない」は間違い。より正確には「モデルで想定されていないデータが入力されると正しく動作しない」です。なぜ前者のような間違いが起こるかというと、現状応用されているほとんどの機械学習や深層学習のモデルがデータ丸暗記なやり方に依存しているからです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データの汚さや不正確さを理由にして実用への失敗の理由にする考え方はよろしくない。丁寧な実験計画でも組まない限り、世の中に出回っているリアルデータは全て「汚い」と考えた方が良いし、それへの対処がまさにエンジニアリングで求められているものです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あるAIベンチャーの人がまさにこのような発言をしていたわけですが、これは「私はリアルなデータを扱ったことがありません」という白状に近い。この辺りも、A Iに関する企業や取り組みが実応用に根ざしたものかどうか判断するのに役に立ちます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ウェブデータで学習されたAIが差別的な発言をしてしまう件に関して、「AIは素直に学んだだけ、悪いのはデータ」みたいな妙な結論を出すのは良くある話。いや、AIが悪い。人が設計している以上、AIを何か別の知的主体かのように捉えて責任逃れするのは間違っている。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これに限って言うと、AIはウェブデータから頻度に基づく類推を行っただけです(前述の通り、丸暗記するだけなので)。世の中どれくらい差別や偏見に満ちた発言が多いのか、という集計くらいにはなったかも。」 / Twitter

piqcyさんのツイート: "文表現を得るためのUniversal Sentence Encoderの多言語版モデルが公開。学習に使っている言語には、日本語も含まれている。単語分割はSentencePieceベースのよう。… "
takuya-aさんのツイート: "LightGBM のモデルのデバッグのために SHAP 使ってみたけど、簡単に始められてよかった。Jupyter の中から普通に可視化できる。 https://t.co/Vf2VGmnkEC"
slundberg/shap: A unified approach to explain the output of any machine learning model.
Daisuke OkanoharaさんはTwitterを使っています: 「微分、積分、微分方程式などのシンボリックな数学方程式はNNで驚くほどの精度で解ける。方程式を木表現経由のポーランド記法で表し、Transformerを使ったseq2seqで教師あり学習する。MathematicaやMatlabを超える求解率を達成できる他、有効な解を一つだけでなく多く列挙できるhttps://t.co/dQco5uihuE」 / Twitter
Deep Learning For Symbolic Mathematics | OpenReview
nikqさんはTwitterを使っています: 「https://t.co/LAGdNiwKVu うへーすごい、Network architecture searchの結果、まじでただランダムにつないだNNがResNet-50相当を達成…」 / Twitter
Randomly Wired Neural Networks - Towards Data Science
HELLO CYBERNETICSさんはTwitterを使っています 「ベイズモデリングは、予測にとにかく効きそうな中間表現(潜在変数)をモデルに持たせつつ、統計のことよくわからん人にも、なんだか納得してもらえるような事後分布や予測分布などのバラつき表現も兼ね備えており、 ツールとして予測重視の機械学習と説明重視の統計のいいとこ取りが形式的にできる。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「実際のところ潜在変数に実体としての対応物が無かったとしても、グラフィカルモデル見せながら、なんとなくの納得感が得られるのは、人間側のバグ的な要素も大きいのだが、事をすすめる上では重要だったり…」 / Twitter
Kazunori SatoさんはTwitterを使っています 「出自不明・説明不能な謎MLモデルを乱造しないように、Googleが提唱するMLモデルのマニフェスト作法「Model Card」を作る方法を解説。この例ではscikit-learnとAI Platformを利用。 #gcpja」 / Twitter
Google Cloud JapanさんはTwitterを使っています 「人気の高い scikit-learn フレームワークを使用して、独自のモデルカードを簡単に作成する方法をご紹介。あらゆる機械学習フレームワークに応用できます。https://t.co/nCaHsbZg3z #gcpja」 / Twitter
Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 | Google Cloud Blog
GengaQ SurvivoRさんはTwitterを使っています 「群は対称性を記述するが、対称性とは群である、という訳ではない 濃度は大きさを記述するが、大きさは濃度である訳ではない 位相は空間概念を記述するが、空間は位相がなければならないという訳ではない 数学をしてるとモデルを実体と誤解せる事がある 数学においても、モデルはモデルでしかないのだ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「状況分析に役立つメンタルモデル一覧: オッカムの剃刀、ハンロンの剃刀、第一原理、根本原因、システム指向、シナリオ分析、べき乗則、正規分布、パレート分布、選択バイアス、生存者バイアス、偽陽性と偽陰性、信頼区間、組織的負債、シンプソンのパラドックス, etc. https://t.co/N3YGpk21Lg」 / Twitter
Mental Models I Find Repeatedly Useful | by Gabriel Weinberg | Medium

単語ベクトル・単語選択・距離

やぐさんのツイート: "指定した語彙だけに限定することで単語ベクトルのモデルサイズを小さくする変換コードを書きました。読み込み時間短くしたりdockerに載せたりするときに便利かもです。 https://t.co/3ZJwBx8VyB"
Out-of-the-box - 語彙を限定して単語ベクトルのモデルサイズを小さくするminify_w2v
やぐさんのツイート: "単語埋め込みのout-of-vocabularyのベクトルの初期化を自分でも実装して試してみました。Kaggleのコンペでは如何にOOVを無くすかが重要だったみたいですが、実タスクだとどうなんでしょう Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化 https://t.co/54O9zJMwR5"
Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
piqcyさんのツイート: "単語分散表現において、Euclid距離で意味の近さ、加減算で意味の差し引きができる理由について調べた研究。共起シフトPMI(csPMI=PMI(x,y) + log p(x,y))という値が単語ペア間(王様/男性, 女王/女性)でそれぞれ等しければ、それらはベクトル空間上で同一平面に存在することを証明している。… https://t.co/6wFGeSvp67"
ketsumedo_yarouさんのツイート: "faissがついに1T=10^12本のベクトルに対する探索の話を始めたので、いよいよ大学レベルで個人で何か出来る時代の終わりが近付いてきている(これまでこの界隈は1B=10^9本の話だった) https://t.co/6UoR0tx5vu"
Indexing 1T vectors · facebookresearch/faiss Wiki
しゅんけーさんのツイート: "精度を保ったまま最小限の語彙を選択する variational vocabulary dropout (VDD) を提案。多くのNLPタスクで用いる語彙数は昨今非常に大規模となるが、限られた計算リソース下での実行することは難しい。 そこでdropoutベースで精度低下に寄与しない単語を学習する枠組みを導入している。… https://t.co/qYAAV6k4Tw"
しゅんけーさんのツイート: "How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey https://t.co/bKLMnUV1Z6 @shunk031さんから… https://t.co/281qr1I4w6"
How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey

データ

TJOさんのツイート: "機械学習を用いた自然科学研究の多くに既に「再現性の危機」や「データセットの選別による恣意的な知見」という問題が出ているらしく、かつて心理学や認知神経科学が踏んだ轍を高速かつ全力で後から踏みに行っているということで険しい顔をしてゐる https://t.co/y3A7KboQOD"
AAAS: Machine learning 'causing science crisis' - BBC News
elasticJPさんのツイート: "#Elasticsearch において、言語アナライザーが文章を単語に正しく分割するためには辞書の存在が重要です。最近良く聞かれる「辞書を更新する際の挙動」についてブログを書きました。是非お読みください。https://t.co/MpsrnNivqN"
CJK アナライザーの辞書更新時の挙動について | Elastic Blog
Taku Kudoさんのツイート: "最近この手の「機械学習に使えるxxx」という記事を散見するが、手段と目的が入れ替わってておっさんには理解しがたい。 https://t.co/IONds3Tdyq"
【20個掲載】機械学習に使えるスポーツ関連のデータセット | Gengo AI
Shun Aoki🇺🇸青木俊介👑さんはTwitterを使っています: 「GitHubにあるオープンデータのまとめ。機械学習用の有名どころから交通系・社会科学・気象系などなど網羅されているので領域のオープンデータを俯瞰で見るにはとても良さそう。5年ほど運用されているっぽい。 https://t.co/75YxqhMNBh https://t.co/xfks0V6dPM」 / Twitter
awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. PR ☛☛☛
Susumu YamazakiさんはTwitterを使っています: 「統計や機械学習において,諸事情で集められないデータをどのように扱うか,という議論は,とても大事だと思います。 というのは,例えば AI とヘイトが強く結びついてしまう事例が散見されますが,本質的な理由の1つは,人種や民族にわたってデータを集める条件が揃っておらず,公平でないからです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「この問題については「MBA が会社を滅ぼす」という書籍でも論じられています。データ駆動による経営では,測られないデータによって,大きく誤差を生じてしまう,というストーリーです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「さて,行動経済学における「ナッジ」という考え方は,人間の本能的な思考様式によって,認知が歪められてしまい,合理的に判断することができなくなるということに着眼しています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「ナッジと同じ議論が,機械学習や統計学など,データ駆動の考え方についても言えるのかもしれません。すなわち,補正が必要です。」 / Twitter
ゆうだいさんはTwitterを使っています 「機械学習のためのデータセットが大量に公開されている神サイト. https://t.co/U3rpWNCiOx」 / Twitter
UCI Machine Learning Repository
HELLO CYBERNETICSさんはTwitterを使っています 「データないけどオンライン強化学習で何とかしたい みたいなのカジュアルに言うのは構わんが、CartPoleを適当な手法で良いから一回動かしてみてほしい。このレベルのタスクですらエピソードは数百必要なわけですが、本当に覚悟あるのだろうか。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「統計のプロを謳う人がこれを言っていて、私が "サンプルサイズが大きすぎるのは良くない"というのは、実験とデータ収集にはコストが掛かるのだから"意思決定に必要なサンプルサイズを見積もりましょう"という意味ですよね と確認したら、検定に応じて最適なサイズがあるのだと言われたので、黙った。」 / Twitter
nekoumeiさんはTwitterを使っています 「ずっと気になってたので調べました 「サンプルサイズが大きすぎると良くない」ってどういうこと?|nekoumei #note https://t.co/KQQ7cRAojW」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「それ以前に、サンプルサイズと標本数を混同していたり、統計計算では不偏分散を用いるものだと言っていたり、よく分からん変換をカマしてとりあえず単回帰していたり、正規分布してなかったり直線に乗らないデータは異常だと言ってたり、社会はそういうものかと現実に戻された感があってよかった。」 / Twitter

データ構造

takuya-aさんのツイート: "ANNのインデックスの構築戦略おもしろい。1時間・1日・1ヶ月ごとに差分に対してインデックス構築してデプロイ、APIサーバからそれらを自動で組み合わせて返している。 / “メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog” https://t.co/zqati0ay3W"
メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog
takuya-aさんのツイート: "ダブル配列の構築時の空き領域の検索、簡潔ビットベクトル使ったらけっこう高速化できんじゃね?って思って調べてたら、すでにdarts-cloneに実装されてたときの顔してる"
かんぱさんださんのツイート: "Goでダブル配列書きました。あまり最小接頭辞トライを採用してる実装がないように感じたので、最小接頭辞トライを採用してます。普通のトライと比べて、多くのケースでメモリ効率とキャッシュ効率が良くなるはずです。 https://t.co/NS5kN9J6oz"
kampersanda/doublearray-go: Go implementation of double-array minimal-prefix trie
かんぱさんださんのツイート: "簡単に実装するために、BASE/CHECKは単純なint配列です。"

ソート

κeenさんはTwitterを使っています 「バイトニックソート、ネットワークソートの一種というのを知っていれば瞬殺できる」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「ところで結構基本的なことがしばらく考えても解らず詰まっておる,具体的には “バイトニックソートがなぜソートになっているのかの正当性” が解らない(計算量を度外視した実装を見ても直観が湧かないどころか各補助函数の事前条件と事後条件が把握できない)」 / Twitter

経済や統計では重視される「識別」

成田 悠輔さんはTwitterを使っています 「機械学習モデルが実応用でうまく動いてくれないことが多いのは、評価データで同じ性能を達成する解が複数あることが原因だという主張。実はこれ、経済や統計では重視される「識別」が機械学習では無視されてることと同根なのはあまり知られていない https://t.co/mhOsLnwesQ」 / Twitter
[2011.03395] Underspecification Presents Challenges for Credibility in Modern Machine Learning

シャープレー値

成田 悠輔さんはTwitterを使っています 「1950年代にゲーム理論や経済学で誕生、その後絶滅したと思われてた概念(シャープレー値)が、5年ほど前からAIや機械学習でルネッサンスしてる。いったい何が起きているのか、これを読むとわかる https://t.co/TS28m9oWTj」 / Twitter
5.9 Shapley Values | Interpretable Machine Learning

users

@sammy_suyama

2020

2020-11-24

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ほぼすべてのMLソリューションにおいて、限定された実験環境・データセット・テストベッドにおけるごまかしの「成果」から、いかに実運用に持っていけるかが最大の壁となる場合が多いので、このあたりの問題意識はしっかりとシェアしていきたい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「このような限定的な成果を元の目標のサブゴールであると誤認してしまっているケースが多い。これはサブゴールではなく、単にオーバーフィット。MLに関わる人の多くが交差検証を理解しているにも関わらず、より広いマイルストンでのオーバーフィットに無頓着になってしまいがちなのが驚くべきところ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「その実証実験で得られたやり方・モデルは、コスト面で横展開可能か?」 その質問にちょっと真摯に向き合うだけでこの問題はかなり回避される。(と同時に、無計画なPoCで短期に稼ぐだけのビジネスモデルは駆逐される)」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「たいてい言い訳として登場しがちなのが「もっとデータが集まれば将来的には解決する」と言って逃げるパターン。これは99%嘘なので注意です。本運用時のデータ収集に実証実験時と同じくらいコストがかかるようでは全くお話になりません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「以前TFUGで「MLのモデリングは自動化できるか?」という話をしたのを思い出した。結論としては「自動化できるくらい予測の目標が明確であり、妥当な評価を行うためのデータ量が豊富であること」でした。正しいと思いますが、この前提条件、正直モデリング作業自体よりもはるかに満たすのが難しいです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ブラックボックスな手法は使うのは容易ですが、それだけでは実用に耐える評価を下すまでの道のりが果てしなく遠くなる場合が多い気がします。」 / Twitter

2020-12-02

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えばAlpha Goの提案する手は一見人間には理解不能かもしれませんが、読み筋を示して行けば(途方もない苦労を要するものの)一応理解はできるはず。要は、要素を分解すれば最終的に人間が納得できる可能性があるのであれば、それは「理解できる」に入るんじゃないかと思います。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人間が処理できないほど、1.考慮すべき項目が多数、2.探索すべき組み合わせが多数、といった場合には機械学習(というか」計算機)のアドバンテージが出るというだけの話です。これだけのことで、単なる技術をわざわざ「超人間的な知性の神秘」みたいな議論には進めない方が良いですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「深層学習はパラメータ数が多く暗記できるキャパが大きいので、「深層学習が一番うまくいった」という実験結果は、まず課題設定の失敗(leakageなど)を疑った方が良いです(経験上、9割以上はこれ)。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「統計的予測に素養のない方達が、すぐに深層学習なり機械学習に飛びついてしまう昨今ですので、この辺りは十分にケアすべきです。解決は簡単です。あなたの作った手法が、本運用と同じようにデータが入ってくる状況で要求性能を発揮しますか?という問いに答えられるような実験設定をすることです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面倒臭がっているケースが多いと思われます。元データの散布図を見れば済む話を、わざわざ「機械学習の解釈性」なる技術でモデルの入出力の挙動を確認するなどは典型例ですね。」 / Twitter
Masa YamamotoさんはTwitterを使っています 「本当のところで、どうしてこうなるのかわからない、と言うケースは少ない気がしますね。 検証が面倒だからやらないのか、そもそも適当に問題を扱っているか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「人工知能が人間の能力を越えた」みたいな文言は、くだらない週刊紙の表紙レベルに留めておくべきと思います。データが大量に保存でき、人間より早く計算できると言う時点で、計算機は人間を十分に上回っているし、現代の人工知能もその延長線上に過ぎません。」 / Twitter

2020-12-10

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね。マルチタスクや深層学習に限らず、複雑なlossの設計は人間には無理です。」 / Twitter
Yuki Arase (荒瀬 由紀)さんはTwitterを使っています 「深層学習にマルチタスクさせると的確にタスクやロス関数設計の穴をついてくる(簡単なタスクのロスを下げ続けるマシーンと化す)のを見ると、「常識に囚われるな!問題は単純なのさ!」とか言って迷路の外側通ってゴールする方法をドヤってくる人みたいで味わい深い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「僕もさんざん(深層学習に限らず)lossの設計によって課題を解こうと四苦八苦した経験が過去にありますが、結論としては、やろうとしていることがちょっとでも複雑になってくると簡単に限界を迎えて黒魔術の世界に入ります。 確率モデルの設計の方がずーっと楽。」 / Twitter

2020-12-24

須山敦志 Suyama AtsushiさんはTwitterを使っています 「確かにLASSO(L1正則化)は使いにくいですね。データ表現としてのスパース性と、どの次元が説明しやすいか?という推定は分けて考えるべきなんじゃないかと思いますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計だと、うまくモデルを設計すれば「データを表現するために少数の次元を使用すること」と「どの次元がよく説明できるか」というのを両立できます。言ってみれば前者はsparseで後者はdense。複数の次元間で表現力に変わり映えがないのであれば、説明のしやすさも同じくらいに推定されます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「LASSOは結果の見た目もスッキリしていて、特に予測精度だけ気になっている場合は検討候補に入れても良いんですけど、もう1歩踏み込んで結果を説明したり手法を改善したりしたいときに「あれれ」となってしまいますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね、説明には絶対使っちゃダメです。昨日と言ってることが違うじゃねーか、ってブチ切れられます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズモデリングは、モデル設計の柔軟性や少量データ・低品質データの対処に強い分、技術的課題点をすべて計算量の課題にしわ寄せさせる傾向があります(はるか昔からそう)。逆に言えば、ハードや計算アルゴリズムの進化が、そのままベイズの応用領域の拡大に直結するという見通しが立てられます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「MCMCの登場によって取り扱えるモデルの幅がどかっと増えた。最近は並列計算によってまたちょこっと増えた。量子コンピュータが活用できることになったら次はえらいことになりそう。」 / Twitter

2020-12-28

須山敦志 Suyama AtsushiさんはTwitterを使っています 「コインやサイコロの例から確率の概念を学ぼうとすると、「コインは1/2!」「サイコロは1/6!」のように“絶対的に正しい”確率が存在するかのように錯覚するんですよね。すべては数理的に簡略化するための仮定でしかないのに。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「こういう仮定を置くときは、もっと申し訳なさそうに述べるべきですね。「本当は物理シミュレーションとかいろんな人類の叡智を駆使すれば、もっと正確にコインの出目を予測できる可能性もあるのですが、そこまでの知識・技術を持ち合わせていないので、ここは仮に1/2とし話を進めさせていただきます」」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「前にも言いましたけど、こういう「サボり」を入れても「とりあえず議論を前に進められる」点が確率の良いところ。ほかに複雑な要因が絡む統計解析をするときは、コインの出目1つにとらわれ過ぎない柔軟さが大事な場合もあります。1/2なのか49/100なのかは重要でない場合が多い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習の解釈性に関して、僕個人としてはかなりネガティブな意見を持っています。「この手法を被せれば結果が解釈できるようになります」みたいなブラックボックス&お墨付き系の手法は、簡単で広まりやすい上に誤解ばかり招くので、新たなcrisisを起こす可能性が高い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「振り返ると、僕の「目的さえ達成すればどんな方法を使ってもOK」という今までのスタンスもちょっと反省しなきゃいけない気がしています。なぜなら、多くの人は自身の目的すら正しく認識していないから。「目的を達成するためのrequirementをしっかり整理せよ、手法はなんでも良い」の方が近い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん機械学習の解釈性が低いというのは、(これ自体非常に曖昧ではあるものの)課題意識としては正しいと思う。しかし、それを解決するためのアプローチや結果として起こりうる社会へのoutcomeに関しても気を配るべきなのでは。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データサイエンスの仕事を続けていくのはそんなに複雑な話じゃなくて、①自らの解析スタイルに疑いを持ち常に崩していくこと、②自らの仕事の自動化を検討すること、の2点を頭に入れていれば大丈夫だと思います。難しくない、とは言っていません。」 / Twitter

2020-12-29

須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分の「ベイズ深層学習」ですが、別に深層学習をベイズモデルとして構築し直してパワーアップうぇーいする話じゃなくて、深層学習の経験的にうまくいってるとされている謎テクニックを条件付き確率の考え方でスッキリ整理するよ、の方が近いです。 https://t.co/eReM4hHMJZ」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ただ、これで深層学習の応用上&研究上の諸々の問題が解決するわけでもないです。まあ、新しく登場する色んなテクニックに惑わされたりする機会は減るだろうし、既存手法を合理的にカスタマイズするヒントとかは得られるかもしれない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「問題設定が誤っているためドツボにハマるという話、AI界隈本当に多い。 心を知るための人工知能: 認知科学としての記号創発ロボティクス https://t.co/k2qwwpcklq https://t.co/wSMglertwr」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「生成モデルあるいは潜在変数モデルに慣れ親しんでいる人にとっては自然な考え方だし、現にそういった創発現象が意図して起こせることも、それを使って工学的な問題解決ができることも良く知っている。ただ、人間と同じ挙動を再現するモデル設計は極端に難しい。」 / Twitter

histric-1

須山敦志 Suyama AtsushiさんはTwitterを使っています 「カグルなどもほとんどは教師ありを使うような課題だと思うのですが、要となる前処理・特徴量抽出はほとんどが教師なし。利用頻度は教師あり/なしで8対2くらいかもしれないですが、重要度はそのまま逆転しますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「教師なしモデルを使いこなすor設計できる人が機械学習を制する。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もう1歩進むと、 実践的な統計モデリングに限定して言えば、教師なし/教師ありといった区別はしない方が応用の幅が広いことは自著でも簡単に説明しています。 https://t.co/5W7PVnk9qU」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「うーむ、なぜでしょう。「xとyのペアを与えれば機械が勝手に学習して予測できるようになる」という噂が流布されているからでしょうか?」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習は教師ありと教師なしに分類される」という入門書籍の定番の1行目の文句を信じ切って進んでしまうと、多くの人が機械学習の膨大な応用範囲と一貫した手法の理解を見過ごしてしまうことになる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Juliaを使うとガウス過程回帰が実質10行程度で実験できる。 https://t.co/wXVwwL9KwB」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ハイパーパラメータを調整したければForwardDiff.jlなどを使えば追加数行でできると思います。 https://t.co/68N1y40M1g」 / Twitter
JuliaDiff/ForwardDiff.jl: Forward Mode Automatic Differentiation for Julia
須山敦志 Suyama AtsushiさんはTwitterを使っています 「結果の可視化以外では特別なライブラリは一切使用していません。基本的に線形代数の計算式を並べるだけで実装できる。ブロードキャストをうまく使うことがポイントですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「実装したい人へのオススメは、適当に「Gaussian process kernel」とでも検索して、9行目・10行目を別のカーネルに置き換えて試してみることです。予測結果が色々変わります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「高度な統計解析をするためには確率モデルによってデータシミュレータを作る必要があります。ただしシミュレータはたいてい複雑なので事後分布を計算するのが困難。さらに事後分布を近似するヒントとなる尤度関数(モデルの一部)も計算できないケースもあります。一方で、」 / Twitter
Daisuke OkanoharaさんはTwitterを使っています 「多くの科学領域でシミュレーションが作られてきたが、尤度が計算できず、観測からの推論が困難で非効率なABCしか使えなかった。近年のML/DLの発展で高次元でも尤度や事後確率分布の代理関数を推定でき、微分可能なシミュレータを使って高度な推論ができるようになったhttps://t.co/BGvvBV7rjE」 / Twitter
The frontier of simulation-based inference | PNAS
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ABC(近似ベイズ計算)と呼ばれる技術も古くからあり、尤度が全く計算できないような場合でも(モデルが比較的小さければ)事後分布が推定できます。ただし高次元のディープなモデルなどには適用が難しい。もう少し近年では、」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ディープなモデル含む複雑なシミュレータに関しても密度比推定を利用することによって尤度計算ができなくても計算を進めるやり方があります。ほぼ同様のアイデアはみんな大好きGANにも使われています。変分推論法との関係性などはlikelihood-free VIとして整理されています。 https://t.co/Gq52TxqrHf」 / Twitter
[1702.08896] Hierarchical Implicit Models and Likelihood-Free Variational Inference
Daisuke OkanoharaさんはTwitterを使っています 「問題を解くために使ってはいけない別の情報を使って”ずる”をするショートカット学習は動物でもみられ、現在のML/DLでも広くみられる。これによりMLは違う方向に汎化し、学習分布外(o.o.d)に外挿できない。実験結果の詳細な分析、o.o.d汎化のテスト実験が必要である。https://t.co/OIKtfOY61G」 / Twitter
[2004.07780] Shortcut Learning in Deep Neural Networks
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習や深層学習が「ズル」して学習データセットで良い成績を出すという話は結構根深いです。例えば画像中の猫・犬を分類するタスクで、DNNで誤って犬と判定された猫は芝生の上にいたり。学習データ中では屋外の芝生にいるのは犬の方が圧倒的に多かったということなんでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同じことは実は人間でも起こっています。人種差別なんかがそう。対象となる人自体の本質を見ずに、表面的な特性だけで判断をする。こうすることによって人類は予測の「省力化」を行っています。表面的な相関や過去の事例だけで物事を判断すると未来(=学習に使っていないデータ)で大間違いを起こす。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面接などで候補者の技術力を知りたければXGBoostの使い方などどーーーでもいい話はせずに,教師なしの手法についてどれだけ語れるかにフォーカスするとよいです.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データを格子状に並べた瞬間に「画像だッ!」ってなるのはいかがなものか」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「取るべき解析プロセスは、見かけ上のデータフォーマットや計測手段(センサー種類とか)などではほぼ決まりません。対象データの背後にある構造やデータ量、解析目的に応じて決まります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には 実問題 = 現状と理想にギャップがあり頑張っているんだけどどうにもならなくマジで困っている人たちがいる問題」 / Twitter

histric-2

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガチで機械学習の研究をやっている人であれば、多重共線性みたいな概念にいちいち名前がついていることに驚くのではないかと思いますね。」 / Twitter
干物男!かとう茶んさんはTwitterを使っています 「ML系だとOLS(最小二乗法にパラメータ識別の仮定が入っているやつ)をちゃんと習わずに来る人が大量にいて(というかほとんど),そういう人たちは最初からカーネル入れて正則化かけてたりするので,やや理論っぽいことをやろうとしている人でも多重共線性とか知らずに生きてたりします.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あー、確かにこれはありますね。計算アルゴリズムが幾何的な情報をうまく扱えていない。」 / Twitter
📊🛠📝 (𝚖𝚊𝚕𝚕𝚊𝚛ĝ𝚎 𝚊𝚙𝚕𝚒𝚔𝚎𝚋𝚕𝚊)さんはTwitterを使っています 「回帰なんかをStanで実際に推定しようとすると、分散揃える謎処理した方がかなり速くなるんですよね。 NUTSのパラメータ調整が入るので、スケールが違いすぎると限られたwarmup期間では上手くいかない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データ間で数値のスケールが著しく異なるのが原因で計算上変な挙動が起きる場合、単純にデータの表現方法を変えれば解釈性を保ちつつ改善できる可能性がありますね。ミリメートルをメートルに直して、それにモデルの事前分布も合わせるとか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはかなりあるあるで、多くの教師ありのシチュエーションだと前処理(スケーリングとか)とk近傍法で他の手法と大差ない。どころか説明しやすい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これで問題が解決できればそれでOKですが、もう少し追求していくと「近いとは何か?」という設計上の問いが出てきます。ここで出てくるのがカーネル法やガウス過程などのデータ間の類似度を設計することによって回帰モデルを設計するやり方です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガウス過程などのカーネル(共分散関数)を設計するアプローチは非常に直感的で強力なのに、実際はRBFカーネル(デフォルトではこれが多い)を使った「なめらかノンパラ曲線フィッティング」くらいしか利用されていないのが惜しいところ。これだと動作的にはほぼk近傍法に近い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ということで、カーネル関数の機能を直感的に理解したい場合は下記のサイトの下の方にあるデモをぽちぽちしてみるのをお勧めしています。(あと、よく聞かれますが、多次元入力版の拡張ももちろん簡単にできます。) https://t.co/87goFc6gGC」 / Twitter
A Visual Exploration of Gaussian Processes
高梨陣平さんはTwitterを使っています 「GoogleのAIが集中砲火を受けている。具体的な証拠無しには有効性の検討はできない。」 / Twitter
The RegisterさんはTwitterを使っています 「ICYMI: Google is under-fire for bragging about making a super-human cancer detection AI – and then not supporting those claims with tangible evidence "Without the computer code and fitted model, it will be very difficult to build on their work..." https://t.co/8aUiQo0Cbo」 / Twitter
Top doctors slam Google for not backing up incredible claims of super-human cancer-spotting AI • The Register
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓収集した実験用データに対してはうまい具合に良い予測精度が出せて、多様な個別環境に適応できるようなモデル&学習のやり方はまったく考慮されていない。ML失敗のあるあるですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これの解決のために転移学習や能動学習がカギになるという人もいますし、あるいは差異の要因がある程度仮定できるなら階層ベイズで解決するのが手っ取り早いでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えば10の病院からそれぞれ1万枚の画像データを集めたとしたら、データ量は10万ではなく、10です。この辺の見かけの数値にとらわれない課題難易度の認識が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ビッグデータ」や「大量データで学習」などの流行文句がありつつも、少量データに対する効率的な学習が超大事なのはこういった理由があるためです。この辺りは下記の杉山先生の研究課題を見るとよいです。 https://t.co/JHUfekL0tS」 / Twitter
理研AIP-NEC連携センター | 革新知能統合研究センター
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現実問題を直接数理最適化問題としてデザインすることも重要ですが、個人的には機械学習と組み合わせる際にも有用だと思います。僕も以前、構築した機械学習アルゴリズムの部分問題を解くためにQP Solverなどを併用したことがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分もまだまだ知識が足りていないですが、例えばベイズ統計の近似手法を改善するためには数理最適化の考え方を深く理解する必要がある。例えば隠れマルコフモデルなどを効率よく推論計算するためには動的計画法が定番。モデルの構造に合わせて適切な手法選択するためにはこの辺りの知識は必須ですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「最適化問題のオーバーフィットの話にも関連しますが、現実的にはアルゴリズムで計算された出力結果が実際にビジネスオペレーションに落とし込めるかが重要になってきます。簡単にいうと、出口論が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「架空の話ですが、自動販売機1台1台の精緻な売上予測が出来たとしましょう。最適化アルゴリズムによって提案された在庫管理のスケジューリングが、現実のオペレーションではあまりにもダイナミックすぎて管理しにくくなる可能性がある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「数字の上では高いROIが期待できても、現実のオペレーションに対するフィージビリティが保てないケースは非常に多い。この辺りは現実課題を数理的な問題に落とし込むとかそういう以前の段階で事前に業務を深く理解したメンバーと議論する必要がある。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「これは制御の問題にも通じます。あるカメラの予測を通じて物体を追いかけるような制御をしたいとして、その予測に従って追いかける動作を現実的な制御入力で達成できないことがあります。 すると何をいつまでに予測できなければ制御が間に合わないのか、逆算する必要があるわけです。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「予測はしばしば、次のアクションのための情報として扱われますが、本当にアクションに繋がるのか、あるいはアクションに繋がるような情報とは何なのかを常に考えて予測問題を作らねばならないわけです。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「これめちゃくちゃ重要だよなー。 特に経営者からやってくるテーマそのままだと出口が作れないケースが結構ある。本当にやりたいことをより広いスコープで捉えて「単純な方法でも成果がでそう」なテーマに変えて提案して「あとから精度上げに行く」くらいの気持ちでやるのがいいと思う。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「たとえば、在庫予測したい!とか30回くらい聞いたけど、庫内滞留のリスク最小化したいとかは聞いたことないもん。なぜなら、ロジとマーケの組織が縦割りになってるから。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「そもそものKPI分割が問題を局所化している可能性を考えないといけない。」 / Twitter

micchanさんはTwitterを使っています 「このスレッド全部に頷きすぎて頭くらくら。前に某大手食品メーカーの熟成予測をやった際、エンジンの成果は出せたけど、サイクルが現場にフィットせず仕入れのSCM側の改革も必要だったり、かなり広範囲で見ないと結局インパクトが出せない問題を思い出しました。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「根本には、サプライチェーン全体から見たボトルネックを認識せずに、部分問題を過度に最適化することに問題があります。特にロジスティクスでの物理的制約や顧客の認知限界などは多くの場合無視できない。過度な部分最適化は全体としての柔軟性を欠く。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「正解ラベルがないとまったく何も進みません」という案件は、たいてい正解ラベルが集まった後でもまったくうまくいかない」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「この認識が間違いであることは実務者全員が認識した方がよいですね。 &gt;入力と出力の関係性が未知でもデータがあれば予測モデルを立てられる」 / Twitter
MassSさんはTwitterを使っています 「入力と出力の関係性が未知でもデータがあれば予測モデルを立てられるというメリットがあったはずが、実用では結局対象の理解がある程度欲しいとなると、、ジレンマ」 / Twitter
MassSさんはTwitterを使っています 「結局実務では対象の現象を仮説立てて挙動をモデルに入れ込んで作り込んでいくことが多くて、あり得る現実的な入力全てに対して万能に返してくれるものはないとなると、、個別問題になりやすく、、悩ましい」 / Twitter
MassSさんはTwitterを使っています 「ただし、ディープラーニング含め何ちゃら学習器を使って(過学習をしている状態を除いては)なんらか入力に対して予測可否がなんとなく分かるというベンチマーク的な使い方はありだと思っていて、対象の理解はそこから逆算してすることもある」 / Twitter
MassSさんはTwitterを使っています 「結局機械学習は愚直に覚えるアルゴリズムなだけなので、現象が分かっているものに強いて使う必要はないのだけども、現象をアルゴリズムに入れ込める人間はそう多くはないので、愚直でもいいから効用のある課題に取り組むってのも忘れてはいけないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog https://t.co/ppwO7tTzBD」 / Twitter
Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog
須山敦志 Suyama AtsushiさんはTwitterを使っています 「lightGBなんちゃらが欠損値を扱えるとかわりとどうでもいい話をよく聞きますが、基本的にあらゆる回帰モデルは容易に欠損値補間ができるように拡張できます。もちろん、欠損の捉え方により無数にバリエーションはありますが。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ここ数年の機械学習の産業応用のドライバーは、機械学習の技術自体ではなくgit cloneな気がする」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習周りの考え方そのものは20~30年そんなに変わっていません。ただ、圧倒的に外部からのアクセシビリティが良くなった。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計はtraditionalではなくfundamental。データ解析や機械学習をツールの集合体であると捉えていると、このあたりの本質は理解できないですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「特に「予測精度が上がりました」で突然説明が終わっているのはダメな典型。「予測精度が上がりました」はそれ自体では何か問題を解いたことにならない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ある分野で統計や機械学習を適用する際は、成果報告としてちゃんとその分野での言葉&amp;貢献で説明できないといけないですね。機械学習の世界に課題を投げたまま戻ってこないケースが多いように感じます。」 / Twitter

@hidekatsu_izuno

伊津野 英克さんはTwitterを使っています 「数学の枠内だけでどうやって「正しい」とか「因果関係」とか「未知の推定」とか「意思決定」を扱うつもりなんだろ。物理現象があっての物理学であるのと同様、各種概念があっての統計学なのに、各種概念を無視して何が言えると思ってるんだろ、というのが個人的な見解。」 / Twitter
伊津野 英克さんはTwitterを使っています 「「有意である」とは何かという概念があって、その実装として p 値があるわけで、概念がなければ p 値なんてただの数値に過ぎないわけでしょ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「皆「僕は主義なんていらない」ってところから話が始まるからわけのわからないことになっているんじゃないかなぁ。「主義はあるけど、意識する必要はあまりない」と考えを変えるだけの話なのに。」 / Twitter
伊津野 英克さんはTwitterを使っています 「統計学が物理学と違うのは、扱っている対象が物理学に比べて一段メタな分、哲学側に近いところにあるからではないかと思ってる。因果なんてまさにそうだけど統計の各種概念は哲学が扱ってきた領域だしね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「という話をブログに書くつもりなんだけど、本当は本職の科学哲学の人に書いてほしいんだよなぁ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「DAGだと同時決定するような因果関係扱えないということのようなので、たしかにそれはイマイチかも。双方向の因果関係の定常状態はわりと一般的に思えるし。」 / Twitter

@masahiro_sakai

2020-10-31

Masahiro SakaiさんはTwitterを使っています 「SAT-Based Encodings for Optimal Decision Trees with Explicit Paths https://t.co/Yuw61N4WCP SATソルバを使って最適な決定木を求める話。具体的には、二値分類で特徴量も2値のケースで、完全な分類を行う決定木のなかで、深さやノード数が特定の数の木をSATで求めるのを小さい方から繰り返す。」 / Twitter
SAT-Based Encodings for Optimal Decision Trees with Explicit Paths | SpringerLink
Masahiro SakaiさんはTwitterを使っています 「木を扱おうと思うとノードとエッジに基づいた符号化が思いつくけど、提案手法はパスに基づいた符号化で面白く、また自然に symmetry breaking 出来ていて良い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多値分類や特徴量が多値の場合への一般化は簡単だけど、特徴量が連続値の場合と誤分類を許す場合の扱いが自明でないので、手法は技術的に面白いものの、現状では実用するのは難しそう?」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「先日Optimal Trees の話 https://t.co/GRoUwV3uju を聞いて、そういえばSAT 2020でそんなタイトルの論文があったなぁ、と思って読んでみたのだった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一つめは、決定木学習のCARTは局所的に最適なブランチを繰り返すことで決定木を構築するが、それに対して(木の深さの制約のもと)大域最適な解を求める Optimal Trees という手法で、100万サンプル1万特徴量とかまでスケールし、 CART や XGBoost よりも高い汎化性能。」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深いテーマが多い。 ---- 「βアミロイド・ワクチン法」(βアミロイド投与で抗体生成) 「脳の消費エネルギーは 20W」 「ヒルの逃走法選択(≒自由意志)は膜電位の揺らぎ」(これは知っていた) https://t.co/3unQrNDbRq"
進化しすぎた脳 | PHILOSOPHY OF SCIENCE
Shirouzu Hiroaki(白水啓章)さんのツイート: "人間の「自由意志」も、根本はヒルの膜電位と大差ない原理(ランダム性)だろうなぁ。 (そして「飽きる」という現象と同じく、選択の固定化を避けて生存確率を高めてきたと)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、意識を「量子揺らぎ」に求める著名科学者も居た気がするが、例えばMRIでスピンの向きを揃えても意識を失わないし、PETにも耐えるし、もっと巨視的な話ではという気も。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "私も昔から「関数次第で何とでもなるよね」という違和感があったなぁ。 (フーリエ級数で解く人とかもいるのだろうか?) ちなみに現実的には「最もエントロピーの低い関数に基づく解のみを正解とする」的な補足があればよいのかな?… "
西内啓 Hiromu Nishiuchiさんのツイート: "IQテストとかでいくつか数字並べて次の数字何でしょうみたいな問題、やろうと思えば変な式でもフィッティング出来るはずで、結局のところ何が「正解」かってただの納得感の問題である。むしろ今の世の中に必要なのは1,2,3,x…という並びを見て4以外の斬新な答えとその理由を思いつける人間なのかも。"
西内啓 Hiromu Nishiuchiさんのツイート: "なお、全く数学的な意味はないんですけど、8,13,22,24,25,32,33,○,42,44,52という数の並びを見て○に入る数字即答できる人がいたらめっちゃ友達になりたい。今だと「この並びにいずれは0,3,6,23のどれかが入るんですかね!」みたいな話で盛り上がりたい。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ふーむ。 サンプルを使って法則発見より、全パターン網羅辞書を作れば法則化自体が不要、みたいなノリに見える(笑) https://t.co/bnceFj08Jl」 / Twitter
Hiroo YamagataさんはTwitterを使っています: 「いまやっている訳書で、自然言語解析で百万語くらいで学習させるとアルゴリズムにより成果に大きな差が出るが、一億語学習させると、もうアルゴリズムの差なんかどうでもよくなるそうな! だから、革新的アルゴリズムをひっさげた新たなグーグルによる下剋上なんてのは、もうあり得ないとのこと。」 / Twitter

@sinya8282

Ryoma Sin'yaさんはTwitterを使っています 「今日はデータサイエンスの講義を見学させてもらったんだけど、lasso の意味というかスパース感がめっちゃわかりやすくて腑に落ちた(普通に勉強になった).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「チコノフの正則化とかリッジ回帰とか調整項の意味とか事前情報の正当化とか、この辺の話は数学者と工学者でだいぶ伝え方が変わるのかな、とか思ったり(見学した講義は数学者の方が話していた)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「確率論の大家にフェラーという人がいる」 と講師の方が言った直後ニヤニヤしてる学生さんが何人かいたことは先生黙っておきます.」 / Twitter

@fffumihiro

くいなちゃんさんのツイート: "「数式」が苦手なプログラマさんの気持ちは分かります。 数式がプログラムだとすると、変数名や関数名が大抵1文字で、定義に "コメント" がほとんどなく、その定義こそが仕様書で、ステップ実行もデバッガもないとは、プログラマさんにとって 保守不可能と判断されると思われます。"
FFFumihiro MMMatsuiさんのツイート: "確かに言われてみれば、数式たくさん使って説明するあれこれにソフトウェア工学のあれこれを取り入れたら伝わりやすくなる可能性ある気がする。似たような式変形を何度もやる内に慣れてくのは、コメントが無いコードに対して、似たようなコードを書いた事あるからすぐ読めるって感覚に割と近い気がする"
FFFumihiro MMMatsuiさんのツイート: "なので、そういう式変形を扱った事がなくてもちゃんと分かりやすく伝えるっていう方向で良くできる余地はありそう。現状だとなんか、分かるまで読む側が鍛えろ的な感じで、あまりそういうの追求されてない気がするし"
FFFumihiro MMMatsuiさんのツイート: "素直に扱うと手に負えないくらい複雑になってしまうものを、なんとか万人にとって扱いやすくしたいという点では、ソフトウェア工学ってずっとそういうの研究してるわけだし、もっと他の分野に応用されてもよさそうだな"
きいねくさんのツイート: "確率問題は極端に考えると直感的にわかりやすくなる傾向があると思う. ■モンティホール→ドアの数が1億2個で1億個開ける(確率上昇が直感的にわかる) ■感染確率→感染確率 0 %の病気で,90%正しい検査キットで陽性だったときの本当に感染している確率(90%じゃないことが直感的にわかる)"
FFFumihiro MMMatsuiさんのツイート: "モンティホール問題は最初知ったとき不思議で不思議で、結局やっぱりこういう極端な場合を考えてやっとなるほどってなった"
FFFumihiro MMMatsuiさんのツイート: "確かに確率と直感のすり合わせって、モデルそのものは数個くらいの少ない N でイメージした方がわかりやすい気がするけど、直感的にあれ?ってなる挙動が隠れてたりとかは、一応 N を相当大きくした場合もイメージしてみないとなかなか気づけなそうな感じあるなあ"

Shiro KawaiさんはTwitterを使っています 「対象のボキャブラリ (シンボル、イメージ、感覚記憶など)をノードとする有向グラフで考えてるような気がする。自分は。」 / Twitter
Hideki Kawahara: WAH (Work@Home)さんはTwitterを使っています 「少し前にRTしたこれ。巻き込むと申し訳ないので。。 「人間が思考を全て自然言語で行っている(ような気がする)から、気付きにくいのでは。」 思考を自然言語で行なっている気が全くしないので???となった。自然言語は、(主に)考えている(考えた)ことを他の人に伝えたい時に使う。」 / Twitter

histric

histric-1

Kazuho OkuさんはTwitterを使っています 「コロナ関係の計算してて思うのは、統計使ったソフトウェアのチューニングはPDCAサイクルをさくさく回せるので、統計の扱い方の訓練に向いてるんじゃないかなぁってこと。感染症の予測と対策とか練習も失敗もできないし」 / Twitter
ゆきさんはTwitterを使っています: 「Network-Based Website Fingerprinting https://t.co/r1vAw2seKs 機械学習を用いて、暗号化されたトラフィックから閲覧ページを推測する系の話し流行ってるよね。(あまり論文は読まないが、draftになると読む系男子orz) #yuki_id」 / Twitter
draft-wood-pearg-website-fingerprinting-00 - Network-Based Website Fingerprinting
Daisuke OkanoharaさんはTwitterを使っています: 「NNは斉次函数(ReLUを使った時など)であり指数損失(クロスエントロピー損失など)を使って学習する場合、勾配降下法による学習は正規化マージン最大化に対応し、その収束レートも示せる。はじめて現実的な条件で非線形多層NNで最大マージン化がされていることが証明された https://t.co/GDSd1fc3uW」 / Twitter
Gradient Descent Maximizes the Margin of Homogeneous Neural Networks | OpenReview
FadisさんはTwitterを使っています: 「ニューラルネットワークの誤差逆伝播で重みに対して上がってくる勾配が小さいと半精度浮動小数で計算した時に勾配が消える問題に対して、誤差をn倍して逆伝播して、重みを修正する前に1/nすれば良い(ReLUとか使ってるとこれでいけてしまう)とかやりだすNVIDIAさんあたまいい」 / Twitter
FadisさんはTwitterを使っています: 「半精度だとTensorCoreで爆速で計算できるからNVIDIAはディープラーニングに半精度を使って欲しいけど、ユーザは溢れを恐れて半精度に慎重になるから、スケールすれば半精度でも大丈夫そうな所を自動で見つけて半精度に置き換え、スケールを動的に求めながら学習するような最適化 AMP が作られたらしい」 / Twitter
Mitsuo Yoshida; AI botさんはTwitterを使っています: 「深層学習を使った推薦手法が増えてきてるけど、ちゃんと比較すると古典的な手法に負けてるという話。再現性の問題や不適切な比較実験が多いことを指摘。 / Recsys 2019 ベストペーパーを読んだメモ https://t.co/B5e8FgENof #Qiita」 / Twitter
RecSys 2019 ベストペーパーを読んだメモ - Qiita
Agata NaomichiさんはTwitterを使っています: 「text-to-text transfer transformer めっちゃ良い。夢が広がるしアイディアも広がる。BART も似たような話だけど T5 は論文自体がめちゃくちゃ長い分、比較とか考察に富んでてかなり読み応えある。 https://t.co/9qCkluBHyG」 / Twitter
[1910.10683] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
みぽさんはTwitterを使っています 「中央値と平均値の説明、「村にビルゲイツが引っ越してきたときの、その村の世帯年収の中央値と平均値」という感じの説明が好き」 / Twitter
Miura HidekiさんはTwitterを使っています 「イメージしやすい」 / Twitter
FadisさんはTwitterを使っています: 「ニューラルネットワークの学習は「なんでも関数」と「非線形最適化」の組み合わせなわけで、ニューラルネットワークの学習を効率よく行う工夫の何割かは非線形最適化問題を効率よく解く手法と見做す事ができて、今ニューラルネットワークと関係ない所で「AdaBoundすげぇ!」ってなってる」 / Twitter
AdaBound - Google 検索
えるエルさんはTwitterを使っています 「お馴染みパターン認識と機械学習(PRML)のアルゴリズムをPythonで実装したリポジトリ 作者は日本の方だと思われ,実装も結構前からあったようですが,今になって海外の研究者に発見されて絶賛されている模様 実際かなりキレイな実装で,PRMLを読むときはかなり参考になりそう https://t.co/Ul9QklyYKk」 / Twitter
ctgk/PRML: PRML algorithms implemented in Python
Yasunori OhtoさんはTwitterを使っています 「証明に穴があったので、全面リライトしました。広く拡散、読んで頂けると嬉しいです。 https://t.co/wMxkMZQoJv」 / Twitter
(PDF) Extract maximum clique using eigenvalue relation
piqcyさんはTwitterを使っています 「研究発表された検索アルゴリズムを実際使える&amp;検証できるようにするプロジェクト。Luceneで実装されている。検証のため様々なデータセットによるテストができるようになっており、新型コロナ関係論文もサポートされている。 https://t.co/jIgeRioC6o」 / Twitter
castorini/anserini: A Lucene toolkit for replicable information retrieval research
Kazuho OkuさんはTwitterを使っています 「3/23のデータ入れた。(7日移動平均を使っていることもあり)大きな変化は見えない。 東京は、なんらかの対策強化が近いうちにあると思う(参考 https://t.co/YF1BCrHRw4) https://t.co/T2tT3sSSRV」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういえば株価チャートの移動平均、25日や75日の理論的根拠はなんなんだろう。件のグラフで7日移動平均使ってるのは、累計の対数グラフよりも感度が良く、かつ、平日休日の差に起因するもの含めノイズを消せるからなんだけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「移動平均とかを使うアルゴリズムの標準化をみていると、指標の理論的根拠にうるさくなってしまう問題」 / Twitter

histric-2

山本 和英(自然言語処理)さんはTwitterを使っています 「「自然言語が本来持ち合わせる量子的特性を利用して、文法例文を量子回路に変換しました。その上で得られたプログラムを量子コンピュータに実装し、質問応答をさせることに成功しました」「長年の夢であった「意味を理解」し「文法に基づいた」自然言語処理が実現しました」 https://t.co/kmeyXg1ILi」 / Twitter
英国ケンブリッジ・クオンタム・コンピューティング、世界で初めて量子自然言語処理における実証実験を実施 - CNET Japan
Quantum Natural Language Processing - Cambridge Quantum Computing - Medium
An introduction to t|ket> - YouTube
ミライ小町【公式】さんはTwitterを使っています 「本日バンダイナムコ研究所が公開したDistilBERTの日本語事前学習モデルは、、、 BERTモデルと比べてサイズが約40%小さいし! 推論が約50%も速くって! 精度は分類タスクで約90%なんですよ! すごーい!✨ https://t.co/hsa6Z16CFI」 / Twitter
BandaiNamcoResearchInc/DistilBERT-base-jp
Yuta.HさんはTwitterを使っています 「BigQuery MLで作成したモデルのTensorflow Saved Model 形式での取り出しが可能になりました!これによりBigQuery MLでPredictさせる機械学習モデルの生成だけではなくBigQuery ML自体がかんたんなモデルのフルマネージド分散学習環境として使えるようになりました。 https://t.co/zAnPTaumK0 #gcpja」 / Twitter
Exporting models  |  BigQuery ML  |  Google Cloud
Tomoyuki MorimaeさんはTwitterを使っています 「量子計算理論:オンライン教材 自宅学習をしている学生の方用に作ってみました。今後付け足していく予定です。 https://t.co/mrYXcvlTyc」 / Twitter
lectures.pdf
HELLO CYBERNETICSさんはTwitterを使っています 「統計的だが規則的な振る舞いがあるから学習できるのであって、本当にランダムなノイズを帳消しにできるわけではないのだが……。バラつきを機械学習で何とかしたい、みたいなの根本的におかしい。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「もちろん、(例えば囲碁など)素人目にはランダムに見えているものが、実際には何らかの規則に基づいているはずだ!しかし、それを解き明かすのは困難だ。という話は全然OK。 ここで言っているのはS/N比が極端に悪いものを機械学習に突っ込んでも何も生まれませんということ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「データ収集におけるS/N比を良くする、特徴量を掴む、ということをしてみると、そこには意外とシンプルな規則があり、線形モデルないしルールベースでうまく行くということがあったりする。 予測できればOKはそうなんだけど、そういう土俵になってるかを調べるのはとても大切。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「囲碁でいうと、石の色を間違えてましたとか、石の置かれてる場所が違いましたとか、石を間違えて違うところに置いちゃます とかいうのが不規則に生ずる環境で、強化学習して絶対に見間違いせず、打ち手を誤らないようにします。 なんて無茶なんです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「そもそもベイズの「信用区間」なるものを全く使わないのでよく知らなかったのですが、下記を見る限りでは明らかに信頼区間の考え方に寄せられてわけわかんない説明になっちゃってますね。 信頼区間(confidence interval)と信用区間(credible interval)の違い https://t.co/C0KTtsPhmR」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まともに勉強していないので理解が怪しいですが、統計はもともとデータをある仮定の元で要約することによって人間が判断を行いやすくするというのが1つの目的だと思います。AIの時代では、計算機が高次元のデータを整然と処理し判断を行うので、要約をする必要がないケースが出てくる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「件のベイズの「信用区間」が最たる例で、確かに人間にとっては区間を表示するのが直感的に解釈しやすいかもしれない。機械だと話は違う。むしろ、奇妙に要約された「区間」ではなく、大量のMCMCのサンプルなどを使った期待値計算やそれによる行動選択において人間を凌駕できる可能性の広がりがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まとめると次のように予想します。 ・モデリング→しばらくは人がやるし、やりやすくなるようにツールも進化する ・推論計算→MCMC以外でも数理的に特性の良いアルゴリズムが今後も登場する(はず) ・事後分布の活用→人間だけではなく計算機が利用するケースが増える」 / Twitter
Kazunori SatoさんはTwitterを使っています 「やっぱpredictionって言い方が期待値上げすぎと思う。inferenceくらいでいい。既知の事象からわかる範囲のことしか出てこない。汎化って、未来を予測できる性能ではなくて、既知の事象からいかに本質的なパターンを抽出できるか、という性能に過ぎない(本質ってなんじゃいって話になるけど)」 / Twitter
Kazunori SatoさんはTwitterを使っています 「MLは高次元から低次元のパターン(多様体?)を抽出するのは得意だけど、ドメイン知識や常識はない。人間はその逆。この両者をいかに合成するかがカギ。CNN(2D畳み込み)の成功やベイズ等の統計の強みも人の知恵の外挿と思うし、DNNのデータ拡張は非効率な外挿。どれも未来予測ではなくITの開発手法。」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「今の時代であれば、文章を構成する言葉を数語入れればドロップダウンできる文章候補ができてて、ショートカットキーで選択すれば終わりとか、エージェントの域に来ててもいい気がしますが、作文ソフトを除き、そういう指向性のものってIMには全く降りてきてないような…。 (あればそれを扱ってみたい)」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「特に、入力した情報より多いものを返す系が発達していないなと、自分の見た限りでは感じています。 タイプの正確性以前に、個人的にはキータイプの速度を超えることがブレイクスルーの一歩ではないかと感じてまして…。」 / Twitter
Isao TakaesuさんはTwitterを使っています 「NISTが策定中の「機械学習セキュリティ」に関するベストプラクティスのドラフト版。攻撃手法・防御手法の分類や用語を整理している段階。現バージョンの全文はPDFで確認することができる。 #aisec #jpsecai https://t.co/OXyKyin81x」 / Twitter
Artificial Intelligence: Adversarial Machine Learning | NCCoE
Agata NaomichiさんはTwitterを使っています 「強化学習やってると、gradient必要な計算とそうでない計算が混ざってよくわからなくなってくるんだけど、spinningup の実装読むと gradient いらない時はそもそも nd.array を返すような interface 設計になっていてとてもわかりやすい」 / Twitter
清 史弘さんはTwitterを使っています 「【清史弘からの提案 7 の説明案】  私が用意しておいたものをここにおきます。これを参考に(100%使ってもよいです)、この置換にたどり着くための話の動画を教育系のYouTuber のどなたかが作ってくれると嬉しいです。2枚になります。 #清史弘からの提案 https://t.co/VzILwv12gG」 / Twitter

histric-3

Shinji KonoさんはTwitterを使っています 「統計に必要な数学はいろいろあるが、可視化できないなら、その結果に意味はない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多田明功さん「実務における数理最適化技術と実践」。2019年度後半より数理システム主催のワークショップと同タイトル。実行不可能な場合にも何かしらの答えを返して欲しいが、単純に緩和問題の解を返すだけではどこに違反が出るか分からず対処しにくいので、後調整しやすい特定の制約に違反をしわ寄せ」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「小熊祐司さん「工場ピーク電力抑制を目的とした生産設備運転計画最適化 ―最大値最小化とメタヒューリスティクス」。ピーク電力に応じて基本料金が決まるのでピーク電力最小化。最大値最小化の形で目的関数値に寄与しない箇所の自由度から同じ目的関数値をとる多数の解が存在し分枝限定法には不向き。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一方で実行解は多数存在するのでメタヒューリスティクス向き。近傍定義および目的関数設計を工夫。ピーク電力をそのまま目的関数とすると、ピーク発生時間帯のジョブの移動のみが目的関数への感度を持ち、全体的にジョブを調整して平準化するという自然な改善がされづらいので、平準化の誘導項を追加。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「奥田裕之さん「自動運転における実時間最適化とモデル予測制御」。衝突回避制約は非凸になるのか(確かに言われてみれば)。相手の”迷い”を低減する合流制御の話、モード切替を伴う予測モデルを用いるMPCの話、制約充足型自動運転の話など面白かった。」 / Twitter
さっじーさんはTwitterを使っています 「富士通研究所のAI応用例だけど、災害避難経路最適化とか待機児童最適割当とか色々あって面白いなー ビックデータで学習させてブラックボックス化するんじゃなくて、数理モデルを基盤とした学習をすることで、なんでこの答えを出したのかを説明ができるAIができたりするってのはすごい」 / Twitter
全卓樹さんはTwitterを使っています 「物理学者から見た、ひとつの「世界の4分表」をどうぞ。ストロガッツ大先生のnonlinear dynamics and chaos 2014から。 通常は物理っていうと左上だけ、せいぜい右上まで含んだものをイメージするじゃないですか。でも実際はずっと広がってるし、最前線は他分野に浸食してるよって。 https://t.co/JdAeXiljS7」 / Twitter
UmeponさんはTwitterを使っています 「もう少し手が空いたら,capacitated vehicle routing problem(CVRP)や,vehicle routing problem with time-window(VRPTW)などの典型的な配送計画問題が整数計画ソルバーでどれぐらい解けるかを色々と試したい.」 / Twitter
Shinji KonoさんはTwitterを使っています 「統計って、少し勉強したけど散布図以上のことがわかる数学マジックは存在しないってのが自分の理解。因子分析は面白いが話題には登らないね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「統計の勉強であれだったのは分母のnとn+1の差が重要とか言われたこと。いや、それ統計の分母だろ? もちろん、理論の整合性に必要なのはわかるけどさ。」 / Twitter
Masataka EguchiさんはTwitterを使っています 「PRMLの序論をよく見たら、頻度主義とベイズ主義は確率解釈が異なり、ベイズの確率解釈は信念と密接な関わりがあり、さらに意思決定理論と組み合わせることで、パターン認識で直面する不確実性を伴う状況下での最適な意思決定を可能にするといったことが書いてありますね。」 / Twitter
田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「推定値の大切な性質 1) 一致性: データが増えた時、推定値は真の値に近くか 2) 不偏性: 推定値の期待値は真の値と同じか 3) 頑健性: ぶれにくい推定値か • 一致性は出来れば満たして欲しい性質です。 • 例えば、「平均値」は外れ値に弱いため「中央値」と比べて頑健性が低い指標です。」 / Twitter
田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「機械学習の Bias - Variance トレードオフは、不偏性と頑健性の天秤です。 例えばRidge回帰は、チューニングパラメータλが高くなるほど不偏性が下がり、代わりに 頑健性 が上がります。頑健性が低いモデルは訓練データに左右されやすく、つまり過学習しやすいのです。」 / Twitter
Tsumoto🦧さんはTwitterを使っています 「今年読んだ論文の中で最も衝撃だったのが 「皮膚のニューロンが信号伝達だけでなく大脳皮質同様の計算処理を行っている」 というこの論文 https://t.co/XNnzihVQY0 信号伝達しかしないと思われていた指先の末梢ニューロンが, 実は接触したものの幾何学的情報を処理していたことが明らかになったらしい https://t.co/s72SgODTrM」 / Twitter
Edge-orientation processing in first-order tactile neurons | Nature Neuroscience
ノーン@レポ7さんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
Kohta IshikawaさんはTwitterを使っています 「特異学習理論が統計力学そのものかどうか判断できるほどに統計力学の方を知らないんだけど、統計力学の方で確率密度関数としての特異性が効いてくるケースってどんなのなんだろう。自発的対称性の破れとか?」 / Twitter
片桐 孝洋さんはTwitterを使っています 「で何度も書いていますが、個人的な見解は、今回の人工知能ブームも数年で終了する、です。 その後は、情報学基礎(ハードウェア、プログラミング)、数学(線形代数、統計・確率など)の能力がある人材に人気が集中するのでは、というのが個人的見解です。」 / Twitter
片桐 孝洋さんはTwitterを使っています 「機械学習ツール使えても、使っているアルゴリズムの収束性とか、パラメタ寄与率解析とか、できないと、製品の品質保証ができないので、製品が作れない。ということが、今までも繰り返してきている歴史です。」 / Twitter
TarotanさんはTwitterを使っています 「(再告知) 信頼区間に対するFisher-Neymanの議論で,信頼係数を「係数」と呼ぶか「確率」と呼ぶかという議論もありましたが,以前の私の呟きでは誤読かつ見落としていました. 以下のブログでその呟きを訂正し,Neyman(1934)の該当部分を抜き出しました. https://t.co/lBDYbB60dG」 / Twitter
TwitterでのNeyman(1934)に対する事実誤認の訂正 - Tarotanのブログ
goto yutaさんはTwitterを使っています 「Googleの実用的すぎる神論文。 言語モデルの学習を効率化する為に、学習データから似たものを排除する手法を提案し、少ない学習ステップで同等以上の精度のモデルを学習できることを示した論文。 https://t.co/Cxho2TrBsa ソースコードも公開されている: https://t.co/j2lI33vEjA」 / Twitter
google-research/deduplicate-text-datasets

伊津野 英克さんはTwitterを使っています 「統計学の目的って記述、予測、推定、検定、意思決定といろいろ目的あるけど、あんまりその関係性って整理されてるの見たことないな。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「テキストや動画での嘘情報がインターネットに溢れて、正確さじゃなくて観覧数で収益が配分されているのだから、嘘情報を散蒔くのはプラットフォーマーのせいだけど、NLPのブレークスルーがないのが原因かな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「「今年レイヴが来る」とGoogleで検索すると小室哲哉話が1ページから出てくるけど、「今年ジャングルが来る」の場合は、ジャングルポケットとか関係ない話ばかりになるのか。これでウマ娘とかで馬名で使われたら、もうウマ娘だらけになりそうな予感」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「統計の取り方は慣れてるテーマでもほんと要注意なのにその比較はあかんやつやろってのがメディアとかではよくあって普段はまあそういうもんって思ってたけどコロナ禍とかではさすがにどっか監督する仕組み要るのではって思ったりする」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「そもそも関係を見るという事は本来散らばれる次元数より自由度数ががたんと減るほど強く縛り付ける機構が支配的と見なすわけで、さらに雑多混合な集団が一つの線に乗るというのはその雑多さによららず機構の各係数がみんな同じになっちゃうという相当強い事を要請するわけで気を付けないと危ないよなあ」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「マクナマラの誤謬 (The McNamara Fallacy) - 「定量的に測定できないものは、考慮すべきでない」という考え。このため米国はベトナム戦争で「数値上は」勝っていたのに、負けた。一方で、デミング博士は「測定できるからといって重要とは限らない」という警告を残している。 https://t.co/OvlUfzjvhQ」 / Twitter
The McNamara Fallacy – measurement is not understanding
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日、データ至上主義が浸透している世の中では、マクナマラの誤謬はより広範囲で(一般人に)起こっている。定量的な情報が役に立たないということではない。それは全体像のなかのごく一部の側面にすぎないということなのである。」 / Twitter
Kunihiko Imai 🍱さんはTwitterを使っています 「ルールベースのものは「エキスパートシテスム」という名前で,90年代のブームでは AI に分類されていたな」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ルールベース」って偽物AIの代名詞みたいに言われてますが、本来理想とすべきは明確なルールや法則を抜き出すことなんであり、それができないから機械学習やら確率やら使って何とかその場をしのいでいる、という見方もできます。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブな Gaussian Belief Propagation (GBP) 入門。これは bayesian network上でメッセージ送受信を行うことで、推論結果を反復的 (iterative) に求める一般的なアルゴリズムである。GPUなどの上でスケールさせやすいため、今後普及していくと思われる。 https://t.co/1hmxYxvIc4」 / Twitter
Gaussian Belief Propagation
uint256_tさんはTwitterを使っています 「{expected==inferred}/{num of samples} が 98.9% らしい (確かに動いていそう)」 / Twitter
uint256_tさんはTwitterを使っています 「手作業でMNISTモデルを書いてみました... (重みは別ファイル) 動いてしまいました... https://t.co/C9UrOnnfcZ https://t.co/SzkW2ZcHce」 / Twitter
maekawatoshiki/mymnist
高橋将宜 Masayoshi TakahashiさんはTwitterを使っています 「通常の最小二乗法では,誤差項の正規性の仮定が満たされていなくても,中心極限定理により,大標本なら統計的推測に問題は起きないとされています.具体的に標本がどれぐらい大きければよいかについて,この論文では1変数あたり観測値10以上あればよいとしています.(続く) https://t.co/MofpLSJysL」 / Twitter
Linear regression and the normality assumption - ScienceDirect
高橋将宜 Masayoshi TakahashiさんはTwitterを使っています 「ただし,変数間の相関が強かったり,スパースなデータの場合,1変数あたり観測値50以上が必要かもしれないとも書かれています(p.150).(完)」 / Twitter
伊津野 英克さんはTwitterを使っています 「回帰係数に非負制約を課す NNLS (non-negative least squares) というものがあるらしい。 https://t.co/5gIdJLmrvg」 / Twitter
Non-negative least squares - Wikipedia
Miura HidekiさんはTwitterを使っています 「ハッカーのたのしみ は凄いけど、実はこっちの方が凄いって思っています https://t.co/sgXv2v3ztJ」 / Twitter
Chessprogramming wiki
chokudai(高橋 直大)🍆さんはTwitterを使っています 「「AI」というのは、「機械学習」による分析・予測、「数理最適化」による最適化、それらに当てはまらない「ヒューリスティックな改善」の3つの軸で大体出来ています! ってのを考えたんだけどなんか多分抜けてるよね。なんだろ。」 / Twitter
Jinya NakamuraさんはTwitterを使っています 「@chokudai それらを支えるデータ、もしくはデータを生成する機構ですかね・・・」 / Twitter

Advent Calendar

自然言語処理 Advent Calendar 2016 - Qiita
自然言語処理 Advent Calendar 2017 - Qiita
自然言語処理 Advent Calendar 2019 - Qiita
漢直 Advent Calendar : ATND
漢直 advent calendar 2013 - connpass
漢直 Advent Calendar 2015 - Adventar
Androidでも漢直がしたかった話 - にせねこメモ
TUT-Code打鍵動画 - にせねこメモ
数理最適化 Advent Calendar 2020 - Qiita
情報検索・検索エンジン Advent Calendar 2019 - Qiita
情報検索・検索技術 Advent Calendar 2021 - Adventar